Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
AKAKOM YOGYAKARTA
2 0 11
Laporan Praktikum Modul 5 Pemrograman Berorientsi Obyek Konstruktor
Potongan Program
public class Nasabah { public int noid; private String nama; private String alamat; private String identitas; private String noIdentitas; double saldo;
Penjelasan -kelas bernama Nasabah dengan modifier public yang berarti isi dari kelas dapat diakses oleh kelas yang lain -variabel noid memiliki modifier public yang bisa diakses bebas dan bertipe integer yang berarti variabel tersebut menyimpan data dalam bentuk angka bulat -variabel nama,alamat,identitas dan noidentitas bertipe string dengan akses modifier private,yang berarti variabel tersebut hanyna dapat diakses didalam kelas nasabah -variabel saldo memiliki tipe data double Program disamping adalah konstruktor. Konstruktor memiliki nama yang sama dengan kelasnya.Ini merupakan konstruktor kosong karena tanpa parameter,tidak memiliki return value,jika memanggil konstruktor ini maka tidak akan menampilkan hasil apa-apa Konstruktor yang kedua berisi parameter noid yang bertipe integer.
Nasabah(){ }
Terdapat statemen this.noid=noid yang digunakan untuk mengakases parameter yang dibiaskan.
Nasabah(int noid, String nm){ this.noid=noid; nama=nama; }
Konstruktor ketiga memiliki dua parameter, yaitu noid bertipe integer dan nm bertipe string. Terdapat statemen this.noid=noid yang digunakan untuk mengakses parameter noid yang dibiaskan. Statemen yang kedua adalah nama=nama yang berarti variabel nama akan disimpan dalam bentuk nama dalam konstruktor Nasabah. Namun jika konstruktor ini dipanggil,yang keluar hanyalah noid.nya saja, karena nama=nama tidak dikenali sehingga returnnya tidak digunakan. Method ini masih bisa dipanggil tapi tidak menampilkan informasi dari nama. Konstruktor Nasabah yang keempat memilik tiga buah parameter yaitu noid yang bertipe integer,nm bertipe string dan saldo bertipe double. Terdapat tiga buah statemen yaitu this.noid=noid,nama=nm,dan this.saldo,yang digunakan untuk mengakses parameter saldo yang dibiaskan dalam parameter konstruktor Nasabah Konstruktor Nasabah yang kelima memilik empat buah parameter yaitu noid yang bertipe integer,nm bertipe string ,alamat bertipe string dan saldo bertipe double. Terdapat empat buah statemen yaitu this.noid=noid,nama=nm, this.saldo,yang digunakan untuk mengakses parameter saldo yang dibiaskan dalam parameter konstruktor Nasabah, dan this.alamat=alamat, yang digunakan utuk mengakses parameter alamat yang dibiaskan.
public void lihatAccount(){ System.out.println("No.Id : "+noid); System.out.println("Nama : "+nama); System.out.println("Alamat : "+alamat); System.out.println("Saldo : "+saldo); } void setoran(double jml){ saldo=saldo+jml; }
-Program disamping merupakan method lihatAccount yang bertipe void dan berakses modifier public sehingga dapat diakses bebas oleh kelas lain -method ini memiliki statemen keluaran dari noi,nama,alamat,dan saldo Program disamping merupakan method setoran yang bertipe void dengan parameter double jml. Memiliki statemen saldo sama dengan saldo awal ditambahkan dengan jml Program disamping merupakan method pengambilan yang bertipe void dengan parameter double jml. Memiliki statemen saldo sama dengan saldo awal dikurangi dengan jml Method main digunakan untuk menampilkan hasil dari program yang ada didalamnya. Dalam method main disini terdapat pemanggilan konstruktor dari nasabah. Karena konstruktor tidak dapat langsung dipanggil seperti method, tapi harus dideklarasikan terlebih dahulu. Dalam program ini mendeklarasikan obyek nasabah1 untuk memenggil konstruktor Nasabah yang tanpa parameter. Kemudian oleh obyek nasabah1 dipanggillah method lihatAccount utnuk menampilkan hasilnya. Program disamping merupakan pemanggilan konstruktor dengan mendeklarasikannya terlebih dahulu dengan obyek nasabah2. Konstruktor yang dipanggil adalah konstruktor yang memiliki parameter (2) kemudian mathod lihatAccount()
public static void main (String args[]){ Nasabah nasabah1=new Nasabah(); System.out.println("Data Nasabah 1"); nasabah1.lihatAccount();
Program disamping adalah mendeklarasikan konstruktor Nasabah yang memiliki dua buah parameter yaitu(3,Pulut) dengan obyek nasabah3. Kemudian method lihatAccount dipanggil untuk menampilkan isi dari parameter konstruktor Nasabah3 Program disamping adalah mendeklarasikan konstruktor Nasabah yang memiliki tiga buah parameter yaitu(4,Agung,200000) dengan obyek nasabah4. Kemudian method lihatAccount dipanggil untuk menampilkan isi dari parameter konstruktor Nasabah4 Program disamping adalah mendeklarasikan konstruktor Nasabah yang memiliki empat buah parameter yaitu(5,Endy,Seturan,200000) dengan obyek nasabah5. Kemudian method lihatAccount dipanggil untuk menampilkan isi dari parameter konstruktor Nasabah5, yang berarti seluruh isi dari lihatAccount akan ditampilkan.
Catatan :
Dalam program ini kita perlu menambahkan konstruktor baru yang memiliki 4 statemen yaitu (int noid,String nm,String alamat,daouble saldo) pada obyek nasabah5 agar dapat menampilkan/mengisi seluruh data pada method lihatAccount()
Praktik 2
String s5=new String(s2); byte bytes[]={'w','o','r','l','d'}; String s3=new String(chars); Potongans2= newString(bytes); Program public class StringConstructorsDemo { public s4=new String(chars,1,3); String static void main(String args[]){
Menciptakan obyek s5 yang mencipatakan menciptakan obyek Penjelasan obyek s2 pada kelas mendeklarasikan menyimpan string(s2)s3 yang memiliki string dan bytes dan bertipe byte yang variabel memiliki nilai dari char bytesargumen dari chars Kelasdisimpan program sebelumnya yang bernama StringCostructorDemo bernilai array dengan akases modfieryang Menciptakan obyek s4 public menyimpan huruf w,o,r,l,d sehingga dapat diakses bebas. memanggil chars Langsung dibuat method main yang dari karakter 1 selanjutnya dipanggil tiga karakter, digunakan tuntuk menampilkan hasil satu tidak terpakai,, program 3 menunjukkan karakter yang langsung menciptakan String kosong berjumlah 3 dengan deklarasi obyek s1 chars dengan tipe data char menyimpan data array huruf h,e,l,l,o
S6 memanggil s2 akan menampilkan byte karakter yang Memanggil string tanpa ada di parameter,sehingga outputnya world tidak ada Memanggil chars pada s2 Menampilkan pemanggilan isi pada masing-masing obyek ,s4,s5 dan s6
Segitiga(){
Segitiga(double alas){ this.alas=alas; } Segitiga(int tinggi){ this.tinggi=tinggi; } Segitiga(double alas,int tinggi){ this.alas=alas; this.tinggi=tinggi;
} public double luas(){ return (0.5*alas*tinggi); } public void lihatData(){ System.out.println("Alas : "+alas); System.out.println("Tinggi : "+tinggi); System.out.println("Luas : "+luas());
} public static void main(String args[]){ Segitiga s1=new Segitiga(10.0); System.out.println("Data Segitiga 1"); s1.lihatData();
}}
Pembahasan :
Konstruktor default dalam program diatas adalah konstruktor yang sebenarnya sudah ada tanpa kita buat, yaitu pada program bagian : Segitiga(){
} Konstruktor yang kedua adalah konstruktor dari alas yang bernilai double : Segitiga(double alas){ this.alas=alas; }
Dengan pemanggilan : public static void main(String args[]){ Segitiga s1=new Segitiga(10.0); System.out.println("Data Segitiga 1"); s1.lihatData();
Yang ketiga adalah konstruktor yang menginisiasi tinggi dengan tipe/nilai integer :
Berikutnya adalah konstruktor yang menginisiasi alas dan tinggi dengan tipe double alas,dan int tinggi untuk sebagai berikut : Segitiga(double alas,int tinggi){ this.alas=alas; this.tinggi=tinggi; } Dengan pemanggilan datanya : Segitiga s3=new Segitiga(10.0,5); System.out.println("Data Segitiga 3");
s3.lihatData();
}}
Untuk parameter (10.0,5) disini berarti sudah langsung menuju pada method luas dengan 10.0 dikalikan dengan 5 dibagi 2.
Kesimpulan
Dalam praktikum ini kita dapat menggunakan konstruktor dalam menciptakan suatu program. Konstruktor digunakan untuk persiapan dalam program untuk menginisialisasi variabel instan. Konstruktor harus dipanggil dengan operator new dan harus meiliki nama yang sama dengan nama kelasnya.
Penjelasan -Terdapat kelas Nasabah yang berakses modifier public, sehingga dapat diakses bebas -Terdapat variabel noid yang bertipe int dengan modifier public -Terdapat variabel jmlNasabah=0 yang bertipe
static dengan modifier public,namun sebenarnya static disini adalah sebuah method, sehingga dapat memanggil instannya sendiri karena bertipe static. Sebenarnya disini dapat menggunakan tipe void,tapi supaya lebih realnya kita menggunakan static -Terdapat variabel nama,alamat,identitas, dan noidentitas yang bertipe String dan berakses private, sehingga hanya dapat diakses didalam kelas tersebut -terakhir terdapat variabel saldo yang bertipe double
Nasabah(){ } Nasabah(int noid,String nm,double saldo) { this.noid=noid; nama=nm; this.saldo=saldo; jmlNasabah=noid; }
Konstruktor Nasabah tanpa parameter Konstruktor ketiga memiliki tiga parameter, yaitu noid bertipe integer, nm bertipe string dan saldo bertipe double. Terdapat statemen this.noid=noid yang digunakan untuk mengakses parameter noid yang dibiaskan. Statemen yang kedua adalah nama=nm yang berarti variabel nama akan disimpan dalam bentuk nm dalam konstruktor Nasabah. Terdapat argumen lagi yaitu jmlNasabah yang disimpan dalam noid Method lihatAccount yang bertipe void dengan akses modifier public sehingga dapat diakses bebas. Method ini digunakan untuk menampilkan hasil dari pemanggilan konstruktor nantinya Program disamping merupakan method setoran yang bertipe void dengan parameter double
public void lihatAccount(){ System.out.println("No.Id : "+noid); System.out.println("Nama : "+nama); System.out.println("Alamat : "+alamat); System.out.println("Saldo : "+saldo); } void setoran(double jml){ saldo=saldo+jml; }
jml. Memiliki statemen saldo sama dengan saldo awal ditambahkan dengan jml
void pengambilan(double jml){ saldo=saldo-jml; }
Program disamping merupakan method pengambilan yang bertipe void dengan parameter double jml. Memiliki statemen saldo sama dengan saldo awal dikurangi dengan jml Method hitung bertipe static double dengan akses public memiliki parameter saldo bertipe double dan setor bertipe double. Memiliki return value saldo dikurangi setor. Untuk menampilkan jmlNasabah yaitu jmlNasabah=0
public static void main (String args[]){ System.out.println("Jumlah Nasabah = "+Nasabah.jmlNasabah); System.out.println("Data Nasabah 1"); Nasabah nasabah1=new Nasabah(Nasabah.jmlNasabah+1); nasabah1.lihatAccount();
Pemanggilan konstruktor pertama dengan obyek nasabah1 Didalamnya terdapat argumen jmlNasabah ditmabah dengan satu saat konstruktor pertama dipanggil Pemanggilan kostruktor kedua dengan obyek nasabah2. Didalmnya terdapat statemen jmlNasabah ditambah dengan satu saat konstruktor kedua dipanggil, dan namaPulut. Pemanggilan kostruktor ketiga dengan obyek nasabah3. Didalmnya terdapat statemen jmlNasabah ditambah dengan satu saat konstruktor kedua dipanggil,nama Agung dan 200000. Menampilkan jmlNasabah dari pemanggilan kostruktor pertama,kedua,dan ketiga,
Memanggil method hitung dengan parameter perhitungan (20000-1000) sehingga perhitungan menjadi 20000 dikurangi 1000 sama dengan 19000.
Praktik 2
Potongan Program
public class MathDemo { public static void main(String args[]){
Penjelasan Kelas bernama MathDemo kemudian terdapat method main yang didalamnya untuk menampilkan program Disini terdapat method dari kelas math, yaitu abs() yang digunakan untuk mengirim nilai mutlak /absolut dari angka berbagai tipe. Sehingga nilai dari abs(-5) adalah 5 Disini terdapat method dari kelas math, yaitu abs() yang digunakan untuk mengirim nilai mutlak /absolut dari angka berbagai tipe. Sehingga nilai dari abs(5) adalah 5 Disini terdapat method dari kelas math, yaitu random() yang digunakan untuk membangkitkan bilangan acak foatong point antara 00 hingga 1.0 Method max pada kelas math digunakan untuk mencari nilai maksimum dari beberapa bilangan yang disebutkan dalam parameter Method min pada kelas math digunakan untuk mencari nilai minimum dari beberapa bilangan yang disebutkan
dalam parameter
System.out.println("ceiling of 3.5 : "+Math.ceil(-3.5));
Method ceil() pada kelas math digunakan untuk mengirim ceiling atau bilangan utuh terkecil yang lebih besar atau sama dengan parameter yang disebutkan Method floor(a) dalam kelas math digunakan untuk mengirim bilangan utuh terbesar yang kurang atau sama dengan a(yang terdapat pada parameter) Method exp(a) dalam kelas math digunakan untuk mengirim E dipangkatkan dengan a Method log(a) pada kelas math digunakan untuk mengirim logaritma alami dari angka parameter a Method pow(a,b) dalam kelas math digunakan untuk mengirim hasil dari pangkat ,a dipangkatkan dengan b Method round(a) digunakan untuk membulatkan angka float dan double menjadi bilangan bulat terdekamudian mengirim t ,hasil metode bertipe int atau long. Kedua method round() bekerja dengan menambah 0.5 ke angka dan kemudian mengirim bilangn bulat terbesar yang kurang dari satu atau sama dengan bilangan itu Method sqrt(a) digunakan untuk mengirim akar kuadrat dri parameter a
System.out.println("log 10 : "+Math.log(10));
Tambahan Latihan
Program
public class MethodStatic { public static int luaskotak(int p,int l) {
Penjelasan Kelas MethodStatic disini memiliki method luaskotak yang bertipe int
denga return value p*l. Sebelumnya method luas kotak tidak berupa kelas static,karena tidak memiliki kelas static, maka method tersebut tidak dapat ditampilkan.dikerjakan oleh method public static void main,sehingga kita harus menambahkan static pada method luaskotak, yang tadinya public int luaskotak() menjadi public static int luaskotak.
public persegi(){
public void setSisi(int sisi){ this.sisi=sisi; } public static int luas(int sisi){ return (sisi*sisi); }
public static void main(String args[]){ System.out.println("Luas Persegi adalah : "); System.out.println(persegi.luas(50));
} }
Pembahasan : Dalam program ini kita menggunakan method static pada perhitungan luas. Karena kita telah menggunakan method static pada luas, jika kita ingin memanggil luas tersebut kita tidak perlu menciptakan obyek baru untuk pemnggilannya, cukup dengan nama kelasnya dan langsung dipanggil methodnya, seperti potongan program dibawah ini : } public static int luas(int sisi){ return (sisi*sisi); } public static void main(String args[]){ System.out.println("Luas Persegi adalah : "); System.out.println(persegi.luas(50));
} }
*luas langsung dipanggil dengan memberikan argumen sisi pada parameternya sebesar 50
Buat kelas baru untuk melakukan pengujian terhadap pemanggilan atribut phi
public class Lingkaran{ double jejari; public Lingkaran(){ this.jejari=1.0; } public void setJejari(double jejari){ this.jejari=jejari; } public double getJejari(){ return this.jejari; } public static double phi(){ return 3.14;}
{ return (Lingkaran.phi()*jejari*jejari); } public double keliling(){ return (Lingkaran.phi()*(2*this.jejari)); } public static void main(String args[]){ double hasil; Lingkaran bunder1=new Lingkaran(); bunder1.setJejari(100); System.out.println("jejari : " +bunder1.getJejari()); hasil=bunder1.luas(); System.out.println("Luas : "+hasil); System.out.println("Keliling : " +bunder1.keliling());
Lingkaran bunder2=new Lingkaran(); bunder2.setJejari(50); System.out.println("jejari : " +bunder2.getJejari()); hasil=bunder2.luas(); System.out.println("Luas : "+hasil); System.out.println("Keliling : " +bunder2.keliling());
} }
Pembahasan : Dalam program ini hanya menambah method phi() yang digunakan untuk menyimpan nilai dari phi, yaitu 3.14. Method phi() kita deklarasikan static, artinya method phi ini dapat langsung dipanggil tanpa inisiasi terlebih dahulu. Pemanggilan dapat dilakukan dengan cara berikut : public static double phi(){ return 3.14;}
(Lingkaran.phi() . . . .) ini menunjukkan bahwa method phi langsung dipanggil tanpa harus membuat obyek baru untuk memanggilnya, cukup dengan nama kelas dan pemanggilan methodnya saja.
Kesimpulan
Dalam praktikum ini kita dapat menggunakan method static yang dapat digunakan untuk memanggil suatu method secara instan tanpa menciptakan obyeknya terlebih dahulu contohnya akan terlihat jelas nanti pada pewarisan sifat dalam program.