Anda di halaman 1dari 109

i

TEKNIK
PEMROGRAMAN
TERSTRUKTUR

AMRIZAL, S.KOM., M.SI


ii

tEKNIK
PEMROGRAMAN
TERSTRUKTUR

AMRIZAL, S.KOM., M.SI


iii

Teknik Pemrograman Terstruktur


Oleh Amrizal, S.Kom., M.SI
Hak Cipta @ 2014 Pada Penulis

Penyusun : Amrizal, S.Kom., M.SI


Editor : Nia Ekawati, S.Kom., M.SI
Penerbit : Karya Mitra Sejati
ISBN : 978-602-7782-05-1
iv

KATA PENGANTAR

Dalam membangun sebuah aplikasi pemrograman, diperlukan sebuah teknik


pemrograman yang dapat memudahkan dalam perencanaan dan pengorganisasian, namun
dalam kenyataannya masih banyak ditemukan permasalahan-permasalahan dalam
membuat sebuah aplikasi pemrograman, hal ini menyebabkan minat dalam menguasai
sebuah aplikasi sangat kurang sekali. Hal ini dapat dilihat dari banyaknya mahasiswa yang
mengambil jurusan atau bidang ilmu teknologi informasi komputer, akan tetapi tidak
mampu menguasai bahasa pemrograman, yang disebabkan oleh kurangnya minat untuk
menguasai bahasa pemrograman tersebut. Semua ini tidak lain karena ketidakmampuan
dalam pemecahan permasalahan dan ketidakmampuan dalam pola pemecahan
permasalahan secara terstruktur.
Buku ini adalah buku yang mempresentasikan teknik pemecahan permasalahan
pemrograman secara terstruktur dengan menampilkan konsep struktur logika yang jelas,
sehingga membantu pembaca dalam memahami konsep pemrograman secara terstruktur,
beserta aspek-aspek kriteria lainya dalam pemrograman dan mampu dalam mendesain
pemecahan permasalahan dalam dunia pemrogramam. Oleh karena itu buku ini sangat
cocok bagi mahasiswa, akademisi, dan praktisi yang sedang mempelajari teknik
pemrograman.
Dan pada kesempatan ini, saya mengucapkan syukur kepada Allah SWT yang telah
memberikan kemampuan dan kesempatan dalam menyelesaikan buku ini, dan tidak lupa
kepada keluarga tercinta yang telah memberikan semangat dan dorongan, sehingga tanpa
terasa telah selesai buku ini di buat.
Demikianlah, melalui kalimat pengantar diatas, kiranya pembaca mendapat
gambaran dari buku ini. Tak ada gading yang tak retak. Buku ini pun sama sekali tidak
sempurna untuk menjawab semua keinginan pembaca, mohon kritik dan saranya untuk di
kirimkan ke email amrizal@puterabatam.ac.id.
Batam Desember 2014

Penulis
v

DAFTAR ISI
Halaman

KATA PENGANTAR …….…………..……………………………………………….. ii


DAFTAR ISI …..........……………………………….…………………………………. iii
BAB 1 PENDAHULUAN
1.1. Tujuan Pemrograman Terstruktur ...……………………..…………………...... 1
1.2. Ciri Pemrograman Terstruktur ….……………………………………………... 2
1.3. Standar Program yang Baik ...………………………………………………...... 3
1.3.1. Standar Pemecahan masalah …...………………………………………………. 3
1.3.2. Standar Penyusunan Program …………………………………………............. 4
1.3.3. Algorithma Standar Pemrograman yang Baik ...……………………………….. 4
1.3.4. Struktur Logika ...…………...………………………………………………….. 6
BAB 2 MERANCANG PROGRAM
2.1. Langkah-langkah Pengembangan Program ...………………………………….. 8
2.2. Pemrograman Terstruktur ……………………………………………………… 10
2.2.1. Pemrograman Modular ...………………………………………………………. 10
2.2.2. Top Down Programming .……………………………………………………… 12
2.2.3. Logica Structure / Struktur Logik ……………………………………………... 13
2.3. Pseudo Code ...…………………………………………………………………. 16
BAB 3 PENGEMBANGAN ALGORITMA
3.1. Memperkenalkan Metode Analisis Masalah dan Pengembangan Pemecahan
Masalah ...………………………………………………………………………. 18
3.2. Mengembangkan Algoritma Menggunakan Struktur Urut ….…………………. 19
3.3. Memperkenalkan Metode Pengecekan Masalah bagi Pemecahan Masalah ….... 25
BAB 4 STRUKTUR PERCABANGAN
4.1 Penggunaan Struktur Percabangan .……………………………………………. 28
4.2 Algoritma Menggunakan Selection ……………………….………………….... 35
BAB 5 STRUKTUR PERULANGAN
5.1 Logika Perulangan dengan Kondisi Perulangan Diawal …………..…………... 38
5.2 Logika Perulangan dengan Kondisi Perulangan Diakhir …………..………….. 41
vi

5.3 Logika Perulangan dengan Kondisi Perulangan Diawal dan Akhir …….……... 43
BAB 6 NASSI SCHNEIDERMAN DIAGRAM
6.1. Tiga Dasar Struktur Kontrol ………………………………………………….... 46
6.2. Contoh Kasus Penerapan NSD Diagram …………..…………………………... 60
BAB 7 PROGRAM MODULAR
7.1. Memecahkan Algoritma ke Dalam Algoritma yang Lebih Kecil/Modul ……… 63
7.2. Langkah Modular Programming ………………………………………………. 66
BAB 8 KOMUNIKASI ANTAR MODUL
8.1. Data ……………………………………………..……………………………… 71
8.2. Komunikasi Antar Modul ………………………....……………………..…….. 72
8.3. Penggunaan Parameter dalam Mendisain Program ……………………………. 73
8.4. Perancangan Program Berbasis Objek ………………………………………… 75
BAB 9 KOHESI
9.1. Functional ……………………………………………………………………… 76
9.2. Sequential ……………………………………………………………………… 77
9.3. Communicational ……………………………………………………………… 78
9.4. Procedural ……………………………………………………………………... 78
9.5. Temporal ………………………………………………………………………. 79
9.6. Logical …………………………………………………………………………. 80
9.7. Coincidental …………………………………………………………………… 80
BAB 10 KOPLING
10.1. Data ……………………………………………..……………………………… 83
10.2. Stamp …………………………………………………………………………... 85
10.3. Kontrol …………………………………………………………………………. 86
10.4. External ………………………………………………………………………… 87
10.5. Common ……………………………………………………………………….. 88
BAB 11 KRITERIA PERANCANGAN LAIN
11.1. Ukuran modul ………………………………………………………………...... 91
11.2. Factoring ………………………………………………………………………. 92
11.3. Fan-out ………………………………………………………………………… 92
11.4. Fan-in …………………………………………………………………………. 93
vii

11.5. Restrictivity / Generality ………………………………………………………. 94


11.6. Initialization / Termination ……………………………………………………. 94
11.7. Error Reporting ………………………………………………………………... 95
11.8. Program Shape ………………………………………………………………… 96
DAFTAR PUSTAKA
LAMPIRAN
BAB 1
PENDAHULUAN

Konsep Pemrograman Terstruktur pertama kali di ungkapkan oleh Profesor Edsger


Djikstra pada tahun 1965. Didalam perancangan program diperlukan pola berpikir secara
terstruktur, sehingga dalam pemecahan permasalahan pemrograman mempunyai 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 diantaranya adalah mengenal langkah-langkah proses dari objek
permasalahan dengan demikian kita dapat mengenal rincian proses lebih detail yang dapat
memberikan kesimpulan usulan pemencahan masalah yang terangkum kedalam struktur
kontrol atau struktru logika pemecahan permasalahan, kemudian dengan mudah kita
mendeklarasikan variabel dan record yang dibutuhkan, terakhir kita mulai dengan
membangun logika penyelesaian permasalahan.
9

Outline pemecahan masalah dapat juga dijabarkan kedalam diagram hirarki yang
menggambarkan struktur pemecahan masalah dari langkah proses sampai logika yang
digunakan.
3. Pengembangan outline ke dalam algoritma
Outline pemecahan permasalahan dilanjutkan ketahap pengembangan algoritma yang
merupakan sekelompok penyelesaian permasalahan yang lebih sederhana secara terstruktur
mulai dari masukan, proses, dan keluaran yang diharapkan.
4. Melakukan test algoritma
Algoritma yang telah dikembangkan di uji kebenaran struktur logikanya, apakah sudah
memenuhi harapan output yang diinginkan. Pengujian dapat dilakukan dengan
menggunakan tabel kebenaran.
5. Coding / menulis program dan algoritma
Algoritma penyelesaian yang telah dikembangkan dan teruji kebenaranya, dipindahkan
kedalam kode program yang lebih spesifik sesuai dengan aturan bahasa pemprograman
tertentu. Didalam tahap inilah ditentukan kemudahan bagi pemrogram menterjemahkah
logika yang dikembangkan kedalam berbagai bahasa pemrograman yang sedang
berkembang.
6. Execute program
Tahap kompilasi program dengan mendeteksi kesalahan-kesalahan yang terjadi didalam
pemrograman, bentuk kesalahan yang sering terjadi biasanya kesalahan dalam penulisan
yang biasa disebut syntax error atau kesalahan dalam logika program. Setelah tahap ini
bisa berjalan dengan baik, maka program dapat dijalankan.
7. Dokumentasi dan pemeliharaan program
Pada tahap ini program yang telah dieksekusi dijalankan secara permanen dan perlu ada
dokumentasi dan pemeliharaan, bentuk dokumentasi yang pertama adalah merubah
program aplikasi kedalam executable file, agar dapat dijalankan kedalam berbagai sistem
operasi, selain itu dilakukan juga kegiatan pemeliharaan dan backup data secara berkala
dan berkesinambungan.
10

2.2. Pemrograman Terstruktur


Pemrograman terstruktur dapat membantu perancang program lebih efektif dan bebas dari
kesalahan dengan konsep pemecahan permasalahan secara terstruktur. Ada dua model yang
menggambarkan pemrograman terstruktur:
1. Menjelaskan top-down programming
Mempresentasikan pemecahan permasalahan mulai dari pengkodean awal sampai akhir,
secara sistematik yang membaca permasalahan dari level tingkat atas atau umum sampai
ke level paling bawah dan lebih spesifik.
2. Menjelaskan desain secara modular
Struktur pemrograman secara termodul dengan memecah permasalahan yang besar
kedalam modul-modul sederhana yang lebih mudah dipahami. Desain secara modul
merupakan implementasi dari konsep top-down programming.
3. Menjelaskan struktur logika
Bentuk struktur logika yang menjabarkan top-down programming di konversikan kedalam
desain modular membagi struktur logika menjadi 3 (tiga) bagian sebagai berikut:
a. Runtunan, merupakan struktur logika secara berurutan/ beruntun mulai dari input,
proses, dan ouput secara garis besar.
b. Seleksi, merupakan logika percabangan yang menghasilkan pilihan yang harus
dijalankan pada saat eksekusi program.
c. Perulangan, merupakan logika yang sama dilakukan lebih dari satu kali sesuai dengan
kondisi penyelesaian permasalahan yang dilakukan.

Untuk lebih jelasnya konsep pemrograman secara terstruktur dapat dijabarkan dalam
pembahasan meliputi pemrograman modular, top down programming, dan struktur logika.

2.2.1 Pemrograman Modular


Dalam pemrograman modular yang membagi struktur program yang lebih besar menjadi
modul-modul yang sederhana, dimana modul yang lebih besar mengelola modul dibawahnya.
11

A Panggil B
B berfungsi / bekerja
B memanggil C
B
C berfungsi / bekerja
C selesai, kembali ke B
B selesai, kembali ke A
A selesai
C

Gambar 2.1 Struktur Pengelolaan Modul Sederhana

Pembagian program ke dalam modul-modul yang saling berkaitan sesuai dengan


lingkungan kerjanya, misalnya modul A jika bekerja maka akan memanggil modul B, sedangkan
modul B jika bekerja akan memanggil modul C, jika modul C selesai maka proses kembali
kedalam modul B dan jika modul B selesai maka proses akan kembali ke modul A.
Hierarki/organisasi modul-modul secara vertikal dapat juga terjadi secara horizontal dan
terpusat, seperti diagram dibawah ini:

A B C

Gambar 2.2 Struktur Pengelolaan Modul Terpusat

X memanggil A
Setelah A mengerjakan dan kembali ke X
X memanggil B
B bekerja, setelah selesai kembali ke X
X memanggil C
C bekerja, setelah selesai kembali ke X
12

Modul X mengelola lebih dari satu modul secara bertingkat dapat dilihat apabila modul X
bekerja maka akan memanggil modul A dan setelah modul A selesai, maka proses akan kembali
ke modul X, kemudian modul X memanggil modul B, setelah selesai maka proses akan kembali
ke modul X begitu juga sebaliknya apabila modul X memanggil modul C, sehingga modul X
menjadi pusat pengelolaan.
Bentuk komunikasi antar modul dapat digambarkan dalam diagram sebagai berikut:

A B C

Gambar 2.3 Komunikasi Antar Modul

2.2.2 Top Down Programming


Pembagian modul ke dalam modul-modul yang lebih rinci (submodul) didalam program
modular secara keseluruhan akan menggambarkan bagaimana pola hirarki pemrograman dari
awal sampai akhir, seperti diagram sebagai berikut:

A B C

E F G H I

Gambar 2.4 Hierarki Top Down Programming


13

Dari diagram diatas dapat dilihat pengembangan program modular menjadi top-down
programming dimana modul X mengelola modul A, B, dan C. Modul A juga mengelola modul E
dan F, modul B mengelola modul G sedangkan modul C juga mengelola modul H dan I.

2.2.3 Logica Structure / Struktur Logik


Secara umum struktur logika didalam pemrograman dapat dikelompokkan menjadi 3 (tiga)
bagian, yaitu:
1. Sequence structure / struktur urut
Merupakan urutan logika secara berurutan mulai dari awal sampai akhir yang dibagi
menjadi beberap instruksi dimana instruksi tersebut akan dilaksanakan jika instruksi
sebelumnya selesai dilaksanakan. Bentuk instruksi secara berurutan dapat digambarkan
sebagai berikut:

A Instruksi A

B Instruksi B

C Instruksi C

Gambar 2.5 Instruksi Runtunan


Dari gambar diatas dapat dilihat konsep runtunan atau berurutan dinyatakan bahwa
instruksi A harus berjalan dulu sebelum dilakukan instruksi B, dan instruksi B harus
dilakukan dulu sebelum dilakukan instruksi C, dengan arti kata bahwa instruksi C
tergantung kepadan instruksi B, sedangkan instruksi B tergantung kepada insturksi A.

2. Selection Structure / Struktur seleksi


Merupakan urutan logika secara percabang yang menghasilkan output pilihan sesuai
dengan logika program. Bentuk logika percabangan dapat menggunakan dua perintah yaitu
14

logika If Then Else dan logika Case of atau Depend on. Bentuk instruksi yang
menggunakan logika percabangan dapat digambarkan sebagai berikut:
a. If then else

T Y
A

If A then
Instruksi C
B C Else
Instruksi B
EndIf

Gambar 2.6 Instruksi Percabangan If-Then

Dari gambar diatas dinyatakan bahwa logic percabangan dengan dua kondisi dimana
jika kondisi A benar maka instruksi C akan dijalankan, jika tidak maka proses akan
menjalankan instruksi B.

b. Do Case – Enddo

Instruksi A Instruksi B Instruksi C Instruksi D

Gambar 2.7 Instruksi Do Case


15

Do case Var
Kondisi 1 : Instruksi A
Kondisi 2 : Instruksi B
Kondisi 3 : Instruksi C
Kondisi 4 : Instruksi D
Enddo
Dari gambar diatas dapat dinyatakan bahwa logika percabangan case merupakan
logika percabangan dengan banyak kondisi banyak aksi yang mempunyai peluang
ketergantungan pembenaran kondisi dan aksi secara horizontal dengan nilai yang sama
.
3. Repetition Structure / Struktur Pengulangan
Merupakan urutan logika secara perulangan dimana kegiatan yang sama dilakukan
lebih dari satu kali. Bentuk perulangan yang biasa digunakan diantaranya perulangan
diawal, perulangan di akhir dan perulangan diawal dan diakhir. Bentuk instruksi perulang
dapat digambarkan sebagai berikut:
a. Do While – Enddo, merupakan bentuk perulangan dengan mendeklarasikan logika
diawal, perulangan akan dilakukan selama memenuhi kondisi Ya, dan akan berhenti jika
telah memenuhi kondisi Tidak. Bentuk perulangan dengan kondisi awal dapat
digambarkan sebagai berikut:

Instruksi Do While kondisi


Instruksi
Enddo

Kondisi

Gambar 2.8 Instruksi Perulangan Awal


16

b. Repeat – Until, merupakan bentuk perulangan dengan mendeklarasikan logika akhir


perulangan akan dilakukan selama memenuhi kondisi Tidak, dan akan berhenti jika
telah memenuhi kondisi Ya. Bentuk perulangan dengan kondisi akhir dapat
digambarkan sebagai berikut:

Repeat
Instruksi
Instruksi Until Kondisi

Kondisi

Gambar 2.9 Instruksi Perulangan Akhir

2.3. Pseudocode
Pseudocode merupakan logika program sederhana yang ditulis dalam bahasa sehari hari,
pseudocode berbeda dengan algoritma, karena algoritma ditulis dengan jelas, tepat dan tidak
samar-samar dan memberikan pemecahan yang tepat untuk semua kasus serta memiliki akhir,
sedangkan pseudocode statement program ditulis dengan bahasa Indonesia/Inggris yang
sederhana, setiap instruksi ditulis pada setiap baris, keywords/kata kunci digunakan khusus untuk
menjelaskan struktur kontrol, setiap set/bagian instruksi memiliki awal dan akhir dengan “one
entry one exit”, pengelompokkan statement dapat membentuk satu modul yang mempunyai
nama. Cara menulis Pseudocode diantaranya:
1. Komputer dapat mendapatkan data.
Read student-name
Get system-date
2. Komputer dapat menyajikan informasi
Print “Saya Alogorithma”
Cetak “Saya Algorithma”
3. Komputer dapat melakukan aritmatika perhitungan +, -, *, /, ( )
Add number to total
17

Total = Total + number


4. Komputer dapat memberikan nilai
Set student_count to 0
5. Komputer dapat membandingkan dan memilih alternatif tindakan
If student is parttime then
Add 1 to part_time_count
Else
Add 1 to full_time_count
Endif
6. Komputer dapat melakukan pengulangan
Do while student_total < 50
Read student record
Print student name, address to report
Add 1 to student_total
Enddo
Repeat
X←X+1
A←A+X
Until X = 10
BAB 3
PENGEMBANGAN ALGORITMA

Pengenalan metode analisis masalah dan pengembangan solusinya, algoritma sederhana


menggunakan pengembangan struktur kontrol yang berurutan dan pengecekan kesalahan secara
manual yang dapat dikelompokkan menjadi:
1. Pendefinisian masalah;
2. Perancangan solusi algoritma;
3. Cek kebenaran solusi masalah;
4. Pembuatan kesimpulan;
5. Pemrograman.

3.1 Memperkenalkan Metode Analisis Masalah dan Pengembangan


Pemecahan Masalah.
Dalam pemecahan permasalahan perlu diketahui metode analisis yang lebih baik kemudian
dilakukan pengembangan hasil analisis menjadi sebuah pengembangan pemecahan
permasalahan. Semua pemecahan masalah harus dilakukan dalam 4 (empat) tahapan proses
yaitu:
1. Pendefinisian masalah, merupakan proses menginvetarisir semua masalah ke dalam 3 (tiga)
elemen yaitu:
a. Masukan: merupakan kumpulan sumber daya data yang tersedia dalam permasalahan,
sehingga kita dapat menganalisa dan menyediakan data masukan untuk pemecahan
masalah;
b. Proses: merupakan kumpulan aktivitas atau aksi yang dibutuhkan dalam menghasilkan
output yang diinginkan, untuk itu kita harus membuat dan menyediakan daftar proses
atau langkah-langkah yang diperlukan untuk menghasilkan output atau keluaran;
c. Keluaran: merupakan daftar output yang diinginkan, sehingga dalam menganalisa
keluaran menghasilkan daftar output atau keluaran.
19

Ketika kita membaca permalasalahan maka komponem input dan output dapat
didefinisikan dengan mudah jika kita mengenal objek dan dan proses yang akan di
defenisikan.

2. Kebutuhan/penggunaan struktur kontrol


Menganalisis struktur kontrol apa saja yang digunakan dalam memecahkan masalah.
Dalam struktur logika secara beruntun akan dapat dijelaskan tahap awal dari 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.

Mulai

Persiapan
Algoritmanya sebagai berikut:

Mulai
Input
Persiapan variabel input,
proses dan output
Input variabel
Proses Proses data
Output Variabel
Selesai
Output

Selesai

Gambar 3.1 Flowchart dan Algorithma Runtunan

2. Struktur urutan seleksi


Bentuk struktur logika seleksi dapat disebut juga dengan logika percabangan karena
menghasilkan logika pilihan. Struktur logika urutan seleksi merupakan pengembangan dari
logika urutan beruntun yang menambahkan seleksi, sehingga menghasilkan proses
tambahan menjadi proses 1 untuk pernyataan jika logika bernilai benar atau proses 2 untuk
pernyataan jika logika bernilai salah, kemudian dari hasil logika pilihan dilanjutkan
21

kedalam proses tiga yang menerima input dari hasil proses 1 atau proses 2. Bentuk logika
percabangan atau struktur urutan seleksi dengan penambahan proses dari hasil logika
pilihan dapat digambarkan kedalam flowchart sebagai berikut:

Mulai

Persiapan

Input

IF
kondi

Proses1 Proses2

Proses3

Output

Selesai

Gambar 3.2 Flowchart Logika Percabangan


22

Gambar flowchart diatas dapat juga diterjemahkan kedalam logika algoritma yang lebih
sederhana seperti pernyataan algoritma berikut:

Mulai

Persiapan variabel input, proses dan


output

Input variabel

If Kondisi Then

Proses 1

Else

Proses 2

Endif

Proses 3

Output Variabel

Selesai

3. Struktur urutan perulangan


Struktur urutan perulangan dapat dinyatakan karena ada kegiatan yang sama
dilakukan lebih dari satu kali. Konsep perulangan merupakan pengembangan dari logika
urutan beruntun dari beberapa kegiatan yang sama. Untuk perulangan digunakan
pernyataan yang mampu memberikan variabel perulangan yang dapat dialokasikan
kedalam listing program. Bentuk penempatan perulang dan dapat dikelompokkan kedalam
3 (tiga) bagian yaitu:
a. Struktur perulangan dengan logika perulang diawal
Merupakan bentuk struktur perulangan dengan menempatkan proses
perulangan di awal, bentuk perulangan ini akan bekerja selama kondisi dinyatakan
benar atau true. Apabila pernyataan kondisi salah atau tidak maka proses perulangan
akan selesai, bentuk perulangan ini akan dianalogikan sebagai berikut:
Manusia makan karena lapar, jadi dengan pengkondisian diawal bahwa
sebelum makan dinyatakan lapar = ya, sehingga bentuk perulangannya adalah selama
lapar = ya atau benar maka akan makan terus, sampai pernyataan lapar = tidak.
23

b. Struktur perulangan dengan logika perulang diakhir


Merupakan bentuk struktur perulangan dengan menempatkan proses
perulangan di akhir, bentuk perulangan ini akan bekerja selama kondisi dinyatkan
salah atau false. Bentuk perulangan ini akan dianalogikan sebagai berikut:
Manusai makan karena kenyang, jadi dengan pengkondisian diakhir dinyatakan
bahwa makan sampai kenyang, sehingga bentuk perulangannya adalah selama
kenyang = belum atau tidak maka akan makan terus, sampai pernyataan kenyang
sama dengan ya atau true.

c. Struktur perulangan dengan logika perulang diawal dan akhir


Merupakan bentuk struktur perulangan dengan menempatkan proses
perulangan dengan kondisi diawal dan diakhir, dalam pemakaian ini bentuk
perulangan dapat dibatasi sesuai dengan kebutuhan perulangan yang diinginkan,
sehingga kita dapat mengetahui lebih awal mana batas awal perulangan sampai
dimana batas perulangan di akhir. Bentuk perulangan ini akan dianalogikan sebagai
berikut:
Jika diketahui standar takaran manusia makan 3 piring, maka dinyatakan
bentuk perulangannya adalah untuk piring dengan batas satu sampai ke piring tiga
dilakukan perulangan makan, dalam hal ini kita tidak memperhatikan apakah
manusia tersebut kenyang atau tidak dan kita juga tidak memperhatikan apakah
manusia tersebut masih lapar atau tidak yang penting selama batas satu piring sampai
tiga piring manusia tersebut akan makan.

Bentuk logika perulangan juga dapat dilakukan penambahan seleksi, sehingga


menghasilkan proses logika percabangan yang menjadi masukan pada proses berikutnya diluar
penambahan logika perulangan baik diawal, diakhir maupun diawal akhir. Sehingga dengan
penambahan logika seleksi dapat digambarkan kedalam bentuk flowchart sebagai berikut:
24

Mulai

Persiapan

Lagi = “Y”

While
Lagi = ‘Y”

Input Selesai

IF
kondi

Proses1 Proses2

Proses3

Output

Input data lagi Y/T

Gambar 3.3 Flowchart Logika Perulangan


25

Dari gambar flowchart diatas dapat diterjemahkan kedalam bahasa logika algoritma
sebagai berikut:

Mulai

Persiapan variabel input,


proses dan output

Input variabel

Lagi = Y

While Lagi = Y do

If Kondisi Then

Proses1

Else

Proses 2

Endif

Proses 3

Output Variabel

Ada data lagi Y/T?

End while
Selesai

3.3 Memperkenalkan Metode Pengecekan Masalah Bagi Pemecahan


Masalah
Metode pengecekan dari hasil pemecahan permasalahan sangat diperlukan sekali, karena
dengan melakukan pengecekan, kita dengan mudah mengetahui apakah pemecahan masalah
yang didapat sudah sesuai dan mampu menjawab permasalahan yang ada. Metode pengecekan
dapat dilakukan melalui pendiskripsian variabel masukan, proses dan keluaran yang sesuai
dengan urutan logika yang diinginkan, kemudian dilakukan pengujian dengan memasukkan
beberapa data dan perhatikan output yang didapat, apakah sudah sesuai dengan keluaran yang
diharapkan atau belum. Secara umum, format pengecekan definisian kedalam tabel yang lebih
26

sederhana sesuai dengan deskripsi masukan, proses dan keluaran dari permasalahan yang ada.
Format tabel pengecekan tersebut dapat digambarkan sebagai berikut:

No 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:

Input Proses Output


Bilangan1 Total
Bilangan2

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 Baca bilangan1, Total
Bilangan2 bilangan2,
jumlahkan kedua
bilangan tersebut.
Cetak hasilnya
BAB 4
STRUKTUR PERCABANGAN

Untuk menggali lebih dalam bagaimana bentuk struktur percabangan, kita harus dapat
menjabarkan bentuk seleksi yang sederhana (simple selection) sampai bentuk seleksi gabungan
(multiple selection) dan seleksi bersarang (nested selection), dan dapat mengaplikasikan kedalam
logika pemrograman.

4.1. Penggunaan Struktur Percabangan


Dalam struktur logika pemrograman, struktur percabangan merupakan bagian yang sangat
penting dalam menghasilkan logika proses yang bernilai boolean (true atau false). Struktur
logika menghasilkan logika kondisi yang menunjang runtunan seperti gambar berikut:

Mulai

Persiapan

Input

IF kondisi

Proses1 Proses2

Proses3

Output

Selesai

Gambar 4.1 Penggunaan Struktur Percabangan


29

Untuk lebih jelasnya marilah kita melakukan pembahasan pembagian struktur logika
percabangan yang dapat dikelompokkan sebagai berikut:
1. Simple selection, merupakan struktur logika percabangan yang paling sederhana dengan
satu kondisi untuk dua aksi yang bernilai benar atau salah dengan rumus umum sebagai
berikut:

If kondisi 1 then

Aksi 1

else

Aksi 2

endif

Contoh:
Logika percabangan untuk menentukan bilangan genap atau ganjil dapat dinyatakan
sebagai berikut:

If 5 mod 2 = 0 then

5 = bilangan
genap

else

5 = bilangan
ganjil

endif

2. Simple selection without else, merupakan struktur percabangan sederhana tanpa


menggunakan perintah aksi alternative else, sehingga menghasilkan logika percabangan
dengan satu kondisi untuk satu aksi yang bernilai benar atau salah, karena satu kondisi
lainya sudah dinyatakan terlebih dahulu diawal logika pemrograman. Bentuk logika
percabangan ini dapat dinyatakan dengan rumus umum sebagai berikut:
30

If kondisi 1 then

Aksi 1

endif

Contoh:
Logika percabangan untuk menentukan bilangan genap atau ganjil dengan bentuk
percabangan 1 kondisi satu aksi dapat dinyatakan sebagai berikut:

5 = bilangan ganjil

If 5 mod 2 = 0 then

5 = bilangan
genap

endif

3. Combined selection, merupakan struktur percabangan dengan menggunakan dua kondisi


atau lebih digabungkan dengan kombinasi dan menghasilkan aksi yang bernilai benar atau
salah. Bentuk percabangan ini menggunakan kombinasi logika AND dan OR atau logika
perbandingan lainnya. Bentuk logika percabangan ini dapat dinyatakan dengan rumus
umum sebagai berikut:

If kondisi 1 AND kondisi If kondisi 1 OR


2 then kondisi 2 then

Aksi 1 atau Aksi 1

else else

Aksi 2 Aksi 2

endif endif
31

Contoh:
Mengkombinasikan kondisi status mahasiswa dan jenis kelamin, untuk menambahkan
jumlah mahasiswa, yang akan dikelompokan sesuai dengan jenis kelamin dan status untuk
disimpan dan dicetak sesuai dengan barisnya.

If student = parttime and gender = female then

Add 1 to female_part_student_count

Endif

If { Record_num = ’17’ or Record_num = ‘21’ } and


Record_num = ’16’ then

Cetak record

Endif

4. Nested selection, merupakan logika percabangan bersarang dimana didalam satu kondisi
menghasilkan satu aksi, dan jika tidak terpenuhi akan menghasilkan aksi lain dalam bentuk
logika kondisi baru yang menghasilkan aksi, dan kondisi yang baru lainya sampai
terpenuhi satu kondisi lainnya. Bentuk percabangan ini dapat dikelompokkan kedalam dua
bagian, yaitu:
a. Linear nested if statement: merupakan logika percabangan bersarang secara linear
dimana akan terjadi kondisi bersarang selama kondisi bernilai salah atau false. Dapat
dinyatakan dengan rumusan sebagai berikut:

If kondisi 1 then
Aksi 1
ElseIf kondisi 2 then
Aksi 2
ElseIf kondisi 3 then
Aksi 3
ElseIf kondisi n then
Aksi n
Endif
Endif
Endif
Endif
32

Contoh:
Mencari jumlah masing-masing rekaman dan data sesuai dengan status rekaman data
yang dibaca sebagai berikut:

If record_code = ’A’ then


Increment_count_A
Else
If record_code = ’B’ then
Increment_count_B
Else
If record_code = ’C’ then
Increment_count_C
Else Increment_error_count
Endif
Endif
Endif

b. Non linear nested if statement: merupakan logika percabangan bersarang non linear,
dimana akan terjadi kondisi bersarang selama kondisi bernilai benar atau true. Dapat
dinyatakan dengan rumusan sebagai berikut:

If kondisi 1 then
If kondisi 2 then
If kondisi 3 then
If kondisi n then
Aksi n
Else
a. Aksi 3
Endif
Else
Aksi 2
Endif
Else
Aksi 1

Endif
33

5. Penyataan Case…of, merupakan alternatif dari pernyataan IF dengan pilihan ganda yang
biasanya digunakan untuk permasalahan tertentu, Case lebih memberikan kejelasan
dibandingkan dengan pernyataan IF, tapi tidak semua permasalahan yang dibuat dengan
pernyataan IF dapat di buat kedalam pernyataan Case.

Case...Of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah
statement yang diawali dengan label (case label)
Bentuk umum dari Case…Of adalah:

Case ungkapan Of
Kondisi 1 : Instruksi A
Kondisi 2 : Instruksi B
Kondisi 3 : Instruksi C
Kondisi 4 : Instruksi D
……………………………..
End case
34

Bentuk pernyataan dengan menggunakan statement Case…Of dapat digambarkan


kedalam logika flowchart sebagai berikut:

Benar
Kondisi 1
Instruksi A

Benar
Kondisi 2
Instruksi B

Benar
Kondisi 3
Instruksi C

Intruksi yang mengikuti else

Gambar 4.2 Penggunaan Struktur Percabangan Case – Of

Contoh:
Mengelompokkan data rekaman mahasiswa berdasarkan umur, untuk mencari mahasiswa
yang laki-laki dan perempuan.
35

Jawab

If attandence = parttime then


If gender = female then
If age = 21 then
Add 1 to mature_female_student
Else
Add 1 to young_female_stunddent
Endif
Else
Add 1 to male_student
Endif
Else
Add 1 to full_time_student
Endif

4.2. Algoritma Menggunakan Selection


Algoritma menggunakan selection dapat digunakan dalam proses algoritma umum,
berikut contoh yang dapat dilogikakan oleh kita.
Contoh:
Susunlah algoritma untuk membaca tiga variabel, kemudian susunlah ketiga nilai variabel
tersebut dengan urutan menaik dan tampilkan ketiga variabel tersebut.
Penyelesaian:
1. Diagram
Input Proses Output
Bil1 Bil1
Bil2 Baca Bil1, Bil2, Bil3 Bil2
Bil3 kemudian lakukan Bil3
pengurutan. Cetak
ketiga variabel tsb
36

2. Algoritma pemecahan
Baca tiga variabel
Tampilkan keterangan untuk membaca tiga variabel
Baca Bil1, Bil2, Bil3
If Bil1 > Bil2 then
Temp = Bil1
Bil1 = Bil2
Bil2 = temp
Endif
If Bil2 > Bil3 then
Temp = Bil2
Bil2 = Bil3
Bil3 = temp
Endif
If Bil1 > Bil3 then
Temp = Bil1
Bil1 = Bil3
Bil3 = temp
Endif
Cetak Bil1, Bil2, Bil3
End

3. Tabel pengecekan (Desk Checking)


 Data yang dimasukkan
Data pertama Data kedua
Bil1 11 26
Bil2 2 19
Bil3 7 1

 Hasil yang diharapkan


Data pertama Data kedua
Bil1 2 1
Bil2 7 19
Bil3 11 26
37

 Tabel pengecekan
Statement 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
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

Mulai

Persiapan

Lagi = “Y”

While Lagi =
‘Y”

Input Selesai

IF
kondisi

Proses1 Proses2

Proses3

Output

Input data lagi Y/T

Gambar 5.1 Flowchart Penggunaan Perulangan Awal


40

Ada 3 (tiga) proses yang dilakukan dalam Do – while yaitu:


1. Kondisi “Lagi” selalu dicek
2. Bila”Lagi” bernilai true maka statement_1 sampai statement_n dikerjakan kemudian dicek
lagi kondisi ”Lagi”.
3. Bila kondisi ”Lagi” bernilai false maka statement_1 sampai statement_n tidak dikerjakan.
Alur logika langsung menuju ke Enddo dan terus ke statement selanjutnya.

Contoh:
Mengkonversikan derajat Celsius ke Reamur dan Fahrenheit. Yang dibaca adalah derajat
Celsius. Data dibaca sebanyak 15 kali.
1. Diagram
Input Proses Output
Celsius Baca Celsius Celsius
( 15 kali ) Hitung Reamur Reamur
Hitung Fahrenheit Fahrenheit

2. Algoritma pemecahan
X = 0
Do while X < 15
Baca Celsius
X = X + 1
Baca Celsius
Reamur = 4/5 * Celsius
Fahrenheit = 9/5 * Celsius + 32
Cetak Celsius, Reamur, Fahrenheit
Enddo

3. Tabel pengecekan
a. Data masukan
Data Pertama Data Kedua
Celsius 100 50
41

b. Hasil yang diharapkan


Data Pertama Data Kedua
Reamur 80 40
Fahrenheit 212 122

c. Tabel pengecekan
do while Baca Hitung Hitung
Statement x kondisi Celsius Reamur Fahrenheit Cetak C,R,F
0
do while TRUE
baca 100
hitung 80 212
cetak 100, 80, 212

5.2. Logika Perulangan dengan Kondisi Perulangan Diakhir


Logika perulangan dengan kondisi perulangan diakhir dapat menggunakan perintah Repeat
– Until yang lebih menekankan bahwa perulangan akan berlangsung terus selama kondisi
bernilai tidak/salah, jika kondisi bernilai ya/benar maka logika perulangan akan berhenti.
Pengulangan menggunakan struktur Repet – Until dapat dinyatakan dengan rumusan sebagai
berikut:

Repeat
Statement_1
Statement_2
……
Statement_n
Until kondisi k true
42

Mulai

Persiapan

Selesai = “Tidak”

Repeat

Input

IF kondisi

Proses1 Proses2

Proses3

Output

Input data lagi Y/T

Until Selesai =
“Ya”

Selesai

Gambar 5.2 Flowchart Penggunaan Perulangan Akhir


43

Ada 3 (tiga) proses yang dilakukan dalam Repeat – Until


1. Melakukan statement_1 sampai statement_n
2. Melakukan pengecekan kondisi Selesai
3. Bila kondisi Selesai bernilai false maka diulangi mengerjakan statement_1 sampai
statement_n lagi. Bila kondisi Selesai bernilai true maka tidak terjadi pengulangan lagi
selanjutnya mengerjakan statement berikutnya.

Contoh:
X = 0
Repeat
X = X + 1
Baca Celsius
Reamur = 4/5 * Celsius
Fahrenheit = 9/5 * Celsius + 32
Cetak Celsius, Reamur, Fahrenheit
Until X = 15

5.3. Logika Perulangan dengan Kondisi Perulangan Diawal dan Akhir


Logika perulangan dengan kondisi perulangan diawal dan akhir dapat menggunakan
perintah For – Do yang lebih menekankan bahwa perulangan akan berlangsung terus selama
kondisi awal dan akhir terpenuhi. Pengulangan menggunakan struktur For – Do dapat
dinyatakan dengan rumusan sebagai berikut:

For x = 1 to n Do
Statement_1
Statement_2
……
Statement_n
End for
44

Mulai

Persiapan

For X= 1 to N Do

Input

IF
kondisi

Proses1 Proses2

Proses3

Output

X= X+1

End For

Stop

Gambar 5.3 Flowchart Penggunaan Perulangan Awal Akhir


45

Ada 3 (tiga) proses yang dilakukan dalam For – Do, yaitu:


1. Melakukan pengecekan kondisi kondisi awal dan kondisi akhir
2. Melakukan statement_1 sampai statement_n
3. Bila kondisi dari kondisi awal dan akhir masih telah terpenuhi, maka tidak terjadi
pengulangan lagi selanjutnya mengerjakan statement berikutnya.

Contoh:
X = 1
For X = 1 to 15 Do
Baca Celsius
Reamur = 4/5 * Celsius
Fahrenheit = 9/5 * Celsius + 32
Cetak Celsius, Reamur, Fahrenheit
X = X + 1
End for
BAB 6
Nassi – Schneiderman Diagram

Nassi_Schneiderman (N-S) diagram hampir sama dengan pseudocode karena mempunyai


diagram pendekatan yang lebih presentatif dengan menggambarkan simbol-simbol dasar yang
sederhana. Pada dasarnya didalam Nassi_Schneiderman (N-S) diagram juga menggambarkan
ilustrasi struktur logika secara keseluruhan dalam bentuk struktur kontrol.

6.1. Tiga Dasar Struktur Kontrol


Ada tiga dasar untuk mengembangkan struktur logika yang akan menjadi struktur kontrol
logika pemrograman yang dikelompokan sebagai berikut:
1. Unit/sequence
Struktur kontrol sequence atau runtunan merupakan bentuk logika berurutan dimana
satu proses tidak dapat dilakukan jika proses sebelumnya belum dilaksanakan, artinya
masing-masing pernyataan tidak dapat saling mendahului. Dapat digambarkan sebagai
berikut:
Statement A

Statement B

Statement C

Gambar 6.1 NS-Diagram Runtunan

Dari gambar diatas dapat dinyatakan bahwa logika program terdiri dari struktur
kontrol runtunan dengan tiga buah pernyataan dimana statement A tidak dapat didahului
oleh statement B begitu juga statement C tidak dapat mendahului statement B, sehingga
terjadi logika bersyarat dengan kata lain statement C dapat dikerjakan jika proses telah
menyelesaikan statement B dan statement B dapat dikerjakan jika proses telah
menyelesaikan statement A.
47

Penggambaran logika tersebut dapat mewakili setiap proses logika jika dibandingkan
dengan bentuk flowachart, untuk logika runtunan dapat digambarkan sebagai berikut:

Mulai
Pendefinisian variabel
Input data
Proses data
Output data
Selesai

Mulai

Persiapan

Input

Proses

Output

Selesai

Gambar 6.2 Konversi NS-Diagram Runtunan kedalam Algoritma dan Flowchart


48

2. Seleksi/Selection
Struktur kontrol seleksi mengambarkan kondisi pilihan yang berisi logika
percabangan dan mempunyai 2 nilai yaitu true atau false, benar atau salah, dan ya atau
tidak. Didalam Nassi_Schneiderman (N-S) diagram bentuk struktur kontrol seleksi dapat
digambarkan sebagai berikut:

IF THEN ELSE

If kondisi k
Ya Tidak

Statement A Statement B

Gambar 6.3 NS-Diagram Percabangan

Dari gambar diatas, dapat dinyatakan bahwa struktur kontrol seleksi dengan
menggunakan pernyataan If Kondisi K menghasilkan dua kemungkinan pernyataan yaitu
“ya” atau “tidak”. Jika pernyataan “ya” terpenuhi maka akan dilakukan statement A,
sedangkan jika pernyaataan “tidak” terpenuhi maka akan dilakukan statement B.
Pemakaian struktur kontrol seleksi dapat dimasukkan kedalam salah satu statement
yang ada dalam struktur runtunan, sehingga dapat juga digambarkan dalam urutan proses
sebagai berikut:
Mulai
Persiapan
Input data
If kondisi
ya tdk

Proses 1 Proses 2
Proses 3
Output data
Selesai

Gambar 6.4 NS-Diagram Struktur kontrol


49

Dari diagram struktur logika diatas, dapat digambarkan kedalam bentuk logika flowchart
dibawah ini:

Mulai

Persiapan

Input

IF
kondisi

ya tdk

Proses1 Proses2

Proses3

Output

Selesai

Gambar 6.5 Flowchart NS-Diagram


50

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


logika percabangan secara keseluruhan dapat digambarkan sebagai berikut:

a. Simple IF statement

IF
Ya Tidak

Statement 1 Statement 2

Gambar 6.6 NS-Diagram Simple Selection

Bentuk penggambaran logika diatas, menjelaskan logika sederhana dengan satu


kondisi akan menghasilkan dua pernyataan atau aksi yaitu jika terpenuhi kondisi true
atau jika terpenuhi kondisi false, masing masing kondisi mempunyai statement
sendiri.

b. Null ELSE Statement

IF
Ya Tidak

Statement 1

Gambar 6.7 NS-Diagram Simple Selection Null Else Statement

Bentuk penggambaran logika diatas, menjelaskan logika sederhana dengan satu


kondisi akan menghasilkan satu pernyataan atau aksi yaitu jika terpenuhi kondisi true
maka proses akan menjalankan statement 1, sedangkan jika terpenuhi kondisi false
maka proses tidak akan melakukan statement tertentu, tetapi tetap melakukan proses
kondisi awal sebelum masuk pada proses struktur seleksi percabangan.
Bentuk percabangan ini dapat dianalogikan jika kita sedang membawa
kendaraan, kemudian kita perhatikan bahwa persediaan bahan bakar kendaraan
51

hampir habis, sehingga jika persediaan bahan bakar hampir habis dinyatakan “ya”
maka kita pasti belok kiri mampir di Pom Bensin untuk mengisi bahan bakar,
sedangkan jika persediaan bahan bakar hampir habis dinyatakan “tidak” (artinya
persediaan masih banyak), tentuk kita tetap jalan terus tanpa berhenti di Pom Bensin.

c. Nested IF Statement
Merupakan bentuk logika percabangan bersarang yang dapat dinyatakan dalam
struktur logika dengan banyak kondisi banyak aksi. Bentuk logika bersarang dapat
dikelompokkan menjadi dua yaitu logika percabangan akan bersarang selama kondisi
yang diinginkan belum terpenuhi (selama kondisi “tidak”), bentuk percabangan ini
dinamakan dengan Linear Nested If Statement dan logika percabangan akan
bersarang untuk mencapai kondisi yang diinginkan terpenuhi (selama kondisi ”ya”)
bentuk percabangan ini dinamakan dengan Non Linear Nested If Statement, untuk
lebih jelasnya mari kita bahas satu persatu bentuk logika percabangan secara
bersarang sebagai berikut:

1) Linear Nested IF Statement

IF
Ya Tidak

IF
Ya Tidak

IF
Ya Tidak

IF
Ya Tidak

Gambar 6.8 NS-Diagram Linear Nested If


52

2) Non Linear Nested IF Statement

IF
Ya Tidak

IF
Ya Tidak

IF
Ya Tidak

Gambar 6.9 NS-Diagram Non Linear Nested If

3. Repetition/Pengulangan
Struktur kontrol perulangan mengambarkan logika yang sama dilakukan lebih dari
satu kali. Secara umum bentuk logika perulangan di kelompokan menjadi tiga bagian yaitu
logika perulangan dengan kondisi perulangan diawal, logika perulangan dengan kondisi
perulangan diakhir, dan logika perulangan dengan kondisi perulangan diawal dan diakhir.
Penggambaran logika perulangan didalam Nassi_Schneiderman (N-S) diagram dapat
digambarkan sebagai berikut:

a. Logika perulangan di awal


Merupakan bentuk perulangan dengan menggunakan kondisi perulangan
diawal pelaksanaan logika perulangan. Didalam Nassi_Schneiderman (N-S) diagram
kondisi perulangan didefinisikan diawal proses dan selama proses terpenuhi, maka
akan dilakukan proses statement yang ada dalam perulangan sampai pernyataan
“tidak” atau false terpenuhi.
Bentuk struktur kontrol perulangan diawal dapat digambarkan sebagai berikut
53

Do While kondisi K

Blok Statement

Gambar 6.10 NS-Diagram Perulangan Awal

b. Logika perulangan di akhir


Merupakan bentuk perulangan dengan menggunakan kondisi perulangan
diakhir pelaksanaan logika perulangan. Didalam Nassi_Schneiderman (N-S) diagram
kondisi perulangan didefinisikan diakhir proses dan selama proses tidak terpenuhi,
maka akan dilakukan proses statement yang ada dalam perulangan sampai
pernyataan “ya” atau true terpenuhi.
Bentuk struktur kontrol perulangan diakhir dapat digambarkan sebagai berikut:

Blok Statement

Repeat Until kondisi K

Gambar 6.11 NS-Diagram Perulangan Akhir

c. Logika perulangan dengan kondisi diawal dan diakhir


Merupakan bentuk perulangan dengan menggunakan kondisi perulangan
diawal dan kondisi perulangan diakhir. Didalam Nassi_Schneiderman (N-S) diagram
kondisi perulangan didefinisikan diawal proses sampai akhir dan selama proses awal
sampai akhir terpenuhi, maka akan dilakukan proses statement pernyataan yang ada
dalam perulangan.
54

Bentuk struktur kontrol perulangan diawal dapat digambarkan sebagai berikut:

For kondisi K Do

Blok Statement

End For

Gambar 6.12 NS-Diagram Perulangan Awal-akhir

Dari keseluruhan bentuk perulangan dapat digabungkan kedalam logika struktur kontrol
runtunan yang menjadi salah satu statement pernyataan perulangan, kemudian diikuti oleh
statement pernyataan runtunan yang memenuhi proses perulangan, didalam sekumpulan
statement yang memenuhi pernyataan perulangan juga dapat dimasukkan statement pernyataan
dengan struktur kontrol logika percabangan.
Pemakaian struktur kontrol perulangan diawal dapat digambarkan sebagai berikut:

Mulai
Persiapan
Lagi = “Y”
Do While Lagi = “Y”
Input
If Kondisi
ya tdk

Proses 1 Proses 2
Proses 3
Output
Input data lagai Y/T
Selesai

Gambar 6.13 NS-Diagram Struktur Kontrol Perulangan Diawal


55

Bentuk flowachart untuk logika perulangan dapat digambarkan sebagai berikut:

Mulai

Persiapan

Lagi = “Y”

While Lagi = ‘Y”

Input Selesai

IF kondisi

Proses1 Proses2

Proses3

Output

Input data lagi Y/T

Gambar 6.14 Flowchart NS-Diagram Struktur Perulangan


56

Pemakaian struktur kontrol perulangan diakhir jika dapat digambarkan sebagai berikut:

Mulai

Persiapan

Lagi = “Y”

Input
Repeat If Kondisi

ya tdk

Proses 1 Proses 2
Proses 3
Output
Input data lagai Y/T
Until lagi = “T”

Salesai

Gambar 6.15 NS-Diagram Struktur Kontrol Perulangan Diakhir


57

Bentuk flowachart untuk logika perulangan dapat digambarkan sebagai berikut:

Mulai

Persiapan

Lagi = “Y”

Repeat

Input

IF
kondi

Proses1 Proses2

Proses3

Output

Input data lagi Y/T

Until

Lagi = ‘Y”

Selesai

Gambar 6.16 Flowchart NS-Diagram Perulangan Diakhir


58

Pemakaian struktur kontrol perulangan diawal dan akhir dapat digambarkan sebagai
berikut:

Mulai
Persiapan
For Lagi = 1 to N Do

Input
If Kondisi

ya tdk

Proses 1 Proses 2
Proses 3
Output
Lagi = lagi + 1
End For

Gambar 6.17 NS-Diagram Struktur Perulangan Diawal dan Diakhir


59

Bentuk flowachart untuk logika perulangan dapat digambarkan sebagai berikut:

Mulai

Persiapan

For Lagi = 1 to N do

Input

IF
kondi

Proses1 Proses2

Proses3

Output

Lagi = Lagi + 1

End For

Selesai

Gambar 6.18 Flowchat logika perulangan


60

6.2. Contoh Kasus Penerapan NSD Diagram


Tampilkan bilangan prima dari 10 – 20
Prima = True
For x = 2 to bil – 1 do
If bil mod x = 0 then
Prima = false
Endif
X = x+1
End for
If prima = true the
Cetak bil
Endif
Bll = bil +1
End for
Selesai
61

Penyelesaian logika diatas dapat dibuat dalam bentuk NS Diagram sebagai berikut:

Mulai
Bil, X, : integer
Prima : Boolean
For Lagi = 1 to 20 Do
Prima = true
For x = 2 to bil – 1 do
If bil mod x = 0

ya tdk

Prima = false
X = X+1
Output
Lagi = lagi + 1
End For

If prima = true
ya tdk

Cetak bil
Bil = Bil + 1
End for
Selesai

Gambar 6.19 NS-Diagram


62

Dari diagram NSD, maka kita dapat mengelompokkan bentuk logika kedalam program
modular sebagai berikut:
Variabel

Variabel
Bil, X, : integer
Prima : Boolean

Lakukan perulangan

For Bil = 10 to 20 Do
Prima = True Program Utama
Cari Prima Mulai
Cetak bilangan Variabel
Lakukan
perulangan
Cetak prima
Cari prima
Selesai
For x = 2 to bil – 1
p do
If bil mod x = 0
then
Prima = false
Endif
X = x+1
End for

Cetak prima

If prima = true the


Cetak bil
Endif
BAB 7
PROGRAM MODULAR

Salah satu metode penyusunan program terstruktur adalah pemrograman modular. Dengan
metode ini suatu masalah dipecah-pecah menjadi beberapa kelompok masalah yang lebih kecil.
Dengan membagi masalah menjadi beberapa modul maka masalah tersebut akan menjadi lebih
sederhana, sehingga program dapat menjadi lebih mudah disusun dan dipahami. Untuk
penyusunan program modular dapat digunakan konsep fungsi, prosedur ataupun subroutine.
Prosedur adalah modul program yang mengerjakan tugas atau aktivitas yang spesifik
(khusus) dan menghasilkan suatu efek netto. Suatu efek netto diketahui dengan
membandingkan keadaan awal (K.awal) sebelum rangkaian fungsi didalam prosedur
dilaksanakan dan keadaan akhir (K.akhir) yang diharapkan setelah rangkaian instruksi didalam
prosedur dilaksanakan.
Function (fungsi) adalah sub program yang memberikan/mengendalikan (return) sebuah
nilai dari tipe tertentu (tipe dasar atau tipe bentukan). Definisi fungsi didalam program
bersesuaian di dalam matematika.

7.1. Memecahkan Algoritma ke Dalam Algoritma yang Lebih Kecil/Modul


Dalam pembahasan sebelumnya telah dinyatakan bahwa untuk merancang solusi algoritma
kita harus mampu mendefinisikan permasalahan, membuat struktur kontrol yang dibutuhkan, dan
menggunakan peralatan pemecahan permasalahan algoritma dengan mengkombinasikan struktur
logika yang ada.
Dengan menggunakan metodologi top down desain, kita dapat melakukan pendekatan
dalam mendesain program dimana program yang besar dapat dipecah menjadi kelompok
program-program yang lebih kecil dalam bentuk prosedur dan fungsi yang sebenarnya saling
berkaitan.
Contoh:
Susunlah algoritma untuk membaca tiga variabel kemudian susunlah ketiga nilai variabel
tersebut dengan urutan menaik dan tampilkan ketiga variabel tersebut.
64

Penyelesaian:
a. Diagram Definisi
Definisikan permasalahan kedalam kelompok mana yang menjadi input, proses, dan
output, jika perlu buat dalam bentuk tabel seperti dibawah ini.

Input Proses Output


Bil1 Bil1
Bil2 Baca Bil1, Bil2, Bil3 Bil2
Bil3 kemudian lakukan Bil3
pengurutan. Cetak
ketiga variabel tsb

b. Algoritma Pemecahan
Kembangkan logika pemecahannya, terutama pada bagian proses sehingga
permasalahan diatas dapat menjadi susunan perintah dibawah ini.
Baca tiga bilangan:
Baca Bil1, Bil2, Bil3
Do while Not ( Bil1 = 0 And Bil2 = 0 And Bil3 = 0 )
If Bil1 > Bil2 then
Temp = Bil1
Bil1 = Bil2
Bil2 = temp
Endif
If Bil2 > Bil3 then
Temp = Bil2
Bil2 = Bil3
Bil3 = temp
Endif
If Bil1 > Bil3 then
Temp = Bil1
Bil1 = Bil3
65

Bil3 = temp
Endif
Cetak Bil1, Bil2, Bil3
Baca Bil1, Bil2, Bil3
Enddo
End

Dari penyelesaian algoritma di atas dapat dibuat penyelesaian dengan modul sebagai
berikut:
Baca tiga bilangan
Baca Bil1, Bil2, Bil3
Do while Not ( Bil1 = 0 And Bil2 = 0 And Bil3 = 0 )
Sort tiga bilangan
Cetak Bil1, Bil2, Bil3
Baca Bil1, Bil2, Bil3
Enddo
End
Sort tiga bilangan
If Bil1 > Bil2 then
Temp = Bil1
Bil1 = Bil2
Bil2 = temp
Endif
If Bil2 > Bil3 then
Temp = Bil2
Bil2 = Bil3
Bil3 = temp
Endif
If Bil1 > Bil3 then
Temp = Bil1
Bil1 = Bil3
Bil3 = temp
66

Endif
End

Jika kita masukkan kedalam sebuah modular maka kita akan mendapatkan beberapa
modul-modul sebagai berikut:

Baca tiga bilangan

Baca Bil1, Bil2, Bil3 Sort tiga bilangan


Pemanggilan
Do while Not ( Bil1 = 0 And Bil2 = 0
modul
And Bil3 = 0 )

Modul Utama

Sort tiga bilangan

If Bil1 > Bil2


then

Temp = Bil1
Modul sorting
Bil1 = Bil2
tiga bilangan
Bil2 = temp

Endif

If Bil2 > Bil3


then

Temp = bil2

Bil2 = Bil3

7.2. Langkah Modular Programming


Untuk memudahkan pembuatan program modular maka diperlukan pendekatan-pendekatan
yang mampu memberikan gambaran pemecahan masalah. Ada enam langkah dalam Modular
Programming yaitu:
67

1. Definisi masalah
Mendefinisikan permasalahan dengan cara mengelompokan kedalam sebuah tabel atau
diagram permasalahan mana yang menjadi input, proses, dan output dari permasalahan
yang ada.
2. Kelompokkan aktivitas ke dalam modul
Aktivitas yang dikelompokkan dari hasil pendefinisian masalah dimasukkan kedalam
modul-modul yang ada.
3. Buat bagan susun untuk menjelaskan hierarki dan hubungan antar modul
Modul-modul yang telah dikelompokkan dari langkah ke dua, disusun kedalam hierarki
dan hubungan antar modulnya, sehingga memudahkan dalam pendefinisian variabel dan
pembuatan program utama.
4. Buat logika dari Main Program dengan pseudocode
Terlebih dahulu inventarisasi apa saja yang dikerjakan dalam main program.
5. Buat logika untuk tiap-tiap modul dengan pseudocode.
6. Desk-Checking algoritma
Memeriksa kebenaran algoritma yang ada.

Contoh:
Pembuatan laporan pemesanan. Data dibaca dari file order. Record order terdiri dari
nomor_product, nama_product, jumlah_pesanan, harga_perunit, biaya_angkut_perunit,
biaya_paket_perunit.
Bentuk laporan yang diminta sebagai berikut:

PT. XYZ
Hal : 99
Laporan Pemesanan Barang
No Product Nama Product Jumlah Pesanan Jumlah Harga
xxxx x ----------- x 999 999.999
xxxx x ----------- x 999 999.999

Setiap halaman terdiri dari 45 baris detail.


Jumlah harga = jumlah_pesanan x harga_perunit
68

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

1. Diagram Definisi

Input 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

2. Pengelompokkan kegiatan dalam Modul


a. Cetak judul
Dibuat modul untuk mencetak judul
b. Perhitungan
Dibuat modul untuk menghitung
1) Jumlah harga
2) Diskon
3) Ongkos muat
4) Ongkos paket

3. Hierarchy Chart

Mencetak
Laporan
Pesanan

Hitung Jumlah
Cetak Judul
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

No Nama Jumlah Harga Biaya Biaya


Record Product Product Pesan Unit Muat Paket
1 100 Mouse 10 100 20 50
2 200 Printer 20 200 10 20
3 300 Keyboard 100 300 10 20

b. Hasil yang diharapkan


PT. ABC
Hal : 1
Laporan Pemesanan Barang
No Product Nama Product Jumlah Pesanan Jumlah Harga
100 Mouse 10 1700
200 Printer 20 4600
300 Keyboard 30 30000
71

BAB 8
KOMUNIKASI ANTAR MODUL

Hal yang paling mendasar dalam pendefinisian item data dan struktur data adalah kita
harus mengetahui konsep pemahaman komunikasi antar modul, sehingga kita dapat
membedakan parameter yang bersifat data global dan data lokal dari pendefinisian variabel yang
akan digunakan oleh modul.

8.1. Data
Tahap pertama dalam pengembangan solusi algoritma yaitu mendefinisikan permasalahan
yang dikelompokkan kedalam modul, struktur logika sampai ke tabel pengecekan kebenaran
logika yang telah dikembangkan. Namun dalam aplikasi penulisan program ada beberapa item
yang harus dipahami diantaranya:
1. Variabel, konstanta, dan literal
a. Variabel: nama yang diberikan bagi sekumpulan sel memori yang dirancang untuk
menyimpan data tertentu. Disebut variabel karena data yang tersimpan dapat diubah.
b. Konstanta: sebuah data dengan nama dan nilai yang akan tetap sama selama program
dijalankan.
c. Literal: konstanta yang namanya menunjukkan nilainya.

2. Elementary data
a. Integer : Menampilkan set bilangan baik positif maupun negatif.
b. Real : Menampilkan set bilangan, positif dan negatif dan juga desimal.
c. Character : Menampilkan karakter alphabet, dengan tambahan spesial karakter.
d. Boolean : Menampilkan flag atau switch yang berisi satu dari dua kemungkinan
False atau True
72

3. Structure data
a. Record : Sebuah kumpulan data/field yang memiliki hubungan antara satu dengan
yang lainnya.
b. File : Sebuah kumpulan record.
c. Array : Sebuah struktur data yang terdiri dari sejumlah variabel yang mempunyai
tipe yang sama dan diakses dengan nama yang sama juga.
d. String : Sebuah kumpulan karakter.

8.2. Komunikasi Antar Modul


Berikut dijelaskan mengenai karakteristik dari komunikasi antar modul:
1. Global data : Variabel yang dikenal diseluruh program tersebut, dan dapat diakses dari
setiap modul di program tersebut.
2. Local data : Variabel yang didefinisikan disebuah modul. Variabel ini hanya dikenal
pada modul dimana variabel tersebut didefinisikan.
3. Rentang : Bagian program dimana variabel didefinisikan dan dapat diakses dapat
disebut juga dengan jangkauan data. Contoh: jangkauan data untuk
global data adalah seluruh program.
4. Side effect : Sebuah bentuk komunikasi antar modul dengan bagian lain dalam
program yang dapat juga berpengaruh dengan modul lainnya.
5. Passing parameter
a. Menyampaikan data dari modul pemanggil ke modul yang dipanggil (subordinate).
b. Menyampaikan informasi dan subordinate ke modul pemanggil.
c. Informasi/data yang dikirim/diterima di pass 2 (dua) arah dari modul pemanggil ke
subordinate maupun sebaliknya.
6. Parameter: Dapat dikelompokkan menjadi dua yaitu parameter data dan parameter status
a. Parameter data
73

b. Parameter status

Dalam merancang modul sebaiknya lebih banyak menggunakan parameter data hindari
kemungkinan parameter status sebanyak mungkin.

8.3. Penggunaan Parameter dalam Mendisain Program


Berikut ini, mari kita ambil sebuah contoh bagaimana penggunaan parameter dalam
perancangan program sebagai berikut:
“Susunlah algoritma untuk membaca tiga variabel kemudian susunlah ketiga nilai variabel
tersebut dengan urutan menaik dan tampilkan ketiga variabel tersebut”.
Penyelesaian:
a. Diagram Definisi

Input Proses Output


Bil1 Bil1
Bil2 Baca Bil1, Bil2, Bil3 Bil2
Bil3 kemudian lakukan Bil3
pengurutan. Cetak
ketiga variabel tsb

b. Pembagian aktivitas ke dalam modul


Aktivitas masalah ini dibagi ke dalam 2 (dua) kegiatan:
a. Baca tiga bilangan
b. Sort tiga bilangan
74

c. Hierarchy chart

Baca tiga bilangan

Bil1
Bil2
Bil3

Sort tiga bilangan

d. Algoritma Main Program


Baca tiga bilangan
Baca Bil1, Bil2, Bil3
Do while Not ( Bil1 = 0 And Bil2 = 0 And Bil3 = 0 )
Sort tiga bilangan
Cetak Bil1, Bil2, Bil3
Baca Bil1, Bil2, Bil3
Enddo
End

e. Algoritma Modul
Sort tiga bilangan
If Bil1 > Bil2 then
Temp = Bil1
Bil1 = Bil2
Bil2 = temp
Endif
If Bil2 > Bil3 then
Temp = bil2
Bil2 = Bil3
Bil3 = temp
Endif
If Bil1 > Bil3 then
Temp = Bil1
75

Bil1 = Bil3
Bil3 = temp
Endif
End

8.4. Perancangan Program Berbasis Objek


Perancangan program berbasis objek mengajarkan kepada kita metode pendekatan lain
dengan konsep membaca sistem secara keseluruhan dan mengumpulkan berbagai interaksi objek
yang terlibat secara internal sampai struktur internal yang tersembunyi sekalipun.
1. Objek
Objek dapat terdiri dari sekumpulan data dan operasionalnya yang menggambarkan secara
keseluruhan dengan atribut keterangan sebagai berikut:
a. Mempunyai nama.
b. Mempunyai nilai atau isi.
c. Mempunyai nilai operasional terhadap proses dan dapat berinteraksi dengan variabel
lain.
Secara aplikasi dapat digunakan sebagai indeks yang berperan sebagai penentuan nilai dan
penentuan operasionalnya.

2. Informasi yang tersembunyi


Didalam perancangan program berbasis objek, struktur objek internal yang tersembunyi
mendefinisikan modul yang terdiri dari:
a. Individual modul, terdiri dari operasional tersendiri dan tidak tergantung kepada operasi
modul lain.
b. Global, data yang harus dikurangi ketergantungannya sebagai komunikasi antar objek.
76

BAB 9
KOHESI

Dalam program modular terdapat dua peranan variabel yaitu sebagai variabel local dan
variabel global, bentuk komunikasi antar variabel didalam sebuah modul digambarkan kedalam
keeratan hubungan antar elemen operasional dalam sebuah modul yang dapat dinyatakan sebagai
kohesi. Kohesi adalah keeratan hubungan elemen-elemen didalam suatu modul. Macam-macam
kohesi didalam sebuah modul dikelompokkan sebagai berikut:
1. Coincidental
2. Logical
3. Temporal
4. Procedural
5. Communicational
6. Sequential
7. Functional

9.1. Kohesi Functional


Merupakan bentuk keeratan hubungan antar elemen didalam modul dalam bentuk fungsi
yang saling keterkaitan dimana masing-masing fungsi mempunyai satu tugas yang akan
menghasilkan satu hasil/satu parameter yang berasal dari satu atau lebih parameter input.
Bentuk modul yang berorientasi matematika merupakan bentuk contoh penggunaan kohesi
fungsional. Adapun bentuk umum kohesi fungsional sebagai berikut:
A = B+C
B = C*D
K = D/A

Contoh:
Menghitung pajak
If harga > 5000 then
Pajak = harga * 0.25  Fungsional
77

Else
If harga > 3000 then
Pajak = harga * 0.15  Fungsional
Else
If harga > 2000 then
Pajak = harga * 0.1  Fungsional
Else
Pajak = 0
Endif
Endif
Endif
End

9.2. Kohesi Sequential


Merupakan bentuk keeratan hubungan antar elemen didalam modul dalam bentuk fungsi
yang mempunyai pekerjaan yang berurutan dimana kegiatan yang dilakukan lebih dari satu dan
hasil dari kegiatan sebelumnya menjadi masukan bagi kegiatan selanjutnya. Bentuk kohesi ini
dapat dipecah menjadi functional.
Bentuk kohesi sequential mempunyai fungsi ketergantungan antara satu variabel dalam
elemen baris fungsi dengan variabel elemen lain pada fungsi selanjutnya. Bentuk umum dari
kohesi sequential sebagai berikut:
C=A+B
D=E–C
H=G+D
F=N*H

Contoh:
Menghitung penjualan
If jumlah_beli > 300 then
Potongan = jumlah_beli * harga_barang * 0.15
Else
78

If jumlah_beli > 200 then


Potongan = jumlah_beli * harga_barang * 0.1
Else
If jumlah_beli > 100 then
Potongan = jumlah_beli * harga_barang * 0.05
Else
Potongan = 0
Endif
Endif
Endif
Pembelian = Jumlah_beli * harga_barang – Potongan

Kohesi Sequential
Total = Total + Pembelian  Kohesi Sequential
End

9.3. Kohesi Communicational


Merupakan bentuk keeratan hubungan antar elemen didalam modul dalam bentuk
komunikasi dimana satu kegiatan dengan kegiatan yang lain dalam bentuk kegiatan lebih dari
satu yang menggunakan data yang sama dan dapat dijadikan functional.

Contoh :
Proses perhitungan
C=A+B  Kohesi communicational
D=A–B  Kohesi communicational
E=A*B  Kohesi communicational

9.4. Kohesi Procedural


Merupakan bentuk keeratan hubungan antar elemen didalam modul dalam bentuk
pemanggilan nama procedural dimana satu kegiatan dengan kegiatan yang lain tidak
79

berhubungan dan hubungan antara elemen yang satu dengan lainnya karena urutan statement,
bentuk kohesi ini juga dapat dipecahkan menjadi functional.
Contoh:
Baca record_mahasiswa dan total_biaya_pembangunan
Set nomor_record = 0
Set total_biaya_pembangunan = 0
Baca record_mahasiswa  Kohesi communicational
Do while ada tambahan record
Tambahkan total_biaya_pembangunan ke total_biaya
Tambahkan 1 ke nomor_record
Baca record_mahasiswa  Kohesi communicational
Enddo
Print nomor_record, total_biaya
End

9.5. Kohesi Temporal


Merupakan bentuk keeratan hubungan antar elemen didalam modul dalam bentuk
penggunaan elemen data yang mempunyai nilai sementara yang dapat berubah-ubah dan 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

Variabel
Bil, X : integer
Prima : Boolean

Lakukan perulangan

For Bil = 10 to 20 Do
Prima = True  Kohesi temporal Program Utama
Cari Prima Mulai
Cetak bilangan Variabel
Lakukan
perulangan
Cetak prima  Kohesi konsidental
Cari prima Selesai
For x = 2 to bil – 1 do Kohesi temporal
If bil mod x = 0
then
Prima = false
Endif
X = x+1  Kohesi fungsional
End for

Cetak prima

If prima = true the


Cetak bil  Kohesi logical
Endif
83

BAB 10
KOPLING

Didalam pemrograman modular membutuhkan komunikasi modul supaya terciptanya


interaksi antar modul. Bentuk interaksi antar modul diwakili oleh beberapa variabel penghubung
dalam bentuk variabel global, gambaran komunikasi antar modul dinamakan sebagai keeratan
hubungan antar modul yang biasanya disebut dengan kopling. Didalam kopling terjadi tingkat
saling ketergantungan diantara dua modul akibat komunikasi yang dilakukan oleh variabel global
tersebut.
Ada beberapa faktor yang mempengaruhi terjadinya kopling, diantaranya dapat dinyatakan
sebagai berikut:
1. Jumlah data yang disalurkan.
2. Jumlah kontrol data yang disalurkan.
3. Jumlah elemen data global yang digunakan bersama-sama oleh beberapa modul.
Bentuk komunikasi antar modul/kopling yang dilakukan oleh variabel global dapat
dikelompokkan sebagai berikut:
1. Data
2. Stamp
3. Kontrol
4. External
5. Common
Dalam implementasinya makin baik kopling makin rendah ketergantungan suatu modul
terhadap modul lain dan modul dengan kopling yang baik adalah modul independence.

10.1. Kopling Data


Yaitu Komunikasi diantara modul menggunakan data dimana diinginkan jumlah data
minimal. Dan parameter data yang disalurkan semakin sedikit semakin baik. Komunikasi antar
modul dalam bentuk Kopling Data dapat digambarkan dalam diagram berikut:
84

Modul A

Modul B

Gambar 10.1 Kopling Data

Dari diagram diatas menggambarkan komunikasi antar modul A dengan modul B yang
mempunyai komunikasi antar modul dengan menggunakan data dengan karakteristik sebagai
berikut:
a. Parameter-nya terdiri dari data
b. Jumlah parameter minimal
Contoh penggunaan kopling data:
Proses customer_record
……….
Calculate_sales_tax ( total_price, sales_tax )
…………
………..
End
Calculate_sales_tax ( total_price, sales_tax )
If total_price > 5000 then
Sales_tax = total_price * 0.25
Else
If total_price > 2000 then
Sales_tax = total_price * 0.1
Else
Sales_tax = 0
Endif
Endif
End
85

Total_price = parameter masukan


Sales_tax = parameter keluaran

10.2. Kopling Stamp


Yaitu bentuk komunikasi antar modul dengan menggunakan struktur data. Dua modul
melakukan pass struktur data non global yang sama. Struktur data dapat berupa rekaman/record
dan array/larik. Komunikasi antar modul dalam bentuk Kopling Stamp dapat digambarkan pada
diagram sebagai berikut:

Modul A

Modul B

Gambar 10.2 Kopling Stamp

Dari diagram diatas menggambarkan komunikasi antar modul A dengan modul B yang
mempunyai komunikasi antar modul dengan menggunakan data dengan karakteristik
parameternya adalah struktur data:

Contoh:
Proses transaction_record
…………..
proses_male_student ( current_record )
…………..
End.
Proses_male_student ( current_record )
Increament male_student_count
If student_age > 21 then
86

Increament mature_male_count
Endif
…….
……….
End

10.3. Kopling Control


Merupakan bentuk komunikasi data antar modul yang menggunakan data kontrol yang
dapat mengendalikan proses didalam modul. Dua modul saling melakukan pass menggunakan
data kontrol. Komunikasi antar modul dalam bentuk Kopling Control dapat digambarkan pada
diagram sebagai berikut:

Modul A

Modul B

Gambar 10.3 Kopling Kontrol

Dari diagram diatas menggambarkan komunikasi antar modul A dengan modul B yang
mempunyai komunikasi antar modul dengan menggunakan data dengan karakteristik
parameternya adalah parameter kontrol.
Contoh:
Proses input_code
Read input_code
Choose appropriate_action ( input_code )
………….
…………..
End
87

Choose appropriate_action ( input_code )


Case of input_code
1 : read employee record
2 : print page leading
3 : open employee master file
4 : set page count to 0
5 : error massage
Endcase
End

10.4. Kopling External


Yaitu bentuk komunikasi antar modul dengan menggunakan data global yang sama atau
dua modul atau lebih menggunakan data global yang sama. Komunikasi antar modul dalam
bentuk Kopling External dapat digambarkan pada diagram sebagai berikut:

Global Data Variabel

Modul A Modul B

Gambar 10.4 Kopling External

Dari diagram diatas menggambarkan komunikasi antar modul A dengan modul B yang
mempunyai komunikasi antar modul dengan menggunakan data global yang sama dengan
karakteristik parameternya adalah tidak ada parameter yang digunakan dari modul pemanggil
ke subordinate dan sebaliknya.
Contoh:
Calculate sales_tax
If product is sales exempt then
Sales_tax = 0
88

Else
If product_price < 5000 then
Sales_tax = sales_price * 0.2
…….
…….
Endif
Endif
End

Calculate amount_due
……….
………..
amount_due = total_amount + sales_tax
……….
………..
End

10.5. Kopling Common


Yaitu bentuk komunikasi antar modul dengan menggunakan struktur data global yang
sama atau dua modul atau lebih menggunakan struktur data global yang sama. Komunikasi antar
modul dalam bentuk Kopling Stamp dapat digambarkan pada diagram sebagai berikut:

Modul A Modul B

Struktur Data Global

Gambar 10.5 Kopling Common


Dari diagram diatas menggambarkan komunikasi antar modul A dengan modul B yang
mempunyai komunikasi antar modul dengan menggunakan struktur data global yang sama
89

dengan karakteristik parameternya adalah tidak ada parameter yang digunakan dari modul
pemanggil ke subordinate dan sebaliknya.

Contoh:
Read customer_ record
Read customer record
If EOF then
Set EOF_flag to true
Endif
End
Validate customer_record
If customer_number is Not numeric then
Error_message = ‘invalid customer number’
Print error_report
Endif
…….
……..
End

Dalam pemrograman modular, konsep kopling akan menghasilkan pemrograman


terstruktur dengan modul yang lebih independen, mudah dipahami dan dapat di implementasikan
dengan baik. Aturan didalam kopling akan memberikan komunikasi antar modul yang
memudahkan dalam memecah program yang sulit menjadi lebih beberapa modul program kecil
yang lebih sederhana.

Contoh penggunaan kriteria perancangan lain dalam menampilkan bilangan prima dari dari
10 – 20.
90

Variabel

Variabel
Bil, X, : integer
Prima : Boolean
Kopling data

Lakukan perulangan

For Bil = 10 to 20 Do
Prima = True Program Utama
Cari Prima Mulai
Cetak bilangan Variabel
Kopling data Lakukan
perulangan
Cetak prima
Cari prima Kopling data
Selesai
For x = 2 to bil – 1
do
If bil mod x =
0 then
Prima = false
Endif Kopling kontrol
X = x+1
End for

Cetak prima

If prima = true the


Cetak bil
Endif
91

BAB 11
KRITERIA PERANCANGAN LAIN

Didalam pemrograman terstruktur untuk membuat program modular ada beberapa aspek
lain yang menjadi pertimbangan dalam membuat modul selain kohesi dan kopling yaitu:
1. Ukuran modul
2. Factoring
3. Fan-out
4. Fan-in
5. Restrictivity/Generality
6. Initialization/Termination
7. Error reporting
8. Program shape

Aspek-aspek tersebut diatas lebih mengutamakan bentuk ukuran modul dan mekanisme
komunikasi antara modul diluar komunikasi yang dibangun oleh data dan struktur data. Untuk
lebih jelasnya, ada baiknya kita membahas kriteria tersebut satu persatu.

11.1. Ukuran Modul


Merupakan kriteria yang menggambarkan banyak instruksi yang berada dalam suatu modul
dimana semakin sedikit elemen yang berada dalam suatu modul semakin baik modul tersebut
yang menggambarkan kemudahan logika dijalankan dan modul yang memiliki jumlah
instruksi/elemen yang banyak dapat terjadi modul tersebut memiliki fungsi yang banyak,
sehingga modul tersebut semakin jelek.
Bentuk ukuran modul dapat diaplikasikan sebagai berapa baris instruksi yang diperlukan
untuk satu modul yang dapat berupa fungsi atau prosedur.
92

11.2. Factoring
Menggambarkan jumlah faktor atau rincian modul yang terlibat sehingga utuk modul yang
besar kita dapat menurunkan/merinci modul menjadi beberapa modul yang lebih kecil.
Kemudian kita membagi kegiatan/fungsi suatu modul ke dalam beberapa modul yang menjadi
subordinate dari modul tersebut. Salah satu keuntungan dari factoring adalah:
a. Dapat mengurangi atau mempelajari ukuran modul, memperoleh program yang bersifat
modular.
b. Menghasilkan modul yang independen.
c. Menyederhanakan implementasi.

Bentuk pemakaian factoring dapat digambarkan sebagai berikut:

Modul A

Modul B Modul C

MENJADI

Modul B

Modul B1 Modul B2

Gambar 11.1 Factoring

Modul B menjadi Modul B1 dan Modul B2.

11.3. Fan-Out
Merupakan kelanjutan dari factoring, dimana kita menghitung berapa jumlah faktor yang
terjadi untuk satu induk. Sehingga kita dapat melihat banyaknya subordinate langsung dari suatu
modul.
93

B C D

Gambar 11.2 Fan-Out

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

a. Perluasan kontrol dari suatu modul jangan terlalu banyak.

11.4. Fan-In
Merupakan kebalikan dari Fan-Out sehingga mengasilkan berapa banyaknya boss atau
induk dari suatu subordinate.

B C D

Gambar 11.3 Fan-In

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


94

11.5. Restrictivity/Generality
Menggambarkan sifat dari modul yang telah dibentuk dapat sebagai general atau umum
atau restrictivity atau khusus.
a. Restrictivity
Modul-modul yang terlalu khusus yang digunakan untuk operasi fungsi tertentu.
Contoh:
Menghitung rata-rata 10 data
Menghitung jumlah penjualan 100 item
Fungsi pangkat bilangan bulat positif
Modul ini terlalu khusus sehingga sulit digunakan kembali.

b. Generality
Modul-modul yang terlalu umum dan dapat digunakan berulang kali dari aplikasi yang
berbeda dengan operasi fungsi yang sama.
Contoh:
Menghitung gaji menggunakan bilangan kompleks.
Menghitung baris menggunakan bilangan real.

11.6. Inisialisasi dan Terminalisasi


Modul ini dibuat untuk memproses data yang digabungkan menurut waktu. Baik pada awal
program atau pada kondisi tertentu didalam program. Biasanya untuk inisalisasi dibentuk satu
modul yang khusus menampung pendefinisian variabel, sehingga dapat dipanggil oleh modul
lain yang menggunakan variabel yang sama.
Untuk terminalisasi lebih banyak mengacu kepada format tampilan output yang diinginkan
setelah operasional variabel tertentu.
Contoh:
Modul dengan kohesi temporal
95

11.7. Laporan Error/Error Reporting


Dalam pemrograman modular juga diperlukan modul yang berfungsi sebagai pemberi
informasi memberikan laporan kesalahan dari hasil eksekusi program. Modul ini dibuat umum
untuk menampilkan semua error yang terjadi dalam program. Modul pemanggil harus mengirim
switch/flag untuk menampilkan error yang dikehendaki. Bentuk pemakaian modulnya dapat
digambarkan sebagai berikut:

Cetak
Error

Gambar 11.4 Error Reporting


Contoh:
Modul ABC
…….
………
Cetak_error ( flag_x )
……
End
Cetak_error ( flag_x )
Case of flag_x
1 : Cetak ‘salah tekan tombol’
2 : Cetak ‘salah data’
3 : Cetak ‘data harus numerik’
4 : Cetak ‘data harus diisi’
5 : Cetak’harus diulang’
Endcase
End
Flag_x berisi 1,2,3,4,5
96

11.8. Program Shape


Merupakan pengambaran dari bentuk dasar sebuah modul. Bentuk dasar modul dapat
dikelompokkan sebagai berikut:
a. Afferent
Merupakan bentuk dasar sebuah modul yang tidak mempunyai parameter input, hanya
parameter output.
b. Efferent
Merupakan bentuk dasar sebuah modul yang tidak mempunyai parameter output, hanya
parameter input.
c. Transform
Merupakan bentuk dasar sebuah modul yang memiliki baik input dan output parameter.
d. Coordinate
Merupakan bentuk dasar sebuah modul yang mempunyai modul yang mengkoordinasikan
subordinatenya. Punya input dan output parameter.

Secara utuh suatu program shape didalam perancangan program dapat digambarkan
sebagai berikut:

Coordinate

Afferant Transform Efferent

Gambar 11.5 Program Shape


97

Contoh penggunaan kriteria perancangan lain dalam menampilkan bilangan prima dari
dari 10 – 20.

Variabel

Variabel
Bil, X, : integer
Prima : Boolean

Lakukan perulangan

For Bil = 10 to 20 Do
Prima = True Program Utama
Cari Prima Mulai
Cetak bilangan Variabel
Lakukan
perulangan
Cetak prima
Cari prima
Selesai
For x = 2 to bil – 1
do
If bil mod x =
0 then
Prima = false
Endif
X = x+1
End for

Cetak prima

If prima = true the


Cetak bil
Endif
98

Kriteria perancangan lain:


1. Ukuran modul
Dari kasus diatas didapatkan 5 (lima) buah modul yang saling berinterkasi dimana
modul utama teridiri dari 6 (enam) buah instruksi, variabel ada 3 (tiga) instruksi,
perulangan dengan 4 (empat) instruksi, cari prima dengan 6 (enam) instruksi dan terakhir
dengan 3 (tiga) instruksi.

2. Factoring

Program Utama
Mulai
Variabel
Lakukan
perulangan
Cetak prima
Selesai

Variabel
Bil, X, : For Bil = 10 to
integer 20 Do
Prima : Prima = True
Boolean Cari Prima
Cetak bilangan

For x = 2 to bil – 1
If prima = true
do
the
If bil mod x =
Cetak bil
0 then
Endif
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, yang khusus untuk menentukan logika sebuah bilangan prima
b. Modul cetak bilangan, yang khusus untuk menentukan logika menampilkan bilangan.
Generality: modul yang digunakan untuk keperluan umum yang dapat dipanggil oleh
beberapa modul lainya seperti modul untuk pendefinisian variabel.

6. Inisialisasi dan terminality


Inisialisasi dari modul diatas mencakup variabel-variabel input data yang dibutuhkan,
sedangkan untuk terminality dari modul diatas mencakup variabel output data yang
dibutuhkan untuk aplikasi diatas.

7. Error Reporting
Error Reporting dari modul diatas tidak ada.

8. Program Shape
Afferent: bentuk dasar sebuah modul yang tidak mempunyai parameter input, hanya
parameter output.

If prima = true the


Cetak bil
Endif
100

Efferent: bentuk dasar sebuah modul yang tidak mempunyai parameter output, hanya
parameter input.

For x = 2 to bil – 1 do
If bil mod x = 0 then
Prima = false
Endif
X = x+1
End for

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

For Bil = 10 to
20 Do
Prima = True
Cari Prima
Cetak bilangan

Coordinate: bentuk dasar sebuah modul yang mempunyai modul yang mengkoordinasikan
subordinatenya. Memiliki input dan output parameter.

Program Utama

Mulai

Variabel

Lakukan
perulangan
101

DAFTAR PUSTAKA

Amborowi, Armadya, 2007, Pengantar Pemrograman Terstruktur, Andi Yogyakarta

Indra B. Yatini, 2001, Pemrograman Terstruktur, J$J Learning Yogyakarta

J. Ritwell, J Edgar, 1992, Computer Programming, fourth edition, NCC Blackwell

Lavetin Anani, 2010, Pengantar Disain dan Analisis Algoritma, Salemba Infotek Jakarta

Lesley Anne Robetson, 1993, Simple Program Design, Thomas Nelson Edition

Munir Rinaldi, 2011, Algortma dan Pemrograman dalam Bahasa Pascal dan C, Informatika
Bandung

Nugroho Adi, 2004, Pemrograman Berorientasi Objek, Informatika Bandung

Santosa Insap, 2009, Interaksi Manusia dan Komputer, Andi Yogyakarta

Yudistyra, Ekabrata, 1991, Algoritma dan Pemrograman Terstruktu dengan Microsotf Basic
untuk IBM, Eleksmedia Komputindo
Teknik Pemrograman
Terstruktur
Buku ini mempresentasikan metodologi dan konsep mendesain sebuah pemrograman secara
terstruktur yang dapat membantu pembaca dalam memecahkan permasalahan yang berhubungan
dengan pemrograman dengan berbagai bahasa pemrograman. Dalam buku ini terdapat
pengembangan-pengembangan logika algoritma kedalam logika flowchart dan juga diaplikasikan
kedalam Nassi-Schneiderman Diagram, sehingga membuat pembaca lebih kuat dan handal
dalam penguasaan logika pemrograman serta memudahkan dalam pembuatan aplikasi
pemrogramman.
Selengkapnya, buku ini membahas:
 Pemrograman Terstruktur
 Merancang Program
 Pengembangan Algorithma
 Struktur Logika
 Struktru Percabangan
 Perulangan
 Nassi-Schneiderman Diagram
 Program Modular
 Komunikasi Antar Modul
 Kohesi
 Kopling
 Aspek Pemrograman Lainnya

Anda mungkin juga menyukai