STMIK Raharja
Suplemen Pemrograman Terstruktur Page 1 of 26
Sejarah Metodologi Pemrograman Metodologi pengembangan program pertama kali diperkenalkan Î Prof E.W Dykstra tahun 1960. Pemrograman terstruktur Î mengurangi pemakaian instruksi GOTO GOTO less programming
Ciri – ciri Program Terstruktur (Good Program) Run correctly Run efficiently Be easy to read and understand Be easy to debug Be easy to modify
Langkah – langkah Pengembangan Program 1. Definisikan masalah •
Keluaran (Output)
•
Masukan (Input)
•
Proses (Proces)
2. Rancang outline pemecahan masalah •
Buat langkah – langkah proses
•
Buat rincian/detail Proses
•
Tentukan Variable dan record
•
Tentukan struktur kontrol (pengulangan, kondisi, dsb)
•
Buat logika ‘Mainline’
3. Buat algoritma berdasarkan outline pemecahan masalah 4. Test algoritma 5. Coding 6. Execute 7. Dokumentasi dan pemeliharaan By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 2 of 26
Metode Pemrograman Terstruktur Pemrograman terstruktur memakai metode pengembangan Top-Down. Perancangan program dilakukan secara modular Pengembangan Top-Down Pengembangan yang dimulai dari langkah yang global lebih dahulu, yang kemudian diperhalus lagi sehingga didapat langkah rinci Modular Perancangan program dilakukan dalam bentuk modul - modul
Teorema Pada Pemrograman Terstruktur Sequence Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya Contoh : Perintah A Perintah B Perintah C Selection Instruksi akan dikerjakan jika kondisi tertentu dipenuhi Contoh : Penggunaan IF-THEN-ELSE Penggunaas CASE Repetition Instruksi dikerjakan berulang – ulang sampai suatu kondisi dicapai. Contoh : Penggunaan DO WHILE Penggunaan REPEAT – UNTIL
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 3 of 26
Algoritma & Pseudocode Sifat algoritma Jelas dan tepat atau tidak samar – samar (Definiteness) Memberikan pemecahan yang tepat untuk semua kasus (Effectiveness) Memiliki akhir (finiteness)
Pseudocode Statement program ditulis dengan bahasa indonesia/inggris yang sederhana Setiap instruksi ditulis pada setiap baris Keywords/kata kunci digunakan khusus untuk menjelaskan control struktur Setiap set/bagian blok instruksi memiliki awal dan akhir dengan “one entry one exit” Pengelompokan statement bisa membentuk satu modul yang mempunyai nama.
Contoh algoritma: 1. Turn on Calculator Clear Calculator Repeat the following instruction Key in dollar amount Key in decimal point Key in cent amount Until all prices were been entered Write down total price Turn off Calculator
2. Deklarasi variabel lokal No_bulan : integer (1..12) Deskripsi : read (no_bulan) case (no_bulan) no_bulan = 1 ; write ( ‘Januari’ ) no_bulan = 2 ; write ( ‘Februari’ ) no_bulan = 3 ; write ( ‘Maret’ ) no_bulan = 4 ; write ( ‘April’ ) no_bulan = 5 ; write ( ‘Mei’ ) no_bulan = 6 ; write ( ‘Juni’ ) no_bulan = 7 ; write ( ‘Juli’ ) no_bulan = 8 ; write ( ‘Agustus’ ) no_bulan = 9 ; write ( ‘September’ ) no_bulan = 10 ; write ( ‘Oktober’ ) no_bulan = 11 ; write ( ‘Nopember’ ) no_bulan = 12 ; write ( ‘Desember’ ) endcase
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 4 of 26
TEKNIK PENYAJIAN ALGORITMA Teknik Tulisan z Structure English z Pseudocode Teknik Gambar z Structured Chart z HIPO z Flowchart z Nassi Schneiderman Chart
Teknik Tulisan Structure English Alat yang cukup efisien untuk menggambarkan suatu algoritma Basis : bahasa Inggris Dasar penggambaran algoritma: bahasa manusia
Pseudocode Kode mirip dengan kode pemrograman yang sebenarnya. Arti pseudo: imitasi atau mirip atau menyerupai Arti code: kode program. Basis: bahasa pemrograman z umumnya PASCAL, atau C++ Lebih rinci dari structure English, z Dapat menyatakan tipe data yang digunakan struktur penulisan: z sequence structure z selection structure z looping structure.
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 5 of 26
Contoh pseudocode: z Komputer mendapatkan data read nama_mhs get tgl_system read anggota_1, anggota_2 baca record mhs baca nilai
z Komputer menyajikan informasi print “STMIK & AMIK Raharja” write record mahasiswa display “salah kode” cetak “STMIK & AMIK Raharja”
z Komputer melakukan aritmatik Add harga to total Total = total + harga a = a * b
z Komputer memberikan nilai initialize total to 0 set student_count to 0
z Komputer membandingkan & memilih alternatif tindakan IF mhs is part_time THEN Add 1 to part_time_count ELSE Add 1 to full_time_count ENDIF
z Komputer melakukan pengulangan DO WHILE mhs_total < 50 Read record mhs Print nama_mhs, alamat to laporan ENDDO
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 6 of 26
Teknik Gambar Structured Chart “Organisasi dari sistem secara berjenjang dalam bentuk modul dan submodul.” Structure chart digunakan untuk menggambarkan modul – modul dan hubungannya: Hubungan elemen data Hubungan elemen kontrol Hubungan antar modulnya. Teknik pembuatan struktur chart Program dibagi kedalam modul – modul Bentuk hirarki/organisasi modul – modul Gambarkan Komunikasi antar modul Deskripsikan Fungsi modul
Contoh Dasar Penggambaran Structured Chart 1.
A q p
flag
B Deskripsi fungsi Modul A memanggil modul B, dengan mengirim elemen data P ke modul B. Modul B Berfungsi / bekerja. Modul B Selesai dan mengirimkan elemen data q dan kontrol flag, kembali ke modul A. Modul A selesai.
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 7 of 26
2. X
A
B
C
Deskripsi fungsi X Memanggil A Setelah A bekerja, kemudian kembali ke X X Memanggil B Setelah B bekerja, kemudian kembali ke X X Memanggil C Setelah C bekerja, kemudian kembali ke X
3. X
flag
p q
r A
flag
B
C
Deskripsi fungsi X Memanggil A, dan mengirim elemen data p ke modul A. Setelah A bekerja, kemudian kembali ke X dan mengirim kontrol flag. X Memanggil B , dan mengirim elemen data r ke modul B. Setelah B bekerja, kemudian kembali ke X dan mengirim elemen data q. X Memanggil C, dan mengirim kontrol flag ke modul C.
Setelah C bekerja,
kemudian kembali ke X
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 8 of 26
HIPO
HIPO ( HIERARCHY PLUS INPUT-PROCESS-OUTPUT) HIPO Î alat dokumentasi program. HIPO Î dikembangkan dan didukung oleh IBM. HIPO Î digunakan sebagai alat bantu untuk merancang dan mendokumentasikan siklus pengembangan sistem.
Sasaran HIPO: z Untuk menggambarkan suatu struktur bertingkat z Untuk memahami fungsi-fungsi dari modul-modul suatu sistem. z Untuk menggambarkan modul-modul yang harus diselesaikan oleh pemrogram. z Sebagai penjelasan yang lengkap dari input yang akan digunakan, proses yang akan dilakukan serta output yang diinginkan. Terdapat 3 diagram yang digunakan pada HIPO: •
Visual Table of Contents Menggambarkan hubungan dari modul-modul dalam suatu sistem secara berjenjang
•
Overview Diagram Merepresentasikan input, proses dan output secara global
•
Detail Diagram Merepresentasikan secara rinci kerja dari fungsi atau modul
Contoh Visual Table of Contents Sistem Parpus
Entry data 1
Pelayanan Sirkulasi
Karyawa n
Anggot a
Pustaka 1.3
Tambah 1.1.1
Tambah 1.2.1
Tambah 1.3.1
Laporan - laporam 3
Pinjaman 2.1
Kembalian 2.2
Tambah 2.11
Tambah 2.21
Lapora n denda 3.1
Lapora n pustaka
Laporan peminjam 3.3
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 9 of 26
Overwiew Diagrams Over view diagrams merepresentasikan / menggambarkan hubungan dari input, proses dan output. z Input adalah item – item data yang akan digunakan oleh bagian proses. z Proses adalah langkah – langkah yang menggambarkan kerja dari fungsi atau modul. z Output adalah hasil pemrosesan data. Detail Diagram Detail diagram menggambarkan elemen-elemen dasar dari paket secara rinci kerja dari fungsi atau modul.
Contoh over view diagram: 1. Menjumlahkan 3 angka. Baca 3 bilangan, jumlahkan ketiga bilangan tersebut dan cetak jumlah ketiga bilangan tersebut Overview diagram INPUT
PROSES
OUTPUT
- 3 Bilangan - Baca 3 Bilangan
- Hasil
- Jumlah ketiga bilangan
Jumlah
tersebut - Cetak hasil penjumlahan
Detail diagram INPUT
PROSES
OUTPUT
- Bil_1
- Baca Bil_1
- Total
- Bil_2
- Baca Bil_2
- Bil_3
- Baca Bil_3 - Total = Bil_1+Bil_2+Bil_3 - Cetak Total
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 10 of 26
Flowchart 1. Sequence Structure (struktur urut)
A
Instruksi A
B
Instruksi B
C
Instruksi C
2. Selection Structure (Struktur Seleksi) IF Selection
A= ?
Y
Tida C
Syntax C++: if (A==5) { instruksi C; } By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 11 of 26
IF – ELSE Selection
Tida
A= ?
B
Y
C
Syntax C++: if (A==5) { instruksi C; } else { instruksi B; }
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 12 of 26
CASE Selection
w
A
default
Va x
y
B
C
D
Syntax C++: switch (var) { case ‘w’: instruksi break; case ‘x’: instruksi break; case ‘y’: instruksi break; default: instruksi }
A;
B;
C;
D;
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 13 of 26
Looping/Repetition Structure (Struktur Pengulangan) z Front Check Repetition
A Kondi ?
B
Syntax C++: while (kondisi) { instruksi A; } instruksi B; Catatan: -
Kondisi berisi nilai true atau false
-
Kondisi dapat berupa persamaan relasi spt:
z<5 z >= 10 … dsb
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 14 of 26
z Rear Check Repetition
A
Kondi ?
B .
Syntax C++: do { instruksi A; } while (kondisi) instruksi B; Catatan: -
Kondisi berisi nilai true atau false
-
Kondisi dapat berupa persamaan relasi spt:
z<5 z >= 10 … dsb
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 15 of 26
z Fixed Repetition
For x = 0 to 5
A
x
B Syntax C++: for (x=0;x<=5;x++) { instruksi A; } instruksi B;
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 16 of 26
OPERATOR C++ Mathematical Operator Name Operator Addition + Substraction * Multilpication / Division Modulus %
Keterangan y=2+x, setelah itu baru increment x y=2+(x+1), setelah itu baru increment x
++
y = 2 + x++
++
y = 2 + ++x
+=
y += 2
--
y = 2 + x--
--
y = 2 + --x
y=2+(x-1)
-=
y -= 2
y=y-2
y=y+2 y=2+x, setelah itu baru decrement x
Sample y && x y || x !x
O R
x
TABEL LOGIKA OR
TRUE TRUE TRUE
TRUE FALSE
FALSE TRUE FALSE
x
TABEL LOGIKA AND
D
Evaluates FALSE TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE FALSE FALSE TRUE
y
RELATIONALOPERATOR Name Operator Sample Equals == 100 == 50 50 == 50 Not Equals != 100 != 50 50 != 50 Greater Than > 100 > 50 50 > 50 Greater Than >= 100 >= 50 or Equals 50 >= 50 Less Than < 100 < 50 50 < 50 Less Than <= 100 <= 50 or Equals 50 <= 50
LOGICAL OPERATOR Name Operator AND && OR || NOT !
AN
Relational Operator
y
Decrement
Sample
TRUE FALSE
TRUE TRUE FALSE
FALSE FALSE FALSE
TABEL LOGIKA NOT
T
Increment
Operator
Result 8 2 15 2 1
NO
Name
Sample 5+3 5-3 5*3 6/3 5%2
x
TRUE FALSE
FALSE TRUE
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 17 of 26
EKSPRESI Ekspresi merupakan kombinasi Operand dan Operator. Hasil Evaluasi dari sebuah Ekpresi adalah nilai yang sesuai dengan type operand yang dipakai
MACAM – MACAM EKPRESI Ekspresi aritmatika Menggunakan Operator Aritmatik Ekspresi Numerik Menggunakan Operand Numerik Contoh: 1. 3.14 * R * R Operatornya adalah * Operandnya adalah R 2. (9 / 5 * C) + 32 Operatornya adalah /, *, + Operandnya adalah C 3. A+B*5 Operatornya adalah + , * Operandnya adalah A, B Tingkatan operator dari tinggi ke rendah: 1.
/, %, *
2.
+,-
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 18 of 26
Contoh: 1. #include
Void main() { int usia; char jnskel[6]; cout<< “Jenis Kelamin Anda (pria/wanita)?”; cin>>jnskel; cout<<“Usia Anda ?”; cin>>usia; if (jnskel==“pria” && usia>=20) { cout << “Anda”<< jnskel << “berusia 20th keatas” << endl; cout << “Berhak masuk club ini”; } else { if(jnskel==“wanita” && usia>=22) { cout << “Anda” << jnskel << “berusia 22th keatas” << endl; cout << “Berhak masuk club ini”; } else { cout << “Anda” << jnskel << “berusia” << usia << endl; cout << “Berhak masuk club ini”; } } }
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 19 of 26
Flowchart Nested Selection Non Linear Nested IF Statement
NO
Kondisi 1
YES
A NO
Kondisi 2
YES
B NO
Kondisi 3
C
YES
D
Contoh Syntax C++, Non Linear Nested IF Statement : if (Kondisi1) { if (Kondisi2) { if (Kondisi3) { Instruksi D; } else { Instruksi C; } } else { Instruksi B; } } else { Instruksi A; } By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 20 of 26
Linear Nested IF Statement
NO
Kondisi 1
YES
A NO
Kondisi 2
YES
B NO
Kondisi 3
D
YES
C
Contoh Syntax C++, Linear Nested IF Statement : if (Kondisi1) { Instruksi A; } else { if (Kondisi2) { Instruksi B; } else { if (Kondisi3) { Instruksi C; } else { Instruksi D; } } } By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 21 of 26
Contoh Nested if: #include void main() { int Number1, Number2; cout << “Masukkan dua angka.\nAngka pertama: "; cin >> Number1; cout << "\nAngka kedua: "; cin >> Number2; cout << "\n\n"; if (Number1 >= Number2) { if ( (Number1 % Number2) == 0) // evenly divisible? { if (Number1 == Number2) cout << “Kedua angka tersebut sama!\n"; else cout << “Angka pertama adalah kelipatan Angka kedua!\n"; } else cout << "They are not evenly divisible!\n"; } else cout << "Hey! The second one is larger!\n"; }
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 22 of 26
ANALISIS MASALAH Dalam analisis masalah ini kita melakukan pendefinisian masalah dan mengembangkan pemecahan masalah Definisi masalah . z Masukan / Input z Menyediakan data masukan untuk pemecahan masalah z Keluaran / Output z Membuat daftar output / keluaran z Proses z Menyediakan daftar proses / langkah – langkah yang diperlukan untuk menghasilkan output / keluaran.
Contoh: 1. Menjumlahkan 3 angka Baca 3 bilangan, jumlahkan ketiga bilangan tersebut dan cetak jumlah ketiga bilangan tersebut
Penyelesaian : Langkah – langkahnya : Buat daftar output, letakkan pada kolom output (lihat tabel dibawah) Buat daftar semua input yang kemudian diletakkan pada kolom input Inventarisir kegiatan yang dilakukan agar dapat menghasilkan output dari input yang tersedia.
Tabel / Daftar Input–Proses–Output (Outline Definisi Masalah) INPUT PROSES - Bil_1 - Baca Bil_1 - Bil_2
- Baca Bil_2
- Bil_3
- Baca Bil_3
OUTPUT - Total
- Total = Bil_1+Bil_2+Bil_3 - Cetak Total By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 23 of 26
Pengembangan Outline Definisi Masalah ke Algoritma dgn Flowchart
START
START
WRITE Informasi Membaca Bil_1
READ Bil_1 READ Bil_1 READ Bil_2
WRITE Informasi Membaca Bil_2
READ Bil_3 READ Bil_2
Total=Bil_1+Bil_2+ Bil_3
WRITE Total
WRITE Informasi Membaca Bil_3
READ Bil_3
Total=Bil_1+Bil_2+Bil_3 END WRITE Total
END
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 24 of 26
LATIHAN PENGEMBANGAN ALGORITMA 1. Carilah suhu rata – rata dari 2 data suhu yang diketahui. Baca 2 data suhu (Sr dan St), hitung rata – ratanya (Sa) dan cetak hasil rata – rata Tersebut.
Jawaban: Tabel / Daftar Input–Proses–Output (Outline Definisi Masalah) INPUT Sr St
PROSES Baca Sr Baca St Sa = (Sr + St) / 2 Cetak Sa
OUTPUT Sa
Pengembangan Outline Definisi Masalah ke Algoritma dgn Flowchart START
WRITE Informasi membaca Sr
WRITE Informasi membaca Sr
WRITE Informasi membaca Sr
WRITE Informasi membaca Sr
Sa = (Sr + St) / 2
Write Hasil
END
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 25 of 26
Desk Checking (untuk memeriksa algoritma) Masukkan Data Ikuti cara kerja algoritma dengan data tersebut untuk mendapatkan hasilnya. Bandingkan dengan hasil yang dilakukan secara manual Bila benar maka algoritmanya benar dan bila salah maka algoritmanya salah Perbaiki algoritmanya jika salah
Contoh Algoritma berupa Flowchart sebagai berikut:
START
WRITE Informasi Membaca Bil_1
READ Bil_1
WRITE Informasi Membaca Bil_2
READ Bil_2
WRITE Informasi Membaca Bil_3
READ Bil_3
Total=Bil_1+Bil_2+Bil_3
WRITE Total
END
By: Augury El Rayeb, S.Kom., MMSI.
STMIK Raharja
Suplemen Pemrograman Terstruktur Page 26 of 26
Desk Checking Lakukan checking dengan 2 set data, yaitu : 10, 20, 30 untuk bil_1 dan 40, 41, 42 untuk bil_2
Jawaban: 1. Data input : Variabel Data_1 Data_2 10 40 Bil_1 Bil_2
20
41
Bil_3
30
42
2. Hasil Penjumlahan Secara Algoritma: Statement
Bil_1 Bil_2 Bil_3 Total Cetak
Baca
10
20
30
Data_1 Total
60 ya
Cetak Baca Data_2 Total
40
41
42 123
Cetak
ya
3. Hasil penjumlahan secara manual : Total Data_1
60
Data_2
123
4. Periksa (check) hasil, apakah sesuai dengan hasil yang diolah algoritma dan secara manual
By: Augury El Rayeb, S.Kom., MMSI.