Class & Object 2 ~Praktikum~ Imam Fahrur Rozi
Materi * Package * Kata kunci import * Access Modifier * Konstruktor * Kata kunci static
Package
Package namapaket * Package dalam Java digunakan untuk mengorganisir klas dengan kategori yang sama atau yang menyediakan fungsionalitas yang sama * Mirip seperti folder yang digunakan untuk mengorganisir file
package * Deklarasi package package namapaket; * Deklarasi subpackage yang ada dalam package lain package namapaket.namasubpaket;
Deklarasi Package paket1 A a1: String * Gambar di samping menunjukkan klas A ada dalam package paket1 * Maka klas A dideklarasikan sbb: package paket1; class A{ String a1;
Deklarasi Package paket1 paket2 A a1: String * Di dalam suatu package boleh ada package yang lain * Gambar di samping menunjukkan klas A ada dalam package paket2 dan paket2 ada dalam paket1 * Maka klas A dideklarasikan sbb: package paket1.paket2; class A{ String a1;
Kata Kunci import
Kata Kunci import * Import dipakai ketika dalam suatu klas, dipakai klas lain atau mengacu ke klas yang lain, dimana klas lain tersebut berada pada paket yang berbeda * Deklarasi import diletakkan di bawah deklarasi package (kalau ada)
Contoh package entiti1; public class Matakuliah{ public String kode; public Matakuliah(){ kode = - - - - ; public Matakuliah(String n){ kode= n; public void tampildata(){ System.out.println( Kode = +kode);
Contoh package entiti2; import entiti1.matakuliah; public class MkTester{ public static void main(string[] argv){ Matakuliah mk=new Matakuliah(); mk.tampildata(); * Pada klas MkTester, dibuat objek mk dari klas Matakuliah yang ada di paket entiti1. Oleh karena itu perlu import klas Matakuliah dari paket entiti1.
Import All Classes import paket1.*; * Untuk meng- import semua klas yang ada dalam suatu paket, digunakan tanda *
Access Modifier
Access Modifier bangundatar + panjang: int ~ lebar: int - tinggi: int Balok + hitungvolume(): int ~ hitungluaspermukaan(): int + main(string[] argv): void BalokTester1 + main(string[] argv): void bangundatartester BalokTester2 + main(string[] argv): void
Access Modifier * Mekanisme Percobaan: * Dalam method main di klas BalokTester1 dan BalokTester2, lakukan instansiasi objek dari klas Balok * Coba akses masing- masing atribut dan masing- masing method- nya
Access Modifier * Pertanyaan: * Atribut dan method apa saja dari klas Balok yang tidak bisa diakses dari klas BalokTester1? Mengapa demikian? * Atribut dan method apa saja dari klas Balok yang tidak bisa diakses dari klas BalokTester2? Mengapa demikian? * Bagaimana caranya agar atribut tinggi bisa diakses dari klas BalokTester1 dan BalokTester2, selain dengan mengubah access modifier- nya?
Accessor/Getter & Mutator/Setter Method * Atribut dengan access modifier private bisa diakses dengan menggunakan accessor & mutator method * Accessor/Getter method: method yang digunakan untuk mengakses atau mengambil nilai dari suatu atribut dengan acccess modifier private * Mutator/Setter method: method yang digunakan untuk memberikan/mengatur/men- set nilai kepada atribut dengan acccess modifier private
Getter Method * Diawali dengan get, diikuti dengan nama atributnya * Tipe data getter sama dengan tipe data atributnya class Mahasiswa{ private String nim; private float ipk; public String getnim(){ return nim; public float getipk(){ return ipk;
Setter Method * Diawali dengan set, diikuti dengan nama atributnya * Tipe data setter pasti void * Method setter memiliki parameter sesuai dengan atributnya class Mahasiswa{ private String nim; private float ipk; public void setnim(string n){ nim = n; public void setipk(float f){ ipk = f;
class Mahasiswa{ private String nim; private float ipk; public String getnim(){ return nim; public float getipk(){ return ipk; public void setnim(string n){ nim = n; public void setipk(float f){ ipk = f;
Tugas * Lengkapi klas Balok di atas dengan setter dan getter untuk atribut tinggi dan lebar (atribut panjang tidak perlu dibuatkan setter dan getter krn sudah public) * Kemudian sesuaikan klas BalokTester1 dan BalokTester2 agar tidak error
Konstruktor
Konstruktor - norek: String - saldo: int Rekening + setnorek(string n): void + setsaldo(int s): void + getnorek(): String + getsaldo(): int RekeningTester + main(string[] argv): void * Di dalam method main() lakukan instansiasi objek dari klas Rekening * Apakah bisa? Padahal di dalam klas Rekening tidak dituliskan konstruktor! Mengapa demikian?
Konstruktor - norek: String - saldo: int Rekening + Rekening() + setnorek(string n): void + setsaldo(int s): void + getnorek(): String + getsaldo(): int * Ubah klas Rekening, dengan menambahkan konstruktor default di dalamnya! * Apa bedanya dengan klas Rekening di slide sebelumnya? RekeningTester + main(string[] argv): void
Konstruktor - norek: String - saldo: int Rekening + Rekening(String no, int s) + setnorek(string n): void + setsaldo(int s): void + getnorek(): String + getsaldo(): int RekeningTester * Ubah klas Rekening di slide sebelumnya, dengan mengubah konstruktor default menjadi konstruktor berparameter (2 parameter)! * Di method main coba instansiasi dengan menggunakan konstuktor berparameter! Apakah bisa? * Kemudian coba instansiasi objek lagi dengan menggunakan konstruktor default! Apakah bisa? Mengapa demikian? + main(string[] argv): void
Konstruktor - norek: String - saldo: int Rekening + Rekening() + Rekening(String no) + Rekening(int s) + Rekening(String no, int s) + setnorek(string n): void + setsaldo(int s): void + getnorek(): String + getsaldo(): int RekeningTester * Ubah klas Rekening di slide sebelumnya, dengan menambahkan konstruktor default dan beberapa konstruktor berparameter (konsep konstruktor overloading)! * Di method main coba instansiasi dengan menggunakan masing- masing konstuktor! + main(string[] argv): void
Kata Kunci static
Kata Kunci static Rekening - norek: String - saldo: int + bunga: double + Rekening() + Rekening(String no) + Rekening(int s) + Rekening(String no, int s) + setnorek(string n): void + setsaldo(int s): void + getnorek(): String + getsaldo(): int * Tambahkan atribut bunga, yang merupakan atribut klas (menggunakan kata kunci static). Hal ini karena diasumsikan bahwa nilai bunga untuk semua objek rekening sama (sehingga bunga dibuat static) * Di method main coba akses atribut bunga RekeningTester + main(string[] argv): void