PDF Compressor Pro Pemrograman Terstruktur
Oleh : Sudirman S.Kom
PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN –KOMPONEN PEMROGRAMAN TERSTRUKTUR PEMROGRAMAN TERSTRUKTUR MEMILIKI 3 KOMPONEN UTAMA, YAITU : 1. PEMROGRAMAN TOP-DOWN 2. PEMROGRAMAN MODULAR 3. TEOREMA STRUKTUR / STRUKTUR KONTROL TEOREMA STRUKTUR / STRUKTUR KONTROL Program yang terstruktur memakai 3 macam kendali konstruksi program, yaitu : 1. Struktur Berurutan (Sequence structure) 2. Struktur Seleksi (Selection structure) 3. Struktur Perulangan (Repetition structure) Struktur Berurutan Dalam struktur berurut, perintah/pernyataan dijalankan dalam suatu urutan yang telah ditentukan. Gambar dibawah ini menunjukkan struktur berurut. /* Program untuk menghitung Keliling dan luas persegi panjang */ Proses 1
Proses 2
#include
void main() { float panjang, lebar, luas, keliling; cout <<”Masukan nilai panjang = “; cin >> panjang;
Proses 3
Gambar 1. Struktur berurut
keliling =2 * (panjang * lebar); luas = panjang * lebar;
}
cout <<”Keliling persegi panjang adalah = “ << keliling << endl; cout <<”Luas persegi panjang adalah = “ << luas << endl;
PDF Compressor Pro Pemrograman Terstruktur
Oleh : Sudirman S.Kom
Struktur Seleksi Dalam struktur seleksi ada proses pemilihan keputusan (seleksi). Struktur seleksi ada 4 macam : 1. If - then 2. If - then - else 3. if - else bertingkat (Nested-if) 4. Case If - then Gambar dibawah ini memakai simbol flowchart menunjukkan struktur seleksi If - then. Bentuk :
If (kondisi) statement;
Input A
Penulisan statement-nya :
Ya PRINT A
A=5 Tdk B=A+5
If - then - else
A<0
KET=“BIL. POSITIP”
If (A=5) cout <<”A adalah = “ << A << endl; B =A + 5; Keterangan : - Jika A=5 maka akan tercetak ”A adalah = 5”, kemudian ekspresi B=A+5 dilaksanakan. - Jika A <> 5 maka statement cout tidak akan dijalankan, dan ekspresi B=A+5 dilaksanakan.
Bentuk : If (kondisi) Statement; Else Statement; Penulisan statement-nya :
KET=“BIL. NEGATIP”
CETAK KET
If (A<5) cout <<” Bil. Negatip “ << endl; else cout <<” Bil. Positip “ << endl;
Keterangan : - Jika A<5 (true) maka akan tercetak “Bil. Negatip”, jika tidak (false) maka akan tercetak “Bil. Positip”. If - else bertingkat (Nested-if) Bentuk : If (kondisi) Statement; else if (kondisi)
PDF Compressor Pro Pemrograman Terstruktur
Ya
gol=’A’
Oleh : Sudirman S.Kom
gapok=150000
Tdk Ya
gol=’B’ Tdk
gapok=250000
gapok=200000
Penulisan statement-nya : if (gol==’A’ ) gapok=150000; else if (gol==’B’) gapok=200000; else gapok=250000;
PDF Compressor Pro Pemrograman Terstruktur
Oleh : Sudirman S.Kom
Switch-Case Untuk menyederhanakan bentuk Nested-if. Bentuk/struktur Switch-case : Switch (var) { case konstanta : statement; break; case konstanta : statement; break; case konstanta : statement; break; default : statement; } Contoh : Switch case (gol) { case ‘A’ : gapok=150000; break; case ‘B’ : gapok=200000; break; case ‘C’ : gapok=250000; break;
- Jika var Gol bernilai ‘A’, maka statement gapok=150000 dilaksanakan, kemudian dengan adanya statement break, maka switch berakhir. Jika var Gol tidak bernilai ‘A’, maka berlanjut ke statement case berikutnya, yaitu : - Jika var Gol bernilai ‘B’, maka statement gapok=200000 dilaksanakan, dst.
Keterangan : - var dapat berupa variable atau konstanta bertipe int atau char. - Pencocokan var dengan konstanta dilakukan secara urut dimulai dari yang pertama. Bila cocok statement yang mengikuti case dijalankan. - Kalau selanjutnya pernyataan break ditemukan, eksekusi dari switch berakhir (keluar dari blok instruksi/pernyataan switch. - default, hanya akan dijalankan bila kondisi pada bagian case tidak ada yang cocok dengan var switch.
PDF Compressor Pro Pemrograman Terstruktur
Oleh : Sudirman S.Kom
Contoh Soal 1. Buatlah Daftar Hasil Test Karyawan, jika nilai test >=60 maka isi keterangan=”LULUS”, jika tidak isi keterangan=”GAGAL”. Input adalah Nomor Test dan nilai. Output adalah keterangan. Buatlah algoritma dan programnya. 2. Bonus karyawan diberikan jika masa kerja lebih dari 5 tahun, bonus karyawan dihitung masa kerja x 100000. Input adalah Nip dan masa kerja. Buatlah algoritma dan programnya. 3. Karyawan PT.ABC ada 4 golongan dengan upah per jam yang berbeda. Ketetuannya adalah sbb : Golongan A B C D
Upah per jam Rp. 5.000,Rp. 6.000,Rp. 7.000,Rp. 8.000,-
Si Andi adalah karyawan PT. ABC dengan durasi kerja 8 jam per hari. Berapa upah yang di dapat si Andi jika andi dalam golongan D? Cetaklah upah per jam sesuai tabel diatas. Buatlah algoritma dan programnya.
PDF Compressor Pro Pemrograman Terstruktur
Oleh : Sudirman S.Kom
Penyelesaian : Soal 1 : Algoritma : Deklarasi : masa_kerja, bonus : real; nip : integer; Deskripsi : Baca nip Baca masa_kerja Jika masa_kerja>5 maka bonus = masa_kerja x 100000; Cetak nip dan bonus Program : /* Program untuk menghitung Bonus Karyawan */ #include void main() { float masa_kerja, bonus=0; int nip; cout <<”Nip : “; cin >> nip; cout <<”Masa Kerja : “; cin >> masa_kerja; if (masa_kerja>5) bonus = masa_kerja * 100000;
}
cout <<”Nip : “ << nip << endl; cout <<”Bonus : “ << bonus << endl;
PDF Compressor Pro Pemrograman Terstruktur
Soal 2 : Algoritma : Deklarasi : nilai : real; no : integer; keterangan : char; Deskripsi : Baca no Baca nilai Jika nilai>=60 maka isi keterangan=”LULUS” Jika tidak maka isi keterangan=”GAGAL” Cetak nip dan bonus
Oleh : Sudirman S.Kom
PDF Compressor Pro Pemrograman Terstruktur
Oleh : Sudirman S.Kom
Program : /* Program untuk Daftar Hasil Test Karyawan */ #include #include <string.h> Keterangan : void main() { - Jika nilai>=60 maka float nilai; teks “LULUS” di copy kedalam int no; keterangan char keterangan[6]; Jika tidak maka teks “GAGAL” di copy kedalam cout <<”No. Test : “; keterangan cin >> no; Dalam bahasa C++ mengisi teks cout <<”Nilai Test : “; kedalam variable string tidak bisa cin >> nilai; dengan cara Keterangan = teks if (nilai >=60) strcpy(keterangan, “LULUS”); else strcpy(keterangan, “GAGAL”); }
cout <<” Keterangan : “ << keterangan << endl;
Keterangan : strcpy() adalah sebuah fungsi yang gunanya untuk mengcopy suatu teks kedalam sebuah variable string. Contoh diatas : teks “LULUS” dicopy ke variable string keterangan, atau sama dengan keterangan= “LULUS”
PDF Compressor Pro Pemrograman Terstruktur
Oleh : Sudirman S.Kom
Soal 3 : Algoritma : Deklarasi : upj : real; gol : char; Deskripsi : Baca gol Jika gol=’A’ maka Upj=5000 Jika tidak jika gol=’B’ maka Upj=6000 Jika tidak jika gol=’C’ maka Upj=7000 Jika tidak maka Upj=8000 Cetak Upj Program : /* Program untuk Mencetak Upah per Jam Karyawan */ #include void main() { float upj; char gol; cout <<”Golongan : “; cin >> gol; if (gol=’A’) upj = 5000; else if (gol=’B’) upj = 6000; else if (gol=’C’) upj = 7000; else upj = 8000;
Dengan Switch-Case
cout <<” Upah per Jam : “ << upj << endl;
Switch (gol) { case ‘A’ : upj=5000; break; case ‘B’ : upj=6000; break; case ‘C’ : upj=7000; break; case ‘D’ : upj=8000; break; }
PDF Compressor Pro Pemrograman Terstruktur
}
Oleh : Sudirman S.Kom