Top Banner
Algoritma Pemrograman 1A (FLOWCHART) KULIAH MINGGU 5. Teknik Pengulangan dan Percabangan (Lanjutan)
58

Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Apr 16, 2017

Download

Engineering

Ari Septiawan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Algoritma Pemrograman 1A (FLOWCHART)

KULIAHMINGGU 5. Teknik Pengulangan dan

Percabangan (Lanjutan)

Page 2: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Percabangan IF-THEN

Analisa Kondisi Aksi (Lanjutan) :(1) Kasus Lebih dari 1 Aksi (IF-THEN-ELSE) & CASE

(2) Kasus Lebih dari 1 Kondisi

Page 3: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Percabangan / Pemilihan• Struktur runtunan hanya terdapat pada program sederhana.• Pada umumnya, masalah yang akan diselesaikan memiliki

beberapa alternative pelaksanaan aksi. • Suatu aksi (pernyataan) hanya dilakukan bila persyaratan

atau kondisi tertentu dipenuhi. Kita katakan bahwa masalah dalam Percabangan memiliki beberapa kasus.

• Jadi, dalam memecahkan masalah, kita harus menganalisis kasus-kasus apa saja yang mungkin ada, lalu aksi apa yang dilakukan bila suatu kasusdimasuki.

Page 4: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Kondisi = Ekspresi Boolean (true/false)

• Menganalisis kasus dari suatu masalah adalah menentukan kondisi boolean (bernilai true atau false) untuk setiap kasus dan menentukan aksi yang dilakukan jika kondisi tersebut bernilai true (terpenuhi) dan aksi yang dilakukan jika bernilai false (tidak terpenuhi).

• Kondisi boolean adalah ekspresi boolean yang bernilai true atau false bergantung pada nilai masing-masing operand yang terlibat di dalamnya.

• Ekspresi boolean dibentuk dengan mengkombinasikan operand yang bertipe sama dengan salah satu dari operator relasional =, ≠, <, >, ≤, ≥, dan operator uner not.

Page 5: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Contoh Ekspresi Boolean :• x > y• a ≠ 10• m = n• p ≤ q• a + b > 1• str = ‘itb’• k mod 4 = 0• ketemu = true• not berhenti• (x > 0) and (y < 0)

Page 6: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Aksi = Pernyataan

• Aksi dikerjakan bila kondisi boolean bernilai true (terpenuhi)

• Dapat berupa pernyataan, pengisian nilai (assignment), kalkulasi, baca, tulis, dan sebagainya, bergantung pada masalahnya.

• Penentuan kondisi boolean dan aksi yang dilakukan bergantung pada jumlah kasus yang terdapat pada masalah tersebut : satu kasus (IF-THEN), dua kasus (IF-THEN-ELSE), atau lebih dari dua kasus (IF Bersarang).

Page 7: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Percabangan 1 Kasus (IF-THEN)

• Notasi algoritmik untuk analisis dengan satu kasus adalah dengan menggunakan struktur IF-THEN (jika-maka) :

Aksi sesudah kata then (dapat berupa satu atau lebih aksi) hanya akan dilaksanakan bila kondisi bernilai benar (true). Bila kondisi bernilai salah (false), tidak ada aksi apapun yang dikerjakan.

Page 8: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Contoh Percabangan 1 Kasus IF-THEN

Program IF-THENVar

nilai : Integer ;BeginWrite(‘ Masukkan Nilai Ujian : ');Readln(nilai);If nilai > 60 then

write (‘Anda Lulus’); {Kasus 1}Readln;End.

IF nilai>60

END

Read (nilai)

Write(‘LULUS’)

Page 9: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Latihan

• Buat Program Pascal yang menghitung total pembayaran dimana jika dia pelanggan akan mendapat diskon 10% dari jumlah belanjanya….

IF Pelanggan

TotBayar=JumBelanja – Diskon

Diskon := 10%*

JumBelanja

Read (JumBelanja)Diskon := 0;

Page 10: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Program Toko_IFTHEN;uses crt;Var p : char; jml : longint; diskon, total : real;Beginclrscr; write ('Apakah Pelanggan (y/t) : '); readln(p); write ('Berapa jumlah pembelian : Rp. '); readln(jml); diskon := 0; if (p='y') then diskon := Jml*0.1; total := jml - diskon; writeln ('==============IndoApril=============='); writeln ('Jumlah Pembelanjaan : Rp. ',jml); writeln ('Diskon : ',diskon:0:0); writeln ('-------------------------------------'); writeln ('Total Bayar = Rp. ',total:0:0);readln;end.

Page 11: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Percabangan 2 Kasus (IF-THEN-ELSE)

• Notasi algoritma untuk analisis dengan dua buah kasus adalah dengan menggunakan struktur IF-THEN-ELSE (jika-maka-kalau tidak) :

Aksi1 akan dilaksanakan jika kondisi bernilai benar, tetapi jika kondisi bernilai salah, maka aksi2 yang akan dilaksanakan. Perhatikanlah bahwa “else” menyatakan ingkaran (negation) dari kondisi.

Page 12: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Contoh Percabangan 2 Kasus (IF-THEN-ELSE)

Program IF-THEN-ELSEVar

nilai : Integer ;BeginWrite(‘ Masukkan Nilai Ujian : ');Readln(nilai);If nilai > 60 then write (‘Anda Lulus’); {Kasus 1}Else write (‘Anda Tidak Lulus’); {Kasus 2}

Readln;End.

IF nilai>60

END

Read (nilai)

Write(‘LULUS’)

Write (‘TIDAK LULUS’)

Page 13: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Program Toko_IFTHENELSE;uses crt;Var p : char; jml : longint; diskon, total : real;Beginclrscr; write ('Apakah Pelanggan (y/t) : '); readln(p); write ('Berapa jumlah pembelian : Rp. '); readln(jml); if (p='y') then diskon := Jml*0.5 else diskon:=Jml*0.1; total := jml - diskon; writeln ('=========IndoApril========='); writeln ('Jumlah Pembelanjaan : Rp. ',jml); writeln ('Diskon : ',diskon:0:0); writeln ('-------------------------------------'); writeln ('Total Bayar = Rp. ',total:0:0);readln;end.

IF Pelanggan

Diskon:=10% *JumBelanja

Diskon := 10%*

JumBelanja

TotBayar:=JumBelanja – Diskon

Read (JumBelanja)

Write (TotBayar)

Page 14: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Latihan• Buatlah algoritma dan program yang membaca angka tahun

masehi,lalu menentukan apakah tahun tersebut merupakan tahun kabisat. Secara sederhana, tahun kabisat adalah tahun yang habis dibagi dengan 4.

Penyelesaian :Misalkan tahun masehi tersebut adalah Tahun.Analisis kasus :– Kasus 1 : Tahun mod 4 = 0, maka tulis Tahun adalah tahun

kabisat– Kasus 2 : Tahun mod 4 ≠ 0, maka tulis Tahun bukan tahun

kabisat

Page 15: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Program TAHUN_KABISAT;{* menentukan apakah suatu tahun merupan tahun kabisat atau bukan kabisat *}Var {* DEKLARASI *}

Tahun : integer;Begin {* DESKRIPSI *}

write('TAHUN '); readln (Tahun);if (Tahun mod 4 = 0) then

write(' adalah tahun kabisat') {Kasus 1}

elsewrite(' bukan tahun kabisat') ;{Kasus 2}

end.

IF Tahun

Mod 4 =0

END

Read (Tahun)

Write (‘Tahun

Kabisat’)

Write (‘Bukan Tahun Kabisat’)

Page 16: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Kondisi – Aksi Lebih 2 Kasus (IF-THEN-ELSE Majemuk)

• Masalah yang mempunyai lebih dari 2 kasus tetap dapat dianalisis dengan struktur IF-THEN-ELSE sebagaimana halnya pada masalah dua kasus.Tiga Kasus : Empat Kasus :

Page 17: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Contoh Percabangan 3 Kasus IF-THEN-ELSE

Program Maks1{menentukan bilangan terbesar dari 3 buah bilangan bulat positif}Var

a, b, c , maks : Integer ;Begin

Write(' Entry bil 1 : ');Readln(a);Write(' Entry bil 2 : ');Readln(b);Write(' Entry bil 3 : ');Readln(c);

{Menentukan bilangan terbesar }If (a>b) then

maks :=a { Kasus 1}else maks:=b; { Kasus 2}

If (c>maks) thenmaks:=c; { Kasus 3}

{ Cetak bilangan terbesar } Writeln(' Bil terbesar = ',maks);Readln;End.

Page 18: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Contoh Percabangan 4 Kasus IF-THEN-ELSE

Program Maks2;{menentukan bilangan terbesar dari 3 buah bilangan bulat positif}Var

a, b, c , maks : Integer ;Begin

Write(' Entry bil 1 : ');Readln(a);Write(' Entry bil 2 : ');Readln(b);Write(' Entry bil 3 : ');Readln(c);

{Menentukan bilang[9an terbesar } If (a>b) {Kondisi1} then

if (a>c) {KOndisi2} then maks a { Kasus 1}else maks c { Kasus 2}

else if (b>c) {kondisi3}then maks b { Kasus 3}else maks c; { Kasus 4}

{ Cetak bilangan terbesar } Writeln(' Bil terbesar = ', maks);Readln;End.

Page 19: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Analisis Kasus

Kondisi 1 Kondisi2 Kondisi3 (a>b) (a>c) (b>c)

• Kasus1 y (a>b) and y (a>c)– Maks:=a;

• Kasus2 y (a>b) and t (c>a) c>a>b– Maks:=c;

• Kasus3 t (b>a) and y (b>c)– Maks:=b;

• Kasus4 t (b>a) and t (c>b)– Maks:=c;

Page 20: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Contoh Percabangan Lebih dari 1 Kondisi Menggunakan Relational Operator OR dan AND

Program Maks3{menentukan bilangan terbesar dari 3 buah bilangan bulat positif}Var

a, b, c , maks : Integer ;Begin

Write(' Entry bil 1 : ');Readln(a);Write(' Entry bil 2 : ');Readln(b);Write(' Entry bil 3 : ');Readln(c);If (a>b) And (a>c) Then

max:=a; {Kasus 1}If (b>a) And (b>c) Then

max:=b; {Kasus 2}If (c>a) And (c>b) Then

max:=c; {Kasus 3}{ Cetak bilangan terbesar } Writeln(' Bil terbesar = ',maks);Readln;End.

Program Maks2{menentukan bilangan terbesar }Var

a, b, c , maks : Integer ;Begin

Write(' Entry bil 1 : ');Readln(a);Write(' Entry bil 2 : ');Readln(b);Write(' Entry bil 3 : ');Readln(c);

If (a>b) then if (a>c) then maks a { Kasus 1}else maks c { Kasus 2}

else if (b>c) then maks b { Kasus 3}else maks c; { Kasus 4}

{ Cetak bilangan terbesar } Writeln(' Bil terbesar = ', maks);Readln;End.

Page 21: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Program HurufVokal;Var

c : char;Begin

write (‘Masukkan sebuah huruf :’);readln (c);if (c=‘a’) or (c=‘i’) or (c=‘u’) or (c=‘e’) or (c=‘o’)

thenwrite (‘Huruf itu adalah huruf hidup’);

End.

Page 22: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Latihan• Buatlah algoritma dan program pascal yang membaca

temperatur air, T, (dalam suatu derajat celcius) pada tekanan normal, lalu menentukan apakah wujud air tersebut dalam keadaan padat (T ≤ 0°C), cair (0 < T< 100), atau gas (T > 100).

Penyelesaian :Misalkan suhu air adalah T.Analisis kasus :– Kasus 1 : T ≤ 0, maka tulis “padat”– Kasus 2 : 0 < T < 100, maka tulis “cair”– Kasus 3 : T ≥ 100, maka tulis “uap”

Page 23: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Program WUJUD_AIR;{ menentukan wujud air : padat, cair, atau gas, bergantung pada suhunya }Var {* DEKLARASI *}

T : real; { suhu air, dalam derajat celcius }Begin (*DESKRIPSI*}

write('suhu ');read(T);write('adalah ');If T <= 0 then

write('padat') { kasus 1 }else if ( T > 0) and ( T < 100 ) then

write('cair') { kasus 2 }else if T >= 100 then

write('gas atau uap'); { kasus 3 } end. end.

end.End.

Page 24: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Kondisi – Aksi Kasus CASE• Instruksi case digunakan sebagai instruksi pemilihan di mana aksi

yang akan dilakukan hanya bergantung pada nilai dari satu macam variabel. Dengan kata lain, variabel memiliki banyak macam nilai dan setiap nilainya berkaitan dengan satu macam aksi

• Dimungkinkan ada n buah aksiNotasi Penulisan Case :

Case ( variabel)nilai-1 : Aksi_1;nilai-2 : Aksi_2;nilai-3 : Aksi_3;……….default : aksi_n;

Endcase

Page 25: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

• Buat program yang membaca angka bulan lalu menuliskan/menampilkan nama bulan tersebut.

Contoh Percabangan Kondisi - Lebih dari 1 Aksi (Kasus CASE)

Page 26: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Program JUMLAH_HARI;{ menentukan nama bulan berdasarkan nomor bulan yang di inputkan }Var {* DEKLARASI *}

AngkaBulan : integer; { 1 . . 12 }NamaBulan : string;

Begin {* DESKRIPSI *}write('Bulan (1-12) = '); readln(AngkaBulan);case AngkaBulan of1 : NamaBulan:=‘Januari’;2 : NamaBulan:=‘Febuari’;3 : NamaBulan:=‘Maret’; 4 : NamaBulan:=‘April’; 5 : NamaBulan:=‘Mei’; 6 : NamaBulan:=‘Juni’; 7 : NamaBulan:=‘Juli’; 8 : NamaBulan:=‘Agustus’; 9 : NamaBulan:=‘September’; 10 : NamaBulan:=‘Oktober’;11 : NamaBulan:=‘November’;12 : NamaBulan:=‘Desember’; end;

writeln(‘Nama Bulan ke- ',AngkaBulan,' adalah ‘,Namabulan);end.

Page 27: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Latihan 1 Kasus Percabangan• Taxi “Azmar-Azmir” mempunyai tarif:– Km pertama : Rp. 2500– Km selanjutnya : Rp. 1800Jarak minimal adalah 1 km.

• Jika seseorang menempuh jarak perjalanan kurang dari 1 km, ia tetap harus membayar Rp.2500

• Untuk menghitung berapa tarif yang harus dibayar dengan inputan Jarak yang ditempuh buatlah: – Analisa Kasus Penyelesaiannya / Psedocodenya– Flowchartnya– Programnya Algoritma/Dalam Bahasa Pascal

Page 28: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Analisa Kasus

Input (JarakTempuh);Jmin:=1;Js:=JarakTempuh-Jmin;

Analisis kasus :– Kasus 1 : If JarakTempuh <= Jmin then • Tarif : = 2500;

– Kasus 2 : else • Tarif := 2500 + (Js*1800;

Output(Tarif);

Page 29: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Flowchartnya

IF (JarakTem

puh <= Jmin

Tarif:=2500 + (Js*1800)

Tarif:= 2500

Read (Jarak Tempuh)

Write (Tarif)

Jmin:=1Js:= JarakTempuh - Jmin

Page 30: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Program TotTarif;uses crt;Var JarakTempuh, J1, J2 : real; Tarif : real;Beginclrscr; write('Jarak Tempuh anda = '); readln(JarakTempuh); clrscr; writeln('Jarak Tempuh anda = ',JarakTempuh:2:2,' KM'); Jmin := 1; Js := JarakTempuh - Jmin; if (JarakTempuh <= Jmin) then {Kasus 1} Tarif := 2500 else Tarif := 2500 + (Js*1800); {Kasus 2} writeln('Tarif yang harus dibayar adalah =',Tarif:2:2);readln;end.

Programnya

Page 31: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Latihan 2 Kasus Percabangan• Untukmenghitung gaji total karyawan dimana gaji karyawan

pada sebuah perusahaan didasarkan pada jam kerja dalam satu bulan serta posisi atau golongannya dalam perusahaan tersebut. Upah per jam berdasarkan golongan adalah sebagai berikut:

• Bila karyawan sudah bekerja lebih dari 150 jam per minggu maka kelebihan jam kerja tersebut dihitung sebagai lembur dengan upah/jam 25% di atas upah reguler. Buatlah :– Analisa Kasus Penyelesaiannya / Psedocodenya– Flowchartnya– Programnya Algoritma/Dalam Bahasa Pascal

Golongan Upah/jam (Rp)

A 5000

B 6000

C 7500

D 9000

Page 32: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Input (JamKerja, Golongan);Analisis kasus :– Kasus 1 : JamKerja > 150, maka

• JK – 150 JamLembur• UpahLembur = JamLembur * (100%+25%) * Upah• Gaji = 150 * Upah

– Kasus 2 : JamKerja ≤ 150, maka • JamLembur = 0 sehingga UpahLembur = 0• Gaji = JamKerja * Upah

GajiTotal := Gaji + UpahLembur;Output(GajiTotal);

Analisa Kasus

Page 33: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

FlowchartnyaRead

(JamKerja, Golongan)

IF (JamKerja

>150)

JamLembur:=150-JamkerjaUpahLembur:=JamLembur*1,25*UpahGaji:=150*Upah

Write (TotGaji)

Case (Golongan):‘A’ : Upah:= 5000;‘B’ : Upah:= 6000;‘C’ : Upah:= 7500;‘D’ : Upah := 9000;

JamLembur:=0UpahLembur:=0Gaji:=JamKerja*Upah

TotGaji:=Gaji + UpahLembur

Page 34: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Program HitungLembur;{ Algoritma yg menerima nama, golongan serta jam kerja kemudian menghitung Upah Lembur dan menampilkan total

gaji yang diterima karyawan}Var {* DEKLARASI *}

Nama : String;Golongan : char;JK, JamLembur, UpahLembur, Gaji, Upah, TotGaji : real;

Begin {* DESKRIPSI *}write('Masukkan Nama Anda : '); readln(Nama); write('Golongan (A/B/C/D) : '); readln(Golongan); case Golongan of

'A' : Upah := 5000;'B' : Upah := 6000;'C' : Upah := 7500;'D' : Upah := 9000;

end; writeln('Upah anda = ',Upah:0:0); write('Masukkan Jam Kerja Per Minggu Anda : '); readln(JK);

if (JK > 150) then JamLembur := JK - 150;

UpahLembur := JamLembur * Upah * 1.25;Gaji := 150 * Upah;

If (JK <= 150) then UpahLembur := 0;

Gaji := JK * Upah;TotGaji := Gaji + UpahLembur;writeln('Total Gaji yang anda peroleh adalah : ',TotGaji:0:0);end.

Page 35: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Perulangan (LOOPING)

Menyelesaikan :(1) Kasus menggunakan perulangan (Lanjutan)

(2) Kasus menggunakan pembatasan Perulangan dalam flowchart

Page 36: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Perulangan (LOOPING)

• Dalam bahasa pascal ada 3 macam cara untuk perulangan atau yang lebih dikenal dengan Looping.

• Konsep perulangan adalah agar para pengguna (User) yang menggunakan program yang kita buat bisa menggunakan beberapa baris atau beberapa kalimat secara berulang. Contohnya, jika kita akan memasukan nilai 10 siswa

maka kita harus menggulang proses tampilan untuk mengisi nilai sebanyak 10 kali.

Page 37: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Struktur Perulangan

Struktur pengulangan secara umum terdiri 2 bagian :1. Kondisi pengulangan, yaitu ekspresi Boolean

yang harus dipenuhi untuk melaksanakan pengulangan. Kondisi ini ada yang dinyatakan secara eksplisit oleh pemrogram atau dikelola sendiri oleh komputer (implisit);

2. Badan (body) pengulangan, yaitu bagian algoritma yang diulang.

Page 38: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Disamping itu, struktur pengulangan biasanya disertai bagian:• Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan

dilakukan pertama kali. Inisialisasi dan terminasi tidak selalu harus ada, namun pada berbagai kasus inisialisasi umumnya diperlukan.

• Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan

• Struktur pengulangan secara umum :

Dalam hal ini awal dan akhir pengulangan dinyatakan sebagai kata kunci yang bergantung pada struktur pengulangan yang digunakan. Selain itu, <inisialisasi> dan <terminasi> adalah bagian yang opsional.

Page 39: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Notasi Struktur Pengulangan

• Struktur FOR• Struktur WHILE• Struktur REPEATNote:• Pemilihan struktur pengulangan untuk masalah

tertentu dapat mempengaruhi kebenaran algoritma.

• Pemilihan struktur pengulangan yang tepat bergantung pada masalah yang akan deprogram.

Page 40: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Struktur FOR• Struktur pengulangan FOR digunakan untuk menghasilkan

pengulangan sejumlah kali yang dispesifikasikan. • Jumlah pengulangan diketahui atau dapat ditentukan

sebelum eksekusi.• Untuk mencacah sudah berapa kali pengulangan dilakukan,

kita memerlukan sebuah peubah (variable) pencacah (counter). – Peubah ini nilainya selalu bertambah satu setiap kali

pengulangan dilakukan.• Jika cacah pengulangan sudah mencapai jumlah yang

dispesifikasikan, maka proses pengulangan berhenti

Page 41: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Bentuk umum struktur FOR

• Keterangan :• Pencacah haruslah dari tipe data yang memiliki predecessor dan successor,

yaitu integer atau karakter. Tipe riil tidak dapat digunakan sebagai pencacah.

• Aksi adalah satu atau lebih instruksi yang diulang.• Nilai_awal harus lebih kecil atau sama dengan nilai_akhir. Jika nilai_awal

lebih besar dari nilai_akhir, maka badan pengulangan tidak dimasuki.• Pada awalnya,pencacah diinisialisasi dengan nilai_awal. Nilai pencacah

secara otomatis bertambah satu setiap kali pengulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir.

• Jumlah pengulangan yang tejadi adalah nilai_akhir - nilai_awal + 1.

Page 42: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Contoh For…to...doBuat program mencetak angka 1, 2, .., N, yang dalam hal ini nilai N dibaca terlebih dahulu dari piranti masukan.

Analisa Kasus :Misal N = Berapa jumlah angka yang ingin kita cetakInput(N)Misal i = Bilangan yg akan dicetakkanfor i:=1 to N doWrite(i)

Page 43: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Algoritma ProgramnyaProgram CETAK_N_ANGKA;{ mencetak 1, 2, …, N ke piranti

keluaran }Var { * DEKLARASI *}

N : integer;k : integer;

Begin {* DESKRIPSI *}write(‘Jumlah Angka yang akan dicetak = '); read(N);for k:=1 to N do { ulangi sebanyak N kali }writeln(k);

end.

k = N ?

Read (N)

write (k)

END

k=1

Page 44: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Contoh For…downto…doBuat Program peluncuran roket dengan hitung mundur, mulai dari 10, 9, 8,7,6 …,0

Analisa Kasus :Misalkan k itu adalah bilanganfor (k:=10) downto 0 doWrite (k)

Page 45: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Algoritma Programnya

Program Peluncuran_Roket;{ hitung mundur peluncuran roket }Var { * DEKLARASI *}

k : integer;Begin {* DESKRIPSI *}

for k:=10 downto 0 do writeln(k) ;write (GO!!!!!!!!); {Roket Meluncur}

end.

Page 46: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Struktur WHILE• Bentuk Umum :

• Aksi (atau runtunan aksi) akan dilaksanakanberulangkali selama kondisi benilai true. Jika kondisi bernilai false, badan pengulangan tidak akan dilaksanakan, yang berarti pengulangan selesai.

• Yang harus diperhatikan adalah pengulangan harus berhenti.• Pengulangan yang tidak pernah berhenti menandakan bahwa logika

algoritma tersebut salah. Pengulangan berhenti apabila kondisi bernilai false.

• Agar kondisi suatu saat bernilai false, maka di dalam badan pengulangan harus ada instruksi yang mengubah nilai peubah kondisi.

Page 47: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Contoh While…Do• Buat program untuk memasukkan sejumlah bilangan bulat positif. Banyaknya

bilangan yang dimasukkan tidak diketahui sebelumnya (bebas/sembarang), tetapi program akan berhenti bila bilangan yang dimasukkan bernilai -99. Maka bilangan -99 akan diinterpretasikan sebagai tanda berhenti proses pengisian data. Kita diminta menghitung jumlah seluruh nilai yang dimauskkan (-99 tidak termasuk data yang dijumlahkan).

Analisa Kasus:• Misalkan dibaca berturut-turut data: 10, 4, 5, 8, -99, maka jumlah seluruh

nilai adalah 10 + 4 + 5 + 8 = 27• While (k <> -99)

Input(k);jum := Jum + k;

Write (jum);

Page 48: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Program JUMLAH_DATA;{ menghitung jumlah seluruh nilai bilangan bulat positif yang dibaca daripiranti masukan. akhir pembacaan data: -99 }Var {* DEKLARASI *}

x, jumlah : integer;Begin {* DESKRIPSI *}

jumlah:=0;write('Ketikkan sembarang bilangan bulat ( -99 mengakhiri )');readln(x);while (x <> -99) dobegin

jumlah:=jumlah + x;write('Ketikkan sembarang bilangan bulat ( -99 mengakhiri )');readln(x);

end;writeln('Jumlah seluruh nilai = ',jumlah);

end.

Algoritma Programnya

Page 49: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Struktur REPEAT• Bentuk Umum :

• Notasi ini mendasarkan pengulangan pada kondisi boolean.• Aksi di dalam badan kalang diulang sampai kondisi boolean

bernilai true. Dengan kata lain, jika kondisi boolean masih false, pengulangan masih terus dilakukan. Karena proses pengulangan suatu saat harus berhenti, maka di dalam badan pengulangan harus ada aksi yang mengubah nilai peubah kondisi.

• Struktur REPEAT memiliki makna yang sama dengan WHILE, dan dalam beberapa masalah kedua struktur tersebut komplemen satu sama lain.

Page 50: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Contoh Repeat…Until• Algoritma dan program untuk menghitung jumlah angka

dari 1 sampai N. Nilai N dibaca dari papan kunci. Misalnya N = 5, maka 1 +2 + 3 + 4 + 5 = 15.

Analisa Kasus :Misalkan : N = {banyaknya suku deretnya}

jumlah = { inisialisasi jumlah deret }k = {suku deretnya}

Input(N)jumlah :=0;k :=1;repeat

jumlah:=jumlah + k; k:=k+1;

until (Bil>N)• Output Hasilnya :

Page 51: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Algoritma ProgramnyaProgram PENJUMLAHAN_DERET;{ menjumlahkan deret 1 + 2 + 3 + ... + N dengan N adalah bilangan bulat positif yang dibaca dari

pirantimasukan. jumlah deret dicetek ke piranti keluaran. }Var {* DEKLARASI *}

N, k, jumlah : integer;Begin {* DESKRIPSI *}

write('N = ');readln(N); {banyaknya suku deret}jumlah:=0; { inisialisasi jumlah deret }k:=1; { suku deret }repeatjumlah:=jumlah + k; {jumlah deret sekarang}{Badan Perulangan}k:=k+1; {suku deret berikutnya}until k > N; {Kondisi Berhenti}writeln('jumlah deret = ', jumlah);

end.

Page 52: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Latihan 1 Kasus Perulangan

• Buatlah program untuk menampilkan deretan angka dengan menerima masukkan angka awal, kelipatan berapa dan berapa banyak angka yang akan ditampilkan.

• Hasil Output :

Page 53: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Analisa Kasus• Buatlah program untuk

menampilkan deretan angka dengan menerima masukkan angka awal, kelipatan berapa dan berapa banyak angka yang akan ditampilkan.

Analisa kasus :• Input(nilai awal,kelipatan,banyak

angka)• m=nilai awal, k=kelipatan,

n=banyak angka• For i=1 to n do

write(m)m=m+k

Input(nilai awal -> m),

kelipatan -> k), banyaknya angka -> n)

i = n ?

m=m+k

Write (m)

END

Page 54: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Program Deret_Angka;uses crt;Var k, m, n, i : byte;Begin clrscr; writeln('Input Nilai Awal : '); readln(k); writeln('Input Kelipatan : '); readln(m); writeln('Input Banyak Angka : '); readln(n); clrscr; for i:=1 to n do Begin write(k:4); k:=k+m; end;readln;end.

Algoritma Programnya

Page 55: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Latihan 2 Kasus Perulangan

• Buatlah program untuk menampilkan jumlah bilangan bulat 0 - 15

Page 56: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Analisa KasusConts Batas awal=0

Batas akhir=15

i=batas awaln=batas akhirjum=0

while (i<=n)write(i)i=i+1;jum=jum+1

write(jum);

Batas awal=5Batas akhir =15

i=Batas awaln = Batas akhir

Jum=0

i=i+1Jum=jum+1

write (m)

write (jum)

While (i<=n)

Page 57: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Program Jumlah_Bilangan;Uses crt;Const Batas_Awal = 0; Batas_Akhir = 15;Var I, Jml : integer;Begin clrscr; writeln('---------------------------------------------------'); writeln(' Jumlah Bilangan Bulat 0 - 15 '); writeln('---------------------------------------------------'); I := Batas_Awal; Jml := 0; While I <= Batas_Akhir do Begin writeln(I); Jml:=Jml + 1; I:=I+1; end; writeln('Jumlah bilangan Bulat dari ',Batas_Awal,' Sampai ',Batas_Akhir,' adalah = ',Jml);readln;end.

Algoritma Programnya

Page 58: Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Jawab Repeat…Until

Conts Batas awal=0Batas akhir=15

i=batas awaln=batas akhirjum=0

repeat write(i) i=i+1; jum=jum+1until (i > n)write(jum);

Batas awal=5Batas akhir =15

i=Batas awaln = Batas akhir

Jum=0

i=i+1Jum=jum+1

write (m)

write (jum)

i > n