Struktur Data M. Haviz Irfani, S.Si
Pada garis besarnya, data dapat kita kategorikan menjadi : Type Data Sederhana atau Data Sederhana yang terdiri atas : - Data sederhana Tunggal, misalnya Integer,real,Boolean serta karakter - Data Sederhana majemuk misalnya String Type data ini,dengan berbagai cara tertentu,dapat diorganisasikan menjadi Struktur Data. Struktur Data M. Haviz Irfani, S.Si
Struktur data meliputi : - Struktur Data Sederhana misalnya Array dan Record - Struktur data Majemuk terdiri atas : Linier misalnya : Stack, Queue,serta linear linked list. - Nonlinier, misalnya pohon Biner (Binary Tree), Pohon Cari Binar (Binary Search Tree), Pohon Cari M-way ( M-way Search Tree), Trie, General Tree serta Graph Struktur Data M. Haviz Irfani, S.Si
KONSEP ARRAY M. Haviz Irfani, S.Si Type indeks=Array[0..8] of byte; {tipe bentukan/buatan} Var Nil:indeks; Array satu dimensi adl kumpulan elemen2x yg tersusun dlm satu baris dan bertipe yang sama. Nil[1]:= 17; Nil[5]:=0; Nil[2]:=21; Nil[6]:=2; Nil[3]:=33;Nil[7]:=16; Nil[4]:=1;Nil[8]:=72; [0][1] [2][3][4][5][6][7][8] Variabel NIL
Procedure Cari(nil:indeks); Begin write(‘cari Data ke :’);readln(urut); writeln(‘data ke ’,urut,’ adalah ’,nil[urut]); {urut = 0.. 8} End; {panggil prosedur di atas dengan CARI(nil); } KONSEP ARRAY M. Haviz Irfani, S.Si
Procedure Tampil(nil:indeks); Begin write(‘dari data indeks ke :’);readln(awal); write(‘sampai data indeks ke :’);readln(akhir); for j:= awal to akhir do writeln(‘data ke ’,j,’ adalah ’,nil[ j ]); { j = awal.. akhir} End; { Panggil prosedur diatas dengan Tampil(nil) ; } KONSEP ARRAY M. Haviz Irfani, S.Si
Type indeks=array[0..3,1..8] of integer; Var nil:indeks; Atau Type indeks=array[0..3] of array[1..8] of integer; Var nil:indeks; KONSEP ARRAY M. Haviz Irfani, S.Si [1] [2][3][4][5][6][7][8] [0] [1] [2] [3] baris kolom
Array dua dimensi adalah kumpulan elemen2x berdasar baris dan kolom tertentu; atau kolom dan baris tertentu yang mempunyai tipe yg sama. Nil[baris,kolom] nil[1,3]:=71;nil[2,7]:=37;nil[3,3]:=8; dst Nil[kolom,baris] nil[7,2]:=37;nil[5,0]:=8;nil[1,3]:=30; dst Warning !! Perhatikan pendeklarasian array, apakah array[baris,kolom] atau array[kolom,baris] KONSEP ARRAY M. Haviz Irfani, S.Si
Procedure Cari(nil:indeks); Begin write(‘Data baris :’);readln(bar); write(‘Data kolom :’);readln(kol); writeln(‘data baris ’,bar,’dan kolom ‘, kol,’ adalah ’,nil[bar,kol]); { baris = dan kol = 1..8 } End; {panggil prosedur di atas dengan CARI(nil); } KONSEP ARRAY M. Haviz Irfani, S.Si
Procedure Tampil(nil:indeks); Begin write(‘data kolom dari indeks ke :’);readln(awal); write(‘sampai kolom indeks ke :’);readln(akhir); write(‘data baris dari indeks ke :’);readln(awal1); write(‘sampai baris indeks ke :’);readln(akhir1); for i:= awal1 to akhir1 do for j:= awal to akhir do writeln(‘nil[ ’,i,’,’,j,’]=’,nil[i, j]); { j = awal.. Akhir, dan i=awal1..akhir1} End; { Panggil prosedur diatas dengan Tampil(nil) ; } KONSEP ARRAY M. Haviz Irfani, S.Si
Contoh pendeklarasian lainnya: Type kegiatan=(main,belajar,nonton,berenang); Hari=(senin,selasa,rabu,kamis,jumat,sabtu); aktivitasAnak=array[hari,kegiatan] of byte; Var A: aktivitasAnak; KONSEP ARRAY M. Haviz Irfani, S.Si
Array tiga dimensi adalah kumpulan elemen2x berdasarkan x,y,z yang memiliki tipe yang sama KONSEP ARRAY M. Haviz Irfani, S.Si [1] [2][3][4][5][6][7][8] [1] [2] [3] [0] [1] [2] [3] x Y Z
Type indeks=array [0..3,1..8,1..3] of string; Var nil:indeks; atau: Type indeks=array[0..3]of array[1..8]of array[1..3]of string; Var nil:indeks; KONSEP ARRAY M. Haviz Irfani, S.Si
Procedure Tampil(nil:indeks); Begin write(‘data X dari indeks ke :’);readln(awal); write(‘sampai X indeks ke :’);readln(akhir); write(‘data Y dari indeks ke :’);readln(awal1); write(‘sampai Y indeks ke :’);readln(akhir1); write(‘data Z dari indeks ke :’);readln(awal2); write(‘sampai Z indeks ke :’);readln(akhir2); for x:= awal to akhir do for y:= awal1 to akhir1 do for z:= awal2 to akhir2 do writeln(‘nil[ ’,x,’,’,y,’,‘,z,’]=’,nil[x, y, z]); { x = awal.. Akhir, y=awal1..akhir1 dan z=awal2..akhir2} End; { Panggil prosedur diatas dengan Tampil(nil) ; } KONSEP ARRAY M. Haviz Irfani, S.Si
Contoh pendeklarasian yang lain; Type kalender =array[1..30] of array[1..12] of array[ ] of string; Var tanggal:kalender; Note: untuk array dimensi tiga ke atas prinsipnya sama dg dimensi sebelumnya. Array[nil1..nil2,nil3..nil4,nil5..nil6, dst] of tipedata KONSEP ARRAY M. Haviz Irfani, S.Si
KONSEP RECORD M. Haviz Irfani, S.Si No.NamaAlamat Jenis Kelamin 1ReynaldyJl. Dadur Lokek I No.05 NTTL 2NunungJl. Mangholok II No.33 NTBP 3ArwanaJl. Rangkunyak No.4A SulselL 4SarinemJl. Serungtuk no. 55Z NTTP Misalkan diberikan tabel data penduduk ter-aniaya sebagai berikut: Data disimpan dalam satu variabel yaitu PENDUDUK
Variabel Penduduk mempunyai field: nama, alamat, dan jeniskel. Ditulis dlm pascal : Penduduk.nama Penduduk.alamat Penduduk.jeniskel Contoh: penduduk.nama:=‘nunung’; penduduk.alamat:=‘Jl.Mangholok II no.33 NTB’ penduduk.jeniskel:=‘P’; M. Haviz Irfani, S.Si KONSEP RECORD
M. Haviz Irfani, S.Si Dalam tabel ada 3 field dan 4 record, kolom no. tidak dimasukkan: Dalam pascal : penduduk.nama[1]:=‘Reynaldy’; penduduk.nama[2]:=‘Nunung’; penduduk.nama[3]:=‘Arwana’; penduduk.nama[4]:=‘Sarinem’; Penduduk.alamat[1] :=‘ Jl. Dadur Lokek I No.05 NTT ’; Penduduk.alamat[2] :=‘ Jl. Mangholok II No.33 NTB ’; Penduduk.alamat[3] :=‘ Jl. Rangkunyak No.4A Sulsel ’; Penduduk.alamat[4] :=‘ Jl. Serungtuk no. 55Z NTT ’; Penduduk.jeniskel[1]:=‘L’; Penduduk.jeniskel[2]:=‘P’; Penduduk.jeniskel[3]:=‘L’; Penduduk.jeniskel[4]:=‘P’;
Bagaimana pendeklarasiannya ??? Type ORANG= record nama :array[1..4] of string; alamat :array[1..4] of string; jeniskel :array[1..4] of char; end; {akhir record} Var Penduduk : orang; KONSEP RECORD M. Haviz Irfani, S.Si
Sintak : Type namatipe = Record field1 : tipedata1; field2 : tipedata2; : : : fieldN : tipedataN; End; KONSEP RECORD M. Haviz Irfani, S.Si
Program Recordku1; uses crt; Type orang= record nama:array[1..4] of string; alamat :array[1..4] of string; jeniskel:array[1..4] of char; end; Var penduduk:orang; i:byte; KONSEP RECORD M. Haviz Irfani, S.Si begin clrscr; for i:= 1 to 4 do begin with penduduk do begin writeln('data ke - ',i,'*** :'); write('nama : ');readln(nama[i]); write('alamat : ');readln(alamat[i]); write('jenis kelamin : ');readln(jeniskel[i]); end; readkey; end.
program recordku2; uses crt; type orang= record nama:string; alamat :string; jeniskel:char; end; var penduduk:array[1..4]of orang; i:byte; KONSEP RECORD M. Haviz Irfani, S.Si begin clrscr; for i:= 1 to 4 do begin with penduduk[i] do begin writeln('data ke - ',i,'*** :'); write('nama : ');readln(nama); write('alamat : ');readln(alamat); write('jenis kelamin :');readln(jeniskel); end; readkey; end.
Procedure Cari(penduduk:orang); Begin write(‘Masukkan indeks data :’);readln(ind); writeln(‘data ke - ’,ind); with penduduk[ind] do begin writeln(‘Nama = ’,nama); writeln(‘Nim = ’,Nim); writeln(‘Nilai = ’,Nilai); end; End; {panggil prosedur di atas dengan CARI(penduduk); } KONSEP RECORD M. Haviz Irfani, S.Si
Procedure Tampil(penduduk:orang); Begin write(‘data kolom dari indeks ke :’);readln(awal); write(‘sampai kolom indeks ke :’);readln(akhir); writeln(‘╔═══╦══════╦═════╦═════┐’); writeln(‘│ No. │ Nama │ Nim │ Nilai │ ’) writeln(‘├───┼──────┼─────┼─────┤’) ; for i:= awal1 to akhir1 do begin with penduduk[i] do begin gotoxy(2,4+i);writeln(‘│ ’,i); gotoxy(6,4+i);writeln(‘ │ ’,Nama); gotoxy(15,4+i);writeln(‘ │ ’,Nim); gotoxy(22,4+i);writeln(‘ │ ’,Nilai,’ │ ’); end;{end with..do} end;{endfor} writeln(‘└──┴─────┴──────┴─────┘’) End; {Panggil prosedur diatas dengan Tampil(penduduk) ; } KONSEP RECORD M. Haviz Irfani, S.Si
SELESAI… KONSEP ARRAY M. Haviz Irfani, S.Si