BAB 2 LANDASAN TEORI
2.1. Dasar Perancangan Perangkat Lunak Menurut Pressman (2001, p6), perangkat lunak adalah (1) instruksi (program komputer) yang ketika dieksekusi akan memberikan fungsi dan performa seperti yang diinginkan (2) struktur data yang memungkinkan program memanipulasi informasi secara proporsional, dan (3) dokumen yang menggambarkan operasi dan penggunaan program. Menurut Sommerville (2001, p6), perancangan perangkat lunak adalah disiplin perancangan yang berhubungan dengan semua aspek dari produksi perangkat lunak dari tahap awal spesifikasi sistem sampai dengan pemeliharaan setelah sistem dalam tahap berjalan.
2.1.1. Daur Hidup Perangkat Lunak Salah satu model perancangan perangkat lunak adalah dengan menggunakan model air terjun (waterfall model). Menurut Sommerville (2001, p45), tahap-tahap utama dalam model air terjun yang menggambarkan aktivitas dasar pengembangan perangkat lunak adalah sebagai berikut: -
Analisis dan penentuan kebutuhan Tugas, kendala dan tujuan sistem ditentukan melalui konsultasi dengan pemakai sistem. Kemudian ditentukan cara yang dapat dipahami, baik oleh user maupun pengembang.
9
-
Desain sistem dan perangkat lunak. Proses desain sistem terbagi dalam kebutuhan perangkat keras dan perangkat lunak. hal ini menentukan arsitektur perangkat lunak secara keseluruhan. Desain perangkat lunak mewakili fungsi sistem perangkat lunak dalam suatu bentuk yang dapat ditransformasikan ke dalam satu atau lebih program yang dapat dieksekusi.
-
Implementasi dan pengujian unit. Dalam tahap ini, desain perangkat lunak direalisasikan dalam suatu himpunan program atau unit-unit program. Pengujian unit mencakup kegiatan verifikasi terhadap suatu unit sehingga memenuhi syarat spesifikasinya.
-
Integrasi dan pengujian sistem. Unit program secara individual diintegrasikan dan diuji sebagai satu sistem yang lengkap untuk memastikan bahwa kebutuhan perangkat lunak telah terpenuhi. Setelah pengujian, sistem perangkat lunak disampaikan kepada user.
-
Pengoperasian dan pemeliharaan. Secara normal, walaupun tidak selalu diperlukan, tahap ini merupakan bagian siklus hidup yang terpanjang. Sistem telah terpasang dan sedang dalam penggunaan. Pemeliharaan mencakup perbaikan kesalahan yang tidak
ditemukan
dalam
tahap-tahap
sebelumnya,
meningkatkan
implementasi unit-unit sistem dan mempertinggi pelayanan sistem yang disebabkan oleh ditemukannya kebutuhan baru.
10
ANALISIS
DESAIN CODING DAN DEVELOPMENT IMPLEMENTASI TESTING MAINTENANCE
Gambar 2.1 Model Watwerfall
Gambar 2.1.
Daur Hidup Perangkat Lunak
Sumber: Sommerville (2001).
2.2. Interaksi Manusia dan Komputer Pada era globalisasi seperti ini telekomunikasi sangat berkembang dngan pesat, hal ini dikarenakan manusia cenderung untuk berinteraksi dengan manusia yang lain. Dengan konsep yang sama penggunaan komputer dibuat sesederhana mungkin sehingga manusia dapat berinteraksi dengan komputer semudah berinteraksi dengan manusia lainnya. Proses penyederhanaan ini dikenal dengan interactive user interface. 2.2.1. Program Interktif Shneiderman ( 1998, p15 ) menjelaskan bahwa ada lima kriteria yang harus dimiliki oleh suatu program sehingga dapat berinteraksi dengan baik dan bersifat user friendly, antara lain : 1. memiliki waktu belajar yang relatif singkat 2. mampu memberikan informasi yang diperlukan dengan cepat 3. mudah untuk dioperasikan oleh user
11
4. kemudahan untuk mengingat program tersebut walaupun telah lama tidak mengoperasikannya. 5. kepuasan pribadi Sekarang ini telah banyak beredar bahasa pemrogaman yang memberikan hasil interface yang baik, dan keuntungan dalam menggunakan perangkat bantu tersebut menurut Santosa ( 1997, p7 ) adalah 1. interface program yang dihasilkan jauh lebih baik 2. Program antar mukanya menjadi mudah ditulis dan lebih ekonomis untuk dipelihara.
2.2.2. Pedoman untuk Merancang User Interface Terdapat beberapa pedoman yang dianjurkandalam merancang suatu program guna didapatkannya suatu program yang user friendly. 2.2.2.1.
Delapan Aturan Emas Menurut Shneiderman ( 1998, p74 - 75), terdapat delapan aturan dalam merancang sistrem interaksi manusia dan komputer yang baik, antara lain: 1. Strive for consistency ( Bertahan untuk konsistensi ) 2. Enable frequent user to use shortcuts ( Memperbolehkan user untuk memakai shortcut) 3. Offer informative feed back ( Memberikan umpan balik yang informatif ) 4. Design dialogs to yield closure ( Pengorganisasian yang baik sehingga pengguna mengetahui kapan awal dan akhir dari suatu action ) 5. Offer simple error hadling ( Pengguna mampu mengetahui dan memperbaiki kesalahan dengan mudah ) 6. Permit easy reversal of actions ( Dapat dilakukan pembalikan action ) 12
7.
Support internal locus of control ( pemakai mampu aktif dalam mengambil langkah selanjutnya bukan hanya merespon pesan yang muncul )
8. Reduce short term memory load ( mengurangi beban ingatan jangka pendek bagi pemakai sehingga perancangannya harus sederhana )
2.2.2.2.
Pedoman Merancang Tampilan Data Menurut Smith dan Mosier, terdapat beberapa pedoman yang dianjurkan dalam merancang tampilan data yang baik dan dikutip pula oleh Shneiderman ( 1998, p80 ) antara lain: 1. Konsistensi tampilan data, istilah, singkatan, format dan sebagainya harus mengikuti standar. 2. Beban ingatan yang serendah mungkin dimana pamakai.tak perlu mengingat terlalu banyak informasi dari layar yang satu ke layar yang lain. 3. Kompatibilitas tampilan data dengan pemasukan data. Format tampilan informasi perlu berkaitan erat dengan tampilan pemasukan data. 4. Fleksibilitas kendali pengguna terhadap data. Pengguna harus dapat memperoleh informasi dari tampilan dalam bentuk yang paling sederhana.
2.2.2.3.
Teori waktu respon Waktu respon dalam sistem komputer menurut Shneiderman ( 1998, p352 ) adalah jumlah detik yang diperlukan untuk mengeksekusi suatu aksi.
13
Beberapa pedoman yang dianjurkan oleh Shneiderman ( 1998, p367 ) mengenai kecepatan respon suatu program yaitu: 1. Pengguna lebih menyukai waktu respon yang relatif pendek. 2. Waktu respon yang panjang sangat mengganggu ( > 15detik ). 3. Waktu respon yang pendek menyebabkan beban ingatan pengguna semakin pendek pula. 4. Waktu respon yang lebih cepat dapat meningkatkan produktivitas, tetapi tingkat kesalahan pengguna semakin tinggi pula. 5. Waktu respon harus sesuai dengan tugasnya: a. Untuk mengetik, menggerakan kursor, memilih dengan mouse: 50 – 150 milisekon b. Untuk tugas sederhana yang sering : < 1 detik. c. Untuk tugas biasa: 2 – 4 detik. d. Untuk tugas yang kompleks: 8 – 12 detik. Pemakai harus diberi tahu mengenai penundaan yang panjang.
2.3. Alat Bantu Perancangan 2.3.1. State Transition Diagram State Transition Diagram adalah salah satu cara menggambarkan jalannya proses. Di dalamnya dapat dilihat input / kondisi, state proses, output / aksi yang terjadi dan perubahan state. Komponen dasar state transition diagram dapat dilihat pada gambar 2.2.
14
State X
State sekarang
Input Output
State selanjutnya
State X
Gambar 2.2. Komponen Dasar State Transition Diagram Sumber: Kowal (1988). State, menunjukkan satu atau lebih kegiatan atau keadaan atau atribut yang menjelaskan bagian tertentu dari proses. Anak panah berarah, menunjukkan perubahan state yang disebabkan oleh input tertentu (state X ke state Y). Input / kondisi merupakan suatu kejadian pada lingkungan eksternal yang dapat dideteksi oleh sistem, misal sinyal, interupsi atau data. Hal ini menyebabkan perubahan dari satu state ke state lainnya atau dari satu aktivitas ke aktivitas lainnya. Output / aksi merupakan hal yang dilakukan oleh sistem jika terjadi perubahan state atau merupakan reaksi terhadap kondisi. Aksi dapat menghasilkan output, tampilan pesan pada layar, kalkulasi atau kegiatan lainnya.
2.3.2. Pseudocode
15
Pseudocode adalah suatu bahasa umum yang menggunakan kosa kata dari satu bahasa (misal: bahasa Inggris) dan perintah (syntax) dari bahasa yang lain (misal: bahasa pemrograman terstruktur). (Pressman, 1997, p411) Pseudocode adalah suatu bahasa pemrograman yang informal dan sangat fleksibel, yang tidak dimaksudkan untuk dieksekusi pada mesin, tetapi hanya digunakan untuk mengorganisir cara berpikir pemrogram sebelum melakukan coding. (Pege-Jones, 1980, p11) Pseudocode dapat menjadi alternatif dalam perancangan perangkat lunak di samping alat bantu berupa diagram. Tidak ada standarisasi dalam hal penulisan pseudocode. Pemrogram dapat menulisnya dalam bahasa apa saja yang mereka sukai dan dipadukan dengan bahasa pemrograman tertentu. Pemrogram juga bebas menggunakan teknik dan aturannnya sendiri.
2.4. Chaos Pada tahun 1980an, konsep matematika aneh yang baru muncul dan menarik perhatian masyarakat. Chaos. Ide yang fantastis. Sesuatu tentang hal yang tidak dapat diperkirakan, hal yang aneh dan kacau. Definisi kamus untuk chaos adalah kekacauan, kerusuhan, tetapi para peneliti mengatakan bahwa chaos adalah sesuatu yang sangat sensitif terhadap keadaan awal. Chaos juga mengarah pada pertanyaan kemungkinan membuat prediksi jangka panjang yang baik tentang bagaimana suatu sistem akan berjalan. Dalam dunia nyata, ada tiga contoh yang bagus untuk menggambarkan keadaan yang tidak stabil, yaitu wabah, keadaan politik, dan keluarga dan masyarakat yang
16
mengalami gangguan. Wabah tidak stabil karena terkadang ada wabah yang menyebabkan kematian. Hal ini menyebabkan teror dan chaos. Keadaan politik sangat tidak stabil karena orang dapat memberontak, menggulingkan pemerintahan dan menyebabkan perang. Sebuah perang adalah salah satu tipe dari sistem chaos. Keluarga dan komunitas yang mengalami gangguan, juga tidak stabil. Hal ini dikarenakan jika satu orang memiliki masalah yang sepele dengan beberapa orang atau masalah yang besar dengan banyak orang, maka hasilnya akan besar dengan banyak orang yang terlibat dan banyak kehidupan orang berada dalam kehancuran.
2.5. Geometri Dimensi pecahan adalah sesuatu yang tidak mungkin ada dan tidak akan mungkin dimengerti dalam kenyataan geometri dasar. Ada dua tipe utama dari geometri, yaitu geometri euclidean dan geometri non-euclidean. Pada geometri euclidean, kita dapat menemukan geometri bidang, trigonometri, geometri deskripsi, geometri proyektif. Sedangkan pada geometri non-euclidean, terdapat geometri hiperbolik, geometri elips, dan geometri fraktal.
2.6. Transformasi Geometri 2.6.1. Refleksi/Pencerminan Pencerminan adalah suatu tindakan untuk membalik suatu bentuk geometri, yang berhubungan dengan garis dan bidang (tetapi bukan titik). Sebagai contoh huruf “p” dicerminkan terhadap garis vertikal akan menghasilkan
17
huruf “q”. Pencerminan menghasilkan bayangan yang mempunyai jarak terhadap sumbu pencerminan dan bentuk yang sama dengan yang aslinya.
2.6.2. Translasi Adalah suatu operasi transformasi yang memindahkan setiap titik dengan jarak dan arah yang tetap. Jika v merupakan sebuah vektor dan translasinya adalah Tv, maka : Tv(p) = p+v
2.6.3. Rotasi Adalah suatu perpindahan benda pada gerakan melingkar. Pada benda dua-dimensi benda akan berputar pada pusat rotasi. Benda tiga-dimensi akan berputar pada porosnya. Untuk ruang dua-dimensi akan berlaku rumus sebagai berikut :
Untuk ruang tiga-demensi akan berlaku rumus sebagai berikut :
Atau :
2.6.4. Dilatasi
18
Adalah suatu transformasi dari bentuk geometri yang akan menghasilkan bentuk geometri yang lebih kecil maupun lebih besar dari aslinya. d(f(x),f(y)) = rd(x,y)
2.7. Dimensi Topologis sebuah Himpunan Dimensi Topologis adalah sebuah konsep yang lebih umum dari definisi tentang dimensi, yang dapat diterapkan pada himpunan-himpunan di dalam Rn yang tidak harus merupakan subruang. (Anton dan Rorres, 2005, p272) •
sebuah titik di dalam R2 mempunyai dimensi topologis nol;
•
sebuah kurva di dalam R2 mempunyaidimensi topologis satu;
•
sebuah daerah di dalam R2 mempunyai dimensi topologis dua.
2.8. Dimensi Hausdorff dari sebuah Himpunan Saling Serupa Anton dan Rorres (2005,p273) menyatakan bahwa Dimensi Hausdorff adalah sebuah definisi alternatif untuk dimensi dari sembarang himpunan di dalam Rn. Dimensi Hausdorff dari sebuah himpunan saling serupa S yang berbentuk (1) dilambangkan dengan dH(S) dan didefinisikan sebagai d H (S ) =
S
d
H (S)
19
ln k ln(1 / s )
(2)
1 k
(3)
=
2.9. Fraktal Fraktal adalah bentuk geometri yang kasar atau dapat dipecah, yang akan dapat dibagi menjadi bagian-bagian, di mana setiap satu bagiannya merupakan duplikasi yang dapat diperkecil dari bentuk keseluruhannya
( http://spanky.triumf.ca/www/fractal-
info/what-is.htm ). Jadi fraktal umumnya memiliki kesamaan dan tidak tergantung pada ukurannya. Menurut Mandelbrot sebuah fraktal adalah subhimpunan dari ruang Euclidean yang dimensi Hausdorff dan dimensi topologisnya tidak sama. (Anton dan Rorres, 2005, p274). Fraktal juga menggambarkan banyak benda dalam dunia, seperti awan, gunung, garis pantai, akar, ranting, dan aliran darah, semua yang tidak dapat disamakan dengan bentuk geometri biasa. Fraktal mempunyai beberapa pola yang diulang-ulang hingga tidak terbatas. Saat menciptakan suatu fraktal, kita akan menduga bahwa cara yang termudah adalah mengulang suatu rangkaian langkah-langkah yang menciptakan pola tersebut. Dalam program aplikasi ini, kita akan menggunakan kata “iterasi” untuk menggantikan kata “pengulangan (repeat)”. Untuk menciptakan sebuah fraktal yang sesungguhnya, kita perlu melakukan iterasi hingga tidak terbatas. Bagaimanapun juga ketika membuatnya dalam sebuah komputer, kita dibatasi oleh kecepatan dan resolusi. Jadi kita hanya akan melakukan iterasi dalam angka yang pasti. Menambah jumlah iterasi dapat membuat fraktal lebih akurat.
20
Gambar 2.3. Koch Snowflake Ada tiga tipe dasar dari iterasi, yaitu : U Generator Iteration U IFS Iteration U Formula Iteration
2.10. IFS Iteration IFS (iterated function system) adalah salah satu cara untuk membuat fraktal. IFS berdasar pada mengambil sebuah titik atau sebuah gambar dan mensubsitusikannya dengan beberapa titik atau gambar yang sama. Sebagai contoh, ada cara yang sangat mudah untuk membuat segitiga Sierpinski. Kita dapat memulai dengan segitiga sama sisi dan mensubsitusikannya dengan tiga segitiga kecil.
21
Gambar 2.4. segitiga Sierpinski
Kemudian kita mensubsitusi setiap segitiga tersebut dengan tiga segitiga yang lebih kecil lagi. Dengan mengiterasi proses ini dalam jumlah yang banyak, maka kita akan memperoleh gambar segitiga Sierpinski.
Gambar 2.5. gambar segitiga Sierpinski setelah 10 iterasi
Secara matematika, mensubsitusi sebuah bentuk dengan bentuk yang lain, disebut geometri transformasi. IFS membentuk fraktal dengan menggunakan geometri transformasi terhadap titik-titik secara berulang-ulang. Pada contoh segitiga di atas,
22
digunakan dua macam transformasi, yaitu translasi (pergerakan segitiga) dan dilatasi (mengubah ukuran segitiga).
2.11. Formula Iteration Formula iteration mencakup beberapa cara dalam membuat fraktal dengan cara melakukan perulangan pada sebuah formula matematika yang pasti atau beberapa formula matematika. Formula iteration berdasar pada mengambil sebuah angka dan mensubsitusikannya dengan angka yang lain dengan menggunakan sebuah formula matematika, dan hal tersebut dilakukan secara berulang-ulang. Tiga tipe fraktal yang dapat dibuat dengan menggunakan formula matematika yang berbeda-beda, adalah sebagai berikut : ℘ Strange Attractors : dimulai koordinat titik awal dan menentukan setiap titik berikutnya dengan menggunakan formula ℘ Julia Sets : dimulai dengan koordinat dari beberapa titik. Warnai berdasarkan apa yang terjadi pada titik tersebut setelah dilakukan iterasi. Lakukan hal yang sama pada setiap titik. ℘ Mandelbort Set : dimulai dengan titik (0,0). Gunakan formula dengan koordinat beberapa titik yang lainnya sebagai konstan dalam formula tersebut. Warnai titik tersebut berdasarkan apa yang terjadi pada (0,0) setelah dilakukan iterasi. Lakukan hal yang sama pada setiap titik.
23
Gambar 2.6 . contoh dari formula fraktal : Spider
2.12. Generator Iteration Generator iteration membentuk fraktal dengan cara mensubsitusi beberapa bentuk geometri dengan bentuk-bentuk lain dan dilakukan secara berulang-ulang. Untuk melakukan hal tersebut, kita mulai dengan gambar yang dinamakan base. Kemudian setiap bagiannya disubsitusi dengan gambar lain, yang akan disebut motif atau generator. Dalam gambar yang baru, kita akan mensubsitusi kembali setiap bagian dengan motif. Jika kita melakukan perulangan ini hingga banyaknya tak terhingga, maka kita akan mendapatkan sebuah fraktal. Proses tersebut yang dikenal dengan generator iteration. Tiga hal yang mempengaruhi base dan motif fraktal : 1. Bentuk dari base : bentuk base yang paling umum adalah sebuah bagian dari garis, sebuah kotak, dan sebuah segitiga sama sisi. 2. Bentuk dari motif : bentuk motif tentunya mempunyai efek yang paling besar dalam hasil akhir. Ada banyak macam motif dan jumlahnya tak terhingga. 3. Letak dari motif : jika base-nya adalah sebuah kotak atau sebuah segitiga, kita dapat menempatkan motif baik menghadap ke luar maupun ke dalam,
24
keduanya akan menghasilkan fraktal yang berbeda. Sebagai contohnya, dengan menggunakan base dan motif di bawah ini, kita akan mendapatkan dua fraktal yang berbeda.
Gambar 2.7. contoh base dan motif
Gambar 2.8. a. Koch Snowflake, b. Koch Antisnowflake
Gambar 2.9. Segitiga Sierpinski, dengan base dan motif awalnya
25