laporan praktikum
TRANSCRIPT
BAB I
IF
Penyeleksian kondisi adalah penentuan kondisi yang memenuhi dalam penyeleksian.
Penyeleksian kondisi ini hubungannya dengan operasi relasi yang membandingkan antara dua
kondisi. Di dalam Pascal, penyeleksian kondisi menggunakan statement If dan statement Case.
A. STATEMENT IF
If atau jika yaitu penyeleksian dengan menggunakan logika pengandaian. Statement if
mempunyai dua bentuk yaitu If-Then dan If-Then..Else. Seperti dalam looping, statement if juga
mempunyai bentuk tersarang (nested if).
1. persyaratan selection If
Pernyataan harus bernilai Boolean (False atau true )
Meentukan aksi yang dilakukan jika kondisi tersebut memenuhi
Setiap aksi tidak bileh beririsan
Analisis kasus harus mencangkup semua kemungkinan kasus
Struktur If-Then
Algoritma : Dalam pemrograman Pascal : Dalam pemrograman C :
if kondisi then if kondisi then if (kondisi)
statement 1 statement 1 statement 1;
else else else
statement 2 statement 2; statement 2;
endif (*endif*) /*endif*/
a. Penyeleksian Satu Kasus
Notasi algoritmik untuk analisis penyeleksian satu kasus adalah dengan
menggunakan struktur IF-THEN:
Page 1
Benar
If kondisi then
Aksi
endif
Salah then
Kondisi akan diseleksi oleh statemen if. Bila kondisi bernilai benar (true), maka aksi sesudah
kata then (dapat berupa satu atau lebih aksi) akan diproses. Bila kondisi
bernilai salah (false), maka tidak ada aksi apapun yang akan dikerjakan. Statemen endif adalah untuk
mempertegas bagian awal dan bagian akhir struktur IF THEN.
Contoh: Algoritma menentukan apakah sebuah bilangan bulat merupakan bilangan genap.
benar
then
salah
Page 2
IF CONDISI
AKSI
Algoritma BILANGAN_GENAP{ Menentukan apakah sebuah bilangan bulatyang dibaca dari piranti masukanmerupakan bilangan genap }DEKLARASIbil : integerDESKRIPSI :read(bil)if bil mod 2 = 0 thenwrite(‘bilangan genap’)Endif
bil mod 2 = 0
‘bilangan genap’
END
Contoh bahasa pemrograman dalam bahasa pascal:
Maka apabila di Run akan menghasilkan output sbagai berikur:
2. Struktur If-Then..Else
b. Penyeleksian Dua Kasus
• Notasi algoritmik untuk analisis penyeleksian dua kasus adalah dengan menggunakan struktur IF-
THEN-ELSE:
Benar
then
salah else
Page 3
IF Kondisi Then
Aksi 1
Else
aksi 2
endif
IF
Kondisi?
Aksi 1
Aksi 2
Dalam struktur IF-THEN-ELSE, aksi1 akan dilaksanakanjika kondisi bernilai benar (true),
dan jika kondisi bernilai salah (false) maka aksi2 yang akan dilaksanakan. Statemen else
menyatakan ingkaran (negation) dari kondisi.
Contoh: Algoritma menentukan bilangan maksimum (terbesar) dari dua buah bilangan bulat.
benar
salah then
else
Page 4
Algoritma MAKSIMUM{ Menentukan bilangan terbesar dari dua bilangan bulat }DEKLARASIA, B : integerDESKRIPSI :read(A,B)if A > B thenwrite(‘Bilangan terbesar : ’,A)else { B A }write(‘Bilangan terbesar : ’,B)endif
A>B
Nilai terbesar A
Nilai terbesar B
END
program MAKSIMUM;{ Menentukan bilangan terbesar dari dua bilangan bulat }(* DEKLARASI *)varA, B : integer;(* DESKRIPSI *)beginwrite(‘Masukkan bilangan A : ‘);readln(A);write(‘Masukkan bilangan B : ‘);readln(B);if A > B thenwriteln(‘Bilangan terbesar : ’,A)elsewriteln(‘Bilangan terbesar : ’,B);(*endif*)end.
Contoh bahasa pemrograman dalam pascal:
Apabila di Run akan muncul tampilan output sebagai berikut:
c. Penyeleksian Tiga Kasus atau Lebih (tersarang)
Notasi algoritmik untuk analisis penyeleksian tiga kasus atau lebih (tersarang) adalah tetap
dengan menggunakan struktur IF-THEN-ELSE sebagaimana halnya pada masalah dengan dua
kasus
• Tiga kasus:
Page 5
If kondisi then
Aksi 1
Else
If kondisi then
Aksi 2
Else
If kondisi then
Aksi 3
Endif
endif
If kondisi
1
If kondisi
2
Aksi 3
Aksi 1
Aksi 2
Contoh bahasa pemrograman dalam pascal:
Apabila di Run maka akan muncul tampilan output sebagai berikut:\
Page 6
program MAKSIMUM;{ Menentukan bilangan terbesar dari dua bilangan bulat }(* DEKLARASI *)varA, B : integer;(* DESKRIPSI *)beginwrite(‘Masukkan bilangan A :‘);readln(A);write(‘Masukkan bilangan B :‘);readln(B);if A > B thenwriteln(‘Bilangan terbesar : ’,A)elsewriteln(‘Bilangan terbesar : ’,B);(*endif*)end.
d. Empat kasus:
Contoh: Algoritma menentukan indeks nilai ujian mahasiswa:
Page 7
If kondisi then Aksi 1
elseIf kondisi then
Aksi 2Else
If kondisi then Aksi 3
ElseIf kondisi then
Aksi 4else
endifendif
endif
Kondisi1
Kondisi2
Kondisi3
Aksi 1
Aksi 2
Aksi 3
Aksi 4
Algoritma INDEKS_NILAI_UJIAN{ Menentukan indeks nilai mahasiswa berdasarkan nilaiujiannya }DEKLARASInilai : real { nilai ujian dalam numerik }indeks : char { ’A’, ’B’, ’C’, ’D’, ’E’ }DESKRIPSI :read(nilai)if nilai _ 80 thenindeks ‘A’elseif (nilai _ 70) and (nilai < 80) thenindeks ‘B’elseif (nilai _ 55) and (nilai < 70) thenindeks ‘C’elseif (nilai _ 40) and (nilai < 55) thenindeks ‘D’else { nilai < 40 }indeks ‘E’endifendifendifendifwrite(indeks)
Contoh pascal :
Page 8
program INDEKS_NILAI_UJIAN;{ Menentukan indeks nilai mahasiswa berdasarkan nilai ujiannya }(* DEKLARASI *)varnilai : real; { nilai ujian dalam numerik }indeks : char;(* DESKRIPSI *)beginwrite(‘Masukkan nilai ujian : ‘);readln(nilai);if nilai >= 80 thenindeks := ‘A’elseif (nilai >= 70) and (nilai < 80) thenindeks := ‘B’elseif (nilai >= 55) and (nilai < 70) thenindeks := ‘C’elseif (nilai _ 40) and (nilai < 55) thenindeks := ‘D’else { nilai < 40 }indeks := ‘E’;(*endif*)(*endif*)(*endif*)(*endif*)writeln(‘Indeks nilai ujian = ‘,indeks);end.
Apabila di output akan muncul tampilan sebagai berikut:
Penyeleksian Kondisi pada cPenyeleksian kondisi digunakan untuk mengarahkan perjalanan suatu proses. Penyeleksian
kondisi dapat diibaratkan sebagai katup atau kran yang mengatur jalannya air. Bila katup terbuka
maka air akan mengalir dan sebaliknya bila katup tertutup air tidak akan mengalir atau akan mengalir
melalui
tempat lain. Fungsi penyeleksian kondisi penting artinya dalam penyusunan bahasa C, terutama
untuk program yang kompleks.
1.STRUKTUR KONDISI “IF….”
Struktur if dibentuk dari pernyataan if dan sering digunakan untuk menyeleksi suatu kondisi
tunggal. Bila proses yang diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada di dalam
blok if akan diproses dan dikerjakan. Bentuk umum struktur kondisi if adalah :
if(kondisi)
pernyataan;
Contoh Program 1 :
/* Program struktur kondisi if untuk memeriksa suatu kondisi */
#include “stdio.h”
#include “conio.h”
void main()
{ float nilai;
printf(“Masukan nilai yang didapat : “);
scanf(“%f”, &nilai);
if(nilai > 65)
printf(“\n ANDA LULUS !!!!\n”);
getch(); }
Page 9
Bila program tersebut dijalankan dan kita memasukan nilai 80, maka perintah mencetak
perkataan LULUS !!!! akan dilaksanakan, namun sebaliknya bila kita memasukan sebuah nilai
yang kurang dari 65 maka program akan berhenti dan tidak dihasilkan apa-apa.
/* Program contoh penerapan struktur kondisi if */
#include"stdio.h"
#include"conio.h"
void main()
{ clrscr();
int a,b,c,max;
printf("Entry bil 1 : ");fflush(stdin);scanf("%i",&a);
printf("Entry bil 2 : ");fflush(stdin);scanf("%i",&b);
printf("Entry bil 3 : ");fflush(stdin);scanf("%i",&c);
if((a>b)&&(a>c))
max=a;
if((b>a)&&(b>c))
max=b;
if((c>a)&&(c>b))
max=c;
printf("Bil terbesar : %i\n",max);
if(max>0)
printf("Bil tsb adalah bil positif\n");
if(max<0)
printf("Bil tsb adalah bil negatif");
getch();
}
2 STRUKTUR KONDISI “IF......ELSE….”
Dalam struktur kondisi if.....else minimal terdapat dua pernyataan. Jika kondisi yang
diperiksa bernilai benar atau terpenuhi maka pernyataan pertama yang dilaksanakan dan jika kondisi
yang diperiksa bernilai salah maka pernyataan yang kedua yang dilaksanakan. Bentuk umumnya
adalah sebagai berikut :
Page 10
if(kondisi)
pernyataan-1
else pernyataan-2
ontoh Program C:
#include “stdio.h”
#include “conio.h”
void main()
{ float nilai;
clrscr();
printf(“Masukan nilai yang didapat : “);
scanf(“%f”, &nilai); /* Masukan akan disimpan dalam variable nilai */
if (nilai > 65)
printf(“\n LULUS !!!\n”);
else
printf(“\n TIDAK LULUS !!!\n”);
getch();
}
Bila program tersebut dijalankan dan kita memasukan nilai 80 maka akan dicetak perkataan
“LULUS !!!” namun bila kita memasukan nilai yang kurang dari 65 maka akan tercetak perkataan
“TIDAK LULUS !!!”. Hal ini berbeda dengan struktur if dimana program akan berhenti bila kita
memasukan nilai kurang dari 65.
3 .STRUKTUR KONDISI “SWITCH....CASE....DEFAULT…”
Struktur kondisi switch....case....default digunakan untuk penyeleksian kondisi dengan
kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan salah satu dari beberapa
pernyataan ‘case’ tergantung nilai kondisi yang ada di dalam switch. Selanjutnya proses diteruskan
hingga ditemukan pernyataan ‘break’. Jika tidak ada nilai pada case yang sesuai dengan nilai
kondisi, maka proses akan diteruskan kepada pernyataan yang ada di bawah ‘default’. Bentuk umum
dari struktur kondisi ini adalah :
switch(kondisi)
{
case 1 : pernyataan-1;
Page 11
break;
case 2 : pernyataan-2;
break;
.....
.....
case n : pernyataan-n;
break;
default : pernyataan-m
}
Translasi ke dalam bahasa C:
Persyaratan If :
Kondisi if harus bernilai Boolean ( true and false ) Jika syarat 1 benar maka aksi dijalankan, jika syarat 1 salah maka tidak dapat dijalankan. Pertanyaannya harus jelas.
Penjelasaan :
Apabila kondisi berniai true atau memenuhi persyaratan maka aksi 1 akan di jalankan tetapi jika kondisi bernilai false maka aksi 2 tidak di jalankan.
KESIMPULAN
Penggunaan fungsi if di gunakan untuk memecahkan masalah untuk mengambil suatu keputusan di antara banyaknya masalah yang ada. Tetapi pengunaan if strukturnya lebih panjang dan rumit di bandingkan dengan struktur case.
Selain itu fungsi if juga bisa di gunakan untuk memecahkan masalah lebih dari satu dengan menggunakan bentuk if bersusun
DAFTAR PUSTAKA
Suarga,Drs.M.Sc.,M.Math.,Ph.D.algoritma pemrograman.andi yogyakarta.
Murnir, renaldi (2007). Algoritma dan Pemograman. Bandung:informatika Bandung.
Praktikum, team pengelola (2010) modul praktikum.. Garut : STT GARUT.
Page 12
BAB II
STUKTUR CASE
1. STATEMENT CASE
1. Persyaratan Selection Case:
Nilai dari ekspresi harus berbeda
Aksi dari ekspresi harus berupa runtunan
Boleh memakai otherwise yang bersifat optional Perbedaan case dengan if adalah susunan case lebih.
Bentuknya :
CASE ekspresi OF
case_label1 : statement_1;
case_label2 : statement_2;
..
END;
Struktur CASE dapat digunakan untuk menganalisis penyeleksian dua kasus atau lebih
dan bentuknya adalah lebih sederhana daripada struktur IF-THEN-ELSE yang memiliki
bentukbertingkat-tingkat.
Kondisi1, kondisi2, …kondisiN dapat bernilai benar atau salah. Tiap kondisi diperiksa nilai
kebenarannya mulai dari kondisi pertama sampai ditemukan kondisi yang benar. Jika kondisi ke-k
benar, maka aksi ke-k dilaksanakan, selanjutnya keluar dari struktur CASE. Aksi yang dipasangkan
dengan kondisi ke-k dapat lebih dari satu, karena ituia berupa runtunan. Jika tidak ada satupun
kondisi yang benar, maka aksi sesudah otherwise (optional) dikerjakan.
Page 13
Case nama
Kondisi 1 : aksi 1
Kondisi 2 : aksi 2
Kondisi 3 : aksi 3
.
Kondisi N : aksi N
Bentuk umum instruksi case :
Case(variabel)
Nilai-1 : aksi-1;
Nilai-2 : aksi-2;
Nilai-3 : aksi-3;
............
Default : aksi-n;
Endcase.
Bentuk case di atas dapat di terjemahkan sbagai berikut :
Dimungkinkan ada n-buah aksi,mulai dari aksi-1 hingga aksi-n.
Setiap aksi hanya di lakukan apabila suatu nilai varibel di capai sesuai persyaratan. Misalnya,
aksi-1 dilakukan hanya bila variabel bernilai nilai-1,aksi-2 di lakukan apabila varibel bernilai
nilai-2, dan seterusnya.
Apabila tak satu pun nilai varibel yang cocok maka aksi-ndi kerjakan sebagai aksi
“default”(hanya dikerjakan apabila tidak ada yang memenhi syarat).
Page 14
2. Struktur CASE menggantikan analisis kasus yang ekivalen dengan struktur IF-THEN-
ELSE berikut ini:
Contoh program selection CASE :
Algoritma teks : translasi ke dalam pascal
Deklarasi uses crt;
N : integer var
Deskripsi nilai : integer;
Read (masukan nilai :) begin
Case nilai of clrscr;
90 … 100 : write(A) write(‘masukan nilai=’); readln(nilai);
70 … 89 : write(B) case nilai of
Page 15
50 … 69 : write(C) 90 … 100 : writeln(‘A’);
40 … 49 : write(D) 70 … 89 : writeln(‘B’);
0 … 39 : write(E) 50 … 69 : writeln(‘C’);
Endcase 40 … 49 : writeln(‘D’);
0 … 39 : writeln(‘E’);
end;
Readln;
End.
Algoritma teks : progam C :
Deklarasi #include<stdio.h>
#include<math.h>
Hitung1,hitung2,hitung3,N: real; main()
Pilihan : integer; { int pilihan;
Read(masukan pilihan, N) float hitung1,hitung2,hitung3,N;
Hitung1 ( N/6 ) * 4/3 printf(“masukan pilihan:”);
Hitung2 N*N + hitung1 scanf(“%d”, &pilihan);
Hitung3 sqrt(hitung2) + (N-hitung1) printf(“N:”);
scanf(“%f”, &N);
Case pilihan hitung1= (N/6) * 4/3;
1 : write(hitung1) hitung2= N*N + hitung1;
2 : write(hitung2) hitung3= sqrt (hitung2) +(Nhitung1);
3 : write(hitung3) switch(pilihan)
Page 16
Endcase .
End { case 1 : printf(“hasilnyaadalah:%f”,hitung1);
Break;
case 2 : printf(“hasilnya adalah:%f”,hitung2);
Break;
case 3 : printf(“hasilnya adalah:%f”,hitung3);
Break;
}}
Tidak semua bahasa pemrograman menyediakan struktur CASE (misalnya Bahasa Fortran).
Bahasa Pascal dan C menyediakan struktur ini. Jika bahasa pemrograman tidak menyediakan
struktur CASE, maka struktur CASE dapat diganti dengan struktur IF-THEN-ELSE yang ekivalen.
Suatu permasalahan dapat dianalisa berdasarkan jumlah kasus yang dimilikinya, sehingga
nantinya dapat ditentukan aksi apa yang akan dilakukan bila suatu kasus dimasuki Struktur
penyeleksian adalah berupa struktur IF-THEN (atau IF-THEN-ELSE) dan struktur CASE.
KESIMPULAN
Penggunaan case tidak seluas if dan case lebih terbatas penggunaannya,
Karena dalam case tidak berfungsinya operator perbandingan. Dan nilai yang di case kan
harus bertipe integer atau karakter.
DAFTAR PUSTAKA
Suarga,Drs.M.Sc.,M.Math.,Ph.D.algoritma pemrograman.andi yogyakarta.
Murnir, renaldi (2007). Algoritma dan Pemograman. Bandung:informatika Bandung.
Praktikum, team pengelola (2010) modul praktikum.. Garut : STT GARUT.
Page 17
BAB III
LOOPING FOR
1. LOOPING FOR-DO
Looping for-do digunakan untuk mengulang statement berulang kali sejumlah yang
ditentukan. Bila terdapat lebih dari satu statement yang ada di dalam looping maka menggunakan
begin...end;, jika hanya satu blok saja tidak perlu menggunakan begin...end;. Ada 3 bentuk looping
for-do yaitu for-do positif, for-do negatif dan for-do tersarang.
1. Persyaratan FOR-DO
Pencacah harus bernilai integer atau karakter, tetapi real tidak dapat digunakan
sebagai pencacah
Aksi dapat berupa satu atau lebih intruksi yang diulang
Nilai awal harus lebih keil atau sama dengan nilai akhir (for menaik )
Nilai awal harus lebih besar atau sama dengan nilai akhir (for menurun)
Penacacah diinisialisasi dengan nilai awal, nilai awal secara otomatis bertambah satu
setiap kali badan pengulangan dimasuki, sampai akhirnya nilai pencacah sama dengan
nilai akhir
Jumlah pengulangan yang terjadi adalah nilai akhir-nilai awal +1
Bentuk umum pernyataan for ada 2 macam yaitu menaik (ascenfing) atau menurun
(descending).
FOR menaik :
For pencacah nilai_awal to nilai_akhir do
Aksi
Endfor.
Keterangan:
Pencacah haruslah dari type data yang memiliki predecessor dan successor, yaitu integer atau
karakter.tipe riil tidak dapat digunakan sebagai pencacah.
Aksi dapat berupa satu atau lebih instruksi yang si ulang.
Nilai_awal harus lebih kecil atau sama dengan nilai_akhir.jika nilai_awal lebih besar dari
nilai_akhir, maka badan pengulangan tidak dimasuki.
Page 18
Pada awalnya,pencacah diinisialisasi dengan nilai_awal. Nilai pencacah secara otomatis
bertambah satu setiap kali badan pengulangan dimasuki,sampai akhirnya nilai pencacah sama
dengan nilai_akhir.
Jumlah pengulangan yang terjadi adalah nilai_akhir-nilai_awal +1.
FOR menurun :
For pencacah nilai_akhir downto nilai_awal do
Aksi
Endfor.
Keterangan :
Pencacah haruslah dari type data yang memiliki predecessor dan successor, yaitu integer atau
karakter.tipe riil tidak dapat digunakan sebagai pencacah.
Aksi dapat berupa satu atau lebih instruksi yang si ulang.
Nilai_akhir harus lebih kecil atau sama dengan nilai_awal.jika nilai_akhir lebih besar dari
nilai_awal, maka badan pengulangan tidak dimasuki.
Pada awalnya,pencacah diinisialisasi dengan nilai_akhir. Nilai pencacah secara otomatis
bertambah satu setiap kali badan pengulangan dimasuki,sampai akhirnya nilai pencacah sama
dengan nilai_awal Jumlah pengulangan yang terjadi adalah nilai_awal-nilai_akhir +1.
2. Looping For-Do Tersarang (Nested For)
Looping tersarang yaitu looping yang ada di dalam looping lainnya. Looping yang lebih
dalam akan diproses terlebih dahulu hingga habis kemudian looping yang lebih luar bertambah atau
berkurang dan memproses kembali looping yang paling dalam. Untuk lebih jelasnya, perhatikan
listing code program berikut :
Bila dicompile, maka outputnya :
11 12 13
21 22 23
Dengan digit/angka yang kiri adalah I dan yang kanan adalah j. Bagaimana bisa terjadi demikian?!?
Page 19
Looping disamping bisa digambarkan seperti berikut :
Untuk i=1 è Untuk j=1 è write(i,j,’ ‘); = 11
Untuk j=2 è write(i,j,’ ‘); = 12
Untuk j=3 è write(i,j,’ ‘); = 13 writeln;
Untuk i=2 è Untuk j=1 è write(i,j,’ ‘); = 21
Untuk j=2 è write(i,j,’ ‘); = 22
Untuk j=3 è write(i,j,’ ‘); = 23 writeln;
Cara kerja program diatas yaitu cabang looping harus didahulukan operasi loop-nya
kemudian baru sub-nya. Looping tersebut berakhir sampai sub dan cabang bernilai akhir. Sekarang
analisis kedua listing code berikut :
true
false
Akhir for
Keterangan:
Page 20
Variabel = niali_awal
Variabel<=nilai_akhir
pernyataan
Variabel = variabel + 1
Pencacah haruslah dari tipe data yang memiliki predecesser dan succerror,yaitu
integer atau karakter.tipe riil tidak dapat digunakan sebagai pencacah.
Aksi dapat berupa satu atau lebih instruksi yang di ulang.
jumlah pengulangan yang terjadi adalah nilai_akhir – nilai_awal + 1 .
Contoh Soal ;
C
#include <stdio.h>
main()
{
int i;
float c, f;
f=32;
for (i=1; i<=5; i++)
{
c=(f-32)*5/9;
printf("%0.5f %0.5f \n", f, c);
f=f+10;
}
}
PASCAL
program konversi;
Page 21
uses crt;
var i : integer;
c,f : real;
begin
clrscr;
f := 32;
for i := 1 to 5 do
begin
c := 5/9 * (f - 32);
writeln (f:2:2 , c:10:2);
f := f+10;
end;
readln;
end.
Page 22
Printscreen
pascal
Page 23
DAFTAR PUSTAKA
Suarga,Drs.M.Sc.,M.Math.,Ph.D.algoritma pemrograman.andi yogyakarta.
Murnir, renaldi (2007). Algoritma dan Pemograman. Bandung:informatika Bandung.
Praktikum, team pengelola (2010) modul praktikum.. Garut : STT GARUT.
Page 24
BAB IV
WHILE
1. PERULANGAN WHILE-DO
. persyaratan Looping While:
Kondisi harus bernilai false agar prulangan berhenti
Didalam badan perulangan harus ada intruksi untuk mengubah nilai kondisi
Peubah harus terdefinisi nilainya sebelum pengulangan dilaksanakanpertama kali
While digunakan pada kasus yang mengharuskan terlebih dahulu pemeriksaan kondisi objek,
sebelum objek tersebut dimanupulasi
Looping dengan while-do mempunyai bentuk seperi berikut :
while ekspresi_logika/relasi do statement;
Statement while-do digunakan untuk melakukan proses looping suatu statemen terus-menerus
selama ekspresi_logika/relasi bernilai benar atau belum terpenuhi.
Page 25
Ekspresi relasi-nya yaitu i < 5. Jadi jika i masih lebih kecil dari 5 maka statement akan terus
diproses berulang, dan proses akan berhenti setelah i tidak lagi lebih besar dari 5 (i > 5). Maka dari
itu di dalam statement ada i:=i+1; yang akan menambahkan nilai i satu persatu supaya i > 5. Lihat
code berikut yang mebaca input dan mengoperasi-kannya. Kemudian ada penyeleksian input jika
memenuhi akan diulangi jika tidak akan berhenti.
program cel_to_fah; uses wincrt;
var cel,fah:real; lagi:char;
begin
lagi:=’y’;
while lagi=’y’ do
clrscr; {prosedur untuk menghapus layar}
write(‘Nilai celcius ? ‘);
readln(cel);
fah:=1.8 * cel + 32;
writeln(‘Fahrenheit = ‘,fah:5:2);
write(‘Menghitung lagi (y/t) ? ‘);
readln(lagi);
end; end.
Page 26
Di dalam looping while-do juga terdapat while-do tersarang (nested while-do). Dan pada
prinsipnya adalah sama dengan nested for-do. Pemrograman Bahasa C dengan Turbo C
Perullangan pada cDalam bahasa C tersedia suatu fasilitas yang digunakan untuk melakukan proses yang
berulangulang
sebanyak keinginan kita. Misalnya saja, bila kita ingin menginput dan mencetak bilangan dari 1
sampai 100 bahkan 1000, tentunya kita akan merasa kesulitan. Namun dengan struktur perulangan
proses, kita tidak perlu menuliskan perintah sampai 100 atau 1000 kali, cukup dengan beberapa
perintah saja. Struktur perulangan dalam bahasa C mempunyai bentuk yang bermacam-macam.
1 STRUKTUR PERULANGAN “ WHILE”
Perulangan WHILE banyak digunakan pada program yang terstruktur. Perulangan ini banyak
digunakan bila jumlah perulangannya belum diketahui. Proses perulangan akan terus berlanjut
selama kondisinya bernilai benar (true) dan akan berhenti bila kondisinya bernilai salah.
Contoh Program 1 :
/* Program Perulangan menggunakan while */
#include “stdio.h”
#include “conio.h”
void main()
{ int x;
x = 1; /* awal variabel */
while (x <= 5) /* Batas akhir perulangan */
{ printf(“%d BAHASA C\n”, x);
x ++; /* variabel x ditambah dengan 1 */
}
getch();
}
Jika program tersebut dijalankan maka akan menghasilkan hasil sebagai berikut
1BAHASA C
2BAHASA C
3BAHASA C
Page 27
4BAHASA C
5BAHASA C
Pada perulangan while di atas, proses atau perintah mencetak kata-kata “BAHASA C” akan
terus dilakukan selama variabel x masih kurang atau sama dengan 10. Setiap kali melakukan
perulangan, nilai dari variabel x akan bertambah 1.
Contoh Program 2 :
/* Program mencetak deret bilangan dengan menggunakan while */
#include"stdio.h"
#include"conio.h"
void main()
{ clrscr();
int i=1,x;
while(i<=3)
{ x=1;
while(x<=i)
{ printf("%3i",x);
x=x+1;
}
printf("\n");
i=i+1;
}
getch();
}
2 STRUKTUR PERULANGAN “DO.....WHILE…”
Pada dasarnya struktur perulangan do....while sama saja dengan struktur while, hanya saja
pada proses perulangan dengan while, seleksi berada di while yang letaknya di atas sementara pada
perulangan do....while, seleksi while berada di bawah batas perulangan. Jadi dengan menggunakan
struktur do…while sekurang-kurangnya akan terjadi satu kali perulangan.
Page 28
Contoh Program :
#include “stdio.h”
#include “conio.h”
void main()
{ int x;
x = 1;
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
do
{ printf(“%d BAHASA C\n”, x);
x ++;
}
while(x <= 10);
getch(); }
3 STRUKTUR PERULANGAN “FOR”
Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan sederhana. Bentuk umum perulangan for adalah sebagai r=t/i;printf("\n Rata rata : %.2f",r);getch();}Contoh Program 1 :
/* Program perulangan menggunakan for */
#include “stdio.h”
#include “conio.h”
void main()
{ int x;
for(x = 1; x<= 10; x++)
{ printf(“%d BAHASA C\n”, x); }
getch();
}
Page 29
Contoh Program 2 :
/* Mencari total dan rata-rata sejumlah bilangan menggunakan for */
#include"stdio.h"
#include"conio.h"
void main()
{ clrscr();
float r,i,x,t=0;int y;
for(y=1;y<=3;y++)
for(i=0;i<=2;i++)
{ printf("Entry bilangan %i : ",y);scanf("%f",&x);
t=t+x;
y=y+1;
}
printf("\n Total : %.2f",t);
r=t/i;
printf("\n Rata rata : %.2f",r);
getch();
}
Flowchart while
false
true
Page 30
kondisi
pernyataan
Dari diagram di atas terlihat bahwa ada kemungkinan pernyataan tidak dieksekusi sama sekali .keadaan ini terjadi kalau kondsi awal bernilai false.
Contoh Program
C
#include <stdio.h>
main()
{
int i, jumlah;
jumlah=0;
i=1;
while(i<=5)
{
jumlah=jumlah+2;
printf("jumlah deret ke %d : %d\n",i,jumlah);
i++;
}
}
PASCAL
var
i,n,jumlah : integer;
begin
n := 2;
jumlah := 0;
i :=1;
while i <= 5 do
Page 31
begin
jumlah := jumlah + 2;
writeln('jumlah deret ke ', i, ': ' , jumlah);
n := n+2;
i := i+1; end;
readln;
end.
Printscreen
C
Page 32
PASCAL
Page 33
KESIMPULAN
Aksi akan dilaksanakan berulangkali selama kondisi bernilai true. Jika kondisi bernilai
false, badan pengulangan tidak akan dimasuki, yang berarti pengulangan selesai. Kondisi di
akhir pengulangan (setelah endwhile) disebut loop invariant, yaitu variabel kondisi yang
nilainya sudah tidak berguna lagi.
Yang harus diperhatikan adalah pengulangan harus berhenti. Pengulangan yang tidak
pernah berhenti menandakan bahwa logika algoritma tersebut salah. Pengulangan berhenti
apabila kondisi bernilai falsei. Agar kondisi suatu saat bernilai false, maka di dalam badan
pengulangan harus ada instruksi yang mengubah nilai kondisi.
DAFTAR PUSTAKA
Suarga,Drs.M.Sc.,M.Math.,Ph.D.algoritma pemrograman.andi yogyakarta.
Murnir, renaldi (2007). Algoritma dan Pemograman. Bandung:informatika Bandung.
Praktikum, team pengelola (2010) modul praktikum.. Garut : STT GARUT.
Page 34
BAB V
REPEAT
1. PERULANGAN REPEAT..UNTIL
A. Persyaratan Looping Repeat:
Pada perulangan kondisi harus bernilai Boolean
Didalam badan perulangan harus ada intruksi untuk mengubah nilai kondisi
Peubah harus terdefinisi nilainya sebelumpengulangan dilaksanakan pertama kali
Repeat di ginakan pada kasus yang terlebih dahulu memanipulasi objek baru, kemudian
memeriksa objek tersebut
B.definisi Repeat..Until
Repeat.. until adalah proses looping suatu statement secara terus menerus hingga ekspresi
yang ada di dalam until bernilai false atau sudah terpenuhi. Dengan kata lain looping repeat..until
prosesnya berkebalikan dengan looping while-do. Bentuknya:
Bentuk pernyataan REPEAT:
Penjelasan:
notasi ini menjelaskan pengulangan lpada kondisi boolean.aksi di dalam badan kalang di
ulang-ulang sammpai kondisi bernilai true. dengan kata lain , jika kondisi masih false ,proses
pengulangan masih terus dilakukan .karena proses pengulangan suatu saat harus berhenti. Maka di
dalam badan pengulangan harus ada pernyataan yang mengubah nilai peubah kondisi.
Page 35
REPEAT
Pernyataan_1 :
Pernyataan_2 :
...
Pernyataan_n :
UNTIL kondisi
Pernyataan REPEAT memiliki makna yang sama sengan WHILE , dan dalam beberapa masalah
kedua pernyataan tersebut komplemen satu sama lain.
false
true
true
end
Tampak bahwa pengulangan justru dilakukan selama kondisi bernilai salah (false). Jadi
erupakan kebalikan dari WHILE .perbedaaan yang lain terhadap WHILE ,pemeriksaan terhadap
kondisi pada REPEAT dilakukan belakangan ,setelah bagian pernyataan yang terletak antara
REPEAT dan UNT IL.
Page 36
Repeat statement; until ekspresi_logika/relasi;
Perhatikan contoh berikut :
program repeat_until;
uses wincrt;
var i:byte;
begin
i:=0;
repeat
i:=i+1;
writeln(i);
until i=5;
end.
pernyataan
kondisi
Proses looping akan terus dilakukan hingga ekspresi terpenuhi. Pada contoh, penambahan i
terus dilakukan hingga i=5. Sekarang pada program repeat_until, coba anda ganti ekspresi di dalam
until menjadi i>5. Kemudian anda compile dan apa yang terjadi ??! Coba bandingkan contoh looping
menggunakan repeat..until dengan looping while-do ini!
repeat while
Page 37
Output yang dihasilkan adalah :
12345
program sample_repeat;uses wincrt;var i:integer;begini:= 10;repeatwriteln(i);i:=i + 1;until i>5;end.
program sample_while;uses wincrt;var i:integer;begini:= 10;while i<5 dobeginwriteln(i);i:=i+1;end;end.
Output : Tidak ada hasilOutput :11
Dari kedua contoh diatas dapat disimpulkan perbedaan kedua operasi tersebut : Ø Paling
sediki statement di dalam looping repeat diproses sekali, karena pemenuhan syarat until terletak
setelah statement. Sedangkan looping while statement-nya palingsedikit dikerjakan nol kali, karena
pemenuhan syarat while terletak sebelum statement. Ø Looping repeat tidak memerlukan blok
statement (begin..end;) pada statement yang lebih dari satu, karena batasnya sudah ditunjukkan oleh
repeat..until. Sedangkan while memerlukan blok statement (begin..end;) jika statementnya lebih dari
satu.
Didalam looping repeat..until juga terdapat looping tersarang (nested repeat). Sama seperti
nested for dan nested while dalam hal aturan, yaitu di dalam looping terdapat looping yang lain.
Perhatikan code program berikut yang menggunakan nested repeat. Program ini akan menghitung
sisi-sisi segitiga siku-siku dengan menggunakan rumus phytagoras yaitu C = A2 + B2.
Page 38
KESIMPULAN
Aksi di dalam badan kalang diulang-ulang sampai kondisi bernilai true. Dengan kata
lain, jika kondisi masih false, proses pengulangan masih terus dilakukan. Karena proses
pengulangan suatu saat harus berhenti, maka di dalam badan pengulangan harus ada pernyataan
yang mengubah nilai peubah kondisi.
Pernyataan repeat memiliki makna yang sama dengan while, dan dalam beberapa
masalah kedua pernyataan tersebut komplemen satu sama lain.
DAFTAR PUSTAKA
Suarga,Drs.M.Sc.,M.Math.,Ph.D.algoritma pemrograman.andi yogyakarta.
Murnir, renaldi (2007). Algoritma dan Pemograman. Bandung:informatika Bandung.
Praktikum, team pengelola (2010) modul praktikum.. Garut : STT GARUT.
Page 39