Click here to load reader

Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

  • View
    1.259

  • Download
    25

Embed Size (px)

Text of Algoritma Pemrograman (Flowchart) - Logika dan Algoritma

Algoritma Pemrograman 1A (FLOWCHART)

Algoritma Pemrograman 1A (FLOWCHART)KULIAHMINGGU 5. Teknik Pengulangan dan Percabangan (Lanjutan)

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

Percabangan / PemilihanStruktur 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.

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.

Contoh Ekspresi Boolean :x > ya 10m = np qa + b > 1str = itbk mod 4 = 0ketemu = truenot berhenti(x > 0) and (y < 0)

Aksi = PernyataanAksi 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).

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.

Contoh Percabangan 1 Kasus IF-THENProgram IF-THENVarnilai : Integer ;BeginWrite( Masukkan Nilai Ujian : ');Readln(nilai);If nilai > 60 thenwrite (Anda Lulus); {Kasus 1}Readln;End.

IF nilai>60END

Read (nilai)

Write(LULUS)

LatihanBuat Program Pascal yang menghitung total pembayaran dimana jika dia pelanggan akan mendapat diskon 10% dari jumlah belanjanya.IF PelangganTotBayar=JumBelanja DiskonDiskon := 10%*JumBelanja

Read (JumBelanja)Diskon := 0;

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.

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.

Contoh Percabangan 2 Kasus (IF-THEN-ELSE)Program IF-THEN-ELSEVarnilai : 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)

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 PelangganDiskon:=10% *JumBelanjaDiskon := 10%*JumBelanjaTotBayar:=JumBelanja Diskon

Read (JumBelanja)

Write (TotBayar)

LatihanBuatlah 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 kabisatKasus 2 : Tahun mod 4 0, maka tulis Tahun bukan tahun kabisat

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) thenwrite(' adalah tahun kabisat') {Kasus 1}elsewrite(' bukan tahun kabisat') ;{Kasus 2}end.IF Tahun Mod 4 =0END

Read (Tahun)

Write (Tahun Kabisat)

Write (Bukan Tahun Kabisat)

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 :

Contoh Percabangan 3 Kasus IF-THEN-ELSEProgram Maks1{menentukan bilangan terbesar dari 3 buah bilangan bulat positif}Var a, b, c , maks : Integer ;BeginWrite(' 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.

Contoh Percabangan 4 Kasus IF-THEN-ELSE

Program Maks2;{menentukan bilangan terbesar dari 3 buah bilangan bulat positif}Vara, b, c , maks : Integer ;BeginWrite(' 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.

Analisis KasusKondisi 1Kondisi2Kondisi3 (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>bMaks:=c;Kasus3 t (b>a) and y (b>c)Maks:=b;Kasus4 t (b>a) and t (c>b)Maks:=c;

Contoh Percabangan Lebih dari 1 Kondisi Menggunakan Relational Operator OR dan ANDProgram Maks3{menentukan bilangan terbesar dari 3 buah bilangan bulat positif}Vara, b, c , maks : Integer ;BeginWrite(' Entry bil 1 : ');Readln(a);Write(' Entry bil 2 : ');Readln(b);Write(' Entry bil 3 : ');Readln(c);If (a>b) And (a>c) Thenmax:=a;{Kasus 1}If (b>a) And (b>c) Thenmax:=b;{Kasus 2}If (c>a) And (c>b) Thenmax:=c;{Kasus 3}{ Cetak bilangan terbesar } Writeln(' Bil terbesar = ',maks);Readln;End.

Program Maks2{menentukan bilangan terbesar }Vara, b, c , maks : Integer ;BeginWrite(' 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.

Program HurufVokal;Varc : char;Beginwrite (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.

LatihanBuatlah 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 0C), cair (0 < T< 100), atau gas (T > 100).Penyelesaian :Misalkan suhu air adalah T.Analisis kasus :Kasus 1 : T 0, maka tulis padatKasus 2 : 0 < T < 100, maka tulis cairKasus 3 : T 100, maka tulis uap

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) and ( T < 100 ) thenwrite('cair') { kasus 2 }else if T >= 100 thenwrite('gas atau uap'); { kasus 3 } end. end.end.End.

Kondisi Aksi Kasus CASEInstruksi 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 aksiDimungkinkan ada n buah aksiNotasi Penulisan Case :Case ( variabel)nilai-1 : Aksi_1;nilai-2 : Aksi_2;nilai-3 : Aksi_3;.default : aksi_n;Endcase

Buat program yang membaca angka bulan lalu menuliskan/menampilkan nama bulan tersebut.Contoh Percabangan Kondisi - Lebih dari 1 Aksi (Kasus CASE)

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 : Nam

Search related