Anda di halaman 1dari 20

LAPORAN PRAKTIKUM PEMROGRAMAN BERORIENTASI OBYEK MODUL 5 dan 6

Di susun oleh : Nama : Fadila Fathul Jannah Nim : 103110147

Jurusan : Manajemen Informatika

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

AKAKOM YOGYAKARTA

2 0 11
Laporan Praktikum Modul 5 Pemrograman Berorientsi Obyek Konstruktor

Pembahasan Praktikum Praktik 1

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(){ }

Nasabah(int noid){ this.noid=noid; }

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.

Nasabah(int noid,String nm,double saldo){ this.noid=noid; nama=nm; this.saldo=saldo; }

Nasabah(int noid,String nm,String alamat,double saldo){ this.noid=noid; nama=nm; this.saldo=saldo; this.alamat=alamat; }

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()

void pengambilan(double jml){ saldo=saldo-jml; }

public static void main (String args[]){ Nasabah nasabah1=new Nasabah(); System.out.println("Data Nasabah 1"); nasabah1.lihatAccount();

Nasabah nasabah2= new Nasabah(2); System.out.println("Data Nasabah 2"); nasabah2.lihatAccount();

dipanggil untuk menampilkan hasil dari konstruktor dengan parameter (2)


Nasabah nasabah3 = new Nasabah(3,"Pulut"); System.out.println("Data Nasabah 3"); nasabah3.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.

Nasabah nasabah4 = new Nasabah(4,"Agung",200000); System.out.println("Data Nasabah 4"); nasabah4.lihatAccount();

Nasabah nasabah5 = new Nasabah(5,"Endy","Seturan",2000 00); System.out.println("Data Nasabah 5"); nasabah5.lihatAccount(); } }

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[]){

String s1 = new String(); char chars[]={'h','e','l','l','o'};

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

String s6=s2; System.out.println(s1); System.out.println(s3); System.out.println(s2); System.out.println(s4); System.out.println(s5); System.out.println(s6);}}

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

Tugas dan Pembahasan

Lengkapi kelas Segitiga dengan konstruktor default,alas,dan tinggi

public class Segitiga{ double alas; double tinggi;

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

Segitiga s2=new Segitiga(5); System.out.println("Data Segitiga 2"); s2.lihatData();

Segitiga s3=new Segitiga(10.0,5); System.out.println("Data Segitiga 3"); s3.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 :

Segitiga(int tinggi){ this.tinggi=tinggi; }

Dengan pemanggilan datanya dengan :

Segitiga s2=new Segitiga(5); System.out.println("Data Segitiga 2"); s2.lihatData();

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.

Laporan Praktikum Modul 6 Pemrograman Berorientsi Obyek Static


Pembahasan Praktik 1 Potongan Program
public class Nasabah { public int noid; public static int jmlNasabah=0; private String nama; private String alamat; private String identitas; private String noIdentitas; double saldo;

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 double hitung(double saldo,double setor){ return saldo-setor; }

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,

Nasabah nasabah2= new Nasabah(Nasabah.jmlNasabah+1,"Pulut" ); System.out.println("Data Nasabah 2"); nasabah2.lihatAccount();

Nasabah nasabah3 = new Nasabah(Nasabah.jmlNasabah+1,"Agung ",200000); System.out.println("Data Nasabah 3"); nasabah3.lihatAccount();

System.out.println("Jumlah Nasabah = "+Nasabah.jmlNasabah);

sehingga jumlah nasabah sekarang ada 3


System.out.println("20000-1000 = "+Nasabah.hitung(20000, 1000)); } }

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

System.out.println("absolute value of -5 : "+Math.abs(-5));

System.out.println("absolute value of 5 : "+Math.abs(5));

System.out.println("random number(max is 10): "+Math.random()*10);

System.out.println("max of 3.5 and 1.2 : " +Math.max(3.5,1.2));

System.out.println("min of 3.5 and 1.2 : " +Math.min(3.5,1.2));

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("floor of 3.5 : "+Math.floor(3.5));

System.out.println("e raised to 1 : "+Math.exp(1));

System.out.println("log 10 : "+Math.log(10));

System.out.println("10 raised to 3: "+Math.pow(10,3));

System.out.println("rounded off value of pi : "+Math.round(Math.PI));

System.out.println("square root of 5 = "+Math.sqrt(5));

Tambahan Latihan

Program
public class MethodStatic { public static int luaskotak(int p,int l) {

Penjelasan Kelas MethodStatic disini memiliki method luaskotak yang bertipe int

return p*l; } public static void main(String args[]){ System.out.println(luaskotak(10, 5)); } }

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.

Tugas dan Pembahasan

Method static pada kelas integer

public class persegi{ int sisi;

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

Lengkapi kelas lingkaran dengan atribut static yang phi

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

public double luas(){ return(Lingkaran.phi()*this.jejari*this.jejari); } public static double luas(double jejari)

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

public double luas(){ return(Lingkaran.phi()*this.jejari*this.jejari); }

(Lingkaran.phi() . . . .) ini menunjukkan bahwa method phi langsung dipanggil tanpa harus membuat obyek baru untuk memanggilnya, cukup dengan nama kelas dan pemanggilan methodnya saja.

Soal no 2 dan 3 langsung dijadikan satu agar langsung terlihat outputnya.

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.

Anda mungkin juga menyukai