PERTEMUAN 5
PENGEMBANGAN
PSEUDOCODE STRUKTUR
KONTROL PENGULANGAN
POKOK BAHASAN
1. Definisi Struktur Kontrol Pengulangan 2. Jenis Struktur Kontrol Pengulangan
3. Pseudocode Struktur Kontrol Pengulangan 4. Desk Checking Struktur Kontrol Pengulangan 5. Algoritma Dengan Struktur Kontrol
Pengulangan
STRUKTUR KONTROL
PENGULANGAN
Struktur kontrol pengulangan digunakan untuk melaksanakan sederetan instruksi berulang-ulang sesuai dengan persyaratan yang ditetapkan.
Ada tiga cara penempatan keputusan pengulangan :
1. Pada awal pengulangan (Leading decision loop) 2. Pada akhir pengulangan (trailing the decision
loop)
3. Menjumlahkan angka pada suatu
1. Leading Decision Loop
Kondisi diuji sebelum beberapa instruksi dieksekusi.
Perintah leading decision loop adalah struktur Do WHILE.
Format Struktur Kontrol pengulangan DO WHILE DO WHILE kondisi k bernilai true
instruksi_1 instruksi_2 ……… instruksi_n counter ENDDO
Contoh Kasus :
Sebuah hotel membuat penomoran kamar
yang dikelompokkan berdasarkan bilangan
genap. Jumlah kamar yang tersedia adalah
5 kamar. Berikan bilangan genap sesuai
dengan banyaknya kamar
1. Leading Decision Loop
(lanjutan)
Definisi Masalah
Input : jumlah kamar
Output : 5 deret bilangan genap
Proses : Jika I <= jumlah kamar lakukan pengulangan berikut a = a+ 2
cetak a Outline Solusi
1. Leading Decision Loop
(lanjutan)
Input Proses Output
Baca n DO WHILE i <= n a= a+ 2 i = i + 1 Cetak a Enddo Cetak a
1. Leading Decision Loop
(lanjutan)
Program Bilangan_Genap
{Menghasilkan bilangan genap sesuai dengan data yang diinput}
Deklarasi integer a= 0 integer i=1 integer n Deskripsi Baca n DOWHILE i<=n a= a+ 2 i=i+1 Cetak a ENDDO END
Desk Checking Data Masukan
Hasil yang diharapkan 2 4 6 8 10
1. Leading Decision Loop
(lanjutan)
Data
Tabel Desk Checking
1. Leading Decision Loop
(lanjutan)
i n i<=n a=a+2 i=i+1 Cetak a
1 5 Y 2 2 2 2 5 Y 4 3 4 3 5 Y 6 4 6 4 5 Y 8 5 8 5 5 Y 10 6 10 6 5 N - - -
2.
Trailing Decision Loop
Beberapa instruksi dieksekusi sekali sebelum kondisi diuji. Jika kondisi False, instruksi akan diulang sampai kondisi bernilai TRUE.
Perintah trailing decision loop adalah struktur REPEAT …. UNTIL.
Format Struktur Kontrol pengulangan REPEAT….UNTIL REPEAT instruksi_1 instruksi_2 ……. instruksi_n counter
Contoh Kasus :
Sebuah Bank membuat nomor antrian
berdasarkan bilangan ganjil. Jumlah antrian
maksimal 5. Berikan bilangan ganjil sesuai
jumlah antrian
Definisi Masalah
Input : jumlah antrian
Output : 5 deret bilangan ganjil
Proses : Jika i <= jumlah antrian lakukan pengulangan berikut cetak a
a = a+ 2 Outline Solusi
Input Proses Output
Baca n REPEAT Cetak a a= a+ 2 i = i + 1 UNTIL i>n Cetak a
Program Bilangan_Ganjil
{Menghasilkan bilangan ganjil sesuai dengan data yang diinput}
Deklarasi integer a= 1 integer i=1 integer n Deskripsi Baca n REPEAT Cetak a a= a+ 2 i=i+1 Until i<=n ENDDO END
Desk Checking Data Masukan
Hasil yang diharapkan 1 3 5 7 9
Data
n 5
Tabel Desk Checking
i n Cetak a a=a+2 i=i+1 i>n
1 5 1 3 2 N 2 5 3 5 3 N 3 5 5 7 4 N 4 5 7 9 5 N 5 5 9 11 6 N 6 5 - - - Y
3. Counted Loop
Pencacah pengulangan digunakan jika jumlah iterasi pengulangan sudah diketahui. Pelaksanaan loop dikendalikan oleh indeks pengulangan.
Perintah counted loop adalah struktur FOR Format Struktur Kontrol pengulangan FOR
FOR loop_index=nilai_awal to nilai_akhir Step n statement_1
statement_2
………
statement_n ENDFOR
Contoh Kasus :
Buatlah sebuah deret bilangan sebanyak 5 yang menampilkan angka 1, 4, 9, 14, 25
Definisi Masalah
Input : jumlah bilangan
Output : 5 deret bilangan akar kuadrat
Proses : Jika i <= jumlah bilangan lakukan pengulangan berikut
cetak a a = sqr(a)
Outline Solusi
Input Proses Output
Baca n For i = 1 to n Cetak a a= sqr(a) EndFor Cetak a
3. Counted Loop
Program Bilangan_Kuadrat
{Menghasilkan bilangan kuadrat sesuai dengan data yang diinput}
Deklarasi integer a integer i integer n Deskripsi Baca n For i = 1 to n Cetak a a= sqr(i) EndFor END
3. Counted Loop
Desk Checking Data Masukan
Hasil yang diharapkan 1 4 9 16 25
Data
n 5
Tabel Desk Checking
i n i<=n a=sqr(i) Cetak a i=i+1
1 5 Y 2 2 2 2 5 Y 4 4 3 3 5 Y 6 6 4 4 5 Y 8 8 5 5 5 Y 10 10 6 6 5 N - - -
3. Counted Loop
NESTED REPETION
Nested Repetion terjadi, jika di dalam pengulangan terdapat statement pengulangan yang lain.
Format Nested DO WHILE
DO WHILE kondisi k1 bernilai true
DO WHILE kondis k2 bernilai true statement_1 statement_2 ……… statement_n2 ENDDO statement_n1 ENDDO
CONTOH NESTED REPETION
Buatlah pseudocode untuk menampilkan output seperti berikut : 1 1 1
2 2 2 3 3 3
Jawaban :
Definisi Masalah
Input : jumlah baris dan jumlah kolom
Output : menampilkan angka sesuai baris dan kolom Proses : DO WHILE b <= 3 DO WHILE k <= 3 cetak k k=k+ 1 Enddo cetak b=b+1 Enddo
Outline Solusi
Input Proses Output
Baca b, k DO WHILE b <= 3 DO WHILE k <= 3 cetak k k=k+ 1 Enddo Cetak b=b+1 Enddo Cetak k
CONTOH NESTED REPETITION
(lanjutan)
Tabel Desk Checking b k b<=3 k<=3 Cetak b K=k+1 B=b+1 1 1 Y Y 1 2 2 Y 1 3 3 Y 1 4 N - - 2 2 1 Y Y 2 2 Y 2 3 Y 2 4 N - - 3
CONTOH NESTED REPETION (lanjutan)
LATIHAN 6
1 = 1 1 + 2 = 3 1 + 2 + 3 = 6 1 + 2 + 3 + 4 = 10 1 + 2 + 3 + 4 + 5 = 15 1 = 1 1 * 3 = 3 1 * 3 * 5 = 15 1 * 3 * 5 * 7 = 105 1 * 3 * 5 * 7 * 9 = 945LATIHAN 6
• 10 + 8 + 6 + 4 + 2 = 30 10 + 8 + 6 + 4 = 28 10 + 8 + 6 = 24 10 + 8 = 18 10 = 10 --- + 110TUGAS 4
Buatlah pseudocode, flowchart dan program untuk membuat tampilan berikut :
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 6. Bagi mahasiswa yang tidak mengumpulkan tugas maka tidak mendapat nilai tugas 4 (tidak ada sistem susulan).
PERTEMUAN 6
MODULARISASI &
KOMUNIKASI ANTAR
1. Konsep Pemrograman Modular
2. Komunikasi antar modul
3. Kohesi
4. Kopling
2
MODULARISASI
Modularisasi digunakan bila ada suatu permasalahan yang kompleks, sehingga langkah pertama adalah mengidentifikasikan tugas utama, setelah itu baru di bagi kedalam tugas yang lebih rinci.
Proses ini disebut juga dengan Top Down Design
PEMROGRAMAN MODULAR
Memecahkan algoritma ke dalam algoritma yang lebih kecil/modul.
Modul yang dibentuk mempunyai kesatuan tugas/fungsi maupun kesatuan proses/prosedur.
Setiap modul harus mempunyai single entry dan single exit secara beruntun dari atas ke bawah atau dari awal ke akhir modul.
PEMROGRAMAN MODULAR
(lanjutan)
Enam langkah dalam modular:
1. Definisi masalah: klasifikasikan dalam input, proses dan output
2. Kelompokkan aktivitas ke dalam modul. Definisikan kegiatan dari modul-modul yang ada
3. Buat bagan susun untuk menjelaskan hirarki dan hubungan antar modul
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: mencek kebenaran algoritma
JANGKAUAN DATA
Global Data adalah variabel yang dikenal diseluruh program tersebut, dan dapat diakses dari setiap modul di program tersebut.
Local Data adalah variabel yang didefinisikan disebuah modul. Variabel ini hanya dikenal di modul dimana variabel tersebut didefinisikan.
SIDE EFFECT
Side effect adalah sebuah bentuk komunikasi antar modul dengan bagian lain dalam program.
Global Data (Data Global)
Perubahan nilai global data berdampak terhadap nilai data tersebut di semua modul.
Local Data (Data Lokal)
Perubahan nilai local data hanya berdampak terhadap nilai data pada modul secara lokal.
CONTOH PEMROGRAMAN
MODULAR
Program Hitung_luasPP {menentukan luas persegi panjang berdasarkan data yang diinput}
Deklarasi
integer p, l {global data} Deskripsi Baca p Baca L Hitung luaspp(p,l) END Sub luaspp(integer pj, integer lb)
integer luas {local data} luas = pj * lb
Cetak luas EndSub
PARAMETER
Parameter Data
Parameter Status flag/boolean
Dalam merancang modul sebaiknya lebih
banyak menggunakan parameter data
Hindari menggunakan parameter status
sebanyak mungkin
PARAMETER PASSING
Menyampaikan data dari modul pemanggil ke modul yang dipanggil (subordinate).
Menyampaikan informasi dari subordinate ke modul pemanggil.
Informasi/data yang dikirim atau diterima di passing 2 arah dari modul pemanggil ke subordinate maupun sebaliknya.
KOMUNIKASI ANTAR MODUL
Parameter Aktual
Parameter yang disertakan pada saat prosedur dipanggil untuk dilaksanakan.
Contoh : tukar (a,b); //a dan b adalah parameter aktual
Parameter Formal
Parameter yang dituliskan pada definisi suatu prosedur atau fungsi.
KOMUNIKASI ANTAR MODUL (lanjutan)
Pemanggilan Dengan Nilai (Call By Value)
pemanggilan dengan nilai, nilai dari parameter aktual akan ditulis ke parameter formal. Dengan cara ini nilai parameter aktual tidak bisa berubah, walaupun nilai parameter formal berubah.
Pemanggilan Dengan Acuan
Pemanggilan dengan reference merupakan upaya untuk melewatkan alamat dari suatu variabel kedalam fungsi. Cara ini dapat dipakai untuk mengubah isi suatu variabel diluar fungsi dengan melaksanakan pengubahan dilakukan didalam fungsi.
CONTOH KASUS MODULARISASI
Susunlah algoritma untuk mengurutkan
beberapa bilangan dengan urutan menaik
(ascending) dan tampilkan bilangan hasil
sort tersebut
CONTOH KASUS MODULARISASI
(lanjutan)
Input Proses Output
byk_data baca data_1, data_2, ...data_n data_1 data_1 sort data bilangan tersebut data_2 data_2 cetak hasil sort data_n data_n
A. Definisi Masalah
Input : banyaknya data, bilangan yang akan diurutkan
Output : Bilangan yang terurut
Proses : baca data_1, data_2…data_n sort data bilangan tersebut A. Outline Solusi
SUB SORTING_DATA
FOR I = 1 TO N
FOR J = N TO J>=I STEP -1
IF DATA[J] < DATA[J-1] THEN TUKAR_DATA(J,J-1) ENDIF
END FOR END FOR ENDSUB
SUB TUKAR_DATA(int a, int b)
INT TEMP TEMP = DATA[B]; DATA[B] = DATA[A]; DATA[A] = TEMP ENDSUB SUB INPUT_DATA FOR I = 1 TO N BACA DATA[I] END FOR ENDSUB SUB CETAK_DATA FOR I = 1 TO N BACA DATA[I] END FOR ENDSUB PROGRAM SORTING MAIN_SORTING INT N, J, DATA[10] BACA N INPUT_DATA SORTING_DATA CETAK_DATA END 16 HASIL MODULARISASI
KOHESI & KOPLING
Cohesion dan Coupling merupakan konsep
dasar dalam perancangan dan rekayasa perangkat lunak.
Membagi software/perangkat lunak menjadi modul-modul yang kecil bukan sekedar memisahkan kumpulan kode dari kumpulan kode lainnya. Tetapi memastikan bahwa modul yang dirancang menganut prinsip "Loose
KOHESI
Kohesi adalah keeratan hubungan elemen-elemen di dalam suatu modul.
Macam-macam Kohesi – Functional baik/kuat – Sequential – Communicational – Procedural – Temporal – Logical – Coincidental Jelek/lemah
KOHESI (lanjutan)
Perubahan pada modul dengan tingkat kohesi
tinggi tidak terlalu membawa dampak perubahan terhadap modul lain. Sehingga lebih mudah
dalam pemrograman, pengujian dan perawatan
Modul dengan tingkat kohesi tinggi, lebih mudah
dipahami dan didokumentasi
Pada modul dengan tingkat kohesi tinggi,
informasi lebih mudah disembunyikan, karena
KOHESI FUNCTIONAL
Mempunyai satu tugas
Menghasilkan satu hasil/satu parameter output Bisa satu atau lebih parameter input
KOHESI SEQUENTIAL
Mempunyai pekerjaan yang beruntun Kegiatan yang dilakukan lebih dari satu
Hasil dari kegiatan sebelumnya menjadi masukan bagi kegiatan selanjutnya
KOHESI KOMUNIKASIONAL
Kegiatan lebih dari satu
Menggunakan data yang sama Dapat dijadikan Functional
Contoh: Sub Proses_perhitungan C = A + B D = A – 1 E = A * B F = A / B G = A mod B EndSub
KOHESI PROCEDURAL
Satu kegiatan dengan kegiatan lain tidak berhubungan Hubungan antara elemen yang satu dengan yang lainnya karena urutan statement
Dapat dipecahkan menjadi Functional Contoh:
Sub Baca_record_mhs_dan_total_usia_mhs set no_record to 0
set total_usia to 0 baca record_mhs DO WHILE not EOF
total_usia = usia + total_usia no_record = no_record + 1 ENDDO
print no_record, total_usia EndSub
KOHESI TEMPORAL
Elemen-elemen terlibat dalam berbagai kegiatan yang mempunyai hubungan dalam waktu
Urutan tidak penting Contoh:
Sub Initialisasi
buka file transaksi total_transaksi = 0 total_pen = 0 baris = 30 no = 0 hal = 0 EndSub
KOHESI LOGICAL
ELemen-elemen melakukan kegiatan dengan kategori yang sama Parameter masukan menentukan kegiatan yang dilaksanakan
Tidak semua kegiatan dikerjakan Contoh:
Read_all_files(file_code) CASE if file_code
1 : read customer_transaction record IF not EOF THEN
increment cust_trans_count 2 : read customer_master record IF not EOF THEN
increment cust_master_count 3 : read product_master record
IF not EOF THEN
increment product_master_count ENDIF
ENDCASE END
KOHESI KOINSIDENTAL
• Elemen-elemen tidak mempunyai hubungan • Contoh:
Sub File_Processing
Open employee updates file read employee record
print_page heading
open employee master file set page_count to one
set error_flag to false EndSub
KOPLING
Kopling adalah keeratan hubungan antar modul. Tingkat saling ketergantungan di antara dua modul.
Faktor yang mempengaruhi kopling: 1. Jumlah data yang disalurkan
2. Jumlah kontrol data yang disalurkan
3. Jumlah elemen data global yang digunakan bersama-sama oleh beberapa modul
JENIS-JENIS KOPLING
Data baik/lemah Stamp Kontrol External Common jelek/kuat Keterangan:Makin baik kopling, makin rendah ketergantungan suatu modul terhadap modul lain
Modul dengan kopling yang baik adalah modul independence
KOPLING DATA
• Komunikasi diantara modul menggunakan
data. Diinginkan jumlah data minimal
• Parameter data yang disalurkan semakin
sedikit semakin baik
CONTOH KOPLING DATA
A. Process_record_pelanggan …
…
hitung_pajak_penjualan (total_harga, pajak_penjualan) …
… END
B. Hitung_pajak_penjualan (long total, pajak) IF total> 5000 THEN
pajak = total * 0.25
Else If total > 4000 THEN pajak = total * 0.2 Else
pajak = total * 0.15 ENDIF
KOPLING STAMP
Dua modul melakukan pass struktur data non global yang sama
Struktur data: record, array
Timbul bahaya bila modul memeriksa struktur data tetapi hanya menggunakan sebagian
KOPLING KONTROL
• Dua modul melakukan passing parameter menggunakan data kontrol (flag/switch)
KOPLING EXTERNAL
Dua modul atau lebih menggunakan data global yang sama
Tidak ada parameter yang digunakan dari modul pemanggil ke subordinate dan sebaliknya
Global Data Elementer Variabel
KOPLING COMMON
Dua modul atau lebih menggunakan struktur data global yang sama
Struktur data global
LATIHAN 5
Buatlah pseudocode, plowchart dan program untuk menampilkan menu untuk menghitung luas bangun ruang seperti : persegi panjang, segitiga dan bujur sangkar
TUGAS 5
Buatlah program lengkap dengan pseudocode dan flowchart untuk menampilkan
Bilangan fibonancii Bilangan faktorial
Angka bilangan bulat dalam bentuk kalimat, contoh : 32,768 ditampilkan Tiga Puluh Dua Ribu Tujuh Ratus Enam Puluh Delapan Rupiah.
TUGAS 5 (lanjutan)
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 9. Bagi mahasiswa yang tidak mengumpulkan tugas maka tidak mendapat nilai tugas 5 (tidak ada sistem susulan).
PERTEMUAN 1
KONSEP PERANCANGAN
PROGRAM
POKOK BAHASAN
1. Pendahuluan
2. Permasalahan Terkait Perangkat Lunak
(Program)
3. Program dan Faktor Kualitas Program
4. Software Development Life Cycle
5. Fakta Dalam Pembangunan Program
6. Metodologi Perancangan Program
7. Teknik Pemrograman
8. Paradigma Bahasa Pemrograman
9. Kriteria Bahasa Pemrograman
PENDAHULUAN
Kebutuhan informasi menjadi unsur utama dalam bisnis sehingga mendorong pertumbuhan industri software.
Nilai industri software di Indonesia sampai akhir tahun 2013 antara Rp 3.5 –5 Trilyun dengan nilai pertumbuhan 18-20% per tahun (Pratama, 2013).
Produk perangkat lunak dikembangkan (developed) atau direkayasa (engineered) sesuai dengan kebutuhan pemakai akhir (end user).
PERMASALAHAN TERKAIT
APA PROGRAM ?
Kumpulan instruksi / perintah yang
dirangkaian sehingga membentuk
suatu proses untuk mengolah data.
FAKTOR KUALITAS PROGRAM
1. Correctness : besarnya program dapat memuaskan spesifikasi dan objektivitas dari misi pelanggan.
2. Reliability : besarnya program dapat diharapkan memenuhi fungsi-fungsi yang dikehendaki.
3. Efficiency : jumlah sumber-sumber dan kode yang dibutuhkan program untuk menjalankan fungsi-fungsinya.
4. Integrity : besarnya pengontrolan pengaksesan oleh seorang yang tidak mempunyai otorisasi terhadap program dan data.
5. Usability : usaha yang dibutuhkan untuk mempelajari, mengoperasikan, menyiapkan input & menginterpretasikan output program .
FAKTOR KUALITAS PROGRAM
(lanjutan)
6. Maintability : usaha yang dibutuhkan untuk menempatkan & menetapkan kesalahan pada program. 7. Flexibility : usaha yang dibutuhkan untuk memodifikasi
program yang dibutuhkan.
8. Testability : usaha yang dibutuhkan untuk menguji program untuk menjamin program sesuai yang diharapkan.
9. Portability : usaha yang dibutuhkan untuk mnetransfer program dari lingkungan ke lingkungan lain.
10. Reusability : besarnya program dapat digunakan oleh aplikasi lain.
SOFTWARE DEVELOPMENT
LIFE CYCLE (SDLC)
SDLC adalah serangkaian aktivitas yang dilaksanakan oleh profesional dan pemakai sistem informasi untuk mengembangkan dan mengimplementasikan software (program).
Aktivitas atau proses standar yang digunakan untuk membangun program, yaitu :
• Analisa kebutuhan (spesifikasi) • Desain
• Coding • Pengujian
FAKTA DALAM PEMBANGUNAN
PROGRAM
METODOLOGI PERANCANGAN
PROGRAM
Prinsip dasar dalam pembangunan program berdasarkan input data, proses dan output. Beberapa pendekatan perancangan program :
1. Procedure-Driven 2. Event-Driven
Procedure-Driven
untuk
perancangan
program berdasarkan pada apa yang akan
dilakukan program (proses atau fungsi).
Strateginya
adalah
dengan
memecahkan setiap fungsi menjadi lebih
kecil dan lebih spesifik.
Contoh :
Program untuk persegi panjang dibagi
menjadi fungsi : hitung keliling dan hitung
luas persegi panjang
Event-Driven untuk perancangan program berdasarkan pada kejadian atau interaksi dari luar dapat menyebabkan perubahan dari satu kondisi ke kondisi lain.
Keadaan awal dari sebuah program
mengidentifikasikan seluruh pemicu yang mewakili kejadian untuk kondisi yang akan dihasilkan.
Contoh : apabila tombol mulai pada program stopwatch di klik maka program akan menghitung waktu yang berjalan sampai tombol stop di klik.
Data-Driven untuk perancangan program
berdasarkan struktur data.
Dimulai
dengan
analisis
data
dan
hubungan antara data, untuk menentukan
struktur data dasar. Setelah struktur data
telah
ditetapkan,
output
data
yang
diperlukan
diperiksa
dalam
rangka
menentukan proses apa yang diperlukan
untuk mengkonversi data input ke output.
Untuk membuat program menghitung bonus karyawan. Besar bonus masing-masing karyawan tergantung gaji pokok dan jenis tanggung-jawabnya.
Data Input : Data Profil Karyawan (seperti : nik, nama, jabatan, gaji pokok)
Data Output : Bonus karyawan Proses :
Ambil tanggung_jawab dari profil_karyawan If tanggung_jawab = “Sales manager”
Then bonus = gaji_pokok * 0.10 Else
If tanggung_jawab = “Senior salesman” Then bonus = gaji_pokok * 0.08 Else … dan seterusnya …
BELAJAR PEMROGRAMAN ?
Pemrograman adalah proses menulis,
menguji dan memperbaiki (debug), dan
memelihara
kode
yang
membangun
sebuah program komputer.
Belajar
pemrograman
adalah
belajar
tentang metodologi pemecahan masalah
kemudian menuangkannya dalam suatu
notasi yang mudah dibaca dan dipahami.
TEKNIK PEMROGRAMAN
Permasalahan
bisnis
yang
semakin
kompleks dan rumit sedangkan waktu
yang diberikan untuk pengembangan
program semakin cepat.
Dibutuhkan teknik pemrograman untuk
mengembangkan program yang kompleks
dan rumit dalam waktu yang cepat.
TEKNIK PEMROGRAMAN
(lanjutan)
1. Pemrograman Tidak Terstruktur
2. Pemrograman Terstruktur
3. Pemrograman Prosedural
4. Pemrograman Modular
1. PEMROGRAMAN TIDAK
TERSTRUKTUR
Pemrograman tidak terstruktur adalah suatu teknik pemrograman dimana penulisan instruksi tidak teratur dan sistematis sehingga sulit untuk dipahami.
Contoh : Penggunaan perintah GOTO yang banyak dalam program.
2. PEMROGRAMAN TERSTRUKTUR
Pemrograman terstruktur adalah suatu teknik pemrograman dimana penulisan instruksi secara sistematis, logis dan tersusun berdasarkan algoritma yang sederhana dan mudah dipahami.
Prinsip pada pemrograman terstruktur jika suatu proses sudah sampai pada titik tertentu, maka proses selanjutnya tidak bisa melakukan proses pada baris sebelumnya.
3. PEMROGRAMAN PROSEDURAL
Pemrograman prosedural adalah suatu teknik pemrograman dimana penulisan instruksi yang sama dibuat dalam sub program tersendiri sehingga pembuatan program lebih cepat dan memudahkan perbaikan apabila terjadi kesalahan.
4. PEMROGRAMAN MODULAR
Pemrograman modular adalah suatu teknik pemrograman dimana prosedur dari fungsi umum dikelompokkan dalam modul-modul dan setiap modul menunjukkan fungsi dan tugas tunggal.
5.
PEMROGRAMAN
BERORIENTASI
OBJEK
Pemrograman berbasis obyek (OOP) mendasarkan pada konsep objek dan interaksinya.
Objek berasal dari tipe data abstrak.
Objek dapat menerima pesan (message), mengolah data, dan mengirimkan pesan ke object lain
membentuk interaksi antar object.
Objek bersifat independen: tiap object dapat dipandang sebagai sebuah entitas mandiri yang memiliki peran atau tanggung jawab tertentu.
5. PEMROGRAMAN BERORIENTASI
OBJEK (lanjutan)
BELAJAR BAHASA PEMROGRAMAN ?
Bahasa pemrograman merupakan suatu himpunan dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Belajar bahasa pemrograman adalah belajar memakai suatu bahasa pemrograman sesuai dengan aturan tata bahasanya.TIGA FAKTOR PENTING DALAM
BAHASA PEMROGRAMAN
1. Sintaks
2. Semantik
SINTAKS
Sintaks adalah aturan penulisan suatu bahasa pemograman (tata bahasanya).
Contoh :
#include<file-include> main()
{ pernyataan; }
Apabila terjadi kesalahan dalam penulisan sintaks maka akan terjadi error pada saat kompilasi.
SEMANTIK
Semantik adalah arti atau maksud yang terkandung didalam statement tersebut.
Contoh :
\n; arti semantiknya baris baru.
Printf(); arti semantiknya mencetak string ke layar.
Getch(); arti semantiknya membaca sebuah karakter.
KEBENARAN LOGIKA
Kebenaran logika adalah berhubungan dengan benar tidaknya urutan statement.
Contoh : main() {int bil=1; while(bil<=5) printf(" %d ",bil); getch();}
Output dari program di atas terjadi perulangan terus menerus yang tidak berakhir.
JENIS-JENIS BAHASA
PEMROGRAMAN
1. Bahasa Tingkat Rendah
Dirancang agar setiap instruksi langsung dikerjakan oleh komputer tanpa translator.
Contoh : Assembler 2. Bahasa Tingkat Tinggi
Bahasa Pemrograman yang dalam penulisan pernyataannya mudah dipahami secara langsung.
Perlu diterjamahkan oleh translator bahasa
Contoh : Algol, Fortran, Pascal, Visual Basic, Oracle, dll.
PARADIGMA BAHASA
PEMROGRAMAN
.
KRITERIA BAHASA
PEMROGRAMAN
1. Clarity, simplicity dan unity
Kemudahan, kesederhanaan dan kesatuan merupakan suatu kombinasi yang membantu programer mengembangkan suatu algoritma. 2. Orthogonality
Merupakan suatu atribut yang dapat dikombinasikan dengan beragam fitur bahasa pemrograman sehingga setiap kombinasinya mempunyai arti dan dapat digunakan.
.
KRITERIA BAHASA
PEMROGRAMAN (lanjutan)
3. Kewajaran untuk aplikasi
Bahasa pemrograman harus mempunyai struktur data, operasi-operasi, struktur kontrol dan sintaks yang tepat untuk memecahkan suatu masalah.
4. Mendukung Abstraksi
Abstraksi merupakan suatu hal yang substansial bagi programer untuk membuat suatu solusi dari masalah yang dihadapi.
.
KRITERIA BAHASA PEMROGRAMAN
(lanjutan)
5. Kemudahan untuk verifikasi program
Dengan verifikasi data yang mudah, maka suatu program akan dengan mudah dibangun dan dikembangkan.
6. Lingkungan pemrograman
Lingkungan pemrograman dapat berarti editor yang digunakan, dokumentasi yang baik, fasilitas debugging, user interface yang baik ataupun tools lain yang dapat digunakan untuk memudahkan pekerjaan programer.
.
KRITERIA BAHASA PEMROGRAMAN
(lanjutan)
7. Portabilitas program
Kemudahan program untuk dipakai di berbagai jenis komputer.
8. Biaya penggunaan
Biaya eksekusi program Biaya kompilasi program
Biaya penciptaan, testing dan penggunaan program
Biaya pemeliharaan program .
DISKUSI
1. Apa penyebab terjadinya permasalahan
dalam perangkat lunak (program) yang
dihasilkan.
2. Dalam
mempelajari
bahasa
pemrograman apa yang pertama kali
harus
dipelajari
sehingga
dapat
melakukan pemrograman ?
PERTEMUAN 2
ALGORITMA &
PEMROGRAMAN
POKOK BAHASAN
1. Pendahuluan
2. Tahapan Pembangunan Program
3. Pengenalan Algoritma
4. Cara Menyajikan Algoritma
5. Data Program
PENDAHULUAN
Perancangan program merupakan pengembangan solusi terhadap identifikasi masalah dan menghasilkan serangkaian instruksi yang membangun sebuah program komputer untuk menghasilkan output.
Sebuah program harus dirancang secara sistematis dan benar sebelumnya memulai coding. Perancangan program dihasilkan dalam pembangunan algoritma.
PERANAN ALGORITMA DALAM PROGRAM ALGORITMA BAHASA PEMROGRAMAN KOMPUTER Kompilasi
Interpretasi oleh CPU untuk Menjalankan operasi pada mesin komputer sesuai dengan intruksi bahasa pemrograman.
Program komputer adalah perwujudan atau implementasi dari algoritma yang di tulis dalam bahasa pemrograman.
APAKAH ALGORITMA ?
Algoritma berisi langkah-langkah yang dibutuhkan untuk menyelesaikan sebuah tugas. Sebuah algoritma harus:
– Memiliki masukkan (input)
– Menghasilkan keluaran (output) – Terdefinisi jelas (definiteness)
– Memiliki kondisi akhir (finiteness)
– Memberi solusi yang diharapkan (effectiveness)
– Berlaku untuk setiap himpunan input sesuai dengan masalah yang diberikan (generality)
CONTOH ALGORITMA
Program Hitung_Kembali
{menghitung uang kembali apabila input data tersebut diberikan}
Deklarasi
long sisa, uang_bayar, total_bayar Deskripsi
Baca total_bayar
Hitung sisa = uang_bayar - total_bayar Cetak sisa
CONTOH ALGORITMA YANG TIDAK
BAIK
Program Cetak_Berulang {Mencetak kata sebanyak i } Deklarasi
integer i Deskripsi i = 0
While (i <= 5)
cetak ”Bina Sarana Informatika” END
CARA UNTUK MENYAJIKAN
ALGORITMA
1. Pseudocode
2. Flowchart
1. PSEUDOCODE
Pseudocode merupakan salah satu cara untuk menuliskan algoritma
Karakteristik Pseudocode:
– Statement / Perintah di tulis dalam bahasa Inggris / Indonesia sederhana.
– Setiap perintah di tulis dalam baris terpisah
– Keyword digunakan untuk menjelaskan control structure tertentu.
– Setiap set/bagian instruksi memiliki awal dan akhir – Pengelompokkan statement bisa membentuk satu
STRUKTUR PSEUDOCODE
Algoritma terdiri dari tiga bagian yaitu :
Judul (Header) : mendefinisikan nama dengan menentukan apakah teks tersebut adalah program, prosedur, fungsi.
Deklarasi : mendefinisikan nama variabel, nama konstanta, nama prosedur, nama fungsi yang akan digunakan dalam algoritma.
Deskripsi : mendefinisikan langkah-langkah penyelesaian masalah mulai dari input, proses dan ouput.
Pada setiap bagian tersebut apabila akan dituliskan komentar mengenai setiap bagian tersebut dituliskan diantara tanda kurung kurawal
CONTOH PSEUDOCODE
Program Luas_Lingkaran
{menghitung luas sebuah lingkaran apabila jari-jari lingkaran tersebut diberikan}
Deklarasi
inisialisasi konstanta phi = 3.14 inisialisasi r, luas_lingkaran
Deskripsi
Baca data r
luas_lingkaran = phi * r * r cetak luas_lingkaran
2. FLOWCHART
Flowchart adalah suatu alat yang menunjukkan langkah-langkah yang harus dilaksanakan dalam menyelesaikan suatu permasalahan untuk komputasi dengan cara mengekspresikan ke dalam serangkaian simbol-simbol grafis.
SIMBOL-SIMBOL FLOWCHART
PROGRAM
Simbol Keterangan
TERMINAL
Digunakan untuk menggunakan awal dan akhir dari suatu kegiatan.
DECISION
Digunakan untuk menggambarkan proses pengujian suatu kondisi yang ada.
PREPARATION
Digunakan untuk menggambarkan persiapan harga awal, dari proses yang akan dilakukan.
FLOW LINE
Digunakan untuk menggambarkan hubungan proses dari satu proses ke proses lainnya.
SIMBOL-SIMBOL FLOWCHART
PROGRAM
Simbol Keterangan
INPUT/OUTPUT
Digunakan untuk menggambarkan proses memasukan data yang berupa pembacaan data dan sekaligus proses keluaran yang berupa pencetakan data.
SUBROUTINE
Digunakan untuk menggambarkan proses pemanggilan sub program dari main program (recursivitas).
CONNECTOR
Digunakan untuk menghubungkan alur proses ke dalam satu halaman atau halaman yang sama.
OFF-PAGE CONNECTOR
Digunakan untuk menghubungkan alur proses dalam halaman yang berbeda atau ke halaman berikutnya.
DATA PROGRAM
• Program ditulis untuk memproses data, dibutuhkan pemahaman yang baik terhadap sifat dan struktur dari data yang sedang diproses.
• Data dalam program mungkin dapat berupa variabel tunggal (seperti : integer, karakter), atau kelompok (seperti : array, file)
Variabel & Konstanta
Variabel adalah nama yang diberikan kepada kumpulan sel memori untuk menyimpan item data tertentu yang nilainya dapat berubah pada program dieksekusi.
Contoh : namamhs, tgl_lahir, alamat1, dll.
Konstanta adalah item data dengan nama dan nilai yang tetap sama selama program di eksekusi.
ELEMEN-ELEMEN PROGRAM
A. Aturan leksikal
B. Tipe Data
C. Expression
D. Statement
1. Token
Token (Kata) yaitu elemen terkecil pada bahasa
pemrograman yang memiliki arti penting bagi compiler.
Yang termasuk token antara lain: identifier,
keywords(reserved words), operator, dan
sebagainya.
Token yang satu dengan yang lain dipisahkan dengan satu atau lebih spasi, tabulasi, baris baru, atau komentar.
2. Komentar
Digunakan untuk memberikan suatu keterangan yang akan menjelaskan isi dari program secara singkat.
Komentar hanya sebuah tulisan pada program dan tidak akan diproses oleh komputer.
Bertindak sebagai dokumentasi.
Notasi komentar pada setiap bahasa pemrograman berbeda-beda.
Contoh :
− {komentar pada pascal} − //komentar pada c++
3. IDENTIFIER
Identifier adalah token yang merepresentasikan nama sesuatu seperti : variabel/konstanta, field/atribut, prosedur/fungsi, dan lain-lain.
Aturan pemberian nama identifier:
a. Karakter pertama harus berupa huruf.
b. Karakter kedua dan selanjutnya dapat berupa huruf/angka/underscore.
c. Tidak boleh menggunakan karakter simbol (@ # $ % & *, dll) kecuali underscore.
d. Tidak boleh menggunakan kata kunci (keywords/ reserved words).
3. IDENTIFIER (lanjutan)
e. Huruf besar/kecil dianggap berbeda (khusus C++)
f. Tidak boleh ada spasi.
g. Nama identifier sebaiknya disesuaikan dengan kebutuhan atau sesuai objek yang akan diberi nama.
Contoh penamaan identifier yang benar : idcust, tgl_lahir, telp1, dll.
Contoh penamaan identifier yang tidak benar : @kdbrg, double, nama-depan, 3erat_badan, dll.
4. Keywords/Reserved Words
Keywords atau reserved words merupakan
kata-kata yang telah ada/didefinisikan oleh bahasa pemrograman yang bersangkutan.
Kata-kata tersebut telah memiliki definisi yang sudah tetap dan tidak dapat diubah.
Karena telah memiliki definisi tertentu, maka katakata ini tidak dapat digunakan sebagai identifier.
Contoh Keyword : break, switch, continue, repeat, until, function dll
5. OPERATOR
Merupakan simbol-simbol khusus yang digunakan untuk mengoperasikan suatu nilai data (operand).
Operator yang digunakan dalam pemrograman: − Arithmetic operator − Assignment operator − Logical operator − Relational operator − Pointer operator − Bitwise operator
B. TIPE DATA
Tipe data digunakan untuk menentukan jenis nilai yang dapat ditampung oleh suatu variabel.
Pada suatu bahasa pemrograman umumnya telah menyediakan tipe-tipe data yang sederhana (simple) maupun yang terstruktur dan apabila kita membutuhkan tipe data yang belum tersedia, kita dapat mendefinisikan sendiri tipe data baru, yang disebut enumerated type.
B. TIPE DATA (lanjutan)
Tipe data terstruktur yaitu tipe data yang dapat menampung lebih dari satu nilai, sbb:
1. Array adalah tipe data berindeks yang terdiri dari satu atau lebih elemen/komponen yang memiliki tipe data yang sama.
2. Record adalah tipe data yang digunakan untuk merepresentasikan kumpulan (set) elemen/komponen yang memiliki satu jenis atau lebih tipe data. Tiap element disebut juga field atau property atau attribute
C. Expression
Expression (ekspresi) yaitu suatu pernyataan yang menghasilkan suatu nilai.
Expression tersusun dari operator dan operand yang digunakan untuk menghitung atau memberi suatu nilai suatu variable atau identifier.
Expression yang paling sederhana yaitu nama variable. Expression yang lebih kompleks akan melibatkan operator-operator, maupun pemanggilan function atau procedure.
D. Statement
Statement merupakan bagian program yang berisi
perintah yang akan dieksekusi / dijalankan. Karena itu, statement-statement ini menentukan bagaimana jalannya program dan bagaimana suatu nilai variable dimanipulasi/berubah.
Statement dapat dikelompokan menjadi antara lain: 1. Simple Statement
2. Compound Statement
1. Simple Statement
Yang digolongkan ke dalam simple statement (statement sederhana) yaitu statement yang tidak berisi statement lainnya, sebagai berikut :
Assignment Statement yaitu statement yang digunakan untuk memberikan nilai ke suatu variable, contohnya :
a := 10; b := a * 2; c := c * b;
Statement untuk pemanggilan function atau procedure yaitu statement yang memanggil function atau procedure yang telah didefinisikan pada program. Contoh :
Calculate (a,b); Cetak (a,b);
1. Simple Statement (lanjutan)
Jump Statement yaitu statement yang digunakan untuk melompati statement-statement lain. Contoh :
Melompat ke statement tertentu goto Keluar dari iterative statement break
2. Compound Statement
Compound statement (kumpulan statement) adalah
sekumpulan statement yang terdiri dari statement-statement lain, termasuk juga selection statement dan interaction.
Selection statement digunakan untuk melakukan pemilihan
sekumpulan statement (compound statement). Contoh :
a. If ……Then b. Perintah Case
Iteration statement digunakan untuk melakukan perulangan sekumpulan statement (compound statement). Contoh :
a. Do While
b. Repeat …….Until c. For……EndFor
E. Function dan Procedure
• Procedure dan Function disebut juga
subroutine, merupakan blok statement yang dapat dipanggil dari lokasi yang berbeda di dalam program.
• Yang membedakan antara function dan
procedure yaitu: suatu function jika
dijalankan/dipanggil akan mengembalikan suatu nilai.
• Ketika procedure atau function dipanggil, kita dapat melewatkan suatu nilai ke dalam function atau procedure tersebut.
• Nilai yang dilewatkan disebut juga argument atau
TUGAS 1
Buatlah pseudocode & flowchart untuk menghasilkan 1 liter air dengan menggunakan tabung dengan ukuran 3 liter dan 5 liter.
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 3. Bagi mahasiswa yang tidak mengumpulkan tugas maka tidak mendapat nilai tugas 1 (tidak ada sistem susulan).
PERTEMUAN 3
TAHAPAN PEMBANGUNAN
PROGRAM
POKOK BAHASAN
1. Definisi Masalah
2. Outline Solusi
3. Pengembangan outline ke dalam
algoritma
4. Melakukan test terhadap algoritma
5. Pemeriksaan Algoritma
6. Memindahkan Algoritma Ke Dalam
Bahasa Pemrograman
3
DEFINISI MASALAH
Pada tahap ini memerlukan pemahaman terhadap permasalah dengan membaca berulang kali sampai dengan mengerti apa yang dibutuhkan.
Permasalahan dibagi kedalam tiga komponen: – Input / Masukan
– Output / Keluaran – Proses
CONTOH KASUS
Sebuah toko peralatan mandi menjual bak mandi plastik. Banyak customer yang bertanya volume air yang dapat ditampung pada bak mandi tersebut. Oleh karena itu dibutuhkan program untuk menghitung volume air bak mandi sesuai dengan ukuran yang diinput.
Definisi Masalah :
Input : panjang, lebar dan tinggi Output : volume bak mandi
5
OUTLINE SOLUSI
Setelah permasalahan didefinisikan,
permasalahan dapat di bagi ke dalam tugas-tugas atau langkah langkah yang lebih
kecil dan menghasilkan outline solusi Outline solusi awal dapat terdiri dari:
– Proses utama – Subtask utama – Struktur Kontrol
– Variabel dan struktur record – Logic utama (mainline)
OUTLINE SOLUSI
Input Proses Output
Baca p Baca l Baca t
7
PENGEMBANGAN OUTLINE KE
DALAM ALGORITMA
Outline solusi pada langkah kedua
dikembangkan menjadi algoritma yaitu
sebuah set langkah yang menggambarkan
tugas yang akan dikerjakan dan urutan
pengerjaannya.
PENGEMBANGAN OUTLINE KE DALAM ALGORITMA (lanjutan)
Program Hitung_Volume_Bak
{menghitung volume bak mandi apabila input data tersebut diberikan} Deklarasi float p, l, t, volume_bak Deskripsi Baca p Baca l Baca t Hitung volume_bak = p x l x t Cetak volume_bak End
9
MELAKUKAN TEST TERHADAP
ALGORITMA
Tujuan utama dari melakukan test terhadap algoritma adalah adalah untuk menemukan kesalahan utama logik sejak awal, sehingga akan lebih mudah diperbaiki.
Data test diperlukan untuk melakukan test terhadap algoritma ini.
DESK CHECKS VS TEST PLANS
Test Plan fokus pada nilai input dan output yang
dibutuhkan untuk menguji program tanpa memperdulikan kinerja internal. Contoh : Apa output yang benar dari sebuah input ?
Desk Check menekankan pada nilai variabel
dan logika. Contoh : Berapakah nilai variabel x setelah pernyataan; Apa pernyataan berikutnya yang akan dieksekusi ?
TAHAPAN PENGECEKAN
ALGORITMA
1. Pilih data sederhana yang valid. Dua atau tiga data biasanya sudah mencukupi.
2. Tentukan hasil output yang diharapkan untuk setiap set data.
3. Buatlah tabel yang nama variabel yang ada pada algoritma di sebuah kertas
4. Jalankan test satu persatu mengikuti algoritma yang ada, mulai dari perintah / statement pertama sampai dengan selesai
5. Ulangi langkah tersebut menggunakan set data yang lain.
6. Cek apakah hasil dari langkah 5, sesuai dengan hasil yang diharapkan di langkah kedua
PEMERIKSAAN ALGORITMA
Test Plan − Input Data − Output Data 1 Data 2 p 3 2 l 1 1.5 t 2 1 Data 1 Data 2 Volume bak 6 3TABEL DESK CHECK
Data 1 Data 2 Baca p 3 2 Baca l 1 1.5 Baca t 2 1 Cetak volume_bak 6 314
MEMINDAHKAN ALGORITMA KE
DALAM BAHASA PEMROGRAMAN
Setelah ke-empat langkah sebelumnya
dilakukan,
maka
pencodingan
dapat
dimulai dengan menggunakan bahasa
pemrograman yang dipilih.
15
MEMINDAHKAN ALGORITMA KE DALAM
BAHASA PEMROGRAMAN (lanjutan)
//Program Volume Bak include<stdio.h> include<conio.h> include<iostream.h> Main() { float p, l, t, volume_bak; printf(”panjang :”);scanf (”%f”,p); printf(”lebar :”);scanf (”%f”,l); printf(”tinggi :”);scanf (”%f”,t); Volume_bak = p* l * t;
16
MENJALANKAN PROGRAM PADA
KOMPUTER
Setelah pengcodingan, maka program dapat dijalankan pada komputer. Jika program sudah didesain dengan baik, maka akan mengurangi tingkat kesalahan dalam melakukan testing program.
Langkah ini perlu dilakukan beberapa kali, sehingga program yang dijalankan dapat berfungsi dengan benar
17
DOKUMENTASI DAN PEMELIHARAAN
PROGRAM
Dokumentasi melibatkan eksternal dokumentasi (hierarchy chart, algoritma solusi, dan hasil data test) dan internal dokumentasi (coding program).
Pemeliharaan program meliputi perubahan yang dialami oleh program (perbaikan ataupun penambahan modul, dll)
DISKUSI
1. Mengapa dibutuhkan tahapan dalam
perancangan program ?
2. Apa
manfaat
Desk
Checking
Algoritma/pemeriksaan algoritma ?
LATIHAN 1
Sebuah sebidang tanah dengan ukuran 22 m x 15 m dibangun sebidang rumah dengan ukuran 8 m x 10 m. Sisa tanah yang tidak dibangun rumah ditumbuhi rumput. Pemilik rumah berencana memanggil tukang potong rumput untuk merapikan rumput di halaman rumahnya. Tarif per jam tukang rumput sebesar 100 ribu/jam. Berapa tarif yang harus dibayar memotong rumput halaman rumah, dengan rata-rata 2 m2 / menit.
LATIHAN 2
Seorang kontraktor sedang membangun sebuah rumah dengan ukuran 8 m x 12 m. Rumah tersebut akan dipasangkan ubin dengan ukuran 30 x 30. Setiap kardus memiliki ukuran 1 m2. Berapa kardus ubin yang harus dibeli ? Buatlah pseudocode & flowchart serta program hitung kebutuhan ubin.
TUGAS 2
Buatlah pseudocode, flowchart dan program untuk :
1. Menentukan apakah suatu bilangan merupakan bilangan prima atau bukan ?
2. Program untuk menentukan apakah tahun yang diinputkan termasuk tahun kabisat/bukan.
Catatan Tugas :
Tugas dibuat pada kertas folio bergaris dengan menggunakan bolpoint.
Tugas dikumpulkan pada saat pertemuan 4. Bagi mahasiswa yang tidak mengumpulkan tugas maka tidak mendapat nilai tugas 2 (tidak ada sistem susulan).
PENGEMBANGAN
PSEUDOCODE STRUKTUR
KONTROL PEMILIHAN
POKOK BAHASAN
1. Definisi Struktur Kontrol Pemilihan
2. Pseudocode Struktur Kontrol Pemilihan
3. Desk Checking Struktur Kontrol
Pemilihan
STRUKTUR KONTROL
PEMILIHAN
Struktur kontrol pemilihan dalam pseudocode digunakan untuk menggambarkan:
Pilihan antara dua atau lebih tindakan, tergantung pada apakah kondisi yang diberikan. Contoh :
IF jumlah orang > 10 THEN pintu dibuka
ELSE dibatalkan karena kurang peminatnya. Kondisi bernilai True atau False
Contoh :
IF member THEN Diskon = 20% * Harga
Kondisi berdasarkan perbandingan 2 item yang dinyatakan dengan salah satu operator relasi berikut :
< lebih kecil dari > lebih besar dari = sama dengan
<= lebih kecil sama dengan >= lebih besar sama dengan <> tidak sama dengan
4
STRUKTUR KONTROL
PEMILIHAN (lanjutan)
Ada beberapa variasi dari struktur kontrol selection yaitu:
1. Simple Selection
2. Combined / Multiple Selection 3. Nested Selection
a. Linear Nested IF Statement b. Non-Linear IF Statement 4. Perintah Case
STRUKTUR KONTROL PEMILIHAN
(lanjutan)
1. SIMPLE SELECTION
Simple selection terjadi jika harus memilih diantara dua alternatif yang ada, tergantung dari hasil kondisi apakah True atau false.
Keyword yang digunakan adalah : IF, THEN, ELSE, dan ENDIF
Simple Selection ada 2 macam – Simple selection bercabang
A. SIMPLE SELECTION BERCABANG
Simple selection bercabang terjadi ketika pilihan dibuat dua jalur alternatif, tergantung pada hasil dari suatu kondisi bernilai benar atau salah
Format Struktur Simple Selection Bercabang IF syarat THEN instruksi1 ELSE instruksi2 ENDIF Contoh IF Saldo > 3000000 THEN bunga = 0.05 * Saldo ELSE bunga = 0.01 * Saldo ENDIF
B. SIMPLE SELECTION TANPA CABANG
Simple selection tanpa cabang digunakan ketika instruksi yang dilakukan hanya ada kondisi benar saja.
Format Struktur Simple Selection Tanpa Cabang IF syarat THEN instruksi Contoh: Diskon = 0 IF Subtotal > 100000 THEN diskon = 0.1 * Subtotal ENDIF
CONTOH KASUS SIMPLE
SELECTION
Buatlah pseudocode & flowchart untuk
menentukan apakah penghasilan per
bulan yang dimasukkan kena pajak
atau
tidak.
(kena
pajak
jika
penghasilan setahun lebih besar sama
dengan Rp. 15.600.000)
JAWABAN KASUS SIMPLE
SELECTION
Input : penghasilan per bulan Output : keterangan
Proses : 1. total_penghasilan = penghasilan x 12 bulan
2. Jika total_penghasilan >= 15600000 maka keterangan kena pajak.
OUTLINE SOLUSI
Input Proses Output
Baca gaji total_penghasilan =
gaji * 12 IF total_penghasilan >=15600000 THEN keterangan=”Kena Pajak” keterangan
PENGEMBANGAN OUTLINE KE DALAM ALGORITMA (lanjutan)
Program Kena_Pajak
{Menentukan kena pajak atau tidak apabila input data tersebut diberikan}
Deklarasi string keterangan long gaji Deskripsi Baca gaji total_penghasilan = gaji * 12 IF total_penghasilan >=15600000 THEN keterangan=”Kena Pajak” ELSE
Keterangan = ”Tidak Kena Pajak” Cetak keterangan
ENDIF END
PEMERIKSAAN ALGORITMA
Test Plan − Input Data − Output Data Data 1 Data 2 Gaji 900,000 3,500,000 Data 1 Data 2TABEL DESK CHECK
Data 1 Data 2
Gaji 900,000 3,500,000
2.
COMBINED SELECTION
Combined Selection terjadi jika kondisi yang harus diperiksa lebih dari satu. Kondisi tersebut dapat dihubungkan dengan menggunakan AND atau OR.
Format Struktur Combined Selection
IF syarat1 operator logika syarat2 THEN instruksi1
Else
instruksi2 ENDIF
Contoh :
IF ormik AND semot THEN ket = ”LULUS”
ELSE
ket = ”GAGAL” ENDIF
3. Nested Selection
Nested selection terjadi, jika di dalam IF terdapat statement IF yang lain.
Ada dua jenis nested selection Linear Nested IF
A. Linear Nested IF
Linear Nested IF terjadi jika satu kondisi di cek untuk beberapa nilai.
Format Struktur Linear Nested IF Statement IF syarat1 THEN
instruksi1
ELSE IF syarat2 THEN instruksi2
ELSE
instruksi3 ENDIF
A. Linear Nested IF (lanjutan)
Contoh Struktur Linear Nested IF Statement IF ukuran = ’s’ THEN
harga = 35000
ELSE IF ukuran = ’m’ THEN harga = 50000
ELSE
harga = 70000 ENDIF
B. Non-Linear Nested IF
Non-Linear Nested IF terjadi jika beberapa kondisi
harus diperiksa sebelum suatu statement
dikerjakan.
Format Struktur Non Linear Nested IF Statement IF syarat1 THEN IF syarat2 THEN instruksi2a ELSE instruksi2b ENDIF ELSE Instruksi 1b ENDIF
B. Non-Linear Nested IF Statement
(lanjutan)
Contoh Struktur Non Linear Nested IF Statement IF a > b THEN IF a > c THEN Cetak a ELSE Cetak c ENDIF ELSE IF b > c THEN Cetak b ELSE Cetak c ENDIF
4.
Perintah Case
Perintah case digunakan
sebagai instruksi
pemilihan dimana aksi
yang akan dilakukan
hanya tergantung pada nilai dari satu macam variabel.
Perintah case
memungkinkan memiliki banyak nilai dan setiap nilainya berkaitan dengan satu macam aksi.
4.
Perintah Case (lanjutan)
Format Struktur Perintah Case pada bahasa C switch (variabel_syarat)
case nilai-1 : aksi-1 case nilai-2 : aksi-2 default : aksi n
Contoh : switch (gol)
case ’A’: terapi =” jus strawbery”; break; case ’B’ : terapi =”jus sirsak”; break; case ’C’ : terapi =”jus wortel ”;break; case ’D’ : terapi =”jus tomat” ;break;
default : terapi =”Terapi untuk golongan tersebut tidak ditemukan”;
LATIHAN 3
Dibaca sebuah bilangan bulat yang mewakili pengukuran suhu air (dalam 0C) pada tekanan atmosfir, harus dituliskan wujud air pada temperatur dan tekanan tersebut.
Ketentuan
Beku jika suhu ≤ 0
Cair jika 0 < suhu ≤ 100 Uap jika suhu > 100
Buatlah pseudocode, flowchart dan program dari masalah di atas.