BAB 10 Membuat Class Sendiri 10.1 Tujuan - JENI Intro1 Bab10 Penulisan Class

  

BAB 1 0

M e m bu a t Cla ss Se n dir i 1 0 .1 Tu j u a n

  Set elah kit a m em pelaj ari penggunaan class dari Java Class Library, kit a akan m em pelaj ar i bagaim ana m enuliskan sebuah class sendiri. Pada bagian ini, unt uk m em perm udah pem aham an pem buat an class, kit a akan m em buat cont oh class dim ana akan dit am bahkan beberapa dat a dan fungsi – fungsi lain.

  Kit a akan m em buat class yang m engandung inform asi dari Siswa dan operasi – operasi yang dibut uhkan pada record siswa. Beberapa hal yang perlu diperhat ikan pada synt ax yang digunakan pada bab ini dan bagian lainnya :

  • Menandakan bahwa t erj adi lebih dari sat u kej adian dim ana elem en t ersebut diim plem ent asikan

  < descript ion> - Menandakan bahw a Anda harus m em berikan nilai past i pada bagian ini [ ] - I ndikasi bagian opt ional

Pada akhir pem bahasan, diharapkan siswa dapat :

  • Mem buat kelas m ereka sendiri
  • Mendeklarasikan atribut dan m ethod pada class
  • Menggunakan referensi this untuk m engakses instance data
  • Mem buat dan m em anggil overloaded m ethod
  • Mengim port dan m em buat package
  • Menggunakan access m odifiers untuk m engendalikan akses terhadap class m em ber

  1 0 .2 M e n de fin isik a n Cla ss An da

  Sebelum m enulis class Anda, pert am a pert im bangkan dim ana Anda akan m enggunakan

  

class dan bagaim ana class t ersebut akan digunakan. Pert im bangkan pula nam a yang t epat

  dan t uliskan seluruh inform asi at au propert i y ang ingin Anda isi pada class. Jangan sam pai t erlupa unt uk m enuliskan secara urut m et hod yang akan Anda gunakan dalam class.

Dalam pendefinisian class, dit uliskan :

  <modifier> class <name> { <attributeDeclaration>* <constructorDeclaration>* <methodDeclaration>*

  } dim ana : <modifier> adalah sebuah access m odifier, yang dapat dikom binasikan dengan t ipe m odifier lain.

  Pe t u n j u k Pe n u lisa n Pr ogr a m :

Perhat ikan bahwa pada class t erat as, access m odifier yang diperbolehkan adalah public dan

package ( bila t idak t erdapat penulisan keyword access m odifier pada kelas)

  Pada bagian ini, kit a akan m em buat sebuah class yang berisi record dari siswa. Jika kit a t elah m engident ifikasikan t uj uan dari pem buat an kelas, m aka dapat dilakukan pem berian nam a yang sesuai. Nam a yang t epat pada class ini adalah St udent Record. Unt uk m endefinisikan class, kit a t uliskan : public class StudentRecord {

  //area penulisan kode selanjutnya } dim ana,

  Public - Class ini dapat diakses dari luar package Class - Keyword yang digunakan di pem buat an class Java

  • St udent Record I dent ifier yang m enj elaskan class

  Pe t u n j u k Pe n u lisa n Pr ogr a m :

  1. Pert im bangkan nam a yang t epat unt uk class. Jangan gunakan nam a acak dan singkat sepert i XYZ.

  2. Nam a class harus dim ulai dengan huruf kapit al

  3. Nam a file dari class harus sam a dengan nam a public class 1 0 .3 D e k la r a si At r ibu t

  Dalam pendeklarasian at ribut , kit a t uliskan : <modifier> <type> <name> [= <default_value>];

  Langkah selanj ut nya adalah m engurut kan at ribut yang akan diisikan pada class. Unt uk set iap inform asi, urut kan j uga t ipe dat a yang yang t epat unt uk digunakan. Cont ohnya, Anda t idak m ungkin m enginginkan unt uk m enggunakan t ipe dat a int eger unt uk nam a sisw a, at au t ipe dat a st ring pada nilai sisw a.

  Berikut ini adalah cont oh inform asi yang akan diisikan pada class St udent Record : name - String address - String age - Int math grade - double english grade - double science grade - double average grade - double Anda dapat m enam bahkan inform asi lain j ika diper lukan.

  1 0 .3 .1 I n st a n ce V a r ia ble

  Jika kit a t elah m enuliskan seluruh at ribut yang akan diisikan pada class, selanj ut nya kit a akan m enuliskannya pada kode. Jika kit a m enginginkan bahwa at ribut – at ribut t ersebut adalah unik unt uk set iap obj ect ( dalam hal ini unt uk set iap siswa) , m aka kit a harus m endeklarasikannya sebagai inst ance variable : Sebagai cont oh : public class StudentRecord {

  private String name; private String address; private int age; private double mathGrade; private double englishGrade; private double scienceGrade; private double average;

  //area penulisan kode selanjutnya } dim ana,

  

pr iva t e disini m enj elaskan bahwa variabel t ersebut hanya dapat diakses oleh class it u

  sendiri. Obj ect lain t idak dapat m enggunakan variabel t ersebut secara langsung. Kit a akan m em bahas t ent ang kem am puan akses pada pem bahasan selanj ut nya.

Pe t u n j u k Pe n u lisa n Pr ogr a m :

  1. Deklarasikan seluruh inst ance variable pada awal penulisan class

  2. Deklarasikan variable per baris

  3. Penulisan inst ance variable, t erm asuk j uga variabel lain harus dim ulai dengan huruf kecil

  4. Gunakan t ipe dat a yang t epat pada set iap variabel

  5. Deklarasikan inst ance variable sebagai privat e supaya hanya m et hod pada class it u sendiri yang dapat m engaksesnya.

  1 0 .3 .2 Cla ss V a r ia ble a t a u St a t ic V a r ia ble s

  Disam ping inst ance variable, kit a j uga dapat m endeklarasikan class variable at au variabel yang dim iliki class sepenuhnya. Nilai pada variabel ini sam a pada sem ua obj ect di class yang sam a. Anggaplah kit a m enginginkan j um lah dari sisw a yang dim ilik i dar i seluruh kelas, kit a dapat m endeklarasiakan sat u st at ic variable yang akan m enam pung nilai t ersebut . Kit a beri nam a variabel t ersebut dengan nam a st udent Count . Berikut penulisan st at ic variable : public class StudentRecord {

  //area deklarasi instance variables

  private static int studentCount;

  //area penulisan kode selanjutnya }

  Kit a gunakan keyword : ’st at ic’ unt uk m endeklarasikan bahw a variabel t ersebut adalah st at ic.

Maka keseluruhan kode yang dibuat t erlihat sebagai berikut :

  public class StudentRecord { private String name; private String address; private int age; private double mathGrade; private double englishGrade; private double scienceGrade; private double average; private static int studentCount; //area penulisan kode selanjutnya

  }

  1 0 .4 . D e k la r a si M e t h ods

  Sebelum kit a m em bahas m et hod apa yang akan dipakai pada class, m ari kit a perhat ikan penulisan m et hod secara um um . Dalam pendeklarasian m et hod, kit a t uliskan :

  <modifier> <returnType> <name>(<parameter>*) { <statement>* } dim ana, < m odifier> dapat m enggunakan beberapa m odifier yang berbeda < ret urnType> dapat berupa seluruh t ipe dat a, t erm asuk void < nam e> ident ifier at as class < param et er> : : = < t ipe_param et er > < nam a_param et er> [ ,]

  1 0 .4 .1 Acce ssor M e t h ods

  Unt uk m engim plem ent asikan enkapsulasi, kit a t idak m enginginkan sem barang obj ect dapat m engakses dat a kapan saj a. Unt uk it u, kit a deklarasikan at ribut dari class sebagai

  

privat e. Nam un, ada kalanya dim ana kit a m enginginkan obj ect lain unt uk dapat m engakses

dat a privat e. Dalam hal ini kit a gunakan accessor m et hods.

  

Acce ssor M e t h ods digunakan unt uk m em baca nilai v ariabel pada class, baik berupa

inst ance m aupun st at ic. Sebuah accessor m et hod um um nya dim ulai dengan penulisan

ge t < n a m a I n st a n ce Va r ia ble > . Met hod ini j uga m em punyai sebuah ret urn value.

  Sebagai cont oh, kit a ingin m enggunakan accessor m et hod unt uk dapat m em baca nam a, alam at , nilai bahasa I nggris, Mat em at ika, dan ilm u past i dari sisw a. Mari kit a perhat ikan salah sat u cont oh im plem ent asi accessor m et hod. public class StudentRecord { private String name;

  : :

  public String getName(){ return name; }

  } dim ana, public - Menj elaskan bahwa m et hod t ersebut dapat diakses obj ect luar kelas St ring - Tipe dat a ret urn value dari m et hod t ersebut get Nam e - Nam a dari m et hod ( ) - Menj elaskan bahwa m et hod t idak m em iliki param et er apapun Pernyat aan berikut , return name; dalam program kit a m enandakan akan ada pengem balian nilai dari inst ance variable nam e pada pem anggilan m et hod. Perhat ikan bahwa ret urn t ype dari m et hod harus sam a dengan t ipe dat a t erhadap dat a pada pernyat aan ret urn. Anda akan m endapat kan pesan kesalahan sebagai berikut bila t ipe dat a yang digunakan t idak sam a :

  StudentRecord.java:14: incompatible types found : int required: java.lang.String return age;

  ^ 1 error Cont oh lain dari penggunaan accessor m et hod adalah ge t Ave r a ge , public class StudentRecord { private String name;

  : :

  public double getAverage(){ double result = 0; result = ( mathGrade+englishGrade+scienceGrade )/3; return result; }

  }

  

Met hod ge t Ave r a ge ( ) m enghit ung rat a – rat a dari 3 nilai siswa dan m enghasilkan nilai

ret urn value dengan nam a result .

  1 0 .4 .2 M u t a t or M e t h ods

  Bagaim ana j ika kit a m enghendaki obj ect lain unt uk m engubah dat a? Yang dapat kit a lakukan adalah m em buat m et hod yang dapat m em ber i at au m engubah nilai var iable dalam

  

class, baik it u berupa inst ance m aupun st at ic. Met hod sem acam ini disebut dengan m ut at or

m et hods. Sebuah m ut at or m et hod um um nya t ert ulis se t < n a m a I n st a n ce V a r ia be l> .

  Mari kit a perhat ikan salah sat u dari im plem ent asi m ut at or m et hod : public class StudentRecord { private String name;

  : :

  public void setName( String temp ){ name = temp; }

  } dim ana, public - Menj elaskan bahwa m et hod ini dapat dipanggil obj ect luar kelas void - Met hod ini t idak m enghasilkan ret urn value set Nam e - Nam a dari m et hod ( St ring t em p) - Param et er yang akan digunakan pada m et hod

  Pernyat aan berikut : name = temp; m engident ifikasi nilai dari t em p sam a dengan nam e dan m engubah dat a pada inst ance variable nam e.

  Perlu diingat bahwa m ut at or m et hods t idak m enghasilkan r et urn value. Nam un berisi beberapa argum en dari program yang akan digunakan oleh m et hod.

  1 0 .4 .3 M u lt iple Re t u r n St a t e m e n t s

  Anda dapat m em punyai banyak ret urn values pada sebuah m et hod selam a m ereka t idak pada blok program yang sam a. Anda j uga dapat m enggunakan konst ant a disam ping variabel sebagai ret urn value. Sebagai cont oh, perhat ikan m et hod berikut ini : public String getNumberInWords( int num ){

  String defaultNum = "zero"; if( num == 1 ){

  return "one"; //mengembalikan sebuah konstanta

  } else if( num == 2){

  return "two"; //mengembalikan sebuah konstanta

  } // mengembalikan sebuah variabel return defaultNum;

  }

  1 0 .4 .4 St a t ic M e t h ods Kit a m enggunakan st at ic m et hod unt uk m engakses st at ic variable st udent Count .

  public class StudentRecord { private static int studentCount;

  public static int getStudentCount(){ return studentCount; }

  } dim ana, public - Menj elaskan bahwa m et hod ini dapat diakses obj ect luar kelas st at ic - Met hod ini adalah st at ic dan pem anggilannya m enggunakan

  [ n a m a Ke la s] .[ na m a M e t h od] . Sebagai cont oh : st u de n t Re cor d.ge t St u de n t Cou nt

  I nt - Tipe ret urn dari m et hod. Mengindikasikan m et hod t ersebut harus m em punyai ret urn value berupa int eger get St udent Count - Nam a dari m et hod public - Menj elaskan bahwa m et hod ini dapat diakses obj ect luar kelas ( ) - Met hod ini t idak m em iliki param et er apapun Pada deklarasi di at as, m et hod get St udent Count ( ) akan selalu m enghasilkan ret urn value 0 j ika k it a t idak m engubah apapun pada kode program unt uk m engat ur nilainya. Kit a akan m em bahas pengubahan nilai dari st udent Count pada pem bahasan const ruct or.

Pe t u n j u k Pe n u lisa n Pr ogr a m :

  1. Nam a m et hod harus dim ulai dengan huruf kecil

  2. Nam a m et hod harus berupa kat a kerj a

  3. Gunakan dokum ent asi sebelum m endeklarasikan sebuah m et hod. Anda dapat Menggunakan JavaDoc.

  1 0 .4 .5 Con t oh Kode Pr ogr a m da r i cla ss St u de n t Re cor d

Berikut ini adalah kode unt uk class St udent Record :

  public class StudentRecord { private String name; private String address; private int age; private double mathGrade; private double englishGrade; private double scienceGrade; private double average; private static int studentCount; /**

  • Menghasilkan nama dari Siswa */ public String getName(){ return name;

  } /**

  • Mengubah nama siswa
  • / public void setName( String temp ){ name = temp;

  } // area penulisan kode lain /**

  • Menghitung rata – rata nilai Matematik, Bahasa Inggris, * * Ilmu Pasti */ public double getAverage(){ double result = 0; result = ( mathGrade+englishGrade+scienceGrade )/3; return result;

  } /**

  • Menghasilkan jumlah instance StudentRecord
  • / public static int getStudentCount(){ return studentCount;

  } }

Berikut ini cont oh kode dari class yang m engim plem ent asikan class St udent Record :

  public class StudentRecordExample { public static void main( String[] args ){

  //membuat 3 object StudentRecord StudentRecord annaRecord = new StudentRecord(); StudentRecord beahRecord = new StudentRecord(); StudentRecord crisRecord = new StudentRecord(); //Memberi nama siswa annaRecord.setName("Anna"); beahRecord.setName("Beah"); crisRecord.setName("Cris"); //Menampilkan nama siswa “Anna” System.out.println( annaRecord.getName() ); //Menampilkan jumlah siswa System.out.println("Count="+StudentRecord.getStudentCount() );

  } }

  Out put dari program adalah sebagai berikut :

  Anna Student Count = 0

  1 0 .5 . Re fe r e n si t h is

  Referensi t his digunakan unt uk m engakses inst ance variable yang dibiaskan oleh param et er. Unt uk pem aham an lebih lanj ut , m ari kit a perhat ikan cont oh pada m et hod set Age. Asum sikan kit a m em punyai kode deklarasi berikut pada m et hod set Age. public void setAge( int age ){ age = age; //SALAH!!! }

  Nam a param et er pada deklarasi ini adalah age, yang m em iliki penam aan yang sam a dengan inst ance variable age. Param et er age adalah deklarasi t erdekat dari m et hod, sehingga nilai dari param et er t ersebut akan digunakan. Maka pada pernyat aan : age = age; kit a t elah m engident ifikasi nilai dari param et er age kepada param et er it u sendiri. Hal ini sangat t idak kit a hendaki pada kode program kit a. Unt uk m enghindari kesalahan sem acam ini, kit a gunakan m et ode referensi t h is. Unt uk m enggunakan t ipe referensi ini, kit a t uliskan : this.<namaInstanceVariable>

  Sebagai cont oh, kit a dapat m enulis ulang kode hingga t am pak sebagai berikut : public void setAge( int age ){

  this.age = age;

  }

  

Met hod ini akan m ereferensikan nilai dar i param et er age kepada inst ance variable dari

obj ect St udent Record.

  

CATATAN : An da h a n y a da pa t m e n gguna k a n r e fe r e n si t ipe in i t e r ha da p in st a n ce

va r ia ble da n BUKAN st a t ic a t a u pu n cla ss v a r ia be l.

  1 0 .6 . Ove r loa din g M e t h ods

  Dalam class yang kit a buat , kadangkala kit a m enginginkan unt uk m em buat m et hod dengan nam a yang sam a nam un m em punyai fungsi yang berbeda m enurut param et er yang digunakan. Kem am puan ini dim ungkinkan dalam pem rogram an Java, dan dikenal sebagai overloading m et hod.

  

Overloading m et hod m engij inkan sebuah m et hod dengan nam a yang sam a nam un m em ilik i

  param et er yang berbeda sehingga m em punyai im plem ent asi dan ret urn value yang berbeda pula. Daripada m em berikan nam a yang berbeda pada set iap pem buat an m et hod,

  

overloading m et hod dapat digunakan pada operasi y ang sam a nam un berbeda dalam

im plem ent asinya.

  Sebagai cont oh, pada class St udent Record kit a m enginginkan sebuah m et hod yang akan m enam pilkan inform asi t ent ang sisw a. Nam un kit a j uga m enginginkan operasi penam pilan dat a t ersebut m enghasilkan out put yang berbeda m enurut param et er yang digunakan. Jika pada saat kit a m em ber ikan sebuah param et er berupa st ring, hasil yang dit am pilkan adalah nam a, alam at dan um ur dari siswa, sedang pada saat kit a m em berikan 3 nilai dengan t ipe double, kit a m enginginkan m et hod t ersebut unt uk m enam pilkan nam a dan nilai dari sisw a.

Unt uk m endapat kan hasil yang sesuai, kit a gunakan overloading m et hod di dalam deklarasi class St udent Record

  public void print( String temp ){ System.out.println("Name:" + name); System.out.println("Address:" + address); System.out.println("Age:" + age);

  } public void print(double eGrade, double mGrade, double sGrade) System.out.println("Name:" + name); System.out.println("Math Grade:" + mGrade); System.out.println("English Grade:" + eGrade); System.out.println("Science Grade:" + sGrade);

  }

Jika kit a panggil pada m et hod ut am a ( m ain) :

  public static void main( String[] args ) {

  StudentRecord annaRecord = new StudentRecord(); annaRecord.setName("Anna"); annaRecord.setAddress("Philippines"); annaRecord.setAge(15); annaRecord.setMathGrade(80); annaRecord.setEnglishGrade(95.5); annaRecord.setScienceGrade(100); //overloaded methods annaRecord.print( annaRecord.getName() ); annaRecord.print( annaRecord.getEnglishGrade(), annaRecord.getMathGrade(), annaRecord.getScienceGrade());

  } Kit a akan m endapat kan out put pada panggilan pert am a sebagai berik ut : Name:Anna Address:Philippines Age:15

  Kem udian akan dihasilkan out put sebagai berikut pada panggilan kedua : Name:Anna Math Grade:80.0 English Grade:95.5 Science Grade:100.0

  Jangan dilupakan bahwa overloaded m et hod m em iliki propert y sebagai berikut :

  1. Nam a yang sam a

  2. Param et er yang berbeda

  3. Nilai kem balian ( ret urn) bisa sam a at aupun berbeda

  1 0 .7 . D e k la r a si Con st r u ct or

  Telah t ersirat pada pem bahasan sebelum nya, Const ruct or sangat lah pent ing pada pem bent ukan sebuah obj ect . Const ruct or adalah m et hod dim ana seluruh inisialisasi obj ect dit em pat kan. Berikut ini adalah propert y dari Const ruct or :

  1. Const ruct or m em ilik i nam a yang sam a dengan class

  2. Sebuah Const ruct or m irip dengan m et hod pada um um nya, nam un hanya inform asi – inform asi berikut yang dapat dit em pat kan pada header sebuah const ruct or, scope at au ident ifikasi pengaksesan ( m isal: public) , nam a dari konst ukt or dan param et er.

  3. Const ruct or t idak m em ilik i ret urn value

  4. Const ruct or t idak dapat dipanggil secara langsung, nam un harus dipanggil dengan m enggunakan operat or n e w pada pem bent ukan sebuah class.

Unt uk m endeklarasikan const ruct or, kit a t ulis

  <modifier> <className> (<parameter>*) { <statement>*

  }

  1 0 .7 .1 D e fa u lt Con st r u ct or

  Set iap kelas m em iliki default const ruct or. Sebuah default const ruct or adalah const ruct or yang t idak m em iliki param et er apapun. Jika sebuah class t idak m em ilik i const ruct or apapun, m aka sebuah default const ruct or akan t erbuat secara im plisit : Sebagai cont oh, pada class St udent Record, bent uk default const ruct or akan t erlihat sepert i dibawah ini : public StudentRecord() {

  //area penulisan kode }

  1 0 .7 .2 Ove r loa din g Con st r u ct or

  Sepert i t elah kit a bahas sebelum nya, sebuah const ruct or j uga dapat dibent uk m enj adi

  ove r loa de d. Dapat dilihat pada 4 cont oh sebagai berikut :

  public StudentRecord(){ //area inisialisasi kode;

  } public StudentRecord(String temp){ this.name = temp;

  } public StudentRecord(String name, String address){ this.name = name; this.address = address;

  } public StudentRecord(double mGrade, double eGrade, double sGrade){ mathGrade = mGrade; englishGrade = eGrade; scienceGrade = sGrade;

  }

  1 0 .7 .3 M e n ggu n a k a n Con st r u ct or

Unt uk m enggunakan const ruct or, kit a gunakan kode – kode sebagai berikut :

  public static void main( String[] args ) {

  //membuat 3 objek StudentRecord annaRecord=new StudentRecord("Anna"); StudentRecord beahRecord=new StudentRecord("Beah","Philippines"); StudentRecord crisRecord=new StudentRecord(80,90,100); //area penulisan kode selanjtunya

  } Sebelum kit a lanj ut kan, m ari kit a perhat ikan kem bali dek larasi st at ic variable st udent Count yang t elah dibuat sebelum nya. Tuj uan deklarasi st udent Count adalah unt uk m enghit ung j um lah obj ect yang dibent uk pada class St udent Record. Jadi, apa yang akan kit a lakukan selanj ut nya adalah m enam bahkan nilai dari st udent Count set iap kali set iap pem bent ukan

  

obj ect pada class St udent Record. Lokasi yang t epat unt uk m em odifikasi dan m enam bahkan

  nilai st udent Count t erlet ak pada const ruct or- nya, karena selalu dipanggil set iap kali obj ek t erbent uk. Sebagai cont oh : public StudentRecord(){

  //letak kode inisialisasi

  studentCount++; //menambah student

  } public StudentRecord(String temp){ this.name = temp;

  studentCount++; //menambah student

  } public StudentRecord(String name, String address){ this.name = name; this.address = address;

  studentCount++; //menambah student

  } public StudentRecord(double mGrade, double eGrade, double sGrade){ mathGrade = mGrade; englishGrade = eGrade; scienceGrade = sGrade;

  studentCount++; //menambah student

  }

  1 0 .7 .4 Pe m a n ggila n Con st r u ct or D e n ga n t h is( )

  Pem anggilan const ruct or dapat dilakukan secara berangkai, dalam art i Anda dapat m em anggil const ruct or di dalam const ruct or lain. Pem anggilan dapat dilakukan dengan referensi t h is( ) . Perhat ikan cont oh kode sebagai berikut :

  1: public StudentRecord(){ 2: this("some string"); 3: 4: } 5: 6: public StudentRecord(String temp){ 7: this.name = temp; 8: } 9: 10: public static void main( String[] args ) 11: { 12:

  14: } Dari cont oh kode diat as, pada saat baris ke 13 dipanggil akan m em anggil const ruct or dasar pada baris pert am a. Pada saat baris kedua dij alankan, baris t ersebut akan m enj alankan const ruct or yang m em iliki param et er St ring pada baris ke- 6. Beberapa hal yang pat ut diperhat ikan pada penggunaan t h is( ) :

  2. Hanya dapat digunakan pada sat u definisi const ruct or. Kem udian m et ode ini dapat diikut i dengan kode – kode berikut nya yang relevan

  1 0 .8 . Pa ck a ge s

Packages dalam JAVA berart i pengelom pokan beberapa class dan int erface dalam sat u unit .

  Fit ur ini m enyediakan m ekanism e unt uk m engat ur class dan int erface dalam j um lah banyak dan m enghindari konflik pada penam aan.

  1 0 .8 .1 M e n gim por t Pa ck a ge s

  Supaya dapat m eggunakan class yang berada diluar package yang sedang dikerj akan, Anda harus m engim port package dim ana class t ersebut berada. Pada dasarnya, seluruh program JAVA m engim port package j ava.lang.* , sehingga Anda dapat m enggunakan class sepert i St ring dan I nt eger dalam program m eskipun belum m engim port package sam a sekali.

  Penulisan im port package dapat dilakukan sepert i dibawah ini : import <namaPaket>; Sebagai cont oh, bila Anda ingin m enggunakan class Color dalam package awt , Anda harus m enuliskan im port package sebagai berikut : import java.awt.Color; import java.awt.*;

  Baris pert am a m enyat akan unt uk m engim port class Color secara spesifik pada package, sedangkan baris kedua m enyat akan m engim port seluruh class yang t erkandung dalam

  package j ava.awt .

  Cara lain dalam m engim port package adalah dengan m enuliskan referensi package secara eksplisit . Hal ini dilak ukan dengan m enggunakan nam a package unt uk m endeklarasikan

  obj ect sebuah class :

  java.awt.Color color;

  1 0 .8 .2 M e m bu a t Pa ck a ge

  Unt uk m em buat package, dapat dilakukan dengan m enuliskan : package <packageName>; Anggaplah kit a ingin m em buat package dim ana class St udent Record akan dit em pat kan bersam a dengan classclass yang lain dengan nam a package schoolClasses.

  Langkah pert am a yang harus dilakukan adalah m em buat folder dengan nam a schoolClasses. Salin seluruh class yang ingin dilet akkan pada package dalam folder ini. Kem udian t am bahkan kode deklarasi package pada awal file. Sebagai cont oh :

  package schoolClasses;

  public class StudentRecord { private String name; private String address; private int age;

  }

  

Package j uga dapat dibuat secara bersarang. Dalam hal ini Java I nt erpret er m enghendaki

  st rukt ur direkt ori yang m engandung class eksekusi unt uk disesuaikan dengan st rukt ur package.

  1 0 .8 .3 Pe n ga t u r a n CLASSPATH

  Diasum sikan package schoolClasses t erdapat pada direkt ori C: \ . Langkah selanj ut nya adalah m engat ur classpat h unt uk m enunj uk direkt ori t ersebut sehingga pada saat akan dij alankan, JVM dapat m enget ahui dim ana class t ersebut t ersim pan. Sebelum m em bahas cara m engat ur classpat h, perhat ikan cont oh dibawah yang m enAndakan kej adian bila kit a t idak m engat ur classpat h.

Asum sikan kit a m engkom pilasi dan m enj alankan class St udent Record :

  C:\schoolClasses>javac StudentRecord.java C:\schoolClasses>java StudentRecord Exception in thread "main" java.lang.NoClassDefFoundError: StudentRecord (wrong name: schoolClasses/StudentRecord) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source)

  Kit a akan m endapat kan pesan kesalahan berupa N oCla ssD e fFou n dEr r or yang berart i JAVA t idak m enget ahui dim ana posisi class. Hal t ersebut disebabkan oleh karena class

  St udent Record berada pada package dengan nam a st udent Classes. Jika kit a ingin m enj alankan kelas t ersebut , kit a harus m em beri inform asi pada JAVA bahwa nam a lengkap dari class t ersebut adalah sch oolCla sse s.St ude n t Re cor d. Kit a j uga harus m enginform asikan kepada JVM dim ana posisi pencarian package, yang dalam hal ini berada pada direkt ori C: \ . Unt uk m elakukan langkah – langkah t ersebut , kit a harus m engat ur classpat h.

  Pengat uran classpat h pada Windows dilakukan pada com m and prom pt : C:\schoolClasses> set classpath=C:\ dim ana C: \ adalah direkt ori dim ana kit a m enem pat kan package. Set elah m engat ur classpat h, kit a dapat m enj alankan program di m ana saj a dengan m enget ikkan :

  C:\schoolClasses> java schoolClasses.StudentRecord Pada UNI X, asum sikan bahw a kit a m em ilik i class - class yang t erdapat dalam direkt ori / usr/ local/ m yClasses, ket ikkan : export classpath=/usr/local/myClasses

  Perhat ikan bahwa Anda dapat m engat ur classpat h dim ana saj a. Anda j uga dapat m engat ur lebih dari sat u classpat h, kit a hanya perlu m em isahkannya dengan m enggunakan ; ( Window s) , dan : ( UNI X) . Sebagai cont oh : set classpath=C:\myClasses;D:\;E:\MyPrograms\Java dan unt uk sist em UNI X : export classpath=/usr/local/java:/usr/myClasses

  1 0 .9 . Acce ss M odifie r s

  Pada saat m em buat , m engat ur propert ies dan class m et hods, kit a ingin unt uk m engim plem ent asikan beberapa m acam larangan unt uk m engakses dat a. Sebagai cont oh, j ika Anda ingin beberapa at ribut hanya dapat diubah hanya dengan m et hod t ert ent u, t ent u Anda ingin m enyem bunyikannya dari obj ect lain pada class. Di JAVA, im plem ent asi t ersebut disebut dengan a cce ss m odifie r s.

  Terdapat 4 m acam access m odifiers di JAVA, yait u : public, privat e, prot ect ed dan default . 3 t ipe akses pert am a t ert ulis secara ekplisit pada kode unt uk m engindikasikan t ipe akses, sedangkan yang keem pat yang m erupakan t ipe default , t idak diperlukan penulisan keyword at as t ipe.

  1 0 .9 .1 Ak se s D e fa u lt ( Pa ck a ge Acce ssibilit y)

  Tipe ini m em persyarat kan bahwa hanya class dalam package yang sam a yang m em iliki hak akses t erhadap variabel dan m et hods dalam class. Tidak t erdapat keyword pada t ipe ini.

Sebagai cont oh :

  public class StudentRecord {

  //akses dasar terhadap variabel int name; //akses dasar terhadap metode String getName(){ return name; }

  } Pada cont oh diat as, variabel nam a dan m et hod get Nam e( ) dapat diakses dari obj ect lain selam a obj ect t ersebut berada pada package yang sam a dengan let ak dari file St udent Record.

  1 0 .9 .2 Ak se s Pu blic Tipe ini m engij inkan seluruh class m em ber unt uk diakses baik dari dalam dan luar class.

  

Obj ect apapun yang m em iliki int eraksi pada class m em ilik i akses penuh t erhadap m em ber

  dari t ipe ini. Sebagai cont oh : public class StudentRecord {

  //akses dasar terhadap variabel public int name; //akses dasar terhadap metode public String getName(){ return name;

  } } Dalam cont oh ini, variabel nam e dan m et hod get Nam e( ) dapat diakses dari obj ect lain.

  1 0 .9 .3 Ak se s Pr ot e ct e d

Tipe ini hanya m engij inkan class m em ber unt uk diakses oleh m et hod dalam class t ersebut dan elem en – elem en subclass. Sebagai cont oh :

  public class StudentRecord {

  //akses pada variabel protected int name; //akses pada metode protected String getName(){ return name;

  }

  }

  Pada cont oh diat as, variabel nam e dan m et hod get Nam e( ) hanya dapat diakses oleh

  

m et hod int ernal class dan subclass dari class St udent Record. Definisi subclass akan dibahas

pada bab selanj ut nya.

  1 0 .9 .4 Ak se s Pr iva t e

Tipe ini m engij inkan pengaksesan class hanya dapat diakses oleh class dim ana t ipe ini dibuat . Sebagai cont oh :

  public class StudentRecord {

  //akses dasar terhadap variabel private int name; //akses dasar terhadap metode private String getName(){ return name;

  } }

  Pada cont oh diat as, variabel nam e dan m et hod get Nam e( ) hanya dapat diakses oleh m et hod int ernal class t ersebut .

  Pe t u n j u k Pe n u lisa n Pr ogr a m :

I nst ance variable dari class secara default akan bert ipe privat e sehingga class t ersebut

hanya akan m enyediakan accessor dan m ut at or m et hods t erhadap variabel ini.

  1 0 .1 0 . La t ih a n 1 0 .1 0 .1 En t r y Bu k u Ala m a t Tugas Anda adalah m em buat sebuah class yang m em uat dat a- dat a pada buku alam at .

  Tabel berik ut m endefinisikan inform asi yang dim iliki oleh buku alam at .

At t r ibu t D e sk r ipsi

  Nam a Nam a Lengkap perseorangan Alam at Alam at Lengkap Nom or Telepon Nom or t elepon personal Alam at E- Mail Alam at E- Mail personal

  

Tabel 1: At ribut dan Deskr ipsi At ribut

  Buat im plem ent asi dari m et hod sebagai berik ut :

  1. Menyediakan accessor dan m ut at or m et hod t erhadap seluruh at ribut

  2. Const ruct or

  1 0 .1 0 .2 Bu k u Ala m a t

  Buat sebuah class buku alam at yang dapat m enam pung 100 dat a. Gunakan class yang t elah dibuat pada nom or pert am a. Anda harus m engim plem ent asikan m et hod berikut pada buku alam at :

  1. Mem asukkan dat a

  2. Menghapus dat a

  3. Menam pilkan seluruh dat a

  4. Updat e dat a

Dokumen yang terkait

ALAT PENDETEKSI KECEPATAN KENDARAAN BERMOTOR MENGGUNAKAN MIKROKONTOLLER DAN WEBCAM BERBASIS PERSONAL COMPUTER Ira Setianingrum Jurusan Sistem Komputer, Informatics Business Institute Darmajaya Jl. Z.A Pagar Alam No 93, Bandar Lampung - Indonesia 35142 Tel

0 0 6

PROTEKSI MEMORI DAN CPU TERHADAP KESALAHAN PROGRAM PADA SISTEM OPERASI Septilia Arfida Dosen pada Jurusan Teknik Informatika, Informatics Business Institute Darmajaya Jl. Z.A Pagar Alam No 93, Bandar Lampung - Indonesia 35142 Telp. (0721) 787214 Fax. (072

0 0 10

PERANCANGAN SISTEM INFORMASI AKADEMIK BERBASIS WEB PADA PROGRAM DIPLOMA III MANAJEMEN INFORMATIKA UM METRO LAMPUNG 1Sudarmaji 1Program Diploma III Manajemen Informatika UM Metro Jl. Ki Hajar Dewantara No. 116 Iringmulyo, Kota Metro - Indonesia 34111 Telp.

0 0 10

PENERAPAN APLIKASI CRM UNTUK CAREER CENTRE PADA PERGURUAN TINGGI IBI DARMAJAYA 1Sri Karnila 1Jurusan Sistem Informasi – Fakultas Ilmu Komputer Informatics Business Institute Darmajaya Jl. Z.A Pagar Alam No 93, Bandar Lampung - Indonesia 35142 Telp. (0721)

0 0 8

RANCANG BANGUN SISTEM INFORMASI PENJADWALAN MATA PELAJARAN DAN PENGOLAHAN DATA NILAI SISWA PADA SEKOLAH DASAR (SD) NEGERI 02 KOTA BARU 1Indera 1 Jurusan Sistem Informasi - Fakultas Ilmu Komputer Informatics Business Institute Darmajaya Jl. Z.A Pagar Alam

0 0 8

IMPLEMENTASI FUZZY TERHADAP SISTEM PENDUKUNG KEPUTUSAN DALAM MENENTUKAN KELAYAKAN PEMBIAYAAN PENGAJUAN KREDIT BARANG 1Septilia Arfida 1Jurusan Teknik Informatika - Fakultas Ilmu Komputer Informatics Business Institute Darmajaya Jl. Z.A Pagar Alam No.93 Ba

0 0 10

ANALISIS DAN PERANCANGAN SISTEM INFORMASI PENJUALAN BUKU DENGAN KONSINYASI BERBASIS CLIENTSERVER 1Pujianto 1 Jurusan Manajemen Informatika AKMI Baturaja Jl. A. Yani No. 267 a Baturaja Oku, Sumatera Selatan E-mail : pujiantoakmi-baturaja.ac.id ABSTRACT - A

0 1 10

GAMBARAN FAKTOR YANG MEMPENGARUHI KELUARGATETAP MELAKUKAN BAB DI SUNGAI DI KOTA BLITAR (TheFactors Affecting Family Still Doing Defecationin the River in Blitar)

0 1 6

Kata Kunci: Discovery Learning, Hasil Belajar, Skill Representasi Matematis PENDAHULUAN - PENGARUH SKILL REPRESENTASI MATEMATIS TERHADAP HASIL BELAJAR SISWA MENGGUNAKAN MODEL DISCOVERY LEARNING

0 1 12

Kata Kunci: Gambar Bergerak, Gambar Diam, Hasil Belajar PENDAHULUAN - PERBANDINGAN HASIL BELAJAR SISWA MENGGUNAKAN MEDIA GAMBAR BERGERAK DENGAN GAMBAR DIAM

0 0 10