KU1072 Pengulangan Pascal Flowchart 130915 [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Pengulangan/Looping (dalam Bahasa Pascal + Flowchart) Tim Penyusun Materi PTI-B



KU1072/Pengenalan Teknologi Informasi B Tahap Tahun Pertama Bersama Institut Teknologi Bandung



Tujuan • Mahasiswa memahami jenis-jenis pengulangan dan penggunaannya serta memahami elemen-elemen dalam pengulangan. • Mahasiswa dapat menggunakan notasi pengulangan yang sesuai dengan benar • Mahasiswa dapat memanfaatkan jenisjenis pengulangan dengan tepat dalam menyelesaikan persoalan sederhana yang diberikan.



9/16/15



WD/PTI-B



2



Mengupas Kentang Revisited • Asumsi: jumlah kentang tersedia tidak terbatas • Pada suatu hari Ibu hanya mengupas kentang hanya 4 buah karena hanya anggota keluarga saja yang makan malam • Pada hari yang lain, Ibu mengundang mahasiswa PTI-B sejumlah 400 orang untuk makan malam di rumahnya sehingga ibu mengupas 400 kentang untuk semua orang • Hari yang lain, ibu tidak tahu berapa jumlah orang yang akan makan malam – Setiap selesai mengupas 1 kentang, dicek apakah jumlah cukup atau tidak 9/16/15



KU1072/Pengenalan Teknologi Informasi B



3



Kupas 1 kentang



Jumlah kentang cukup? Jumlah kentang = 4? Jumlah kentang = 400? Jumlah kentang = jumlah orang yang hadir? Jumlah kentang terkupas cukup



9/16/15



KU1072/Pengenalan Teknologi Informasi B



4



Menulis 1 dan 2 • Tuliskan program yang menuliskan angka 1 dan 2 dan selanjutnya 1+2 ke layar • Contoh keluaran: 1 2 3



... { ALGORITMA } begin writeln (1); writeln (2); writeln (1+2);



end.



9/16/15



KU1072/Pengenalan Teknologi Informasi B



5



Menulis 1 s.d. 3 • Tuliskan program yang menuliskan angka 1 s.d. 3 dan selanjutnya 1+2+3 ke layar • Contoh keluaran: 1 2 3 6



... { ALGORITMA } begin writeln (1); writeln (2); writeln (3); writeln (1+2+3);



end.



9/16/15



KU1072/Pengenalan Teknologi Informasi B



6



Menulis 1 s.d. 10 • Tuliskan program yang menuliskan angka 1 s.d. 10 dan selanjutnya 1+2+3+…+10 ke layar ... { ALGORITMA } • Contoh keluaran: 1 begin 2 3 4 5 6 7 8 9 10 55 9/16/15



writeln (1); writeln (2); writeln (3); writeln (4); … { lanjutkan sendiri!! } writeln (10); writeln (1+2+3+4+5+6+7+8+9+10);



end. KU1072/Pengenalan Teknologi Informasi B



7



Menulis 1 s.d. 100 • Tuliskan program yang menuliskan angka 1 s.d. 100 dan selanjutnya 1+2+3+… +100 ke layar ... { ALGORITMA } • Contoh keluaran: 1 begin 2 3 4 5 6 7 8 9 10



9/16/15



writeln (1); writeln (2); writeln (3); writeln (4); … { lanjutkan sendiri!! } writeln (100); writeln (1+2+3+4+5+ … +100); { lanjutkan sendiri!! }



end. KU1072/Pengenalan Teknologi Informasi B



8



Bagaimana kalau… Anda diminta menulis dan menjumlahkan… 1 s.d. 1000 ??? 1 s.d. 10000 ??? 1 s.d. 1000000 ??? ….



9/16/15



KU1072/Pengenalan Teknologi Informasi B



9



Pengulangan: Latar Belakang • Melakukan suatu instruksi, bahkan aksi, secara berulang-ulang – Komputer: memiliki performansi yang sama – Manusia: punya kecenderungan untuk melakukan kesalahan (karena letih atau bosan) 9/16/15



WD/PTI-B



10



Pengulangan / Looping • Elemen: – Kondisi pengulangan: ekspresi lojik – Badan pengulangan: aksi yang diulang



• Jenis-jenis notasi pengulangan: 1. Berdasarkan kondisi mengulang di awal: while 2. Berdasarkan kondisi berhenti di akhir : repeat-until 3. Berdasarkan pencacah : for



9/16/15



WD/PTI-B



11



Studi Kasus • Tuliskan program yang menerima masukan sebuah integer misalnya N dan menuliskan angka 1, 2, 3, … N dan N = 10 menuliskan 1+2+3+…+N ke layar. Tampilan di layar: • Asumsikan N > 0. 1 N=5 N=1 • Contoh: Tampilan di layar:Tampilan di layar: 2 3 1 1



9/16/15



1 2 3 4 5 15



KU1072/Pengenalan Teknologi Informasi B



4 5 6 7 8 9 10 55



12



1. Pengulangan Berdasarkan Kondisi Berhenti (repeat-until)



Pascal



Inisialisasi-Aksi



Inisialisasi-Aksi First-Element



First-Element repeat-until



repeat Aksi Next-Element



false



Next-Element



kondisiberhenti



until (kondisiberhenti);



true



Terminasi 9/16/15



Aksi



Terminasi WD/PTI-B



13



repeat-until • Aksi minimal akan dilakukan satu kali karena pada waktu eksekusi pengulangan yang pertama tidak dilakukan test terhadap kondisi-berhenti • Aksi akan dihentikan jika kondisi-berhenti tercapai (berharga true), akan diulang jika kondisi-berhenti tidak dipenuhi • Pengulangan berpotensi mengalami “kebocoran”, jika ada kemungkinan bahwa seharusnya Aksi tidak pernah boleh dilakukan untuk kasus tertentu 9/16/15



KU1072/Pengenalan Teknologi Informasi B



14



Mulai input(N); sum := 0



Studi Kasus: Repeat-Until (Flowchart)



i := 1



Program JumlahAngka { Menghitung 1+2+3+...+N; Asumsi: N > 0 } KAMUS N : integer i, sum : integer ALGORITMA { Lihat flowchart di samping }



9/16/15



repeatoutput(i) until sum := sum + i



Inisialisas i First-Elmt



Aksi Next-elmt



i := i + 1 false



i>N true



KondisiBerhenti Terminasi



output(sum) KU1072/Pengenalan Teknologi Informasi B



Seles ai



15



Studi Kasus: repeat-until (Pascal) Program JumlahAngka; { Menghitung 1+2+3+...+N; Asumsi N > 0 } { KAMUS } var N : integer; i, sum : integer; { ALGORITMA } begin readln (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 } KU1072/Pengenalan Teknologi 9/16/15 end. Informasi B



16



2. Pengulangan Berdasarkan Kondisi Pengulangan (while-do) Pascal



Inisialisasi-aksi



Inisialisasi-aksi First-Element



First-Element while-do



while (kondisi-mengulang) do begin



kondisimengulang false



Aksi Next-Element



Aksi



end; { Kondisi-pengulangan=false } 9/16/15 Terminasi



true



WD/PTI-B



Next-Element Terminasi 17



while-do • Aksi akan dilakukan selama kondisimengulang 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



9/16/15



KU1072/Pengenalan Teknologi Informasi B



18



Mulai



Studi Kasus: While-Do (Flowchart) Program JumlahAngka { Menghitung 1+2+3+... +N; Asumsi: N > 0 } KAMUS N : integer i, sum : integer ALGORITMA { Lihat flowchart di samping }



9/16/15



input(N); sum := 0 i := 1



Inisialisas i First-Elmt Kondisimengulang



while-do false



i 0 } { KAMUS } var N : integer; i, sum : integer; { ALGORITMA } begin readln (N); { Inisialisasi-aksi } sum := 0; { Inisialisasi-aksi } i := 1; { First-element } while (i N } { Kondisi Berhenti } writeln (sum); { Terminasi } end. 9/16/15



KU1072/Pengenalan Teknologi Informasi B



20



3. Pengulangan Berdasarkan Pencacah (for)



Pascal



Inisialisasi-aksi



Inisialisasi-aksi for pencacah := hmin to hmaks do begin Aksi { pencacah:=pencacah+1, otomatis oleh compiler } end;



for



pencacah:=hmi n pencacah = hmin true Aksi



end; pencacah := pencacah - 1



Terminasi



Terminasi 9/16/15



WD/PTI-B



23



Mulai input(N) sum := 0



Studi Kasus: For (Flowchart)for Program JumlahAngka { Menghitung 1+2+3+...+N; Asumsi: N > 0 } KAMUS N : integer i, sum : integer



i := 1 false



i >= N true output(i) sum := sum + i



ALGORITMA { Lihat flowchart di samping }



Aksi



i := i + 1 output(sum)



9/16/15



Inisalis asi



KU1072/Pengenalan Teknologi Informasi B



Seles ai



Termina si



24



Studi Kasus: for (Pascal) Program JumlahAngka; pencacah: i { Menghitung 1+2+3+...+N; N > 0 } Inisialisasi -pencacah: i { KAMUS } =1 var kondisi pengulangan: i N, i, sum : integer; =5 } while (false) do begin writeln (‘Hello’); end; { false } while (true) do begin writeln (‘Hello’); end; { false } 9/16/15



KU1072/Pengenalan Teknologi Informasi B



4 kali



0 – tidak ada Hello yang tertulis Tidak terhingga 28



Soal-2 • Buatlah program yang menerima masukan 10 buah bilangan integer (dari keyboard) dan menuliskan ke layar jumlah total ke-10 integer tersebut. Masukan Tampilan di Layar • Contoh: 2 18



9/16/15



1 0 -9 7 13 2 2 1 -1



KU1072/Pengenalan Teknologi Informasi B



29



Mulai



Alt. Solusi Soal-2: Menggunakan for (Flowchart) Program Jumlah10Angka { Menerima masukan 10 buah integer dan menjumlahkan totalnya }



sum := 0 For false



KAMUS X : integer i, sum : integer ALGORITMA { Lihat flowchart di samping }



i := 1 i >= 10 true input(X) sum := sum + X i := i + 1 output(sum)



9/16/15



KU1072/Pengenalan Teknologi Informasi B



Seles ai



30



Alt. Solusi Soal-2: Menggunakan For (Pascal) Program Jumlah10Angka; { Menerima masukan 10 buah integer dan menjumlahkan totalnya } { KAMUS } var X : integer; i, sum : integer; { ALGORITMA } begin sum := 0; { Inisialisasi-aksi } for i := 1 to 10 do begin readln(X); { Aksi } sum := sum + X; { Aksi } end; writeln (sum); end. 9/16/15



{ Terminasi } KU1072/Pengenalan Teknologi Informasi B



31



Mulai



Alt. Solusi Soal-2: Menggunakan repeatuntil (Flowchart)



sum := 0 i := 1 repeatuntil



Program Jumlah10Angka { Menerima masukan 10 buah integer dan menjumlahkan totalnya } KAMUS X : integer i, sum : integer



input(X) sum := sum + X i := i + 1



false



ALGORITMA { Lihat flowchart di samping }



i> 10 true output(sum)



9/16/15



KU1072/Pengenalan Teknologi Informasi B



Seles ai



32



Alt. Solusi Soal 2: Menggunakan repeat-until (Pascal) Program Jumlah10Angka; { Menerima masukan 10 buah integer dan menjumlahkan totalnya } { KAMUS } var X : integer; i, sum : integer; { ALGORITMA } begin sum := 0; { Inisialisasi-aksi } i := 1; repeat readln(N); sum := sum + i := i + 1; until (i > 10); writeln (sum); end. 9/16/15



{ First-Element } { Aksi } X; { Aksi } { Next-Element } { Kondisi-Berhenti } { KU1072/Pengenalan Terminasi } Teknologi Informasi B



33



Soal-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. 9/16/15



KU1072/Pengenalan Teknologi Informasi B



34



Soal-3 (2) • Contoh input/output



9/16/15



No Input



Output



1



Jumlah mhs = 5 Rata-rata = Nilai tugas = 48.00 100 20 10 35 75



2



Jumlah mhs = 4 Rata-rata = Nilai tugas = 42.25 90 45 34 0



KU1072/Pengenalan Teknologi Informasi B



35



Mulai



Alt. Solusi Soal-3: Menggunakan for (Flowchart)



input(N) sum := 0 For false



Program RataRataNilaiTugas { Menerima N nilai tugas KU1072 dan menghitung rataratanya } KAMUS N, X : integer i, sum : integer rata : real



i >= N true input(X) sum := sum + X i := i + 1



ALGORITMA { Lihat flowchart di samping }



9/16/15



i := 1



KU1072/Pengenalan Teknologi Informasi B



rata := sum/N output(rata) Seles ai



36



Alt. Solusi Soal-3: Menggunakan For (Pascal) Program RataRataNilaiTugas; { Menerima N nilai tugas KU1072 dan menghitung rataratanya } { KAMUS } var N, X : integer; i, sum : integer; rata : real; { ALGORITMA } begin writeln(‘Jumlah mhs = ’); readln(N); { Inisialisasi } sum := 0; { Inisialisasi } Menuliskan 2 writenln (‘Nilai tugas =’); angka di for i := 1 to N do belakang begin readln(X); { Aksi } sum := sum + X; { Aksi } end; rata := sum/N; { KU1072/Pengenalan Terminasi } Teknologi 9/16/15 writeln (‘Rata-rata = ’,Informasi rata:0:2); { Terminasi } B end.



37



Soal-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 bilangan • Jika dari masukan pertama sudah menuliskan -999, maka tuliskan pesan “Tidak ada data yang diolah” • Petunjuk: Gunakan pengulangan while-do 9/16/15



KU1072/Pengenalan Teknologi Informasi B



38



Soal-4 (2) • Contoh input/output No Input 1 -1 12 -6 10 2 -999 2 -999



9/16/15



Output Banyak bilangan = 5 Jumlah total = 17 Rata-rata = 3.40



Tidak ada data yang diolah KU1072/Pengenalan Teknologi Informasi B



39



Mulai



Alt. Solusi Soal-4 Sketsa Flowchart Program RataBilangan { Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan menampilkan banyak bilangan, total, dan rata-ratanya }



sum := 0; count := 0 input(X)



inisi alisa si FirstElmt



while-do



KAMUS X, count, sum : integer rata : real ALGORITMA { Lihat flowchart di samping }



Terminasi



Seles ai 9/16/15



KU1072/Pengenalan Teknologi Informasi B



40



Mulai sum := 0; count := 0



Alt. Solusi SoalFlowchart Detil



input(X) false



X -999 true sum := sum + X count := count + 1 count > 0 false



Terminasi 9/16/15



while-do Aksi



true



rata := sum/count output(count, sum, rata) output(‘Tidak ada data yang diolah’)



KU1072/Pengenalan Teknologi Informasi B



Seles ai



41



Program RataBilangan; { Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan menampilkan banyak bilangan, total, dan rata-ratanya } { KAMUS } var X, count, sum : integer; rata : real; { ALGORITMA } begin sum := 0; count := 0; { Inisialisasi } readln (X); { First-Element } while (X -999) do { Kondisi-mengulang } begin sum := sum + X; count := count + 1; readln (X); { Next-Element } end; { X = -999 } Formatting { Terminasi } penulisan real: if (count > 0) then 4 digit di depan begin writeln ('Banyak bilangan = ', count); koma, 2 digit di writeln ('Jumlah total = ', sum); belakang koma rata := sum/count; writeln ('Rata-rata = ', rata:4:2); end else begin { count = 0, artinya tidak ada bilangan yang dientri } writeln ('Tidak ada data yang diolah'); end; KU1072/Pengenalan Teknologi 9/16/15 42 Informasi B end.



Alt. Solusi Soal-4 (Pascal)



Soal-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-do



9/16/15



KU1072/Pengenalan Teknologi Informasi B



43



Soal-5 (2) No Input • Contoh input/outpu 1 -1 7 t 12 -6 10 2 0 -999 2



9/16/15



-999



Output Bilangan Bilangan Bilangan Bilangan



genap ada 5 ganjil ada 2 positif ada 4 negatif ada 2



Bilangan Bilangan Bilangan Bilangan



genap ada 0 ganjil ada 0 positif ada 0 negatif ada 0



KU1072/Pengenalan Teknologi Informasi B



44



Mulai



countgenap := 0; countganjil := 0 countpos := 0; countneg := 0



Alt. Solusi Soal-5 Sketsa Flowchart Program CountBilangan { Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan dan menampilkan banyak bilangan genap, ganjil, positif, negatif }



input(X) while-do false



KAMUS X : integer countgenap, countganjil, countpos, countneg : integer



FirstElmt



X -999



true Count genap/ganjil



Aksi



Count pos/neg



ALGORITMA { Lihat flowchart di samping } 9/16/15



inisialisa si



KU1072/Pengenalan Teknologi Informasi B



Terminasi Seles ai



45



Mulai



Alt. Solusi Soal-5 Flowchart Detil (Part-1)



countgenap := 0; countganjil := 0 countpos := 0; countneg := 0 input(X) false



while-do



X -999 true



Count genap/ganjil



true



X mod 2 =0



countgenap := countgenap + 1 A



false countganjil := countganjil + 1



B 9/16/15



Connector: jika gambar flowchart harus berpindah halaman



KU1072/Pengenalan Teknologi Informasi B



C 46



while-do B



A



C Count pos/neg



X



X>0



X 0) then begin countpos := countpos + 1; end else if (X < 0) then begin 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); Teknologi writeln ('Bilangan positif KU1072/Pengenalan ada ', countpos); 9/16/15 48 Informasi B writeln ('Bilangan negatif ada ', countneg);



Alt. Solusi Soal5 (Pascal)



Soal-6: Lagu Anak Ayam • Masih ingatkah dengan lagu Anak Ayam?? Anak ayam turunlah 5 Mati satu tinggallah 4 generalis Mati satu tinggallah 3 asi Mati satu tinggallah 2 Mati satu tinggallah 1 Mati satu tinggal induknya



Anak ayam turunlah N Mati satu tinggallah N-1 Mati satu tinggallah N-2 …. Mati satu tinggallah 1 Mati satu tinggal induknya



• Buatlah 3 versi program yang menerima masukan sebuah integer positif > 0, misalnya N, dan menuliskan lirik lagu Anak Ayam dengan memanfaatkan pengulangan: – Repeat-until – While-do – For 9/16/15



KU1072/Pengenalan Teknologi Informasi B



49