Teknik Pemrograman Terstruktur

Oleh Amrizal S.kom., M.si

917 KB 7 tayangan 0 unduhan
 


Bagikan artikel

Transkrip Teknik Pemrograman Terstruktur

i TEKNIK PEMROGRAMAN TERSTRUKTUR AMRIZAL, S.KOM., M.SI ii tEKNIK PEMROGRAMAN TERSTRUKTUR AMRIZAL, S.KOM., M.SI iii Teknik Pemrograman Terstruktur Oleh Amrizal, S.Kom., M.SI Hak Cipta @ 2014 Pada Penulis Penyusun : Amrizal, S.Kom., M.SI Editor : Nia Ekawati, S.Kom., M.SI Penerbit : Karya Mitra Sejati ISBN : 978-602-7782-05-1 iv KATA PENGANTAR Dalam membangun sebuah aplikasi pemrograman, diperlukan sebuah teknik pemrograman yang dapat memudahkan dalam perencanaan dan pengorganisasian, namun dalam kenyataannya masih banyak ditemukan permasalahan-permasalahan dalam membuat sebuah aplikasi pemrograman, hal ini menyebabkan minat dalam menguasai sebuah aplikasi sangat kurang sekali. Hal ini dapat dilihat dari banyaknya mahasiswa yang mengambil jurusan atau bidang ilmu teknologi informasi komputer, akan tetapi tidak mampu menguasai bahasa pemrograman, yang disebabkan oleh kurangnya minat untuk menguasai bahasa pemrograman tersebut. Semua ini tidak lain karena ketidakmampuan dalam pemecahan permasalahan dan ketidakmampuan dalam pola pemecahan permasalahan secara terstruktur. Buku ini adalah buku yang mempresentasikan teknik pemecahan permasalahan pemrograman secara terstruktur dengan menampilkan konsep struktur logika yang jelas, sehingga membantu pembaca dalam memahami konsep pemrograman secara terstruktur, beserta aspek-aspek kriteria lainya dalam pemrograman dan mampu dalam mendesain pemecahan permasalahan dalam dunia pemrogramam. Oleh karena itu buku ini sangat cocok bagi mahasiswa, akademisi, dan praktisi yang sedang mempelajari teknik pemrograman. Dan pada kesempatan ini, saya mengucapkan syukur kepada Allah SWT yang telah memberikan kemampuan dan kesempatan dalam menyelesaikan buku ini, dan tidak lupa kepada keluarga tercinta yang telah memberikan semangat dan dorongan, sehingga tanpa terasa telah selesai buku ini di buat. Demikianlah, melalui kalimat pengantar diatas, kiranya pembaca mendapat gambaran dari buku ini. Tak ada gading yang tak retak. Buku ini pun sama sekali tidak sempurna untuk menjawab semua keinginan pembaca, mohon kritik dan saranya untuk di kirimkan ke email amrizal@puterabatam.ac.id. Batam Desember 2014 Penulis v DAFTAR ISI Halaman KATA PENGANTAR …….…………..……………………………………………….. ii DAFTAR ISI …..........……………………………….…………………………………. iii BAB 1 PENDAHULUAN 1.1. Tujuan Pemrograman Terstruktur ...……………………..…………………...... 1 1.2. Ciri Pemrograman Terstruktur ….……………………………………………... 2 1.3. Standar Program yang Baik ...………………………………………………...... 3 1.3.1. Standar Pemecahan masalah …...………………………………………………. 3 1.3.2. Standar Penyusunan Program …………………………………………............. 4 1.3.3. Algorithma Standar Pemrograman yang Baik ...……………………………….. 4 1.3.4. Struktur Logika ...…………...………………………………………………….. 6 BAB 2 MERANCANG PROGRAM 2.1. Langkah-langkah Pengembangan Program ...………………………………….. 8 2.2. Pemrograman Terstruktur ……………………………………………………… 10 2.2.1. Pemrograman Modular ...………………………………………………………. 10 2.2.2. Top Down Programming .……………………………………………………… 12 2.2.3. Logica Structure / Struktur Logik ……………………………………………... 13 2.3. Pseudo Code ...…………………………………………………………………. 16 BAB 3 PENGEMBANGAN ALGORITMA 3.1. Memperkenalkan Metode Analisis Masalah dan Pengembangan Pemecahan Masalah ...………………………………………………………………………. 18 3.2. Mengembangkan Algoritma Menggunakan Struktur Urut ….…………………. 19 3.3. Memperkenalkan Metode Pengecekan Masalah bagi Pemecahan Masalah ….... 25 BAB 4 STRUKTUR PERCABANGAN 4.1 Penggunaan Struktur Percabangan .……………………………………………. 28 4.2 Algoritma Menggunakan Selection ……………………….………………….... 35 BAB 5 STRUKTUR PERULANGAN 5.1 Logika Perulangan dengan Kondisi Perulangan Diawal …………..…………... 38 5.2 Logika Perulangan dengan Kondisi Perulangan Diakhir …………..………….. 41 vi 5.3 Logika Perulangan dengan Kondisi Perulangan Diawal dan Akhir …….……... 43 BAB 6 NASSI SCHNEIDERMAN DIAGRAM 6.1. Tiga Dasar Struktur Kontrol ………………………………………………….... 46 6.2. Contoh Kasus Penerapan NSD Diagram …………..…………………………... 60 BAB 7 PROGRAM MODULAR 7.1. Memecahkan Algoritma ke Dalam Algoritma yang Lebih Kecil/Modul ……… 63 7.2. Langkah Modular Programming ………………………………………………. 66 BAB 8 KOMUNIKASI ANTAR MODUL 8.1. Data ……………………………………………..……………………………… 71 8.2. Komunikasi Antar Modul ………………………....……………………..…….. 72 8.3. Penggunaan Parameter dalam Mendisain Program ……………………………. 73 8.4. Perancangan Program Berbasis Objek ………………………………………… 75 BAB 9 KOHESI 9.1. Functional ……………………………………………………………………… 76 9.2. Sequential ……………………………………………………………………… 77 9.3. Communicational ……………………………………………………………… 78 9.4. Procedural ……………………………………………………………………... 78 9.5. Temporal ………………………………………………………………………. 79 9.6. Logical …………………………………………………………………………. 80 9.7. Coincidental …………………………………………………………………… 80 BAB 10 KOPLING 10.1. Data ……………………………………………..……………………………… 83 10.2. Stamp …………………………………………………………………………... 85 10.3. Kontrol …………………………………………………………………………. 86 10.4. External ………………………………………………………………………… 87 10.5. Common ……………………………………………………………………….. 88 BAB 11 KRITERIA PERANCANGAN LAIN 11.1. Ukuran modul ………………………………………………………………...... 91 11.2. Factoring ………………………………………………………………………. 92 11.3. Fan-out ………………………………………………………………………… 92 11.4. Fan-in …………………………………………………………………………. 93 vii 11.5. Restrictivity / Generality ………………………………………………………. 94 11.6. Initialization / Termination ……………………………………………………. 94 11.7. Error Reporting ………………………………………………………………... 95 11.8. Program Shape ………………………………………………………………… 96 DAFTAR PUSTAKA LAMPIRAN BAB 1 PENDAHULUAN Konsep Pemrograman Terstruktur pertama kali di ungkapkan oleh Profesor Edsger Djikstra pada tahun 1965. Didalam perancangan program diperlukan pola berpikir secara terstruktur, sehingga dalam pemecahan permasalahan pemrograman mempunyai langkahlangkah pengembangan program dan teknik pemrograman secara terstruktur. Menurut Rosa A.S dalam Rekayasa perangkat lunak dijelaskan bahwa pemrograman terstruktur adalah konsep atau paradikma atau sudut pandang pemrograman yang membagi-bagi program berdasarkan fungsi dan prosedur-prosedur yang dibutuhkan program komputer. Dari pernyataan diatas, dapat dinyatakan bahwa fungsi-fungsi dan prosedur-prosedur ditulis secara berurutan dari atas kebawah sesuai dengan kebergantungan antar fungsi atau prosedur. Fungsi atau prosedur yang digunakan harus di deklarasikan sebelumnya. Memang tidak ada defenisi yang pasti mengenai pemrograman terstruktur, tetapi pada dasarnya pemrograman terstruktur merupakan suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program. Bentuk akhir yang diharapkan adalah teknis dalam membangun program yang mudah dipahami, ditelusuri dan dimodifikasi. 1.1. Tujuan Pemrograman Terstruktur Prinsip dasar dalam pemrograman terstruktur adalah jika suatu proses telah selesai maka proses berikutnya dijalankan dan tidak boleh melompat kebaris sebelumnya, kecuali untuk proses yang sama dilakukan lebih dari satu kali atau perulangan. Tujuan utama dari pemrograman terstruktur adalah: 1. Meningkatkan kehandalan program, karena program tersebut telah didefinisikan sebelumnya dan dapat dikembangkan secara berkelanjutan. 2. Program mudah dibaca dan ditelusuri, struktur program telah ditelusuri secara berurutan sesuai dengan kebutuhan fungsi dan prosedur yang telah didefinisikan sebelumnya. 2 3. Menyederhanakan kerumitan program, program dengan tingkat kerumitan yang komplek dapat dipecah menjadi beberapa modul yang lebih sederhana tergantung dari tingkat pemahaman pengembangan program. 4. Pemeliharaan program, teknik pemrograman secara terstruktur dapat dipelihara dan dikembang secara berkelanjutan dengan mudah karena tinggal menambah dan memperhatikan fungsi-fungsi dan prosedur diawal proses. 5. Meningkatkan produktifitas program, karena program dapat di update sesuai dengan kebutuhan dan dikembangkan secara berkelanjutan dengan memperhatikan tingkat kebutuhan rencana pengembangan secara berkelanjutan. 1.2. Ciri Pemrograman Terstruktur Bentuk pemrograman terstruktur dapat dikembangkan dengan karakteristik tersendiri, walaupun lebih banyak kearah pemrograman secara modular, namun setelah diimplementasikan dengan sendirinya, kita dapat melihat bahwa pemrograman terstruktur mempunyai ciri-ciri sebagai berikut: 1. Mengandung teknik pemecahan masalah yang tepat, karena didalam pemrograman terstruktur lebih mengutamakan membaca permasalahan dari atas kebawah atau sebaliknya, sehingga pengembang program mengetahui mana yang menjadi modul utama dan mana yang menjadi modul tambahan atau pendukung. 2. Memiliki algoritma pemecahan masalah yang sederhana, didalam pemrograman terstruktur menggunakan konsep modular dimana permasalan yang lebih besar dipecah dan dibagi kedalam modul-modul dengan logika algoritma yang sederhana juga. 3. Penulisan program memiliki struktur logika yang benar dan mudah dipahami, dengan mengutamakan pengembangan yang berkelanjutan dan struktur yang jelas dari awal sampai akhir, sehingga struktur logika harus sesuai dengan output yang diinginkan pengguna nantinya. 4. Biaya pengujian relatif rendah, dalam pemrograman terstruktur untuk pengujian relatif rendah karena telah mengikuti kebutuhan pengguna, juga mekanisme perbaikan relatif mudah. 5. Memiliki dokumentasi yang baik, bentuk dokumentasi dan penyimpanan data lebih baik dengan memperhatikan urutan-urutan proses kerja program lebih sederhana. 3 6. Biaya perawatan dan dokumentasi yang dibutuhkan relatif rendah. Dari bentuk ciri dan karakteristik pemrograman terstruktur, dapat dinyatakan bentuk logika pemrograman terstruktur lebih mudah dipahami dan dikembangkan secara berkelanjutan dengan biaya perbaikan dan perawatan lebih rendah. 1.3. Standar Program yang Baik Suatu program yang baik membutuhkan suatu standar program, sehingga memudahkan pemrogram dalam merancang dan membangun program. Salah satu kunci utama dalam membangun program adalah memahami tujuan pembuatan program dengan jelas dan mengembangkan suatu pendekatan yang sistematis. Ada beberapa standar sebagai indikator penilaian program yang baik, diantaranya: 1. Pemecahan masalah secara keseluruhan. 2. Penyusunan masalah didefinisikan lebih baik. 3. Perawatan program dengan biaya lebih rendah. Untuk lebih jelasnya, dapat dilihat pada rincian pembahasan pada bab selanjutnya dengan materi pembahasan pemrogram terstruktur dan struktur logika yang mudah dipahami. 1.3.1. Standar Pemecahan Masalah Setelah memahami permasalahan denga baik, maka tinggal menggunakan teknik pemecahan permasalahan yang dikenal dengan pemecahan permasalahan dari atas kebawah atau teknik Top-Down dan teknik pemecahan permasalahan dari bawah ke atas atau teknik Bottomup. Teknik Top-Down merupakan teknik yang umum dipakai dimana pemecahan permasalahan secara umum kemudian dirinci kedalam pemecahan yang lebih spesifik. Sehingga permasalahan yang besar di kelompokkan kepada permasalahan yang lebih kecil kemudian dianalisa. Teknik Bottom-up dilakukan dengan menggabungkan prosedur-prosedur pemecahan yang lebih kecil menjadi satu kesatuan program guna menyelesaikan permasalahan tersebut. 4 1.3.2. Standar Penyusunan Program Untuk menyusun program secara terstruktur ada beberapa standar penyusunan program yang harus dipenuhi, dan ada beberapa kriteria yang perlu diperhatikan dalam penyusunan program, diantaranya: 1. Kebenaran logika dan penyusunan Program yang disusun harus sesuai dengan kebenaran logika dan pemecahan permasalahan dan harus memiliki ketepatan, ketelitian, sehingga hasilnya dapat dipercaya. 2. Waktu penulisan dan eksekusi program Pemrogram harus menentukan batas waktu penulisan, dan kapan program diimplementasikan serta eksekusi program yang telah dibuat. 3. Perawatan dan pengembangan program Penyusunan program harus bersifat kesederhanaan dan jelas, sehingga memudahkan perawatan dan pengembangan program yang berkelanjutan. 4. Portabilitas Dapat di pakai dari berbagai perangkat keras yang digunakan. 1.3.3. Algorithma Pemrograman yang Baik Agar program mudah dipahami orang lain, sehingga dengan mudah dikembangkan secara berkelanjutan, maka perlu dikembangkan teknik algoritma yang baik. Didalam pemrograman ciri-ciri dari algorithma pemrograman yang baik dapat dinyatakan dalam beberapa hal berikut: 1. Memiliki logika perhitungan/metode yang tepat dalam memecahkan masalah yang sesuai dengan permasalahan yang ada. 2. Menghasilkan output yang benar dan tepat dalam waktu yang singkat. 3. Ditulis dengan bahasa yang standar secara sistematis dan rapi, sehingga tidak menimbulkan arti ganda. 4. Ditulis dengan format yang mudah dipahami dan diimplementasikan kedalam bahasa pemrograman. 5. Semua operasi yang dibutuhkan terdefinisikan dengan jelas. 6. Semua proses harus selalu berakhir setelah sejumlah langkah dilakukan. 5 Adapun langkah-langkah pengembangan program, dikelompok menjadi 7 (tujuh) tahap sebagai berikut: 1. Definisi masalah Merupakan bentuk formulasi pemecahan masalah dengan membahas proses pemecahan permasalahan melalui masukan, proses, dan keluaran yang diharapkan. 2. Outline pemecahan masalah Merupakan draft rancangan pemecahan permasalahan yang memiliki urutan-urutan penyelesaian tertentu dan apa saja yang harus dilakukan. Tahap ini memiliki urutan langkah pengembangan. 3. Pengembangan outline ke dalam algoritma Outline pemecahan permasalahan dilanjutkan ketahap pengembangan algoritma yang merupakan sekelompok penyelesaian permasalahan yang lebih sederhana secara terstruktur mulai dari masukan, proses, dan keluaran yang diharapkan. 4. Melakukan test algoritma Algoritma yang telah dikembangkan kemudian diuji kebenaran struktur logikanya, apakah sudah memenuhi harapan output yang diinginkan. Pengujian dapat dilakukan dengan menggunakan tabel kebenaran. 5. Coding / menulis program dan algoritma Algoritma penyelesaian yang telah dikembangkan dan teruji kebenaranya, dipindahkan kedalam kode program yang lebih spesifik sesuai dengan aturan bahasa pemrograman tertentu. Didalam tahap inilah ditentukan kemudahan bagi pemrogram menterjemahkah logika yang dikembangkan kedalam berbagai bahasa pemrograman yang sedang berkembang. 6. Execute program Tahap kompilasi program dengan mendeteksi kesalahan-kesalahan yang terjadi didalam pemrograman, bentuk kesalahan yang sering terjadi biasanya kesalahan dalam penulisan yang biasa disebut syntax error atau kesalahan dalam logika program. Setelah tahap ini dapat berjalan dengan baik, maka program dapat dijalankan. 7. Dokumentasi dan pemeliharaan program Pada tahap ini, program yang telah dieksekusi dijalankan secara permanen dan perlu ada dokumentasi dan pemeliharaan, bentuk dokumentasi yang pertama adalah merubah 6 program aplikasi kedalam executable file, hal tersebut dilakukan agar dapat dijalankan kedalam berbagai sistem operasi, selain itu dilakukan juga kegiatan pemeliharaan dan backup data secara berkala dan berkesinambungan. Dalam pengembangan algoritma sederhana, digunakan pengembangan struktur kontrol yang berurutan dan pengecekan kesalahan secara manual, dan dapat di kelompokkan menjadi: 1. Pendefinisian masalah dari awal sampai akhir atau dari proses input sampai tercapainya output yang diharapkan. 2. Perancangan solusi algoritma pemecahan masalah secara berurutan dan berkesinambungan, sehingga dapat dijelaskan dengan mudah penyelesaian permasalahan secara terstruktur. 3. Cek kebenaran solusi masalah dengan membuat tabel pengujian kebenaran dari logika pemecahan permasalahan, sehingga dapat dinyatakan bahwa solusi pemecahan permasalahan sudah tepat. 4. Pembuatan kesimpulan dari runtunan pemecahan permasalahan dengan struktur kontrol yang jelas. 5. Pemrograman dengan proses pengkodean dan mengkonversi logika penyelesaian permasalahan kedalam bahasa pemrograman. 1.3.4. Struktur Logika Secara umum Struktur logika dapat dikelompokkan menjadi 3 (tiga) bagian, yaitu: 1. Struktur urutan secara beruntun Bentuk struktur urutan secara beruntun menjelaskan pendefinisian permasalahan secara umum dengan urutan dari: mulai, persiapan, input, proses, output, dan selesai hal ini menggambarkan bagaimana kita membaca dan memahami permasalahan secara umum kearah yang lebih detail, sehingga tercipta bentuk pembacaan top down programming. 2. Struktur seleksi Merupakan pengembangan dari logika urutan beruntun yang menambahkan seleksi, sehingga menghasilkan logika percabangan dengan memilih alternative penilaian yang benar. 7 3. Struktur perulangan Merupakan pengembangan dari logika urutan beruntun yang menambahkan seleksi, sehingga menghasilkan tiga proses dan menambahkan logika perulangan baik diawal, diakhir maupun diawal – akhir. BAB 2 MERANCANG PROGRAM Didalam perancangan program diperlukan pola berpikir secara terstruktur, sehingga dalam pemecahan permasalahan pemrograman dapat menghasilkan keluaran program yang sesuai dengan tujuan pemecahan permasalahan. Untuk itu kita perlu memahami dan mempunyai langkah-langkah pengembangan program dan teknik pemrograman secara terstruktur. 2.1. Langkah-langkah Pengembangan Program Adapun langkah-langkah pengembangan program dapat dikelompok menjadi 7 (tujuh) tahap sebagai berikut: 1. Definisi masalah. Merupakan bentuk formulasi pemecahan masalah dengan membahas proses pemecahan permasalahan melalui masukan, proses, dan keluaran yang diharapkan. a. Masukan: dapat berupa data atau informasi yang akan menjadi bahan yang akan diolah dalam pemrosesan. b. Proses: Bentuk operasional yang terjadi dalam pengolahan data dan dapat berupa operasional artimatik atau satu proses yang memiliki struktur logika. c. Keluaran: merupakan output yang harapkan dalam membuat program. Biasanya dalam bentuk informasi atau laporan yang diinginkan. 2. Outline pemecahan masalah Merupakan draft rancangan pemecahan permasalahan yang memilikir urutan-urutan penyelesaian tertentu dan apa saja yang harus dilakukan. Tahap ini memiliki urutan langkah pengembangan diantaranya adalah mengenal langkah-langkah proses dari objek permasalahan dengan demikian kita dapat mengenal rincian proses lebih detail yang dapat memberikan kesimpulan usulan pemencahan masalah yang terangkum kedalam struktur kontrol atau struktru logika pemecahan permasalahan, kemudian dengan mudah kita mendeklarasikan variabel dan record yang dibutuhkan, terakhir kita mulai dengan membangun logika penyelesaian permasalahan. 9 Outline pemecahan masalah dapat juga dijabarkan kedalam diagram hirarki yang menggambarkan struktur pemecahan masalah dari langkah proses sampai logika yang digunakan. 3. Pengembangan outline ke dalam algoritma Outline pemecahan permasalahan dilanjutkan ketahap pengembangan algoritma yang merupakan sekelompok penyelesaian permasalahan yang lebih sederhana secara terstruktur mulai dari masukan, proses, dan keluaran yang diharapkan. 4. Melakukan test algoritma Algoritma yang telah dikembangkan di uji kebenaran struktur logikanya, apakah sudah memenuhi harapan output yang diinginkan. Pengujian dapat dilakukan dengan menggunakan tabel kebenaran. 5. Coding / menulis program dan algoritma Algoritma penyelesaian yang telah dikembangkan dan teruji kebenaranya, dipindahkan kedalam kode program yang lebih spesifik sesuai dengan aturan bahasa pemprograman tertentu. Didalam tahap inilah ditentukan kemudahan bagi pemrogram menterjemahkah logika yang dikembangkan kedalam berbagai bahasa pemrograman yang sedang berkembang. 6. Execute program Tahap kompilasi program dengan mendeteksi kesalahan-kesalahan yang terjadi didalam pemrograman, bentuk kesalahan yang sering terjadi biasanya kesalahan dalam penulisan yang biasa disebut syntax error atau kesalahan dalam logika program. Setelah tahap ini bisa berjalan dengan baik, maka program dapat dijalankan. 7. Dokumentasi dan pemeliharaan program Pada tahap ini program yang telah dieksekusi dijalankan secara permanen dan perlu ada dokumentasi dan pemeliharaan, bentuk dokumentasi yang pertama adalah merubah program aplikasi kedalam executable file, agar dapat dijalankan kedalam berbagai sistem operasi, selain itu dilakukan juga kegiatan pemeliharaan dan backup data secara berkala dan berkesinambungan. 10 2.2. Pemrograman Terstruktur Pemrograman terstruktur dapat membantu perancang program lebih efektif dan bebas dari kesalahan dengan konsep pemecahan permasalahan secara terstruktur. Ada dua model yang menggambarkan pemrograman terstruktur: 1. Menjelaskan top-down programming Mempresentasikan pemecahan permasalahan mulai dari pengkodean awal sampai akhir, secara sistematik yang membaca permasalahan dari level tingkat atas atau umum sampai ke level paling bawah dan lebih spesifik. 2. Menjelaskan desain secara modular Struktur pemrograman secara termodul dengan memecah permasalahan yang besar kedalam modul-modul sederhana yang lebih mudah dipahami. Desain secara modul merupakan implementasi dari konsep top-down programming. 3. Menjelaskan struktur logika Bentuk struktur logika yang menjabarkan top-down programming di konversikan kedalam desain modular membagi struktur logika menjadi 3 (tiga) bagian sebagai berikut: a. Runtunan, merupakan struktur logika secara berurutan/ beruntun mulai dari input, proses, dan ouput secara garis besar. b. Seleksi, merupakan logika percabangan yang menghasilkan pilihan yang harus dijalankan pada saat eksekusi program. c. Perulangan, merupakan logika yang sama dilakukan lebih dari satu kali sesuai dengan kondisi penyelesaian permasalahan yang dilakukan. Untuk lebih jelasnya konsep pemrograman secara terstruktur dapat dijabarkan dalam pembahasan meliputi pemrograman modular, top down programming, dan struktur logika. 2.2.1 Pemrograman Modular Dalam pemrograman modular yang membagi struktur program yang lebih besar menjadi modul-modul yang sederhana, dimana modul yang lebih besar mengelola modul dibawahnya. 11 A B A Panggil B B berfungsi / bekerja B memanggil C C berfungsi / bekerja C selesai, kembali ke B B selesai, kembali ke A A selesai C Gambar 2.1 Struktur Pengelolaan Modul Sederhana Pembagian program ke dalam modul-modul yang saling berkaitan sesuai dengan lingkungan kerjanya, misalnya modul A jika bekerja maka akan memanggil modul B, sedangkan modul B jika bekerja akan memanggil modul C, jika modul C selesai maka proses kembali kedalam modul B dan jika modul B selesai maka proses akan kembali ke modul A. Hierarki/organisasi modul-modul secara vertikal dapat juga terjadi secara horizontal dan terpusat, seperti diagram dibawah ini: X A B C Gambar 2.2 Struktur Pengelolaan Modul Terpusat X memanggil A Setelah A mengerjakan dan kembali ke X X memanggil B B bekerja, setelah selesai kembali ke X X memanggil C C bekerja, setelah selesai kembali ke X 12 Modul X mengelola lebih dari satu modul secara bertingkat dapat dilihat apabila modul X bekerja maka akan memanggil modul A dan setelah modul A selesai, maka proses akan kembali ke modul X, kemudian modul X memanggil modul B, setelah selesai maka proses akan kembali ke modul X begitu juga sebaliknya apabila modul X memanggil modul C, sehingga modul X menjadi pusat pengelolaan. Bentuk komunikasi antar modul dapat digambarkan dalam diagram sebagai berikut: X A B C Gambar 2.3 Komunikasi Antar Modul 2.2.2 Top Down Programming Pembagian modul ke dalam modul-modul yang lebih rinci (submodul) didalam program modular secara keseluruhan akan menggambarkan bagaimana pola hirarki pemrograman dari awal sampai akhir, seperti diagram sebagai berikut: X A E B F G C H Gambar 2.4 Hierarki Top Down Programming I 13 Dari diagram diatas dapat dilihat pengembangan program modular menjadi top-down programming dimana modul X mengelola modul A, B, dan C. Modul A juga mengelola modul E dan F, modul B mengelola modul G sedangkan modul C juga mengelola modul H dan I. 2.2.3 Logica Structure / Struktur Logik Secara umum struktur logika didalam pemrograman dapat dikelompokkan menjadi 3 (tiga) bagian, yaitu: 1. Sequence structure / struktur urut Merupakan urutan logika secara berurutan mulai dari awal sampai akhir yang dibagi menjadi beberap instruksi dimana instruksi tersebut akan dilaksanakan jika instruksi sebelumnya selesai dilaksanakan. Bentuk instruksi secara berurutan dapat digambarkan sebagai berikut: A Instruksi A B Instruksi B C Instruksi C Gambar 2.5 Instruksi Runtunan Dari gambar diatas dapat dilihat konsep runtunan atau berurutan dinyatakan bahwa instruksi A harus berjalan dulu sebelum dilakukan instruksi B, dan instruksi B harus dilakukan dulu sebelum dilakukan instruksi C, dengan arti kata bahwa instruksi C tergantung kepadan instruksi B, sedangkan instruksi B tergantung kepada insturksi A. 2. Selection Structure / Struktur seleksi Merupakan urutan logika secara percabang yang menghasilkan output pilihan sesuai dengan logika program. Bentuk logika percabangan dapat menggunakan dua perintah yaitu 14 logika If Then Else dan logika Case of atau Depend on. Bentuk instruksi yang menggunakan logika percabangan dapat digambarkan sebagai berikut: a. If then else T A Y If A then Instruksi C B C Else Instruksi B EndIf Gambar 2.6 Instruksi Percabangan If-Then Dari gambar diatas dinyatakan bahwa logic percabangan dengan dua kondisi dimana jika kondisi A benar maka instruksi C akan dijalankan, jika tidak maka proses akan menjalankan instruksi B. b. Do Case – Enddo A Instruksi A Instruksi B Instruksi C Gambar 2.7 Instruksi Do Case Instruksi D 15 Do case Var Kondisi 1 : Instruksi A Kondisi 2 : Instruksi B Kondisi 3 : Instruksi C Kondisi 4 : Instruksi D Enddo Dari gambar diatas dapat dinyatakan bahwa logika percabangan case merupakan logika percabangan dengan banyak kondisi banyak aksi yang mempunyai peluang ketergantungan pembenaran kondisi dan aksi secara horizontal dengan nilai yang sama . 3. Repetition Structure / Struktur Pengulangan Merupakan urutan logika secara perulangan dimana kegiatan yang sama dilakukan lebih dari satu kali. Bentuk perulangan yang biasa digunakan diantaranya perulangan diawal, perulangan di akhir dan perulangan diawal dan diakhir. Bentuk instruksi perulang dapat digambarkan sebagai berikut: a. Do While – Enddo, merupakan bentuk perulangan dengan mendeklarasikan logika diawal, perulangan akan dilakukan selama memenuhi kondisi Ya, dan akan berhenti jika telah memenuhi kondisi Tidak. Bentuk perulangan dengan kondisi awal dapat digambarkan sebagai berikut: Instruksi Do While kondisi Instruksi Enddo Kondisi Gambar 2.8 Instruksi Perulangan Awal 16 b. Repeat – Until, merupakan bentuk perulangan dengan mendeklarasikan logika akhir perulangan akan dilakukan selama memenuhi kondisi Tidak, dan akan berhenti jika telah memenuhi kondisi Ya. Bentuk perulangan dengan kondisi akhir dapat digambarkan sebagai berikut: Repeat Instruksi Instruksi Until Kondisi Kondisi Gambar 2.9 Instruksi Perulangan Akhir 2.3. Pseudocode Pseudocode merupakan logika program sederhana yang ditulis dalam bahasa sehari hari, pseudocode berbeda dengan algoritma, karena algoritma ditulis dengan jelas, tepat dan tidak samar-samar dan memberikan pemecahan yang tepat untuk semua kasus serta memiliki akhir, sedangkan pseudocode statement program ditulis dengan bahasa Indonesia/Inggris yang sederhana, setiap instruksi ditulis pada setiap baris, keywords/kata kunci digunakan khusus untuk menjelaskan struktur kontrol, setiap set/bagian instruksi memiliki awal dan akhir dengan “one entry one exit”, pengelompokkan statement dapat membentuk satu modul yang mempunyai nama. Cara menulis Pseudocode diantaranya: 1. Komputer dapat mendapatkan data. Read student-name Get system-date 2. Komputer dapat menyajikan informasi Print “Saya Alogorithma” Cetak “Saya Algorithma” 3. Komputer dapat melakukan aritmatika perhitungan +, -, *, /, ( ) Add number to total 17 Total = Total + number 4. Komputer dapat memberikan nilai Set student_count to 0 5. Komputer dapat membandingkan dan memilih alternatif tindakan If student is parttime then Add 1 to part_time_count Else Add 1 to full_time_count Endif 6. Komputer dapat melakukan pengulangan Do while student_total < 50 Read student record Print student name, address to report Add 1 to student_total Enddo Repeat X←X+1 A←A+X Until X = 10 BAB 3 PENGEMBANGAN ALGORITMA Pengenalan metode analisis masalah dan pengembangan solusinya, algoritma sederhana menggunakan pengembangan struktur kontrol yang berurutan dan pengecekan kesalahan secara manual yang dapat dikelompokkan menjadi: 1. Pendefinisian masalah; 2. Perancangan solusi algoritma; 3. Cek kebenaran solusi masalah; 4. Pembuatan kesimpulan; 5. Pemrograman. 3.1 Memperkenalkan Metode Analisis Masalah dan Pengembangan Pemecahan Masalah. Dalam pemecahan permasalahan perlu diketahui metode analisis yang lebih baik kemudian dilakukan pengembangan hasil analisis menjadi sebuah pengembangan pemecahan permasalahan. Semua pemecahan masalah harus dilakukan dalam 4 (empat) tahapan proses yaitu: 1. Pendefinisian masalah, merupakan proses menginvetarisir semua masalah ke dalam 3 (tiga) elemen yaitu: a. Masukan: merupakan kumpulan sumber daya data yang tersedia dalam permasalahan, sehingga kita dapat menganalisa dan menyediakan data masukan untuk pemecahan masalah; b. Proses: merupakan kumpulan aktivitas atau aksi yang dibutuhkan dalam menghasilkan output yang diinginkan, untuk itu kita harus membuat dan menyediakan daftar proses atau langkah-langkah yang diperlukan untuk menghasilkan output atau keluaran; c. Keluaran: merupakan daftar output yang diinginkan, sehingga dalam menganalisa keluaran menghasilkan daftar output atau keluaran. 19 Ketika kita membaca permalasalahan maka komponem input dan output dapat didefinisikan dengan mudah jika kita mengenal objek dan dan proses yang akan di defenisikan. 2. Kebutuhan/penggunaan struktur kontrol Menganalisis struktur kontrol apa saja yang digunakan dalam memecahkan masalah. Dalam struktur logika secara beruntun akan dapat dijelaskan tahap awal dari perintahperintah apa saja yang menjadi input, proses dan ouput. Setiap perintah tersebut dapat dikelompokkan apakah sebagai runtunan, seleksi atau perulangan. 3. Algoritma pemecahan Menuliskan pseudocode algoritma pemecahan berdasarkan pendefinisian masalah dan kebutuhan/penggunaan struktur kontrol. Setiap struktur kontrol yang ada akan dikembangkan bentuk pseudocode nya, sesuai dengan tujuan submodul. 4. Desk Checking Melakukan check dengan data untuk menguji kebenaran dari algoritma yang telah dibuat. Salah satu bentuk pengecekan dengan membuat tabel kebenaran dan meng-input beberapa data sampel untuk menguji kebenaran masing logika program yang telah dibuat. Dengan mengetahui metode analisis masalah dan pengembangan pemecahan masalah, kita dapat medefinisikan setiap permasalahan dan kita dapat dengan mudah mengembangkan algoritma menggunakan struktur urut. 3.2 Mengembangkan Algoritma Menggunakan Struktur Urut Pengembangan algoritma dengan menggunakan struktur urut dapat dilakukan dengan mendefinisikan permasalahan secara umum, kemudian didefinisikan kebagian yang lebih detail sehingga kita dapat dengan mudah mengembangkan kedalam bentuk struktur logika secara keseluruhan. Bentuk pengembangan dengan mengaplikasikan bentuk struktur logika mulai dari runtunan yang berubah menjadi seleksi dan ada kemungkinan perubahan kedalam bentuk 20 perulangan jika diperlukan kegiatan yang sama dilakukan lebih dari satu kali. Pengembangan algoritma menggunakan struktur urut dapat digambarkan sebagai berikut: 1. Struktur urutan secara beruntun Bentuk struktur urutan secara beruntun menjelaskan pendefinisian permasalahan secara umum dengan urutan dari mulai, persiapan, input, proses, output, dan selesai. Hal ini mengambarkan bagaimana kita membaca dan memahami permasalahan secara umum kearah yang lebih detail, sehingga tercipta bentuk pembacaan top down programming. Bentuk urutan secara beruntun dapat dilihat pada diagram dibawah ini. Mulai Persiapan Input Proses Algoritmanya sebagai berikut: Mulai Persiapan variabel input, proses dan output Input variabel Proses data Output Variabel Selesai Output Selesai Gambar 3.1 Flowchart dan Algorithma Runtunan 2. Struktur urutan seleksi Bentuk struktur logika seleksi dapat disebut juga dengan logika percabangan karena menghasilkan logika pilihan. Struktur logika urutan seleksi merupakan pengembangan dari logika urutan beruntun yang menambahkan seleksi, sehingga menghasilkan proses tambahan menjadi proses 1 untuk pernyataan jika logika bernilai benar atau proses 2 untuk pernyataan jika logika bernilai salah, kemudian dari hasil logika pilihan dilanjutkan 21 kedalam proses tiga yang menerima input dari hasil proses 1 atau proses 2. Bentuk logika percabangan atau struktur urutan seleksi dengan penambahan proses dari hasil logika pilihan dapat digambarkan kedalam flowchart sebagai berikut: Mulai Persiapan Input IF kondi Proses2 Proses1 Proses3 Output Selesai Gambar 3.2 Flowchart Logika Percabangan 22 Gambar flowchart diatas dapat juga diterjemahkan kedalam logika algoritma yang lebih sederhana seperti pernyataan algoritma berikut: Mulai Persiapan variabel input, proses dan output Input variabel If Kondisi Then Proses 1 Else Proses 2 Endif Proses 3 Output Variabel Selesai 3. Struktur urutan perulangan Struktur urutan perulangan dapat dinyatakan karena ada kegiatan yang sama dilakukan lebih dari satu kali. Konsep perulangan merupakan pengembangan dari logika urutan beruntun dari beberapa kegiatan yang sama. Untuk perulangan digunakan pernyataan yang mampu memberikan variabel perulangan yang dapat dialokasikan kedalam listing program. Bentuk penempatan perulang dan dapat dikelompokkan kedalam 3 (tiga) bagian yaitu: a. Struktur perulangan dengan logika perulang diawal Merupakan bentuk struktur perulangan dengan menempatkan proses perulangan di awal, bentuk perulangan ini akan bekerja selama kondisi dinyatakan benar atau true. Apabila pernyataan kondisi salah atau tidak maka proses perulangan akan selesai, bentuk perulangan ini akan dianalogikan sebagai berikut: Manusia makan karena lapar, jadi dengan pengkondisian diawal bahwa sebelum makan dinyatakan lapar = ya, sehingga bentuk perulangannya adalah selama lapar = ya atau benar maka akan makan terus, sampai pernyataan lapar = tidak. 23 b. Struktur perulangan dengan logika perulang diakhir Merupakan bentuk struktur perulangan dengan menempatkan proses perulangan di akhir, bentuk perulangan ini akan bekerja selama kondisi dinyatkan salah atau false. Bentuk perulangan ini akan dianalogikan sebagai berikut: Manusai makan karena kenyang, jadi dengan pengkondisian diakhir dinyatakan bahwa makan sampai kenyang, sehingga bentuk perulangannya adalah selama kenyang = belum atau tidak maka akan makan terus, sampai pernyataan kenyang sama dengan ya atau true. c. Struktur perulangan dengan logika perulang diawal dan akhir Merupakan bentuk struktur perulangan dengan menempatkan proses perulangan dengan kondisi diawal dan diakhir, dalam pemakaian ini bentuk perulangan dapat dibatasi sesuai dengan kebutuhan perulangan yang diinginkan, sehingga kita dapat mengetahui lebih awal mana batas awal perulangan sampai dimana batas perulangan di akhir. Bentuk perulangan ini akan dianalogikan sebagai berikut: Jika diketahui standar takaran manusia makan 3 piring, maka dinyatakan bentuk perulangannya adalah untuk piring dengan batas satu sampai ke piring tiga dilakukan perulangan makan, dalam hal ini kita tidak memperhatikan apakah manusia tersebut kenyang atau tidak dan kita juga tidak memperhatikan apakah manusia tersebut masih lapar atau tidak yang penting selama batas satu piring sampai tiga piring manusia tersebut akan makan. Bentuk logika perulangan juga dapat dilakukan penambahan seleksi, sehingga menghasilkan proses logika percabangan yang menjadi masukan pada proses berikutnya diluar penambahan logika perulangan baik diawal, diakhir maupun diawal akhir. Sehingga dengan penambahan logika seleksi dapat digambarkan kedalam bentuk flowchart sebagai berikut: 24 Mulai Persiapan Lagi = “Y” While Lagi = ‘Y” Input Selesai IF kondi Proses2 Proses1 Proses3 Output Input data lagi Y/T Gambar 3.3 Flowchart Logika Perulangan 25 Dari gambar flowchart diatas dapat diterjemahkan kedalam bahasa logika algoritma sebagai berikut: Mulai Persiapan variabel input, proses dan output Input variabel Lagi = Y While Lagi = Y do If Kondisi Then Proses1 Else Proses 2 Endif Proses 3 Output Variabel Ada data lagi Y/T? End while Selesai 3.3 Memperkenalkan Metode Pengecekan Masalah Bagi Pemecahan Masalah Metode pengecekan dari hasil pemecahan permasalahan sangat diperlukan sekali, karena dengan melakukan pengecekan, kita dengan mudah mengetahui apakah pemecahan masalah yang didapat sudah sesuai dan mampu menjawab permasalahan yang ada. Metode pengecekan dapat dilakukan melalui pendiskripsian variabel masukan, proses dan keluaran yang sesuai dengan urutan logika yang diinginkan, kemudian dilakukan pengujian dengan memasukkan beberapa data dan perhatikan output yang didapat, apakah sudah sesuai dengan keluaran yang diharapkan atau belum. Secara umum, format pengecekan definisian kedalam tabel yang lebih 26 sederhana sesuai dengan deskripsi masukan, proses dan keluaran dari permasalahan yang ada. Format tabel pengecekan tersebut dapat digambarkan sebagai berikut: No 1 Input Variabel1 Proses Proses 1 Output Output variabel1 Proses 2 N Variabel n Proses N Output variabel n Format tabel diatas dapat dikelompokkan kedalam empat kolom yang dinyatakan dalam rincian sebagai berikut: 1. Kolom Nomor, merupakan rincian runtunan proses atau urutan dari pemecahan logika permasalahan yang telah didefinisikan didalam logika algoritma; 2. Kolom Input, berisi beberapa variabel-variabel yang terlibat selama pemecahan permasalahan atau yang didapat didalam logika algoritma yang ada; 3. Kolom Proses, berisi kegiatan proses telah didefinisikan didalam logika algoritma, baik itu logika yang berhubungan dengan operasional aritmatika maupun operasional yang berhubungan dengan logic; 4. Kolom Output, menggambarkan hasil-hasil yang diperoleh dari beberapa proses yang ada, hasil dari output tersebut juga dapat menjadi masukan pada proses berikutnya. Supaya dapat bekerja dengan baik, maka tabel pengecekan tersebut perlu diisi dengan beberapa data masukan, sehingga dapat diketahui tingkat kebenaran dari logika pemecahan algoritma yang telah dibuat. Untuk lebih jelasnya tabel pengecekan dapat diterapkan kedalam contoh sebagai berikut: Contoh: Menjumlahkan 2 angka Baca 2 bilangan, jumlahkan keduanya Cetak jumlah kedua bilangan tersebut. 27 Penyelesaiannya: Input Bilangan1 Bilangan2 Proses Output Total a. Membuat daftar semua input/masukan yang diletakkan pada kolom input diagram di bawah ini. b. Membuat daftar output, letakkan pada kolom output dibawah ini. Input Bilangan1 Bilangan2 Proses Output Baca bilangan1, Total bilangan2, jumlahkan kedua bilangan tersebut. Cetak hasilnya BAB 4 STRUKTUR PERCABANGAN Untuk menggali lebih dalam bagaimana bentuk struktur percabangan, kita harus dapat menjabarkan bentuk seleksi yang sederhana (simple selection) sampai bentuk seleksi gabungan (multiple selection) dan seleksi bersarang (nested selection), dan dapat mengaplikasikan kedalam logika pemrograman. 4.1. Penggunaan Struktur Percabangan Dalam struktur logika pemrograman, struktur percabangan merupakan bagian yang sangat penting dalam menghasilkan logika proses yang bernilai boolean (true atau false). Struktur logika menghasilkan logika kondisi yang menunjang runtunan seperti gambar berikut: Mulai Persiapan Input IF kondisi Proses2 Proses1 Proses3 Output Selesai Gambar 4.1 Penggunaan Struktur Percabangan 29 Untuk lebih jelasnya marilah kita melakukan pembahasan pembagian struktur logika percabangan yang dapat dikelompokkan sebagai berikut: 1. Simple selection, merupakan struktur logika percabangan yang paling sederhana dengan satu kondisi untuk dua aksi yang bernilai benar atau salah dengan rumus umum sebagai berikut: If kondisi 1 then Aksi 1 else Aksi 2 endif Contoh: Logika percabangan untuk menentukan bilangan genap atau ganjil dapat dinyatakan sebagai berikut: If 5 mod 2 = 0 then 5 = bilangan genap else 5 = bilangan ganjil endif 2. Simple selection without else, merupakan struktur percabangan sederhana tanpa menggunakan perintah aksi alternative else, sehingga menghasilkan logika percabangan dengan satu kondisi untuk satu aksi yang bernilai benar atau salah, karena satu kondisi lainya sudah dinyatakan terlebih dahulu diawal logika pemrograman. Bentuk logika percabangan ini dapat dinyatakan dengan rumus umum sebagai berikut: 30 If kondisi 1 then Aksi 1 endif Contoh: Logika percabangan untuk menentukan bilangan genap atau ganjil dengan bentuk percabangan 1 kondisi satu aksi dapat dinyatakan sebagai berikut: 5 = bilangan ganjil If 5 mod 2 = 0 then 5 = bilangan genap endif 3. Combined selection, merupakan struktur percabangan dengan menggunakan dua kondisi atau lebih digabungkan dengan kombinasi dan menghasilkan aksi yang bernilai benar atau salah. Bentuk percabangan ini menggunakan kombinasi logika AND dan OR atau logika perbandingan lainnya. Bentuk logika percabangan ini dapat dinyatakan dengan rumus umum sebagai berikut: If kondisi 1 2 then Aksi 1 else Aksi 2 endif If kondisi 1 OR kondisi 2 then AND kondisi atau Aksi 1 else Aksi 2 endif 31 Contoh: Mengkombinasikan kondisi status mahasiswa dan jenis kelamin, untuk menambahkan jumlah mahasiswa, yang akan dikelompokan sesuai dengan jenis kelamin dan status untuk disimpan dan dicetak sesuai dengan barisnya. If student = parttime and gender = female then Add 1 to female_part_student_count Endif If { Record_num = ’17’ or Record_num = ‘21’ } and Record_num = ’16’ then Cetak record Endif 4. Nested selection, merupakan logika percabangan bersarang dimana didalam satu kondisi menghasilkan satu aksi, dan jika tidak terpenuhi akan menghasilkan aksi lain dalam bentuk logika kondisi baru yang menghasilkan aksi, dan kondisi yang baru lainya sampai terpenuhi satu kondisi lainnya. Bentuk percabangan ini dapat dikelompokkan kedalam dua bagian, yaitu: a. Linear nested if statement: merupakan logika percabangan bersarang secara linear dimana akan terjadi kondisi bersarang selama kondisi bernilai salah atau false. Dapat dinyatakan dengan rumusan sebagai berikut: If kondisi 1 then Aksi 1 ElseIf kondisi 2 then Aksi 2 ElseIf kondisi 3 then Aksi 3 ElseIf kondisi n then Aksi n Endif Endif Endif Endif 32 Contoh: Mencari jumlah masing-masing rekaman dan data sesuai dengan status rekaman data yang dibaca sebagai berikut: If record_code = ’A’ then Increment_count_A Else If record_code = ’B’ then Increment_count_B Else If record_code = ’C’ then Increment_count_C Else Increment_error_count Endif Endif Endif b. Non linear nested if statement: merupakan logika percabangan bersarang non linear, dimana akan terjadi kondisi bersarang selama kondisi bernilai benar atau true. Dapat dinyatakan dengan rumusan sebagai berikut: If kondisi 1 then If kondisi 2 then If kondisi 3 then If kondisi n then Aksi n Else a. Aksi 3 Endif Else Aksi 2 Endif Else Aksi 1 Endif 33 5. Penyataan Case…of, merupakan alternatif dari pernyataan IF dengan pilihan ganda yang biasanya digunakan untuk permasalahan tertentu, Case lebih memberikan kejelasan dibandingkan dengan pernyataan IF, tapi tidak semua permasalahan yang dibuat dengan pernyataan IF dapat di buat kedalam pernyataan Case. Case...Of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah statement yang diawali dengan label (case label) Bentuk umum dari Case…Of adalah: Case ungkapan Of Kondisi 1 : Instruksi A Kondisi 2 : Instruksi B Kondisi 3 : Instruksi C Kondisi 4 : Instruksi D …………………………….. End case 34 Bentuk pernyataan dengan menggunakan statement Case…Of dapat digambarkan kedalam logika flowchart sebagai berikut: Kondisi 1 Kondisi 2 Kondisi 3 Benar Instruksi A Benar Instruksi B Benar Instruksi C Intruksi yang mengikuti else Gambar 4.2 Penggunaan Struktur Percabangan Case – Of Contoh: Mengelompokkan data rekaman mahasiswa berdasarkan umur, untuk mencari mahasiswa yang laki-laki dan perempuan. 35 Jawab If attandence = parttime then If gender = female then If age = 21 then Add 1 to mature_female_student Else Add 1 to young_female_stunddent Endif Else Add 1 to male_student Endif Else Add 1 to full_time_student Endif 4.2. Algoritma Menggunakan Selection Algoritma menggunakan selection dapat digunakan dalam proses algoritma umum, berikut contoh yang dapat dilogikakan oleh kita. Contoh: Susunlah algoritma untuk membaca tiga variabel, kemudian susunlah ketiga nilai variabel tersebut dengan urutan menaik dan tampilkan ketiga variabel tersebut. Penyelesaian: 1. Diagram Input Bil1 Bil2 Bil3 Proses Output Bil1 Baca Bil1, Bil2, Bil3 Bil2 kemudian lakukan Bil3 pengurutan. Cetak ketiga variabel tsb 36 2. Algoritma pemecahan Baca tiga variabel Tampilkan keterangan untuk membaca tiga variabel Baca Bil1, Bil2, Bil3 If Bil1 > Bil2 then Temp = Bil1 Bil1 = Bil2 Bil2 = temp Endif If Bil2 > Bil3 then Temp = Bil2 Bil2 = Bil3 Bil3 = temp Endif If Bil1 > Bil3 then Temp = Bil1 Bil1 = Bil3 Bil3 = temp Endif Cetak Bil1, Bil2, Bil3 End 3. Tabel pengecekan (Desk Checking)  Data yang dimasukkan Bil1 Bil2 Bil3 Data pertama 11 2 7 Data kedua 26 19 1  Hasil yang diharapkan Bil1 Bil2 Bil3 Data pertama 2 7 11 Data kedua 1 19 26 37  Tabel pengecekan Statement pertama Baca If If If Cetak Bil1 11 2 kedua Baca If If If Cetak Bil2 2 11 7 Bil3 7 ya ya ya 26 19 19 26 19 19 ya 1 1 ya 11 26 ya Temp If statement 11 11 ya ya tidak 26 26 19 ya ya ya BAB 5 STRUKTUR PERULANGAN Struktur perulangan merupakan bentuk logika yang melakukan perulangan lebih dari satu kali untuk kegiatan yang sama. Secara umum bentuk logika perulangan dikelompokkan menjadi tiga bagian diantaranya: logika perulangan dengan kondisi perulangan diawal, logika perulangan dengan kondisi perulangan diakhir, serta logika perulangan dengan kondisi perulangan diawal dan diakhir. Untuk lebih jelasnya kita akan membahas lebih dalam struktur perulangan dengan pengembangan algoritmanya pada pembahasan berikut ini. 5.1. Logika Perulangan dengan Kondisi Perulangan Diawal Logika perulangan dengan kondisi perulangan diawal dapat menggunakan perintah Do – While yang lebih menekankan bahwa perulangan akan berlangsung terus selama kondisi bernilai ya/benar, jika kondisi bernilai tidak/salah maka logika perulangan akan berhenti. Pengulangan menggunakan struktur Do – While dapat dinyatakan dengan rumusan sebagai berikut: Do while kondisi bernilai true Statement_1 Statement_2 ….. Statement_n Enddo Lagi 39 Mulai Persiapan Lagi = “Y” While Lagi = ‘Y” Input Selesai IF kondisi Proses2 Proses1 Proses3 Output Input data lagi Y/T Gambar 5.1 Flowchart Penggunaan Perulangan Awal 40 Ada 3 (tiga) proses yang dilakukan dalam Do – while yaitu: 1. Kondisi “Lagi” selalu dicek 2. Bila”Lagi” bernilai true maka statement_1 sampai statement_n dikerjakan kemudian dicek lagi kondisi ”Lagi”. 3. Bila kondisi ”Lagi” bernilai false maka statement_1 sampai statement_n tidak dikerjakan. Alur logika langsung menuju ke Enddo dan terus ke statement selanjutnya. Contoh: Mengkonversikan derajat Celsius ke Reamur dan Fahrenheit. Yang dibaca adalah derajat Celsius. Data dibaca sebanyak 15 kali. 1. Diagram Input Proses Celsius Baca Celsius ( 15 kali ) Hitung Reamur Hitung Fahrenheit Output Celsius Reamur Fahrenheit 2. Algoritma pemecahan X = 0 Do while X < 15 Baca Celsius X = X + 1 Baca Celsius Reamur = 4/5 * Celsius Fahrenheit = 9/5 * Celsius + 32 Cetak Celsius, Reamur, Fahrenheit Enddo 3. Tabel pengecekan a. Data masukan Celsius Data Pertama Data Kedua 100 50 41 b. Hasil yang diharapkan Reamur Fahrenheit Data Pertama Data Kedua 80 40 212 122 c. Tabel pengecekan Statement x do while kondisi Baca Celsius Hitung Reamur Hitung Fahrenheit Cetak C,R,F 0 do while baca hitung cetak TRUE 100 80 212 100, 80, 212 5.2. Logika Perulangan dengan Kondisi Perulangan Diakhir Logika perulangan dengan kondisi perulangan diakhir dapat menggunakan perintah Repeat – Until yang lebih menekankan bahwa perulangan akan berlangsung terus selama kondisi bernilai tidak/salah, jika kondisi bernilai ya/benar maka logika perulangan akan berhenti. Pengulangan menggunakan struktur Repet – Until dapat dinyatakan dengan rumusan sebagai berikut: Repeat Statement_1 Statement_2 …… Statement_n Until kondisi k true 42 Mulai Persiapan Selesai = “Tidak” Repeat Input IF kondisi Proses2 Proses1 Proses3 Output Input data lagi Y/T Until Selesai = “Ya” Selesai Gambar 5.2 Flowchart Penggunaan Perulangan Akhir 43 Ada 3 (tiga) proses yang dilakukan dalam Repeat – Until 1. Melakukan statement_1 sampai statement_n 2. Melakukan pengecekan kondisi Selesai 3. Bila kondisi Selesai bernilai false maka diulangi mengerjakan statement_1 sampai statement_n lagi. Bila kondisi Selesai bernilai true maka tidak terjadi pengulangan lagi selanjutnya mengerjakan statement berikutnya. Contoh: X = 0 Repeat X = X + 1 Baca Celsius Reamur = 4/5 * Celsius Fahrenheit = 9/5 * Celsius + 32 Cetak Celsius, Reamur, Fahrenheit Until X = 15 5.3. Logika Perulangan dengan Kondisi Perulangan Diawal dan Akhir Logika perulangan dengan kondisi perulangan diawal dan akhir dapat menggunakan perintah For – Do yang lebih menekankan bahwa perulangan akan berlangsung terus selama kondisi awal dan akhir terpenuhi. Pengulangan menggunakan struktur For – Do dapat dinyatakan dengan rumusan sebagai berikut: For x = 1 to n Do Statement_1 Statement_2 …… Statement_n End for 44 Mulai Persiapan For X= 1 to N Do Input IF kondisi Proses2 Proses1 Proses3 Output X= X+1 End For Stop Gambar 5.3 Flowchart Penggunaan Perulangan Awal Akhir 45 Ada 3 (tiga) proses yang dilakukan dalam For – Do, yaitu: 1. Melakukan pengecekan kondisi kondisi awal dan kondisi akhir 2. Melakukan statement_1 sampai statement_n 3. Bila kondisi dari kondisi awal dan akhir masih telah terpenuhi, maka tidak terjadi pengulangan lagi selanjutnya mengerjakan statement berikutnya. Contoh: X = 1 For X = 1 to 15 Do Baca Celsius Reamur = 4/5 * Celsius Fahrenheit = 9/5 * Celsius + 32 Cetak Celsius, Reamur, Fahrenheit X = X + 1 End for BAB 6 Nassi – Schneiderman Diagram Nassi_Schneiderman (N-S) diagram hampir sama dengan pseudocode karena mempunyai diagram pendekatan yang lebih presentatif dengan menggambarkan simbol-simbol dasar yang sederhana. Pada dasarnya didalam Nassi_Schneiderman (N-S) diagram juga menggambarkan ilustrasi struktur logika secara keseluruhan dalam bentuk struktur kontrol. 6.1. Tiga Dasar Struktur Kontrol Ada tiga dasar untuk mengembangkan struktur logika yang akan menjadi struktur kontrol logika pemrograman yang dikelompokan sebagai berikut: 1. Unit/sequence Struktur kontrol sequence atau runtunan merupakan bentuk logika berurutan dimana satu proses tidak dapat dilakukan jika proses sebelumnya belum dilaksanakan, artinya masing-masing pernyataan tidak dapat saling mendahului. Dapat digambarkan sebagai berikut: Statement A Statement B Statement C Gambar 6.1 NS-Diagram Runtunan Dari gambar diatas dapat dinyatakan bahwa logika program terdiri dari struktur kontrol runtunan dengan tiga buah pernyataan dimana statement A tidak dapat didahului oleh statement B begitu juga statement C tidak dapat mendahului statement B, sehingga terjadi logika bersyarat dengan kata lain statement C dapat dikerjakan jika proses telah menyelesaikan statement B dan statement B dapat dikerjakan jika proses telah menyelesaikan statement A. 47 Penggambaran logika tersebut dapat mewakili setiap proses logika jika dibandingkan dengan bentuk flowachart, untuk logika runtunan dapat digambarkan sebagai berikut: Mulai Pendefinisian variabel Input data Proses data Output data Selesai Mulai Persiapan Input Proses Output Selesai Gambar 6.2 Konversi NS-Diagram Runtunan kedalam Algoritma dan Flowchart 48 2. Seleksi/Selection Struktur kontrol seleksi mengambarkan kondisi pilihan yang berisi logika percabangan dan mempunyai 2 nilai yaitu true atau false, benar atau salah, dan ya atau tidak. Didalam Nassi_Schneiderman (N-S) diagram bentuk struktur kontrol seleksi dapat digambarkan sebagai berikut: IF THEN ELSE If kondisi k Ya Tidak Statement A Statement B Gambar 6.3 NS-Diagram Percabangan Dari gambar diatas, dapat dinyatakan bahwa struktur kontrol seleksi dengan menggunakan pernyataan If Kondisi K menghasilkan dua kemungkinan pernyataan yaitu “ya” atau “tidak”. Jika pernyataan “ya” terpenuhi maka akan dilakukan statement A, sedangkan jika pernyaataan “tidak” terpenuhi maka akan dilakukan statement B. Pemakaian struktur kontrol seleksi dapat dimasukkan kedalam salah satu statement yang ada dalam struktur runtunan, sehingga dapat juga digambarkan dalam urutan proses sebagai berikut: Mulai Persiapan Input data If kondisi ya Proses 1 tdk Proses 2 Proses 3 Output data Selesai Gambar 6.4 NS-Diagram Struktur kontrol 49 Dari diagram struktur logika diatas, dapat digambarkan kedalam bentuk logika flowchart dibawah ini: Mulai Persiapan Input IF kondisi ya tdk Proses2 Proses1 Proses3 Output Selesai Gambar 6.5 Flowchart NS-Diagram 50 Untuk lebih jelasnya bentuk Nassi_Schneiderman (N-S) diagram dalam struktur logika percabangan secara keseluruhan dapat digambarkan sebagai berikut: a. Simple IF statement IF Ya Tidak Statement 1 Statement 2 Gambar 6.6 NS-Diagram Simple Selection Bentuk penggambaran logika diatas, menjelaskan logika sederhana dengan satu kondisi akan menghasilkan dua pernyataan atau aksi yaitu jika terpenuhi kondisi true atau jika terpenuhi kondisi false, masing masing kondisi mempunyai statement sendiri. b. Null ELSE Statement IF Ya Tidak Statement 1 Gambar 6.7 NS-Diagram Simple Selection Null Else Statement Bentuk penggambaran logika diatas, menjelaskan logika sederhana dengan satu kondisi akan menghasilkan satu pernyataan atau aksi yaitu jika terpenuhi kondisi true maka proses akan menjalankan statement 1, sedangkan jika terpenuhi kondisi false maka proses tidak akan melakukan statement tertentu, tetapi tetap melakukan proses kondisi awal sebelum masuk pada proses struktur seleksi percabangan. Bentuk percabangan ini dapat dianalogikan jika kita sedang membawa kendaraan, kemudian kita perhatikan bahwa persediaan bahan bakar kendaraan 51 hampir habis, sehingga jika persediaan bahan bakar hampir habis dinyatakan “ya” maka kita pasti belok kiri mampir di Pom Bensin untuk mengisi bahan bakar, sedangkan jika persediaan bahan bakar hampir habis dinyatakan “tidak” (artinya persediaan masih banyak), tentuk kita tetap jalan terus tanpa berhenti di Pom Bensin. c. Nested IF Statement Merupakan bentuk logika percabangan bersarang yang dapat dinyatakan dalam struktur logika dengan banyak kondisi banyak aksi. Bentuk logika bersarang dapat dikelompokkan menjadi dua yaitu logika percabangan akan bersarang selama kondisi yang diinginkan belum terpenuhi (selama kondisi “tidak”), bentuk percabangan ini dinamakan dengan Linear Nested If Statement dan logika percabangan akan bersarang untuk mencapai kondisi yang diinginkan terpenuhi (selama kondisi ”ya”) bentuk percabangan ini dinamakan dengan Non Linear Nested If Statement, untuk lebih jelasnya mari kita bahas satu persatu bentuk logika percabangan secara bersarang sebagai berikut: 1) Linear Nested IF Statement IF Ya Tidak IF Ya Tidak IF Ya Tidak IF Ya Gambar 6.8 NS-Diagram Linear Nested If Tidak 52 2) Non Linear Nested IF Statement IF Ya Tidak IF Ya Tidak IF Ya Tidak Gambar 6.9 NS-Diagram Non Linear Nested If 3. Repetition/Pengulangan Struktur kontrol perulangan mengambarkan logika yang sama dilakukan lebih dari satu kali. Secara umum bentuk logika perulangan di kelompokan menjadi tiga bagian yaitu logika perulangan dengan kondisi perulangan diawal, logika perulangan dengan kondisi perulangan diakhir, dan logika perulangan dengan kondisi perulangan diawal dan diakhir. Penggambaran logika perulangan didalam Nassi_Schneiderman (N-S) diagram dapat digambarkan sebagai berikut: a. Logika perulangan di awal Merupakan bentuk perulangan dengan menggunakan kondisi perulangan diawal pelaksanaan logika perulangan. Didalam Nassi_Schneiderman (N-S) diagram kondisi perulangan didefinisikan diawal proses dan selama proses terpenuhi, maka akan dilakukan proses statement yang ada dalam perulangan sampai pernyataan “tidak” atau false terpenuhi. Bentuk struktur kontrol perulangan diawal dapat digambarkan sebagai berikut 53 Do While kondisi K Blok Statement Gambar 6.10 NS-Diagram Perulangan Awal b. Logika perulangan di akhir Merupakan bentuk perulangan dengan menggunakan kondisi perulangan diakhir pelaksanaan logika perulangan. Didalam Nassi_Schneiderman (N-S) diagram kondisi perulangan didefinisikan diakhir proses dan selama proses tidak terpenuhi, maka akan dilakukan proses statement yang ada dalam perulangan sampai pernyataan “ya” atau true terpenuhi. Bentuk struktur kontrol perulangan diakhir dapat digambarkan sebagai berikut: Blok Statement Repeat Until kondisi K Gambar 6.11 NS-Diagram Perulangan Akhir c. Logika perulangan dengan kondisi diawal dan diakhir Merupakan bentuk perulangan dengan menggunakan kondisi perulangan diawal dan kondisi perulangan diakhir. Didalam Nassi_Schneiderman (N-S) diagram kondisi perulangan didefinisikan diawal proses sampai akhir dan selama proses awal sampai akhir terpenuhi, maka akan dilakukan proses statement pernyataan yang ada dalam perulangan. 54 Bentuk struktur kontrol perulangan diawal dapat digambarkan sebagai berikut: For kondisi K Do Blok Statement End For Gambar 6.12 NS-Diagram Perulangan Awal-akhir Dari keseluruhan bentuk perulangan dapat digabungkan kedalam logika struktur kontrol runtunan yang menjadi salah satu statement pernyataan perulangan, kemudian diikuti oleh statement pernyataan runtunan yang memenuhi proses perulangan, didalam sekumpulan statement yang memenuhi pernyataan perulangan juga dapat dimasukkan statement pernyataan dengan struktur kontrol logika percabangan. Pemakaian struktur kontrol perulangan diawal dapat digambarkan sebagai berikut: Mulai Persiapan Lagi = “Y” Do While Lagi = “Y” Input If Kondisi ya tdk Proses 1 Proses 2 Proses 3 Output Input data lagai Y/T Selesai Gambar 6.13 NS-Diagram Struktur Kontrol Perulangan Diawal 55 Bentuk flowachart untuk logika perulangan dapat digambarkan sebagai berikut: Mulai Persiapan Lagi = “Y” While Lagi = ‘Y” Input Selesai IF kondisi Proses2 Proses1 Proses3 Output Input data lagi Y/T Gambar 6.14 Flowchart NS-Diagram Struktur Perulangan 56 Pemakaian struktur kontrol perulangan diakhir jika dapat digambarkan sebagai berikut: Mulai Persiapan Lagi = “Y” Input Repeat If Kondisi ya tdk Proses 1 Proses 2 Proses 3 Output Input data lagai Y/T Until lagi = “T” Salesai Gambar 6.15 NS-Diagram Struktur Kontrol Perulangan Diakhir 57 Bentuk flowachart untuk logika perulangan dapat digambarkan sebagai berikut: Mulai Persiapan Lagi = “Y” Repeat Input IF kondi Proses2 Proses1 Proses3 Output Input data lagi Y/T Until Lagi = ‘Y” Selesai Gambar 6.16 Flowchart NS-Diagram Perulangan Diakhir 58 Pemakaian struktur kontrol perulangan diawal dan akhir dapat digambarkan sebagai berikut: Mulai Persiapan For Lagi = 1 to N Do Input If Kondisi ya Proses 1 tdk Proses 2 Proses 3 Output Lagi = lagi + 1 End For Gambar 6.17 NS-Diagram Struktur Perulangan Diawal dan Diakhir 59 Bentuk flowachart untuk logika perulangan dapat digambarkan sebagai berikut: Mulai Persiapan For Lagi = 1 to N do Input IF kondi Proses1 Proses2 Proses3 Output Lagi = Lagi + 1 End For Selesai Gambar 6.18 Flowchat logika perulangan 60 6.2. Contoh Kasus Penerapan NSD Diagram Tampilkan bilangan prima dari 10 – 20 Prima = True For x = 2 to bil – 1 do If bil mod x = 0 then Prima = false Endif X = x+1 End for If prima = true the Cetak bil Endif Bll = bil +1 End for Selesai 61 Penyelesaian logika diatas dapat dibuat dalam bentuk NS Diagram sebagai berikut: Mulai Bil, X, : integer Prima : Boolean For Lagi = 1 to 20 Do Prima = true For x = 2 to bil – 1 do If bil mod x = 0 ya tdk Prima = false X = X+1 Output Lagi = lagi + 1 End For If prima = true ya Cetak bil Bil = Bil + 1 End for Selesai Gambar 6.19 NS-Diagram tdk 62 Dari diagram NSD, maka kita dapat mengelompokkan bentuk logika kedalam program modular sebagai berikut: Variabel Variabel Bil, X, : integer Prima : Boolean Lakukan perulangan For Bil = 10 to 20 Do Prima = True Cari Prima Cetak bilangan Cari prima For x = 2 to bil – 1 p do If bil mod x = 0 then Prima = false Endif X = x+1 End for Cetak prima If prima = true the Cetak bil Endif Program Utama Mulai Variabel Lakukan perulangan Cetak prima Selesai BAB 7 PROGRAM MODULAR Salah satu metode penyusunan program terstruktur adalah pemrograman modular. Dengan metode ini suatu masalah dipecah-pecah menjadi beberapa kelompok masalah yang lebih kecil. Dengan membagi masalah menjadi beberapa modul maka masalah tersebut akan menjadi lebih sederhana, sehingga program dapat menjadi lebih mudah disusun dan dipahami. Untuk penyusunan program modular dapat digunakan konsep fungsi, prosedur ataupun subroutine. Prosedur adalah modul program yang mengerjakan tugas atau aktivitas yang spesifik (khusus) dan menghasilkan suatu efek netto. Suatu efek netto diketahui dengan membandingkan keadaan awal (K.awal) sebelum rangkaian fungsi didalam prosedur dilaksanakan dan keadaan akhir (K.akhir) yang diharapkan setelah rangkaian instruksi didalam prosedur dilaksanakan. Function (fungsi) adalah sub program yang memberikan/mengendalikan (return) sebuah nilai dari tipe tertentu (tipe dasar atau tipe bentukan). Definisi fungsi didalam program bersesuaian di dalam matematika. 7.1. Memecahkan Algoritma ke Dalam Algoritma yang Lebih Kecil/Modul Dalam pembahasan sebelumnya telah dinyatakan bahwa untuk merancang solusi algoritma kita harus mampu mendefinisikan permasalahan, membuat struktur kontrol yang dibutuhkan, dan menggunakan peralatan pemecahan permasalahan algoritma dengan mengkombinasikan struktur logika yang ada. Dengan menggunakan metodologi top down desain, kita dapat melakukan pendekatan dalam mendesain program dimana program yang besar dapat dipecah menjadi kelompok program-program yang lebih kecil dalam bentuk prosedur dan fungsi yang sebenarnya saling berkaitan. Contoh: Susunlah algoritma untuk membaca tiga variabel kemudian susunlah ketiga nilai variabel tersebut dengan urutan menaik dan tampilkan ketiga variabel tersebut. 64 Penyelesaian: a. Diagram Definisi Definisikan permasalahan kedalam kelompok mana yang menjadi input, proses, dan output, jika perlu buat dalam bentuk tabel seperti dibawah ini. Input Bil1 Bil2 Bil3 Proses Output Bil1 Baca Bil1, Bil2, Bil3 Bil2 kemudian lakukan Bil3 pengurutan. Cetak ketiga variabel tsb b. Algoritma Pemecahan Kembangkan logika pemecahannya, terutama pada bagian proses sehingga permasalahan diatas dapat menjadi susunan perintah dibawah ini. Baca tiga bilangan: Baca Bil1, Bil2, Bil3 Do while Not ( Bil1 = 0 And Bil2 = 0 And Bil3 = 0 ) If Bil1 > Bil2 then Temp = Bil1 Bil1 = Bil2 Bil2 = temp Endif If Bil2 > Bil3 then Temp = Bil2 Bil2 = Bil3 Bil3 = temp Endif If Bil1 > Bil3 then Temp = Bil1 Bil1 = Bil3 65 Bil3 = temp Endif Cetak Bil1, Bil2, Bil3 Baca Bil1, Bil2, Bil3 Enddo End Dari penyelesaian algoritma di atas dapat dibuat penyelesaian dengan modul sebagai berikut: Baca tiga bilangan Baca Bil1, Bil2, Bil3 Do while Not ( Bil1 = 0 And Bil2 = 0 And Bil3 = 0 ) Sort tiga bilangan Cetak Bil1, Bil2, Bil3 Baca Bil1, Bil2, Bil3 Enddo End Sort tiga bilangan If Bil1 > Bil2 then Temp = Bil1 Bil1 = Bil2 Bil2 = temp Endif If Bil2 > Bil3 then Temp = Bil2 Bil2 = Bil3 Bil3 = temp Endif If Bil1 > Bil3 then Temp = Bil1 Bil1 = Bil3 Bil3 = temp 66 Endif End Jika kita masukkan kedalam sebuah modular maka kita akan mendapatkan beberapa modul-modul sebagai berikut: Baca tiga bilangan Baca Bil1, Bil2, Bil3 Sort tiga bilangan Do while Not ( Bil1 = 0 And Bil2 = 0 And Bil3 = 0 ) Pemanggilan modul Modul Utama Sort tiga bilangan If Bil1 > Bil2 then Temp = Bil1 Bil1 = Bil2 Modul sorting tiga bilangan Bil2 = temp Endif If Bil2 > Bil3 then Temp = bil2 Bil2 = Bil3 7.2. Langkah Modular Programming Untuk memudahkan pembuatan program modular maka diperlukan pendekatan-pendekatan yang mampu memberikan gambaran pemecahan masalah. Ada enam langkah dalam Modular Programming yaitu: 67 1. Definisi masalah Mendefinisikan permasalahan dengan cara mengelompokan kedalam sebuah tabel atau diagram permasalahan mana yang menjadi input, proses, dan output dari permasalahan yang ada. 2. Kelompokkan aktivitas ke dalam modul Aktivitas yang dikelompokkan dari hasil pendefinisian masalah dimasukkan kedalam modul-modul yang ada. 3. Buat bagan susun untuk menjelaskan hierarki dan hubungan antar modul Modul-modul yang telah dikelompokkan dari langkah ke dua, disusun kedalam hierarki dan hubungan antar modulnya, sehingga memudahkan dalam pendefinisian variabel dan pembuatan program utama. 4. Buat logika dari Main Program dengan pseudocode Terlebih dahulu inventarisasi apa saja yang dikerjakan dalam main program. 5. Buat logika untuk tiap-tiap modul dengan pseudocode. 6. Desk-Checking algoritma Memeriksa kebenaran algoritma yang ada. Contoh: Pembuatan laporan pemesanan. Data dibaca dari file order. Record order terdiri dari nomor_product, nama_product, jumlah_pesanan, harga_perunit, biaya_angkut_perunit, biaya_paket_perunit. Bentuk laporan yang diminta sebagai berikut: PT. XYZ Hal : 99 Laporan Pemesanan Barang No Product Nama Product Jumlah Pesanan Jumlah Harga xxxx x ----------- x 999 999.999 xxxx x ----------- x 999 999.999 Setiap halaman terdiri dari 45 baris detail. Jumlah harga = jumlah_pesanan x harga_perunit 68 Bila jumlah harga > 10000 diberikan discount 10 %. Biaya angkut dan biaya paket termasuk juga dalam jumlah harga. 1. Diagram Definisi Input Record Pesanan Nomor_Product Nama_Product Jumlah_Pesanan Harga Ongkos_angkut Ongkos_paket Proses Cetak judul Baca record Hitung jumlah harga Hitung discount Hitung ongkos angkut Hitung ongkos paket Cetak detail Hitung konter Output Judul Detail No.Product Nama Jumlah Jumlah_Harga 2. Pengelompokkan kegiatan dalam Modul a. Cetak judul Dibuat modul untuk mencetak judul b. Perhitungan Dibuat modul untuk menghitung 1) Jumlah harga 2) Diskon 3) Ongkos muat 4) Ongkos paket 3. Hierarchy Chart Mencetak Laporan Pesanan Cetak Judul Hitung Jumlah Harga 69 4. Logika Main Program Main Program melakukan a. Do while b. Memanggil dua modul c. Mencetak detail d. Menghitung jumlah baris e. Membaca data dari file order Mencetak Laporan Pesanan Hal = 0 Cetak judul Baris = 0 Buka File Order Baca File Order Do while Not EOF If baris > 45 then Cetak judul Baris = 0 Endif Hitung jumlah harga Cetak detail Baris = Baris + 1 Baca File Order Enddo Tutup File Order End 5. Merancang pseudocode bagi Modul a. Cetak judul Hal = Hal + 1 Cetak ‘……………………….’ 70 Cetak ‘……………………….’ Cetak ‘……………………….’ Cetak ‘……………………….’ End b. Hitung jumlah harga Jumlah harga = jumlah pesan * harga If jumlah harga > 10000 then Diskon = jumlah harga * 0.1 Else Diskon = 0 Endif Jumlah harga = jumlah harga diskon Ongkos muat = jumlah pesan * biaya muat Ongkos paket = jumlah pesan * biaya paket Jumlah harga = jumlah harga + ongkos muat + ongkos paket End 6. Desk Checking a. Data masukan Record No Product 1 2 3 100 200 300 Nama Product Mouse Printer Keyboard Jumlah Pesan Harga Unit Biaya Muat Biaya Paket 10 20 100 100 200 300 20 10 10 50 20 20 b. Hasil yang diharapkan PT. ABC Hal : 1 Laporan Pemesanan Barang No Product 100 200 300 Nama Product Jumlah Pesanan Jumlah Harga Mouse 10 1700 Printer 20 4600 Keyboard 30 30000 71 BAB 8 KOMUNIKASI ANTAR MODUL Hal yang paling mendasar dalam pendefinisian item data dan struktur data adalah kita harus mengetahui konsep pemahaman komunikasi antar modul, sehingga kita dapat membedakan parameter yang bersifat data global dan data lokal dari pendefinisian variabel yang akan digunakan oleh modul. 8.1. Data Tahap pertama dalam pengembangan solusi algoritma yaitu mendefinisikan permasalahan yang dikelompokkan kedalam modul, struktur logika sampai ke tabel pengecekan kebenaran logika yang telah dikembangkan. Namun dalam aplikasi penulisan program ada beberapa item yang harus dipahami diantaranya: 1. Variabel, konstanta, dan literal a. Variabel: nama yang diberikan bagi sekumpulan sel memori yang dirancang untuk menyimpan data tertentu. Disebut variabel karena data yang tersimpan dapat diubah. b. Konstanta: sebuah data dengan nama dan nilai yang akan tetap sama selama program dijalankan. c. Literal: konstanta yang namanya menunjukkan nilainya. 2. Elementary data a. Integer : Menampilkan set bilangan baik positif maupun negatif. b. Real : Menampilkan set bilangan, positif dan negatif dan juga desimal. c. Character : Menampilkan karakter alphabet, dengan tambahan spesial karakter. d. Boolean : Menampilkan flag atau switch yang berisi satu dari dua kemungkinan False atau True 72 3. Structure data a. Record : Sebuah kumpulan data/field yang memiliki hubungan antara satu dengan yang lainnya. b. File : Sebuah kumpulan record. c. Array : Sebuah struktur data yang terdiri dari sejumlah variabel yang mempunyai tipe yang sama dan diakses dengan nama yang sama juga. d. String : Sebuah kumpulan karakter. 8.2. Komunikasi Antar Modul Berikut dijelaskan mengenai karakteristik dari komunikasi antar modul: 1. Global data : Variabel yang dikenal diseluruh program tersebut, dan dapat diakses dari setiap modul di program tersebut. 2. Local data : Variabel yang didefinisikan disebuah modul. Variabel ini hanya dikenal pada modul dimana variabel tersebut didefinisikan. 3. Rentang : Bagian program dimana variabel didefinisikan dan dapat diakses dapat disebut juga dengan jangkauan data. Contoh: jangkauan data untuk global data adalah seluruh program. 4. Side effect : Sebuah bentuk komunikasi antar modul dengan bagian lain dalam program yang dapat juga berpengaruh dengan modul lainnya. 5. Passing parameter a. Menyampaikan data dari modul pemanggil ke modul yang dipanggil (subordinate). b. Menyampaikan informasi dan subordinate ke modul pemanggil. c. Informasi/data yang dikirim/diterima di pass 2 (dua) arah dari modul pemanggil ke subordinate maupun sebaliknya. 6. Parameter: Dapat dikelompokkan menjadi dua yaitu parameter data dan parameter status a. Parameter data 73 b. Parameter status Dalam merancang modul sebaiknya lebih banyak menggunakan parameter data hindari kemungkinan parameter status sebanyak mungkin. 8.3. Penggunaan Parameter dalam Mendisain Program Berikut ini, mari kita ambil sebuah contoh bagaimana penggunaan parameter dalam perancangan program sebagai berikut: “Susunlah algoritma untuk membaca tiga variabel kemudian susunlah ketiga nilai variabel tersebut dengan urutan menaik dan tampilkan ketiga variabel tersebut”. Penyelesaian: a. Diagram Definisi Input Bil1 Bil2 Bil3 Proses Output Bil1 Baca Bil1, Bil2, Bil3 Bil2 kemudian lakukan Bil3 pengurutan. Cetak ketiga variabel tsb b. Pembagian aktivitas ke dalam modul Aktivitas masalah ini dibagi ke dalam 2 (dua) kegiatan: a. Baca tiga bilangan b. Sort tiga bilangan 74 c. Hierarchy chart Baca tiga bilangan Bil1 Bil2 Bil3 Sort tiga bilangan d. Algoritma Main Program Baca tiga bilangan Baca Bil1, Bil2, Bil3 Do while Not ( Bil1 = 0 And Bil2 = 0 And Bil3 = 0 ) Sort tiga bilangan Cetak Bil1, Bil2, Bil3 Baca Bil1, Bil2, Bil3 Enddo End e. Algoritma Modul Sort tiga bilangan If Bil1 > Bil2 then Temp = Bil1 Bil1 = Bil2 Bil2 = temp Endif If Bil2 > Bil3 then Temp = bil2 Bil2 = Bil3 Bil3 = temp Endif If Bil1 > Bil3 then Temp = Bil1 75 Bil1 = Bil3 Bil3 = temp Endif End 8.4. Perancangan Program Berbasis Objek Perancangan program berbasis objek mengajarkan kepada kita metode pendekatan lain dengan konsep membaca sistem secara keseluruhan dan mengumpulkan berbagai interaksi objek yang terlibat secara internal sampai struktur internal yang tersembunyi sekalipun. 1. Objek Objek dapat terdiri dari sekumpulan data dan operasionalnya yang menggambarkan secara keseluruhan dengan atribut keterangan sebagai berikut: a. Mempunyai nama. b. Mempunyai nilai atau isi. c. Mempunyai nilai operasional terhadap proses dan dapat berinteraksi dengan variabel lain. Secara aplikasi dapat digunakan sebagai indeks yang berperan sebagai penentuan nilai dan penentuan operasionalnya. 2. Informasi yang tersembunyi Didalam perancangan program berbasis objek, struktur objek internal yang tersembunyi mendefinisikan modul yang terdiri dari: a. Individual modul, terdiri dari operasional tersendiri dan tidak tergantung kepada operasi modul lain. b. Global, data yang harus dikurangi ketergantungannya sebagai komunikasi antar objek. 76 BAB 9 KOHESI Dalam program modular terdapat dua peranan variabel yaitu sebagai variabel local dan variabel global, bentuk komunikasi antar variabel didalam sebuah modul digambarkan kedalam keeratan hubungan antar elemen operasional dalam sebuah modul yang dapat dinyatakan sebagai kohesi. Kohesi adalah keeratan hubungan elemen-elemen didalam suatu modul. Macam-macam kohesi didalam sebuah modul dikelompokkan sebagai berikut: 1. Coincidental 2. Logical 3. Temporal 4. Procedural 5. Communicational 6. Sequential 7. Functional 9.1. Kohesi Functional Merupakan bentuk keeratan hubungan antar elemen didalam modul dalam bentuk fungsi yang saling keterkaitan dimana masing-masing fungsi mempunyai satu tugas yang akan menghasilkan satu hasil/satu parameter yang berasal dari satu atau lebih parameter input. Bentuk modul yang berorientasi matematika merupakan bentuk contoh penggunaan kohesi fungsional. Adapun bentuk umum kohesi fungsional sebagai berikut: A = B+C B = C*D K = D/A Contoh: Menghitung pajak If harga > 5000 then Pajak = harga * 0.25  Fungsional 77 Else If harga > 3000 then Pajak = harga * 0.15  Fungsional Else If harga > 2000 then Pajak = harga * 0.1  Fungsional Else Pajak = 0 Endif Endif Endif End 9.2. Kohesi Sequential Merupakan bentuk keeratan hubungan antar elemen didalam modul dalam bentuk fungsi yang mempunyai pekerjaan yang berurutan dimana kegiatan yang dilakukan lebih dari satu dan hasil dari kegiatan sebelumnya menjadi masukan bagi kegiatan selanjutnya. Bentuk kohesi ini dapat dipecah menjadi functional. Bentuk kohesi sequential mempunyai fungsi ketergantungan antara satu variabel dalam elemen baris fungsi dengan variabel elemen lain pada fungsi selanjutnya. Bentuk umum dari kohesi sequential sebagai berikut: C=A+B D=E–C H=G+D F=N*H Contoh: Menghitung penjualan If jumlah_beli > 300 then Potongan = jumlah_beli * harga_barang * 0.15 Else 78 If jumlah_beli > 200 then Potongan = jumlah_beli * harga_barang * 0.1 Else If jumlah_beli > 100 then Potongan = jumlah_beli * harga_barang * 0.05 Else Potongan = 0 Endif Endif Endif Pembelian = Jumlah_beli * harga_barang – Potongan Kohesi Sequential Total = Total + Pembelian  Kohesi Sequential End 9.3. Kohesi Communicational Merupakan bentuk keeratan hubungan antar elemen didalam modul dalam bentuk komunikasi dimana satu kegiatan dengan kegiatan yang lain dalam bentuk kegiatan lebih dari satu yang menggunakan data yang sama dan dapat dijadikan functional. Contoh : Proses perhitungan C=A+B  Kohesi communicational D=A–B  Kohesi communicational E=A*B  Kohesi communicational 9.4. Kohesi Procedural Merupakan bentuk keeratan hubungan antar elemen didalam modul dalam bentuk pemanggilan nama procedural dimana satu kegiatan dengan kegiatan yang lain tidak 79 berhubungan dan hubungan antara elemen yang satu dengan lainnya karena urutan statement, bentuk kohesi ini juga dapat dipecahkan menjadi functional. Contoh: Baca record_mahasiswa dan total_biaya_pembangunan Set nomor_record = 0 Set total_biaya_pembangunan = 0 Baca record_mahasiswa  Kohesi communicational Do while ada tambahan record Tambahkan total_biaya_pembangunan ke total_biaya Tambahkan 1 ke nomor_record Baca record_mahasiswa  Kohesi communicational Enddo Print nomor_record, total_biaya End 9.5. Kohesi Temporal Merupakan bentuk keeratan hubungan antar elemen didalam modul dalam bentuk penggunaan elemen data yang mempunyai nilai sementara yang dapat berubah-ubah dan elemenelemen terlibat dalam berbagai kegiatan yang mempunyai hubungan dalam waktu tanpa memperhatikan urutan fungsi masing-masing. Contoh: Inisialisasi Buka File Transaksi Total_transaksi = 0  Kohesi Temporal Total_penjualan = 0  Kohesi Temporal Baris = 30  Kohesi Temporal No = 0  Kohesi Temporal Hal = 0 End 80 9.6. Kohesi Logical Merupakan bentuk keeratan hubungan antar elemen didalam modul dalam bentuk penggunaan logical percabangan dimana elemen-elemen melakukan kegiatan dengan kategori yang sama dan parameter masukan menentukan kegiatan yang dilaksanakan, serta tidak semua kegiatan dikerjakan. Contoh: Read all files Case if file code  Kohesi Logical 1 : read customer_transaction record if not EOF then  Kohesi Logical increament cust_trans_count endif 2 : read customer_master record if not EOF then increament cust_master_count endif 3 : read product_master record if not EOF then increament product_master_count endif Endcase End 9.7. Kohesi Coincidental Merupakan bentuk keeratan antar elemen didalam modul dalam bentuk elemen-elemen tidak mempunyai hubungan. Contoh: File processing Open employee updates files  Kohesi Konsidental 81 Read employee record  Kohesi Konsidental Print page healing  Kohesi Konsidental Open employee master file  Kohesi Konsidental Set page_count to 1  Kohesi Konsidental Set error_flag to false  Kohesi Konsidental End. Dengan mendesain program yang tersturktur, kita harus membuat modul yang memecahkan permasalahan dalam bentuk fungsi. Fungsi yang menggambarkan kohesi akan menghasilkan modul yang lebih mudah dipahami dan dapat diterapkan kedalam beberapa fungsi lainya. Dalam beberapa kasus tidak mudah untuk membangun sebuah modul. Dengan konsep kohesi kita dengan mudah membaca parameter-parameter yang diperlukan dalam pemecahan permasalahan permrograman terstruktur. Contoh penggunaan kriteria perancangan lain dalam menampilkan bilangan prima dari 10 sampai 20, sebagai berikut: 82 Variabel Variabel Bil, X : integer Prima : Boolean Lakukan perulangan For Bil = 10 to 20 Do Prima = True  Kohesi temporal Cari Prima Cetak bilangan Cari prima For x = 2 to bil – 1 do Kohesi If bil mod x = temporal 0 then Prima = false Endif X = x+1  Kohesi fungsional End for Cetak prima If prima = true the Cetak bil Endif  Kohesi logical Program Utama Mulai Variabel Lakukan perulangan Cetak prima  Selesai Kohesi konsidental 83 BAB 10 KOPLING Didalam pemrograman modular membutuhkan komunikasi modul supaya terciptanya interaksi antar modul. Bentuk interaksi antar modul diwakili oleh beberapa variabel penghubung dalam bentuk variabel global, gambaran komunikasi antar modul dinamakan sebagai keeratan hubungan antar modul yang biasanya disebut dengan kopling. Didalam kopling terjadi tingkat saling ketergantungan diantara dua modul akibat komunikasi yang dilakukan oleh variabel global tersebut. Ada beberapa faktor yang mempengaruhi terjadinya kopling, diantaranya dapat dinyatakan sebagai berikut: 1. Jumlah data yang disalurkan. 2. Jumlah kontrol data yang disalurkan. 3. Jumlah elemen data global yang digunakan bersama-sama oleh beberapa modul. Bentuk komunikasi antar modul/kopling yang dilakukan oleh variabel global dapat dikelompokkan sebagai berikut: 1. Data 2. Stamp 3. Kontrol 4. External 5. Common Dalam implementasinya makin baik kopling makin rendah ketergantungan suatu modul terhadap modul lain dan modul dengan kopling yang baik adalah modul independence. 10.1. Kopling Data Yaitu Komunikasi diantara modul menggunakan data dimana diinginkan jumlah data minimal. Dan parameter data yang disalurkan semakin sedikit semakin baik. Komunikasi antar modul dalam bentuk Kopling Data dapat digambarkan dalam diagram berikut: 84 Modul A Modul B Gambar 10.1 Kopling Data Dari diagram diatas menggambarkan komunikasi antar modul A dengan modul B yang mempunyai komunikasi antar modul dengan menggunakan data dengan karakteristik sebagai berikut: a. Parameter-nya terdiri dari data b. Jumlah parameter minimal Contoh penggunaan kopling data: Proses customer_record ………. Calculate_sales_tax ( total_price, sales_tax ) ………… ……….. End Calculate_sales_tax ( total_price, sales_tax ) If total_price > 5000 then Sales_tax = total_price * 0.25 Else If total_price > 2000 then Sales_tax = total_price * 0.1 Else Sales_tax = 0 Endif Endif End 85 Total_price = parameter masukan Sales_tax = parameter keluaran 10.2. Kopling Stamp Yaitu bentuk komunikasi antar modul dengan menggunakan struktur data. Dua modul melakukan pass struktur data non global yang sama. Struktur data dapat berupa rekaman/record dan array/larik. Komunikasi antar modul dalam bentuk Kopling Stamp dapat digambarkan pada diagram sebagai berikut: Modul A Modul B Gambar 10.2 Kopling Stamp Dari diagram diatas menggambarkan komunikasi antar modul A dengan modul B yang mempunyai komunikasi antar modul dengan menggunakan data dengan karakteristik parameternya adalah struktur data: Contoh: Proses transaction_record ………….. proses_male_student ( current_record ) ………….. End. Proses_male_student ( current_record ) Increament male_student_count If student_age > 21 then 86 Increament mature_male_count Endif ……. ………. End 10.3. Kopling Control Merupakan bentuk komunikasi data antar modul yang menggunakan data kontrol yang dapat mengendalikan proses didalam modul. Dua modul saling melakukan pass menggunakan data kontrol. Komunikasi antar modul dalam bentuk Kopling Control dapat digambarkan pada diagram sebagai berikut: Modul A Modul B Gambar 10.3 Kopling Kontrol Dari diagram diatas menggambarkan komunikasi antar modul A dengan modul B yang mempunyai komunikasi antar modul dengan menggunakan data dengan karakteristik parameternya adalah parameter kontrol. Contoh: Proses input_code Read input_code Choose appropriate_action ( input_code ) …………. ………….. End 87 Choose appropriate_action ( input_code ) Case of input_code 1 : read employee record 2 : print page leading 3 : open employee master file 4 : set page count to 0 5 : error massage Endcase End 10.4. Kopling External Yaitu bentuk komunikasi antar modul dengan menggunakan data global yang sama atau dua modul atau lebih menggunakan data global yang sama. Komunikasi antar modul dalam bentuk Kopling External dapat digambarkan pada diagram sebagai berikut: Global Data Variabel Modul A Modul B Gambar 10.4 Kopling External Dari diagram diatas menggambarkan komunikasi antar modul A dengan modul B yang mempunyai komunikasi antar modul dengan menggunakan data global yang sama dengan karakteristik parameternya adalah tidak ada parameter yang digunakan dari modul pemanggil ke subordinate dan sebaliknya. Contoh: Calculate sales_tax If product is sales exempt then Sales_tax = 0 88 Else If product_price < 5000 then Sales_tax = sales_price * 0.2 ……. ……. Endif Endif End Calculate amount_due ………. ……….. amount_due = total_amount + sales_tax ………. ……….. End 10.5. Kopling Common Yaitu bentuk komunikasi antar modul dengan menggunakan struktur data global yang sama atau dua modul atau lebih menggunakan struktur data global yang sama. Komunikasi antar modul dalam bentuk Kopling Stamp dapat digambarkan pada diagram sebagai berikut: Modul A Modul B Struktur Data Global Gambar 10.5 Kopling Common Dari diagram diatas menggambarkan komunikasi antar modul A dengan modul B yang mempunyai komunikasi antar modul dengan menggunakan struktur data global yang sama 89 dengan karakteristik parameternya adalah tidak ada parameter yang digunakan dari modul pemanggil ke subordinate dan sebaliknya. Contoh: Read customer_ record Read customer record If EOF then Set EOF_flag to true Endif End Validate customer_record If customer_number is Not numeric then Error_message = ‘invalid customer number’ Print error_report Endif ……. …….. End Dalam pemrograman modular, konsep kopling akan menghasilkan pemrograman terstruktur dengan modul yang lebih independen, mudah dipahami dan dapat di implementasikan dengan baik. Aturan didalam kopling akan memberikan komunikasi antar modul yang memudahkan dalam memecah program yang sulit menjadi lebih beberapa modul program kecil yang lebih sederhana. Contoh penggunaan kriteria perancangan lain dalam menampilkan bilangan prima dari dari 10 – 20. 90 Variabel Variabel Bil, X, : integer Prima : Boolean Kopling data Lakukan perulangan For Bil = 10 to 20 Do Prima = True Cari Prima Cetak bilangan Kopling data Cari prima Kopling data For x = 2 to bil – 1 do If bil mod x = 0 then Prima = false Endif X = x+1 End for Cetak prima If prima = true the Cetak bil Endif Kopling kontrol Program Utama Mulai Variabel Lakukan perulangan Cetak prima Selesai 91 BAB 11 KRITERIA PERANCANGAN LAIN Didalam pemrograman terstruktur untuk membuat program modular ada beberapa aspek lain yang menjadi pertimbangan dalam membuat modul selain kohesi dan kopling yaitu: 1. Ukuran modul 2. Factoring 3. Fan-out 4. Fan-in 5. Restrictivity/Generality 6. Initialization/Termination 7. Error reporting 8. Program shape Aspek-aspek tersebut diatas lebih mengutamakan bentuk ukuran modul dan mekanisme komunikasi antara modul diluar komunikasi yang dibangun oleh data dan struktur data. Untuk lebih jelasnya, ada baiknya kita membahas kriteria tersebut satu persatu. 11.1. Ukuran Modul Merupakan kriteria yang menggambarkan banyak instruksi yang berada dalam suatu modul dimana semakin sedikit elemen yang berada dalam suatu modul semakin baik modul tersebut yang menggambarkan kemudahan logika dijalankan dan modul yang memiliki jumlah instruksi/elemen yang banyak dapat terjadi modul tersebut memiliki fungsi yang banyak, sehingga modul tersebut semakin jelek. Bentuk ukuran modul dapat diaplikasikan sebagai berapa baris instruksi yang diperlukan untuk satu modul yang dapat berupa fungsi atau prosedur. 92 11.2. Factoring Menggambarkan jumlah faktor atau rincian modul yang terlibat sehingga utuk modul yang besar kita dapat menurunkan/merinci modul menjadi beberapa modul yang lebih kecil. Kemudian kita membagi kegiatan/fungsi suatu modul ke dalam beberapa modul yang menjadi subordinate dari modul tersebut. Salah satu keuntungan dari factoring adalah: a. Dapat mengurangi atau mempelajari ukuran modul, memperoleh program yang bersifat modular. b. Menghasilkan modul yang independen. c. Menyederhanakan implementasi. Bentuk pemakaian factoring dapat digambarkan sebagai berikut: Modul A Modul B Modul C MENJADI Modul B Modul B1 Modul B2 Gambar 11.1 Factoring Modul B menjadi Modul B1 dan Modul B2. 11.3. Fan-Out Merupakan kelanjutan dari factoring, dimana kita menghitung berapa jumlah faktor yang terjadi untuk satu induk. Sehingga kita dapat melihat banyaknya subordinate langsung dari suatu modul. 93 A B C D Gambar 11.2 Fan-Out Banyaknya Fan-Out A = 3 yaitu B, C dan D a. Perluasan kontrol dari suatu modul jangan terlalu banyak. 11.4. Fan-In Merupakan kebalikan dari Fan-Out sehingga mengasilkan berapa banyaknya boss atau induk dari suatu subordinate. B C A Gambar 11.3 Fan-In Banyaknya Fan-In A = 3 yaitu dari B, C dan D D 94 11.5. Restrictivity/Generality Menggambarkan sifat dari modul yang telah dibentuk dapat sebagai general atau umum atau restrictivity atau khusus. a. Restrictivity Modul-modul yang terlalu khusus yang digunakan untuk operasi fungsi tertentu. Contoh: Menghitung rata-rata 10 data Menghitung jumlah penjualan 100 item Fungsi pangkat bilangan bulat positif Modul ini terlalu khusus sehingga sulit digunakan kembali. b. Generality Modul-modul yang terlalu umum dan dapat digunakan berulang kali dari aplikasi yang berbeda dengan operasi fungsi yang sama. Contoh: Menghitung gaji menggunakan bilangan kompleks. Menghitung baris menggunakan bilangan real. 11.6. Inisialisasi dan Terminalisasi Modul ini dibuat untuk memproses data yang digabungkan menurut waktu. Baik pada awal program atau pada kondisi tertentu didalam program. Biasanya untuk inisalisasi dibentuk satu modul yang khusus menampung pendefinisian variabel, sehingga dapat dipanggil oleh modul lain yang menggunakan variabel yang sama. Untuk terminalisasi lebih banyak mengacu kepada format tampilan output yang diinginkan setelah operasional variabel tertentu. Contoh: Modul dengan kohesi temporal 95 11.7. Laporan Error/Error Reporting Dalam pemrograman modular juga diperlukan modul yang berfungsi sebagai pemberi informasi memberikan laporan kesalahan dari hasil eksekusi program. Modul ini dibuat umum untuk menampilkan semua error yang terjadi dalam program. Modul pemanggil harus mengirim switch/flag untuk menampilkan error yang dikehendaki. Bentuk pemakaian modulnya dapat digambarkan sebagai berikut: Cetak Error Gambar 11.4 Error Reporting Contoh: Modul ABC ……. ……… Cetak_error ( flag_x ) …… End Cetak_error ( flag_x ) Case of flag_x 1 : Cetak ‘salah tekan tombol’ 2 : Cetak ‘salah data’ 3 : Cetak ‘data harus numerik’ 4 : Cetak ‘data harus diisi’ 5 : Cetak’harus diulang’ Endcase End Flag_x berisi 1,2,3,4,5 96 11.8. Program Shape Merupakan pengambaran dari bentuk dasar sebuah modul. Bentuk dasar modul dapat dikelompokkan sebagai berikut: a. Afferent Merupakan bentuk dasar sebuah modul yang tidak mempunyai parameter input, hanya parameter output. b. Efferent Merupakan bentuk dasar sebuah modul yang tidak mempunyai parameter output, hanya parameter input. c. Transform Merupakan bentuk dasar sebuah modul yang memiliki baik input dan output parameter. d. Coordinate Merupakan bentuk dasar sebuah modul yang mempunyai modul yang mengkoordinasikan subordinatenya. Punya input dan output parameter. Secara utuh suatu program shape didalam perancangan program dapat digambarkan sebagai berikut: Coordinate Afferant Transform Gambar 11.5 Program Shape Efferent 97 Contoh penggunaan kriteria perancangan lain dalam menampilkan bilangan prima dari dari 10 – 20. Variabel Variabel Bil, X, : integer Prima : Boolean Lakukan perulangan For Bil = 10 to 20 Do Prima = True Cari Prima Cetak bilangan Cari prima For x = 2 to bil – 1 do If bil mod x = 0 then Prima = false Endif X = x+1 End for Cetak prima If prima = true the Cetak bil Endif Program Utama Mulai Variabel Lakukan perulangan Cetak prima Selesai 98 Kriteria perancangan lain: 1. Ukuran modul Dari kasus diatas didapatkan 5 (lima) buah modul yang saling berinterkasi dimana modul utama teridiri dari 6 (enam) buah instruksi, variabel ada 3 (tiga) instruksi, perulangan dengan 4 (empat) instruksi, cari prima dengan 6 (enam) instruksi dan terakhir dengan 3 (tiga) instruksi. 2. Factoring Program Utama Mulai Variabel Lakukan perulangan Cetak prima Selesai Variabel Bil, X, : integer Prima : Boolean For Bil = 10 to 20 Do Prima = True Cari Prima Cetak bilangan For x = 2 to bil – 1 do If prima = true the If bil mod x = 0 then Endif Prima = false Endif X = x+1 End for Cetak bil 99 3. Fan In Fan in dari suluruh sub modul ada 1 (satu) yaitu modul utama, dan Fan in dari cari prima juga ada 1 (satu) yaitu lakukan perulangan. 4. Fan Out Fan out dari suluruh sub modul ada 1 (satu). 5. Restrictivity/generality Restrictivity: modul yang digunakan untuk keperluan khusus, dari modular diatas terdapat beberap modul restrictivity diantaranya: a. Modul cari prima, yang khusus untuk menentukan logika sebuah bilangan prima b. Modul cetak bilangan, yang khusus untuk menentukan logika menampilkan bilangan. Generality: modul yang digunakan untuk keperluan umum yang dapat dipanggil oleh beberapa modul lainya seperti modul untuk pendefinisian variabel. 6. Inisialisasi dan terminality Inisialisasi dari modul diatas mencakup variabel-variabel input data yang dibutuhkan, sedangkan untuk terminality dari modul diatas mencakup variabel output data yang dibutuhkan untuk aplikasi diatas. 7. Error Reporting Error Reporting dari modul diatas tidak ada. 8. Program Shape Afferent: bentuk dasar sebuah modul yang tidak mempunyai parameter input, hanya parameter output. If prima = true the Cetak bil Endif 100 Efferent: bentuk dasar sebuah modul yang tidak mempunyai parameter output, hanya parameter input. For x = 2 to bil – 1 do If bil mod x = 0 then Prima = false Endif X = x+1 End for Transform: bentuk dasar sebuah modul yang memiliki baik input dan output parameter. For Bil = 10 to 20 Do Prima = True Cari Prima Cetak bilangan Coordinate: bentuk dasar sebuah modul yang mempunyai modul yang mengkoordinasikan subordinatenya. Memiliki input dan output parameter. Program Utama Mulai Variabel Lakukan perulangan 101 DAFTAR PUSTAKA Amborowi, Armadya, 2007, Pengantar Pemrograman Terstruktur, Andi Yogyakarta Indra B. Yatini, 2001, Pemrograman Terstruktur, J$J Learning Yogyakarta J. Ritwell, J Edgar, 1992, Computer Programming, fourth edition, NCC Blackwell Lavetin Anani, 2010, Pengantar Disain dan Analisis Algoritma, Salemba Infotek Jakarta Lesley Anne Robetson, 1993, Simple Program Design, Thomas Nelson Edition Munir Rinaldi, 2011, Algortma dan Pemrograman dalam Bahasa Pascal dan C, Informatika Bandung Nugroho Adi, 2004, Pemrograman Berorientasi Objek, Informatika Bandung Santosa Insap, 2009, Interaksi Manusia dan Komputer, Andi Yogyakarta Yudistyra, Ekabrata, 1991, Algoritma dan Pemrograman Terstruktu dengan Microsotf Basic untuk IBM, Eleksmedia Komputindo Teknik Pemrograman Terstruktur Buku ini mempresentasikan metodologi dan konsep mendesain sebuah pemrograman secara terstruktur yang dapat membantu pembaca dalam memecahkan permasalahan yang berhubungan dengan pemrograman dengan berbagai bahasa pemrograman. Dalam buku ini terdapat pengembangan-pengembangan logika algoritma kedalam logika flowchart dan juga diaplikasikan kedalam Nassi-Schneiderman Diagram, sehingga membuat pembaca lebih kuat dan handal dalam penguasaan logika pemrograman serta memudahkan dalam pembuatan aplikasi pemrogramman. Selengkapnya, buku ini membahas:  Pemrograman Terstruktur  Merancang Program  Pengembangan Algorithma  Struktur Logika  Struktru Percabangan  Perulangan  Nassi-Schneiderman Diagram  Program Modular  Komunikasi Antar Modul  Kohesi  Kopling  Aspek Pemrograman Lainnya

Judul: Teknik Pemrograman Terstruktur

Oleh: Amrizal S.kom., M.si


Ikuti kami