Pemrograman Modular Modularitas dan Abstraksi Data

514 Direktorat Pembinaan SMK | 2008 Program 15.2 interface Xclass { public void whataMethod; } public class Aclass implements Xclass { public void whataMethod { ... diimplementasikan disini } } public class Bclass implements Xclass { public void whataMethod { ... diimplementasikan disini } } class Mainclass { Xclass a,b; static public void mainString [] a { a = new Aclass; b = new Bclass; a.whataMethod; b.whataMethod; } } Contoh lain adalah pada masalah pencarian data searching. Key data bisa muncul dalam berbagai tipe data: int, float, String, dsb. Fasiltas interface ini dapat memungkinkan pedefinisan algoritma umum compareTo dalam interface ComparisonKey untuk setiap tipe data. Selanjutnya kelas-kelas yang mengimplementasikan interface tersebut dapat didefinisikan sesuai denga tipe data yang dikehendaki. Dengan fasilitas-fasilitas ini kita bisa mengembangkan sistem perangkat lunak besar dengan komponen-komponennya yang bersifat umum demikian dan selanjutnya dapat di-plug-and-play implementasi dalam berbagai tipe data. Fasilitas Java lain dalam pendefinisian modularitas dan ADT adalah keyword package. Keyword ini membundle sekumpulan kelas yang satu dengan yang lainnya saling memiliki relasi khusus. Pendefinisian package ini memungkinkan kompilasi secara terpisah dan diimport sebagai library. Sebagai contoh kasus untuk pembahasan modularitas dan ADT adalah suatu kelas Priority Queue.

15.5.2. Priority Queue

Priority queue PQ adalah suatu struktur data abstraks yang berperilaku sebagai berikut. PQ adalah kumpulan item data yang masing-masing memiliki tingkat prioritas yang bisa berbeda. Apabila item data diambil dari kumpulan tersebut maka item data yang 2008 | Direktorat Pembinaan SMK 515 berprioritas paling tinggi lah yang diperoleh. Dalam pengembangannya pertama kali adalah memformulasikan konsep abstraksnya tanpa harus memikirkan tipe datanya, apalagi implementasi rincinya. Implementasinya sendiri dapat dilakukan dalam dua representasi level bawah yang berbeda: array atau linked-list yang dapat belakangan kita buat. Banyak ditemukan dalam masalah-masalah penjadwalan, misalnya untuk sistem antrian untuk pelayanan pasien dalam ruang praktek dokter, penjadwalan pembayaran tagihan, dsb. Prioritas bisa didefinisikan dalam beberapa aspek. PQ dapat digunakan juga untuk pengurutan data kengan key data sebagai harga prioritas: sejumlah data tak terurut dimasukkan ke dalam PQ lalu setelah semua masuk satu demi satu data diambil dari PQ. Pada pengurutan menaik maka data yang diambil ditaruh dari kanan ke kiri elemen-elemen array. Pada pengurutan menurun harga key bisa kebalikan dari harga prioritas, alterntifnya data yang di ambil satu demi satu di taruh dari kiri ke kanan elemen-elemen array. Terdapat sejumlah metoda operasi yang menjadi interface: bagi pemakai kelas obyek ini.  mengkonstruksikan PQ yang diinisialisasi kosong PQ = new PriorityQueue; 