6 lanjutan perulangan
TRANSCRIPT
Lanjutan Perulangan
2. WHILE…DO
• WHILE-DO digunakan untuk melakukan proses perulangan dengan mengerjakan suatu blok pernyataan selama kondisi pada WHILE bernilai BENAR.
• Variabel kontrol pada kondisi while boleh bertipe integer atau char
Bentuk Perintah :
Flowchart While - do
• Nilai awal dari Variabel kontrol selalu didefinisikan lebih dahulu mis x :=0.
• Pertambahan nilai variabel kontrol harus dinyatakan dalam blok Begin-End.
• Pertambahan nilai 1 dinyatakan dgn : inc x++ dan pengurangan nilai 1 dinyatakan dengan dec x--
• Pertambahan atau pengu-rangan nilai selain 1 dinyatakan dengan persamaan. Mis var kontrol x dengan pertambahan 4 dinyatakan dengan x := x + 4.
Nilai awal Variabel kontrol x = 0
Cek, apakah 0 < 5?. Ya, kerjakan pernyataan kemudian tambahkan var x, x = 0 + 2. jadi x = 2 Cek, apakah 2 < 5?. Ya, kerjakan pernyataan kemudian tambahkan var x, x = 2 + 2. jadi x = 4 Cek, apakah 4 < 5?. Ya, kerjakan pernyataan kemudian tambahkan var x, x = 4+ 2. jadi x = 6 Cek, apakah 6 < 5? Tidak, keluar dari loop
Contoh :
1. Buatlah program untuk mencetak output sbb :
1 2 3 4 5 6 7
Jawab :
Algoritma
1. Mulai
2. Definisikan variabel n
3. Definisikan nilai awal n=1
4. Cek nilai n<=7 ?, jika tidak, lanjutkan ke langkah 8
5. Jika Ya, cetak nilai variabel n
6. Tambahkan nilai n dengan 1
7. Ulangi langkah 4
8. Selesai
Program
Program while1;
Uses crt;
Var n : integer;
Begin
clrscr;
n:=1;
while n<=7 do
Begin
write(n,’ ‘);
inc n++;
End;
readkey;
End.
2. Buatlah program untuk mencetak angka 10
s/d 13 dengan output sebagai berikut:
10
11
12
13
Algoritma :
1. Mulai
2. Deklarasikan variabel I
3. Definisikan nilai awal I=10
4. Cek kondisi I, apakah I<=14, Jika Tidak, lanjutkan ke langlah 8.
5. Jika benar, cetak I
6. Tambahkan I dengan 1
7. Ulangi langkah 4
8. Selesai
Program
3. Buatlah program untuk mencetak bilangan genap antara 20 s/d 50.
Algoritma :
1. Mulai
2. Definisikan var n,i
3. Definisikan nilai awal n=20;
4. Cek nilai selama n<=50 , Jika tidak pergi ke langkah 11.
5. Jika Ya, hitung sisa bagi n dengan 2 dan simpan dalam variabel i
6. Cek nilai i.
7. Jika i = 0, maka cetak n krn n bil genap
8. Tambahkan nilai n, inc n++
9. Ulangi langkah 4
10. Jika Salah, keluar dari loop
11. Selesai
Flowchart dan Program
Program while2;
Uses crt;
Var n,i : integer;
Begin
n:=20;
while n<-50 do
Begin
i:= n mod 2
if i=0 then write(n,’ ‘);
inc n++;
End;
readln;
End.
4. Buatlah Program perulangan untuk menghitung nilai
sudut trigonometri berulang kali dengan input data yg
berbeda. Setelah hasil perhitungan ditampilkan, maka
program akan bertanya “Mau Mencoba Lagi?” Jika jawab
T, maka program selesai. Jika jawab Y, maka akan
mengulangi lagi.
Bentuk output adalah sbb:
Algoritma :
1. Mulai
2. Definisikan variabel a,b,c,d,r,ulang
3. Definisikan var ulang:=‘Y’
4. Cek var ulang, apakah tidak sama dengan ‘T’, jika tidak maka lanjutkan ke langkah 11
5. Jika benar maka Input a (sudut derajat)
6. Hitung konversi a ke sudut radian
7. Hitung nilai sudut sin(r), cos(r), tangen(r)
8. Cetak hasil perhitungan
9. Input var ulang dengan pertanyaan “Mau Mengulangi Lagi (Y/T)?”
10. Ulangi langkah 4
11. Selesai
Flowchart
Program
Program Contoh; uses crt; var a : integer; b,c,d,r : real; ulang :char; Begin ulang:='Y'; while (ulang <> 'T') do begin
clrscr; writeln('PROGRAM TRIGONOMETRI'); writeln('======================'); Write('Input Nilai Sudut = ');readln(a); writeln; {mecetak baris kosong}
r:=pi/180*a;
b:=sin(r); c:=cos(r); d:=b/c;
writeln('Sin ',a,' Derajat = ',b:6:2);
writeln('Cos ',a,' Derajat = ',c:6:2);
writeln('Tan ',a,' Derajat = ',d:6:2);
writeln('=======================');
writeln; {mecetak baris kosong}
write('Mau Mencoba Lagi (Y/T) ? ');
Readln(ulang);
writeln;
writeln;
end;
End.
3. REPEAT….UNTIL
Digunakan untuk mengerjakan blok pernyataan secara berulang (REPEAT) selama <kondisi> pada UNTIL bernilai SALAH. Jika BENAR, maka perulangan selesai.
Bentuk Perintah :
Repeat
Begin
<Blok Pernyataan>;
End;
Until <Kondisi>;
• Perubahan variabel kontrol perulangan harus dinyatakan dalam blok pernyataan
• Pengetesan kondisi perulangan dilakukan di akhir perulangan
• Blok Pernyataan dikerjakan minimal 1 kali.
k:=0;
Repeat
Begin
<Blok pernyataan>;
k := k + 1;
End;
Until k < 6 ;
Flowchart
5. Buatlah Program untuk mencetak output bilangan :
10
13
16
19
Bandingkan Jika kondisi pada UNTIL langsung bernilai BENAR.
Hasil Program
6. Buatlah program untuk menghitung Luas, Volume, dan Keliling dari sebuah persegi panjang dengan menu tampilan sbb :
Menu Pilihan
1.Hitung Luas
2.Hitung Volume
3.Hitung Keliling
4.Selesai
Pilihan Anda (1/2/3/4)?
• Jika memilih 1, maka program menghitung Luas
• Jika memilih 2, maka program menghitung Volume
• Jika memilih 3, maka program menghitung Keliling
• Setelah mengerjakan setiap pilihan(1,2,3), program akan menampilkan menu pilihan
• Jika memilih 4, maka program selesai/ditutup
Algoritma :
1. Mulai
2. Deklarasikan variabel
3. Definisikan nilai awal var loop, ulang = ‘Y’
4. Cek var ulang, apakah ulang<>’T’,
5. Jika Ya, cetak menu pilihan
6. Input nilai var pilihan (1/2/3/4)
7. Jika pilihan=1, hitung Luas persegi panjang
8. Cetak Luas lalu kembali ke menu (ulangi langkah 4)
9. Jika pilihan=2, hitung Volume persegi panjang
10. Cetak Volume lalu kembali ke menu (ulangi langkah 4)
11. Jika pilihan=3, hitung Keliling persegi panjang
12. Cetak Keliling lalu kembali ke menu (ulangi langkah 4)
13. Jika pilihan=4, lanjuktan ke langkah 14
14. Selesai
(Test dan perbaiki
kesalahan program)
program menu_pilihan;
uses crt;
var nama: string;
p,l,ls,v,k : real
pilihan, ulang : char;
Label Selesai;
begin
clrscr;
ulang := 'Y';
while ulang <> 'T'
Begin
writeln('---MENU---');
writeln('1.Hitung Luas');
writeln('2.Hitung Keliling');
writeln('3. Selesai');
writeln('PILIHAN [1-3]:') ;
readln(pilihan);
case pilihan of
'1' : begin
write('Panjang = ') ;
readln(p);
write('Lebar = ') ;
readln(l);
ls:=p*l;
wtiteln('Luas = ',ls:6:2);
end;
'2' : begin
write('Panjang = ') ;
readln(p);
write('Lebar = ') ;
readln(l);
k:=2*p + 2*l;
wtiteln('Keliling = ',k:6:2);
end;
'3' : begin
goto Selesai;
end;
Readln;
end;
Selesai:
end.
TUGAS-2
Buatlah Program untuk menghitung Konversi Suhu dengan Bentuk output sbb :
Menu Konversi Suhu :
1. Celsius
2. Farenheith
3. Reumer
4. Kelvin
5. Keluar
Pilihan anda (1/2/3/4/5)?
Jika user mengetik 1, maka program akan meminta input data Suhu Celsius, kemudian dikonversi ke F,R, dan K. Jika user mengetik 2, maka program akan meminta input data Suhu Farenheith, kemudian dikonversi ke C, R, dan K. dst. Tampilkan hasil perhitungan.
Program Konversi Suhu dengan Rumus sbb:
C ke Fahrenheit = (9/5 x C) + 32
C ke Reamur = 4/5 x C
C ke Kelvin = C + 273
F ke Celsius = 5/9 x (F - 32)
F ke Reamur = 4/9 x (F - 32)
F ke Kelvin = (F * 5/9) + 273
R ke Fahrenheit = (9/4 x R) + 32
R ke Celsius = 5/4 x R
R ke Kelvin = (R * 5/4) + 273;
Perulangan For dalam For
Perulangan For dalam For umumnya digunakan untuk mengerjakan data yg terdiri dari baris dan kolom. For yg pertama untuk perulangan baris dan for yg kedua untuk perulangan kolom. Umumnya diaplikasikan utk pengolahan data matriks.
Bentuk perintah :
FOR i=n1 TO n2 DO
Begin
{Blok pernyataan};
FOR j=m1 TO m2 DO
begin
{blok pernyataan};
end;
End;
Contoh :
Buatlah program dengan tampilan seperti berikut :
1,5 1,5 1,5 1,5
2,4 2,4 2,4 2,4
3,3 3,3 3,3 3,3
4,2 4,2 4,2 4,2
5,1 5,1 5,1 5,1
Algoritma :
1. Mulai
2. Deklarasikan variabel I,j
3. Cek nilai I, apakah I <=5, Jika tidak lanjutkan ke
langkah 5, jika Ya lanjutkan ke langkah 4
4. Cek nilai j, apakah j>=1, jika tidak kembali ke
langkah 3. Jika Ya, cetak nilai i,j lalu kembali
ke langkah 4
5. Selesai
• Program :
Program Latihan_Loop;
Uses crt;
Var I,j : integer;
Begin
for i:=1 to 5 do
Begin
For j:= 5 downto 1 do
Begin
write(I,’,’,j,’ ‘);
End;
writeln; {pindah baris}
End;
readln;
End.
Latihan
1. Buatlah program dengan bentuk output sebagai berikut :
1,1
2,2
3,3
4,4
5,5
2. Buatlah program dengan output seperti berikut
:
1,1
2,1 2,2
3,1 3,2 3,3
4,1 4,2 4,3 4,4
5,1 5,2 5,3 5,4 5,5
6,1 6,2 6,3 6,4 6,5 6,6
3. Buatlah program untuk menjumlahkan nilai
indeks baris dan kolom dengan output seperti
berikut :
2
3 4
4 5 6
5 6 7 8
6 7 8 9 10
7 8 9 10 11 12