top of page

SEARCH BY TAGS: 

RECENT POSTS: 

FOLLOW ME:

  • Facebook Clean Grey
  • Twitter Clean Grey
  • Instagram Clean Grey

Abstract Data Type (ADT)

  • Writer: Indra Mahathanaya
    Indra Mahathanaya
  • Dec 7, 2015
  • 2 min read

ADT adalah koleksi data dan operasi yang dapat digunakan untuk memanipulasi data tersebut  Dalam C++, ADT dapat dibuat dalam sebuah Class. Class dalam C++ merupakan pengembangan dari struct dalam bahasa pemrograman C.  Class memiliki data dan fungsi. Data dan fungsi yang dideklarasi privatetidak dapat diakses secara langsung oleh client, sementara data dan fungsi yang dideklarasi publicakan bersifat publik dan dapat diakses oleh client secara langsung.

Contoh ADT

Tipe jadi (built-in): boolean, integer, real, array, dllTipe buatan (user-defined): stack, queue, tree, dllADT Built-in:BooleanNilai: true dan falseOperasi: and, or, not, xor, dllIntegerNilai: Semua bilanganOperasi: tambah, kurang, kali, bagi, dll

ADT buatan (user-defined) :

Stack (tumpukan) Nilai : elemen dalam stack Operasi: create, destroy, push, pop  Queue (antrian) Nilai: elemen dalam Queue Operasi: create, destroy, enqueue, dequeue, dll

Tree (pohon) Nilai: elemen dalam pohon Operasi: insert, delete, find, traverse

Class atau Struct memiliki member. Setiap member memiliki nama dan tipe. Class atau Struct boleh memiliki member dengan tipe yang beragam. Oleh karena itu, Class atau struct dapat digunakan untuk membuat tipe data aggregate yang rumit.

struct point {

double x, y;

};  Dalam C++, nama struct (tag) adalah tipe. Oleh karena itu, pointmerupakan tipe. Pendeklarasian di atas dapat diibaratkan sebagai template dan tipe datapointitu sendiri belum dialokasikan dalam memori.

Pendeklarasian: point pt; mengalokasikan memori untuk variabel ptbertipe point  Untuk mengakses member dari struct pt, operator dot harus digunakan. Contoh: pt.x = -1;

pt.y = 0.5;

Nama member harus unik dalam skop struct. Karena saat mengakses member, nama struct harus ditulis, maka pemanggilan nama member yang sama dari struct yang berbeda tidak menjadi masalah.

struct fruit {

char name[15];

int calories;

};

struct vegetable {

char name[15];

int calories;

};

fruit a;

vegetable b; Dalam bahasa C: struct fruita;

Struct vegetableb; Pemanggilan a.calories danb.calories tidak akan menimbulkan masalah.

referensi:

http://1.bp.blogspot.com/-4V623eRoqmA/UnTnC4S_i_I/AAAAAAAAAJ0/YajouGsmcKs/s1600/What+is+Abstract++Data+Type5.png


 
 
 

Comments


© 2015 by Indra Mahathanaya.

  • b-facebook
  • Twitter Round
  • Instagram Black Round
bottom of page