Tipe Data Abstrak Java

  1. Pengertian Tipe Data Abstrak

Tipe data abstrak (TDA) atau lebih dikenal dalam bahasa Inggris sebagai Abstract data type (ADT) merupakan model matematika yang merujuk pada sejumlah bentuk struktur data yang memiliki kegunaan atau perilaku yang serupa; atau suatu tipe data dari suatu bahasa pemrograman yang memiliki sematik yang serupa. Tipe data abstrak umumnya didefinisikan tidak secara langsung, melainkan hanya melalui operasi matematis tertentu sehingga membutuhkan penggunaan tipe data tersebut meski dengan risiko kompleksitas yang lebih tinggi atas operasi tersebut.

  1. Konsep Abstraksi

Sebuah abstraksi adalah sebuah tampilan atau perwakilan dari sebuah keberadaan yang memiliki atribut-atribut penting. Konsep abstraksi itu penting di bidang programming dan ilmu komputer, hampir semua bahasa pemrograman mendukung penggunaan proses abstraksi dengan subprogram. Hampir semua bahasa pemrograman di designed sejak 1980 mendukung abstraksi data.

  1. Abstraksi Data

Seperti yang sudah dijabarkan di pengertian abstraksi tipe data, abstraksi tipe data di tentukan oleh user dan memenuhi  dua kondisi berikut:

– Perwakilan objek dari type tersembunyi dari unit program yang menggunakan objek ini, maka operasi yang dapat dilakukan adalah operasi yang diberikan dalam definisi type tersebut.

– Deklarasi type dan protocol operasi pada objek dari type ditampung dalam sebuah unit syntax. Program unit lainnya dapat membuat  variabel dari type yang sudah di define oleh user.

  1. Kelebihan dari Abstraksi Data

– Realiability dengan menyembunyikan perwakilan data, kode user tidak akan mengakses objek dari type secara langsung atau bergantung kepada perwakilannya, membolehkan perwakilan data untuk dapat diubah tanpa mempengaruhi kode user.

– Mengurangi range kode dan variabel yang harus programmer perhatikan

– Konflik penamaan akan lebih jarang

– Menyediakan metode untuk menata program

– Mempermudah penerapan perubahan

– Compile yang terpisah

  1. Konstruktor dan Destructor

    1.Konstruktor

Konstruktor adalah fungsi khusus anggota kelas yang otomatis dijalankan pada saat penciptaan objek (mendeklarasikan instance). Konstruktor ditandai dengan namanya, yaitu sama dengan nama kelas. Konstruktor tidak mempunyai tipe hasil (return value). Biasanya konstruktor dipakai untuk inisialisasi anggota data dan melakukan operasi lain seperti membuka file dan melakukan alokasi memori secara dinamis. Meskipun konstruktor tidak harus ada dalam kelas, tetapi jika diperlukan konstruktor dapat lebih dari satu.

Konstruktor adalah fungsi anggota yang mempunyai nama yang sama dengan nama kelas.  Kegunaannya :

  • Mengalokasikan ruang bagi sebuah objek
  • Memberikan nilai awal terhadap anggota data suatu objek
  • Membentuk tugas-tugas umum lainnya

Adapaun jenis-jenis konstruktor adalah sebagai berikut:

  1. Konstruktor default : tidak dapat menerima argumen, anggota data diberi nilai awal tertentu
  2. Konstruktor penyalinan dengan parameter : anggota data diberi nilai awal berasal dari parameter
  3. Konstruktor penyalinan objek lain : parameter berupa objek lain, anggota data diberi nilai awal dari objek lain

  1. Destruktor

Destruktor adalah pasangan konstruktor. Pada saat program membuat objek maka secara otomatis kontruktor akan dijalankan, yang biasanya dimaksudkan untuk memberi nilai awal variable private. Sejalan dengan itu, C++ menyediakan fungsi destruktor (penghancur atau pelenyap) yang secara otomatis akan dijalankan pada saat berakhirnya objek. Setiap kelas mempunyai tepat satu destuktor. jika kita tidak mendeklarasikan sebuah destruktor dalam sebuah kelas, maka destruktor akan diciptakan sendiri oeh compiler C++. Fungsi destruktor itu sendiri adalah untuk mendealokasikan memori dinamis yang diciptakan kontruktor. Nama destruktor sama dengan nama kelas ditambah awalan karakter tilde (~).

Walaupun compiler C++ akan secara otomatis mendeklarasikan sebuah destruktor, akan tetapi sangat disarankan untuk mendeklarasikan sendiri sebuah destruktor. Karena dengan mendeklarasikan sendiri destruktor maka kita mempunyai kontrol penuh terhadap apa yang dilakukan destruktor dari kelas yang kita buat.

Destruktor adalah fungsi anggota yang mempunyai nama yang sama dengan nama kelas ditambah symbol tilde (~) didepannya.

  1. Perbedaan Konstruktor dan Destruktor

Konstruktor :

– Nama kontruktor sama dengan nama kelas

– Kontruktor tidak mempunyai nilai balik

– Kontruktor harus diletakkan di bagian public

– Kontruktor dijalankan dengan sendirinya pada saat objek diciptakan, bahkan kontruktor dijalankan sebelum fungsi main() dijalankan.

Destruktor:

– Nama destruktor  sama dengan nama kelas ditambahkan tanda tilde (~) di depannya.

– Destruktor tidak mempunyai nilai balik.

– Destruktor harus diletakkan di bagian public.

– Destruktor dijalankan dengan sendirinya pada saat objek akan sirna.

  1. Abstraksi Data Pada Java

Abstraksi data pada java mirip seperti C++ selain:

– Semua type yang didefine oleh user adalah class

– Semua object diluangkan dari heap dan diakses melalui pointer(Reference Variables)

– Entity individual dalam class mempunyai akses untuk mengontrol modifier(private atau public)

– Java mempunya mekanisme second scoping, package scope.

– Semua entity di semua class dalam sebuah package yang tidak mempunyai akses control modifier dapat dilihat melalu package.

  1. Kontruksi Enkapsulasi

Program yang besar memerlukan dua hal yang penting:

  1. Suatu cara untuk merapikan(organize) selain dari hanya pembagian sederhana menjadi subprogram lebih kecil
  2. Suatu cara untuk compile per part (kompilasi unit yang jauh lebih kecil dari program utuhnya).

Untuk menjawab kebutuhan tersebut, maka dibentuklah enkapsulasi: pengelompokan subprogram-subprogram yang berkaitan secara logis satu sama lain dan juga berkaitan kepada suatu unit yang dapat di compile secara terpisah.

Fungsi lain dari enkapsulasi adalah sebagai pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.

Begitulah konsep kerja dari enkapsulasi, dia akan melindungi sebuah program dari akses ataupun intervensi dari program lain yang mempengaruhinya. Hal ini sangat menjaga keutuhan program yang telah dibuat dengan konsep dan rencana yang sudah ditentukan.

Contoh Enkapsulasi

Tipe public dan private mempunyai fungsi yang berbeda. Fungsi public yang terdapat dalam class Coba pada variable x, memungkinkan nilai dari variable x dapat diakses oleh class Belajar. Sedangkan variable y yang menggunakan fungsi private tidak dapat dipanggil didalam class Belajar.

  1. Penamaan Enkapsulasi

Pada Bahasa Pemrograman Java, metode yang digunakan untuk mengatur pengelompokan disebut ‘package’

Package, menunjuk pada pengelompokkan class dan/atau  subpackages. Strukturnya dapat disamakan dengan directorinya. Package menyediakan mekanisme untuk mengatur class dan interface dalam jumlah banyak dan menghindari konflik penamaan.

Leave a Reply

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