• Tidak ada hasil yang ditemukan

02 Abstract Data Type - ADT

N/A
N/A
Protected

Academic year: 2018

Membagikan "02 Abstract Data Type - ADT"

Copied!
67
0
0

Teks penuh

(1)

Algoritma Struktur Data

3 sks

(2)

Materi

Materi

Pengantar Struktur Data

Abstract Data Type (ADT)

Rekursif : Fibonacci

Sorting (Selection, Insertion, Bubble, Shell, Merge, Quick)

Struktur Data Linier (Linked List, Stack, Queu)

Struktur Data Hirarki (Tree, Graph, Hash Tables)

(3)

Pengertian ADT

ADT adalah definisi t ype dan sekumpulan primit if (operasi dasar) t erhadap t ype

t ersebut .

Type dit erjemahkan menjadi t ype

t erdefinisi dalam bahasa pemrograman yang bersangkut an, misalnya menjadi

St ruct dalam bahasa C

Primit if dalam kont eks pemrograman

(4)

Pengertian ADT

• Primit if dikelompokkan menjadi :

1. Konst rukt or/ Kreat or, pembent uk nilai t ype. Biasanya namanya diawali dengan M ake.

2. Selekt or, unt uk mengakses komponen t ype. Biasanya namanya diawali dengan Get .

3. Prosedur Pengubah nilai komponen

4. Validat or komponen t ype, yang dipakai unt uk menget es apakah dapat membent uk t ype sesuai bat asan.

5. Dest rukt or/ Dealokat or, yait u unt uk menghancurkan nilai objek, sekaligus memori penyimpannya

6. Read/ w rit e, unt uk int erface dengan input / out put device

7. Operat or Relasional t erhadap t ype t ersebut unt uk mendefinisikan lebih besar, lebih kecil, sama dengan dan sebagainya.

8. Arit mat ika t erhadap t ype t ersebut , dalam pemrograman biasanya hanya t erdefinisi unt uk bilangan numerik.

(5)

Abstract Data Type (ADT)

• Definisi TYPE dari sebuah ADT dapat mengandung definisi ADT lainnya

– Cont oh :

• ADT wakt u t erdiri at as ADT jam dan ADT t anggal

• ADT garis memiliki 2 buah t it ik

ADT diimplement asikan menjadi dua modul:

– Spesifikasi TYPE dan PRIM ITIF • Spesifikasi Type sesuai bahasa

• Spesifikasi PRIM ITIF sesuai kont eks (fungsi/ prosedur)

(6)

ADT biasanya diimplementasi

menjadi dua buah modul, yaitu :

1. Definisi/ spesifikasi type dan primitif

• Spesifikasi t ype sesuai dengan bahasa yang dipakai

• Spesifikasi dari primit if sesuai dengan kaidah dalam kont eks prosedural, yait u :

a) Fungsi : nama, domain, range, dan pre kondisi jika ada

b) Prosedur : Keadaan Awal, Keadaan Akhir dan proses yang dilakukan

2. Body/ realisasi dari primit if, berupa kode program dalam bahasa yang bersangkut an. Realisasi fungsi dan prosedur harus sedapat mungkin memanfaat kan Selekt or dan

(7)

Abstract Data Type (ADT)

• Realisasi ADT dalam beberapa bahasa pemrograman

BAHASA SPESIFIKASI BODY

(8)

Abstract Data Type (ADT)

• Set iap ADT harus dibuat menjadi spesifikasi, body dan driver

– Dalam bahasa C++, modul spesifikasi dan body dapat dibuat dengan cara

• Include dari file header

• Encapsulat e dalam class

(9)

Abstract Data Type (ADT)

• St rukt ur Dat a merupakan t eknik/ st rat egi unt uk mengimplement asikan sebuat ADT (ADT lebih merupakan deskripsi logika)

• St rukt ur dat a merupakan cara membent uk,

mengkonst ruksi, mengaransemen, mengkomposisi kan/ mengorganisasikan dat a (ADT)

• ADT:

– St ack, queue, priorit y queue, dict ionary, sequence, set

• St rukt ur Dat a:

(10)

Contoh ADT

(11)
(12)

Pendahuluan Class

Class merupakan st rukt ur dat a dari objek

Sebuah class (kelas) yang menyerupai

st rukt ur dapat dibuat dengan menggant ikan kat a struct dengan class

Persamaan st rukt ur dengan kelas, pada cara mendeklarasikan, mendefinisikan dan cara akses

Sedangkan perbedaan st rukt ur dengan kelas adalah kelas mempunyai access specifier

(13)

Struktur vs Kelas/ Class

Persamaan :

• Cara deklarasi struct cthStruct {

int b; ... };

• Cara definisi variabel/ objek

cthStruct x;

• Cara akses x.a = 22;

• Cara deklarasi class cthClass {

int b; ... };

• Cara definisi variabel/ objek

cthClass x;

(14)
(15)

Kelas/ Class

Kelas digunakan unt uk mendefinisikan obyek

Cont oh : t ipe dat a digunakan unt uk mendefinisikan variabel

Obyek melingkupi anggot a dat a dan fungsi anggot a

Nama kelas biasanya dimulai dengan huruf besar

Pendefinisian Kelas:

Pendefinisian obyek:

(16)

Penentu Akses

(Access Specifier)

Digunakan unt uk menent ukan anggot a dat a at au fungsi anggot a mana yang boleh diakses dan oleh siapa

Ada 4 macam penent u akses(access specifier)/ level access modifier:

– Public

– Default

– Privat e

(17)

Penentu Akses

(Access Specifier)

Public

– Bisa diakses dari luar kelas (bersifat global)

– M aka semua class yang lain dapat melihat class t ersebut

– Dapat melakukan import , inst ansiasi, ext ends, dan memanggil met hod yang ada dalam class

Default

– M aka hanya class dari package yang sama at au class t urunannya yang dapat melihat class

(18)

Penentu Akses

(Access Specifier)

Private

– Hanya bisa diakses dari dalam kelas (bersifat lokal)

– Hanya dapat digunakan oleh inner class saja, sedangkan class lain t idak dapat dit andai

sebagai privat e

Protected

– Sama dengan Privat e dan bisa diakses oleh kelas-kelas t urunan

(19)

Penentu Akses Public

Dengan menggunakan penent u akses

publik, anggot a dat a dan fungsi anggot a

bisa diakses dari luar kelas

(20)

Penentu Akses Private

Digunakan unt uk memprot eksi anggot

a-anggot a t ert ent u pada kelas agar t idak bisa diakses secara langsung dari luar kelas

Biasanya yang menggunakan penent u akses privat e adalah anggot a dat a

Biasa digunakan pada kelas unt uk

memprot eksi anggot a-anggot a t ert ent u

(21)

Penentu Akses Private

Penent u akses privat e adalah nilai default sehingga kalau penent u akses t idak dit ent ukan, maka

dianggap menggunakan penent u akses privat e

(22)

Fungsi Anggota

Ada dua macam cara penulisan fungsi anggot a.

(23)

Fungsi Anggota

 Cara 2 :

prot ot ipe fungsi dideklarasikan dalam kelas, definisi fungsi

(24)

Class vs Object

Object adalah inst ansiasi dari

sebuah class

Class it u sebagai sebuah cet akan

sedangkan object it u adalah barang

dari hasil cet akan

Class juga dapat dikat akan sebagai

kat egori, sedangkan object adalah

sesuat u yang memuhi syarat -syarat

yang harus dipenuhi agar masuk

(25)

Class vs Object

Jadi sat u class dapat mempunyai

banyak object

Set iap object mempunyai sifat yang

sama persis sepert i yang didefinisikan

dalam class tersebut

Cont oh : M endefinisikan beberapa

obyek

(26)

Kelas

Contoh Soal 02:

Perintah menampilkan obyek komik dari

class buku dengan 3 att ribut / field (Judul,

Pengarang dan Jumlah Buku yang tersedia)

(27)
(28)
(29)

Kelas

Contoh Soal 03:

Perint ah menampilkan obyek komik dari class buku dengan 3 at t ribut / field (Judul, Pengarang dan Jumlah Buku yang t ersedia)

(30)
(31)
(32)

Kelas

Contoh Soal 04:

Perintah menampilkan obyek komik dari

class buku dengan 3 att ribut / field (Judul,

Pengarang dan Jumlah Buku yang tersedia)

M enggunakan fungsi anggota dengan format

(33)
(34)
(35)

Class & Obyek

Class

adalah suat u cara unt uk

membuat t ipe dat a yang baru

M engapa but uh t ipe dat a baru, agar

aplikasinya source code lebih mudah

dibaca

(36)

Class & Obyek

Variabel adalah t empat unt uk

dat a

Class dengan obyek

duluan

class nya

(37)

Class & Obyek

Stat ic adalah variabel miliknya si class

atau stat ic variebel miliknya class

nilai akan berubah kesemua instance

Didalam class kita dapat :

1. Const ruct or

selalu inst ance

2. M et hod

bisa st at ic at au inst ance 3. Variabel/ propert y

bisa st at ic at au

inst ance

4. Buat class didalam class biasa disebut

(38)

Class & Obyek

Const ruct or

selalu inst ance

Const ruct or dan met hod ada

overloading

argumen at au

(39)

Class & Obyek

M acam-macam met hod

met hod();

met hod(Int x, Int y);

met hod(St ring x, St ring y)

(40)

Class & Object

Didalam class bisa mennggunakan

banyak konst rukt or

Cont oh :

M ahasiswa m1 = new M ahasiswa();

(41)

Obyek

Terdiri dari 2, yait u :

1. Obyek Lokal

(42)

1. Obyek Lokal

M erupakan suat u obyek yang

didefinisikan di luar fungsi

Konstruktor

dijalankan saat obyek

bersangkutan di ciptakan

Destruktor

dijalankan dengan

sendirinya saat fungsi yang

(43)

Obyek Lokal

Contoh Soal 05:

(44)
(45)
(46)

2. Obyek Global

M erupakan suat u obyek yang didefinisikan secara global

Konstruktor dijalankan saat awal eksekusi

program, yait u sebelum fungsi main() di proses

Destruktor dijalankan saat fungsi main()

berakhir

Apabila ada exit() dest rukt or obyek global akan dijalankan t erlebih dahulu, t et api

(47)

Obyek Global

Contoh Soal 06:

(48)
(49)
(50)

M enyimpan kelas dan fungsi anggota

pada file tersendiri

Apabila class digunakan unt uk sejumlah program, maka class harus

dideklarasikan pada file t ersendiri

• Didefinisikan fungsi-fungsi anggot anya

File header bisa kit a buat sendiri

(51)

M enyimpan kelas dan fungsi anggota

pada file tersendiri

• Definisi fungsi anggot a juga dimasukkan kedalam file .H ini

• File .H ini kemudian disimpan di folder BC31\ Include at au disimpan pada t empat lain

• Penulisan file header:

- #include “ mat kul.h”  jika file disimpan di folder Include

(52)

Class dan Obyek

Contoh Soal 07:

Buat header unt uk deklarasi kelas majalah Buat file unt uk mendefinisikan fungsi-fungsi anggot a dari class majalah

M enampilkan majalah dengan

(53)
(54)
(55)
(56)
(57)
(58)

Obyek Sebagai Parameter

Ada 3 kemungkinan melewat kan obyek sebagai paramet er:

1. M elewat kan obyek berdasarkan nilai (passing paramet er by value)

2. M elewat kan obyek sebagai referensi (passing paramet er by reference)

(59)

1. M elewatkan Obyek Berdasarkan Nilai

Definisi fungsi

void lihat _mat kul(M at kul mat akuliah) {

mat akuliah.lihat _dat a(); }

Pemanggilan

M at kul jur_it ;

(60)

2. M elewatkan Obyek Sebagai Referensi

Definisi fungsi

void lihat _mat kul(M at kul & mat akuliah) {

mat akuliah.lihat _dat a(); }

Pemanggilan

M at kul jur_t i;

(61)

3. M elewatkan Obyek Sebagai Pointer

Definisi fungsi (cara 1)

void lihat_matkul(M atkul * matakuliah) {

(* matakuliah).lihat_data(); }

Definisi fungsi (cara 2)

void lihat_matkul(M atkul * matakuliah) {

matakuliah->lihat_data(); }

Pemanggilan

M atkul jur_ts;

(62)

Array Obyek

• Suat u array juga bisa mempunyai elemen berupa obyek

Sintaks:

NamaKelas NamaObyek[jumlah_dat a];

Contoh:

M at kul dat a_mat akuliah[10];

(63)

Nilai Balik Berupa Obyek

Sebuah fungsi dapat menggunakan obyek sebagai t ipe nilai balik

Sintaks:

TipeNilaiBalik NamaFungsi(TipeData NamaVariabel)

Contoh:

(64)

Pointer ke Fungsi Anggota

• Fungsi anggot a dapat diakses melalui point er

• Sint aks:

TipeNilaiBalik (NamaKelas::* NamaPoint er) (Paramet er, …);

• TipeNilaiBalik dan Paramet er dari point er t ergant ung pada t ipe nilai balik dan paramet er dari fungsi yang akan diakses

Contoh:

Class Cont oh

{

public:

void FCont oh1()

{cout << “ t es” ;} int FCont oh2(int x, int y)

(65)

Pointer ke Fungsi Anggota

• Point er ke fungsi dengan nilai balik void dan t idak mempunyai paramet er:

- Deklarasi:

void (Cont oh::* pt r_cont oh1) ();

- M engakses fungsi FCont oh1 dengan point er: pt r_cont oh1 = & Cont oh::FCont oh1;

- M enjalankan fungsi yang dit unjuk oleh point er: (x.* pt r_cont oh1)();

(66)

Pointer ke Fungsi Anggota

• Point er ke fungsi dengan nilai balik int dan dua paramet er bert ipe int :

- Deklarasi:

int (Cont oh::* pt r_cont oh2) (int , int );

- M engakses fungsi FCont oh2 dengan point er: pt r_cont oh2 = & Cont oh::FCont oh2;

- M enjalankan fungsi yang dit unjuk oleh point er: (x.* pt r_cont oh2)(2,3);

(67)

Referensi

Dokumen terkait

can help me in teaching process because I can know how far the students can join and understand the lesson that already the teacher gave to them). The Use

Dalam penggalan cerita diatas terlihat bahwa Prabu Brawijaya sedang bertitah kepada kedua abdinya. Beliau merasa telah saatnya mundur dan tidak menjabat sebagai

proses belajar mengajar siswa menyerap dan menerima informasi yang diberikan oleh guru, mengerjakan tugas-tugas dengan hanya sesekali berdiskusi, dalam mempelajari materi

Pada Gambar 7 merupakan layout yang berfungsi untuk menampung perangkat Bluetooth yang tersedia atau terkoneksi dengan perangkat android , juga terdapat tombol refresh

Surat Setoran Retribusi Daerah, yang selanjutnya disingkat SSRD, adalah bukti pembayaran atau penyetoran retribusi yang telah dilakukan dengan menggunakan formulir atau

Pergerakan imbal hasil Surat Utang Negara pada perdagangan hari Selasa, 21 Februari 2017 kembali mengalami kenaikan seiring dengan pelemahan nilai tukar rupiah

Pencemaran logam berat seperti kobalt (Co) dan besi (Fe) yang berasal dari limbah industri dapat terjadi melalui beberapa media seperti udara, tanah, tanaman, air

Dari hasil penelitian yang dilakukan dapat ditarik kesimpulan bahwa terdapat interaksi antara perlakuan pupuk kandang ayam+pupuk organik cair dengan pupuk NPK