Upload
tjokorda-agung-budi-w
View
164
Download
6
Embed Size (px)
DESCRIPTION
Revisi Slide 2 PI1043 Struktur Data, Program Studi Diploma3 Teknik Informatika Fakultas Informatika IT Telkom Bandung
Citation preview
13/03/2011
1
PI1043 Struktur DataProgram Studi Diploma Teknik InformatikaFakultas InformatikaIT Telkom BandungBy Tjokorda Agung Budi Wirayuda, ST, MT
Tujuan Instruksional Khusus
• Mahasiswa memahami konsep abstract data type
• Mahasiswa mengetahui dan dapat mengimplementasikan ADT dalam bahasa C
3
Perhatikan Gambar Berikut!
4
Conceptual
• Module • Information hiding• Abstract data type(ADT)
5
ADTADT adalah definisi TYPE dan sekumpulan PRIMITIF
terhadap TYPE tersebut.TYPE adalah gambaran lengkap mengenai sebuah data
yang terdiri dari beberapa atribut. (Mahasiswa Nama, NIM, Tgl Lahir).
PRIMITIF adalah operasi dasar terhadap TYPE tersebut. (Pendaftaran Mahasiswa, Pencetakan Mahasiswa)
6
ADTTYPE diterjemahkan menjadi type terdefinisi dalam bahasa yang
bersangkutan, misalnya struct dalam bahasa C atau record dalam bahasa Ada/Pascal.
PRIMITIF, dalam konteks prosedural, diterjemahkan menjadi fungsi atau prosedur berupa:
• Proc Konstruktor• Proc Destruktor• Fungsi Selektor• Fungsi/Proc Pengubah Nilai• Fungsi/Proc Validator• Fungsi/Proc Operasi Relational• Fungsi/Proc Aritmetika• Fungsi/Proc Konversi• Fungsi/Proc Baca Tulis
13/03/2011
2
7
Pustaka Pustaka biasanya berisi fitur-fitur tertentu. Pustaka
biasanya dipisah menjadi 2 bagian yaitu:1. Spesifikasi
Berisi penjelasan/kontrak penggunaan fitur-fitur pustaka.
2. ImplementasiBerisi kode implementasi lengkap fitur-fitur pustaka.
8
Pustaka Manfaat:
1. ReusabilityBeberapa program dapat menggunakan fitur-fitur di pustaka tersebut tanpa menulis ulang implementasinya. 2. SecurityPengguna pustaka hanya perlu mengetahui spesifikasi fitur tanpa perlu diberikan implementasi detail fitur tersebut.
9
Pustaka
Pustaka.h
Pustaka.c Pustaka.objkompilasi
Pustaka.h danpustaka.obj yang diberikan kepengguna pustaka
Utama.c
spesifikasi
implementasi
10
ADT JAMContoh ADT JAM
Tipe JAM terdiri dari atribut Hour, Minute, SecondTYPE Hour : integer {0..23}TYPE Minute : integer {0..59}TYPE Second : integer {0..59}
TYPE Jam : <
HH: Hour,MM: Minute;SS: Second;
>
11
ADT JAMPrimitif Jam:- Validator Function IsJValid(H,M,S: integer) boolean- KonstruktorFunction MakeJam(HH, MM, SS: integer) Jam;- SelektorFunction GetHour(J: Jam) Jam- Pengubah NilaiProcedure SetHour(Input/Output J: Jam, newHH:
integer);
12
ADT JAM
Primitif Jam (cont’d)- Operasi RelationalFunction (J1: Jam, J2: Jam) boolean- Operasi AritmetikaFunction Jplus(J1: Jam, J2: Jam) Jam- Baca/TulisProcedure PrintJam(J: Jam)
13/03/2011
3
13
ADT JAMDiagram Implementasi ADT Jam
//Jam.H//deklarasi TYPE Jam//deklarasi PRIMITIF Jam
//Jam.C//implementasi PRIMITIF Jam
//MainJam.C//Driver ADT Jam
14
Exercise
• Design an ADT-Counter
15
Struktur dasar Perancangan ADT
16
ADT dalam modul bahasa C Sebuah ADT modul dalam bahasa C
diimplementasikan menjadi dua file:
[1)] interface file: (.h) berisi deklarasi seluruhentitas modul yang dapat dilihat oleh user.
[2)] implementation file: (.c) berisi seluruhdefinisi dari entitas yang telah dideklarasikan
17
Interface & Implementation Files
18
Main Program menggunakan dua Modules A dan B
13/03/2011
4
19
Evaluasi 1. Apa yang dimaksud C module ?2. Apa yang dimaksudinterface file sebuah
module ?3. Apa yang dimaksud implementation file sebuah
module ?4. Bagaimana Anda mengetahui layanan-layanan
yang disediakan oleh modul?
Solusi ExerciseADT-Counter
InterfaceTYPE AlatCounter :< CounterValue: integer; >PROSEDURE Reset(I/O AC: AlatCounter);PROSEDURE Increase(I/O AC: AlatCounter);
ImplementationPROSEDURE Reset(I/O AC: AlatCounter)
AC.CounterValue=0;PROSEDURE Increase(I/O AC: AlatCounter)
AC.CounterValue= AC.CounterValue+1;
Solusi Dalam Bahasa C
Spesifikasi Implementasi Program Utama
Spesifikasi
Mendefinisikan prosedure dalam C yaitu dengan nama Void dan mengatur parameter menjadi I/O dengan menggunakan simbol ‘*’
Mendefiisikan sebuah tyoe bentukan dalam bahasa C dengan nama AlatCounter
Implementasi
Perhatikan bahwa mengakses Element menggunakan simbol ‘->’ karena bertipe pointer.
Main Program
Pemanggilan void resetAC dan increment dengan tipe I/O
Digunakan simbol ‘&’ untuk mengirimkan alamat memory dari variabel AC agar saling terkait
Import Pustaka yang dibuat yaitu: “adtac.h”
Mendefinisikan variabel bertipe AlatCounter dan perhatikan pada baris-8 cara akses Element menggunakan simbol ‘;.’ Karena bukan Pointer