Teknik Pemrograman Terstruktur

109
i TEKNIK PEMROGRAMAN TERSTRUKTUR AMRIZAL, S.KOM., M.SI

Transcript of 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 [email protected].

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 langkah-

langkah 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 Bottom-

up.

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 sebagai berikut:

a. Langkah-langkah proses:

b. Rincian / detail proses

c. Struktur kontrol

d. Variabel dan record

e. Logika

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

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:

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

A

B

C

A Panggil B

B berfungsi / bekerja

B memanggil C

C berfungsi / bekerja

C selesai, kembali ke B

B selesai, kembali ke A

A selesai

X

B CA

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:

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:

Gambar 2.4 Hierarki Top Down Programming

X

A B C

X

B CA

E F G H 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:

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

A

B

C

Instruksi A

Instruksi B

Instruksi C

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

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

Gambar 2.7 Instruksi Do Case

A

B C

T Y

If A then

Instruksi C

Else

Instruksi B

EndIf

A

Instruksi A Instruksi CInstruksi B 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:

Gambar 2.8 Instruksi Perulangan Awal

Kondisi

Instruksi Do While kondisi

Instruksi

Enddo

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:

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

Kondisi

Instruksi

Repeat

Instruksi

Until Kondisi

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 perintah-

perintah 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.

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

Proses

Selesai

Output

Persiapan

Input

Mulai

Algoritmanya sebagai berikut:

Mulai

Persiapan variabel input,

proses dan output

Input variabel

Proses data

Output Variabel

Selesai

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:

Gambar 3.2 Flowchart Logika Percabangan

Proses1

Selesai

Output

Persiapan

Input

Mulai

IF

kondi

Proses2

Proses3

22

Gambar flowchart diatas dapat juga diterjemahkan kedalam logika algoritma yang lebih

sederhana seperti pernyataan algoritma berikut:

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.

Mulai

Persiapan variabel input, proses dan

output

Input variabel

If Kondisi Then

Proses 1

Else

Proses 2

Endif

Proses 3

Output Variabel

Selesai

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

Gambar 3.3 Flowchart Logika Perulangan

Lagi = “Y”

IF

kondi

Proses1

Proses3

Persiapan

Input

Mulai

While

Lagi = ‘Y”

Proses2

Output

Input data lagi Y/T

Selesai

25

Dari gambar flowchart diatas dapat diterjemahkan kedalam bahasa logika algoritma

sebagai berikut:

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

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

26

sederhana sesuai dengan deskripsi masukan, proses dan keluaran dari permasalahan yang ada.

Format tabel pengecekan tersebut dapat digambarkan sebagai berikut:

No Input Proses Output

1 Variabel1 Proses 1 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:

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 Proses Output

Bilangan1 Total

Bilangan2

Input Proses Output

Bilangan1 Total

Bilangan2

Baca bilangan1,

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:

Gambar 4.1 Penggunaan Struktur Percabangan

Proses1

Selesai

Output

Persiapan

Input

Mulai

IF kondisi

Proses2

Proses3

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:

Contoh:

Logika percabangan untuk menentukan bilangan genap atau ganjil dapat dinyatakan

sebagai berikut:

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:

If 5 mod 2 = 0 then

5 = bilangan

genap

else

5 = bilangan

ganjil

endif

If kondisi 1 then

Aksi 1

else

Aksi 2

endif

30

Contoh:

Logika percabangan untuk menentukan bilangan genap atau ganjil dengan bentuk

percabangan 1 kondisi satu aksi dapat dinyatakan sebagai berikut:

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:

atau

5 = bilangan ganjil

If 5 mod 2 = 0 then

5 = bilangan

genap

endif

If kondisi 1 AND kondisi

2 then

Aksi 1

else

Aksi 2

endif

If kondisi 1 OR

kondisi 2 then

Aksi 1

else

Aksi 2

endif

If kondisi 1 then

Aksi 1

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.

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

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

32

Contoh:

Mencari jumlah masing-masing rekaman dan data sesuai dengan status rekaman data

yang dibaca sebagai berikut:

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:

a.

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

If kondisi 1 then

If kondisi 2 then

If kondisi 3 then

If kondisi n then

Aksi n

Else

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:

Gambar 4.2 Penggunaan Struktur Percabangan Case – Of

Contoh:

Mengelompokkan data rekaman mahasiswa berdasarkan umur, untuk mencari mahasiswa

yang laki-laki dan perempuan.

Kondisi 1 Instruksi A

Benar

Kondisi 2 Instruksi B

Benar

Kondisi 3 Instruksi C

Benar

Intruksi yang mengikuti else

35

Jawab

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 Proses Output

Bil1 Bil1

Bil2 Bil2

Bil3 Bil3

Baca Bil1, Bil2, Bil3

kemudian lakukan

pengurutan. Cetak

ketiga variabel tsb

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

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

Hasil yang diharapkan

Data pertama Data kedua

Bil1 11 26

Bil2 2 19

Bil3 7 1

Data pertama Data kedua

Bil1 2 1

Bil2 7 19

Bil3 11 26

37

Tabel pengecekan

Bil1 Bil2 Bil3 Temp If statement

pertama Baca 11 2 7

If 2 11 11 ya

If 7 11 11 ya

If tidak

Cetak ya ya ya

kedua Baca 26 19 1

If 19 26 26 ya

If 19 26 26 ya

If 1 19 19 ya

Cetak ya ya ya

Statement

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 Lagi

bernilai true

Statement_1

Statement_2

…..

Statement_n

Enddo

39

Gambar 5.1 Flowchart Penggunaan Perulangan Awal

Lagi = “Y”

IF

kondisi

Proses1

Proses3

Persiapan

Input

Mulai

While Lagi =

‘Y”

Proses2

Output

Input data lagi Y/T

Selesai

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

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

Input Proses Output

Celsius Baca Celsius Celsius

( 15 kali ) Hitung Reamur Reamur

Hitung Fahrenheit Fahrenheit

Data Pertama Data Kedua

Celsius 100 50

41

b. Hasil yang diharapkan

c. Tabel pengecekan

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:

Data Pertama Data Kedua

Reamur 80 40

Fahrenheit 212 122

Statement x

do while

kondisi

Baca

Celsius

Hitung

Reamur

Hitung

Fahrenheit Cetak C,R,F

0

do while TRUE

baca 100

hitung 80 212

cetak 100, 80, 212

Repeat

Statement_1

Statement_2

……

Statement_n

Until kondisi k true

42

Gambar 5.2 Flowchart Penggunaan Perulangan Akhir

Selesai = “Tidak”

Persiapan

Input

Mulai

IF kondisi

Proses1

Proses3

Proses2

Output

Input data lagi Y/T

Until Selesai =

“Ya”

Selesai

Repeat

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

Gambar 5.3 Flowchart Penggunaan Perulangan Awal Akhir

Persiapan

Input

Mulai

For X= 1 to N Do

IF

kondisi

Proses1

Proses3

Proses2

Output

X= X+1

End For

Stop

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:

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.

Statement A

Statement B

Statement C

47

Penggambaran logika tersebut dapat mewakili setiap proses logika jika dibandingkan

dengan bentuk flowachart, untuk logika runtunan dapat digambarkan sebagai berikut:

Gambar 6.2 Konversi NS-Diagram Runtunan kedalam Algoritma dan Flowchart

Mulai

Pendefinisian variabel

Input data

Proses data

Output data

Selesai

Proses

Selesai

Output

Persiapan

Input

Mulai

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:

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:

Gambar 6.4 NS-Diagram Struktur kontrol

IF THEN ELSE

If kondisi k

Ya Tidak

Statement A Statement B

Mulai

Persiapan

Input data

If kondisi

Proses 1 Proses 2

Proses 3

Output data

Selesai

ya tdk

49

Dari diagram struktur logika diatas, dapat digambarkan kedalam bentuk logika flowchart

dibawah ini:

Gambar 6.5 Flowchart NS-Diagram

Proses1

Selesai

Output

Persiapan

Input

Mulai

IF

kondisi

Proses2

Proses3

tdk ya

50

Untuk lebih jelasnya bentuk Nassi_Schneiderman (N-S) diagram dalam struktur

logika percabangan secara keseluruhan dapat digambarkan sebagai berikut:

a. Simple IF statement

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

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

IF

Ya Tidak

Statement 1 Statement 2

IF

Ya Tidak

Statement 1

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

Gambar 6.8 NS-Diagram Linear Nested If

IF

Ya Tidak

IF

Ya Tidak

IF

Ya Tidak

IF

Ya Tidak

52

2) Non Linear Nested IF Statement

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

IF

Ya Tidak

IF

IF

Ya Tidak

Ya Tidak

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:

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:

Gambar 6.13 NS-Diagram Struktur Kontrol Perulangan Diawal

For kondisi K Do

Blok Statement

End For

Mulai

Persiapan

Lagi = “Y”

Do While Lagi = “Y”

Input

If Kondisi

Proses 1 Proses 2

Proses 3

Output

Input data lagai Y/T

Selesai

ya tdk

55

Bentuk flowachart untuk logika perulangan dapat digambarkan sebagai berikut:

Gambar 6.14 Flowchart NS-Diagram Struktur Perulangan

Lagi = “Y”

IF kondisi

Proses1

Proses3

Persiapan

Input

Mulai

While Lagi = ‘Y”

Proses2

Output

Input data lagi Y/T

Selesai

56

Pemakaian struktur kontrol perulangan diakhir jika dapat digambarkan sebagai berikut:

Gambar 6.15 NS-Diagram Struktur Kontrol Perulangan Diakhir

Mulai

Persiapan

Lagi = “Y”

Repeat

Input

If Kondisi

Proses 1 Proses 2

Proses 3

Output

Input data lagai Y/T

Until lagi = “T”

Salesai

ya tdk

57

Bentuk flowachart untuk logika perulangan dapat digambarkan sebagai berikut:

Gambar 6.16 Flowchart NS-Diagram Perulangan Diakhir

Lagi = “Y”

Persiapan

Input

Mulai

Until

Lagi = ‘Y”

Selesai

IF

kondi

Proses1

Proses3

Proses2

Output

Input data lagi Y/T

Repeat

58

Pemakaian struktur kontrol perulangan diawal dan akhir dapat digambarkan sebagai

berikut:

Gambar 6.17 NS-Diagram Struktur Perulangan Diawal dan Diakhir

Mulai

Persiapan

For Lagi = 1 to N Do

Input

If Kondisi

Proses 1 Proses 2

Proses 3

Output

Lagi = lagi + 1

End For

ya tdk

59

Bentuk flowachart untuk logika perulangan dapat digambarkan sebagai berikut:

Gambar 6.18 Flowchat logika perulangan

Lagi = Lagi + 1

Proses1

Persiapan

Mulai

IF

kondi

Proses3

Input

Proses2

Output

Selesai

For Lagi = 1 to N do

End For

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:

Gambar 6.19 NS-Diagram

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

Prima = false

X = X+1

Output

Lagi = lagi + 1

End For

If prima = true

Cetak bil

Bil = Bil + 1

End for

Selesai

ya tdk

ya tdk

62

Dari diagram NSD, maka kita dapat mengelompokkan bentuk logika kedalam program

modular sebagai berikut:

Variabel

Lakukan perulangan

Cari prima

p

Cetak prima

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 bil mod x = 0

then

Prima = false

Endif

X = x+1

End for

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.

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

Input Proses Output

Bil1 Bil1

Bil2 Bil2

Bil3 Bil3

Baca Bil1, Bil2, Bil3

kemudian lakukan

pengurutan. Cetak

ketiga variabel tsb

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:

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:

Sort tiga bilangan

If Bil1 > Bil2

then

Temp = Bil1

Bil1 = Bil2

Bil2 = temp

Endif

If Bil2 > Bil3

then

Temp = bil2

Bil2 = Bil3

Baca tiga bilangan

Baca Bil1, Bil2, Bil3

Do while Not ( Bil1 = 0 And Bil2 = 0

And Bil3 = 0 )

Sort tiga bilangan

Pemanggilan

modul

Modul Utama

Modul sorting

tiga bilangan

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:

Setiap halaman terdiri dari 45 baris detail.

Jumlah harga = jumlah_pesanan x harga_perunit

Hal : 99

No Product Nama Product Jumlah Pesanan Jumlah Harga

xxxx x ----------- x 999 999.999

xxxx x ----------- x 999 999.999

PT. XYZ

Laporan Pemesanan Barang

68

Bila jumlah harga > 10000 diberikan discount 10 %. Biaya angkut dan biaya paket

termasuk juga dalam jumlah harga.

1. Diagram Definisi

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

Input Proses Output

Record Pesanan Cetak judul Judul

Nomor_Product Baca record Detail

Nama_Product Hitung jumlah harga No.Product

Jumlah_Pesanan Hitung discount Nama

Harga Hitung ongkos angkut Jumlah

Ongkos_angkut Hitung ongkos paket Jumlah_Harga

Ongkos_paket Cetak detail

Hitung konter

Mencetak

Laporan

Pesanan

Cetak JudulHitung 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

b. Hasil yang diharapkan

Record

No

Product

Nama

Product

Jumlah

Pesan

Harga

Unit

Biaya

Muat

Biaya

Paket

1 100 Mouse 10 100 20 50

2 200 Printer 20 200 10 20

3 300 Keyboard 100 300 10 20

Hal : 1

No Product Nama Product Jumlah Pesanan Jumlah Harga

100 Mouse 10 1700

200 Printer 20 4600

300 Keyboard 30 30000

PT. ABC

Laporan Pemesanan Barang

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 dapat disebut juga dengan pengaruh samping

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

b. Pembagian aktivitas ke dalam modul

Aktivitas masalah ini dibagi ke dalam 2 (dua) kegiatan:

a. Baca tiga bilangan

b. Sort tiga bilangan

Input Proses Output

Bil1 Bil1

Bil2 Bil2

Bil3 Bil3

Baca Bil1, Bil2, Bil3

kemudian lakukan

pengurutan. Cetak

ketiga variabel tsb

74

c. Hierarchy chart

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

Baca tiga bilangan

Sort tiga bilangan

Bil1

Bil2

Bil3

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 elemen-

elemen 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

Lakukan perulangan

Cari prima

Cetak prima

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 bil mod x = 0

then

Prima = false

Endif

X = x+1

End for

If prima = true the

Cetak bil

Endif

Program Utama

Mulai

Variabel

Lakukan

perulangan

Cetak prima

Selesai

Kohesi temporal

Kohesi temporal

Kohesi logical

Kohesi fungsional

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

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

Modul A

Modul B

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:

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

Modul A

Modul B

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:

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

Modul A

Modul B

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:

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

Modul A Modul B

Global Data Variabel

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:

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

Modul A Modul B

Struktur Data Global

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

Lakukan perulangan

Cari prima

Cetak prima

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 bil mod x =

0 then

Prima = false

Endif

X = x+1

End for

If prima = true the

Cetak bil

Endif

Program Utama

Mulai

Variabel

Lakukan

perulangan

Cetak prima

Selesai

Kopling data

Kopling kontrol

Kopling data

Kopling data

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:

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.

Modul A

Modul B Modul C

MENJADI

Modul B

Modul B1 Modul B2

93

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.

Gambar 11.3 Fan-In

Banyaknya Fan-In A = 3 yaitu dari B, C dan D

A

B DC

A

B DC

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:

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

Cetak

Error

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:

Gambar 11.5 Program Shape

Afferant EfferentTransform

Coordinate

97

Contoh penggunaan kriteria perancangan lain dalam menampilkan bilangan prima dari

dari 10 – 20.

Variabel

Lakukan perulangan

Cari prima

Cetak prima

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 bil mod x =

0 then

Prima = false

Endif

X = x+1

End for

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

Variabel

Bil, X, :

integer

Prima :

Boolean

If prima = true

the

Cetak bil

Endif

Program Utama

Mulai

Variabel

Lakukan

perulangan

Cetak prima

Selesai

For Bil = 10 to

20 Do

Prima = True

Cari Prima

Cetak bilangan

For x = 2 to bil – 1

do

If bil mod x =

0 then

Prima = false

Endif

X = x+1

End for

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

b. Modul cetak 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.

Transform: bentuk dasar sebuah modul yang memiliki baik input dan output parameter.

Coordinate: bentuk dasar sebuah modul yang mempunyai modul yang mengkoordinasikan

subordinatenya. Memiliki input dan output parameter.

For Bil = 10 to

20 Do

Prima = True

Cari Prima

Cetak bilangan

For x = 2 to bil – 1 do

If bil mod x = 0 then

Prima = false

Endif

X = x+1

End for

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