TEKNIK
PEMROGRAMAN
TERSTRUKTUR
tEKNIK
PEMROGRAMAN
TERSTRUKTUR
KATA PENGANTAR
Penulis
v
DAFTAR ISI
Halaman
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
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.
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.
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.
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
Untuk lebih jelasnya konsep pemrograman secara terstruktur dapat dijabarkan dalam
pembahasan meliputi pemrograman modular, top down programming, dan struktur logika.
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
A B C
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
A B C
E F G H I
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.
A Instruksi A
B Instruksi B
C Instruksi C
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
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
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:
Kondisi
Repeat
Instruksi
Instruksi Until Kondisi
Kondisi
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
Ketika kita membaca permalasalahan maka komponem input dan output dapat
didefinisikan dengan mudah jika kita mengenal objek dan dan proses yang akan di
defenisikan.
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.
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
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 flowchart diatas dapat juga diterjemahkan kedalam logika algoritma yang lebih
sederhana seperti pernyataan algoritma berikut:
Mulai
Input variabel
If Kondisi Then
Proses 1
Else
Proses 2
Endif
Proses 3
Output Variabel
Selesai
Mulai
Persiapan
Lagi = “Y”
While
Lagi = ‘Y”
Input Selesai
IF
kondi
Proses1 Proses2
Proses3
Output
Dari gambar flowchart diatas dapat diterjemahkan kedalam bahasa logika algoritma
sebagai berikut:
Mulai
Input variabel
Lagi = Y
While Lagi = Y do
If Kondisi Then
Proses1
Else
Proses 2
Endif
Proses 3
Output Variabel
End while
Selesai
sederhana sesuai dengan deskripsi masukan, proses dan keluaran dari permasalahan yang ada.
Format tabel pengecekan tersebut dapat digambarkan sebagai berikut:
Format tabel diatas dapat dikelompokkan kedalam empat kolom yang dinyatakan dalam
rincian sebagai berikut:
1. Kolom Nomor, merupakan rincian runtunan proses atau urutan dari pemecahan logika
permasalahan yang telah didefinisikan didalam logika algoritma;
2. Kolom Input, berisi beberapa variabel-variabel yang terlibat selama pemecahan
permasalahan atau yang didapat didalam logika algoritma yang ada;
3. Kolom Proses, berisi kegiatan proses telah didefinisikan didalam logika algoritma, baik itu
logika yang berhubungan dengan operasional aritmatika maupun operasional yang
berhubungan dengan logic;
4. Kolom Output, menggambarkan hasil-hasil yang diperoleh dari beberapa proses yang ada,
hasil dari output tersebut juga dapat menjadi masukan pada proses berikutnya.
Supaya dapat bekerja dengan baik, maka tabel pengecekan tersebut perlu diisi dengan
beberapa data masukan, sehingga dapat diketahui tingkat kebenaran dari logika pemecahan
algoritma yang telah dibuat. Untuk lebih jelasnya tabel pengecekan dapat diterapkan kedalam
contoh sebagai berikut:
Contoh:
Menjumlahkan 2 angka
Baca 2 bilangan, jumlahkan keduanya
Cetak jumlah kedua bilangan tersebut.
27
Penyelesaiannya:
a. Membuat daftar semua input/masukan yang diletakkan pada kolom input diagram di
bawah ini.
b. Membuat daftar output, letakkan pada kolom output dibawah ini.
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.
Mulai
Persiapan
Input
IF kondisi
Proses1 Proses2
Proses3
Output
Selesai
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
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
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.
Add 1 to female_part_student_count
Endif
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:
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
Benar
Kondisi 1
Instruksi A
Benar
Kondisi 2
Instruksi B
Benar
Kondisi 3
Instruksi C
Contoh:
Mengelompokkan data rekaman mahasiswa berdasarkan umur, untuk mencari mahasiswa
yang laki-laki dan perempuan.
35
Jawab
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
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.
Mulai
Persiapan
Lagi = “Y”
While Lagi =
‘Y”
Input Selesai
IF
kondisi
Proses1 Proses2
Proses3
Output
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
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
Repeat
Statement_1
Statement_2
……
Statement_n
Until kondisi k true
42
Mulai
Persiapan
Selesai = “Tidak”
Repeat
Input
IF kondisi
Proses1 Proses2
Proses3
Output
Until Selesai =
“Ya”
Selesai
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
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
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
Statement B
Statement C
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
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
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
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
a. Simple IF statement
IF
Ya Tidak
Statement 1 Statement 2
IF
Ya Tidak
Statement 1
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:
IF
Ya Tidak
IF
Ya Tidak
IF
Ya Tidak
IF
Ya Tidak
IF
Ya Tidak
IF
Ya Tidak
IF
Ya Tidak
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:
Do While kondisi K
Blok Statement
Blok Statement
For kondisi K Do
Blok Statement
End For
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
Mulai
Persiapan
Lagi = “Y”
Input Selesai
IF kondisi
Proses1 Proses2
Proses3
Output
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
Mulai
Persiapan
Lagi = “Y”
Repeat
Input
IF
kondi
Proses1 Proses2
Proses3
Output
Until
Lagi = ‘Y”
Selesai
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
Mulai
Persiapan
For Lagi = 1 to N do
Input
IF
kondi
Proses1 Proses2
Proses3
Output
Lagi = Lagi + 1
End For
Selesai
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
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
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.
Penyelesaian:
a. Diagram Definisi
Definisikan permasalahan kedalam kelompok mana yang menjadi input, proses, dan
output, jika perlu buat dalam bentuk tabel seperti dibawah ini.
b. Algoritma Pemecahan
Kembangkan logika pemecahannya, terutama pada bagian proses sehingga
permasalahan diatas dapat menjadi susunan perintah dibawah ini.
Baca tiga bilangan:
Baca Bil1, Bil2, Bil3
Do while Not ( Bil1 = 0 And Bil2 = 0 And Bil3 = 0 )
If Bil1 > Bil2 then
Temp = Bil1
Bil1 = Bil2
Bil2 = temp
Endif
If Bil2 > Bil3 then
Temp = Bil2
Bil2 = Bil3
Bil3 = temp
Endif
If Bil1 > Bil3 then
Temp = Bil1
Bil1 = Bil3
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:
Modul Utama
Temp = Bil1
Modul sorting
Bil1 = Bil2
tiga bilangan
Bil2 = temp
Endif
Temp = bil2
Bil2 = Bil3
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
Bila jumlah harga > 10000 diberikan discount 10 %. Biaya angkut dan biaya paket
termasuk juga dalam jumlah harga.
1. Diagram Definisi
3. Hierarchy Chart
Mencetak
Laporan
Pesanan
Hitung Jumlah
Cetak Judul
Harga
69
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
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.
b. Parameter status
Dalam merancang modul sebaiknya lebih banyak menggunakan parameter data hindari
kemungkinan parameter status sebanyak mungkin.
c. Hierarchy chart
Bil1
Bil2
Bil3
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
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
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
Contoh:
Menghitung penjualan
If jumlah_beli > 300 then
Potongan = jumlah_beli * harga_barang * 0.15
Else
78
Kohesi Sequential
Total = Total + Pembelian Kohesi Sequential
End
Contoh :
Proses perhitungan
C=A+B Kohesi communicational
D=A–B Kohesi communicational
E=A*B Kohesi communicational
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
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
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
Contoh:
File processing
Open employee updates files Kohesi Konsidental
81
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
BAB 10
KOPLING
Modul A
Modul B
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
Modul A
Modul B
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
Modul A
Modul B
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
Modul A Modul B
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
Modul A Modul B
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
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
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.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.
Modul A
Modul B Modul C
MENJADI
Modul B
Modul B1 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
11.4. Fan-In
Merupakan kebalikan dari Fan-Out sehingga mengasilkan berapa banyaknya boss atau
induk dari suatu subordinate.
B C D
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.
Cetak
Error
Secara utuh suatu program shape didalam perancangan program dapat digambarkan
sebagai berikut:
Coordinate
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
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.
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.
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
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
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