FOR DO ( Pengulangan Tanpa Kondisi )
For do merupakan struktur pengulangan dimana aksi dilakukan sebanyak hitungan pencacah pengulangan. Pencacah pengulangan dapat diset sesuai dengan nilai yang ingin kita mulai.
Example:for pencacah pengulangan dari x sampai y do berarti aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari x sampai y sebanyak b-a+1 kali.
Contoh Algoritma :
Program cetak banyak_Belajar yang rajin oce!
{ mencetak ‘Algoritma oce!’ sebanyak 5 kali }
{ mencetak ‘Algoritma oce!’ sebanyak 5 kali }
Deklarasii :
integer ( pencacah pengulangan )
Algoritma
for i <– 1 to 5 do ( ulangi sebanyak 5 kali )
Write ( ‘Algoritma oce!’ )
integer ( pencacah pengulangan )
Algoritma
for i <– 1 to 5 do ( ulangi sebanyak 5 kali )
Write ( ‘Algoritma oce!’ )
Endfor
Output
Algoritma oce!
Algoritma oce!
Algoritma oce!
Algoritma oce!
Algoritma oce!
Algoritma oce!
Algoritma oce!
Algoritma oce!
Algoritma oce!
REPEAT - UNTIL ( Pengulangan dengan Kondisi )
Repeat berarti ulangi dan until berarti sampai. Jadi, repeat-until adalah struktur pengulangandimana aksi dilakukan hingga kondisi (persyaratan ) berhenti terpenuhi.
Example: misalkan kita ingin mengetahui nilai dari mahasiswa jika data masukannya adalah NIM.
Program Pencarian{Program mencari nilai mahasiswa didalam tabel dengan NIM= a.Tabel sudah berisi data NIM,nama dan nilai}
Algoritmanya:tinjau entry pertama tabelrepeatif NIM pada entry tabel sama dengan NIM yang dicari then ambil nama dari NIM tersebutelsetinjau entry berikutnyauntil nilai yang dicari ditemukan atau akhir tabel sudah terlampaui Pada repeat-until jumlah pengulangan tidak dapat diketahui di awal. Karena pengulangan aksiakan terus dilakukan sampai ditemukan entry dari apa yang ditanyakan atau akhir tabel sudahterlampaui, berbeda dengan for-do yang jumlah pengulangannya dilaksanakan.
Contoh : Program cetak banyak_Belajar yang rajin oce!
{ mencetak ‘ Mari Kita Belajar Algoritma!’ sebanyak 5 kali }
{ mencetak ‘ Mari Kita Belajar Algoritma!’ sebanyak 5 kali }
Deklarasi
i : integer ( pencacah pengulangan)
i : integer ( pencacah pengulangan)
Algoritma
i <– 1
repeat ( ulangi sebanyak 5 kali )
write ( ‘Mari Kita Belajar Algoritma!’ )
i <– i + 1
until i 5
i <– 1
repeat ( ulangi sebanyak 5 kali )
write ( ‘Mari Kita Belajar Algoritma!’ )
i <– i + 1
until i 5
· output
Mari Kita Belajar Algoritma!
Mari Kita Belajar Algoritma!
Mari Kita Belajar Algoritma!
Mari Kita Belajar Algoritma!
Mari Kita Belajar Algoritma!
Mari Kita Belajar Algoritma!
Mari Kita Belajar Algoritma!
Mari Kita Belajar Algoritma!
Mari Kita Belajar Algoritma!
Mari Kita Belajar Algoritma!
WHILE – DO ( pengulagan dengan Kondisi )
While berarti selagi/ selama dan do berarti lakukan. Jadi, while-do artinya struktur pengulangandimana selama kondisi ( persyaratan ) pengulangan masih benar, maka aksi dikerjakan.
Contohnya saja pada repeat-until tadi selama kita memasukkan NIM tidak benar/ belumditemukan akhir tabel belum terlampaui, maka dapat dicari NIM pada entry tabel yang sama, jikasudah ditemukan mengambil nilai tersebut, selanjutnya meninjau entry berikutnya didalam table.
Example:
Program Pencarian{Program mencari nilai mahasiswa didalam tabel dengan NIM= a.Tabel sudah berisi data NIM,nama dan nilai}
Algoritma
Tinjau entry pertama tabelWhile NIM yang dicari belum ditemukan dan akhir tabel belum terlampaui doIf NIM pada entry tabel sama dengan NIM yang dicari then ambil nama, nilai dari NIM tersebut
Else
Tinjau entry berikutnya didalam table
Tinjau entry pertama tabelWhile NIM yang dicari belum ditemukan dan akhir tabel belum terlampaui doIf NIM pada entry tabel sama dengan NIM yang dicari then ambil nama, nilai dari NIM tersebut
Else
Tinjau entry berikutnya didalam table
Pada while-do kondisi pengulangan di evakuasi di awal pengulangan, berbeda dengan repeat-until kondisi pengulangan di evakuasi di akhir.
Contoh : Program cetak banyak_Belajar yang rajin oce!
{ mencetak ‘Belajar Algoritma yuk!’, sebanyak 5 kali }
{ mencetak ‘Belajar Algoritma yuk!’, sebanyak 5 kali }
Deklarasi
i: integer ( pencacah pengulangan )
Algoritma
i <– 1while i 5 do ( ulangi sebanyak 5 kali )
write ( ‘Belajar Algoritma yuk’ )
i: integer ( pencacah pengulangan )
Algoritma
i <– 1while i 5 do ( ulangi sebanyak 5 kali )
write ( ‘Belajar Algoritma yuk’ )
i <– i + 1
end while
end while
. output
Belajar Algoritma yuk !
Belajar Algoritma yuk !
Belajar Algoritma yuk !
Belajar Algoritma yuk !
Belajar Algoritma yuk !
Belajar Algoritma yuk !
Belajar Algoritma yuk !
Belajar Algoritma yuk !
Belajar Algoritma yuk !
Belajar Algoritma yuk !
while atau repeat ekivalen, tetapi pada beberapa masalah pemilihan keduanya bergantung padanatural dari persoalan. Didalam repeat, kondisi pengulangan diperiksa pada akhir pengulangan, jadi instruksi didalam badan pengulangan diperiksa pada akhir pengulangan. Sedangkan, padawhile kondisi pengulangan diperiksa awal, jadi instruksi didalam badan pengulangan hanyadapat dilaksanakan bila pengetesan kondisi menghasilkan nilai true, jadi jika pengulangan pertama kali bernilai false maka badan pangulangan mungkin.
IF THEN ELSE
If berarti jika dan then berarti maka. Jadi, if_then_else adalah suatu bentuk pengkondisian bilamana kondisi bernilai benar, aksi 1 akan dikerjakan, tapi jika tidak aksi 2 yang akan dikerjakan.
if kondisi then
aksi 1
else
aksi 2
aksi 1
else
aksi 2
Example:
if anak berbaju hijau then
acungkan jarinya
else if anak berbaju merah then
berdiri else
diam duduk ditempat.
if anak berbaju hijau then
acungkan jarinya
else if anak berbaju merah then
berdiri else
diam duduk ditempat.
( terdapat kelemahan karena pemrogram tidak tahu kapan harus berhenti menulis, tidak tahu berapa kali pernyataan harus ditulis sampai dengan data yang dicari ditemukan).
Example Algoritma:
Contoh program:
{*Program Hitung Nilai*} {*keterangan: Nilai per poin=10*} uses wincrt; var Jumlahpoin, nilaiperpoin, nilai:integer; begin write('Jumlah poin:'); read(Jumlahpoin); write('Nilai per poin:'); readln(nilaiperpoin); nilai:=jumlahpoin*nilaiperpoin; if Jumlahpoin>30 then nilai:=nilai+(jumlahpoin-30)*nilaiperpoin; write('Nilai yang diperoleh sebesar:',nilai); End. |
Hasil eksekusi dari program adalah:
Contoh1:
Jumlah poin : 20
Nilai per poin : 10
Nilai yang diperoleh sebesar : 200
Contoh 2:
Jumlah poin : 40
Nilai per poin : 10
Nilai yang diperoleh sebesar : 500
Contoh1:
Jumlah poin : 20
Nilai per poin : 10
Nilai yang diperoleh sebesar : 200
Contoh 2:
Jumlah poin : 40
Nilai per poin : 10
Nilai yang diperoleh sebesar : 500
ARRAY
Array adalah variabel yang dapat menyimpan lebih dari satu nilai sejenis. Terdapat dua bagian penting yaitu elemen array yang merupakan nilai dan endeks array yang merupakan nilai urut untuk mengakses nilai pada array.
Berikut ini contoh array A dengan 10 buah elemen tiap elemen memiliki nilai antara 10 hingga 100.
Berikut ini contoh array A dengan 10 buah elemen tiap elemen memiliki nilai antara 10 hingga 100.
A[1] | A[2] | A[3] | A[4] | A[5] | A[6] | A[7] | A[8] | A[9] | A[10] |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 |
Deklarasi Array.
Array dideklarasikan pada bagian deklarasi. Deklarasi umum dari array adalah
NamaArray : array[IndeksAwal..IndeksAkhir] of tipe_data;
Array dideklarasikan pada bagian deklarasi. Deklarasi umum dari array adalah
NamaArray : array[IndeksAwal..IndeksAkhir] of tipe_data;
Contoh: Jika akan mendeklarasikan viriabel A sebagai Array dengan 10 elemen bertipe integer :
Var
A: array [1..10] of Integer;
Contoh lain:
A1: array[0..9] of Integer;
A1: array[10..20] of Integer;
A1: array[‘a’..’j’] of Integer;
A: array [1..10] of Integer;
Contoh lain:
A1: array[0..9] of Integer;
A1: array[10..20] of Integer;
A1: array[‘a’..’j’] of Integer;
Mengakses elemen Array
Untuk memberikan nilai pada variabel array dapat dengan menggunakan parameter berikut :
NamaArray [indeks]:=nilai;
Untuk memberikan nilai pada variabel array dapat dengan menggunakan parameter berikut :
NamaArray [indeks]:=nilai;
Contoh :
Var
A: array[1..10] of integer;
Begin
A[1]:=1; {Mengisikan elemen 1 dengan nilai 1}
A[9]:=200; {Mengisi elemen 9 dengan nilai 200};
End.
Array sebagai konstanta
A: array[1..10] of integer;
Begin
A[1]:=1; {Mengisikan elemen 1 dengan nilai 1}
A[9]:=200; {Mengisi elemen 9 dengan nilai 200};
End.
Array sebagai konstanta
Nilai pada array dapat bernilai konstan. Dapat kita lakukan dengan mendeklarasikannya pada bagian constanta.
Bentuk umum pendeklrasiannya adalah:
Const
NamaArray : array[IndeksAwal..IndeksAkhir] of Tipe_Data = (nilai1, nilai2,………);
Banyaknya nilai konstanta harus sama dengan jumlah elemennya.
Bentuk umum pendeklrasiannya adalah:
Const
NamaArray : array[IndeksAwal..IndeksAkhir] of Tipe_Data = (nilai1, nilai2,………);
Banyaknya nilai konstanta harus sama dengan jumlah elemennya.
Contoh penggunaanya Program ArrayKonstanm;
Uses Wincrt;
Const
Hari : array[1..2] oof string = (‘senin’,'selasa’,'rabu’,'kamis’,'jumat’,'sabtu’,'minggu’);
Var
noHari:integer;
begin
clrscr;
write(‘Masukan nomor harinya : ‘);readln(noHAri);
write(‘Hari ke’,noHari,’adalah’,Har[noHari]);
end.
Uses Wincrt;
Const
Hari : array[1..2] oof string = (‘senin’,'selasa’,'rabu’,'kamis’,'jumat’,'sabtu’,'minggu’);
Var
noHari:integer;
begin
clrscr;
write(‘Masukan nomor harinya : ‘);readln(noHAri);
write(‘Hari ke’,noHari,’adalah’,Har[noHari]);
end.
Jika dieksekusi maka hasilnya adalah:
Masukan nomor harinya : 2
Hari ke 3 adalah rabu
Array saebagai parameter
Masukan nomor harinya : 2
Hari ke 3 adalah rabu
Array saebagai parameter
Array pada waktu tertentu dapat digunakan sebagai parameter dari suatu proesdur atyau fungsi. Contoh :
Type
Bilangan = array [1..100[ of integer;
Procedure InputArray(A:bilangan; N:integer);
var
i:integer;
begin
for i:=1 to N do
write('Masukan elemen array ke ',i); readln(A[i]);
end.
Bilangan = array [1..100[ of integer;
Procedure InputArray(A:bilangan; N:integer);
var
i:integer;
begin
for i:=1 to N do
write('Masukan elemen array ke ',i); readln(A[i]);
end.
Contoh diatas adalah prenggunaan array sebagai parameter untuk memberikan nilai pada suatu array tertentu.
Array berisi record
Caranya adalah mendefinisikan record terlebih dahulu yang kemudian akan digunakan sebagai tipe data pada saat pendeklarasiaan array. Contoh:
Array berisi record
Caranya adalah mendefinisikan record terlebih dahulu yang kemudian akan digunakan sebagai tipe data pada saat pendeklarasiaan array. Contoh:
Type
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
End;
TkumpulanSiswa = array [1..100] of Tsiswa;
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
End;
TkumpulanSiswa = array [1..100] of Tsiswa;
Var
A: TkumpulanSiswa;
A: TkumpulanSiswa;
Variabel A diatas akan menampung 100 buah record yang bertipe Tsiswa. Sementara untuk record berisi array dengan contoh perhitungan nilai siswa berikut : Nilai = (20% * kuis) + (30% * UTS) + (50% * UAS). Maka kita dapat mendefinisikan mahasiswa sebagai tipe record yang memiliki 3 nilai dengan menggunakan array. Yaitu:
Type
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
Nilai = array [1..3] of real;
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
Nilai = array [1..3] of real;
Kode diatas menunjukan bahwa setiap mahasiswa memiliki 3 nilai.
Metode pencarian pada Array
Ada beberapa macam teknik dalam mendapatkan nilai dari suatu elemen pada array salh satunya dengan metode pencarian beruntun.Contoh:
Program CaraiBeruntun;
Uses Wincrt;
Const
N : array[1..5] of integer= (10,20,30,40,50);
Var
a,b,index : integer;
begin
clrscr;
write(‘Masukan nilai yang akan dicari : ’);readln(a);
index:=0;
for b:=1 to 5 do begin
if N[b] = a then begin
index:=b;
break;
end;
end;
writeln(a,’ adalah nilai yang ditemukan pada index ke ’,index);
end.
Const
N : array[1..5] of integer= (10,20,30,40,50);
Var
a,b,index : integer;
begin
clrscr;
write(‘Masukan nilai yang akan dicari : ’);readln(a);
index:=0;
for b:=1 to 5 do begin
if N[b] = a then begin
index:=b;
break;
end;
end;
writeln(a,’ adalah nilai yang ditemukan pada index ke ’,index);
end.
Array 2 dimensi
Array 2 dimensi adalah array yang memiliki 2 buah elemen bertipe array yang berbentuk kolom dan baris. Pendeklarasiannya adlah sebagai berikut:
NamaArray : array[1..BanyakBaris, 1..BanyakKolom] of tipe_data;
Contoh
Array2D : array[1..3, 1..4] of integer;
Sedangkan untuk mengaskes maupun memberikan nilai dengan parameter:
Array2D [2,3]:=200; {Mengisikan nilai 200 pada baris 2 kolom 3}
Array 2 dimensi adalah array yang memiliki 2 buah elemen bertipe array yang berbentuk kolom dan baris. Pendeklarasiannya adlah sebagai berikut:
NamaArray : array[1..BanyakBaris, 1..BanyakKolom] of tipe_data;
Contoh
Array2D : array[1..3, 1..4] of integer;
Sedangkan untuk mengaskes maupun memberikan nilai dengan parameter:
Array2D [2,3]:=200; {Mengisikan nilai 200 pada baris 2 kolom 3}