Download - DIKTAT PBO
![Page 1: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/1.jpg)
BAB II – ADT (ABSTRACT DATA TYPE)
DIKTAT PBO
Oleh:Adam Mukharil B. S.Kom.
![Page 2: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/2.jpg)
PENGERTIAN ADT
1. Sekumpulan struktur data dan primitif (operasi dasar) yang mengolah data tersebut.
2. Kumpulan ini dibentuk menjadi satu file utuh.
3. PASCAL UNIT4. C/C++ HEADER.
![Page 3: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/3.jpg)
PENGIDENTIKAN ADT
1. PASCAL record.2. C/C++ typedef struct.
Struct ?
![Page 4: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/4.jpg)
PRIMITIF
Function atau procedure yang mengolah struktur data tersebut.
![Page 5: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/5.jpg)
TEKNIK PEMBUATAN ADT
Input dan output harus:1. Benar2. Banyak3. Spesifik4. Terstruktur
![Page 6: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/6.jpg)
ADT BANYAK
Mampu membuat primitif sebanyak mungkin sehingga pengguna ADT tidak perlu membuat primitif standar lagi.
![Page 7: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/7.jpg)
ADT SPESIFIK
Primitif yang dibuat harus mempunyai tugas sendiri-sendiri supaya tidak bertabrakan satu sama lain.
![Page 8: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/8.jpg)
ADT TERSTRUKTUR
Pengelolaan kode harus rapi dan mudah untuk dikembangkan.
![Page 9: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/9.jpg)
KESALAHAN
1. Sedikit Jumlah primitif yang dibuat terlalu sedikit.2. Tidak spesifik Primitif yang dibuat menjalankan tugas yang bukan bagiannya.3. Tidak terstruktur Primitif yang dibuat tidak terkelompok dan tersusun dengan baik.
![Page 10: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/10.jpg)
CONTOH ADT BENAR#ifndef jam_H #define jam_H
/* Struktur Data*/ typedef struct { int HH; int MM; int SS; } Jam; /* Primitif */ Jam MakeJam(int HH, MM, SS); void TulisJam(Jam J); /* Dan seterusnya */
#endif
![Page 11: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/11.jpg)
CONTOH ADT SALAH
/* salah */
int JamToDetik(Jam J) {
int detik;
detik = (J.HH * 3600) + (J.MM * 60) + J.SS;
printf(“%d”, detik);
}
![Page 12: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/12.jpg)
PENGELOMPOKAN PRIMITIF
#ifndef jam_H #define jam_H
/* Struktur Data*/ typedef struct { int HH; int MM; int SS; } Jam;
/* Primitif */ /* KONSTRUKTOR */ Jam MakeJam(int HH, MM, SS);
/* SELEKTOR */ int GetJam(Jam J); int GetMenit(Jam J); int GetDetik(Jam J);
![Page 13: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/13.jpg)
PENGELOMPOKAN PRIMITIF
/* INPUT OUTPUT */
void BacaJam(Jam * J);
void TulisJam(Jam J);
/* RELASIONAL */
int IsGreater(Jam J1, J2);
int IsSame(Jam J1,J2);
/* KONVERSI */
int JamToDetik(Jam J);
Jam DetikToJam(int Detik);
/* ARITMATIKA */
int JumlahJamDetik(Jam J1,J2);
int KurangJamDetik(Jam J1,J2);
#endif
![Page 14: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/14.jpg)
EPISODE AKAN DATANG
CLASS (1)
![Page 15: DIKTAT PBO](https://reader036.vdokumen.com/reader036/viewer/2022081418/56815ecf550346895dcd5c0e/html5/thumbnails/15.jpg)