P. 1
algoritma

algoritma

|Views: 143|Likes:
Published by Ajitama Nozami F

More info:

Published by: Ajitama Nozami F on Jan 05, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

01/30/2013

pdf

text

original

BAB III STRUKTUR ALGORITMA A.

Tujuan Pada bab ini akan dibahas mengenai struktur algoritma dan penerapannya dalam bahasa pemrograman pascal. Struktur algoritma pada dasarnya terdiri dari tiga komponen utama yaitu sekuensial, percabangan, dan perulangan. Pembahasan mengenai struktur algoritma akan disertai dengan analisa kasus-kasus. Tujuan yang ingin dicapai setelah pambahasan pada bab ini, pembaca diharapkan: 1. Memiliki pengetahuan dasar tentang struktur algoritma 2. Memahami stuktur algoritma skuensial. 3. Memahami struktut algoritma seleksi 4. Memahami struktur algoritma perulangan. 5. Dapat menganalisa kasus-kasus sekuensial,seleksi, dan perulangan serta membuat algoritma dan program untuk kasus-kasus tersebut. B. Pendahuluan Algoritma, sebagaimana yang telah dijelaskan pada bab sebelumnya merupakan kumpulan langkah-langkah logis untuk menyelesaikan suatu masalah. langkah-langkah untuk menyelesaikan masalah ini pada dasarnya terbagi menjadi tiga komponen utama yaitu runtutan (sekuensial), pemilihan (selection), dan perulangan (looping). Ketiga komponen ini sangat penting untuk dipahami karena ketiga komponen ini yang menjadi dasar dari suatu algoritma. Dengan ketig komponen ini maka dapat disusun sebuah agoritma yang lebih fleksibel, ringkas, dan tepat untuk menyelesaikan permasalahan-permasalahan yang terlihat rumit. Runtutan merupakan perintah yang bersifat urut dan dilaksanakan sesuai dengan urutan penulisan. Perulangan merupakan perintah untuk melakukan sesuatu dengan cara diulang-ulang, sedangkan pemilihan merupakan perintah untuk melakukan sesuatu berdasarkan kondisi yang terjadi (sesuai). Katiga komponen ini akan dibahas secara detil pada bagian-bagian tesendiri. C. Runtutan/Sekuensial Runtutan/sekuensial adalah sekumpulan pernyataan-pernyataan yang dikerjakan secara berurutan. Yang dimaksud dengan berurutan adalah sesuai dengan urutan penulisannya. Sebuah instruksi baru akan dijalankan ketika intsruksi sebelumnya telah selesai dilaksanakan. Sebagai contoh, terdapat tiga buah gelas, gelas pertama (A) berisi air. Gelas kedua (B) berisi minyak, dan gelas ketiga (C) adalah gelas kosong. Sebuah permasalahan yang ingin delesaikan adalah bagimana memindah air yang berada digelas A dipindah ke gelas B yang semula berisi minyak. Demikian juga untuk gelas B yang berisi minyak akan dipindah ke gelas A yang semula berisi air. Permasalahan diatas dapat diselesaikan dengan algoritma sebagai berikut:

34

1. Pindahkan isi gelas A ke Gelas C yang kosong dengan demikian delas A akan menjadi kosong. 2. Pindahkan isi gelas B kedalam gelas A. Gelas A saat ini sudah berisi minyak. 3. Pindahkan air yang ada di gelas C kedalam gelas B. Algoritma diatas berisi suatu langkah-langkah yang runtut dan bernilai logis sehingga hasilnya dapat menyelesaikan permasalahannya. Proses ini disebut dengan skuensial. Pada langkah sekuensial, hasil akan dikatakan benar apabila langkah-langkah telah dilaksanakan dengan urut sesuai dengan algoritma yang telah dibuat. Apabila suatu urutan tersebut diganti maka hasilnya bisa menjadi salah. contoh: sebuah algoritma dan program perhitungan dengan pseudocode adalah sebagai berikut: Algoritma runtut; Deklarasi A,B,C:integer Deskripsi Mulai A5 B  10 A  B+2 CA+B Write(C) Selesai Algoritma tersebut juga dapat dituliskan dengan flowchart sebagai berikut:

Gambar 2. Flowchart Runtut

35

B:=10. Begin A:=5. Program runtut Program runtut. Contoh kasus yang lain adalah sebuah algoritma untuk melakukan konversi jarak dari meter ke inchi. Writeln (C).Program 10.c:integer. Program diatas akan mengasilkan output 22. Pada program yang kedua output yang dihasilkan adalah 15. Algoritma Konversi_MkeInc. Deklarasi M:real (input) CM:raeln(output) INCI:real (output) Deskripsi mulai Read(M) CM  M * 100 INCI CM / 2. A:=B+2. Var a. algorima dan program yang dapat disusun adalah seperti dibawah ini. Uses wincrt. apabila langkah-langkah didalam program tersebut diubah.54 cm. C:=A+B. Perhitungan yang dilakukan adalah 1 meter = 100 centimeter dan 1 inchi = 2. misalnya dengan menukar langkah ke-3 dan ke-4 dengan mengerjakan C:=A+B maka output yang akan dihasilkan berbeda dengan program yang pertama. End.54 Write(CM) Write(INCI) selesai Algoritma diatas dapat jga dituliskan dengan flowchart sebagai berikut: 36 .b.

54. Writeln(‘Ukuran dalam CM =’. Uses wincrt. Write(‘Masukan Jarak dalam Meter =’). jika seseorang berusia lebih dari 17 tahun maka boleh masuk tetapi apabila kondisi ini tidak terpenuhi maka seseorang tersebut tidak boleh masuk. Pemilihan ini tidak hanya berlaku untuk satu buah kondisi tetapi juga dapat beberapa kondisi. Readln(M). Flowchart konversi jarak meter ke inchi Program 11. Begin Writeln(‘Program Konversi Meter Ke Inci’).CM.INCI:5:2).M u l I n Gamber 3. Seleksi Komputer memiliki kemampuan untuk melakukan pemilihan terhadap beberapa alternatife yang ada. CM:=M*100. Program Konversi jarak meter ke inchi Program konversi_MkeInc. Sebagai contoh untuk dapat menonton film dibioskop seseorang harus sudah berumur lebih dari 17 tahun.INCI : real. Sebuah aksi atau statemen akan dilaksanakan apabila sebuah kondisi terpenuhi. O O u t p u t p u e 37 S l e .00 Ukuran dala Inci =3937. Didalam persoalan sehari-hari. Writeln(‘Ukuran dala Inci =’. INCI:=CM/2. End.CM:5:2). p u = C M C Hasil Output Program Hasil Output Program: Program Konversi Meter Ke Inci Masukan Jarak dalam Meter =100 Ukuran dalam CM =10000. Var M. Kondisi ini akan memberikan aksi yang berbeda. kasus-kasus pemilihan ini banyak sekali terjadi.01 I N I = D.

Else Perintah if . Struktur ini menunjukan jumlah kondisi dan aksi yang berlaku. didalam algritma pseudocode maupun pada program dapat nyatakan dengan perintah If ..Kasus yang lain dapat dilihat pada sebuah permasalahan bagaimana membagi mahasiswa menjadi dua kelompok. Then . Pada tabel berikut akan menunjukan perbedaan struktur tersebut. khususnya pada langkah ke 2 terdapat proses pengecekan dengan pemilihan kondisi yang berbeda maka akan memberikan statemen yang berbeda. Cetak Kelas Pada langkah-langkah diatas. Jika nim mahasiswa ganjil maka mahasiswa tersebut masuk kelompok A... Algoritma untuk menylesaikan masalah diatas dapat dilakukan dengan langkah sebagai berikut: 1. Else secara umum memiliki tiga struktur yang berbeda. Cek nim mahasiswa apakah nim mod 2 = 1 Jika benar maka mahasiswa tersebut masuk kelas A Jika salah maka mahasiswa tersebut masuk kelas B 3.. Then ... n i m m o 38 . Baca Nim dari mahasiswa 2. Then . Jika Nim mahasiswa genap maka mahasiswa tersebut masuk kelompok B. Algoritma diatas dapat dinyatakan dalam flowchart sebagai berikut: M u l a I n Gambar 4. Proses ini disebut dengan pemilihan (selection). Of. Flowchart Pemilihan Kelas p u t ( Untuk menyatakan sebuah pemilihan. 1.. Else dan perintah Case . Pernyataan If .

If Kondisi then Perintah ini digunakan untuk sebuah Aksi1 kondisi yang akan mempengaruhi dua buah Else aksi. then. Untuk kondisi kedua Else if kondisi3 then sampai kondisi sebelum terakhir Aksi 3 dinyatakan dengan else if kondisi then aksi.. Jika aksi hanya berupa satu pernyataan maka pernyataan tersebut dapat langsung dituliskan tetapi apabila aksi tersebut lebih dari satu pernyataan maka pernyataan-pernyataan tersebut dapat dituliskan dengan begin dan end pada awal dan akhir pernyataan. Deklarasi bilangan:integer (input) Deskripsi Read(bilangan) If (bilangan > 0) then Write(‘Positif’) End if Algoritma ini dapat digambarkan dengan flowchart sebagai berikut: 39 . Else if kondisi2 then Kondisi pertama dinyatakan dengan dengan Aksi2 if kondisi1 then aksi1.. Algoritma cek_positif. aksi2 maupun aksi n dapat berupa pernyataan tunggal maupun pernyataan majemuk. Perintah If. Gambaran lebih detil mengenai ketiga jenis instrusi tersebut dapat dilihat pada kasus pengecekan sebuah bilangan apakah merupakan bilangan positif atau bukan. Jika kondisi terpenuhi maka aksi Aksi2 pertama yang akan dijalankan tetapi sebaliknya jika kondisi tersebut tidak terpenuhi maka aksi kedua yang akan dijalankan.Tabel 12. aksiN-1 else aksiN Pada tabel diatas. If Kondisi1 then Perintah ini digunakan untuk banyak Aksi1 kondisi yang mempengaruhi banyak aksi. baik aksi1. else Perintah Keterangan If Kondisi then Perintah ini digunakan untuk satu buah Aksi1 kondisi yang mempengaruhi suatu aksi. … Sedangkan untuk kondisi terakhir cukup else if kondisiN-1 then dinyatakan dengan else.

Aksi pada program tersebut hanya terdiri dari satu pernyataan. Didalam aksi tersebut dapat diberikan pernyataan tambahan dengan menyebutkan bilangan yang dimasukan sehingga menjadi dua buah pernyataan. O u t p Algoritma tersebut dapat dikembangkan dengan sebuah kondisi yang mempengaruhi dua buah aksi. Jika aksi tersebut terdiri dari dua buah pernyataan atau lebih dapat ditambahkan begin dan end pada awal dan akhir pernyataan-pernyataan tersebut. Readln(bilangan). End. Algortima dari pengembangan ini dapat lihat sebagai berikut ini. Flowchart pengecekan bilangangan positif Program 12. End. Begin Writeln(‘Program Cek Bilangan Posistif’). Write(‘Masukan Sebuah Angka=’). Algoritma cek_positif2. p u t ( Output dari program Program Cek Bilangan Posistif Masukan Sebuah Angka=9 Bilangan Positif B i l a n Y u Pada program diatas. Var bilangan:integer. Writeln(‘Bilangan Positif’). If bilangan > 0 then Writeln(‘Bilangan Positif’). Deklarasi S 40 e l e . Uses wincrt.M u I n Gambar 5. maka program dapat ditulis sebagai berikut: If bilangan > 0 then Begin Writeln(‘Bilangan=’. sebuah kondisi mempengaruhi sebuah aksi sehingga penulisannya menggunakan perintah if kondisi then aksi.bilangan). Pengecekan bilangan positif Program Cek_positif.

Program 13. Pengecekan bilangan positif 2.bilangan:integer (input) Deskripsi Mulai Read(bilangan) If (bilangan > 0) then Write(‘Positif’) Else Write(‘Bukan Positif’) End if Selesai Algoritma ini dapat digambarkan denganflowchart sebagai berikut: M u l a I n Program Cek_positif2. If bilangan > 0 then Writeln(‘Bilangan Positif’) Else Writeln(‘Bukan Bilangan Positif’). Write(‘Masukan Sebuah Angka=’). p u t ( b Gambar 6. Flowchart Cek bilangan positif 2. Var bilangan:integer. Jika kondisi tersebut (bilangan > 0) terpenuhi maka aksi pertama yang akan dijalankan yaitu menuliskan Positif. Uses wincrt. Begin Writeln(‘Program Cek Bilangan Posistif’). B i l a Y n a u g Hasil Output Program Program Cek Bilangan Posistif Masukan Sebuah Angka=-5 Bukan Bilangan Positif Sebuah kondisi mempengaruhi dua buah aksi sehingga dalam penulisannya dapat digunakan perintah if kondisi then aksi1 else aksi2.) sebagai akhir perintah karena O u t p 41 t . Jika kondisi tersebut tidak terpenuhi maka aksi yang kedua yang akan dijalankan yaitu menuliskan Bukan Positif. Readln(bilangan). End. Pada pernyataan aksi yang pertama tidak diberikan tanda titik koma (.

If bilangan > 0 then Begin Writeln(‘Bilangan=’. Writeln(‘Bukan Bilangan Positif’). Pada setiap aksi tersebut juga dapat ditambahkan satu pernyataan yang menampilkan bilangan yang dimasukan sehingga setiap aksi terdiri dari dua pernyataan.masih terdapat perintah berikutnya didalam pernyataan if. End if Pengembangan berikutnya dapat dilakukan untuk memberikan gambaran mengenai beberapa kondisi yang mempengaruhi beberapa aksi. End Else Begin Writeln(‘Bilangan=’. End. Algoritma cek_positif3. Pada algoritma berikut adalah gambaran untuk beberapa kondisi tersebut.bilangan). Writeln(‘Bilangan Positif’). Deklarasi bilangan:integer (input) Deskripsi Mulai Read(bilangan) If (bilangan > 0) then Write(‘Positif’) Else if (bilangan < 0) then Write(‘Negatif’) Else Write(‘Nol’) End if Selesai Algortima ini dapat digambarkan dengan flowchart sebagai berikut: 42 .bilangan).

Var bilangan:integer. If bilangan > 0 then Writeln(‘Bilangan Positif’) Else if bilangan < 0 then Writeln(‘Bukan Bilangan Positif’) Else Writeln(‘Bilangan Nol’). Write(‘Masukan Sebuah Angka=’). Jika kondisi kedua ini terpenuhi maka aksi kedua akan dilaksanakan yaitu menuliskan Negatif. Readln(bilangan). Jika kondisi pertama tidak terpenuhi dan kondisi kedua tidak terpenuhi maka aksi ketiga yang akan dilaksanakan yaitu menuliskan nol. Pengecekan bilangan positif 3. Uses wincrt. Program Cek_Positif3. Apabila kondisi pertama ini tidak terpenuhi maka akan dilakukan pengecekan pada kondisi kedua yaitu bilangan < 0. Flowchart cek bilangan positif 3. Begin Writeln(‘Program Cek Bilangan Posistif’).M u l a I n p u t ( b Gambar 7. End. Program 14. Pada akhir pernyataan aksi pertama dan kedua tidak diakhiri denan titik koma (.) karena masih ada pernyataan lain didalam statemen if yaitu pernyataan else pada B i l a n T 43 . B i l a n T g i d g i d Hasil output program Program Cek Bilangan Posistif Masukan Sebuah Angka=0 Bilangan Nol Jika kondisi pertama terpenuhi yaitu bilangan > 0 maka aksi pertama akan dilaksanakan yaitu menuliskan positif.

Kasus yang lain dapat dilihat pada algoritma untuk melakukan konversi nilai dari angka menjadi huruf. Ketentuan untuk melakukan konversi tersebut adalah sebagai berikut: Nilai 0 – 30 = ‘E’ Nilai 31 – 50 = ‘D’ Nilai 51 – 70 = ‘C’ Nilai 71 – 85 = ‘B’ Nilai 86 – 100 = ‘A’ Dari ketentuan tersebut dapat disusun sebuah algoritma sebagai berikt: Algoritma Konversi_Nilai. 100 (input) Nilai_huruf:char (output) Deskripsi Mulai Read(Nilai_anka) If (nilai_angka > 85) then Nilai_huruf  ’A’ Else if (nilai_angka > 70) then Nilai_huruf  ’B’ Else if (nilai_angka > 50) then Nilai_huruf  ’C’ Else if (nilai_angka > 30) then Nilai_huruf  ’D’ Else Nilai_huruf  ’E’ End if Write(nilai_huruf) Selesai Algortima ini dapat digambarkan denganflowchart sebagai berikut: 44 .bagian terakhir. Pada aksi pertama dan aksi kedua juga dapat ditambahkan pernyataan untuk menamplkan bialangan yang dimasukkan sehingga aksi tersebut tidak hanya terdiri dari pernyataan seperti pembahasan sebelumnya. Deklarasi Nilai_angka: 0 ..

. Nilai_huruf:char. Readln(nilai_angka). Flowchart konversi nilai ke huruf A n g k a T i d a > A n g k a 45 > . Begin Writeln('Program Konversi Nilai').nilai_huruf).100. Var Nilai_angka:0. Uses wincrt. end. n g k a T i d a > Gambar 8.M u l a i I n p u t ( a n A Program 15. writeln('Nilai Huruf='. Konversi Nilai1 Program konversi_nilai1. Write('Masukan Nilai Angka ='). if nilai_angka > 85 then nilai_huruf:='A' else if nilai_angka > 60 then nilai_huruf:='B' else if nilai_angka > 50 then nilai_huruf:='C' else if nilai_angka > 30 then nilai_huruf:='D' else nilai_huruf:='E'.

bila satu kondisi tidak terpenuhi baru akan dilanjutkan pada kondisi yang berikutnya.Hasil Output program: Program Konversi Nilai Masukan Nilai Angka =70 Nilai Huruf=B 2. 100 (input) Nilai_huruf:char (output) 46 . Struktur case akan memberikan nilai yang sama dengan struktur if. Kasus seleksi pada pembahasan sebelumnya yaitu pengecekan nilai dengan pernyataan if dapat juga dilakukan dengan pernyataan case sebagai berikut: Algoritma Konversi_Nilai. string.... atau word tidak dapat digunakan. Pernyataan Case . of merupakan perluasan dari pernyataan if. Perbedaan hanya terdapat pada cara penulisannya saja. Pernyataan diatas juga dapat dutuliskan dengan strukur yang lain yaitu: Case parameter of Pilihan1 : aksi1 Pilihan2 : aksi2 … PilihanN-1 : aksiN-1 else aksiN end. Pernyataan case dapat dituliskan dengan struktur sebagai berikut: Case parameter of Pilihan1 : aksi1 Pilihan2 : aksi2 … pilihanN : aksiN end. Of Pernyataan case . Deklarasi Nilai_angka: 0 . struktur if melakukan pengecekan terhadap setiap kondisi. Ekspresi yang digunakan pada pernyataan case hanya berupa tipe data ordinal dengan batasan nilai antara -32768 – 32767. tipe data yang lain seperti longint. Berbeda dengan pernyataan if. penyataan case melakukan pengecekan dengan pemilihan kondisi yang sesuai parameter yang ada. Pernyataan case ini digunakan dalam algoritma pseudocode dan program sedangkan untuk algoritma flowchart digunakan lambang symbol percabangan/kondisi. Untuk pemilihan yang terdiri dari banyak kondisi.

. Perulangan Perulangan adalah suatu proses terhadap hal yang sama yang diulang beberapa kali sampai suatu kondisi atau batas tertentu terpenuhi. Write(‘Masukan Nilai Angka =’). 47 .. 70 : nilai_huruf:=’C’. Cetakan nilai tersebut sebanyak 10 kali. 3.100. 0 . writeln(‘Nilai Huruf=’.. Terdapat sebuah permasalahan bagaimana mencetak bilangan bulat dari 1 sampai dengan 10. end.Deskripsi Mulai Read(Nilai_angka) Case nilai_angka of 86 . Setiap langkah mencetak lakukan penambahan 1 (increament 1).. Menentukan nilai awal yaitu 1. Untuk memberikan gambaran mengenai perulangan dapat disimak pada kasus berikut ini. 85 : nilai_huruf:=’B’. Uses wincrt. 50 : nilai_huruf  ’D’ 0 . 30 : nilai_huruf  ’E’ end. 85 : nilai_huruf  ’B’.nilai_huruf). 70 : nilai_huruf  ’C’. Var Nilai_angka:0. 31 . Nilai_huruf:char. 71 . Begin Writeln(‘Program Konversi Nilai’).. 100: nilai_huruf  ’A’. 50 : nilai_huruf:=’D’.. Write(nilai_huruf) Selesai Program 16. Langkah-langkah untuk menyelesakan permasalahan diatas dapat dilakuakan sebagai berikut: 1. Case nilai_angka of 86 .. Hasil Output program: Program Konversi Nilai Masukan Nilai Angka =60 Nilai Huruf=C E. end.. 51 .. 30 : nilai_huruf :=’E’. 2.. Hasil output yang diinginkan adalah 1 2 3 4 5 6 7 8 9 10. 71 .. Konversi Nilai2 Program koversi_nilai2. 100: nilai_huruf:=’A’. 51 . Readln(nilai_angka). 31 .

Perulangan terhadap pernyataan atau instrukti tersebut akan berhenti jika kondisi akhir yang telah disebut terpenuhi.Do dengan sintaks For counter=nilai_awal downto nilai_akhir do aksi/blok aksi dimana nilai_awal lebih besar dari nilai akhir. Pernyataan tersebut adalah: for to do while do repeat until Penjelasan mengenai ketiga pernyataan diatas akan dibahas pada bagian-bagian tersendiri. Istilah lain dari perulangan adalah looping atau repetition. sedangkan untuk perulangan turun dapat dinyatakan dengan pernyataan For…downto …do.Downto.Algoritma diatas mengandung langkah-langkah yang diulang. 1. Algoritma berikut adalah tentang mencetak bilangan bulat dari 1 sampai dengan 10 dengan menggunakan perulangan For…To…Do. Algoritma PerulanganFor1. 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. Terdapat dua buah jenis pernyataan dengan menggunakan struktur for yaitu pernyataan naik dan pernyataan turun.. Didalam bahasa pemrograman pascal perulangan dapat dituliskan dengan tiga pernyataan yang berbeda. Langkah-langkah ini disebut dengan perulangan. 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. Untuk pernyataan yang sebaliknya dapat digunakan perintah For. Nilai awal merupakan nilai yang diberikan untuk memulai suatu instruksi yang berada didalam blok tersebut. Deklarasi I:integer Deskripsi mulai For I  1 to 10 do Write(i) End for Selesai Algoritma ini dapat digambarkan dengan flowchart sebagai berikut: 48 . Perulangan naik dinyatakan dengan pernyataan For…To…do..

Flowchart perulangan for to do Program 17. Algoritma PerulanganFor2. Sehinggga i akan mengalami increament 1 sampai dengan i =10. Apabila kasus tersebut dibalik yaitu mengulang penulisan i tetapi i dimulai dari 10 sampa ke 1 maka dapat dilakukan dengan perintah for…downto…do. For i:=1 to 10 do Writeln(i). Uses wincrt. Perulangan dengan for 1 Program perulananFor1.M u Gambar 9. mulai dari i=1 sampai i=10. Perulangan ini secara otomatis akan menambahkan counter dengan 1. End. Var I:integer. F o r t o 1 O u t Hasil output program Program Perulangan dengan For 1 2 3 4 5 6 7 8 9 10 N e Pada kasus diatas. perintah writeln(i) diulang sebanyak sepuluh kali. Begin Writeln(‘Program Perulangan dengan For’). Deklarasi I:integer Deskripsi Mulai For I  10 downto 1 do Write(i) S e l 49 .

End. I sebagai conter dari perulangan maka secara otomatis akan mengalami pengurangan 1 (decreament) pada setiap langkah perulangan. Apabila aksi tersebut terdiri dari beberapa statemen. Begin Writeln(‘Program Perulangan dengan For’). Pernyataan aksi yang ada pada program diatas hanya terdiri dari satu statemen. maka penulisannya didalam program pascal harus ditambah dengan penyaaan begin sebelum aksi dan pernyataan end.Selesai Algoritma ini dapat digambarkan dengan flowchart dengan sebabagai berikut: M F Gambar 10. Perulangan akan dilakukan untuk membaca data S e l 50 . setelah pernyataan aksi. Flowchart for downto do Program 18. Var I:integer. For i:=10 downto 1 do Writeln(i). Perulangan denga for 2 Program perulananFor. u o r w u d O o t e Hasil output program: Program Perulangan dengan For 10 9 8 7 6 5 4 3 2 1 N Program diatas akan mencetak nilai i mulai dari 10 sampai dengan 1. Contoh yang lain dapat dilihat pada kasus menghitung nilai rata-rata dari beberapa data yang dimasukan. Uses wincrt.

n. Flowchart menghitung rata-rata 1 Program 19.jumlah. Deklarasi I.dan menjumlahkannya dalam variabel tertentu.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) Selesai Algoritma ini dapat digambarkan dengan flowchet sebagai berikut: M i n ju Program 11. Algoritma rerata1. Menghitung rata-rata 1 Program rerata1. Var u p m r n F o t o 51 . Hasil penjumlahan dari data yang dimasukan tersebut akan dihitung rata-ratanya dengan pembagian. Uses wincrt.

Begin Writeln(‘Program Mengitung Rata-rata’). Setelah pernyataan for maka perlu ditambahkan pernyataan begin dan pernyataan end setelah akhir blok aksi ditambahkan pernyataan end. Jumlah:=jumlah+x. Perulangan dengan while do lebih fleksibel karena program tidak ditentukan berapa kali perulangan terjadi. Oleh karena itu perlu adanya sebuah proses yang dapat mengontrol kondisi agar berhenti. Readln(n). Rerata:=jumlah/n.x. Jumlah:=0.’=’). Algoritma PerulanganWhile. Write(‘Masukan Jumlah Data=’).jumlah:integer. aksi tidak hanya terdiri satu satu pernyataan tetapi lebih dari satu pernyataan.rerata:5:2).60 Pada perulangan diatas. Jika kondisi yang disyaratkan sudah tidak terpenuhi maka perulangan akan berhenti. Readln(x). Rerata:real. End. Deklarasi i:integer Deskripsi Mulai I 1 While (I <= 10 ) do 52 .I.i. Writeln(‘Rata-rata=’. 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. End.n. Dari kasus mencetak bilangan dari 1 sampai 10 pada bagian sebelumnya dapat juga diselesaikan dengan struktur while do. Proses pengecekan terhadap kondisi akan dilakukan terlbi dahulu sebelum pernyataan yang akan diulang. While do Struktur while do merupakan perintah untuk melakukan perulangan selama sebuah kondisi terpenuhi atau bernilai benar. 2. For i:=1 to n do Begin Write(‘Masukan Data ke-‘.

Begin writeln('Program Perulangan dengan While'). aksi setelah while do dinyatakan dalam beberapa pernyataan sehingga dituliskan dalam pernyataan begin dan end. End. I:=i+1. Var I:integer. u 1 i o < y u i = 53 Hasil Output program Program Perulangan dengan While 1 2 3 4 5 6 7 8 9 10 t p i + Pada program tersebut. Pada program . Flowchart perulangan while Program 20. End. Uses wincrt. Perulangan dengan while Program perulanganwhile.Write(i) I  i+1 Endwhile Selesai Algoritma ini dapat digambarkan dengan flowchart sebagai berikut: M i = Gambar 12. I:=1. While i<= 10 do Begin Writeln(i).

Flowchart menghitung rata-rata dengan while Program 21. Dalam kasus yang lain struktur while do dapat digunakan untuk perulangan yang belum diketahui jumlah perulangannya.x:integer Rerata:real. Deklarasi i. Sebagai contoh program untuk menghitung data yang dimasukan dan rata-ratanya sampai data yang dimasukan berupa angka nol (0). 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) Selesai Algoritma ini dapat digambarkan dengan flowchart sebagai berikut: M i n n ju Gambar 13. Menghitung rata-rata dengan while u p = m < l u x 54 > . Algoritma rerata2.diatas perulangan sudah diketahui yaitu sebanyak sepuluh kali.jumlah.n.

Jika kondisi sudah terpenuhi maka pernyataan tidak akan diulang lagi.jumlah).. rerata:real. var i.until merupakan sebuah perintah untuk melakukan perualangan terhadap suatu pernyataan atau blok pernyataan sampai suatu kondisi terpenuhi. Repeat Until Struktur Repeat. end. writeln(‘Jumlah=’.x. Pemeriksaan kondisi ada pada bagian setelah pernyataan yang diulang. Hasil output program: Masukan nilai-nila (0 untuk berhenti)= 6 7 9 7 8 9 0 Jumlah=46 Rerata= 7. end. Dari kasus mencetak bilangan dari 1 sampai 10 dapat dilihat pada algoritma dan program dibawah ini. Struktur ini juga perlu adanya suatu proses yang dapat mengontrol program agar program dapat berhenti. begin writeln('Masukan nilai-nila (0 untuk berhenti)='). n:=0. rerata:=jumlah/n. Perulangan ini juga tidak ditentukan berapa kali suatu pernyataan harus dilakukan. readln(x). Perulangan dengan repeat until juga lebih fleksibel bila dibandingkan dengan struktur for to do. Algoritma PerulanganRepeat.n.rerata).jumlah:integer. read(x). uses wincrt. Deklarasi i:integer Deskripsi Mulai 55 . 3. jumlah:=jumlah+x. writeln(‘Rerata=’.66666666666667E+0000 Pada program diatas data yang diinputkan berupa angka nol (0) tidak akan dihitung karena sebagai stoping point (tanda untuk berhenti perulangan).Program rerata2. while x<>0 do begin n:=n+1.

u 1 l a i o u = t p i > 1 y a u + 0 56 t ( 1 Hasil output program Program Perulangan dengan Repeat 1 2 3 4 5 6 7 8 9 10 i i t i Pada program diatas. aksi dengan pernyataan-pernyataan yang ada setelah pernyataan while akan selalu diulang sampai pada kondisi yang dinyatakan . uses wincrt. begin writeln('Program Perulangan dengan Repeat'). repeat writeln(i). Flowchart perulangan dengan repeat Program 22. i:=1. Perulangan dengan repeat program perulanganRepeat. until i>10 end.i 1 Repeat Write(i) I  i+1 Until (I > 10 ) selesai Algoritma ini dapat digambaran dengan flowchart sebagai berikut: M i = Gambar 14. var i:integer. i:=i+1.

jumlah. Pernyataan-pernyatan yang ada pada blok aksi tidak digunakan begin dan end walupun pada blok tersebut terdapat beberapa pernyataan. Algoritma rerata2.n. 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) Selesai Algoritma ini dapat digambarkan dengan flowchart sebagai berikut: M n ju m u = Gambar 15. Pada kasus yang lain yaitu pada algoritma menghitung rata-rata dari sejumlah bilangan yang dimasukan sampai bilangan yang dimasukan berupa angka nol.x:integer Rerata:real. Deklarasi i.dengan klausa until terpenuhi. Flowchart menghitung rata-rata dengan repeat n 57 = .

repeat n:=n+1. jumlah:=jumlah+x. Buatlah program untuk mencetak bilangan ganjil dai 1 sampai dengan 100. begin writeln('Masukan data (0 untuk berhenti)='). n:=0. writeln('Jumlah='. apabila hasil modulasi adalah 0 maka bilangan tersebut genap tetapi apabila hasil modulasi 1 maka bilangan tersebut ganjil dan siap dicetak. rerata:real. var i.Program 23.x:integer. Algoritma cetak bilangan ganjil Deklarasi i:integer Deskripsi Mulai For i:=1 to 100 do If i mod 2 = 1 then Write(i) 58 .rerata). Uses wincrt.jumlah). Untuk menentukan apakah sebuah bilangan tersebut bilagan ganjil atau bukan dapat dilakukan dengan modulasi 2 pada bilangan dari 1 sampai dengan 100. Pembahasan Analisa: Mencetak bilangan ganjil dari 1 sampai dengan 100 dapat dilakukan dengan perualngan. rerata:=jumlah/(n-1). jumlah:=0.n. Hasil output program: Masukan data (0 untuk berhenti)= 5 9 8 7 8 6 0 Jumlah=43 Rerata= 7. Menghitung rata-rata dengan repeat Program rerata3. writeln('Rerata='.16666666666667E+0000 Latihan 1. until x=0. readln(x). end.jumlah.

Algoritma factorial Deklarasi i. Setiap langkah dalam perulangan akan dikalikan dengan I oleh karena itu nilai awal untuk hasilnya adalah 1. Var i:integer. Uses wincrt. Buatlah program untuk menghitung jumlah factorial dari nilai n yan dimasukan.n:integer Fak:longint. Program Cetak_bil_ganjil. Deskripsi Mulai Fak1 Realn(n) For i1 to n do Fakfak * i End for Write(fak) Selesai Algoritma dengan flowchart 59 .’ ‘). 2. Begin For i:=1 to 100 do If i mod 2 = 1 then Write(i. End. 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.End if End for Selesai Program mencetak bilangan ganjil. perkalian ini dapat dilakukan dengan perulangan.

2 = − b ± b − 4ac 2a 2 F a k = 60 f Jika b2 – 4 ac < 0 akan diperoleh akar imaginer . fak:longint. writeln(n.fak). for i:=1 to n do fak:=fak*i. Buatlah algoritma dan program untuk meakukan konversi dari jam ke detik. write('Masukan jumlah data =').n:integer. Begin writeln('Program menghitung nilai faktorial'). Var i. Buatlah algoritma dan program untuk menghitung akar-akar persamaan kuadrat dengan bentuk umum: X 1. readln(n).' Faktorial ='. F a k = F o r i = Soal 1. 2. 3. Jika dimasukan angka 1 maka outputnya hari minggu. end. Buatlah algoritma dan program untuk menampilkan nama hari sesuai dengan pilihan angka. 4.M u l a N Program menghitung nilai faktorial Program factorial. Buatlah alortima dan program untuk menghitung panjang sisi miring dari segitiga phitagoras. 2 hari senin dan seterusnya. Uses wincrt. fak:=1.

Buatlah algoritma dan program untuk mencetak bilangan prima dari 1 sam 100 61 . Buatlah algoritma untuk deret kuadrat dari suatu nilai N= 1 X 1+ 2 X 2 + 3 X 3 + … + n X n = 1 + 4 + 9 + 16 + … 6.5.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->