KU1072_Pengulangan_Pascal_Algoritmik_130915_edited.pptx

Embed Size (px)

Citation preview

PowerPoint Presentation

Pengulangan/Looping(dalam Matlab+ Notasi Algoritmik)Tim Penyusun Materi PTI-BKU1072/Pengenalan Teknologi Informasi BTahap Tahun Pertama BersamaInstitut Teknologi Bandung

19/14/2015KU1072/Pengenalan Teknologi Informasi B9/14/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

14/09/2015KU1072/Pengenalan Teknologi Informasi B314/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: 14/09/2015KU1072/Pengenalan Teknologi Informasi B5123%ALGORITMAclc clear all disp (1); disp (2); disp (1+2);

Smiley menunjukkan bahwa masih tidak capek ditulisKU1072/Pengenalan Teknologi Informasi B9/14/20155Menulis 1 s.d. 3Tuliskan program yang menuliskan angka 1 s.d. 3 dan selanjutnya 1+2+3 ke layarContoh keluaran: 14/09/2015KU1072/Pengenalan Teknologi Informasi B61236%ALGORITMAclc clear all disp (1); disp (2); disp (3); disp (1+2+3);Smiley menunjukkan bahwa masih tidak capek ditulis

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

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

%ALGORITMAclc clear all disp (1); disp (2); disp (3); disp (1+2+3); % { lanjutkan sendiri!! } disp (100); disp (1+2+3+4+5+6+7+8+9+10+11...+100);

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

1 s.d. 1000 ???1 s.d. 10000 ???1 s.d. 1000000 ???.14/09/2015KU1072/Pengenalan Teknologi Informasi B9Bagaimana kalauSudah tidak mungkin dengan cara seperti sebelumnyaKU1072/Pengenalan Teknologi Informasi B9/14/201599/14/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/14/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: 14/09/2015KU1072/Pengenalan Teknologi Informasi B12N = 1Tampilan di layar:11N = 5Tampilan di layar:1234515N = 10Tampilan di layar:12345678910559/14/2015WD/PTI-B131. Pengulangan Berdasarkan Kondisi Berhenti (repeat-until)flag = true;while flag% do stuff

if ~conditionflag = false;endend% secara spesifik tidak ada comand repeat-until pada matlabMatlabInisialisasi-Aksi

First-Element

repeat

AksiNext-Element

until (kondisi-berhenti)

TerminasiNotasi Algoritmik13repeat-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 tertentu14/09/2015KU1072/Pengenalan Teknologi Informasi B14Studi Kasus: Repeat-Until (Algoritmik)14/09/2015KU1072/Pengenalan Teknologi Informasi BProgram JumlahAngka{ Menghitung 1+2+3+...+N; Asumsi: N > 0 }ALGORITMA input(N); sum 0

i 1

repeat

output(i) sum sum + i

i i + 1 until (i > N)

output(sum)Next-elmtInisialisasiFirst-ElmtAksiKondisi-BerhentiTerminasiStudi Kasus: repeat-until (Matlab)14/09/2015KU1072/Pengenalan Teknologi Informasi B16%Program JumlahAngka;%{ Menghitung 1+2+3+...+N; Asumsi N > 0 }%{ ALGORITMA }clcclear all N=input ('N='); %{ Inisialisasi-aksi } sum = 0; %{ Inisialisasi-aksi } i = 1; %{ First-element } flag = true;while flag disp (i); %{ Aksi } sum = sum + i; %{ Aksi } i = i + 1; %{ Next-Element } if (i > N) flag = false; endendsumKU1072/Pengenalan Teknologi Informasi B9/14/2015169/14/2015WD/PTI-B172. Pengulangan Berdasarkan Kondisi Pengulangan (while-do)%Inisialisasi-aksi%First-Element while (kondisi-mengulang) %Aksi %Next-Elementend% Kondisi-pengulangan=false %Terminasi

MatlabInisialisasi-aksi

First-Element

while (kondisi-mengulang) do

Aksi Next-Element

{ Kondisi-pengulangan=false }

TerminasiNotasi Algoritmik17while-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

14/09/2015KU1072/Pengenalan Teknologi Informasi B18Studi Kasus: While-do (Algoritmik)14/09/2015KU1072/Pengenalan Teknologi Informasi BProgram JumlahAngka{ Menghitung 1+2+3+...+N; Asumsi: N > 0 }ALGORITMA input(N); sum 0

i 1

while (i N }

output(sum)Next-elmtInisialisasiFirst-ElmtAksiKondisi-mengulangTerminasiStudi Kasus: While-Do Matlab14/09/2015KU1072/Pengenalan Teknologi Informasi B20%Program JumlahAngka;%{ Menghitung 1+2+3+...+N; N > 0 }clcclear all%{ ALGORITMA } N=input('N='); sum=0; i=1; while (i 0 }ALGORITMA input(N); sum 0

i traversal [1..N]

output(i) sum sum + i

output(sum)pencacah: iInisialisasi -pencacah: i = 1kondisi pengulangan: i 0 }clcclear all%{ ALGORITMA } N=input('N='); %{ Inisialisasi-aksi } sum=0; %{ Inisialisasi-aksi } for i= 1:N %{ First-element, Next-Element } disp(i); %{ Aksi } sum = sum + i; %{ Aksi } end; disp(sum); %{ Terminasi }

pencacah: iInisialisasi -pencacah: i = 1kondisi pengulangan: i 10) { kondisi-berhenti }

output(sum) { terminasi }Alt. Solusi Soal 2: Menggunakan repeat-until (Matlab)14/09/2015KU1072/Pengenalan Teknologi Informasi B33%Program Jumlah10Angka;%{ Menerima masukan 10 buah integer dan menjumlahkan totalnya }%{ ALGORITMA } sum = 0; %{ Inisialisasi-aksi } i = 1; %{ First-Element } flag = true;while flag X=input('X='); %{ Aksi } sum = sum + X; %{ Aksi } i = i + 1; %{ Next-Element } if (i > 10)%{ Kondisi-Berhenti } flag = false; endendsum%{ Terminasi }KU1072/Pengenalan Teknologi Informasi B9/14/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.14/09/2015KU1072/Pengenalan Teknologi Informasi B34Soal-3 (2)Contoh input/output14/09/2015KU1072/Pengenalan Teknologi Informasi B35NoInputOutput1Jumlah mhs = 5Nilai tugas =10020103575Rata-rata = 48.002Jumlah mhs = 4Nilai tugas =9045340Rata-rata = 42.25Alt. Solusi Soal-3:Menggunakan traversal (N. Algoritmik)14/09/2015KU1072/Pengenalan Teknologi Informasi B36Program RataRataNilaiTugas{ Menerima N nilai tugas KU1072 dan menghitung rata-ratanya }ALGORITMA input(N); { Inisialisasi } sum := 0; { Inisialisasi }

i traversal [1..N] input(X);{ Aksi } sum sum + X;{ Aksi } rata sum/N; { Terminasi } output (rata); { Terminasi } KU1072/Pengenalan Teknologi Informasi B9/14/201536Alt. Solusi Soal-3: Menggunakan For (Matlab)14/09/2015KU1072/Pengenalan Teknologi Informasi B37%Program RataRataNilaiTugas;%{ Menerima N nilai tugas KU1072 dan menghitung rata-ratanya }%{ ALGORITMA }clear all clc disp('Jumlah mhs = '); N=input('N='); %{ Inisialisasi } sum = 0; %{ Inisialisasi } disp ('Nilai tugas'); for i = 1 : N; X=input('X='); %{ Aksi } sum = sum + X; %{ Aksi } end rata = sum/N; %{ Terminasi } disp (['Rata-rata = ','',num2str(rata)]); %{ Termina}KU1072/Pengenalan Teknologi Informasi B9/14/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-do14/09/2015KU1072/Pengenalan Teknologi Informasi B38Soal-4 (2)Contoh input/output14/09/2015KU1072/Pengenalan Teknologi Informasi B39NoInputOutput1-112-6102-999Banyak bilangan = 5Jumlah total = 17Rata-rata = 3.402-999Tidak ada data yang diolah14/09/2015KU1072/Pengenalan Teknologi Informasi B40Alt. Solusi Soal-4SketsaProgram RataBilangan{ Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan menampilkan nilai rata-ratanya }ALGORITMA sum 0; count 0 { Inisialisasi }

input(X) { First-Elmt }

{ Proses pengulangan dengan while-do }

{ Terminasi } Agar tidak pusing dengan detil, programmer bisa bekerja dengan sketsa flowchart terlebih dahulu, lalu baru dibuat detil spt pada slide selanjutnyaKU1072/Pengenalan Teknologi Informasi B9/14/20154014/09/2015KU1072/Pengenalan Teknologi Informasi B41Alt. Solusi Soal-4(N. AlgoritmikDetil)Program RataBilangan{ Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan menampilkan nilai rata-rata }ALGORITMA sum 0; count 0 { Inisialisasi } input(X) { First-Elmt } { Proses pengulangan dengan while-do } while (X != -999) do sum sum + X count count + 1 input(X) { X == -999 } { Terminasi } if (count > 0) then rata sum/count output(count,sum,rata) else { count = 0 } output(Tidak ada data yang diolah)Agar tidak pusing dengan detil, programmer bisa bekerja dengan sketsa flowchart terlebih dahulu, lalu baru dibuat detil spt pada slide selanjutnyaKU1072/Pengenalan Teknologi Informasi B9/14/20154114/09/2015KU1072/Pengenalan Teknologi Informasi B42%Program RataBilangan;%{ Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan dan menampilkan banyak bilangan, total, dan rata-ratanya }%{ ALGORITMA } sum= 0; count = 0; %{ Inisialisasi } X=input ('X='); %{ First-Element } while (X ~= -999) %{ Kondisi-mengulang } sum= sum + X; count= count + 1; X=input ('X='); %{ Next-Element } end %{ X = -999 } %{ Terminasi } if (count > 0) disp (['Banyak bilangan = ', num2str(count)]); disp (['Jumlah total = ', num2str(sum)]); rata= sum/count; disp (['Rata-rata = ', num2str(rata)]); else %{ count = 0, artinya tidak ada bilangan yang dientri } disp ('Tidak ada data yang diolah'); endAlt. Solusi Soal-4 (Matlab)Ini 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/14/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-do14/09/2015KU1072/Pengenalan Teknologi Informasi B43Soal-5 (2)Contoh input/output14/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 014/09/2015KU1072/Pengenalan Teknologi Informasi B45Alt. Solusi Soal-5SketsaProgram CountBilangan{ Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan dan menampilkan banyak bilangan genap, ganjil, positif, negatif }ALGORITMA countgenap 0; countganjil 0 countpos 0; countneg 0

input(X) { First-Elmt } while (X -999) do { Count genap/ganjil } { Count positif/negatif } input(X) { Next-Elmt } { X = -999 }

{ Terminasi }

Agar tidak pusing dengan detil, programmer bisa bekerja dengan sketsa terlebih dahulu, lalu baru dibuat detil spt pada slide selanjutnyaKU1072/Pengenalan Teknologi Informasi B9/14/20154514/09/2015KU1072/Pengenalan Teknologi Informasi B46Alt. Solusi Soal-5Notasi AlgoritmikDetil(part-1)Program CountBilangan{ Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan dan menampilkan banyak bilangan genap, ganjil, positif, negatif }ALGORITMA countgenap 0; countganjil 0 countpos 0; countneg 0

input(X) { First-Elmt } while (X -999) do { Count genap/ganjil } if (X mod 2 == 0) then countgenap countgenap + 1 else { X mod 2 0 } countganjil countganjil + 1 ...

Agar tidak pusing dengan detil, programmer bisa bekerja dengan sketsa flowchart terlebih dahulu, lalu baru dibuat detil spt pada slide selanjutnyaKU1072/Pengenalan Teknologi Informasi B9/14/20154614/09/2015KU1072/Pengenalan Teknologi Informasi B47Alt. Solusi Soal-5Notasi AlgoritmikDetil(part-1)ALGORITMA ... { Count positif/negatif } if (X > 0) then countpos countpos + 1 else if (X < 0) then countneg countneg + 1 { X = 0, tidak melakukan apa-apa }

input(X) { Next-elmt } { X = -999 } { Terminasi } output(countgenap) output(countganjil) output(countpos) output(countneg)

Agar tidak pusing dengan detil, programmer bisa bekerja dengan sketsa flowchart terlebih dahulu, lalu baru dibuat detil spt pada slide selanjutnyaKU1072/Pengenalan Teknologi Informasi B9/14/20154714/09/2015KU1072/Pengenalan Teknologi Informasi B48%Program CountBilangan; %{ Menerima masukan sejumlah bilangan integer sampai pengguna memasukkan -999 dan dan %menampilkan banyak bilangan genap, ganjil, positif, negatif }%{ ALGORITMA } countgenap=0; countganjil=0; countpos=0; countneg=0; X=input ('X='); %{ First-Element } while (X ~= -999) if (mod(X,2)==0) countgenap = countgenap + 1; else %{ mod(X,2) ~= 0 } countganjil = countganjil + 1; end if (X > 0) countpos = countpos + 1; else if (X < 0) countneg = countneg + 1; end %{ X = 0, tidak melakukan apa-apa } end X=input ('X='); %{ Next-Element } end %{ X = -999 } disp (['Bilangan genap ada ', num2str(countgenap)]); disp (['Bilangan ganjil ada ', num2str(countganjil)]); disp (['Bilangan positif ada ', num2str(countpos)]); disp (['Bilangan negatif ada ', num2str(countneg)]);Alt. Solusi Soal-5 (Matlab)Ini adalah contoh di mana elemen pengendali pengulangan ditentukan oleh nilai variable yang berasal dari masukan pengguna (keyboard).KU1072/Pengenalan Teknologi Informasi B9/14/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

14/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