• Tidak ada hasil yang ditemukan

9/27/2011. Tujuan. Membuat Class Sendiri. Mendefinisikan Class. Mendefinisikan Class. Contoh. Petunjuk Penulisan Program

N/A
N/A
Protected

Academic year: 2021

Membagikan "9/27/2011. Tujuan. Membuat Class Sendiri. Mendefinisikan Class. Mendefinisikan Class. Contoh. Petunjuk Penulisan Program"

Copied!
10
0
0

Teks penuh

(1)

JAVA Education Network Indonesia

jeni.jardiknas.org

Membuat Class Sendiri

Pengenalan Pemrograman 1

Tujuan

Pada akhir pelajaran, siswa mampu untuk :

–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

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

Mendefinisikan Class

Untuk mendefinisikan sebuah class, kita tuliskan :

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

dimana

<modifier> adalah sebuah access modifier, dimana boleh dikombinasikan dengan tipe modifier lainnya.

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

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.

(2)

Mendeklarasikan Atribut

Untuk mendeklarasikan atribut yang pasti dari class kita, kita tuliskan,

<modifier> <type> <name> [= <default_value>];

Variabel Instance

public class StudentRecord {

privateString name;

privateString address;

privateint age;

privatedoublemathGrade;

privatedoubleenglishGrade;

privatedoublescienceGrade;

privatedoubleaverage; //kita akan tambahkan kode di sini

}

dimana

privatedi 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.

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 staticuntuk menandakan bahwa variabel adalah sebuah variabel static

Mendeklarasikan Method

Untuk mendeklarasikan method, kita tuliskan,

<modifier> <returnType> <name>(<parameter>*) { <statement>*

} dimana,

<modifier>dapat mempunyai beberapa modifier yang berbeda

<returnType>dapat berupa tipe data (termasuk void)

<name>dapat berupa identifier yang valid

<parameter> ::= <parameter_type> <parameter_name>[,]

Method Accessor

Method Accessor

digunakan untuk membaca nilai dari variabel class kita (instance/static)

biasanya ditulis seperti:

get<NameOfInstanceVariable> juga mengembalikan suatu nilai.

(3)

Contoh 1

public class StudentRecord {

private String name; :

public String getName(){

return name; }

}

dimana,

public– berarti bahwa method dapat dipanggil dari object-object 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

Contoh 2

public class StudentRecord {

private String name; :

public double getAverage(){

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

Method Mutator

–Method Mutator

–digunakan untuk menulis atau merubah nilai dari variabel class kita (instance/static)

–biasanya ditulis seperti:

set<NameOfInstanceVariable>

Contoh

public class StudentRecord {

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

–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

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;

(4)

Method Static

public class StudentRecord {

private static int studentCount;

public static int getStudentCount(){

return studentCount; }

} 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

Petunjuk Penulisan Program

–Nama method harus diawali dengan huruf KECIL. –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

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;

/**

* Mengembalikan nama student */

public String getName(){

return name;

} /**

* merubah nama dari student */

public void setName( String temp ){

name = temp;

}

Source Code untuk class

StudentRecord

/**

* Menghitung rata-rata dari nilai bahasa inggris, * matematika, dan sains

*/

public double getAverage(){

double result = 0;

result = ( mathGrade+englishGrade+scienceGrade )/3; return result;

} /**

* Mengembalikan jumlah instans dari StudentRecords */

public static int getStudentCount(){

return studentCount;

}

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(); //Mengatur nama dari Student

annaRecord.setName(“Anna”); beahRecord.setName(“Beah”); crisRecord.setName(“Cris”); //Mencetak nama Anna

System.out.println(annaRecord.getName()); //Mencetak jumlah siswa

Sistem.out.println(“Count=” +StudentRecord.getStudentCount());

(5)

Keluaran Program

Anna Student Count = 0

reference “this”

–reference this

digunakan untuk mengakses variabel instance yang dibayangi oleh parameter

–Untuk menggunakan reference this, kita ketik, this.<namaDariVariabelInstance>

•CATAT : Anda hanya dapat menggunakan reference this untuk variabel instance dan BUKAN variabel static atau class

Contoh

public void setAge( int age ){ this.age = age;

}

Method Overloading

–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

–Selalu ingat bahwa method overloaded mempunyai properti-properti 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()); }

(6)

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

–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> <className> (<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

public StudentRecord() {

//beberapa kode di sini

}

Constructor Overloading

public StudentRecord(){

//beberapa kode inisialisasi di sini

}

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;

(7)

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

}

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.

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.}

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.

Mengimpor Package

–Untuk dapat menggunakan class-class di luar package yang sedang Anda kerjakan, Anda perlu mengimpor package dari class-class 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:

import <nameOfPackage>;

Contoh

import java.awt.Color; import java.awt.*;

(8)

Membuat Package

–Untuk membuat package kita sendiri, kita tuliskan:

package <namaPackage>;

–Package juga dapat dibuat bersarang. Dalam kasus ini, interpreter Java mengharapkan struktur direktori berisi class-class yang dapat dieksekusi ke hierarki package yang cocok.

Contoh

package SchoolClasses; public class StudentRecord {

private String name; private String address;

private int age;

:

Mengatur CLASSPATH

–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

–Diharuskankita men-compile dan menjalankan class StudentRecord yang kita tuliskan dalam bagian terakhir,

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,

C:\schoolClasses> java schoolClasses.StudentRecord

Mengatur

CLASSPATH

–Untuk sistem berbasis Unix, mengharuskan kita mempunyai class-class kita dalam direktori /usr/local/myClasses, kita tuliskan,

(9)

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

•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

Contoh

public class StudentRecord {

//akses default ke variabel instance public int name;

//akses default ke method public String getName(){

return name; }

(10)

Hak akses Protected

•Akses protected

−Menentukan bahwa anggota class dapat diakses hanya ke method dalam class dan subclass dari class −Kata kunci : protected

Contoh

public class StudentRecord {

//akses default ke variabel instance protected int name; //akses default ke method protected String getName(){

return name; }

}

Hak akses Private

•Private accessibility

−Menetapkan bahwa anggota class hanya dapat diakses oleh class yang mereka definisikan di dalamnya

−Kata kunci : private

Contoh

public class StudentRecord {

//akses default ke variabel instance private int name;

//akses default ke method private String getName(){

return name; }

}

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.

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

Referensi

Dokumen terkait

Untuk mengetahui kemampuan siswa yang mengikuti pembelajaran ansambel biola pada ekstrakurikuler di SD Negeri 067245 Medan Selayang 43. Untuk mengetahui kendala

Kriteria: Rubrik Deskriptif Bentuk non-test: • - Bentuk test: UAS • Kuliah; • Diskusi; [TM: 1x(2x50”)] • Tugas: Membuat Gambaran Ekonomi Indonesia

Berdasarkan hasil penelitian terkait Penerapan Pendidikan Akhlak Syaikh Utsaimin di SDIT Al-Hidayah Bogor dapat diambil kesimpulan sebagai berikut: (1)

Tujuan dari penyusunan laporan akhir ini adalah untuk membuat suatu Aplikasi Pengukuran kinerja Kayawan Pada LPP TVRI Sumatera Selatan dengan menggunakan bahasa pemrograman

Penelitian ini bertujuan untuk mengidentifikasi terjadinya perubahan iklim melalui pola kecenderungan, distribusi dan kesamaan data curah hujan pada rentang waktu yang

(3) Dalam hal Penghasil, Pengumpul, Pemanfaat, Pengangkut, Pengolah, dan Penimbun limbah B3 tidak melakukan penanggulangan pencemaran dan/atau kerusakan lingkungan

1) Penyampaian pelajaran menjadi lebih baku, setiap siswa yang melihat atau mendengar penyajian melalui media menerima pesan yang sama. Meskipun guru menafsirkan

Setelah itu kacang yang sudah direndam tadi diambil selanjutnya diaduk dengan tangan goyangkan sampai bener lepas dari tanah proser tersebut sampai ½ jam Untuk itu