Laman

Minggu, 25 Desember 2011

looping

PENGULANGAN (LOOPING)

1.   Pengertian
·         Pengulangan di Pascal digunakan untuk menjalankan
      satu atau lebih pernyataan sebanyak beberapa kali.
·         Pengulangan memungkinkan pengerjaan beberapa kali
      perintah, tetapi penulisan perintah hanya satu kali.
·         Macam pengulangan:
FOR - DO
WHILE – DO
REPEAT - UNTIL

2.   Pengulangan FOR
·         Pernyataan pengulangan FOR digunakan jika telah
                diketahui berapa kali akan mengulang (satu atau beberapa
                pernyataan).
·         Bentuk umum pernyataan FOR adalah sbb:
FOR (control variable) := (nilai_awal) TO (nilai_akhir) DO
atau
FOR (control variable) := (nilai_awal) DOWNTO (nilai_akhir) DO
BEGIN
.... (aksi)
END;
·         Aksi akan dilakukan sebanyak hitungan pencacah
      pengulangan, yaitu dari NILAI AWAL sampai NILAI AKHIR.

v Contoh pengulangan FOR (1/4)
PROGRAM Loop0A;
BEGIN
WRITELN('Mata-kuliah Algoritma Pemrograman IT TELKOM.');
WRITELN('Mata-kuliah Algoritma Pemrograman IT TELKOM.');
WRITELN('Mata-kuliah Algoritma Pemrograman IT TELKOM.');
WRITELN('Mata-kuliah Algoritma Pemrograman IT TELKOM.');
WRITELN('Mata-kuliah Algoritma Pemrograman IT TELKOM.');
READLN;
END.
PROGRAM Loop0B;
VAR i:integer;
BEGIN
FOR i := 0 TO 4 DO
WRITELN('Mata-kuliah Algoritma Pemrograman IT TELKOM.');
READLN;
END.

Mencetak abjad dengan urutan terbalik dari Z…A
PROGRAM Loop2;
USES crt;
VAR
karakter : char;
BEGIN
clrscr;
FOR karakter:= 'Z' DOWNTO 'A' DO
WRITE(karakter:2);
READLN;
END.

v Contoh pengulangan FOR (2/4)
PROGRAM Loop2;
USES crt;
VAR
karakter : char;
BEGIN
clrscr;
FOR karakter:= 'Z' DOWNTO 'A' DO
WRITE(karakter:2);
READLN;
END.

v Contoh pengulangan FOR (3/4)
Program untuk menghitung jumlah n bilangan pertama dan jumlah kuadrat dan bilangan pertama
PROGRAM Loop3A;
VAR
jumlah, jmlkuadrat,i,n : integer;
BEGIN
WRITE('Banyak n bilangan yang akan diproses : '); READLN(n);
Jumlah := 0;
Jmlkuadrat := 0;
FOR i:=1 TO n DO
BEGIN
Jumlah := jumlah + i;
Jmlkuadrat := jmlkuadrat + i*i;
WRITELN('Jumlah ',i:2,' bilangan pertama = ',jumlah:5);
WRITELN('Jumlah Kuadrat ',i:2,' bilangan pertama = ',jmlkuadrat:5);
END;
READLN;
END.
Program berikut adalah program untuk menghitung deret eksponensial
dan membandingkan dengan fungsi pustaka EXP.
Deret eksponensial adalah :
PROGRAM Loop3;
VAR eksponen, x,suku : real;
n,i : integer;
BEGIN
WRITE('Masukkan banyaknya suku(n): '); READLN(n);
WRITE('Masukan nilai x : '); READLN(x);
Eksponen:=1.0;
suku:=1.0;
FOR i:=1 TO n DO
BEGIN
suku:=suku*x/i;
eksponen:=eksponen+suku;
END;
WRITELN;
WRITELN('Nilai deret = ',eksponen:10:6);
WRITELN('Nilai fungsi = ',exp(x):10:6);
READLN;
END.



v Contoh pengulangan FOR (4/4)
PROGRAM Loop3;
VAR eksponen, x,suku : real;
n,i : integer;
BEGIN
WRITE('Masukkan banyaknya suku(n): '); READLN(n);
WRITE('Masukan nilai x : '); READLN(x);
Eksponen:=1.0;
suku:=1.0;
FOR i:=1 TO n DO
BEGIN
suku:=suku*x/i;
eksponen:=eksponen+suku;
END;
WRITELN;
WRITELN('Nilai deret = ',eksponen:10:6);
WRITELN('Nilai fungsi = ',exp(x):10:6);
READLN;
END.

3.   Pengulangan WHILE - DO
·         Pernyataan WHILE-DOo digunakan untuk pengulangan yang
      belum diketahui pasti jumlah pengulangannya.
·          Berakhirnya pengulangan ini ditentukan oleh suatu kondisi.
·          Bila kondisi sudah tidak terpenuhi, maka pengulangan akan
      berakhir atau selama kondisi masih terpenuhi, pengulangan
      akan terus dilakukan.
·          Pengecekan dilakukan di awal blok pengulangan.
·         Pengulangan pernyataan selama kondisi masih terpenuhi
·         Bentuk umum pernyataan while-do adalah sebagai berikut:
      WHILE condition DO
      statement;
PROGRAM While0;
VAR
n, jumlah, pencacah : integer;
BEGIN
WRITELN('Menghitung jumlah 1 + 2 + 3 + ... + n');
WRITE('Masukkan nilai n = ');
READLN(n);
pencacah := 1;
jumlah := 0;
WHILE pencacah <= n DO
BEGIN
jumlah := jumlah + pencacah;
pencacah := pencacah + 1;
END;
WRITELN('Jumlah deret = ',jumlah:5);
READLN;
END.


v Contoh WHILE - DO (1/3)
PROGRAM While1;
VAR
Average,Sum,Number :REAL;
Kounter,N :INTEGER;
BEGIN
Sum := 0;
Kounter := 1;
WRITE('Masukkan nilai elemen : '); READLN(N);
WHILE Kounter <= N DO
BEGIN
WRITE('Masukkan elemen #',Kounter,':'); READLN(Number);
Sum := Sum + Number;
Kounter := Kounter + 1
END;
Average := Sum/N;
WRITELN;
WRITELN('Jumlah nilai = ',Sum:0:2);
WRITELN('Rata-rata nilai = ',Average:0:2);
WRITELN;
WRITELN('Tekan ENTER untuk lanjut.'); READLN
END.

v Contoh WHILE - DO (2/3)
PROGRAM While2;
VAR Average,Sum,Number : REAL;
Kounter : INTEGER;
BEGIN
Sum := 0;
Average := 0;
Number := 0;
Kounter := 0;
WHILE Number <> -1 DO
BEGIN
Kounter := Kounter + 1;
Sum := Sum + Number;
WRITE('Masukkan elemen #',Kounter,' [-1 untuk mengakhiri]: ');
READLN(Number)
END;
IF Kounter > 1 THEN
Average := Sum/(Kounter-1);
WRITELN('Jumlah nilai = ',Sum:0:2);
WRITELN('Nilai rata-rata = ',Average:0:2);
WRITELN('Tekan ENTER untuk lanjut.');
READLN
END.

v Contoh WHILE – DO (3/3)
PROGRAM While2;
VAR Average,Sum,Number : REAL;
Kounter : INTEGER;
BEGIN
Sum := 0;
Average := 0;
Number := 0;
Kounter := 0;
WHILE Number <> -1 DO
BEGIN
Kounter := Kounter + 1;
Sum := Sum + Number;
WRITE('Masukkan elemen #',Kounter,' [-1 untuk mengakhiri]: ');
READLN(Number)
END;
IF Kounter > 1 THEN
Average := Sum/(Kounter-1);
WRITELN('Jumlah nilai = ',Sum:0:2);
WRITELN('Nilai rata-rata = ',Average:0:2);
WRITELN('Tekan ENTER untuk lanjut.');
READLN
END.

4.   Pengulangan REPEAT - UNTIL
·         Pernyataan REPEAT - UNTIL akan melakukan pengulangan
statement hingga kondisi (persyaratan) berhenti terpenuhi.
·         Bentuk umum pernyataan repeat-until adalah sbb:
REPEAT
statement
UNTIL (condition)
·         Struktur REPEAT–UNTIL digunakan jika jumlah pengulangan
tidak dapat diketahui di awal, tetapi pengulangan statement
akan terus dilakukan sampai kondisi berhenti dipenuhi.
·         Pengecekan dilakukan di akhir blok pengulangan.
PROGRAM Repeat1;
VAR n, jumlah, pencacah : integer;
BEGIN
WRITELN('Menghitung jumlah 1 + 2 + 3 + ... + n');
WRITE('Masukkan nilai n = '); READLN(n);
Pencacah := 0;
Jumlah := 0;
REPEAT
BEGIN
Jumlah := jumlah + pencacah;
Pencacah := pencacah + 1;
END;
UNTIL pencacah = n + 1;
WRITELN('Jumlah deret = ',jumlah);
READLN;
END.

v  Contoh REPEAT - UNTIL (1/2)
PROGRAM Repeat2;
VAR
Factorial :REAL;
Kounter,Number :INTEGER;
BEGIN
WRITE(' Masukan nilai bilangan (0 untuk keluar) : ');
READLN(Number);
WHILE Number <> 0 DO
BEGIN
Factorial:=1;
Kounter:=1;
REPEAT
Factorial := Factorial*Kounter;
Kounter := Kounter + 1;
UNTIL Kounter = Number + 1;
WRITELN('Faktorial dari ',Number,' adalah ',Factorial:0:0);
WRITE('Masukkan sebuah bilangan (0 untuk keluar) :');
READLN(Number)
END;
WRITELN('Im out of here!');
END.

Tidak ada komentar:

Posting Komentar