Abstract Data Type (ADT)

Abstract Data Type (ADT)


Abstract Data Type (ADT) adalah sebuah konsep dalam pemrograman yang menggambarkan tipe data yang terdefinisi oleh operasi-operasi yang dapat dilakukan pada tipe data tersebut, tanpa mengungkapkan implementasi internalnya. Dalam ADT, fokus diberikan pada apa yang dapat dilakukan dengan tipe data tersebut, bukan pada bagaimana implementasinya dilakukan.

ADT dapat dianggap sebagai kontrak antara pengguna (programmer) dan implementasi yang menyediakan operasi-operasi tertentu pada suatu tipe data. Pengguna hanya perlu tahu bagaimana menggunakan operasi-operasi tersebut tanpa harus tahu bagaimana implementasinya dilakukan.

Contoh ADT yang umum adalah Stack (tumpukan). Stack adalah koleksi elemen-elemen yang menerapkan operasi "push" (menambahkan elemen ke dalam stack) dan "pop" (menghapus elemen teratas dari stack). Berikut ini adalah contoh source code sederhana untuk ADT Stack:

#include <iostream>
using namespace std;

const int MAX_SIZE = 100;

struct Stack {
    int arr[MAX_SIZE];
    int top;

    Stack() {
        top = -1;
    }
};

bool kosong(Stack& stack) {
    return (stack.top == -1);
}

bool penuh(Stack& stack) {
    return (stack.top == MAX_SIZE - 1);
}

void push(Stack& stack, int elemen) {
    if (penuh(stack)) {
        cout << "Stack penuh. Tidak dapat menambahkan elemen." << endl;
        return;
    }
    stack.arr[++stack.top] = elemen;
}

void pop(Stack& stack) {
    if (kosong(stack)) {
        cout << "Stack kosong. Tidak dapat menghapus elemen." << endl;
        return;
    }
    --stack.top;
}

int elemenTeratas(Stack& stack) {
    if (kosong(stack)) {
        cout << "Stack kosong." << endl;
        return -1;
    }
    return stack.arr[stack.top];
}

int main() {
    Stack stack;

    push(stack, 5);
    push(stack, 8);
    push(stack, 12);
    push(stack, 3);

    cout << "Elemen teratas: " << elemenTeratas(stack) << endl;

    pop(stack);

    cout << "Elemen teratas setelah pop: " << elemenTeratas(stack) << endl;

    return 0;
}

Komentar

Postingan Populer