Dosen: Heriyanto,A.Md, S.Kom 19
Contoh 2.8 :
Uses crt,dos; {memanggil semua perintah dos dan control} Var Nama : String[12]; {membatasi panjang string yang diijinkan hanya 12 huruf}
I,N : integer; Begin
Clrscr; {untuk menghapus tulisan semua di layar menggunakan uses crt} N:=5; {variabel lokal}
Write‘Masukkan Nama : ‘; ReadlnNama; For I := 1 to n do
Begin Writeln‘Nama Anda : ‘,I,’=’,Nama;
End; End.
Run
Masukkan Nama : ABCDE Nama Anda : 1 = ABCDE
Nama Anda : 2 = ABCDE Nama Anda : 3 = ABCDE
Nama Anda : 4 = ABCDE Nama Anda : 5 = ABCDE
4. PERINTAH PERULANGAN TAK TERKENDALI
Perintah Perulangan tak terkendali terdiri dari dua yaitu :
PERULANGAN TAK TERKENDALI SELAMA BERNILAI FALSE; Repeat …jika tidak sesuai kondisifalse maka ulangi…..Until… true
Contoh 2.9 : Uses Crt,dos;
Var Nama : String; Begin
Repeat
Write‘Nama : ‘;ReadlnNama; Until Nama = ‘IPTTI’;
Writeln‘Perulangan Betul Keluar ’; Run
Nama : LEMBAGA Nama : INSTITUSI
Nama : IPTTI
Perulangan Betul Keluar PERULANGAN TAK TERKENDALI SELAMA BERNILAI TRUE;
while… jika sesuai kondisi true..Do….ulangi terus…
Dosen: Heriyanto,A.Md, S.Kom 20
Contoh 2.0.1 : Uses Crt,dos;
Var
Nama : String; Begin
Write‘Masukkan Nama : ‘;readlnnama; While nama=’IPTTI do
Write‘AKAN DIULANG KARENA SAMA DENGAN IPTTI; Readln;
End. Run
Masukkan Nama : LPK Selesai
Masukkan Nama : IPTTI AKAN DIULANG KARENA SAMA DENGAN IPTTI
AKAN DIULANG KARENA SAMA DENGAN IPTTI AKAN DIULANG KARENA SAMA DENGAN IPTTI
…..dan seterusnya… tidak ….berhenti…henti…… Contoh 2.0.2 :
Uses Crt,dos; Var
Nama : String; Begin
Write‘Masukkan Nama : ‘;readlnnama; While nama’IPTTI do
Write‘AKAN DIULANG KARENA TIDAK SAMA DENGAN IPTTI; Readln;
End. Masukkan Nama : IPTTI
Selesai Masukkan Nama : LPK
AKAN DIULANG KARENA TIDAK SAMA DENGAN IPTTI AKAN DIULANG KARENA TIDAK SAMA DENGAN IPTTI
AKAN DIULANG KARENA TIDAK SAMA DENGAN IPTTI …..dan seterusnya… tidak ….berhenti…henti……
Dosen: Heriyanto,A.Md, S.Kom 21
BAB III ARRAY
1. Definisi ARRAY
Array adalah suatu tipe data terstruktur, yang berisi lebih dari satu data dan merupakan kumpulan data-data yang sejenis.
Var Variabel : array[1..max] of TipeData ;
{TipeData dapat berupa string, integer, real} contoh :
Var Nama : array[1..100] of string;
Usia : array[1..100] of integer; Upah : array[1..100] of real;
Dengan melihat deklarasi variabel array maka dapat dibayangkan bahwa dalam data akan dapat menampung disusun sebagai berikut :
Nama[1] Usia[1]
Upah[1] Nama[2]
Usia[2] Upah[2]
Nama[…] Usia[…]
Upah[…] Nama[100]
Usia[100] Upah[100]
Mengapa harus memakai Array ? Karena dalam proses data perulangan yang diinputkan berulang-ulang jika akan
dimunculkan ditampilkan kembali maka data yang terakhir sajalah yang akan muncul. Jika menggunakan Array maka data yang diinputkan berulang-ulang akan disimpan
dalam array sehingga jika dimunculkan kembali akan tampil data dari 1 sampai ke sekian. Misalkan kalau kita memprogram dengan perulangan:
Kasus 3.1 tidak menggunakan ARRAY :
Uses crt,dos;
Var Nama : string; I,N:integer;
Begin N:=
3 For I := 1 to n do
begin Write‘Masukkan Nama :‘; Readlnnama;
Dosen: Heriyanto,A.Md, S.Kom 22
End; For I := 1 to n do
begin
Writeln‘Nama :‘,nama; End;
End. Run
Masukkan Nama : IPTTI Masukkan Nama : Yogyakarta
Masukkan Nama : School Nama : School
Nama : School Nama
: School
Sehingga untuk input IPTTI, Yogyakarta akan tidak tampil dan yang tampil hanya School semua sehingga seolah-olah data nama 1, data nama 2, dihapus dalam memori.
Untuk mengatasinya maka kita menggunakan program ARRAY. Penyelesaian
Kasus 3.1 maka menggunakan ARRAY :
Uses crt,dos;
Var Nama : array[1..100] of string; I,N:integer;
Begin N:=
3 For I := 1 to n do
begin
Write‘Masukkan Nama :‘; Readlnnama[I]; End;
For I := 1 to n do begin
Writeln‘Nama :‘,nama[I]; End;
Readln;
End. Run
Masukkan Nama : IPTTI Masukkan Nama : Yogyakarta
Masukkan Nama : School Nama : IPTTI
Nama : Yogyakarta Nama
: School
Contoh 3.2 : Program hari;
Var
Hari : array[1..7] of string[10];
Dosen: Heriyanto,A.Md, S.Kom 23
K: integer;
Begin Hari[1] := ’SENIN’;
Hari[2] := ’SELASA’; Hari[7] := ‘ MINGGU’;
Hari[3] := ‘RABU’; Hari[4] := ‘KAMIS’;
Hari[5] := ‘JUM’AT’; Hari[6] := ‘SABTU’;
Repeat Write‘Hari ke berapa ? ‘; ReadlnK;
If K0 and K8 then Writeln‘Hari
: ‘,Hari[K];
Until K=0;
End. Run
Hari ke berapa ? 1 enter Hari : SENIN
Contoh berikut akan membaca nama mahasiswa dan nilai dalam suatu array. Nilai 55 lulus. Dan program ditampilkan semua berupa nama mahasiswa dan nilai serta kelulusan.
Contoh 3.3 : Program nilai;
Const max=100; Var
Nama : array[1..max] of string[20]; Nilai : array[1..max] of real;
Hasil : array[1..max] of string[10]; N,j
: integer;
Begin Write‘Jumlah Siswa
: ‘; ReadlnN; Writeln‘Memasukkan
Data’; For J := 1 to N do
Begin Write‘Nama Siswa : ’; ReadlnNama[J];
Write‘Nilai Angka : ‘; ReadlnNilai[J]; If Nilai[J]55 Then Hasil[J] := ‘LULUS’
Else Hasil[J] := ‘GAGAL’; End;
Writeln‘Hasil Daftar Nilai‘ ; Writeln‘--------------------------------------------------‘;
Writeln‘
Nama Nilai
Hasil ‘;
Writeln‘--------------------------------------------------‘; For J := 1 to N do
Begin WritelnNama[J]:15,Nilai[J]:10:2 ,Hasil[J]:15;
Writeln‘--------------------------------------------------‘; End;
End. Run
Jumlah Siswa : 2 enter
Dosen: Heriyanto,A.Md, S.Kom 24
Memasukkan Data Nama Siswa : Herdiansyah
Nilai Angka : 80 enter Nama Siswa : Arman
Nilai Angka : 44 enter Hasil Daftar Nilai
------------------------------------------------------ Nama
Nilai Hasil
------------------------------------------------------ Herdiansyah
80 LULUS
Arman 44 GAGAL
2. Manipulasi Array
Pengertian manipulasi array adalah seluruh aplikasi pengolahan data yang disimpan dalam struktur variabel array dapat didayagunakan.
2.1 Searching pelacakan data 2.2 Sorting pengurutan data
Berikut pembahasannya : 2.1 Searching
Pencarianpelacakan data berupa input dari keyboard atau tidak yang tersimpan dalam larik array sebanyak n kali, dapat mengcountermenjumlah mengetahui
cacahnya. Dapat juga misalnya untuk mencari nilai terendah atau tertinggi ada berapa jumlah mahasiswa tersebut.
Contoh 3.4 program searching array bilangan habis dibagi 3 ada berapa buah
Program pelacakan; Var
x : array[1..100] of integer;
N,I,c :
integer; Begin
Write‘Ada berapa data : ‘; readlnN;
For I := 1 to N Do begin
Write‘Data :
‘;ReadlnX[I]; end;
C := 0; For
I := 1 to N Do IF X[I] mod 3 = 0 then inc c ;
Write‘Data yang habis dibagi 3 ada : ‘,C,’ Buah’; End.
Run Ada berapa data
: 5 Enter DATA
: 10
enter DATA : 6 enter
DATA : 11 enter
Dosen: Heriyanto,A.Md, S.Kom 25
DATA : 12 enter DATA : 10 enter
Data yang habis dibagi 3 ada 2 buah Contoh 3.5 program searching array kamus
Program searching_Kamus;
Const n
= 5;
Var x, y
: array[1..5] of string[20]; Kata
: string[20];
P,I :
integer; Begin
X[1] := ‘GOST’; Y[1] := ‘HANTU’;
X[2] := ‘LOVE’; Y[2] := ‘CINTA’;
X[3] := ‘WIND’; Y[3] := ‘ANGIN’;
X[4] := ‘LOST’; Y[4] := ‘KEHILANGAN’;
X[5] := ‘STOP’; Y[5] := ‘BERHENTI’;
Writeln‘KAMUS INGGRIS
– INDONESIA’;
Repeat Write‘Kata
Inggris :
‘; readlnKata;
P:=0; For I := 1 to N do
If Kata
= X[I]
then P:=I;
If P0
then Writeln‘Indonesia
Æ ‘,Y[P] Else
writeln‘Tidak ada
dalam Kamus’;
Until Kata=’HENTI’;
End. run
KAMUS INGGRIS – INDONESIA Kata Inggris : LOVE
Indonesia Æ CINTA
2.2 Sorting mengurutkan data Mengurutkan data merupakan topik penting dalam array. Bayangkan kalau kita ingin
melihat data kalau tanpa diurutkan maka akan betapa susahnya kita menemukan dan melihat data tersebut.
Ada 2 jenis metode sortir yang sederhana yaitu : 1. Metode gelembung Buble Sort
2. Metode pilih langsung Straight selection Metoede Buble Sort
Misalkan dimiliki data numerik dalam larik X sebanyak N elemen yang belum urut dan akan diurutkan ascending naik. Maka langkahnya adalah :
Dosen: Heriyanto,A.Md, S.Kom 26
Miasal N=5 terdiri dari data : 10 21 45 7 5
X[1 ] X[2] X[3]
X[4] X[5] Untuk I=1
maka nilai J adalah : 2,3,4,5 Jika
X[1] X[2] maka tukarkan X[1] dengan X[2]
Jika X[1] X[3] maka tukarkan
X[1] dengan X[3] Jika
X[1] X[4] maka tukarkan X[1] dengan X[4]
Jika X[1] X[5] maka tukarkan
X[1] dengan X[5] Untuk I=2
maka nilai J adalah : 3,4,5 Jika
X[1] X[3] maka tukarkan X[1] dengan X[3]
Jika X[1] X[4] maka tukarkan
X[1] dengan X[4] Jika
X[1] X[5] maka tukarkan X[1] dengan X[5]
Untuk I=3 maka nilai J adalah : 4,5
Jika X[1] X[4] maka tukarkan
X[1] dengan X[4] Jika
X[1] X[5] maka tukarkan X[1] dengan X[5]
Untuk I=4 maka nilai J adalah : 5
Jika X[1] X[5] maka tukarkan
X[1] dengan X[5] 5 7 10 21
45 X[1 ]
X[2] X[3] X[4] X[5]
Setelah itu menukarkan X[I] dengan X[J] Tukar := X[I];
X[I] := X[J]; X[J] := Tukar;
Berikut program lengkap: Contoh 3.6 sortir dengan buble sort
Program BubleSortir; Const N=6;
Var
X : array[1..n] of integer;
I,J : integer;
Begin X[1]:= 10; X[2] := 21; X[3] := 45; X[4] := 7; X[5] := 5;
Writeln‘Data sebelum disortir’; For I := 1 to N do writeX[I];
For I := 1 to N-1 do
For J := I+1 to N do If X[I] X[J] then
Begin Tukar
:= X[I];
X[I] :=
X[J];
Dosen: Heriyanto,A.Md, S.Kom 27
X[J] :=
Tukar; End;
Writeln; Writeln‘Data setelah disortir’;
For I := 1 to N do WriteX[I]; End.
Run Data sebelum disortir
10 21 45 7 5 Data setelah disortir
5 7 10 21 45
2.3 Sortir Metode Straight Selection Pilih Langsung Pada metode ini algoritma sortirnya adalah sebagai berikut : misalkan dimiliki larik
X[I] dengan I : 1 sampai N Untuk I := 1 sampai N-1
Untuk J := 1 sampai N – I tentukan Jika X[J] X[J+1] maka tukarkan X[J] dengan X[j+1]
Berikut program Straight selection Contoh 3.7 Straight selection sort
Program selection_sort; Const n=5;
Var
X : array[1.. n] of string[10];
I,j,p : Integer;
Tukar :
string[10]; Begin
Writeln‘Ketik
Nama-Nama’; For I := 1 to N do
begin
Write‘Nama :
‘; ReadlnX[I];
End; For I := 1 to N-1 do
For J := 1 to N-I do If X[J] X[J+1] then
Begin Tukar
:= X[J];
X[J] :=
X[J+1]; X[J+1]
:= Tukar;
End; Writeln;
Writeln‘Data setelah di sortir’; For I := 1 to N do writelnX[I];
Dosen: Heriyanto,A.Md, S.Kom 28
End. Run
Ketik Nama-Nama Nama :
Budi Nama
: Beno Nama :
Andi Nama :
Dedi Nama :
Cahyo Data setelah di sortir
Andi Beno
Budi Cahyo
Dedi
Contoh 3.8 program sortir model lainnya Program Sort;
Const N=5;
Var X
: array[1..n] of string[10]; I,j
: integer;
Begin Writeln‘Ketik
Nama-Nama’; For I := 1 to N do
Begin Write‘Nama
: ‘;
ReadlnX[I]; End;
For I := 1 to N-1 do For J := I + 1 to N do
If X[I] X[J] then Begin
Tukar := X[I]; X[I] := X[J];
X[J] :=
Tukar; End;
Writeln; For I := 1 to N do
Begin Writeln‘Data setelah disortir : ’,X[I];
End; End.
Dosen: Heriyanto,A.Md, S.Kom 29
BAB IV PROCEDURE DAN FUNCTION
1. Procedure