9/27/2011
Tujuan Pada akhir pelajaran, siswa mampu untuk : JAVA Education Network Indonesia
Membuat Class Sendiri Pengenalan Pemrograman 1
–Membuat class mereka sendiri –Mendeklarasikan atribut dan method untuk class mereka –Menggunakan reference this untuk mengakses data instance –Membuat dan memanggil method overloaded –Mengimport dan membuat package –Menggunakan access modifier untuk mengatur akses ke anggota class
jeni.jardiknas.org
Mendefinisikan Class Beberapa hal yang perlu dicatat untuk syntax yang didefinisikan pada bagian ini : *berarti bahwa boleh ada 0 atau lebih kejadian dari baris tersebut yang menggunakannya juga <description>menandakan bahwa Anda harus mensubtitusikan nilai sebenarnya pada bagian ini daripada mengurangi penulisannya [ ]menandakan bahwa bagian ini hanya pilihan
Contoh public class StudentRecord { //kita akan tambahkan kode di sini nantinya } dimana public – berarti bahwa class kita dapat diakses oleh class-class lain diluar package class – ini adalah kata kunci yang digunakan untuk membuat class dalam Java StudentRecord – identifier khusus yang menjelaskan class kita
Mendefinisikan Class Untuk mendefinisikan sebuah class, kita tuliskan : <modifier> class
{ * * <methodDeclaration>* }
dimana <modifier> adalah sebuah access modifier, dimana boleh dikombinasikan dengan tipe modifier lainnya.
Petunjuk Penulisan Program – Pikirkan nama yang tepat untuk class Anda. Jangan hanya memanggil class Anda XYZ atau nama-nama random apapun yang kita pikirkan. – Nama class harus diawali dengan huruf KAPITAL. – Nama file dari class Anda harus mempunyai NAMA YANG SAMA seperti nama class public Anda.
1
9/27/2011
Mendeklarasikan Atribut
Variabel Instance public class StudentRecord { private String name; private String address; private int age; private doublemathGrade; private doubleenglishGrade; private doublescienceGrade; private doubleaverage; //kita akan tambahkan kode di sini
–Untuk mendeklarasikan atribut yang pasti dari class kita, kita tuliskan, }
<modifier> [= <default_value>];
dimana private di sini berarti bahwa variabel hanya dapat diakses dalam class. Object lain tidak dapat mengakses variabel ini secara langsung. Kita akan lebih mengetahuinya nanti.
Petunjuk Penulisan Program –Semua variabel instance Anda dideklarasikan pada atas deklarasi class. –Deklarasikan satu variabel untuk setiap baris. –Variabel Instance, seperti berbagai variabel lainnya harus dimulai dengan huruf KECIL. –Gunakan tipe data yang tepat untuk setiap variabel yang Anda deklarasikan. –Deklarasikan variabel instance sebagai private sehingga hanya method class yang dapat mengaksesnya secara langsung.
Mendeklarasikan Method
Untuk mendeklarasikan method, kita tuliskan, <modifier> (<parameter>*) { <statement>* } dimana, <modifier> dapat mempunyai beberapa modifier yang berbeda dapat berupa tipe data (termasuk void) dapat berupa identifier yang valid <parameter> ::= <parameter_type> <parameter_name>[,]
Variabel class (static) public class StudentRecord { //variabel instance yang telah kita deklarasikan private static int studentCount; //kita tambahkan kode di sini
} kita gunakan kata kunci static untuk menandakan bahwa variabel adalah sebuah variabel static
Method Accessor
Method Accessor digunakan untuk membaca nilai dari variabel class kita (instance/static) biasanya ditulis seperti: get juga mengembalikan suatu nilai.
2
9/27/2011
Contoh 1
Contoh 2
public class StudentRecord { private String name; : public String getName(){ return name; }
public class StudentRecord { private String name; : public double getAverage(){ double result = 0; result=(mathGrade+englishGrade+scienceGrade)/3; return result; }
}
dimana, public – berarti bahwa method dapat dipanggil dari objectobject di luar class String – tipe return dari method. Ini berarti bahawa method harus mengembalikan nilai dari tipe String getName – nama dari method () - ini berarti bahwa method kita tidak mempunyai berbagai parameter
}
Method Mutator
Contoh public class StudentRecord {
–Method Mutator –digunakan untuk menulis atau merubah nilai dari variabel class kita (instance/static) –biasanya ditulis seperti: set
private String name; : public void setName( String temp ){ name = temp; }
}
dimana, public – berarti bahwa method dapat dipanggil dari object-object di luar class void – berarti bahwa method tidak mengembalikan nilai apapun setName - nama dari method (String temp) – parameter yang akan digunakan di dalam method kita
Multiple return statement
Contoh
public String getNumberInWords( int num ){ String defaultNum = "zero"; if( num == 1 ){ return "one"; //return a constant } else if( num == 2){ return "two"; //return a constant } //return a variable return defaultNum;
–Anda dapat mempunyai multiple return statement untuk sebuah method selama mereka tidak dalam blok yang sama. –Anda juga dapat menggunakan konstanta untuk mengembalikan nilai daripada variabel }
3
9/27/2011
Method Static
Petunjuk Penulisan Program
public class StudentRecord { private static int studentCount; public static int getStudentCount(){ return studentCount; }
–Nama method harus diawali dengan huruf KECIL.
}
dimana, public – berarti bahwa method dapat dipanggil dari object-object di luar class static – berarti bahwa method dan harus dipanggil oleh penulisan, [ClassName].[methodName]. Sebagai contoh, daam kasus ini, kita panggil method StudentRecord.getStudentCount() int – adalah tipe pengembalian dari method. Ini artinya bahwa method harus mengembalikan nilai dari tipe int getStudentCount – nama dari method () - ini artinya bahwa method kita tidak mempunyai parameter apapun
–Nama method harus berupa kata kerja. –Selalu sediakan dokumentasi sebelum deklarasi dari method. Anda dapat gunakan style javadoc untuk hal ini. Lihatlah contohnya.
Source Code untuk class StudentRecord
Source Code untuk class StudentRecord
public class StudentRecord { private private private private private private private private
String name; String address; int age; double mathGrade; double englishGrade; double scienceGrade; double average; static int studentCount;
/** * Mengembalikan nama student */ public String getName(){ return name;
} /** * merubah nama dari student */ public void setName( String temp ){ name = temp;
}
Source Code untuk class StudentRecord
Contoh Source Code Penggunaan StudentRecord Public class StudentRecordExample{ public static void main(String args[]){ //Membuat tiga object untuk record Student StudentRecord annaRecord = new StudentRecord(); StudentRecord beahRecord = new StudentRecord(); StudentRecord crisRecord = new StudentRecord();
/** * Menghitung rata-rata dari nilai bahasa inggris, * matematika, dan sains */ public double getAverage(){
//Mengatur nama dari Student annaRecord.setName(“Anna”); beahRecord.setName(“Beah”); crisRecord.setName(“Cris”);
double result = 0; result = ( mathGrade+englishGrade+scienceGrade )/3; return result;
} /** * Mengembalikan jumlah instans dari StudentRecords */ public static int getStudentCount(){
//Mencetak nama Anna System.out.println(annaRecord.getName()); //Mencetak jumlah siswa Sistem.out.println(“Count=” +StudentRecord.getStudentCount());
return studentCount;
} } }
4
9/27/2011
Keluaran Program
reference “this” –reference this digunakan untuk mengakses variabel instance yang dibayangi oleh parameter
Anna Student Count = 0
–Untuk menggunakan reference this, kita ketik, this. •CATAT : Anda hanya dapat menggunakan reference this untuk variabel instance dan BUKAN variabel static atau class
Method Overloading
Contoh
–Method overloading
−Menyediakan method dengan nama yang sama tetapi parameter berbeda dan mengembalikan nilai dengan tipe berbeda −Dapat digunakan ketika operator yang dama memiliki pemakaian berbeda
public void setAge( int age ){ this.age = age;
}
–Selalu ingat bahwa method overloaded mempunyai propertiproperti berikut: −Nama yang sama −Parameter berbeda −Tipe return dapat berbeda atau sama
Contoh 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); }
Contoh Public static void main(String args[]){ StudentRecord annaRecord = new StudentRecord(); annaRecord.setName(“Anna”); annaRecord.setAddress(“Phillipines”); annaRecord.setAge(15); annaRecord.setMathGrade(80); annaRecord.setEnglishGrade(95.5); annaRecord.setScienceGrade(100); //overloaded method annaRecord.print(annaRecord.getName()); annaRecord.print(annaRecord.getEnglishGrade(), annaRecord.getMathGrade(), annaRecord.getScienceGrade()); }
5
9/27/2011
Constructor
Output –Kita akan mempunyai keluaran untuk pemanggilan pertama yang dicetak, Name:Anna Address:Philippines Age:15 •Kita akan mempunyai keluaran untuk pemanggilan pertama yang dicetak Name:Anna Math Grade:80.0 English Grade:95.5 Science Grade:100.0
–Constructor sangat penting dalam meng-instatiate sebuah object. Constructor adalah sebuah method dimana semua inisialisasi ditempatkan. –Berikut adalah properti-properti dari constructor: −Sebuah constructor seperti method yang lain, bagaimanapun hanya informasi berikut yang dapat ditempatkan dalam kepala constructor, lingkup atau kemampuan identifier mengakses (seperti public...), nama constructor dan parameter. −Constructor tidak mempunyai nilai return. −Anda tidak dapat memanggil constructor secara langsung, hanya dapat dipanggil dengan menggunakan operator baru selama class instantiation.
Constructor
–Untuk mendeklarasikan sebuah constructor, kita tuliskan, <modifier> (<parameter>*) { <statement>* }
Constructor Default
–Constructor Default −Adalah constructor tanpa parameter apapun. −Jika class tidak menspesifikasikan constructor apapun, kemudian sebuah constructor default yang implicit dibuat.
Contoh
Constructor Overloading public StudentRecord(){ //beberapa kode inisialisasi di sini
public StudentRecord()
} public StudentRecord(String temp){ this.name = temp;
{ //beberapa kode di sini
} 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;
}
6
9/27/2011
Menggunakan Constructor
–Untuk menggunakan constructor ini, kita mempunyai kode berikut, public static void main( String[] args ){ //membuat tiga object untuk record Student StudentRecord annaRecord=new StudentRecord("Anna"); StudentRecord beahRecord=new StudentRecord("Beah",
"Philippines"); StudentRecord
crisRecord=new StudentRecord(80,90,100);
//beberapa kode di sini
}
Contoh
1. Public StudentRecord(){ 2. this(“some string”); 3. } 4. } 5. public StudentRecord(String temp){ 6. this.name = temp; 7. } 8. Public static void main(String args[]){ 9. StudentRecord annaRecord = new StudentRecord() 10.}
Mengimpor Package
–Untuk dapat menggunakan class-class di luar package yang sedang Anda kerjakan, Anda perlu mengimpor package dari classclass tersebut. – Secara default, semua program Java Anda mengimpor package java.lang.*, sehingga mengapa Anda dapat menggunakan class-class seperti String dan Integer dalam program meskipun Anda tidak mengimpor package apapun. – Syntax dari mengimpor package adalah sebagai berikut:
Pemanggil constructor “this()”
–Pemanggilan constructor dapat dirangkai, artinya, Anda dapat memanggil constructor lain dari dalam constructor lain. •Kita gunakan pemanggil this() untuk hal ini •Terdapat sedikit hal untuk diingat ketika menggunakan pemanggil constructor this(): −Ketika menggunakan pemanggil constructor this, HARUS TERDAPAT PADA PERNYATAAN PERTAMA dalam constructor. −Ini HANYA DIGUNAKAN DALAM DEFINISI CONSTRUCTOR. Pemanggil this dapat diikuti oleh pernyataan-pernyataan yang relevan.
Package
–Package −arti Javanya adalah dari pengelompokkan class-class dan interface yang berhubungan bersama-sama dalam unit tunggal (interface akan didiskusikan nanti). −Fitur terkuat ini menyediakan mekanisme yang nyaman untuk mengatur kelompon class dan interface yang besar saat menghindari konflik penamaan yang potensial terjadi.
Contoh
import java.awt.Color; import java.awt.*;
import ;
7
9/27/2011
Membuat Package
–Untuk membuat package kita sendiri, kita tuliskan: package ; –Package juga dapat dibuat bersarang. Dalam kasus ini, interpreter Java mengharapkan struktur direktori berisi class-class yang dapat dieksekusi ke hierarki package yang cocok.
Mengatur CLASSPATH
Contoh
package SchoolClasses; public class StudentRecord { private String name; private String address; private int age; :
Mengatur CLASSPATH –Diharuskankita men-compile dan menjalankan class StudentRecord yang kita tuliskan dalam bagian terakhir,
–Sekarang, diharuskan kita menempatkan package schoolClasses di bawah direktori C:\ –Kita perlu mengatur classpath untuk menunjuk pada direktori sehingga ketika kita mencoba untuk menjalankannya, JVM akan mampu untuk melihat dimana class-class kita akan disimpan. –Sebelum kita mendiskusikan bagaimana mengatur classpath, mari kita lihat pada contoh apa yang akan terjadi jika kita tidak mengatur classpath.
Mengatur CLASSPATH
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)
Mengatur CLASSPATH
–Untuk mengatur classpath dalam Windows, kita tuliskan ini pada command prompt, C:\schoolClasses> set classpath=C:\
−dimana C:\ adalah direktori dimana kita telah menempatkan package •Setelah mengatur classpath, kita sekarang menjalankan program kita dimana saja dengan mengetik,
–Untuk sistem berbasis Unix, mengharuskan kita mempunyai class-class kita dalam direktori /usr/local/myClasses, kita tuliskan, export classpath=/usr/local/myClasses
C:\schoolClasses> java schoolClasses.StudentRecord
8
9/27/2011
Mengatur CLASSPATH –Catat bahwa Anda dapat mengatur classpath dimana saja. Anda dapat juga mengatur lebih dari satu classpath, kita hanya memisahkannya dengan ;(untuk Windows) dan :(untuk sistem berbasis Unix). Sebagai contoh, set classpath=C:\myClasses;D:\;E:\MyPrograms\Java
•dan untuk sistem berbasis Unix, export classpath=/usr/local/java:/usr/myClasses
Access Modifier –Terdapat empat tipe anggota access modifier yang berbeda dalam Java: −public −private −protected −default –Ketiga access modifier pertama yang secara explicit ditulis dalam kode menandakan tipe akses, yang keempat dimana adalah default, tidak ada kata kunci yang digunakan
Hak akses Default
•Akses default −Menentukan hanya class-class dalam package yang sama yang dapat mempunyai akses ke variabel class dan method −Tidak ada kata kunci yang ada untuk modifier default; ini digunakan dalam ketidakadaan sebuah access modifier
Contoh
public class StudentRecord { //akses default ke variabel intance int name; //akses default ke method String getName(){ return name; }
}
Hak akses public
Contoh
public class StudentRecord {
•Akses public −Menentukan bahwa anggota class mampu diakses ke yang lain, baik di dalam atau di luar class −Object apapun yang berinteraksi dengan class dapat mempunyai akses ke anggota public dari class −Kata kunci : public
//akses default ke variabel instance public int name; //akses default ke method public String getName(){ return name; }
}
9
9/27/2011
Hak akses Protected
Contoh
public class StudentRecord { //akses default ke variabel instance protected int name;
•Akses protected −Menentukan bahwa anggota class dapat diakses hanya ke method dalam class dan subclass dari class −Kata kunci : protected
//akses default ke method protected String getName(){ return name; }
}
Hak akses Private
Contoh
public class StudentRecord {
•Private accessibility −Menetapkan bahwa anggota class hanya dapat diakses oleh class yang mereka definisikan di dalamnya −Kata kunci : private
Petunjuk Penulisan Program
–Variabel instance dari class harus secara normal dideklarasikan menjadi private, dan class hanya akan menyediakan method accessor dan mutator untuk variabel ini.
//akses default ke variabel instance private int name; //akses default ke method private String getName(){ return name; }
}
Rangkuman
–Mendefinisikan class-class Anda sendiri –Mendeklarasikan Fields (instance, static/class) –Mendeklarasikan Method (accessor, mutator, static) –Mengembalikan nilai dan pernyataan multiple return –Reference this –Method overloading –Constructor (default, overloading, pemanggil this()) –Package –Access Modifier (default, public, private, protected)
10