BAB II LANDASAN TEORI
2.1 Algoritma Dijkstra 2.1.1
Sejarah Algoritma Dijkstra Algoritma Dijkstra ditemukan oleh Edsger W. Dijkstra yang merupakan
salah satu varian bentuk algoritma popular dalam pemecahan persoalan yang terkait dengan masalah optimasi dan bersifat sederhana. Algoritma ini menyelesaikan masalah mencari sebuah lintasan terpendek (sebuah lintasan yang mempunyai panjang minimum) dari verteks a ke verteks z dalam graph berbobot, bobot tersebut adalah bilangan positif jadi tidak dapat dilalui oleh node negatif, namun jika terjadi demikian maka penyelesaian yang diberikan adalah infiniti. Algoritma Dijkstra melibatkan pemasangan label pada verteks. Misalkan L(v) menyatakan label dari verteks v. Pada setiap pembahasan, beberapa verteks mempunyai label sementara dan lain mempunyai label tetap. Misalkan T, menyatakan himpunan verteks yang mempunyai label sementara. Dalam menggambarkan algoritma tersebut verteks-verteks yang mempunyai label tetap akan dilingkari. Selanjutnya, jika L(v) adalah label tetap dari verteks v, maka L(v) merupakan panjang lintasan terpendek dari a ke v. Sebelumnya semua verteks mempunyai label sementara. Setiap interasi dari algoritma tersebut mengubah status satu label dari sementara ke tetap, sehingga algoritma dapat berakhir ketika z menerima sebuah label tetap. Pada bagian L(z) merupakan panjang lintasan terpendek dari a ke x. Pada algoritma Dijkstra node digunakan, karena algoritma Dijkstra menggunakan diagram pohon (tree) untuk penentuan jalur lintasan terpendek dan menggunakan graph yang berarah. 2.1.2 Cara Kerja Algoritma Dijkstra Algoritma Dijkstra mencari panjang lintasan terpendek dari verteks a ke verteks z dalam sebuah graph berbobot tersambung.
5
1.
Pada awalnya pilih node dengan bobot yang terendah dari node yang belum terpilih, diinisialisasikan dengan „0‟ dan yang sudah terpilih diinisialisasikan dengan „1‟.
2.
Bentuk yang terdiri dari node, status, bobot dan predecessor. Lengkapi kolom bobot yang diperoleh dari jarak node sumber ke semua node yang langsung terhubung dengan node sumber tersebut.
3.
Jika node sumber ditemukan maka tetapkan sebagai node terpilih.
4.
Tetapkan node terpilih dengan label permanen dan perbaharui node yang langsung terhubung.
5.
Tentukan node sementara yang terhubung pada node yang sudah terpilih sebelumnya dan meruopakan bobot terkecil dilihat dari tabel dan tentukan sebagai node terpilih berikutnya.
6.
Apakah node yang terpilih merupakan node tujuan? Jika ya, maka kumpulan node terpilih atau predecessor merupakan rangkaian yang menunjukkan lintasan terpendek.
7.
Begitu seterusnya hingga semua node terpilih.
Pseudocode algoritma Dijkstra adalah sebagai berikut : Procedure Dijkstra(INPUT m: matriks, a: simpul awal) {
Mencari lintasan terpendek dari simpul awal a ke semua simpul Lainnya. Masukan: matriks ketetanggan (m) dari graph berbobot G dan simpul awal
a Keluaran: lintasan terpendek dari a ke semua simpul lainnya. } Kamus: S: array [1..n] of integer d: array [1..n] of integer i: integer Algoritma: { Langkah 0 (inisialisasi) } Traversal [1..n] Si 0
6
di mai { Langkah 1: } Sa 1 da ∞ { langkah 1,3, ....., n-1:} Traversal {2...n-1} Cari j sedemikian sehingga Sj = 0 dan dj = min { d1,d2,....,dn} Sj 1 { simpul j sudah terpilih} Perbaharui d, untuk i = 1,2,3,s.d.n dengan: di (baru) = min { di (lama, dj + mji }
Jika menggunakan algoritma Dijkstra untuk menentukan jalur terpendek dari suatu graph, maka akan menemukan jalur yang terbaik, karena pada waktu penentuan jalur yang akan dipilih, akan dianalisis bobot dari node yang belum terpilih, lalu dipilih node dengan bobot yang terkecil. Jika ternyata ada bobot yang lebih kecil melalui node tertentu, maka bobot akan berubah. Algoritma Dijkstra akan berhenti ketika semua node sudah terpilih dan dengan algoritma Dijkstra ini dapat menemukan jarak terpendek dari seluruh node, tidak hanya node dari asal dan tujuan tertentu saja. Algoritma Dijkstra menggunakan waktu sebesar O(V*logV+E) dimana V dan E adalah banyaknya verteks dan arc. Kompleksitas algoritma Dijkstra adalah O(n2). Sehingga untuk mencari semua pasangan verteks terpendek, total waktu asimptotik
komputasinya
adalah:
T(n)=n.O(n2)=O(n3),
algoritma
lebih
menguntungkan dari sisi running time. (Henny Sahriza Lubis,2009). 2.2 Pengertian Materi Pembelajaran Materi Pembelajaran pada hakekatnya merupakan bagian tak terpisahkan dari Silabus, yakni perencanaan, prediksi dan proyeksi tentang apa yang akan dilakukan pada saat Kegiatan Pembelajaran.
Secara garis besar dapat
dikemukakan bahwa Materi pembelajaran (instructional materials) adalah
7
pengetahuan, keterampilan, dan sikap yang harus dikuasai peserta didik dalam rangka memenuhi standar kompetensi yang ditetapkan. Dalam mengimplementasikan Kurikulum Berbasis Kompetensi, E. Mulyasa (2003) mengetengahkan lima strategi pembelajaran yang dianggap sesuai dengan tuntutan Kurikukum Berbasis Kompetensi; yaitu : (1) Pembelajaran Kontekstual (Contextual Teaching Learning); (2) Bermain Peran (Role Playing); (3) Pembelajaran Partisipatif (Participative Teaching and Learning); (4) Belajar Tuntas (Mastery Learning); dan (5) Pembelajaran dengan Modul (Modular Instruction). Sementara itu, Gulo (2005) memandang pentingnya strategi pembelajaran inkuiri. Di bawah ini akan diuraikan secara singkat dari masing-masing strategi pembelajaran tersebut. 2.2.1 Pembelajaran Kontekstual (Contextual Teaching Learning) Pembelajaran Kontekstual (Contextual Teaching Learning) atau biasa disingkat CTL merupakan konsep pembelajaran yang menekankan pada keterkaitan antara materi pembelajaran dengan dunia kehidupan nyata, sehingga peserta didik mampu menghubungkan dan menerapkan kompetensi hasil belajar dalam kehidupan sehari-hari. Dalam pembelajaran kontekstual, tugas guru adalah memberikan kemudahan belajar kepada peserta didik, dengan menyediakan berbagai sarana dan sumber belajar yang memadai. Guru bukan hanya menyampaikan materi pembelajaran yang berupa hapalan, tetapi mengatur lingkungan dan strategi pembelajaran yang memungkinkan peserta didik belajar. Dengan mengutip pemikiran Zahorik, E. Mulyasa (2003) mengemukakan lima elemen yang harus diperhatikan dalam pembelajaran kontekstual, yaitu : 1.
Pembelajaran harus memperhatikan pengetahuan yang sudah dimiliki oleh peserta didik
2.
Pembelajaran dimulai dari keseluruhan (global) menuju bagian-bagiannya secara khusus (dari umum ke khusus)
8
3.
Pembelajaran harus ditekankan pada pemahaman, dengan cara: (a) menyusun konsep sementara; (b) melakukan sharing untuk memperoleh masukan dan tanggapan dari orang lain; dan (c) merevisi dan mengembangkan konsep.
4.
Pembelajaran ditekankan pada upaya mempraktekan secara langsung apa-apa yang dipelajari.
5.
Adanya refleksi terhadap strategi pembelajaran dan pengembangan pengetahuan yang dipelajari.
2.2.2 Bermain Peran (Role Playing) Bermain peran merupakan salah satu model pembelajaran yang diarahkan pada upaya pemecahan masalah-masalah yang berkaitan dengan hubungan antarmanusia (interpersonal relationship), terutama yang menyangkut kehidupan peserta didik. Pengalaman belajar yang diperoleh dari metode ini meliputi, kemampuan kerjasama, komunikatif, dan menginterprestasikan suatu kejadian Melalui bermain peran, peserta didik mencoba mengeksplorasi hubunganhubungan antarmanusia dengan cara memperagakan dan mendiskusikannya, sehingga secara bersama-sama para peserta didik dapat mengeksplorasi parasaanperasaan, sikap-sikap, nilai-nilai, dan berbagai strategi pemecahan masalah. Dengan mengutip dari Shaftel dan Shaftel, E. Mulyasa (2003) mengemukakan tahapan pembelajaran bermain peran meliputi : (1) menghangatkan suasana dan memotivasi peserta didik; (2) memilih peran; (3) menyusun tahap-tahap peran; (4) menyiapkan pengamat; (5) menyiapkan pengamat; (6) tahap pemeranan; (7) diskusi dan evaluasi tahap diskusi dan evaluasi tahap I ; (8) pemeranan ulang; dan (9) diskusi dan evaluasi tahap II; dan (10) membagi pengalaman dan pengambilan keputusan. 2.2.3 Pembelajaran Partisipatif (Participative Teaching and Learning) Pembelajaran
Partisipatif
(Participative
Teaching
and
Learning)
merupakan model pembelajaran dengan melibatkan peserta didik secara aktif dalam perencanaan, pelaksanaan, dan evaluasi pembelajaran. Dengan meminjam
9
pemikiran Knowles, (E.Mulyasa,2003) menyebutkan indikator pembelajaran partsipatif, yaitu : (1) adanya keterlibatan emosional dan mental peserta didik; (2) adanya kesediaan peserta didik untuk memberikan kontribusi dalam pencapaian tujuan; (3) dalam kegiatan belajar terdapat hal yang menguntungkan peserta didik. Pengembangan pembelajaran partisipatif dilakukan dengan prosedur berikut: 1.
Menciptakan suasana yang mendorong peserta didik siap belajar.
2.
Membantu peserta didik menyusun kelompok, agar siap belajar dan membelajarkan
3.
Membantu peserta didik untuk mendiagnosis dan menemukan kebutuhan belajarnya.
4.
Membantu peserta didik menyusun tujuan belajar.
5.
Membantu peserta didik merancang pola-pola pengalaman belajar.
6.
Membantu peserta didik melakukan kegiatan belajar.
7.
Membantu peserta didik melakukan evaluasi diri terhadap proses dan hasil belajar.
2.2.4 Belajar Tuntas (Mastery Learning) Belajar tuntas berasumsi bahwa di dalam kondisi yang tepat semua peserta didik mampu belajar dengan baik, dan memperoleh hasil yang maksimal terhadap seluruh materi yang dipelajari. Agar semua peserta didik memperoleh hasil belajar secara
maksimal,
pembelajaran
harus
dilaksanakan
dengan
sistematis.
Kesistematisan akan tercermin dari strategi pembelajaran yang dilaksanakan, terutama dalam mengorganisir tujuan dan bahan belajar, melaksanakan evaluasi dan memberikan bimbingan terhadap peserta didik yang gagal mencapai tujuan yang telah ditetapkan. Tujuan pembelajaran harus diorganisir secara spesifik untuk memudahkan pengecekan hasil belajar, bahan perlu dijabarkan menjadi satuan-satuan belajar tertentu,dan penguasaan bahan yang lengkap untuk semua tujuan setiap satuan belajar dituntut dari para peserta didik sebelum proses belajar melangkah pada tahap berikutnya. Evaluasi yang dilaksanakan setelah para peserta didik menyelesaikan suatu kegiatan belajar tertentu merupakan dasar untuk memperoleh balikan (feedback). Tujuan utama evaluasi adalah memperoleh informasi tentang pencapaian tujuan dan penguasaan bahan oleh peserta didik.
10
Hasil evaluasi digunakan untuk menentukan dimana dan dalam hal apa para peserta didik perlu memperoleh bimbingan dalam mencapai tujuan, sehinga seluruh peserta didik dapat mencapai tujuan ,dan menguasai bahan belajar secara maksimal (belajar tuntas). Strategi belajar tuntas dapat dibedakan dari pengajaran non belajar tuntas dalam hal berikut : (1) pelaksanaan tes secara teratur untuk memperoleh balikan terhadap bahan yang diajarkan sebagai alat untuk mendiagnosa kemajuan (diagnostic progress test); (2) peserta didik baru dapat melangkah pada pelajaran berikutnya setelah ia benar-benar menguasai bahan pelajaran sebelumnya sesuai dengan patokan yang ditentukan; dan (3) pelayanan bimbingan dan konseling terhadap peserta didik yang gagal mencapai taraf penguasaan penuh, melalui pengajaran remedial (pengajaran korektif). Di samping implementasi dalam pembelajaran secara klasikal, belajar tuntas banyak diimplementasikan dalam pembelajaran individual. Sistem belajar tuntas mencapai hasil yang optimal ketika ditunjang oleh sejumlah media, baik hardware maupun
software,
termasuk
penggunaan
komputer
(internet)
untuk
mengefektifkan proses belajar. 2.2.5 Pembelajaran dengan Modul (Modular Instruction) Modul adalah suatu proses pembelajaran mengenai suatu satuan bahasan tertentu yang disusun secara sistematis, operasional dan terarah untuk digunakan oleh peserta didik, disertai dengan pedoman penggunaannya untuk para guru. Pembelajaran dengan sistem modul memiliki karakteristik sebagai berikut: 1. Setiap modul harus memberikan informasi dan petunjuk pelaksanaan yang jelas tentang apa yang harus dilakukan oleh peserta didik, bagaimana melakukan, dan sumber belajar apa yang harus digunakan. 2. Modul meripakan pembelajaran individual, sehingga mengupayakan untuk melibatkan sebanyak mungkin karakteristik peserta didik. Dalam setiap modul harus : (1) memungkinkan peserta didik mengalami kemajuan belajar sesuai dengan kemampuannya; (2) memungkinkan peserta didik mengukur
11
kemajuan belajar yang telah diperoleh; dan (3) memfokuskan peserta didik pada tujuan pembelajaran yang spesifik dan dapat diukur. 3. Pengalaman belajar dalam modul disediakan untuk membantu peserta didik mencapai tujuan pembelajaran seefektif dan seefisien mungkin, serta memungkinkan peserta didik untuk melakukan pembelajaran secara aktif, tidak sekedar membaca dan mendengar tapi lebih dari itu, modul memberikan kesempatan untuk bermain peran (role playing), simulasi dan berdiskusi. 4. Materi pembelajaran disajikan secara logis dan sistematis, sehingga peserta didik dapat menngetahui kapan dia memulai dan mengakhiri suatu modul, serta tidak menimbulkan pertanyaaan mengenai apa yang harus dilakukan atau dipelajari. 5.
Setiap modul memiliki mekanisme untuk mengukur pencapaian tujuan belajar peserta didik, terutama untuk memberikan umpan balik bagi peserta didik dalam mencapai ketuntasan belajar.
2.2.6 Pembelajaran Inkuiri Pembelajaran inkuiri merupakan kegiatan pembelajaran yang melibatkan secara maksimal seluruh kemampuan siswa untuk mencari dan menyelidiki sesuatu (benda, manusia atau peristiwa) secara sistematis, kritis, logis, analitis sehingga mereka dapat merumuskan sendiri penemuannya dengan penuh percaya diri. Joyce (Gulo, 2005) mengemukakan kondisi- kondisi umum yang merupakan syarat bagi timbulnya kegiatan inkuiri bagi siswa, yaitu: (1) aspek sosial di dalam kelas dan suasana bebas-terbuka dan permisif yang mengundang siswa berdiskusi; (2) berfokus pada hipotesis yang perlu diuji kebenarannya; dan (3) penggunaan fakta sebagai evidensi dan di dalam proses pembelajaran dibicarakan validitas dan reliabilitas tentang fakta, sebagaimana lazimnya dalam pengujian hipotesis, Proses inkuiri dilakukan melalui tahapan-tahapan sebagai berikut: 1.
Merumuskan masalah; kemampuan yang dituntut adalah : (a) kesadaran terhadap masalah; (b) melihat pentingnya masalah dan (c) merumuskan masalah.
12
2.
Mengembangkan
hipotesis;
kemampuan
yang
dituntut
dalam
mengembangkan hipotesis ini adalah : (a) menguji dan menggolongkan data yang dapat diperoleh; (b) melihat dan merumuskan hubungan yang ada secara logis; dan merumuskan hipotesis. 3.
Menguji jawaban tentatif; kemampuan yang dituntut adalah : (a) merakit peristiwa, terdiri dari : mengidentifikasi peristiwa yang dibutuhkan, mengumpulkan data, dan mengevaluasi data; (b) menyusun data, terdiri dari : mentranslasikan data, menginterpretasikan data dan mengkasifikasikan data.; (c) analisis data, terdiri dari : melihat hubungan, mencatat persamaan dan perbedaan, dan mengidentifikasikan trend, sekuensi, dan keteraturan.
4.
Menarik kesimpulan; kemampuan yang dituntut adalah: (a) mencari pola dan makna hubungan; dan (b) merumuskan kesimpulan
5.
2.3
Menerapkan kesimpulan dan generalisasi
Teori Computer Base Learning. Menurut sebuah tulisan dalam jurnal ACM SIGCHI, ilmu Interaksi
Manusia dan Komputer adalah sebuah bidang ilmu yang mempelajari bagaimana mendesain, mengevaluasi dan menerapkan (mengimplementasikan) sistem komputer yang interaktif untuk dipergunakan oleh manusia dan yang disertai kajian tentang berbagai fenomena yang menyertainya (Sharp et. al. Dikutip dalam Anis Cherid, 2007). Terdapat empat aktifitas yang dilakukan dalam melakukan proses perancangan interaksi (Sharp et. al. Dikutip dalam Anis Cherid, 2007): 1. Mengidentifikasi need (kebutuhan pengguna) dan menetapkan requirement (fasilitas yang disediakan perangkat lunak) untuk kebutuhan user experience. 2. Membuat beberapa rancangan yang memenuhi kebutuhan tersebut. 3. Membuat versi yang interaktif dari berbagai rancangan tersebut sehingga dapat dikomunikasikan dan dapat digunakan. 4. Mengevaluasi secara berkelanjutan selama berlangsungnya proses, tentang apa yang telah dibuat dan seperti apa user experience yang diberikan oleh rancangan tersebut.
13
Tujuan dirancangnya sebuah interaksi adalah mencapai suatu tingkat user experience tertentu, yaitu bagaimana dampak sebuah produk terhadap pemakai, dalam hal perasaan pemakai terhadap produk tersebut dan kesenangan serta rasa puas yang diperoleh ketika melihatnya, memegangnya dan membuka atau menutupnya. Termasuk di dalamnya adalah kesan umum tentang seberapa menyenangkannya menggunakan produk tersebut, hingga berbagai kesan khusus tentang efek sensual yang dihasilkan oleh komponen detil produk, misalnya bagaimana mulusnya sebuah tombol dapat diputar atau suara klik yang dihasilkan jika sebuah tombol ditekan (Sharp et. Al. Dikutip dalam Anis Cherid, 2007). Terdapat beberapa prinsip dalam melakukan perancangan sistem yang interaktif (Sharp et. Al. Dikutip dalam Anis Cherid, 2007): 1. Visibility (berbagai komponen interaksi terlihat jelas dan mudah dicapai) 2. Feedback (tersedianya umpan balik yang instan atas setiap interaksi yang dilakukan oleh pemakai) 3. Constraints (pembatasan terhadap interaksi yang dapat dilakukan pemakai pada suatu saat, untuk mengurangi kesalahan yang mungkin dilakukan pemakai) 4. Consistency (antarmuka harus dirancang agar aktifitas yang serupa dapat diselesaikan dengan menggunakan cara-cara dan elemen-elemen yang serupa) 5. Affordance (ciri komponen interaksi harus dibuat agar mudah dikenali oleh pemakai sebagai komponen interaksi, misalnya tombol yang bisa menerima klik mudah dikenali karena bentuknya dan karena pointer mouse berubah ketika berada di atasnya) Terkait dengan komponen interaksi dan komponen visual yang sebaiknya disediakan dalam sebuah pembelajaran dibantu komputer, beberapa hal di bawah ini perlu untuk diperhatikan untuk meningkatkan kualitas pembelajaran (Piskurich, Dikutip dalam Anis Cherid, 2000):
Gunakan pencabangan jika memungkinkan.
Gunakan simulasi untuk meningkatkan keinteraktifan.
Contoh hubungan sebab-akibat ditampilkan di mana saja dimungkinkan.
14
Gambar dirinci hanya sampai tingkat yang dibutuhkan untuk menyampaikan materi.
Latihan yang melibatkan click-and-drag diberikan untuk membantu keahlian dalam pengurutan atau penyusunan.
Warna dan bayang-bayang dipergunakan untuk menarik perhatian peserta terhadap daerah tertentu pada layar monitor.
Semua gambar memiliki resolusi yang baik dan enak dibaca, serta memiliki keterkaitan dengan materi.
Sediakan sebuah halaman yang berisi course map atau outline untuk membantu menunjukkan arah bagi peserta.
Gunakan hot spot (hyperlink) untuk mengubah proses pembelajaran menjadi proses
penemuan
(discovery),
yaitu
dengan
mengarahkan
peserta
pembelajaran untuk memilih apa yang ingin mereka pelajari.
Buat simulasi yang di dalamnya peserta harus membuat keputusan dan kemudian melihat apa yang terjadi akibat keputusan yang diambil.
Gunakan simulasi berbentuk cerita untuk melakukan proses evaluasi.
Ketika sebuah simulasi mengharuskan peserta untuk bereaksi, gunakan pemberian umpan balik dalam tiga tahap untuk jawaban yang salah. Pertama, program pembelajaran akan menanyakan peserta untuk mencoba lagi. Kedua, program tersebut kembali ke posisi sebelumnya untuk menunjukkan apa yang seharusnya dilakukan. Ketiga, program menyatakan: "Perhatikan bagaimana saya melakukannya untuk anda".
Pendekatan umpan-balik tiga tingkat juga berlaku untuk self-quizzes, yaitu akan memberikan pesan "silakan coba lagi" jika jawaban salah untuk yang pertama kali, kembali ke lokasi materi jika jawaban salah untuk kedua kalinya dan jika salah untuk yang ketiga kali maka program akan menampilkan jawabannya.
Latar belakang layar sebaiknya (i) dipilih untuk menghasilkan dampak emosional, (ii) tidak mengganggu konsentrasi, (iii) menggunakan warnawarna soft dan gambar-gambar pola yang sederhana.
Tulisan yang dipergunakan sebaiknya: (i) memiliki arah penulisan yang sama dengan budaya setempat, (ii) seminimal mungkin penggunaannya, (iii) tidak
15
mengalami scroll secara otomatis, (iv) gunakan jenis font yang sedikit (maksimum 2 atau 3 jenis), (v) biasanya menggunakan huruf balok, (vi) gunakan huruf yang paling mudah dibaca.
2.4
Metodologi Rekayasa Perangkat Lunak Rekayasa perangkat lunak adalah suatu disiplin ilmu yang membahas
semua aspek produksi perangkat lunak. Metode yang umum diterapkan di dalam rekayasa perangkat lunak dalam pengembangan perangkat lunak yaitu menggunakan metode waterfall. Pendekatan Model Waterfall berisi rangkaian aktivitas proses yang disajikan dalam proses yang terpisah, seperti spesifikasi kebutuhan, implementasi, desain perangkat lunak, uji coba dan sebagainya. Setelah setiap langkah didefinisikan, pengembangan dilanjutkan pada langkah berikutnya. (Arief Hamdani, 1999:1). Metode Waterfall juga disebut dengan Classic Life Cycle. Metode ini membutuhkan pendekatan sistematis dan sekuensial dalam pengembangan perangkat lunak, dimulai dari tingkat sistem dan kemajuan melalui perencanaan, analisis,
desain
(design),
pemrograman
(coding),
uji
coba
(testing),
implementation dan pemeliharaan (maintenance). Menurut Jogiyanto (2005:41). “Metode waterfall merupakan suatu bentuk pengembangan sistem yang digunakan menggambarkan tahapan utama dan langkah-langkah tersebut dalam proses pengembangannya”. Model Waterfall mempunyai Fase dalam penerapannya, yaitu : 1. Sistem Engineering 2. Analisa dan definisi kebutuhan 3. Design 4. Testing
16
5. Coding 6. Maintenance 1) Sistem Enginnering Software merupakan bagian terbesar dari sistem, maka pekerjaan dengan cara menerapkan kebutuhan semua elemen sistem dan mengalokasikan sebagian kebutuhan ke software harus berhubungan dengan elemen lain, seperti hardware dan database. 2) Analisa kebutuhan sistem Suatu proses pengumpulan kebutuhan software untuk mengerti sifat-sifat program yang dibentuk software enginnering, atau analisa harus mengerti fungsi software yang diinginkan, performance dan interface terhadap elemen lainnya. Hasil dari analisa ini didokumentasikan dan di review atau dibahas atau ditinjau bersama-sama costumer. 3) Desain (Design) Proses desain menterjemahkan kebutuhan ke dalam representasi software yang dapat diukur sebelum mulai coding. Hasil dari desain ini didokumentasikan dan menjadi bagian dari konfigurasi software. 4) Persandian (Coding) Bentuk rancangan diubah menjadi suatu bahasa pemrograman yang dapat dimengerti oleh mesin komputer. 5) Pengetesan (Testing) Setelah objek program dihasilkan, pengetesan (testing) program dimulai, proses testing difokuskan pada logika internal software. Jaminan bahwa semua pernyataan atau statements sudah di test dan lingkungan eksternal menjamin bahwa definisi masukkan (input) akan menghasilkan keluaran (output) yang diinginkan. 6) Pemeliharaan (Maintenance) Software yang sudah dijadi dapat berubah dikarenakan :
17
a. Software mengalami kesalahan (error). b. Sofware harus diadaptasi untuk menyesuaikan dengan lingkungan eksternal, misal : sistem operasi baru atau peripheral baru. 2.5 UML (Unified Modeling Language) Unified Modeling Language (selanjutnya disebut UML) adalah keluarga notasi grafis yang didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi objek (Fowler, 2005:1). Selain itu UML juga dapat diartikan sebagai sebuah bahasa yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak (Dharwiyanti dan Wahono, 2003:2). UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulis. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya yaitu : Grady Booch OOD (ObjectOriented Design), Jim Rumbaugh OMT (Object Modelling Technique) dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). Dalam perancangan model perangkat lunak, UML mendukung 3 (tiga) jenis model yaitu: A. Model Fungsional (Functional Model) Model fungsional menunjukkan fungsionalitas sebuah sistem dari sudut pandang pengguna. B. Model Obyek (Object Model) Model obyek menunjukkan struktur dan sub struktur dari sistem menggunakan obyek, atribut, operasi dan asosiasi.
18
C. Model Dinamis (Dynamic Model) Model dinamis menunjukkan sifat internal dari sebuah sistem. Piranti lunak berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan dikombinasikan. UML terdiri atas 13 jenis diagram resmi seperti tertulis dalam Tabel 2.1. Tabel 2.1 Jenis Diagram Resmi UML. No. Diagram
Kegunaan
1.
Activity
Behavior prosedural dan parallel
2.
Class
Class, fitur, dan hubungan-hubungan
3.
Communication
Interaksi antar objek; penekanan pada jalur
4.
Component
Struktur dan koneksi komponen
5.
Composite structure
Dekomposisi runtime sebuah class
6.
Deployment
Pemindahan artifak ke node
7.
Interaction overview
Campuran sequence dan activity diagram
8.
Object
Contoh konfigurasi dari contoh-contoh
9.
Package
Struktur hirarki compile-time
10.
Sequence
Interaksi antar objek; penekanan pada sequence
11.
State machihne
Bagaimana even mengubah objek selama aktif
12.
Timing
Interaksi antar objek; penekanan pada timing
13.
Use Case
Bagaimana
pengguna
berinteraksi
dengan
sebuah sistem Semakin kompleks bentukan sistem yang dibuat, maka semakin sulit komunikasi antara orang-orang yang saling terkait dalam pembuatan dan pengembangan perangkat lunak yang akan dibuat. Pada masa lalu, UML 19
mempunyai peranan sebagai gambaran perangkat lunak untuk analisis sistem, designer dan programmer. UML memberikan jalur komunikasi dari sistem analisis ke designer, lalu kepada programmer mengenai rancangan perangkat lunak yang akan dikerjakan. 2.5.1 Tujuan dan Cakupan UML Menurut Suhendar dan Gunadi (2002:30) bahwa tujuan utama UML adalah : A. Memberikan model yang siap pakai, bahasa pemodelan visual yang ekspresif untuk mengembangkan dan saling menukar model dengan mudah dan dimengerti secara umum. B. Memberikan
bahasa
pemodelan
yang
bebas
dari
berbagai
bahasa
pemrograman dan proses rekayasa. C. Menyatukan praktek-praktek terbaik yang terdapat dalam bahasa pemodelan. Diagram UML yang akan dibahas pada bab ini adalah diagram Use Case, diagram Sequence, diagram Class, diagram Activity. 2.5.2 Diagram Use Case Diagram use case adalah teknik untuk merekam persyaratan fungsional sebuah sistem. Diagram use case mendeskripsikan interaksi tipikal antara para pengguna sistem dengan sistem itu sendiri, dengan memberi sebuah narasi tentang bagaimana sistem tersebut digunakan (Fowler, 2005:141). Diagram use case menggambarkan fungsionalitas yang diharapkan dari sebuah sistem yang ditekankan adalah apa yang diperbuat sistem, dan bukan bagaimana sistem berinteraksi dengan dunia luar. Sebuah diagram use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Diagram use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, membuat sebuah daftar belanja, dan sebagainya. Seorang atau sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Diagram use case dapat sangat membantu bila kita sedang menyusun persyaratan (requirement) sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem.
20
Sebuah diagram use case dapat memasukkan fungsionalitas Diagram use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa diagram use case yang dimasukkan akan dipanggil setiap kali diagram use case yang memasukkan dieksekusi secara normal. Sebuah diagram use case dapat dimasukkan oleh lebih dari satu diagram use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang umum (common). Diagram use case dapat digunakan selama proses analisis untuk menangkap requirements sistem dan untuk memahami bagaimana sistem seharusnya bekerja. Selama tahap desain, diagram use case menetapkan perilaku (behavior) sistem saat diimplementasikan. Dalam sebuah model mungkin terdapat satu atau beberapa diagram use case. Notasi-notasi yang digunakan dalam pemodelan use case, seperti pada Tabel 2.2. Tabel 2.2 Notasi Diagram Use Case Notasi
Deskripsi Aktor Merupakan sebuah peran yang dimainkan seorang pengguna dalam kaitannya dengan sistem
Use Case Digunakan
unutk
menggambarkan
spesifikasi
pekerjaan (job specification) dan deskripsi pekerjaan (job decription), serta keterkaitan antar pekerjaan (job). Generalization Aliran
proses
(relationship),
digunakan
untuk
menggambarkan hubungan antara usecase dengan use case lainnya.
21
Tabel 2.2 Notasi Diagram Use Case (lanjutan) Dependency Aliran perpanjangan (extension points), digunakan untuk menggambarkan hubungan antara usecase ------------------->
dengan Use Case yang diperpanjangkan (extended Use Case) maupun dengan Use Case yang dimasukkan (included Use Case). Aliran
yang
digunakan
untuk
menggambarkan
hubungan antara actor dengan usecase. Extended <<extended>>
Kondisi yang mendeskripsikan apa yang terjadi antara Use Case dengan Use Caseyang diperpanjang Include Adalah kondisi aliran proses langsung (directed
<
>
relationship) antara dua usecase yang secara tak langsung menyatakan kelakuan (behaviour) dari Use Case yang dimasukkan. Has
<>
Adalah kondisi yang mendeskripsikan apa yang terjadi antara actor dengan Use Case.
Actor
Use Case Komunikasi Menguhubungi Kantor Tiket KA
Membuat Janji
Pemesan Tiket KA Gambar 2.1 Contoh diagram Use Case Pada Gambar 2.1 terdapat penggunaan diagram Use Case pada sebuah Sebuah Kantor Pemesanan Tiket KA, dalam gambar terdapat seorang pemesan
22
tiket KA menghubungi Kantor Tiket KA untuk membuat janji untuk memesan tiket KA. Operator Tiket KA mendapatkan tiket tersedia dengan waktu yang ditentukan oleh pemesan tiket KA pada buku pemesanan tiket dan memasukkan janji tersebut kedalam waktu yang ditentukan oleh pemesan tiket KA. Notasi-notasi yang digunakan dalam pemodelan use case yang terdapat pada Gambar 2.1 adalah: 1. Aktor, merupakan sebuah peran yang dimainkan seorang pengguna dalam interaksinya dengan sistem. 2. Use Case adalah teknik berdasarkan skenario dalam UML yang mengidentifikasi aktor-aktor dalam sebuah interaksi dan yang menggambarkan interaksi itu sendiri. 3. Generalization adalah penghubung anatara aktor dengan use case. 2.5.3 Diagram Sequence Sebuah diagram sequence secara khusus menjabarkan aktivitas sebuah skenario tunggal. Diagram tersebut menunjukkan sejumlah objek contoh dan pesan-pesan yang melewati objek-objek didalam Use Case diagram (Fowler, 2005:81). Sequence diagram menunjukkan interaksi dengan menampilkan partisipan dengan garis alir secara vertikal dan pengurutan pesan dari atas ke bawah. Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah kejadian (event) untuk menghasilkan output tertentu. Masing-masing objek termasuk aktor memiliki lifeline vertikal. Pesan digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Notasi sequence diagram pada Tabel 2.3. Tabel 2.3 Notasi Diagram Sequence. No 1
Notasi
Keterangan Frame, digunakan untuk menggambarkan sebuah interaksi.
23
Tabel 2.3 Notasi Diagram Sequence (lanjutan). 2
Lifeline,
digunakan
untuk
mempresentasikan
sebuah individu dalam interaksi dan hanya sebuah entitas interaksi. 3
Execution
Specification,
mengambarkan
spesifikasi
digunakan dari
sebuah
untuk unit
kelakuan atau aksi antar lifeline. 4
1: message
Pesan (message), digunakan untuk mendeskripsikan pesan yang ada antar lifeline.
5
Lost Message, digunakan untuk menggambarkan pesan yang mendefinisikan komunikasi particular antara lifelines dalam interaksi lifeline n+1 ke lifeline n.
6
Found Message, digunakan untuk menggambarkan sebuah pesan yang mendefinisikan komunikasi particular antara lifelines dalam interaksi lifeline
n
ke lifeline n+1. 7
Object, digunakan untuk menggambarkan pelaku atau pengguna dalam usecase. Pelaku ini meliputi manusia atau sistem komputer atau subsistem lain yang memiliki metode untuk melakukan sesuatu.
8
Actor, digunakan untuk menggambarkan pelaku atau pengguna dalam Use Case. Pelaku ini meliputi manusia atau sistem komputer atau subsistem lain yang memiliki metode untuk melakukan sesuatu.
2.5.4 Diagram Class Diagram kelas (class diagram) sebuah spesifikasi yang jika di instasiasikan akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan 24
desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metode/fungsi). Simbol antar kelas lihat pada Tabel 2.4. Tabel 2.4 Simbol antar Kelas No
Notasi
Keterangan Composition
1.
Jika sebuah kelas tidak bisa berdiri sendiri dan harus merupakan bagian dari kelas yang lain, maka class tersebut memiliki relasi. Composition terhadap class tempat dia bergantung tersebut. Sebuah relationship composition digambarkan sebagai garis dengan ujungberbentuk jajaran genjang berisi solid Dependency
2.
Kadangkala sebuah kelas menggunkana elas yang lain. Hal ini disebut dependency. Umumnya penggunaan
dependency
digunakan
unutk
menunjukkan operassi pada suatu kelas yang menggunakan kelas lain. Agregation 3.
Mengindikasikan keseluruhan bagian relationship dan biasanya disebut sebagai relasi ”mempunyai sebuah” atau ”bagian dari” sebuah agregation digambarkan sebagai sebuah garis dengan sebuah jajaran genjang yang tidak berisi solid. Generalization
4.
Sebuah relasi generalization sepadan dengan sebuah relasi inheritance pada konsep berorientasi objek. Sebuah generalization dilambangkan dengan sebuah panah dengan kepala panah yang tidak solid yang mengarah ke kelas ”parent”-nya/ induknya.
25
2.5.5 Diagram Aktifitas Diagram Aktifitas adalah teknik untuk menggambarkan logika prosedural, proses bisnis, dan jalur kerja. Dalam beberapa hal, diagram ini memainkan peran mirip sebuah diagram alir, tetapi perbedaan prinsip antara diagram ini dan notasi diagram alir adalah diagram ini mendukung behavior paralel (Fowler, 2005:163). Diagram Aktifitas memungkinkan siapapun yang melakukan proses untuk memilih urutan dalam melakukannya. Dengan kata lain, diagram hanya menyebutkan aturan-aturan rangkaian dasar yang harus diikuti. Hal ini penting untuk permodelan bisnis, karena proses-proses sering muncul secara paralel. Ini juga berguna pada algoritma yang bersamaan, dimana urutan-urutan independen dapat melakukan hal-hal secara paralel. Tabel 2.5 adalah Notasi Diagram Aktivitas. No Notasi
Keterangan
1.
Aktivitas, digunakan untuk menggambarkan aktifitas dalam diagram aktifitas.
2.
Node keputusan (decision node), digunakan untuk menggambarkan kelakuan pada kondisi tertentu.
3.
Titik awal, digunakan untuk menggambarkan awal dari diagram aktifitas.
4.
Titik akhir, digunakan untuk menggambarkan akhir dari diagram aktifitas.
5.
Akhir
alur
(flow
final),
digunakan
untuk
menghancurkan semua tanda yang datang dan tak memiliki efek alur dalam aktifitas. 6.
Aksi (action), digunakan untuk menggambarkan alur antara aksi dengan aksi, titik awal dengan aksi, atau aksi dengan titik akhir.
26
Tabel 2.5 adalah Notasi Diagram Aktivitas (lanjutan). 7.
Aksi penerimaan kejadian(accept event action), sebuah aksi yang menunggu kejadian dari suatu peristiwa bertemu kondisi yang spesifikasi.
8.
Datastore digunakan untuk menjaga agar semua <>
tanda yang masuk dan menduplikasikannya saat mereka dipilih untuk pindah ke alur selanjutnya (downstream).
9.
Node fork memiliki satu aksi yang masuk dan beberapa aksi yang keluar.
10.
Join
node
digunakan
untuk
menggambarkan
beberapa aksi yang masuk dan satu aksi yang keluar.
2.6 Pengujian BLACK-BOX Pengujian black-box berfokus pada persyaratan fungsional perangkat lunak. Pengujian ini memungkinkan analis sistem memperoleh kumpulan kondisi input yang akan mengerjakan seluruh keperluan fungsional program. Tujuan metode ini mencari kesalahan pada: Fungsi yang salah atau hilang Kesalahan pada interface Kesalahan pada struktur data atau akses database Kesalahan performansi Kesalahan inisialisasi dan tujuan akhir
2.7 Konsep Dasar Adobe Flash CS3 Adobe Flash CS3 (dahulu bernama Macromedia Flash) adalah salah satu perangkat lunak komputer yang merupakan produk unggulan Adobe Systems. 27
Adobe Flash CS3 digunakan untuk membuat gambar vektor maupun animasi gambar tersebut. Berkas yang dihasilkan dari perangkat lunak ini mempunyai file extension .swf dan dapat diputar di penjelajah web yang telah dipasangi Adobe Flash Player. Flash menggunakan bahasa pemrograman bernama ActionScript yang muncul pertama kalinya pada Flash 5. Adobe Flash CS3 merupakan sebuah program yang didesain khusus oleh Adobe dan program aplikasi standar authoring tool professional yang digunakan untuk membuat animasi dan bitmap yang sangat menarik untuk keperluan pembangunan situs web yang interaktif dan dinamis. Flash didesain dengan kemampuan untuk membuat animasi 2 dimensi yang handal dan ringan sehingga Flash banyak digunakan untuk membangun dan memberikan efek animasi pada website, CD Interaktif dan yang lainnya. Aplikasi Flash merupakan sebuah standar aplikasi industri perancangan animasi web dengan peningkatan pengaturan dan perluasan kemampuan integrasi yang lebih baik. dalam aplikasinya juga tersedia sebuah alat untuk men-debug script. Dengan menggunakan Code hint untuk mempermudah dan mempercepat pembuatan
dan
pengembangan
isi
ActionScript
secara
otomatis.
(http://wikipedia.org/). 2.7.1 ActionScript ActionScript adalah bahasa yang ditulis untuk software Macromedia Flash. Flash asalnya dibuat sebagai software animasi web dan ActionScript diintegrasikan ke representasi timeline. ActionScript berbasiskan pada JavaScript dan processing dibuat menggunakan Java, jadi terdapat beberapa kesamaan antara kedua sistem tersebut. Menggambar, kode ActionScript untuk menggambar sangat dioptimasi dan bentuk digambar ke layar lebih cepat. Menghitung/kalkulasi, ActionScript sangat lambat dalam melakukan kalkulasi dan processing jauh lebih baik untuk aplikasi yang memuat sejumlah besar elemen. Operasi Pixel, ActionScript dibuat untuk vector drawing dan dengan demikian mengabaikan kemungkinan untuk secara langsung memanipulasi piksel. Objek, ActionScript secara inheren berorientasi objek, sementara processing dapat ditulis dalam style prosedural maupun berorientasi objek. Hal ini membuat pelajar
28
yang belajar dengan processing untuk memahami program pertama dibuatnya tanpa harus terlebih dahulu memahami metafor object-oriented. 2.7.2 Contoh Membuat Aplikasi di Flash CS3 Menjelaskan langkah-langkah untuk membuat salah satu pembuatan aplikasi di Flash CS3. Penulis membuat aplikasi sederhana. Tahap pertama yang dilakukan adalah membuka program Adobe Flash CS3, dengan memilih Pada tipe dari file Flash. Anda akan ditunjukkan jendela Welcome Screen, seperti terlihat dalam Gambar 2.2.
Gambar 2.2 Membuat Dokumen Baru
Didalam Welcome Screen anda dapat memilih dalam tipe mana yang akan anda buat dalam pembuatan aplikasinya. Disini pilih tipe Flash File (ActionScript 2.0) sebagai pilihan untuk membuat aplikasinya. Maka selanjutnya akan tampil jendela Adobe Flash CS3. Seperti Gambar 2.3.
29
Gambar 2.3 Tampilan Layar Dokumen Baru Pada tahap ke-2, aturlah jendela lembar kerja (Stage), dengan merubahnya di dalam Properties ► Size yang terdapat dibawah layar lembar kerja (Stage), maka akan tampil jendela seperti Gambar 2.4.
Gambar 2.4 Mengatur Ukuran Stage
Kemudian ubahlah ukuran dari width menjadi 600 px dan ukuran dari height 400 px, setelah itu pilih tombol OK. Langkah selanjutnya buatlah kotak di Stage dengan memilih di panel Rectangle Tool dan atur warnanya menjadi abuabu (#CCCCCC) dan tempatkan di lembar kerja (stage), seperti Gambar 2.5.
30
Gambar 2.5 Membuat Kotak di Lembar Kerja (Stage) Kemudian buatlah Button dengan memililih menu Window ► Common Libraries ► Button, maka akan tampil (Library-Button), kemudian pilihlah salah satu button, kemudian tempatkan di lembar kerja (Stage), beri nama setiap tombol menjadi Tombol 1 untuk Button1, Tombol 2 untuk Button 2 dan Tombol 3 untuk Button 3, seperti Gambar 2.6.
Gambar 2.6 Membuat Button di Stage Langkah selanjutnya dengan meng
konvert gambar kotak menjadi movie
clip dengan menekan tombol F8 atau memilih menu Modify ► Convert to Symbol.., kemudian ganti nama menjadi Screen dan pilih pula typenya dengan memilih Movie Clip, Pilih Ok. Kemudian double klik Movie Clip Screen dan
31
ubahlah nama Layer yang berada di Timeline menjadi “teks”, buat frame yang baru dengan mengklik kanan pilih Insert Keyframe, kemudian pilih Text Tool ketikkan “Animasi 1” dengan ditempatkan ditengah-tengah movie clip Screen dan buatlah frame baru di frame 10 dengan mengklik kanan Insert Frame atau dengan memilih menu Insert ► Timeline ► Insert Frame dan kemudian lakukan hal yang sama dengan membuat tulisan Animasi 2 dengan klik kanan dan pilih Insert Keyframe di frame 11 dan Insert Frame di frame 20, kemudian lakukan hal yang sama lagi untuk tulisan “Animasi 3” dengan membuat Insert Keyframe di frame 21 dan Insert Frame sampai di frame 30. Langkah selanjutnya yaitu membuat Layer baru dan ubah nama menjadi Layer “action” dan buatlah frame sesuai pada di Layer teks tanpa membuat TextTool lagi. Ketikkan script Stop(); di setiap keyFrame dan klik frame 2 di layer action dan berikan berinama “Animasi 1” pada menu Properties, lakukan hal yang sama untuk memberikan nama frame di frame 11 yaitu “Animasi 2” dan di frame 21 yaitu “Animasi 3”. Fungsi memberikan nama pada frame yang diberinama yaitu sebagai tanda pengenal (attribute),
bila frame dipanggil untuk menampilkan
tulisan Animasi 1,Animasi 2, Animasi 3 di lembar kerja(Stage) sesuai dengan nama frame yang dipanggil. Hasilnya seperti Gambar 2.7.
Gambar 2.7 Membuat Frame di movieclip Scene
32
Langkah lanjutnya memberikan script pada button tombol supaya animasi dapat saling berinteraksi dengan animasi lainnya. Pilihlah Tombol 1, kemudian pilih menu Action dengan menekan F9 atau memilih menu Window ► Action, ketikkan script seperti di bawah ini.
on(release) { tellTarget("/Tampilan"){ gotoAndPlay("Animasi 1"); }}
Pada script diatas merupakan script pada Tombol yang berfungsi untuk memanggil nama frame dari “Animasi 1” yang terdapat didalam movieclip tampilan. Kemudian klik Tombol 2 berikan juga script pada button Tombol 2. Ketikkan script seperti dibawah ini. on(release) { tellTarget("/Tampilan"){ gotoAndPlay("Animasi 2"); }} Pada script diatas berfungsi untuk memanggil nama frame dari “Animasi 2” yang terdapat didalam movieclip “Tampilan”, Kemudian berikan juga script pada button Tombol 3. Ketikkan script seperti dibawah ini. on(release) { tellTarget("/Tampilan"){ gotoAndPlay("Animasi 3"); }}
Jika semua tombol telah diberikan script, maka jalankah program dengan menekan memilih menu Control ► Test Movie atau dengan menekan Ctrl+Enter. Maka bila Tombol 1 ditekan maka akan memanggil nama frame Animasi 1 yang terdapat di dalam movieclip Tampilan sehingga akan tampil
33
tulisan Animasi 1 dan seterusnya untuk Tombol 2 akan memanggil nama Frame “Animasi 2” sehingga akan Menampilkan tulisan Animasi 2 dan untuk Tombol 3 juga akan memanggil nama frame yaitu Animasi 3 dan akan menampilkan tulisan Animasi 3 di Movie Clip Tampilan.
34