pemrograman berorientasi...

12
Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma PEMROGRAMAN BERORIENTASI OBJEK “ Package & Interface ” Oleh : Farhat, ST, MMSI, MSc { Diolah dari berbagai Sumber }

Upload: others

Post on 15-Dec-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

PEMROGRAMAN BERORIENTASI OBJEK

“ Package & Interface ”

Oleh : Farhat, ST, MMSI, MSc

{ Diolah dari berbagai Sumber }

Page 2: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

1. PENGERTIAN PACKAGE

Package adalah sarana/cara pengelompokkan dan pengorganisasian kelas-kelas dan interface yang sekelompok menjadi suatu unit tunggal dalam library.

Package juga mempengaruhi mekanisme hak akses ke kelas-kelas di dalamnya.

PENGARUH PACKAGE TERHADAP METHOD MAIN()

Kelas yang mengandung method main() memilki syarat tidak berada dalam suatu package, dan hirarki posisi foldernya di atas package yang diimport.

MEMBUAT PACKAGE

Ada tiga langkah untuk membuat package :

1. Mendeklarasikan dan memberi nama package. 2. Membuat struktur dan nama direktori yang sesuai dengan struktur dan nama

package. 3. Mengkompilasi kelas-kelas sesuai dengan packagenya masing-masing.

MENDEKLARASIKAN DAN MEMBERI NAMA PACKAGE

Deklarasi package harus diletakkan pada bagian paling awal (sebelum deklarasi import) dari source code setiap kelas yang dibungkus package tersebut. Bentuk umum deklarasi package:

package namaPackage;

Deklarasi tersebut akan memberitahukan kompilator, ke library manakah suatu kelas dikompilasi dan dirujuk. Syarat nama package :

1. Diawali huruf kecil 2. Menggambarkan kelas-kelas yang dibungkusnya 3. Harus unik (berbeda dengan nama package standard) 4. Merepresentasikan path dari package tersebut. 5. Harus sama dengan nama direktorinya.

Contoh package standard :

java.lang (berisi kelas-kelas fundamental yang sering digunakan).

java.awt dan javax.swing (berisi kelas-kelas untuk membangun aplikasi GUI)

java.io (berisi kelas-kelas untuk proses input output)

MEMBUAT STRUKTUR DIREKTORI

Pada langkah ini, buatlah direktori menggunakan file manager (di windows menggunakan explorer) sesuai struktur package dari langkah sebelumnya. Kemudian tempatkan kelas-kelas tersebut ke direktori yang bersesuaian (mirip seperti menyimpan file-file ke dalam folder). Package dapat bersarang di package lain, sehingga dapat dibuat hirarki package.

Bentuk umum pernyataan package multilevel :

package namaPackage1[.namaPackage2[.namaPackage3]];

Page 3: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

Contoh hirarki package di JDK :

package java.awt.image;

COMPILE DAN RUN KELAS DARI SUATU PACKAGE

Selanjutnya masing-masing kelas tersebut dalam package tersebut dikompilasi menjadi byte code (*.class). Artinya package tersebut siap digunakan.

MENGGUNAKAN PACKAGE

Ada dua cara menggunakan suatu package yaitu :

1. Kelas yang menggunakan berada dalam direktori (package) yang sama dengan kelas-kelas yang digunakan. Maka tidak diperlukan import.

2. Kelas yang menggunakan berada dalam direktori (package) yang berbeda dengan kelas-kelas yang digunakan. Maka pada awal source code di kelas pengguna harus mencantumkan :

import namaPackage.NamaKelas; atau

import namaPackage.*;

Contoh :

import java.text.DecimalFormat;

import javax.swing.*;

SETTING CLASSPATH

Path hirarki package, didaftarkan sebagai salah satu nilai variabel lingkungan yang bernama Classpath.

Classpath diset dengan aturan : berawal dari drive (C:\ atau D:\) sampai dengan satu tingkat sebelum kita mendeklarasikan package.

Tabel Beberapa Paket Java

Paket Keterangan

javax.swing Paket ini berisi kelas-kelas dan interface untuk komponen GUI swing Java yang menyediakan dukungan untuk tampilan grafis yang portabel.

javax.swing.event Paket ini berisi kelas-kelas dan interfes yang memperbolehkan penanganan event untuk komponent grafis yang terletak di paket javax.swing.

java.lang Paket ini berisi kelas-kelas dan interfes yang diperlukan oleh banyak program Java. Paket ini diimpor oleh kompiler ke semua program Java secara otomatis.

java.applet

Paket ini berisi kelas-kelas Applet dan juga beberapa interfes yang memperbolehkan interaksi applet dan browser serta untuk memainkan klip audio. Kelas javax.swing.JApplet digunakan untuk menetapkan applet yang menggunakan komponen GUI swing.

java.text Paket ini berisi kelas-kelas dan interfes yang memperbolehkan program Java untuk memanipulasi angka, tanggal, karakter dan juga string.

java.net Paket ini berisi kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan.

Page 4: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

KEUNTUNGAN MENGGUNAKAN PAKET.

Ada kemungkinan, programer Java membuat kelas sendiri yang mempunyai nama sama dengan kelas yang sudah ada di Java API tanpa sengaja. Konflik penamaan kelas bisa saja terjadi. Untuk mengatasi masalah terkait penamaan kelas, Anda dapat meletakkan kelas yang mempunyai nama sama ke dalam paket berbeda dan mengakses kelas tersebut beserta dengan nama paketnya. Kelas-kelas Java yang mempunyai kemiripan fungsi seharusnya diletakkan di paket yang sama sehingga akan mempermudah penempatan dan pendistribusian. Paket juga berfungsi memberi proteksi pada kelas dan interface yang ada di dalamnya. Sebagai contoh, kelas yang dideklarasikan dengan kata kunci private, hanya dapat diakses oleh kelas-kelas lain yang berada dalam paket yang sama.

DIREKTORI PAKET

Sebuah paket sebenarnya adalah direktori yang digunakan untuk menyimpan file-file bytecode (file berekstensi .class). Paket Java disusun secara berjenjang (hierarchical). Anda bisa mempunyai paket yang berada di dalam paket lain. Sebagai contoh, javax.swing.JOptionPane menunjukkan bahwa kelas JOptionPane berada di paket swing dan paket swing sendiri berada di paket javax. Level jenjang paket digunakan untuk memastikan keunikan dari nama paket.

Semua kelas yang dibuat akan tersimpan di direktori yang sekarang aktif (current directory atau default package) ketika program sumber Java dikompilasi. Karena program sumber Java terletak di direktori, misalnya c:\hindro\javasc dan proses kompilasi juga dilakukan di direktori tersebut, maka file bytecode hasil kompilasi juga akan tersimpan di direktori yang sama.

MELETAKKAN KELAS KE DALAM PAKET.

Setiap kelas Java akan diletakkan (dikelompokkan) ke dalam paket. Kelas-kelas tersebut diletakkan ke dalam paket saat program sumber Java (Java source program) dikompilasi. Untuk meletakkan sebuah kelas hasil kompilasi ke dalam paket yang dituju, Anda dapat menyertakan pernyataan package diikuti nama paket di program sumber Java. Pernyataan package yang diikuti nama peket adalah pernyataan Java yang paling pertama. Berikut ini adalah sintak pernyataan package untuk meletakkan hasil kompilasi ke dalam paket:

package nama-paket;

Untuk mendemonstrasikan penggunaan pernyataan package di atas, terlebih dahulu Anda dapat membuat direktori baru. Misalnya c:\filejava\javaapp\kelas\bangun\datar adalah direktori yang digunakan untuk menyimpan file bytecode Java (berekstensi .class). Dari direktori tempat menyimpan kelas, Anda dapat menentukan c:\filejava\javaapp\kelas sebagai class path dan bangun\datar sebagai nama paket (package name). Agar Java mengetahui letak kelas yang sudah dibuat di dalam sistem file (file system), Anda perlu memodifikasi nilai variabel CLASSPATH di kotak dialok Edit System Variable.

Modifikasi nilai variabel CLASSPATH dilakukan dengan menambahkan ;c:\filejava\javaapp\kelas ke nilai yang sudah ada di variabel CLASSPATH. Untuk menambahkan beberapa path lain ke dalam nilai variabel CLASSPATH, Anda harus memberikan pemisah berupa titik koma. Umumnya, variabel CLASSPATH sudah terisi

Page 5: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

dengan dot (.) yang mengacu ke direktori yang sedang aktif (current directory) atau lokasi dari pustaka kelas Java. Berikut ini adalah kotak dialok Edit System Variable dari variabel CLASSPATH:

Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus keliling segitiga sama sisi ABC adalah sisi AB + sisi BC + sisi CA dan rumus luasnya adalah ½ x alas x tinggi. Kelas bangun datar segitiga sama sisi ini dinamakan Segi3ABC dan mempunyai dua metoda untuk mencari keliling dan luas. Kelas Segi3ABC akan diletakkan ke dalam paket bangun\datar. Berikut ini adalah kode programnya:

// Meletakkan kelas ke paket

package bangun.datar;

// Mendefinisikan kelas Segi3ABC

public class Segi3ABC {

// Metoda hitungKeliling

// Untuk mencari keliling segi tiga

public static double hitungKeliling(double sisiAB, double sisiBC, double

sisiCA) {

double keliling;

keliling = sisiAB + sisiBC + sisiCA;

return keliling;

}

// Metoda hitungLuas

// Untuk mencari luas segi tiga

public static double hitungLuas(double sisiAB) {

// Deklarasi variabel

double luas;

// Mencari tinggi segi tiga

double tinggi = Math.sqrt(Math.pow(sisiAB, 2) - Math.pow((0.5 * sisiAB),

2));

// Mencari luas segi tiga

luas = sisiAB * tinggi;

return luas;

}

}

Kelas Segi3ABC tidak memiliki metoda main dikarenakan kelas ini akan digunakan di program lain yang mempunyai metoda main. Dari kode program di atas, baris nomor 2 adalah pernyataan package yang diikuti oleh nama paket bangun.datar. Pernyataan package

Page 6: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

di program sumber Java (Segi3ABC.java) digunakan untuk meletakkan file bytecode hasil kompilasi (Segi3ABC.class) ke dalam paket yang sudah ditentukan di pernyataan package.

Baris nomor 24 adalah pernyataan untuk mencari tinggi segitiga sama sisi. Anda dapat menggunakan rumus phytagoras untuk mengetahui tinggi dari segitiga sama sisi. Rumus phytagoras meliputi pencarian akar (√x) dan pemangkatan (x2) dari variabel x. Untuk mencari nilai akar dan pemangkatan, dapat menggunakan metoda statik sqrt dan pow dari kelas Math yang ada di paket java.lang. Math.sqrt(x) sama artinya dengan √x dan Math.pow(x, y) sama artinya dengan xy. Selain metoda sqrt dan pow, kelas Math juga berisi metoda lain untuk melakukan fungsi matematika dasar serta metoda random (Math.random) yang dapat menghasilkan nilai random double lebih besar atau sama dengan 0.0 dan lebih kecil dari 1.0 (0 <= Math.random() < 1.0).

Ada dua cara untuk mengkompilasi program sumber Java agar file berekstensi .class hasil dari kompilasi dapat diletakkan di paket yang sudah ditentukan sebagaimana di dalam pernyataan package. Cara pertama, Anda harus menyimpan file program sumber (file berekstensi .java) di direktori c:\filejava\javaapp\kelas\bangun\datar. Sebelum proses kompilasi dilakukan, Anda terlebih dahulu harus berada di direktori dimana paket bangun\datar berada. Cara kedua, Anda dapat mengkompilasi program sumber Java yang terletak di sebuah direktori dan meletakkan hasil kompilasi di direktori (paket) tertentu melalui c prompt (c:\>).

Untuk menggunakan cara yang pertama, file program sumber Java (Segi3ABC.java) harus disimpan di folder atau direktori c:\filejava\javaapp\kelas\bangun\datar. Karena di program sumber tersebut sudah terdapat pernyataan package bangun.datar, sebelum dikompilasi, Anda cukup berada di direktori c:\filejava\javaapp\kelas. Kompilasi dapat dilakukan dengan menuliskan perintah seperti di bawah ini di baris perintah pada jendela Command Prompt.

javac bangun\datar\Segi3ABC.java

Setelah proses kompilasi selesai, Anda harus pastikan bahwa file bytecode yang berekstensi .class (Segi3ABC.class) sudah berada di direktori c:\filejava\javaapp\kelas\bangun\datar. Kompiler Java dapat mengetahui tempat untuk meletakkan file hasil kompilasi dengan mengkombinasikan classpath c:\filejava\javaapp\kelas dengan nama paket bangun.datar.

Umumnya, programer Java memilih untuk meletakkan file program sumber (berekstensi .java) dan file hasil kompilasi (berekstensi .class) di direktori berbeda. Hal ini dimaksudkan untuk mempermudah proses pendistribusian paket yang hanya berisi kelas-kelas hasil kompilasi. Anda juga dapat mengelola file dengan cara demikian. Misalnya, Anda membuat direktori c:\filejava\javaapp\sumber\bangun\datar sebagai tempat menyimpan file program sumber, sedangkan tempat untuk menyimpan file hasil kompilasi, Anda dapat menggunakan

Page 7: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

direktori c:\filejava\javaapp\kelas\bangun\datar. Untuk mengkompilasi file program sumber melalui c prompt (c:\>), Anda dapat menuliskan perintah seperti di bawah ini.

c:\>javac –d filejava\javaapp\kelas

filejava\javaapp\sumber\bangun\datar\Segi3ABC.java

-d memberitahukan kepada kompiler Java untuk meletakkan file kelas hasil mengkompilasi (Segi3ABC.class) ke direktori c:\filejava\javaapp\kelas\bangun\datar. Setelah kompilasi file sumber selesai dilakukan dan tidak terdapat kesalahan, Anda dapat memastikan bahwa file hasil kompilasi sudah berada di direktori c:\filejava\javaapp\kelas\bangun\datar.

Kelas Segi3ABC yang tersimpan di direktori c:\filejava\javaapp\kelas\bangun\datar dapat dipanggil dengan menggunakan pernyataan import sebagaimana kelas-kelas Java lain. Contoh program berikut ini akan menggunakan kelas Segi3ABC yang sudah didefinisikan sebelumnya untuk menghitung keliling dan luas segitiga sama sisi. Segitiga sama sisi mempunyai panjang sisi yang sama yaitu 9 cm. Berikut ini adalah kode program, penjelasan dan hasil eksekusi program:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

// Nama file : SegitigaSamaSisi.java

// Menghitung keliling dan luas segitiga

// Mengimpor kelas

import javax.swing.JOptionPane;

import java.text.DecimalFormat;

import bangun.datar.Segi3ABC;

// Deklarasi kelas

public class SegitigaSamaSisi {

// Metoda main

public static void main(String[] args) {

// Deklarasi variable

double keliling;

double luas;

double sisi = 9;

String hasil= "";

DecimalFormat formatAngka;

// Membuat objek dari kelas DecimalFormat

formatAngka = new DecimalFormat("0.00");

hasil += "Segitiga Sama Sisi\n\nPanjang sisi : " + sisi + "\n\n";

keliling = Segi3ABC.hitungKeliling(9, 9, 9);

hasil += "Keliling Segitiga ABC : " + formatAngka.format(keliling) + "\n";

luas = Segi3ABC.hitungLuas(9);

Page 8: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

31

32

33

34

35

36

37

38

39

hasil += "Luas Segitiga ABC : " + formatAngka.format(luas) + "\n";

JOptionPane.showMessageDialog(null, hasil, "Menghitung Keliling dan Luas",

JOptionPane.INFORMATION_MESSAGE);

// Mengakhiri aplikasi berpenampilan GUI

System.exit(0);

}

}

Baris nomor 7 adalah pernyataan untuk mengimpor kelas Segi3ABC yeng terletak di paket bangun.datar. Kelas Segi3ABC merupakan kelas yang didefinisikan oleh pengguna aplikasi (user-defined class) dan bukan termasuk ke dalam Java predefined class yang terletak di pustaka kelas Java. Baris nomor 27 adalah pernyataan pemberian (assigment statement). Di dalam pernyataan ini, metoda hitungKeliling kelas Segi3ABC yang berada di paket bangun.datar dipanggil. Metoda hitungKeliling akan mengembalikan nilai keliling segitiga dengan tipe data double untuk diberikan atau disimpan ke variabel keliling.

Baris nomor 30 adalah juga pernyataan pemberian nilai. Di dalam pernyataan pemberian nilai ini, metoda hitungLuas kelas Segi3ABC yang tersimpan di paket bangun.datar dipanggil. Metoda hitungLuas akan mengembalikan nilai luas segitiga dengan tipe data double untuk disimpan di variabel luas. Baris nomor 33 adalah pernyataan untuk menampilkan hasil mencari keliling dan luas dengan menggunakan metoda hitungKeliling dan hitungLuas kelas Segi3ABC.

STATEMENT IMPORT

Syntax import digunakan untuk mengimport/memasukan method-method dari class/library yang lain, sehingga method tersebut dapat digunakan pada class yang memanggilnya. Fungsi ini harus diletakan pada baris awal program.

Contoh: import java.io.*;

Untuk mengimport semua class anda menggunakan tanda asterisk (*) pada akhir nama package. Sedangkan untuk mengimpor class tertentu anda dapat menuliskan nama class setelah nama package. Perintah diatas digunakan untuk mengimport method-method java yang berkaitan dengan fungsi input dan output.

2. PENGERTIAN INTERFACE

Interface adalah wadah dari kumpulan method yang bersifat abstrak atau tidak memiliki implementasi. Sedangkan method yang didefinisikan di dalam interface tersebut akan diimplementasikan oleh class yang mengimplementasikan interface tersebut. Interface merupakan bentuk perluasan dari kelas abstrak.

Selain method, interface juga dapat berisi sekumpulan variable, namun variable yang dideklarasikan di dalam interface harus bersifat final(nilainya tidak dapat diubah /konstan).

Sebagai contoh : Dalam kehidupan nyata dapat diketahui ada manusia yang bekerja sebagai tentara, penyanyi, pengacara, dan sebagainya, tentunya manusia-manusia tersebut selain harus memiliki method standard sebagai seorang manusia, juga harus memiliki method yang sesuai dengan pekerjaannya. Dengan demikian untuk membuat objek manusia yang

Page 9: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

bekerja sebagai penyanyi, harus dibuat kelas yang merupakan turunan kelas manusia yang meng-implementasikan interface penyanyi.

CIRI-CIRI DARI INTERFACE

Method interface tidak punya tubuh, sebuah interface hanya dapat mendefinisikan konstanta dan interface tidak langsung mewariskan hubungan dengan class istimewa lainnya, mereka didefinisikan secara independent.

Tidak bisa membuat instance atau objek baru dari sebuah interface.

Ciri umum lain adalah baik interface maupun class dapat mendefinisikan method. Bagaimanapun, sebuah interface tidak punya sebuah kode implementasi sedangkan class memiliki salah satunya.

BEBERAPA PERBEDAAN INTERFACE DAN ABSTRACT CLASS :

- Interface hanya bisa mendefinisikan Method, tidak bisa mengimplementasikan, sedangkan Abstrat Class bisa mengimplementasikan Method

- Interface tidak boleh terdiri dari field atau property, Abstract Class bias - Interface tidak boleh terdiri dari konstruktor dan destruktor, sedangkan Abstract class

bisa:

Abstract class Interface

Bisa berisi abstract dan non-abstract method. Hanya boleh berisi abstract method.

Kita harus menuliskan sendiri modifiernya. Kita tidak perlu susah2 menulis public abstract di depan nama method. Karena secara implisit, modifier untuk method di interface adalah public danabstract.

Bisa mendeklarasikan constant dan instance variable. Hanya bisa mendeklarasikan constant. Secara implisit variable yang dideklarasikan di interface bersifatpublic, static dan final.

Method boleh bersifat static. Method tidak boleh bersifat static.

Method boleh bersifat final. Method tidak boleh bersifat final.

Suatu abstact class hanya bisa meng-extend satu abstract class lainnya.

Suatu interface bisa meng-extend satu atau lebih interface lainnya.

Suatu abstract class hanya bisa meng-extend satu abstract class dan meng-implement beberapa interface.

Suatu interface hanya bisa meng-extend interface lainnya. Dan tidak bisa meng-implement class atau interface lainnya.

PERBEDAAN CLASS ABSTRACT DAN INTERFACE

Abstract Class dikatakan Abstract karena class tersebut tidak diimplementasikan secara langsung di class tersebut. Melainkan diimplementasikan di class lain yang merupakan class anak dari abstract class itu. Itulah sebabnya dinamakan abstract class. Berikut perbedaan antara class abstract dengan interface:

Page 10: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

Abstract class dapat memiliki tipe data dengan semua tipe data, sedangkan interface tipe datanya hanya berupa konstanta

Method pada abstract class dapat berupa method kongkrit dan method abstract. Sedangkan pada interface semua method harus berupa method abstract.

Interface Class jelas berbeda dengan abstract class. Karena class ini mengimplementasikan methodnya di class lain dihubungkan dengan kata "implements". Method class interface tadi diimplementasikan dengan nama method yang sama di class yang diimplementasikan.

Contoh Abstract Class :

public abstract class MahlukHidup {

protected boolean BisaTerbang = false;

protected String Nama;

abstract void bernafas ( ) ;

Dari contoh di atas dapat kita lihat bahwa pada abstract class Mahluk hidup terdapat 1 method yang tidak memiliki implementasi. Implementasi method bernafas nanti akan diimplementasikan di class anak karena biasanya class abstract dapat menjadi class induk. Contoh Interface Class :

interface Pekerjaan {

public void namaPekerjaan ( ) ;

Pada contoh interface class di atas dapat dilihat perbedaan antara abstract class dan interface class. Interface class memiliki method yang tidak memiliki im- plementasi.

PEWARISAN INTERFACE

Sebuah kelas dapat mewarisi interface dengan menggunakan kata kunci implements, dimana kelas tersebut dapat mewarisi beberapa interface. Contoh Mewarisi Interface :

public class NamaKelas

implements NamaInterface {

public void namaProsedur(){

// isi prosedur }

public TipeData namaFungsi(){

// isi fungsi }}

Pewarisan Antar Interface Interface dapat mewarisi interface lainnya menggunakan kata kunci extends. Interface dapat mewarisi lebih dari satu interface. Contoh Pewarisan Antar Interface :

public interface NamaInterface

extends InterfaceLain, InterfaceDua {

// isi interface }

Page 11: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

3. PENGERTIAN IMPLEMENT

Implements adalah sebuah Java Keyword yang termasuk dalam sebuah deklarasi kelas untuk menentukan satu atau lebih interface yang diimplementasikan oleh kelas saat ini. Kelas A mewarisi jenis dan metode abstrak dinyatakan oleh interface. Contoh statement implement:

public class Bumi implements TataSurya{

private String name;

private int rotasi;

public Bumi(String name){

this.name = name;

}

public void setName(String name){

this.name = name;

}

public String getName(){

return name;

}

@Override

public int getRotasi(){

return rotasi;

}

@Override

public void setRotasi(int rotasi){

this.rotasi = rotasi;

}

}

VARIABLE DALAM INTERFACE

Sebuah interface sebagaimana kelas abstrak. Kelas yang dideklarasikan abstrak dapat mempunyai variabel kelas, metoda konkrit, konstanta dan metoda abstrak, sedangkan interface hanya berisi konstanta dan metoda abstrak. Karena semua konstanta di interface dideklarasikan dengan modifier public final static dan metoda dengan modifier public abstract, maka modifier tersebut dapat diabaikan.

Untuk mendeklarasikan sebuah interface, digunakan kata kunci interface sebelum nama interface sebagaimana sintak pendeklarasian di bawah ini.

modifier interface nama-interface {

// Deklarasi konstanta

// Penanda metoda

}

Sebagaimana kelas abstrak, Anda juga tidak dapat membuat obyek dari interface. Namun demikian, interface juga dapat digunakan sebagai tipe variabel dimana variabel tersebut dapat mengacu ke obyek dari kelas yang mengimplementasikan interface tersebut. Nama sebuah kelas adalah kata benda (noun), namun untuk nama sebuah interface, dapat berupa kata sifat (adjective) maupun kata benda.

Metoda sebuah interface bersifat umum dan tidak berkaitan langsung dengan obyek sebuah kelas, berbeda dengan metoda misalnya hitungKeliling dan hitungLuas yang melekat dan berkaitan langsung dengan obyek dari kelas seperti BujurSangkar, PersegiPanjang, Lingkaran atau juga Segitiga.

Page 12: PEMROGRAMAN BERORIENTASI OBJEKfarhana.salim.staff.gunadarma.ac.id/Downloads/files/62029/M6+-+P… · Contoh program berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus

Farhat, ST., MMSI., MSc

Pemrograman Berorientasi Objek Universitas Gunadarma

Berikut ini adalah contoh program interface DapatDimakan, dimana interface tersebut mempunyai metoda abstrak makanDenganCara. File sumber dari interface DapatDimakan disimpan di direktori c:\filejava\javaapp\sumber\interface dan hasil kompilasi disimpan di direktori c:\filejava\javaapp\kelas\interface.

?

1

2

3

4

5

6

7

8

9

// Nama file : DapatDimakan.java

// Membuat interface DapatDimakan

// Definisi interface

public interface DapatDimakan {

// Metoda makanDenganCara

public abstract String makanDenganCara();

}

Interface DapatDimakan hanya mempunyai satu buah metoda makanDenganCara. Segala sesuatu yang dapat dimakan dapat menggunakan interface ini dan mengimplementasikan metoda abstrak makanDenganCara. Metoda makanDenganCara adalah metoda yang mengembalikan nilai dengan tipe acuan ke String. Nilai yang dikembalikan adalah string yang menggambarkan bagaimana cara memakannya.

Variabel di Java Variabel merupakan sebuah tempat untuk menyimpan data. Di Java setiap pembuatan variabel harus ditentukan tipe datanya. Cara pembuatan variabel adalah dengan menggunakan tipe data dan diikuti nama variable :

Deklarasi Variabel Pembuatan variabel harus diawali dengan tipe data dan diikuti dengan nama variabel. Nama variabel harus diawalai dengan huruf dan diikuti dengan huruf atau angka. Nama variabel tidak boleh mengandung huruf unik #, $ dan lain-lain.

Contoh : int nilaiAkhir; boolean sudahMenikah;

Inisialisasi Variabel Inisialisasi merupakan tahapan menambahkan nilai ke variabel. Untuk menambahkan nilai ke variabel, diperlukan perintah sama dengan (=).

Contoh : int nilaiAkhir = 100; boolen sudahMenikah; sudahMenikah = true;

{public static void main(String[] args)

{int nilaiAkhir=100; System.out.println(nilaiAkhir); }

Konstanta Konstanta merupakan variabel yang tidak dapat diubah lagi nilainya. Di Java pembuatan konstanta dapat menggunakan kata kunci final pada awal deklarasi variabel.

Contoh : final int nilaiAkhir = 100;

{public static void main(String[] args)

{final int nilaiAkhir=100; System.out.println(nilaiAkhir); }