PERINTAH PERULANGAN TAK TERKENDALI Manipulasi Array

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