Sabtu, 15 Desember 2012

PERULANGAN ALGORITMA DAN PEMROGRAMAN

PERULANGAN
ALGORITMA DAN PEMROGRAMAN

  PERULANGAN Perulangan adalah suatu proses terhadap hal yang sama yang diulang beberapa kalisampai suatu kondisi atau batas tertentu terpenuhi. Untuk memberikan gambaran mengenaiperulangan dapat disimak pada kasus berikut ini.Terdapat sebuah permasalahan bagaimana mencetak bilangan bulat dari 1 sampai dengan 10.Hasil output yang diinginkan adalah 1 2 3 4 5 6 7 8 9 10.Langkah-langkah untuk menyelesakan permasalahan diatas dapat dilakuakan sebagai berikut:1. Menentukan nilai awal yaitu 1.2. Cetakan nilai tersebut sebanyak 10 kali.3. Setiap langkah mencetak lakukan penambahan 1 (increament 1). Algoritma diatas mengandung langkah-langkah yang diulang. Langkah-langkah inidisebut dengan perulangan. Istilah lain dari perulangan adalah looping atau repetition.Didalam bahasa pemrograman pascal perulangan dapat dituliskan dengan tiga pernyataanyang berbeda. Pernyataan tersebut adalah:- for to do- while do- repeat untilPenjelasan mengenai ketiga pernyataan diatas akan dibahas pada bagian-bagian tersendiri.1. Struktur For Struktur perulangan for merupakan struktur untuk meuliskan perulangkan selama dalam kondisi tertentu. Nilai perulangan sudah ditentukan dengan sebuah nilai awal dan nilai akhir. Nilai awal merupakan nilai yang diberikan untuk memulai suatu instruksi yang berada didalam blok tersebut. Perulangan terhadap pernyataan atau instrukti tersebut akan berhenti jika kondisi akhir yang telah disebut terpenuhi. Terdapat dua buah jenis pernyataan dengan menggunakan struktur for yaitu pernyataan naik dan pernyataan turun. Perulangan naik dinyatakan dengan pernyataan For…To…do, sedangkan untuk perulangan turun dapat dinyatakan dengan pernyataan For…downto …do. Pernyataan For…to…do dapat dituliskan dengan sintaks For counter=nilai_awal To nilai_akhir Do aksi/blok aksi dimana nilai_akhir lebih besar dari nilai awal. Untuk pernyataan yang sebaliknya dapat digunakan perintah For..Downto..Do dengan sintaks For counter=nilai_awal downto nilai_akhir do aksi/blok aksi dimana nilai_awal lebih besar dari nilai akhir. Algoritma berikut adalah tentang mencetak bilangan bulat dari 1 sampai dengan 10 dengan menggunakan perulangan For…To…Do. Algoritma PerulanganFor1; Deklarasi I:integer Deskripsi mulai For I  1 to 10 do
  • 3. Write(i) End for SelesaiAlgoritma ini dapat digambarkan dengan flowchart sebagai berikut: M u la i For i =1 to 1 0 d o O u tp u t( i) N ext i S e le s a i Gambar 9. Flowchart perulangan for to doProgram 17. Perulangan dengan for 1Program perulananFor1;Uses wincrt;Var I:integer;Begin Writeln(‘Program Perulangan dengan For’); For i:=1 to 10 do Writeln(i);End.Hasil output programProgram Perulangan dengan For12345678910 Pada kasus diatas, perintah writeln(i) diulang sebanyak sepuluh kali, mulai dari i=1sampai i=10. Perulangan ini secara otomatis akan menambahkan counter dengan 1.Sehinggga i akan mengalami increament 1 sampai dengan i =10. Apabila kasus tersebut dibalik yaitu mengulang penulisan i tetapi i dimulai dari 10sampa ke 1 maka dapat dilakukan dengan perintah for…downto…do.Algoritma PerulanganFor2;Deklarasi
  • 4. I:integerDeskripsi Mulai For I  10 downto 1 do Write(i) SelesaiAlgoritma ini dapat digambarkan dengan flowchart dengan sebabagai berikut: M u la i For i =10 d o w n to 1 d o O u tp u t( i) N ext i S e le s a i Gambar 10. Flowchart for downto doProgram 18. Perulangan denga for 2Program perulananFor;Uses wincrt;Var I:integer;Begin Writeln(‘Program Perulangan dengan For’); For i:=10 downto 1 do Writeln(i);End.Hasil output program:Program Perulangan dengan For10987654321 Program diatas akan mencetak nilai i mulai dari 10 sampai dengan 1. I sebagaiconter dari perulangan maka secara otomatis akan mengalami pengurangan 1(decreament) pada setiap langkah perulangan. Pernyataan aksi yang ada pada programdiatas hanya terdiri dari satu statemen. Apabila aksi tersebut terdiri dari beberapa
  • 5. statemen, maka penulisannya didalam program pascal harus ditambah dengan penyaaanbegin sebelum aksi dan pernyataan end; setelah pernyataan aksi. Contoh yang lain dapat dilihat pada kasus menghitung nilai rata-rata dari beberapadata yang dimasukan. Perulangan akan dilakukan untuk membaca data danmenjumlahkannya dalam variabel tertentu. Hasil penjumlahan dari data yang dimasukantersebut akan dihitung rata-ratanya dengan pembagian.Algoritma rerata1;Deklarasi I,n,jumlah,x:integer Rerata:real;Deskripsi Mulai Read (n) Jumlah0 For I  1 to n do Read(x) JumlahJumlah+x End for Rerata jumlah/n Write(rerata) SelesaiAlgoritma ini dapat digambarkan dengan flowchet sebagai berikut: M u la i in p u t( n ) ju m l a h = 0 For i =1 to n d o in p u t( x ) ju m l a h = ju m l a h + x N ext i r e r a t a = ju m l a h / n o u tp u t(re ra ta ) S e le s a i
  • 6. Program 11. Flowchart menghitung rata-rata 1 Program 19. Menghitung rata-rata 1 Program rerata1; Uses wincrt; Var i,n,x,jumlah:integer; Rerata:real; Begin Writeln(‘Program Mengitung Rata-rata’); Write(‘Masukan Jumlah Data=’); Readln(n); Jumlah:=0; For i:=1 to n do Begin Write(‘Masukan Data ke-‘,I,’=’); Readln(x); Jumlah:=jumlah+x; End; Rerata:=jumlah/n; Writeln(‘Rata-rata=’,rerata:5:2); End. Hasil Output program Program Mengitung Rata-rata Masukan Jumlah Data=5 Masukan Data ke-1=6 Masukan Data ke-2=5 Masukan Data ke-3=8 Masukan Data ke-4=7 Masukan Data ke-5=7 Rata-rata= 6.60 Pada perulangan diatas, aksi tidak hanya terdiri satu satu pernyataan tetapi lebih dari satu pernyataan. Setelah pernyataan for maka perlu ditambahkan pernyataan begin dan pernyataan end setelah akhir blok aksi ditambahkan pernyataan end.2. While do Struktur while do merupakan perintah untuk melakukan perulangan selama sebuah kondisi terpenuhi atau bernilai benar. Jika kondisi yang disyaratkan sudah tidak terpenuhi maka perulangan akan berhenti. Proses pengecekan terhadap kondisi akan dilakukan terlbi dahulu sebelum pernyataan yang akan diulang. Oleh karena itu perlu adanya sebuah proses yang dapat mengontrol kondisi agar berhenti. Perulangan dengan while do lebih fleksibel karena program tidak ditentukan berapa kali perulangan terjadi. Dari kasus mencetak bilangan dari 1 sampai 10 pada bagian sebelumnya dapat juga diselesaikan dengan struktur while do. Algoritma PerulanganWhile; Deklarasi i:integer Deskripsi
  • 7. Mulai I 1 While (I <= 10 ) do Write(i) I  i+1 Endwhile SelesaiAlgoritma ini dapat digambarkan dengan flowchart sebagai berikut: M u la i i= 1 tid a k i < =10 ya o u tp u t( i) i= i+ 1 S e le s a i Gambar 12. Flowchart perulangan whileProgram 20. Perulangan dengan whileProgram perulanganwhile;Uses wincrt;Var I:integer;Beginwriteln(Program Perulangan dengan While);I:=1;While i<= 10 do Begin Writeln(i); I:=i+1; End;End.Hasil Output programProgram Perulangan dengan While12345678910
  • 8. Pada program tersebut, aksi setelah while do dinyatakan dalam beberapa pernyataansehingga dituliskan dalam pernyataan begin dan end. Pada program diatas perulangansudah diketahui yaitu sebanyak sepuluh kali. Dalam kasus yang lain struktur while dodapat digunakan untuk perulangan yang belum diketahui jumlah perulangannya. Sebagaicontoh program untuk menghitung data yang dimasukan dan rata-ratanya sampai datayang dimasukan berupa angka nol (0).Algoritma rerata2;Deklarasi i,n,jumlah,x:integer Rerata:real;Deskripsi Mulai Read (x) n0 Jumlah0 While (x <>0) do N n+1 JumlahJumlah+x Read(x) Endwhile Rerata jumlah/n Write(n) Write(jumlah) Write(rerata) SelesaiAlgoritma ini dapat digambarkan dengan flowchart sebagai berikut:
  • 9. M u la i in p u t(x ) n=0 ju m l a h = 0 tid a k x <> 0 ya n=n+1 ju m l a h = ju m l a h + x in p u t(x ) r e r a t a = ju m l a h / n o u tp u t ( n , ju m l a h , r e r a t a ) S e le s a i Gambar 13. Flowchart menghitung rata-rata dengan whileProgram 21. Menghitung rata-rata dengan whileProgram rerata2.uses wincrt;var i,n,x,jumlah:integer; rerata:real;beginwriteln(Masukan nilai-nila (0 untuk berhenti)=);readln(x);n:=0;while x<>0 dobegin n:=n+1; jumlah:=jumlah+x; read(x);end;rerata:=jumlah/n;writeln(‘Jumlah=’,jumlah);writeln(‘Rerata=’,rerata);end.Hasil output program:Masukan nilai-nila (0 untuk berhenti)=6797890Jumlah=46Rerata= 7.66666666666667E+0000
  • 10. Pada program diatas data yang diinputkan berupa angka nol (0) tidak akan dihitung karena sebagai stoping point (tanda untuk berhenti perulangan).3. Repeat Until Struktur Repeat..until merupakan sebuah perintah untuk melakukan perualangan terhadap suatu pernyataan atau blok pernyataan sampai suatu kondisi terpenuhi. Jika kondisi sudah terpenuhi maka pernyataan tidak akan diulang lagi. Pemeriksaan kondisi ada pada bagian setelah pernyataan yang diulang. Struktur ini juga perlu adanya suatu proses yang dapat mengontrol program agar program dapat berhenti. Perulangan dengan repeat until juga lebih fleksibel bila dibandingkan dengan struktur for to do. Perulangan ini juga tidak ditentukan berapa kali suatu pernyataan harus dilakukan. Dari kasus mencetak bilangan dari 1 sampai 10 dapat dilihat pada algoritma dan program dibawah ini. Algoritma PerulanganRepeat; Deklarasi i:integer Deskripsi Mulai i 1 Repeat Write(i) I  i+1 Until (I > 10 ) selesai Algoritma ini dapat digambaran dengan flowchart sebagai berikut: M u la i i= 1 o u tp u t( i) i = i +1 tid a k i > 10 ya S e le s a i Gambar 14. Flowchart perulangan dengan repeat Program 22. Perulangan dengan repeat program perulanganRepeat;
  • 11. uses wincrt;var i:integer;beginwriteln(Program Perulangan dengan Repeat);i:=1;repeat writeln(i); i:=i+1;until i>10end.Hasil output programProgram Perulangan dengan Repeat12345678910 Pada program diatas, aksi dengan pernyataan-pernyataan yang ada setelahpernyataan while akan selalu diulang sampai pada kondisi yang dinyatakan dengan klausauntil terpenuhi. Pernyataan-pernyatan yang ada pada blok aksi tidak digunakan begin danend walupun pada blok tersebut terdapat beberapa pernyataan. Pada kasus yang lain yaitupada algoritma menghitung rata-rata dari sejumlah bilangan yang dimasukan sampaibilangan yang dimasukan berupa angka nol.Algoritma rerata2;Deklarasi i,n,jumlah,x:integer Rerata:real;Deskripsi Mulai n0 Jumlah0 Repeat N n+1 Read(x) JumlahJumlah+x Until x=0 Rerata jumlah/(n-1) Write(n) Write(jumlah) Write(rerata) SelesaiAlgoritma ini dapat digambarkan dengan flowchart sebagai berikut:
  • 12. M u la i n=0 ju m l a h = 0 n=n+1 in p u t(x ) j u m l a h = ju m l a h + x tid a k x=0 ya r e r a t a = ju m l a h / ( n - 1 ) o u tp u t ( n - 1 , ju m l a h , r e r a t a ) S e le s a i Gambar 15. Flowchart menghitung rata-rata dengan repeatProgram 23. Menghitung rata-rata dengan repeatProgram rerata3;Uses wincrt;var i,n,jumlah,x:integer; rerata:real;beginwriteln(Masukan data (0 untuk berhenti)=);n:=0;jumlah:=0;repeat n:=n+1; readln(x); jumlah:=jumlah+x;until x=0;rerata:=jumlah/(n-1);writeln(Jumlah=,jumlah);writeln(Rerata=,rerata);end.Hasil output program:Masukan data (0 untuk berhenti)=5987860Jumlah=43Rerata= 7.16666666666667E+0000
  • 13. Latihan1. Buatlah program untuk mencetak bilangan ganjil dai 1 sampai dengan 100. Pembahasan Analisa: Mencetak bilangan ganjil dari 1 sampai dengan 100 dapat dilakukan dengan perualngan. Untuk menentukan apakah sebuah bilangan tersebut bilagan ganjil atau bukan dapat dilakukan dengan modulasi 2 pada bilangan dari 1 sampai dengan 100. apabila hasil modulasi adalah 0 maka bilangan tersebut genap tetapi apabila hasil modulasi 1 maka bilangan tersebut ganjil dan siap dicetak. Algoritma cetak bilangan ganjil Deklarasi i:integer Deskripsi Mulai For i:=1 to 100 do If i mod 2 = 1 then Write(i) End if End for Selesai Program mencetak bilangan ganjil. Program Cetak_bil_ganjil; Uses wincrt; Var i:integer; Begin For i:=1 to 100 do If i mod 2 = 1 then Write(i,’ ‘); End;2. Buatlah program untuk menghitung jumlah factorial dari nilai n yan dimasukan. Nilai factorial didefinisikan sebagai berikut: 3! = 1 X 2 X 3 = 6 4! = 1 X 2 X 3 X 4 = 24 n! = 1 X 2 X 3 X …. X n Pembahasan Analisa: Nilai faktorial dari n adalah nilai perkalian mulai dari 1 sampai dengan n. perkalian ini dapat dilakukan dengan perulangan. Setiap langkah dalam perulangan akan dikalikan dengan I oleh karena itu nilai awal untuk hasilnya adalah 1. Algoritma factorial
  • 14. Deklarasi i,n:integer Fak:longint;Deskripsi Mulai Fak1 Realn(n) For i1 to n do Fakfak * i End for Write(fak) SelesaiAlgoritma dengan flowchart M u la i N F ak=1 F o r i = 1 to n d o F a k = fa k * i N ext i O u tp u t(F a k ) S e le s a iProgram menghitung nilai faktorialProgram factorial;Uses wincrt;Var i,n:integer; fak:longint;Beginwriteln(Program menghitung nilai faktorial);write(Masukan jumlah data =);readln(n);fak:=1;for i:=1 to n do fak:=fak*i;writeln(n, Faktorial =,fak);
15. end.Contoh program lainnya 

Refrensi:
    http://www.slideshare.net/ditaku/artikel-tentang-perulangan

1 komentar: