Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

MEMBUAT CLASS SENDIRI. Pada akhir pembahasan, peserta diharapkan mampu untuk :  Membuat class  Mendeklarasikan atribut dan method untuk class  Menggunakan.

Presentasi serupa


Presentasi berjudul: "MEMBUAT CLASS SENDIRI. Pada akhir pembahasan, peserta diharapkan mampu untuk :  Membuat class  Mendeklarasikan atribut dan method untuk class  Menggunakan."— Transcript presentasi:

1 MEMBUAT CLASS SENDIRI

2 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

3 Beberapa hal yang perlu diperhatikan pada saat pendefinisian sintaks : *Digunakan untuk lebih dari 0berarti bahwa boleh ada 0 atau lebih kejadian dari baris tersebut yang menggunakannya juga menandakan bahwa Anda harus mensubtitusikan nilai sebenarnya pada bagian ini daripada mengurangi penulisannya [ ]menandakan bahwa bagian ini hanya pilihan

4 Untuk mendefinisikan sebuah class, kita tuliskan : class { * } adalah sebuah modifier bertipe access yang dapat dikombinasikan dengan modifier bertipe lainnya.

5 public class StudentRecord { //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 StudentRecord – merupakan identifier untuk mendeskripsikan class

6  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.

7 Pendeklarasian atribut dapat ditulis dengan menggunakan sintaks berikut ini, [= ];

8 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 } private digunakan supaya variabel hanya dapat diakses dalam class. Object lain tidak dapat mengakses variabel ini secara langsung.

9  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.

10 public class StudentRecord { //variabel instance yang telah kita deklarasikan private static int studentCount; //kita tambahkan kode di sini } keyword static digunakan untuk menandai suatu static variable

11 Pendeklarasian method dapat ditulis dengan menggunakan sintaks seperti di bawah ini, ( *) { * } modifier yang digunakan dapat berbeda- beda dapat berupa tipe data (termasuk void) dapat berupa identifier yang valid ::= [,]

12 Method Accessor  digunakan untuk membaca value dari class (instance/static) variable  ditulis dengan menggunakan sintaks berikut: get  dapat me-return value.

13 public class StudentRecord { private String name; : public String getName(){ return name; } public – method dapat dipanggil oleh object-object di luar class String – return type dari method. method harus me-return value dengan tipe String getName – nama method () – method tidak memiliki parameter

14 public class StudentRecord { private String name; : public double getAverage(){ double result = 0; result=(mathGrade+englishGrade+scienceGrade)/3; return result; }

15 Method Mutator  digunakan untuk menulis atau mengubah value dari class(instance/static) variable  Ditulis dengan menggunakan sintaks berikut: set

16 public class StudentRecord { private String name; : public void setName( String temp ){ name = temp; } public – method dapat dipanggil oleh object-object di luar class void – method tidak me-return value setName - nama method (String temp) – parameter yang digunakan di dalam method

17  multiple return statement dapat digunakan dalam sebuah method selama tidak berada pada block yang sama.  konstanta dapat digunakan untuk me-return value sebuah variabel

18 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; }

19 public class StudentRecord { private static int studentCount; public static int getStudentCount(){ return studentCount; } public – dapat dipanggil oleh object-object di luar class static – method dapat dipanggil melalui sintaks : [ClassName].[methodName] Sebagai contoh, pada program, kita dapat memanggil method dengan sintaks : StudentRecord.getStudentCount() int – return type dari method. Method harus me-return value dengan tipe int getStudentCount – nama method () - method tidak mempunyai parameter

20  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.

21 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;

22 /** * Me-return nama student */ public String getName(){ return name; } /** * mengubah nama student */ public void setName( String temp ){ name = temp; }

23 /** * Menghitung nilai rata-rata dari bahasa inggris, * matematika, dan sains */ public double getAverage(){ double result = 0; result = ( mathGrade+englishGrade+scienceGrade )/3; return result; } /** * Me-return jumlah instance dari StudentRecords */ public static int getStudentCount(){ return studentCount; }

24 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(); //Mengubah nama 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()); }

25 Anna Student Count = 0

26 this digunakan untuk mengakses instance variable yang dibayangi oleh parameter Reference ‘this’, dapat ditulis dengan menggunakan sintaks berikut ini, this. catatan : Reference ‘this’ hanya dapat digunakan untuk instance variable,bukan untuk static atau class variable

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

28 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 berbeda − Return type dapat berbeda atau sama

29 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); }

30 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()); }

31 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

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

33 Constructor dapat dideklarasikan dengan menggunakan sintaks berikut ini, ( *) { * }

34 Default Constructor − merupakan constructor tanpa parameter. − default constructor secara implisit ada, jika class tidak mendeklarasikan constructor apapun.

35 public StudentRecord() { //source code disini }

36 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; }

37 Berikut ini merupakan source code contoh penggunaan constructor, 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 }

38 Sebuah constructor dapat dipanggil oleh constructor yang lain. Dalam hal ini, dapat digunakan p emanggil 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.

39 Public StudentRecord(){ this(“some string”); } public StudentRecord(String temp){ this.name = temp; } Public static void main(String args[]){ StudentRecord annaRecord = new StudentRecord() }

40 Package Merupakan pengelompokan class dan interface, yang memiliki relasi dalam satu unit. Package menyediakan mekanisme pengaturan kelompok class dan interface untuk menghindari konflik penamaan.

41 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 ;

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

43 Package dapat dideklarasikan dengan menggunakan sintaks: 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.

44 package SchoolClasses; public class StudentRecord { private String name; private String address; private int age; :

45  Package SchoolClasses harus ditempatkan di dalam direktori C:\  Pengaturan classpath harus merujuk pada direktori yang bersangkutan, sehingga ketika dijalankan, JVM dapat melihat dimana class-class tersebut disimpan.  mari kita lihat contoh pada slide berikut, apa yang akan terjadi jika kita tidak melakukan pengaturan classpath.

46 Berikut ini merupakan hasil yang didapatkan, ketika class StudentRecord di-compile dan dijalankan, 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)

47 Pengaturan classpath dalam Windows, dapat dideklarasikan dengan menuliskan sintaks di bawah ini pada command prompt, C:\schoolClasses> set classpath=C:\ C:\ adalah direktori dimana package ditempatkan. Setelah mengatur classpath, program dapat dijalankan dimanapun, dengan mengetik, C:\schoolClasses> java schoolClasses.StudentRecord

48 Pada sistem berbasis Unix, class harus berada dalam direktori /usr/local/myClasses, dengan deklarasi sintaks, export classpath=/usr/local/myClasses

49 Pengaturan classpath dapat dilakukan dimana saja. Classpath yang diatur boleh lebih dari satu, caranya :  Pada Windows pisahkan classpath dengan menggunakan ‘;’ set classpath=C:\myClasses;D:\;E:\MyPrograms\JavaC:\myClasses;D  Pada Unix pisahkan classpath dengan menggunakan ‘:’ export classpath=/usr/local/java:/usr/myClasses

50 Ada 4 tipe access modifier dalam Java: − public − private − protected − Default Default merupakan default access modifier, yang tidak menggunakan keyword public, private, dan protected merupakan access modifier tipe akses, yang secara eksplisit harus ditulis.

51 Akses Default − Hanya class-class dalam package yang sama yang memiliki akses ke class variable dan method − Tidak ada keyword bagi modifier default

52 public class StudentRecord { //akses default ke instance variable int name; //akses default ke method String getName(){ return name; }

53 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

54 public class StudentRecord { //akses default ke instance variable public int name; //akses default ke method public String getName(){ return name; }

55 Akses protected Anggota class hanya dapat diakses oleh method dalam class dan subclass dari class Keyword : protected

56 public class StudentRecord { //akses default ke instance variable protected int name; //akses default ke method protected String getName(){ return name; }

57 Akses private Anggota class hanya dapat diakses oleh class yang mereka definisikan di dalamnya Keyword : private

58 public class StudentRecord { //akses default ke instance variable private intname; //akses default ke method private String getName(){ return name; }

59 Instance variable dari class harus dideklarasikan menjadi private, dan class hanya menyediakan method accessor dan mutator untuk variabel tersebut.

60  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)


Download ppt "MEMBUAT CLASS SENDIRI. Pada akhir pembahasan, peserta diharapkan mampu untuk :  Membuat class  Mendeklarasikan atribut dan method untuk class  Menggunakan."

Presentasi serupa


Iklan oleh Google