ALGORITMA PEMROGRAMAN 1A**
(PP-011302:S1-KA)
PERTEMUAN 4
Ahmad Hidayat
TEKNIK PERCABANGAN (BRANCHING TECHNIQUE) Akumulator
Analisa kondisi dan aksi. (Analysis of the condition and action) (IF…THEN, IF..THEN..ELSE, SELECT CASE)
AKUMULATOR Akumulator merupakan tempat penampungan suatu nilai. (Accumulator is a reservoir of value.) Nilai yang masuk akan dijumlahkan dengan nilai yang ada didalamnya.
Akumulator dapat dipakai untuk menentukan nilai total dari penjumlahan bilangan.
TOTALGAJI = TOTALGAJI + GAJI Pada awal proses TOTALGAJI bernilai 0. Pada waktu proses di atas dilaksanakan, besarnya nilai GAJI ditambahkan ke akumulator TOTALGAJI Akumulator dapat di misalkan sebagai kotak sumbangan. Dimana jumlah uang yang berada di dalam, kotak tersebut terus bertambah sesuai dengan uang yang masuk.
ANALISA KONDISI DAN AKSI
(ANALYSIS OF THE CONDITION AND ACTION) Struktur program yang melakukan proses pengujian untuk mengambil suatu keputusan apakah suatu baris atau blok instruksi akan diproses atau tidak. Pengujian kondisi ini dilakukan untuk memilih salah satu dari beberapa alternative yang tersedia. Syarat dalam dunia pemrograman adalah sebuah pernyataan boolean, yang dapat bernilai benar(true) atau salah (false). Terms in the programming world is a boolean statement, which may be true (true) or false (false).
Biasanya sebuah syarat terdiri dari operand-operand dihubungkan dengan operator logika. Yaitu : =,<>,>,<,<=,>=, and(Dan) dan or(atau).
yang
ANALISA KONDISI DAN AKSI
(ANALYSIS OF THE CONDITION AND ACTION) Pada percabangan terdapat istilah KONDISI dan AKSI: Kondisi merupakan syarat, keadaan atau status yang akan mempengaruhi tindakan selanjutnya. (a requirement, condition or status that will affect the next action.)
Aksi merupakan tindakan atau proses yang dilakukan sesuai dengan kondisi yang ada. (is the act or process performed in accordance with existing conditions.)
Persoalan yang memerlukan kondisi : (Issues that require conditions) 1. Relation Test Pemilihan keputusan dari hasil perbandingan nilai
ANALISA KONDISI DAN AKSI Persoalan yang memerlukan kondisi : 2. Question Test Pemilihan keputusan sebagai jawaban atas pertanyaan 3. Sign Test Merupakan simbol untuk memeriksa atau menngecek
sebuah nilai Pemilihan keputusan dari hasil perbandingan nilai
FLOWCHART KONDISI IF
CONTOH Diketahui 2 buah bilangan, A & B. Berikut ini adalah flowchart untuk mencetak bilangan yang terbesar diantara keduanya. (2 pieces known numbers, A & B. The following is a flowchart to scored the largest number between both.)
HUBUNGAN ANTAR KONDISI Kadang-kadang dalam suatu masalah terdapat beberapa kondisi atau persyaratan yang saling menentukan. Hubungan antar kondisi biasanya ada dua hubungan, yaitu hubungan and (dan) dan hubungan OR (atau). Hubungan AND (DAN) Dalam hubungan DAN, jika salah satu kondisi bernilai salah maka akan dijalankan aksi dari alur Tidak atau alur No
HUBUNGAN AND (DAN) Co: Untuk menentukan penerimaan pegawai yang umurnya kurang dari 30 dan hasil test lebih dari 60.
HUBUNGAN OR (ATAU) Dalam hubungan ATAU, jika kedua kondisi bernilai salah maka akan dijalankan aksi dari alur Tidak atau alur No Co: Untuk mendapatkan tujangan pensiun ketentuannya adalah: - Umur sudah lebih dari 60 tahun atau - Masa kerja lebih dari 25 tahun
HUBUNGAN OR (ATAU)
CONTOH Perhatikan flowchart berikut: Berapa hasil X jika : Nilai T = 25, S = 20 Nilai T = 20, S = 60 Nilai T = 15, S = 10
IF..THEN & IF..THEN…ELSE Pemrograman dapat mengatur tindakan yang akan dilakukan jika kondisi bernilai benar ataupun tindakan yang akan dijalankan jika kondisi salah dengan IF...THEN...ELSE. Bentuk umum IF...THEN...ELSE dibagi menjadi 2 kelompok : 1. IF...THEN...ELSE Satu baris 2. IF...THEN...ELSE Banyak baris
IF...THEN...ELSE SATU BARIS Di dalam program jika menjumpai dua kemungkinan atau pilihan pencabangan, dapat menggunakan IF...THEN...ELSE satu baris. Bentuk Umum : IF kondisi THEN { statement1 │nobar1 │GOTO label1 } [ ELSE { statement2 │ nobar2 │ GOTO label2 } ] dengan parameter-parameternya : Kondisi : syarat yang akan ditest statement1,dan statement 2 : statement yang akan dikerjakan nobar1, nobar2 : nomor baris yang dituju label1, label2 : label baris yang dituju Parameter : - kondisi atau syarat yang ditest dinyatakan dengan operator relasi atau operator pembanding (<, <=, =, >=, >, < >). - Nobar1, dan nobar2 menunjukkan label baris yang berupa angka - Label1, dan label2 menunjukkan label baris yang berupa label alphanumeris (diawali dengan huruf).
IF...THEN...ELSE SATU BARIS Bentuk umum diatas bisa dijelaskan sebagai berikut :
Jika kondisi bernilai benar, maka salah satu dari tiga pilihan dibelakang statement THEN akan dikerjakan. Jika kondisi salah, maka salah satu dari tiga pilihan dibelakang statement ELSE akan dikejakan. Jika statement ELSE tidak ditulis maka proses eksekusi langsung akan melompat ke baris dibawah statement IF. Contoh : 1. IF i >= kali THEN 20 2. IF ( i <= 100 ) AND ( i >= 80 ) THEN PRINT i 3. IF ( i >= 100 ) OR ( i <= 80 ) THEN PRINT i 4. IF i >= kali THEN GOTO 20 ELSE kali = kali + 1
BAGAN ALIR IF SATU BARIS Dalam Penulisan statement IF...THEN...ELSE satu baris, semua parameter harus ditulis menjadi satu baris statement
IF...THEN...ELSE BANYAK BARIS Di dalam program jika kita menjumpai lebih dari dua kemungkinan atau lebih pilihan pencabangan, kita bisa menggunakan IF...THEN...ELSE banyak baris. 4 aturan penggunaan blok IF...THEN...ELSE yaitu : 1. Di belakang statement THEN tidak boleh ada statement apapun selain baris komentar. Jika anda menuliskan sesuatu statement, kompiler akan menganggapnya sebagai statement IF...THEN...ELSE satu baris. 2. Kata ELSE, ELSEIF dan END IF hanya boleh diawali dengan nomor baris atau label baris. Jika tidak, maka kata ini harus merupakan kata awal dari baris tersebut. 3. Blok IF harus terletak sebagai statement pertama dalam suatu baris. 4. Blok harus diakhiri dengan END IF.
IF...THEN...ELSE BANYAK BARIS Bentuk Umum : IF kondisi1 THEN Statement1 [ ELSEIF kondisi2 THEN [ statement2 ] ] . . [ ELSE [ statementn ] ] END IF
dengan parameter-parameternya : kondisi1, kondisi2, … : syarat yang harus ditest statement1, statement2, … : blok statement yang akan dikerjakan sesuai dengan kondisi yang dipenuhi.
IF...THEN...ELSE BANYAK BARIS Bentuk umum diatas bisa dijelaskan sebagai berikut :
1. Jika kondisi1 bernilai benar, blok statement1 akan dikerjakan diteruskan ke statement IF. 2. Jika kondisi1 bernilai salah, kompiler akan mentest kondisi2.Jika bernilai benar, maka blok statement2 akan dikerjakan, diteruskan ke statement END IF. Dst
Contoh : CLS PRINT “1. Nasi Soto Ayam” PRINT “2. Nasi Rames” INPUT “Pilihan (1..2) : “, Pil% IF PIL% = 1 THEN PRINT “Nasi Soto Ayam” ELSEIF PIL% = 2 THEN PRINT “Nasi Rames” ELSE PRINT “Pilihan Anda tidak dimengerti” END IF END
BAGAN ALIR BLOK IF...THEN...ELSE
SELECT …CASE Statement SELECT CASE dapat digunakan untuk memilih satu diantara sejumlah alternatif. Perbedaan SELECT CASE dan IF…THEN…ELSE :
SELECT CASE kondisi yang ditest hanya satu, jika memenuhi proses eksekusi akan diteruskan ke bagian tertentu dari suatu program berdasarkan nilai kondisi yang ditest. Jika tidak, akan berlanjut ke kondisi berikutnya. IF…THEN…ELSE banyak baris dapat mentest lebih dari sebuah kondisi yang satu sama lain saling berbeda.
SELECT …CASE Bentuk Umum : SELECT CASE ungkapan CASE nilai1 [ statement1 ] [ CASE nilai2 [ statement2 ] ] . . [ CASE ELSE [ statementn ] ] END SELECT
Contoh : CLS PRINT “1. Nasi Soto Ayam” PRINT “2. Nasi Rames” PRINT “3. Nasi Gudeg” INPUT “Pilihan (1..3) : “, Pil% SELECT CASE Pil% CASE 1 PRINT “Nasi Soto Ayam” CASE 2 PRINT “Nasi Rames” CASE 3 PRINT “Nasi Gudeg” CASE ELSE PRINT “Pilihan Anda tidak dimengerti” END SELECT END
dengan parameter-parameternya : ungkapan : sembarang ungkapan (numeris atau untai) nilai1, nilai2, … : nilai-nilai dari parameter ungkapan statement1, statement2, … : statement-statement yang akan dikerjakan.
BAGAN ALUR (FLOWCHART) SELECT…CASE
LATIHAN 1 Diketahui harga sebuah kemeja adalah 15 000 Jika pembelian kemeja dalam jumlah besar akan mendapat diskon / potongan sebesar 20% dengan ketentuan sbb:
Pembelian yang mendapat diskon adalah pembelian diatas 25 potong. Buat algoritma dan flowchartnya!
LATIHAN 2 2.1 Buat diagram alur untuk menentukan kelulusan seorang mahasiswa. Kelulusan dihitung dari nilai rata-rata 2 mata kuliah. Bila nilai rata-rata lebih dari 60, siswa dinyatakan lulus. Sebaliknya siswa dinyatakan tidak lulus. 2.2 Buat diagaram alur untuk menentukan apakah suatu bilangan terma (Create a flow chart to determine whether a number is numbered with positive, negative or zero!suk bilangan positif, negatif atau nol!)
LATIHAN 3 Untuk mendapatkan kredit pemilikan penghasilan pemohon. Cara penilaian:
mobil,
perlu
dinilai
pendapatan tetap/pokok dihitung penuh, pendapatan tambahan dihitung setengah dan pendapatan keluarga (suami/istri) dihitung sepertiga. Apabila jumlah pendapatan lebih besar atau sama dengan Rp. 1.000.000,- mendapat kredit SEDAN, kurang dari itu tetapi masih lebih besar dari Rp. 500.000,- mendapat kredit MINIBUS, selain itu tidak berhak mendapat kredit.
TERIMAKASIH Sumber: http://rama.staff.gunadarma.ac.id/Downloads/folder/0.3, diakses 17 Sept 2016 http://kartika.staff.gunadarma.ac.id/Downloads/folder/0.5, diakses 17 Sept 2016 http://juwita.staff.gunadarma.ac.id/Downloads/folder/0.4, diakses 17 Sept 2016