Membuat class sendiri tujuan Pada akhir pembahasan peserta
Membuat class sendiri
tujuan Pada akhir pembahasan, peserta diharapkan mampu untuk : • Membuat class • Mendeklarasikan atribut dan method untuk class • Menggunakan reference this untuk mengakses data instance • Membuat dan memanggil method overload • Meng-import dan membuat package • Menggunakan access modifier untuk mengatur akses ke anggota class
Mendefinisikan class Beberapa hal yang perlu diperhatikan pada saat pendefinisian sintaks : * 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> { <attribute. Declaration>* <constructor. Declaration>* <method. Declaration>* } <modifier> adalah sebuah modifier bertipe access yang dapat dikombinasikan dengan modifier bertipe lainnya.
contoh Student. Record public class { //kita akan tambahkan kode di sini nantinya } public – digunakan supaya class dapat diakses oleh class-class lain di luar package class – merupakan keyword yang digunakan untuk membuat class dalam Java Student. Record – merupakan identifier untuk mendeskripsikan class
Petunjuk penulisan program – Gunakan nama yang sesuai untuk penamaan class. Disarankan untuk tidak menggunakan XYZ sebagai nama class atau nama asal-asalan lainnya. – Nama class harus diawali dengan huruf KAPITAL. – Penamaan file harus tepat sama dengan nama yang digunakan oleh class ber-modifier public.
Mendeklarasikan atribut Pendeklarasian atribut dapat ditulis dengan menggunakan sintaks berikut ini, <modifier> <type> <name> [= <default_value>];
Instance variable public class Student. Record { private String name; private String address; private int age; private double math. Grade; private double english. Grade; private double science. Grade; private double average; //kita akan tambahkan kode di sini } private digunakan supaya variabel hanya dapat diakses dalam class. Object lain tidak dapat mengakses variabel ini secara langsung.
Petunjuk penulisan program – Semua instance variable dideklarasikan pada deklarasi class. – Deklarasikan satu variabel untuk setiap baris. – Instance variable, seperti variabel lainnya, penamaannya harus dimulai dengan huruf kecil. – Gunakan tipe data yang sesuai untuk setiap variabel yang dideklarasikan. – Deklarasikan instance variable sebagai private sehingga hanya class method yang dapat mengaksesnya secara langsung.
Class(static) variable public class Student. Record { //variabel instance yang telah kita deklarasikan private static int student. Count; //kita tambahkan kode di sini } keyword static digunakan untuk menandai suatu static variable
Mendeklarasikan method Pendeklarasian method dapat ditulis dengan menggunakan sintaks seperti di bawah ini, <modifier> <return. Type> <name>(<parameter>*) { <statement>* } <modifier> modifier yang digunakan dapat berbeda <return. Type> dapat berupa tipe data (termasuk void) <name> <parameter> : : = dapat berupa identifier yang valid <parameter_type> <parameter_name>[, ]
Method accessor Method Accessor digunakan untuk membaca value dari class (instance/static) variable ditulis dengan menggunakan sintaks berikut: get<Name. Of. Instance. Variable> dapat me-return value.
Contoh 1 public class Student. Record { private String name; : public String get. Name(){ return name; } } public – method dapat dipanggil oleh object-object di luar class String – return type dari method harus me-return value dengan tipe String get. Name – nama method () – method tidak memiliki parameter
Contoh 2 public class Student. Record { private String name; : public double get. Average(){ double result = 0; result=(math. Grade+english. Grade+science. Gr ade)/3; return result; } }
Method mutator Method Mutator – digunakan untuk menulis atau mengubah value dari class(instance/static) variable – Ditulis dengan menggunakan sintaks berikut: set<Name. Of. Instance. Variable>
contoh public class Student. Record { private String name; : public void set. Name( String temp ){ name = temp; } } public – method dapat dipanggil oleh object-object di luar class void – method tidak me-return value set. Name - nama method (String temp) – parameter yang digunakan di dalam method
Multiple return statement – multiple return statement dapat digunakan dalam sebuah method selama tidak berada pada block yang sama. – konstanta dapat digunakan untuk me-return value sebuah variabel
contoh public String get. Number. In. Words( int num ){ String default. Num = "zero"; if( num == 1 ){ return "one"; //return a constant } else if( num == 2){ return "two"; //return a constant } //return a variable return default. Num; }
Method static public class Student. Record { private static int student. Count; public static int get. Student. Count(){ return student. Count; } } public – dapat dipanggil oleh object-object di luar class static – method dapat dipanggil melalui sintaks : [Class. Name]. [method. Name] Sebagai contoh, pada program, kita dapat method dengan sintaks : Student. Record. get. Student. Count() memanggil int – return type dari method. Method harus me-return value dengan tipe int get. Student. Count – nama method
Petunjuk penulisan program – Nama method harus diawali dengan huruf kecil. – Nama method harus berupa kata kerja. – Disarankan untuk selalu menyediakan dokumentasi sebelum deklarasi method. Anda dapat menggunakan style pada javadoc.
Source code untuk class Student. Record public class Student. Record { private private String name; String address; int age; double math. Grade; double english. Grade; double science. Grade; double average; static int student. Count;
Source code untuk class Student. Record /** * Me-return nama student */ public String get. Name(){ return name; } /** * mengubah nama student */ public void set. Name( String temp ){ name = temp; }
Source code untuk class Student. Record /** * Menghitung nilai rata-rata dari bahasa inggris, * matematika, dan sains */ public double get. Average(){ double result = 0; result = ( math. Grade+english. Grade+science. Grade )/3; return result; } /** * Me-return jumlah instance dari Student. Records */ public static int get. Student. Count(){ return student. Count;
Contoh Source Code Penggunaan Student. Record Public class Student. Record. Example{ public static void main(String args[]){ //Membuat tiga object untuk record Student. Record anna. Record = new Student. Record(); Student. Record beah. Record = new Student. Record(); Student. Record cris. Record = new Student. Record(); //Mengubah nama Student anna. Record. set. Name(“Anna”); beah. Record. set. Name(“Beah”); cris. Record. set. Name(“Cris”); //Mencetak nama Anna System. out. println(anna. Record. get. Name()); //Mencetak jumlah siswa Sistem. out. println(“Count=” +Student. Record. get. Student. Count()); }
Output program Anna Student Count = 0
Reference ‘this’ this digunakan untuk mengakses instance variable yang dibayangi oleh parameter Reference ‘this’, dapat ditulis dengan menggunakan sintaks berikut ini, this. <nama. Instance. Variable> catatan : Reference ‘this’ hanya dapat digunakan untuk instance variable , bukan untuk static atau class variable
contoh public void set. Age( int age ){ this. age = age; }
Method overloading − penggunaan method dengan nama yang sama, parameter berbeda, dan me-return value dengan return type yang berbeda − Dapat digunakan ketika operator yang sama memiliki implementasi yang berbeda Method overloading memiliki properti-properti berikut: − Nama yang sama − Parameter/argument berbeda (jumlah dan Type) − Return type 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 e. Grade, double m. Grade, double s. Grade){ System. out. println(“Name”+name); System. out. println(“Math Grade”+m. Grade); System. out. println(“English Grade”+e. Grade); System. out. println(“Science Grade”+s. Grade); }
contoh Public static void main(String args[]){ Student. Record anna. Record = new Student. Record(); anna. Record. set. Name(“Anna”); anna. Record. set. Address(“Phillipines”); anna. Record. set. Age(15); anna. Record. set. Math. Grade(80); anna. Record. set. English. Grade(95. 5); anna. Record. set. Science. Grade(100); //overloaded method anna. Record. print(anna. Record. get. Name()); anna. Record. print(anna. Record. get. English. Grade(), anna. Record. get. Math. Grade(), anna. Record. get. Science. Grade()); }
Output program yang tampil saat pemanggilan pertama, Name: Anna Address: Philippines Age: 15 Output program yang tampil saat pemanggilan pertama, Name: Anna Math Grade: 80. 0 English Grade: 95. 5 Science Grade: 100. 0
constructor Constructor sangat penting dalam meng-instatiate sebuah object. Constructor merupakan sebuah method yang digunakan untuk menempatkan semua penginisialisasian. Constructor memiliki properti-properti, sbb: − 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 memiliki return value. − Constructor tidak dapat dipanggil langsung. Constructor hanya dapat dipanggil dengan menggunakan operator new pada saat class instantiation.
constructor Constructor dapat dideklarasikan dengan menggunakan sintaks berikut ini, <modifier> <class. Name> (<parameter>*) { <statement>* }
Default constructor Default Constructor − merupakan constructor tanpa parameter. − default constructor secara implisit ada, jika class tidak mendeklarasikan constructor apapun.
contoh public Student. Record() { //source code disini }
Constructor overloading public Student. Record(){ //beberapa kode inisialisasi di sini } public Student. Record(String temp){ this. name = temp; } public Student. Record(String name, String address){ this. name = name; this. address = address; } public Student. Record(double m. Grade, double e. Grade, double s. Grade){ math. Grade = m. Grade; english. Grade = e. Grade; science. Grade = s. Grade; }
Menggunakan contructor Berikut ini merupakan source code contoh penggunaan constructor, public static void main( String[] args ){ //membuat tiga object untuk record Student. Record anna. Record = new Student. Record("Anna"); Student. Record beah. Record = new Student. Record("Beah", "Philippines"); Student. Record cris. Record = new Student. Record(80, 90, 100); //beberapa kode di sini }
Pemanggil constructor ‘this()’ Sebuah constructor dapat dipanggil oleh constructor yang lain. Dalam hal ini, dapat digunakan pemanggil this() Hal yang perlu diperhatikan ketika menggunakan this() : − Pemanggil constructor this(), harus ada pada statement pertama dalam constructor. − this() hanya digunakan dalam definisi constructor. − this() dapat diikuti oleh statement yang relevan.
contoh Public Student. Record(){ this(“some string”); } public Student. Record(String temp){ this. name = temp; } Public static void main(String args[]){ Student. Record anna. Record = new Student. Record() }
package Package Merupakan pengelompokan class dan interface, yang memiliki relasi dalam satu unit. Package menyediakan mekanisme pengaturan kelompok class dan interface untuk menghindari konflik penamaan.
Meng-import package Untuk dapat menggunakan class-class di luar package yang sedang Anda kerjakan, Anda perlu meng-import package dari class-class tersebut. Program Java secara otomatis akan meng-import package java. lang. *, sehingga class String dan Integer dapat langsung digunakan dalam program. suatu package dapat di-import dengan menggunakan sintaks: import <name. Of. Package>;
contoh import java. awt. Color; import java. awt. *;
Membuat package Package dapat dideklarasikan dengan menggunakan sintaks: package <nama. Package>; Package juga dapat dibuat nested(bersarang). Dengan pengertian, interpreter Java mengharapkan struktur direktori yang berisi class-class yang dapat dieksekusi ke hierarki package yang cocok.
contoh package School. Classes; public class Student. Record { private String name; private String address; private int age; :
Mengatur CLASSPATH – Package School. Classes harus ditempatkan di dalam direktori C: – Pengaturan classpath harus merujuk pada direktori yang bersangkutan, sehingga ketika dijalankan, JVM dapat melihat dimana class tersebut disimpan. – mari kita lihat contoh pada slide berikut, apa yang akan terjadi jika kita tidak melakukan pengaturan classpath.
Mengatur CLASSPATH Berikut ini merupakan hasil yang didapatkan, ketika class Student. Record di-compile dan dijalankan, C: school. Classes>javac Student. Record. java C: school. Classes>java Student. Record Exception in thread "main" java. lang. No. Class. Def. Found. Error: Student. Record (wrong name: school. Classes/Student. Record) at java. lang. Class. Loader. define. Class 1(Native Method) at java. lang. Class. Loader. define. Class(Unknown Source) at java. security. Secure. Class. Loader. define. Class(Unknown Source) at java. net. URLClass. Loader. access$100(Unknown Source) at java. net. URLClass. Loader$1. run(Unknown Source) at java. security. Access. Controller. do. Privileged(Native Method) at java. net. URLClass. Loader. find. Class(Unknown Source) at java. lang. Class. Loader. load. Class(Unknown Source) at sun. misc. Launcher$App. Class. Loader. load. Class(Unknown Source) at java. lang. Class. Loader. load. Class. Internal(Unknown Source)
Mengatur CLASSPATH Pengaturan classpath dalam Windows, dapat dideklarasikan dengan menuliskan sintaks di bawah ini pada command prompt, C: school. Classes> set classpath=C: adalah direktori dimana package ditempatkan. Setelah mengatur classpath, program dapat dijalankan dimanapun, dengan mengetik, C: school. Classes> java school. Classes. Student. Record
Mengatur CLASSPATH Pada sistem berbasis Unix, class harus berada dalam direktori /usr/local/my. Classes, dengan deklarasi sintaks, export classpath=/usr/local/my. Classes
Mengatur CLASSPATH Pengaturan classpath dapat dilakukan dimana saja. Classpath yang diatur boleh lebih dari satu, caranya : – Pada Windows pisahkan classpath dengan menggunakan ‘; ’ set classpath=C: my. Classes; D: ; E: My. ProgramsJava – Pada Unix pisahkan classpath dengan menggunakan ‘: ’
Access modifier Ada 4 tipe access modifier dalam Java: − − public private protected Default merupakan default access modifier, yang tidak menggunakan keyword public, private, dan protected merupakan access modifier tipe akses, yang secara eksplisit harus
Hak akses Default Akses Default − Hanya class-class dalam package yang sama yang memiliki akses ke class variable dan method − Tidak ada keyword bagi modifier default
contoh public class Student. Record { //akses default ke instance variable int name; //akses default ke method String get. Name(){ return name; } }
Hak akses public Anggota class dapat diakses dari dalam maupun dari luar class. Object apapun yang berinteraksi dengan class, memiliki akses ke anggota class yang ber-modifier public Keyword : public
contoh public class Student. Record { //akses default ke instance variable public int name; //akses default ke method public String get. Name(){ return name; } }
Hak akses protected Anggota class hanya dapat diakses oleh method dalam class dan subclass dari class Keyword : protected
contoh public class Student. Record { //akses default ke instance variable protected int name; //akses default ke method protected String get. Name(){ return name; } }
Hak akses private Anggota class hanya dapat diakses oleh class yang mereka definisikan di dalamnya Keyword : private
contoh public class Student. Record { //akses default ke instance variable private int name; //akses default ke method private String get. Name(){ return name; } }
Petunjuk penulisan program Instance variable dari class harus dideklarasikan menjadi private, dan class hanya menyediakan method accessor dan mutator untuk variabel tersebut.
kesimpulan – – – – – Mendefinisikan class-class Mendeklarasikan Fields (instance, static/class) Mendeklarasikan Method (accessor, mutator, static) Me-return value dan multiple return statement Reference ‘this’ Method overloading Constructor (default, overloading, pemanggil this()) Package Access Modifier (default, public, private, protected)
- Slides: 60