Konsep Bahasa Pemograman-BAB 8 – Abstract Data Types

BAB 8

Abstract Data Type

1.Konsep Abstraksi Data

Konsep abstraksi data adalah proses representasi data dan program dalam bentuk sama dengan pengertiannya, dengan menyembunyikan rincian / detil dari implementsai.Abstraksi data adalah tingkatan pengguna dalam memandang bagaimana sebenarnya data diolah dalam sebuah system database.Abstraksi data bertujuan untuk memudahkan pengguna dalam penggunaan data dan dengan kontrol akses dapat menutup rincian yang tak penting dari unit diluar lampiran yang dipakai.

2.Introduksi Tipe Data Abstraksi

Sebuah tipe data abstrak merupakan tipe data yang dapat didefinisikan oleh user (user-defined) yang memenuhi dua kondisi berikut :

  • Representasi objek dari tipe disembunyikan dari unit program yang menggunakan object ,maka mungkin hanya operasi yang tersedia pada definisi tipe

 

Keuntungan dari abstraksi data :

Reliability

Mengurangi jangkauan dari variabel dan kode yang harus diperhatikan oleh programmer

Konflik akibat penamaan berkurang

 

  • Deklarasi tipe dan protocol operasi pada tipe objects tersedia pada unit sintatik tungal.Unit program lainnya hanya memperbolehkan untuk membentuk variabel yang tipenya terdefinisikan.

Keuntungan dari abstraksi data :

-Memberikan metode dari organisasi program

Aids modifiability (semua yang terkait stuktur data selalu bersama)

-Kompilasi terpisah

 

Contoh penggunaan penggunaan abstraksi data pada bahasa pemograman C++:

class Stack {

private:

int *stackPtr, maxLen, topPtr;

public:

Stack() { // a constructor

stackPtr = new int [100];

maxLen = 99;

topPtr = -1;

};

~Stack () {delete [] stackPtr;};

void push (int number) {

if (topSub == maxLen)

cerr << ″Error in push – stack is full\n″;

else stackPtr[++topSub] = number;

};

void pop () {…};

int top () {…};

int empty () {…};

}

3.Parameterized Abstract Data Types

Penggunaan parameterized abstract data types sangat mempermudah pekerjaan.Contohnya,kita dapat mendesain sebuah tumpukan dari tipe data abstrak yang dapat menyimpan elemen tipe scalar dibandingkan daripada menulis tumpukan abstraksi secara terpisah untuk tipe scalar yang berbeda.Contoh parameterized abstract data types pada C++:

  • Sebuah tipe data abstrak parameter berarti bahwa tipe data generik
  • Ada dan C ++ memungkinkan untuk generik atau parameter tipe data abstrak
  • Generik jenis ini dianggap template.

 

template <class Type>
class Stack {
private:
Type *stackPtr;
const int maxLen;
int topPtr;
public:
Stack() {  // Constructor for 100 elements
stackPtr = new Type[100];
maxLen = 99;
topPtr = -1;
}

Stack(int size) {  // Constructor for a given number

stackPtr = new Type[size];

maxLen = size – 1;

topSub = -1;

}

}

  • Constructor

Constructor berfungsi sebagai inisialisasi sebuah data dari suatu instance. Dalam class harus dibuat.

 

  • Destructor

Destructor berfungsi sebagai penghancur sebuah data dari suatu constructor. Dalam class harus dibuat jika tidak di buat maka memori akan penuh karena data tidak pernah di hancurkan.

 

4.Konstruksi Encapsulation

Dalam bahasa pemrograman, enkapsulasi digunakan untuk merujuk kepada salah satu dari dua konsep terkait tetapi berbeda, dan kadang-kadang untuk kombinasi daripadanya:

  • Mekanisme bahasa untuk membatasi akses langsung ke beberapa komponen objek.
  • konstruksi bahasa yang memfasilitasi bundling data dengan metode (atau fungsi lainnya) yang beroperasi pada data tersebut.

Enkapsulasi dapat digunakan untuk menyembunyikan data anggota dan fungsi anggota. Berdasarkan definisi ini, enkapsulasi berarti bahwa representasi internal dari sebuah objek umumnya tersembunyi dari pandangan luar definisi objek.

  1. Enkapsulasi

Enkapsulasi adalah pengelompokan subprogram dan data yang mereka memanipulasi.Sebuah enkapsulasi menyediakan sebuah sistem abstrak dan organisasi logis untuk koleksi perhitungan terkait.Mereka sering ditempatkan di perpustakaan dan tersedia untuk digunakan kembali dalam program lain daripada yang digunakan mereka ditulis.

6.Nested Subprogram

Mengatur program dengan membuat definisi subprogram yang bersarang (nested) dalam subprogram yang lebih besar untuk digunakan.Nested subprogram didukung pada bahasa pemograman Ada,Fortran 95+,Phyton,Java Script dan Ruby.

7.Naming Encapsulation

Penamaan enkapsulasi mendefinisikan lingkup nama yang membantu dalam menghindari ini nama konflik. Setiap perpustakaan(library) dapat membuat enkapsulasi penamaan sendiri untuk mencegah Nama-nama yang dari bertentangan dengan nama-nama yang didefinisikan dalam perpustakaan lain atau di kode klien. Setiap bagian logis dari sistem perangkat lunak dapat membuat enkapsulasi penamaan dengan tujuan yang sama.

 

Oleh Kelompok 12

Referensi Bab 8 :

Leave a Reply

Your email address will not be published. Required fields are marked *