Membuat class sendiri.

Slides:



Advertisements
Presentasi serupa
Pemrograman Berorientasi Objek (Project)
Advertisements

Pemrograman JAVA (TIB09)
Bekerja dengan Java class library
OOP berputar pada konsep dari obyek yang merupakan elemen dasar dari program Anda. Ketika kita membandingkan dengan dunia nyata, kita dapat menemukan.
Membuat class sendiri.
Praktikum Bahasa Pemrograman
KONSEP OBJECT ORIENTED PROGRAMING (OOP)
Nur Hayatin, S.ST Jurusan Teknik Informatika Universitas Muhammadiyah Malang Sem Genap 2010.
Workshop SCS: Java Game Programming
Java array.
Pemrograman Berorientasi Objek
Inheritance Ery Setiyawan Jullev A.
Inheritance (Pewarisan)
Encapsulation, Inheritance, polymorphism, dan interface
MINGGU 5 Java Programming (MKB614C)
Variabel, Method & Constructor Oleh : Nur Hayatin, S.ST Teknik Informatika – UMM 2011.
INHERITANCE, POLYMORPHISM, DAN INTERFACE
Pewarisan, Polimorfisme, dan Interface
Pemrograman Berorientasi Obyek Oleh Tita Karlita
METHOD Object Oriented Programming with JAVA 2011/2012.
Membuat Class Sendiri Sebelum menulis class Anda, pertama pertimbangkan dimana Anda akan menggunakan class dan bagaimana class tersebut akan digunakan.
OBJECT ORIENTED PROGRAMMING YANES HARDIANTO SUI Politeknik Manufaktur Astra 2011.
Pemrograman Berorientasi Obyek dengan JAVA Interface
Object Oriented Programming with JAVA 2011/2012
MEMBUAT CLASS SENDIRI. Pada akhir pembahasan, peserta diharapkan mampu untuk :  Membuat class  Mendeklarasikan atribut dan method untuk class  Menggunakan.
Bekerja dengan Java class library
Dasar pemrograman.
Inheritance, polymorphism, dan interface
Class and Object Matakuliah : XXXX / Algoritma dan Metode Object Oriented Programming II Pertemuan : 2 Tahun : 2008 Versi : 1/0.
INHERITANCE (Oleh : Nur Hayatin, S.ST)
OOP Java Minggu 2b Dasar OOP. Class (1) Deklarasi class : [ *] class { [ *] } Cat : [] = optional, * = repeat 0-N.
Algoritma &Pemrograman 1
Java array.
Kelas A dapat memiliki referensi ke obyek dari kelas- kelas lain sebagai anggota. Kadang-kadang disebut sebagai hubungan “has-a”. Sebagai contoh, sebuah.
MEMBUAT KELAS SENDIRI Dewi Sartika, M.Kom.
FONDASI PEMROGRAMAN & STRUKTUR DATA #5
MEMBUAT CLASS & KONSEP ENCAPSULATION
Outline: Class Objek Konstruktor Destruktor Overloading dan Tipe value
JAVA ARRAY.
Access Modifier.
Inheritance dan Kata Kunci static
Java array.
Algoritma & Pemrograman 1
Method & Constructor METHOD.
Constructor dan Overloading
Java array.
MODIFIER JAVA.
Enkapsulasi, Accessor Method, Mutator Method
Membuat Class Sendiri Sebelum menulis class Anda, pertama pertimbangkan dimana Anda akan menggunakan class dan bagaimana class tersebut akan digunakan.
Java array.
Association, Composition dan Inheritance
MEMBUAT CLASS SENDIRI 2.
Algoritma &Pemrograman 1
Tipe Data, Variabel, dan Operator
Tipe Data, Variabel, dan Operator
Java array.
Algoritma &Pemrograman 1
MEMBUAT CLASS & KONSEP ENCAPSULATION
Membuat Class Sendiri.
Array, Class, Obyek, Method danConstructor.
Visibility, Getter Setter, Pewarisan, Overloading dan Overriding
Java Class Library.
Inisiasi Class dan Object
Konsep Bahasa Pemrograman I Konsep OOP
Java array.
Array, Class, Obyek, Method danConstructor.
Tipe Data, Variabel, dan Operator
Java array.
Pemrograman Berorientasi Objek
DPH1C4 Pemrograman berorientasi Obyek
Transcript presentasi:

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

Object-Oriented programming (OOP) Menitikberatkan pada konsep object sebagai elemen dasar dari program. Object tersebut dikarakterisasi oleh property dan behavior.

Pengenalan OOP Contoh Object : Object dapat diasumsikan sebagai sebuah perangkat lunak, yang menggunakan property sebagai data, dan behavior sebagai method

Class dan Object Class memiliki kelebihan dengan salah satu karakteristiknya yaitu, reusable. Programmer dapat menggunakan sebuah class berulang kali untuk membuat banyak object.

Class dan Object Class Dua tipe class member Diasumsikan sebagai template, sebuah prototype dari object Merupakan struktur dasar dari OOP Dua tipe class member Field (property atau attribute)‏ Menentukan tipe data yang digunakan oleh class Method Menentukan jalan operasional

Class dan Object Object Terdiri dari: kumpulan data (property), berupa variabel yang menentukan karakteristik sebuah object beberapa method (behavior) yang menjelaskan bagaimana bentuk object. Object adalah sebuah instance dari Class.

Class dan Object Berikut ini merupakan contoh Class dan Object :

Class Variable Class terdiri dari : Instance variable Instance method Class Variable (static member variable)‏ variabel yang dimiliki oleh keseluruhan class Variabel tersebut memiliki nilai (value) yang sama untuk semua object dalam class yang sama.

Class Variable Sebagai Contoh,

Instantiate Class Untuk membuat sebuah object atau instance dari class, digunakan operator new Sebagai contoh : String str2 = new String(“Hello world!”); atau sama dengan, String str2 = "Hello";

Instantiate Class Operator new Mengalokasikan memory untuk object dan membuat sebuah reference dari alokasi memory tersebut Pada saat pembuatan object, class constructor dipanggil. Constructor merupakan sebuah method dimana penginisialisasian ditempatkan, nama constructor sama dengan nama class.

Method Method Beberapa ciri method: merupakan bagian code yang dapat dipanggil oleh program utama atau method lain untuk melakukan suatu fungsi tertentu. Beberapa ciri method: Dapat me-return value atau tidak sama sekali. Setelah method telah selesai dieksekusi, proses kembali kepada method yang memanggilnya.

Alasan Menggunakan Method Inti dari pemecahan masalah yang efektif adalah memilah dan membagi permasalahan. Proses tersebut dapat dilakukan dalam Java dengan membuat method untuk menyelesaikan bagian tertentu atas permasalahan. Ambil sebuah permasalahan, pilah menjadi beberapa bagian kecil, kemudian atur penulisannya menjadi program berskala besar.

Memanggil Instance Variable Berikut ini merupakan contoh pemanggilan method menggunakan class String. Gunakan Java API documentation untuk mengetahui seluruh method yang terdapat pada class String. Pemanggilan instance method, dapat didklarasikan pada dengan menggunakan sintaks berikut ini : nameOfObject.nameOfMethod( parameters );

Memanggil Instance Variable Perhatikan dua contoh method class String berikut :

Memanggil Instance Variable Menggunakan methods, String str1 = "Hello"; char x = str1.charAt(0); //return character H //disimpan dalam variable x String str2 = "hello"; //return boolean value true boolean result = str1.equalsIgnoreCase( str2 );

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> { <attributeDeclaration>* <constructorDeclaration>* <methodDeclaration>* } <modifier> adalah sebuah modifier bertipe access yang dapat dikombinasikan dengan modifier bertipe lainnya.

contoh 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

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 StudentRecord { private String name; private String address; private int age; private double mathGrade; private double englishGrade; private double scienceGrade; 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 StudentRecord { //variabel instance yang telah kita deklarasikan private static int studentCount; //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> <returnType> <name>(<parameter>*) { <statement>* } <modifier> modifier yang digunakan dapat berbeda- beda <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 value dari class (instance/static) variable ditulis dengan menggunakan sintaks berikut: get<NameOfInstanceVariable> dapat me-return value.

Contoh 1 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

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 mengubah value dari class(instance/static) variable Ditulis dengan menggunakan sintaks berikut: set<NameOfInstanceVariable>

contoh 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

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

Method static 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

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

Source code untuk class StudentRecord /** * Me-return nama student */ public String getName(){ return name; } * mengubah nama student public void setName( String temp ){ name = temp;

Source code untuk class StudentRecord /** * 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;

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

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.<namaInstanceVariable> catatan : Reference ‘this’ hanya dapat digunakan untuk instance variable ,bukan untuk static atau class variable

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

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

Output program Output program yang tampil saat pemanggilan pertama, Name:Anna Address:Philippines Age:15 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> <className> (<parameter>*) { <statement>* }

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

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

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;

Menggunakan contructor 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 }

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 StudentRecord(){ this(“some string”); } public StudentRecord(String temp){ this.name = temp; Public static void main(String args[]){ StudentRecord annaRecord = new StudentRecord()

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

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

Membuat package Package dapat dideklarasikan dengan menggunakan sintaks: package <namaPackage>; 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 SchoolClasses; public class StudentRecord { private String name; private String address; private int age; :

Mengatur CLASSPATH 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.

Mengatur CLASSPATH 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.loadClassInternal(Unknown Source)

Mengatur CLASSPATH 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

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

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:\myClasses;D:\;E:\MyPrograms\Java Pada Unix pisahkan classpath dengan menggunakan ‘:’ export classpath=/usr/local/java:/usr/myClasses

Access modifier 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.

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 StudentRecord { //akses default ke instance variable int name; //akses default ke method String getName(){ return name; }

Hak akses public 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 StudentRecord { //akses default ke instance variable public int name; //akses default ke method public String getName(){ return name; }

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

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

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

contoh public class StudentRecord { //akses default ke instance variable private int name; //akses default ke method private String getName(){ 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)