KU1072 Pengulangan Pascal Flowchart 130915

Embed Size (px)

Citation preview

PowerPoint Presentation

Pengulangan/Looping(dalam Bahasa Pascal + Flowchart)Tim Penyusun Materi PTI-BKU1072/Pengenalan Teknologi Informasi BTahap Tahun Pertama BersamaInstitut Teknologi Bandung

19/13/2015KU1072/Pengenalan Teknologi Informasi B9/13/2015WD/PTI-B2TujuanMahasiswa memahami jenis-jenis pengulangan dan penggunaannya serta memahami elemen-elemen dalam pengulangan. Mahasiswa dapat menggunakan notasi pengulangan yang sesuai dengan benarMahasiswa dapat memanfaatkan jenis-jenis pengulangan dengan tepat dalam menyelesaikan persoalan sederhana yang diberikan.

2Mengupas Kentang RevisitedAsumsi: jumlah kentang tersedia tidak terbatasPada suatu hari Ibu hanya mengupas kentang hanya 4 buah karena hanya anggota keluarga saja yang makan malamPada hari yang lain, Ibu mengundang mahasiswa PTI-B sejumlah 400 orang untuk makan malam di rumahnya sehingga ibu mengupas 400 kentang untuk semua orangHari yang lain, ibu tidak tahu berapa jumlah orang yang akan makan malamSetiap selesai mengupas 1 kentang, dicek apakah jumlah cukup atau tidak

13/09/2015KU1072/Pengenalan Teknologi Informasi B313/09/2015KU1072/Pengenalan Teknologi Informasi B4

Jumlah kentang cukup?

Jumlah kentang = 4?Jumlah kentang = 400?Jumlah kentang = jumlah orang yang hadir?Kupas 1 kentang

Jumlah kentang terkupas cukupMenulis 1 dan 2Tuliskan program yang menuliskan angka 1 dan 2 dan selanjutnya 1+2 ke layarContoh keluaran: 13/09/2015KU1072/Pengenalan Teknologi Informasi B5123...{ ALGORITMA }beginwriteln (1);writeln (2);writeln (1+2);end.Smiley menunjukkan bahwa masih tidak capek ditulisKU1072/Pengenalan Teknologi Informasi B9/13/20155Menulis 1 s.d. 3Tuliskan program yang menuliskan angka 1 s.d. 3 dan selanjutnya 1+2+3 ke layarContoh keluaran: 13/09/2015KU1072/Pengenalan Teknologi Informasi B61236...{ ALGORITMA }beginwriteln (1);writeln (2);writeln (3);writeln (1+2+3);end.Smiley menunjukkan bahwa masih tidak capek ditulis

KU1072/Pengenalan Teknologi Informasi B9/13/20156Menulis 1 s.d. 10Tuliskan program yang menuliskan angka 1 s.d. 10 dan selanjutnya 1+2+3++10 ke layarContoh keluaran: 13/09/2015KU1072/Pengenalan Teknologi Informasi B71234567891055...{ ALGORITMA }beginwriteln (1);writeln (2);writeln (3);writeln (4); { lanjutkan sendiri!! }writeln (10);writeln (1+2+3+4+5+6+7+8+9+10);end.Sudah mulai capek ditulis

KU1072/Pengenalan Teknologi Informasi B9/13/20157Menulis 1 s.d. 100Tuliskan program yang menuliskan angka 1 s.d. 100 dan selanjutnya 1+2+3++100 ke layarContoh keluaran: 13/09/2015KU1072/Pengenalan Teknologi Informasi B812345678910

...{ ALGORITMA }beginwriteln (1);writeln (2);writeln (3);writeln (4); { lanjutkan sendiri!! }writeln (100);writeln (1+2+3+4+5+ +100); { lanjutkan sendiri!! }end.

Semakin banyak semakin menderita untuk menuliskan teks yang mirip berulang-ulangKU1072/Pengenalan Teknologi Informasi B9/13/20158Anda diminta menulis dan menjumlahkan

1 s.d. 1000 ???1 s.d. 10000 ???1 s.d. 1000000 ???.13/09/2015KU1072/Pengenalan Teknologi Informasi B9Bagaimana kalauSudah tidak mungkin dengan cara seperti sebelumnyaKU1072/Pengenalan Teknologi Informasi B9/13/201599/13/2015WD/PTI-B10Pengulangan: Latar BelakangMelakukan suatu instruksi, bahkan aksi, secara berulang-ulangKomputer: memiliki performansi yang samaManusia: punya kecenderungan untuk melakukan kesalahan (karena letih atau bosan)

109/13/2015WD/PTI-B11Pengulangan / LoopingElemen:Kondisi pengulangan: ekspresi lojikBadan pengulangan: aksi yang diulangJenis-jenis notasi pengulangan:Berdasarkan kondisi mengulang di awal: whileBerdasarkan kondisi berhenti di akhir : repeat-untilBerdasarkan pencacah : for11Studi KasusTuliskan program yang menerima masukan sebuah integer misalnya N dan menuliskan angka 1, 2, 3, N dan menuliskan 1+2+3++N ke layar. Asumsikan N > 0.Contoh: 13/09/2015KU1072/Pengenalan Teknologi Informasi B12N = 1Tampilan di layar:11N = 5Tampilan di layar:1234515N = 10Tampilan di layar:1234567891055repeat-until9/13/2015WD/PTI-B131. Pengulangan Berdasarkan Kondisi Berhenti (repeat-until)Inisialisasi-Aksi

First-Element

repeat

AksiNext-Element

until (kondisi-berhenti);

TerminasiInisialisasi-AksiAksikondisi-berhentifalseTerminasitrueNext-ElementPascalFirst-Element13repeat-untilAksi minimal akan dilakukan satu kali karena pada waktu eksekusi pengulangan yang pertama tidak dilakukan test terhadap kondisi-berhentiAksi akan dihentikan jika kondisi-berhenti tercapai (berharga true), akan diulang jika kondisi-berhenti tidak dipenuhiPengulangan berpotensi mengalami kebocoran, jika ada kemungkinan bahwa seharusnya Aksi tidak pernah boleh dilakukan untuk kasus tertentu13/09/2015KU1072/Pengenalan Teknologi Informasi B14repeat-untilStudi Kasus: Repeat-Until (Flowchart)13/09/2015KU1072/Pengenalan Teknologi Informasi B15Program JumlahAngka{ Menghitung 1+2+3+...+N; Asumsi: N > 0 }KAMUS N : integer i, sum : integerALGORITMA { Lihat flowchart di samping }input(N); sum := 0output(i)sum := sum + ii > Nfalseoutput(sum)truei := i + 1MulaiSelesaii := 1Next-elmtInisialisasiFirst-ElmtAksiKondisi-BerhentiTerminasiStudi Kasus: repeat-until (Pascal)13/09/2015KU1072/Pengenalan Teknologi Informasi B16Program JumlahAngka;{ Menghitung 1+2+3+...+N; Asumsi N > 0 }{ KAMUS }varN : integer; i, sum : integer;{ ALGORITMA }beginreadln (N); { Inisialisasi-aksi }sum := 0; { Inisialisasi-aksi } i := 1; { First-element }repeat writeln (i); { Aksi } sum := sum + i; { Aksi } i := i + 1; { Next-Element }until (i > N); { Kondisi Berhenti }writeln (sum); { Terminasi }end.KU1072/Pengenalan Teknologi Informasi B9/13/201516while-do9/13/2015WD/PTI-B172. Pengulangan Berdasarkan Kondisi Pengulangan (while-do)Inisialisasi-aksi

First-Element

while (kondisi-mengulang) dobegin

Aksi Next-Element

end;{ Kondisi-pengulangan=false }

TerminasiInisialisasi-aksiTerminasikondisi-mengulangfalseAksitrueNext-ElementPascalFirst-Element17while-doAksi akan dilakukan selama kondisi-mengulang masih dipenuhi (berharga true)Pengulangan ini berpotensi untuk menimbulkan Aksi kosong (tidak pernah melakukan apa-apa) karena pada test yang pertama, kondisi-mengulang tidak dipenuhi (berharga false) sehingga langsung ke luar loop

13/09/2015KU1072/Pengenalan Teknologi Informasi B18while-doStudi Kasus: While-Do (Flowchart)13/09/2015KU1072/Pengenalan Teknologi Informasi B19Program JumlahAngka{ Menghitung 1+2+3+...+N; Asumsi: N > 0 }KAMUS N : integer i, sum : integerALGORITMA { Lihat flowchart di samping }i := 1output(i)sum := sum + ii < Nfalseoutput(sum)truei := i + 1MulaiSelesaiNext-elmtInisialisasiFirst-ElmtAksiKondisi-mengulangTerminasiinput(N); sum := 0Studi Kasus: while-do (Pascal)13/09/2015KU1072/Pengenalan Teknologi Informasi B20Program JumlahAngka;{ Menghitung 1+2+3+...+N; N > 0 }{ KAMUS }varN : integer; i, sum : integer;{ ALGORITMA }beginreadln (N); { Inisialisasi-aksi }sum := 0; { Inisialisasi-aksi } i := 1; { First-element }while (i N } { Kondisi Berhenti }writeln (sum); { Terminasi }end.Diskusikan bahwa menggunakan bentuk ini jika pengguna memasukkan N < 0, maka badan pengulangan tidak akan pernah dilakukan dan akan menampilkan hasil sum = 0 (apakah ini tepat?) Setidaknya program tidak akan mengalami loop forever sehingga solusi ini lebih aman.KU1072/Pengenalan Teknologi Informasi B9/13/201520for9/13/2015WD/PTI-B213. Pengulangan Berdasarkan Pencacah (for)Inisialisasi-aksi

for pencacah := hmin to hmaks do begin

Aksi { pencacah:=pencacah+1, otomatis oleh compiler }

end;

Terminasipencacah:=hminTerminasipencacah= hminfalseAksitruepencacah := pencacah - 1Inisialisasi-aksiNilai pencacah mengecil dari hmaks ke hminPascal23forStudi Kasus: For (Flowchart)13/09/2015KU1072/Pengenalan Teknologi Informasi B24Program JumlahAngka{ Menghitung 1+2+3+...+N; Asumsi: N > 0 }KAMUS N : integer i, sum : integerALGORITMA { Lihat flowchart di samping }input(N)sum := 0output(i)sum := sum + ii >= Nfalseoutput(sum)truei := i + 1MulaiSelesaii := 1AksiInisalisasiTerminasiStudi Kasus: for (Pascal)13/09/2015KU1072/Pengenalan Teknologi Informasi B25Program JumlahAngka;{ Menghitung 1+2+3+...+N; N > 0 }{ KAMUS }varN, i, sum : integer;{ ALGORITMA }beginreadln (N); { Inisialisasi-aksi }sum := 0; { Inisialisasi-aksi } for i := 1 to N do { First-element, Next-Element }begin writeln (i); { Aksi } sum := sum + i; { Aksi }end;writeln (sum); { Terminasi }end.pencacah: iInisialisasi -pencacah: i = 1kondisi pengulangan: i =5 }13/09/2015KU1072/Pengenalan Teknologi Informasi B284 kaliwhile (false) dobegin writeln (Hello);end; { false }while (true) dobegin writeln (Hello);end; { false }0 tidak ada Hello yang tertulisTidak terhinggaSoal-2Buatlah program yang menerima masukan 10 buah bilangan integer (dari keyboard) dan menuliskan ke layar jumlah total ke-10 integer tersebut.Contoh:13/09/2015KU1072/Pengenalan Teknologi Informasi B29MasukanTampilan di Layar210-9713221-118ForAlt. Solusi Soal-2:Menggunakan for (Flowchart)13/09/2015KU1072/Pengenalan Teknologi Informasi B30Program Jumlah10Angka{ Menerima masukan 10 buah integer dan menjumlahkan totalnya }KAMUS X : integer i, sum : integerALGORITMA { Lihat flowchart di samping }sum := 0input(X)sum := sum + Xi >= 10falseoutput(sum)truei := i + 1MulaiSelesaii := 1Alt. Solusi Soal-2:Menggunakan For (Pascal)13/09/2015KU1072/Pengenalan Teknologi Informasi B31Program Jumlah10Angka;{ Menerima masukan 10 buah integer dan menjumlahkan totalnya }{ KAMUS }varX : integer; i, sum : integer;{ ALGORITMA }beginsum := 0; { Inisialisasi-aksi }

for i := 1 to 10 dobegin readln(X);{ Aksi } sum := sum + X;{ Aksi }end;

writeln (sum); { Terminasi }end.KU1072/Pengenalan Teknologi Informasi B9/13/201531repeat-untilAlt. Solusi Soal-2:Menggunakan repeat-until(Flowchart)13/09/2015KU1072/Pengenalan Teknologi Informasi B32sum := 0input(X)sum := sum + Xi > 10falseoutput(sum)truei := i + 1MulaiSelesaiProgram Jumlah10Angka{ Menerima masukan 10 buah integer dan menjumlahkan totalnya }KAMUS X : integer i, sum : integerALGORITMA { Lihat flowchart di samping }i := 1Alt. Solusi Soal 2: Menggunakan repeat-until (Pascal)13/09/2015KU1072/Pengenalan Teknologi Informasi B33Program Jumlah10Angka;{ Menerima masukan 10 buah integer dan menjumlahkan totalnya }{ KAMUS }varX : integer;i, sum : integer;{ ALGORITMA }beginsum := 0; { Inisialisasi-aksi }

i := 1;{ First-Element } repeat readln(N);{ Aksi } sum := sum + X;{ Aksi } i := i + 1;{ Next-Element }until (i > 10);{ Kondisi-Berhenti }writeln (sum); { Terminasi }end.KU1072/Pengenalan Teknologi Informasi B9/13/201533Soal-3 (1)Buatlah program yang membaca ada berapa banyak mahasiswa di kelas, misalnya N (Asumsi: N > 0, tidak perlu diperiksa)Selanjutnya, bacalah N buah bilangan integer yang merepresentasikan nilai tugas KU1072 (Asumsi: nilai tugas adalah 0-100, tidak perlu diperiksa)Tuliskan ke layar berapa nilai rata-rata kelas.13/09/2015KU1072/Pengenalan Teknologi Informasi B34Soal-3 (2)Contoh input/output13/09/2015KU1072/Pengenalan Teknologi Informasi B35NoInputOutput1Jumlah mhs = 5Nilai tugas =10020103575Rata-rata = 48.002Jumlah mhs = 4Nilai tugas =9045340Rata-rata = 42.25ForAlt. Solusi Soal-3:Menggunakan for (Flowchart)13/09/2015KU1072/Pengenalan Teknologi Informasi B36Program RataRataNilaiTugas{ Menerima N nilai tugas KU1072 dan menghitung rata-ratanya }KAMUS N, X : integer i, sum : integer rata : realALGORITMA { Lihat flowchart di samping }input(N)sum := 0input(X)sum := sum + Xi >= Nfalserata := sum/Noutput(rata)truei := i + 1MulaiSelesaii := 1KU1072/Pengenalan Teknologi Informasi B9/13/201536Alt. Solusi Soal-3: Menggunakan For (Pascal)13/09/2015KU1072/Pengenalan Teknologi Informasi B37Program RataRataNilaiTugas;{ Menerima N nilai tugas KU1072 dan menghitung rata-ratanya }{ KAMUS }varN, X : integer; i, sum : integer; rata : real;{ ALGORITMA }beginwriteln(Jumlah mhs = ); readln(N); { Inisialisasi }sum := 0; { Inisialisasi }writenln (Nilai tugas =); for i := 1 to N dobegin readln(X);{ Aksi } sum := sum + X;{ Aksi }end;rata := sum/N; { Terminasi }writeln (Rata-rata = , rata:0:2); { Terminasi }end.Menuliskan 2 angka di belakangKU1072/Pengenalan Teknologi Informasi B9/13/201537Soal-4 (1)Buatlah program yang membaca sejumlah bilangan integer dari keyboard sampai pengguna memasukkan angka -999 (angka -999 tidak termasuk bilangan yang diolah).Tuliskan berapa banyak bilangan yang dimasukkan, nilai total, dan rata-rata semua bilanganJika dari masukan pertama sudah menuliskan -999, maka tuliskan pesan Tidak ada data yang diolah

Petunjuk: Gunakan pengulangan while-do13/09/2015KU1072/Pengenalan Teknologi Informasi B38Soal-4 (2)Contoh input/output13/09/2015KU1072/Pengenalan Teknologi Informasi B39NoInputOutput1-112-6102-999Banyak bilangan = 5Jumlah total = 17Rata-rata = 3.402-999Tidak ada data yang diolah13/09/2015KU1072/Pengenalan Teknologi Informasi B40while-doinput(X)TerminasiMulaiSelesaisum := 0; count := 0Alt. Solusi Soal-4Sketsa FlowchartProgram RataBilangan{ Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan menampilkan banyak bilangan, total, dan rata-ratanya }KAMUS X, count, sum : integer rata : realALGORITMA { Lihat flowchart di samping }inisialisasiFirst-ElmtAgar tidak pusing dengan detil, programmer bisa bekerja dengan sketsa flowchart terlebih dahulu, lalu baru dibuat detil spt pada slide selanjutnyaKU1072/Pengenalan Teknologi Informasi B9/13/201540Terminasiwhile-do13/09/2015KU1072/Pengenalan Teknologi Informasi B41Mulaiinput(X)X -999sum := 0; count := 0sum := sum + Xcount := count + 1rata := sum/countoutput(count, sum, rata)count > 0output(Tidak ada data yang diolah)SelesaifalsetruetruefalseAlt. Solusi Soal-4Flowchart DetilAksi13/09/2015KU1072/Pengenalan Teknologi Informasi B42Program RataBilangan;{ Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan menampilkan banyak bilangan, total, dan rata-ratanya }{ KAMUS }varX, count, sum : integer;rata : real;{ ALGORITMA }beginsum := 0; count := 0; { Inisialisasi }readln (X); { First-Element } while (X -999) do { Kondisi-mengulang }beginsum := sum + X; count := count + 1;readln (X); { Next-Element }end; { X = -999 }{ Terminasi }if (count > 0) thenbeginwriteln ('Banyak bilangan = ', count); writeln ('Jumlah total = ', sum); rata := sum/count;writeln ('Rata-rata = ', rata:4:2);end elsebegin { count = 0, artinya tidak ada bilangan yang dientri }writeln ('Tidak ada data yang diolah');end;end.Alt. Solusi Soal-4 (Pascal)Formatting penulisan real: 4 digit di depan koma, 2 digit di belakang komaIni adalah contoh di mana elemen pengendali pengulangan ditentukan oleh nilai variable yang berasal dari masukan pengguna (keyboard).Typecasting dari int menjadi float untuk membuat nilai rata-rata bisa dituliskan dalam bentuk angka real.KU1072/Pengenalan Teknologi Informasi B9/13/201542Soal-5 (1)Buatlah program untuk membaca sekumpulan bilangan bulat (integer) yang diakhiri -999 (-999 tidak termasuk), dan mencetak banyaknya bilangan genap, ganjil, positif, dan negatif. Bilangan 0 adalah bilangan genap, tetapi tidak positif atau pun negatif.Petunjuk: Gunakan while-do13/09/2015KU1072/Pengenalan Teknologi Informasi B43Soal-5 (2)Contoh input/output13/09/2015KU1072/Pengenalan Teknologi Informasi B44NoInputOutput1-1712-61020-999Bilangan genap ada 5Bilangan ganjil ada 2Bilangan positif ada 4Bilangan negatif ada 22-999Bilangan genap ada 0Bilangan ganjil ada 0Bilangan positif ada 0Bilangan negatif ada 013/09/2015KU1072/Pengenalan Teknologi Informasi B45while-doinput(X)TerminasiMulaiSelesaiAlt. Solusi Soal-5Sketsa FlowchartProgram CountBilangan{ Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan dan menampilkan banyak bilangan genap, ganjil, positif, negatif }KAMUS X : integer countgenap, countganjil, countpos, countneg : integerALGORITMA { Lihat flowchart di samping }inisialisasiFirst-Elmtcountgenap := 0; countganjil := 0countpos := 0; countneg := 0X -999Count genap/ganjilCount pos/negtruefalseAksiAgar tidak pusing dengan detil, programmer bisa bekerja dengan sketsa flowchart terlebih dahulu, lalu baru dibuat detil spt pada slide selanjutnyaKU1072/Pengenalan Teknologi Informasi B9/13/201545while-doCount genap/ganjil13/09/2015KU1072/Pengenalan Teknologi Informasi B46Mulaiinput(X)X -999countgenap := 0; countganjil := 0countpos := 0; countneg := 0X mod 2 = 0countganjil := countganjil + 1falsetruetruefalseAlt. Solusi Soal-5 Flowchart Detil(Part-1)countgenap := countgenap + 1BConnector: jika gambar flowchart harus berpindah halamanCATerminasiwhile-doCount pos/neg13/09/2015KU1072/Pengenalan Teknologi Informasi B47Selesaioutput(countgenap) output(countganjil)output(countpos)output(countneg)Xcountneg := countneg + 1X > 0falseAlt. Solusi Soal-5Flowchart Detil(Part-2)countpos := countpos + 1BACX < 0X = 013/09/2015KU1072/Pengenalan Teknologi Informasi B48Program CountBilangan; { Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan dan menampilkan banyak bilangan genap, ganjil, positif, negatif }{ KAMUS }var X, countgenap, countganjil, countpos, countneg : integer;{ ALGORITMA }begin countgenap:=0; countganjil:=0; countpos:=0; countneg:=0; readln (X); { First-Element } while (X -999) do beginif (X mod 2 = 0) thenbegin countgenap := countgenap + 1;end else { X mod 2 0 }begin countganjil := countganjil + 1; end;if (X > 0) thenbegin countpos := countpos + 1; end else if (X < 0) thenbegin countneg := countneg + 1; end; { X = 0, tidak melakukan apa-apa }readln (X); { Next-Element } end; { X = -999 } writeln ('Bilangan genap ada ', countgenap); writeln ('Bilangan ganjil ada ', countganjil); writeln ('Bilangan positif ada ', countpos); writeln ('Bilangan negatif ada ', countneg);end.Alt. Solusi Soal-5 (Pascal)Ini adalah contoh di mana elemen pengendali pengulangan ditentukan oleh nilai variable yang berasal dari masukan pengguna (keyboard).KU1072/Pengenalan Teknologi Informasi B9/13/201548Soal-6: Lagu Anak AyamMasih ingatkah dengan lagu Anak Ayam??

Buatlah 3 versi program yang menerima masukan sebuah integer positif > 0, misalnya N, dan menuliskan lirik lagu Anak Ayam dengan memanfaatkan pengulangan:Repeat-untilWhile-doFor

13/09/2015KU1072/Pengenalan Teknologi Informasi B49Anak ayam turunlah 5Mati satu tinggallah 4Mati satu tinggallah 3Mati satu tinggallah 2Mati satu tinggallah 1Mati satu tinggal induknyaAnak ayam turunlah NMati satu tinggallah N-1Mati satu tinggallah N-2.Mati satu tinggallah 1Mati satu tinggal induknyageneralisasi