Anda di halaman 1dari 58

Catatan Kuliah STRUKTUR DATA

Catatan Kuliah
PAM 282
STRUKTUR DATA

Oleh
Narwen, M.Si
Jurusan Matematika FMIPA Unand
Narwen, M .Si / Jurusan Matematika FMIPA Unand 1
Catatan Kuliah STRUKTUR DATA

BAB I PENDAHULUAN

PENGERTIAN STRUKTUR DATA.


Struktur data adalah cara menyimpan atau merepre-
sentasikandata atau informasi didalam komputer agar
bisadipakai secara efisien.
Sedangkan data atau informasi itusendiri adalah
representasi kenyataan atau fakta dari dunianyata.
Fakta atau keterangan tentang kenyataan dari dunia
nyata tersebut akan disimpan, direkam ataupun
direpresentasikandalambentuk tulisan, suara, gambar,
sinyal atau simbol-simbol.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 2
Catatan Kuliah STRUKTUR DATA
Secara garis besar tipe data dapat dikategorikan
menjadidua kelompok, yaitutipe data sederhana dan
tipe data terstruktur.
Tipe data sederhana dibedakan lagi atas tipe data
sederhana tunggaldantipe data sederhana majemuk.
Contoh tipe data sederhana tunggaladalah integer,
real, boolean dan karakter. Sedangan tipe data
sederhana majemukadalah string.
Tipe data terstrukturdibedakan juga atas struktur data
sederhana dan s truktur data majemuk. Contoh
struktur data sederhana adalah array dan record.
Sedangkan strukturdatamajemuk dibedakan lagi
atas struktur
data majemukLinier dan non linier.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 3
Catatan Kuliah STRUKTUR DATA
Contoh dari strukturdatamajemuk linieradalah
stack (tumpukan), queue (antrian), list dan multi
list. Sedangkan contoh dari strukturdata majemuk
non Linier adalah pohon biner dan graph.
Pemakaian struktur data yang tepat didalam proses
pemrograman akan menghasilkanalgoritma yang
lebih jelas dan tepat, sehinggamenjadikan
program secara keseluruhan lebihefisiendan
sederhana.
Struktur data yang ″standar ″ yang biasanya
digunakandibidang informatika adalah list linier
(linked List) danvariasinya, multi list, stack
(tumpukan), queue (antrian), tree (pohon) dan
graph (graf ).
Narwen, M.Si / Jurusan Matematika FMIPA Unand 4
Catatan Kuliah STRUKTUR DATA

INTEGER.
Integer adalah bilangan yang tidak mengandung pecah-
an dandisajikansebagai angkabulat. Integer memiliki
representasisederhanadalam komputer. Komputer
memandang integersebagai nilaidari serangkaian
bilangan biner. Namun komputertidak memproses per
bit, tapi per blok bit yang umumnya terdiri dari 8 bit
(dikenal sebagai 1 byte atau binary eight).
Sebuah integer Ndisajikandalam memory dengan ru-
musan N ← 2 n-1 – 1, dengan n adalahjumlah bit dalam
memory dan satu bit paling kirisebagaisign (tanda).
Bila bittersebut bernilai 0, makabilangannya adalah
positif. Sebaliknya bila bittersebut bernilai 1 maka
bilangannya adalahnegatif.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 5
Catatan Kuliah STRUKTUR DATA

Metode menggambarkan bilangan binernegatif.


1. Ones Complement Notation.
Bilangan negatif diperoleh dengan merubah setiapbit
secara keseluruhanke dalam kelompok bit lawannya.
Contoh : (38)10 = 00100110. Maka (-38)10 =
11011001. Masalah dengan metode ini, (0)10 dapat
digambarkan dengan 00000000 atau 1111111,
padahal untuk satu bilangan bulat dilambangkan
oleh satu bilangan biner.
2. Twos Complement Notation.
Bilangan negatif diperoleh dengan menambahkan 1
ke metode ones complement notation.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 6
Catatan Kuliah STRUKTUR DATA

Contoh : (-38)10 = 11011001 (ones complement)


1+
(-38)10 = 11011010 (twos complement)
Dengan metode ini (0)10 dapat digambarkan
dengan 00000000 secara tunggal.
Tipe Integer pada pascal.
Tipe Jangkauan Ukuran
Shortint -128 .. 127 8 bit
Byte 0 .. 255 8 bit
Word 0 .. 65535 16 bit
Integer -32768 .. 32767 16 bit
Longint -2147483648 .. 2147483647 32 bit
Narwen, M.Si / Jurusan Matematika FMIPA Unand 7
Catatan Kuliah STRUKTUR DATA

Operasi dalam integer.


1. Operasi uner, yaitu operasi yang hanya
mempunyai satu operand, yaitu - dan +.
2. Operasi biner, yaitu operasi yang mempunyaidua
operand, yaitupenambahan (+),pengurangan (-),
perkalian (*), pembagian bulat (div), dan sisa
bagi bulat (mod).
Bentuk umum dari tipe integer adalah:

Var <nama variabel> : <tipe integer>;


Narwen, M.Si / Jurusan Matematika FMIPA Unand 8
Catatan Kuliah STRUKTUR DATA

REAL.
Bilangan Real adalahgabungandaribilangan Rasional
dengan Irrasional. Biasanyaditulis dalambentuk bi-
langan berkoma.
Dalam memori komputer, bilangan real memakai
sistem floating point, merupakan versi dari notasi
ilmiah atau scientific notation. Disini penyajian ter-
diri dari mantissa (pecahan) dan indeks (eksponen)
atau karakter, sehinggauntuk bilangan real X
dapat dirumuskansebagaiX = M * R E , dengan
Madalah pecahan, R adalah radix danE
adalaheksponen.
Mantissa adalah bilangan bulat ≠ 0.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 9
Catatan Kuliah STRUKTUR DATA

Penulisan floating point dengan 32 bit binerterdiri


dari 24 bit merupakan mantissa dan 8 bit merupakan
eksponen. Bilangannegatif dari mantissa atau
eksponen menggunakan two complement notation.
Operasi dalam Real.
Semua operasipada aritmatika dan trigonometri adalah
operasi-operasi yang dapat dilakukan terhadap bilang-
an real.
Bentuk umum daritipe realadalah:
Var <nama variabel> : <tipe real>;
Narwen, M.Si / Jurusan Matematika FMIPA Unand 10
Catatan Kuliah STRUKTUR DATA

CHARACTER dan STRING.


Karakter (Character) meliputi digit numerik, karakater
alfabetik dan karakter khusus. Sebuah karakter dalam
memori komputer akan menempati 8 bit biner yang
merepresentasikan bilangan positif. Misalkan ‘A’
dalam memoriditulis 0100 0001 atau (65)10 . Jadi kode
ASCII dari A adalah 65. ASCII = America Standart
Code for Information Interchange. Ada juga me-
ngembangkan EBCDIC = Extended Binary Coded
Decimal Interchange Code, dengan 8 bit biner.
String adalah barisan hingga
sejumlahhinggakarakter. simbol
StringS yang diambildari
dengan panjang n
ditulis sebagai S ← a1 a2 a3… an .
Narwen, M.Si / Jurusan Matematika FMIPA Unand 11
Catatan Kuliah STRUKTUR DATA

Operasi dalam Karakter dan String.


1. Concat [fungsi], digunakan untuk
menggabungkan dua atau lebih variable-variabel
string.
ConCat ( s1 <,s2,...,sn>: String) : String;
2. Copy [fungsi], digunakan untuk mengambil satu atau
beberapa karakter darisebuah string.
Copy(S:String;Index,Count:integer) : String;

3. Delete [prosedur], digunakan untuk menghapus


seba- gian karakter darisebuah string.
Delete(S:String;Index,Count:integer);
4. Insert [prosedur], digunakan untuk menyisipkan
satu atau beberapa karakterke dalam sebuah string.
Insert(source,S:string;Index:integer);
Narwen, M.Si / Jurusan Matematika FMIPA Unand 12
Catatan Kuliah STRUKTUR DATA

5. Length [fungsi], digunakan untuk menghitungba-


nyaknya karakterdalam suatu string.
Length(S:String): integer;

6. Pos [fungsi], digunakan untuk mencari


posisisebuah bagian string (substring) didalam
sebuah string.
Pos(Substr,S:string): Byte;

7. Str [prosedur], digunakanuntuk merubah nilai


numerik ke dalam nilai string.
Str(N:integer;S:string);

8. Val [prosedur], digunakanuntuk merubah nilai


string ke dalam nilai numerik.
Val(S:String;N:Integer;P:byte);
Narwen, M.Si / Jurusan Matematika FMIPA Unand 13
Catatan Kuliah STRUKTUR DATA

9. Upcase [fungsi], digunakan untuk memberikan


huruf kapital dari suatu argumen karakter.
Upcase(C:char): char;

Operasi transfer tipe data.


1. Chr [fungsi], digunakanuntukmerubah nilai dari
byte ke bentuk karakter yang sesuaidengan kode
ASCII.
Chr(x : byte): char;

2. Ord [fungsi], digunakanuntukmerubah nilai suatu


variabel dari bentuk karakterke bentuk longint.
Ord(C : char): longint;
Narwen, M.Si / Jurusan Matematika FMIPA Unand 14
Catatan Kuliah STRUKTUR DATA

3. Round [fungsi],
digunakanuntukmembulatkan data tipe real ke
data tipe longint.
Round(X:Real): Longint;

4. Trunc [fungsi], digunakanuntukmembulatkan ke


bawahdata tipe real ke data tipe longint.
Trunc(X : Real): Longint;
Narwen, M.Si / Jurusan Matematika FMIPA Unand 15
Catatan Kuliah STRUKTUR DATA

RECORD

Disusun oleh satu atau lebih field.Tiap field me-


nyimpandata dari tipedasar tertentu atau dari tipe
bentukan lain yang sudahdidefinisikansebelumnya.
Nama record ditentukan oleh pemrogram. Record
disebut jugatipeterstruktur. Bentuk umum dari
record adalah:
Type <nama record> = record
field1 : type1;
field2 : type2;
...
fieldn : typen;
end;
Narwen, M.Si / Jurusan Matematika FMIPA Unand 16
Catatan Kuliah STRUKTUR DATA

Contoh 1.
Type Titik = record
x : real;
y : real;
end;

Jika variabelP dideklarasikan mempunyaitipe Titik


maka field yang mengacu padaP adalahP.x dan
P.y.

Contoh 2.
Didefinisikan tipe terstruktur yang mewakili Jam yang
dinyatakan sebagai jam(hh), menit(mm) dan detik(ss),
maka cara menulis type Jam adalah:
Narwen, M.Si / Jurusan Matematika FMIPA Unand 17
Catatan Kuliah STRUKTUR DATA

Type JAM = record


hh : integer; {0…23}
mm : integer; {0…59}
ss : integer; {0…59}
end;

Jika variabel J dideklarasikan mempunyaitipe Jam


maka cara mengacu tiap field adalah J.hh, J.mm
dan J.ss.

Operasiterhadap record adalah operasi per elemen,


yaitu assignment, baca dan tulis.
Akses elemen dari record adalah,
<nama record> . <nama filed>.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 18
Catatan Kuliah STRUKTUR DATA

ARRAY (LARIK)
Array adalah strukturdatastatik yang menyimpan
sekumpulanelemen yang bertipe sama. Setiap
elemendiakseslangsung melalui indeksnya. Indeks
dari array harustipe data yang menyatakan keter-
urutan misalnya integer atau karakter . Banyaknya
elemen array harus sudah diketahuisebelum program
dieksekusi. Tipeelemen array dapat berupa tipe
sederhana, tipeterstruktur atau tipe array lainnya.
Nama lain array adalahLarik. Array satu dimensi
disebut dengan vektor dan array duadimensidisebut
tabel.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 19
Catatan Kuliah STRUKTUR DATA
Bentuk umum dari array satu dimensi adalah:
Type <nama array> = array[<indeks>] of <tipe>;
Bentuk umum dari array duadimensi adalah:
Type <nama array> = array[<indeks1>,<indeks2>] of <tipe>;

Tiga hal yang harusdiperhatikandalam mendeklara-


sikan suatu array yaitu,
1. Nama array,
2. Range dari Indeks,
3. Tipe data dari elemen array.
Elemen terkecil dari indeks array disebut batas bawah (l)
dan elementerbesardisebut batas atas (u). Jumlah ele-
men dalam array disebut range, diberikan oleh
ord(u) - ord(l) + 1.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 20
Catatan Kuliah STRUKTUR DATA

Contoh 3.
Definisikan suatu array dengan nama LarikA yang
masing-masing elemennya adalah integer dan indeks-
nya dari -5 sampaidengan 200.
Type LarikA = Array[-5..200] of integer;

Jika variabel A dideklarasikan sebagai LarikA, maka


cara mengacu tiap elemennya adalah A[-5], A[-4], …,
A[200].
Contoh 4.
Type LarikB = Array[1..10,1..10] of integer;
Jika variabel A dideklarasikan sebagai LarikB, maka
cara mengacu tiap elemennya adalah A[1,1],…
A[1,10], …, A[10,1], …, A[10,10].
Narwen, M.Si / Jurusan Matematika FMIPA Unand 21
Catatan Kuliah STRUKTUR DATA

Contoh 5.
Const Nmaks = 100;
Type mahasiswa = Record
Nobp : integer;
Nama : string;
kodeMK : string;
nilai : char;
end;
var TabMhs : Array[1..Nmaks] of Mahasiswa;

Cara mengacu elemen TabMhs adalah TabMhs[2].


Nobp mengacu field Nobpdarielemenkedua dari
larik. Sedangkan Write(TabMhs[k].KodeMK);
adalah menuliskan field KodeMK darielemenke k
dari larik.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 22
Catatan Kuliah STRUKTUR DATA

Operasi yang dapat dilakukan pada array adalah opera-


si per elemenuntukbacadan tulis, assignment, perhi-
tungan dan perbandingan yang diakses melalui indeks-
nya. Banyaknya indeks menentukan dimensi dari array
tersebut.

SET (HIMPUNAN)
Set adalahkumpulan dari objek-objek. Dalam Pascal
objek tersebut harus mempunyai tipedasar yang
sama. Tipe dasar ini adalah sembarang skalar
atau tipe enumerasi. Bentuk umum set adalah :
Type <nama himpunan> = Set of <tipe>;
Narwen, M.Si / Jurusan Matematika FMIPA Unand 23
Catatan Kuliah STRUKTUR DATA

Keuntungan menggunakan Set adalah butuh tempat pe-


nyimpanan yang sedikit karena representasinya internal
dalambit. Sedangkankerugiannya adalah anggota dari
set tidak dapat dicetak dan hanya dapatdibacakeang-
gotaanya.
Operasi pada Set adalah assignment (:=), union (+),
inter-section (*), different (-), not equal (<>), equal
(=), inclution (<=), exclution (>=) dan in.
Contoh 6.
Type Alfabet = Set of Char;
Jika variabel huruf dideklarasikan sebagai Alfabet,
maka salah satu elemennya adalah huruf :=
[‘a’,’d’]. Sedang himpunan kosong ditulis dengan [ ].
Narwen, M.Si / Jurusan Matematika FMIPA Unand 24
Catatan Kuliah STRUKTUR DATA

Latihan.
Buatlah dalam bahasa pascal :
1. Definisikan sebuah tipe terstrukturuntuk menyatakan
data nasabah disebuah bank. Data nasabahterdiri atas
field Nomor Account, Nama Nasabah, Alamat Nasa-
bah, Kota Nasabah, dan Nomor TelponNasabah. Un-
tuk setiap field definisikantipe data yang cocok.
2. Dari soal nomor1 buatlah program dalambahasa pemrog-
raman berbasis bahasa Pascal, untuk memasukkan data
nasabah sebanyakN, dengan Ndiinputkandari papan
ketik, kemudian menuliskan kembali semua data nasabah
dalambentuk matrik. Petunjuk: Gunakan notasi pengu-
langan untuk menyelesaikan permasalahan tersebut.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 25
Catatan Kuliah STRUKTUR DATA

TIPE DATA ABSTRAK (ADT)


Tipe Data Abstrak (Abstract Data Type) adalah
definisi dari tipedan sekumpulan primitif
(operasidasar) terha- daptipetersebut.
Tipe diterjemahkan menjaditipeterdefinisi dalam
bahasa pemrograman yang bersangkutan, misalnya
menjadi record dalam Pascal.
Primitif dalamkonteks pemrograman
prosedural, diterjemahkan menjadi fungsi
(function) dan
prosedur (procedure).
Narwen, M.Si / Jurusan Matematika FMIPA Unand 26
Catatan Kuliah STRUKTUR DATA

Primitif dikelompokkan menjadi:


1. Konstruktor / Kreator, untuk pembentuk nilai
tipe. Biasanya namanya diawalidengan Make.
2. Selektor, untuk mengakseskomponen tipe.
Biasanya namanya diawali dengan Get.
3. Prosedur Pengubah Nilai Komponen.
4. Validator komponen tipe, yang dipakai untuk me-
nguji apakahdapat membentuk tipesesuaibatasan.
5. Destruktor / Dealokator, yaitu untuk menghancur-
kan nilai objek, sekaligus memoripenyimpannya.
6. Baca/tulis, untuk interface dengan input/output
device.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 27
Catatan Kuliah STRUKTUR DATA

7. Operator Relasional terhadaptipetersebut untuk


mendefinisikanlebih besar, lebih kecil, sama dengan
dansebagainya.
8. Aritmatika terhadaptipetersebut, dalam pemrog-
raman biasanyahanyaterdefinisi untuk bilangan
numerik.
9. Konversi dari tipe tersebut ke tipedasar dan seba-
liknya.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 28
Catatan Kuliah STRUKTUR DATA

Tipe Data Abstrak biasanya diimplementasi menjadi dua


buah modul, yaitu:
1. Definisi/spesifikasi type dan primitif
- Spesifikasitype sesuaidengan bahasa yang
dipakai.
- Spesifikasi dari primitif sesuai dengan
kaidah dalamkonteks prosedural, yaitu:
a. Fungsi: nama, domain, range, dan pre
kondisi jika ada.
b. Prosedur: Keadaan Awal, Keadaan Akhir
dan proses yang dilakukan.
2. Bo dy / r ea l i s as i d ar i pr i m i t i f , ber up ak od e pr ogr am
dalam bahasa yang bersangkutan. Realisasi fungsidan
prosedurharus sedapat mungkin memanfaatkan Selek-
tor dan Konstruktor.
Narwen, M.Si / Jurusan Matematika FMIPA Unand 29

Anda mungkin juga menyukai