modul 08

20
Modul 07 : Pemrograman C# Page 1 of 20 CSharpModul 08 – Kelas & Objek Indikator: Setelah mempelajari modul 08 ini, mahasiswa dapat: 1. Menjelaskan pengertian kelas serta menjelaskan perbedaan kelas dan objek 2. Mendefinisikan kelas dan mendeklarasikan objek 3. mendefinisikan method dan penggunaannya 4. Mendefinisikan konstruktor 5. Melakukan overload terhadap method dan konstruktor 6. Menggunakan kata kunci private dan public untuk menentukan tingkat akses data dan method Pengertian dan Perbedaan Kelas dan Objek Kelas dalam pemrograman C# dapat didefinisikan sebagai suatu cetak biru (blueprint) ataupun kerangka yang mendefinisikan variabel-variabel (data) dan method-method (prosedur atau fungsi) umum dari sebuah objek tertentu. Sebagai contohnya, misalkan didefinisikan kelas manusia. Manusia pastilah mempunyai beberapa data seperti berat dan tinggi badan, warna rambut, dan lain-lain. Manusia juga mempunyai beberapa method (prosedur atau fungsi) umum misalnya berjalan, duduk, berbicara, dan lain-lain. Dari kelas manusia, dapat dideklarasikan beberapa objek seperti misalnya Tono, Shinta, dan lain-lain. Tiap objek yang dideklarasikan mempunyai data berupa berat dan tinggi badan, warna rambut, dan lain-lain, namum nilai dari data tersebut berlainan. Misalnya Tono beratnya 70 kg, sedangkan Shinta 48 kg. Cara Mendefinisikan Kelas Kelas didefinisikan menuruti kerangka berikut: class ClassName { tipe data1; tipe data2; ... tipe method1(parameter) { //kode untuk method1 } tipe method2(parameter) { //kode untuk method2

Upload: robin-layarso

Post on 12-Dec-2015

215 views

Category:

Documents


1 download

DESCRIPTION

-

TRANSCRIPT

Page 1: Modul 08

Modul 07 : Pemrograman C# Page 1 of 13

CSharpModul 08 – Kelas & Objek

Indikator:

Setelah mempelajari modul 08 ini, mahasiswa dapat:

1. Menjelaskan pengertian kelas serta menjelaskan perbedaan kelas dan objek2. Mendefinisikan kelas dan mendeklarasikan objek3. mendefinisikan method dan penggunaannya4. Mendefinisikan konstruktor5. Melakukan overload terhadap method dan konstruktor6. Menggunakan kata kunci private dan public untuk menentukan tingkat akses data dan

method

Pengertian dan Perbedaan Kelas dan ObjekKelas dalam pemrograman C# dapat didefinisikan sebagai suatu cetak biru (blueprint)

ataupun kerangka yang mendefinisikan variabel-variabel (data) dan method-method (prosedur atau fungsi) umum dari sebuah objek tertentu.

Sebagai contohnya, misalkan didefinisikan kelas manusia. Manusia pastilah mempunyai beberapa data seperti berat dan tinggi badan, warna rambut, dan lain-lain. Manusia juga mempunyai beberapa method (prosedur atau fungsi) umum misalnya berjalan, duduk, berbicara, dan lain-lain.

Dari kelas manusia, dapat dideklarasikan beberapa objek seperti misalnya Tono, Shinta, dan lain-lain. Tiap objek yang dideklarasikan mempunyai data berupa berat dan tinggi badan, warna rambut, dan lain-lain, namum nilai dari data tersebut berlainan. Misalnya Tono beratnya 70 kg, sedangkan Shinta 48 kg.

Cara Mendefinisikan KelasKelas didefinisikan menuruti kerangka berikut:class ClassName { tipe data1; tipe data2; ...

tipe method1(parameter) { //kode untuk method1 } tipe method2(parameter) { //kode untuk method2 } ...}

Sebuah kelas terdiri dari dua jenis informasi, yaitu atribut dan behavior. Keduanya disebut anggota-anggota kelas (class member).

Atribut dalam suatu kelas adalah suatu data yang membedakan suatu objek dengan yang lain. Dalam suatu kelas, atribut didefinisikan sebagai suatu variabel yang disebut instance variable atau dapat pula disebut object variable.

Page 2: Modul 08

Modul 07 : Pemrograman C# Page 2 of 13

Behavior (kelakuan) mengacu kepada sesuatu yang dapat dilakukan oleh objek terhadap dirinya ataupun terhadap objek lain. Behavior digunakan untuk mengubah atribut objek, menerima informasi dari objek lain, dan mengirimkan pesan ke objek lain agar melaksanakan suatu tugas. Behavior dalam suatu kelas diimplementasikan menggunakan method.

Method merupakan sekumpulan pernyataan dalam suatu kelas, yang melaksanakan suatu tugas. Method dapat dibandingkan dengan suatu prosedur atau fungsi dalam pemrograman lain.

Contoh Kelas SederhanaMisalkan hendak dibuat program untuk menghitung volume dua buah balok. Hal yang

dapat kita lakukan adalah mendefinisikan sebuah kelas balok yang mempunyai data berupa panjang, lebar, tinggi serta method menampilkan volume. Maka kelas Balok didefinisikan sebagai berikut:

01| public class Balok {

02| // atribut-atribut

03| public double panjang;

04| public double lebar;

05| public double tinggi;

06|

07| //behavior

08| public void CetakVolume() {

09| Console.WriteLine("Volume = "+(panjang*lebar*tinggi));

10| }

11| }

Dalam kelas Balok di atas, method cetakVolume() mempunyai tipe void yang berarti “kosong”. Dalam hal ini, artinya method tersebut tidak mengembalikan suatu nilai.

Listing di atas belum bisa dijalankan karena kelas Balok belum mempunyai method Main. Ada dua cara untuk menjalankannya, yaitu (1) menambahkan method Main ke kelas Balok, atau (2) membuat kelas lain yang mempunyai method Main. Kita akan menggunakan cara ke dua.

Kita hendak membuat kelas baru yang mempunyai method Main, yang menggunakan kelas Balok. Dalam kelas baru ini, kita akan mendeklarasikan objek dari kelas Balok.

Cara Mendeklarasikan ObjekUntuk mendeklarasikan objek, kita menciptakan suatu variabel yang mempunyai tipe

berupa suatu kelas, kemudian menciptakan instance dari kelas dengan menggunakan perintah new. Kerangka untuk mendeklarasikan objek adalah:

tipekelas namavariabel;namavariabel = new tipekelas(parameter);

atautipekelas namavariabel = new tipekelas(parameter);

Page 3: Modul 08

Modul 07 : Pemrograman C# Page 3 of 13

Contoh Mendeklarasikan ObjekSebagai contoh, kita akan menggunakan class Balok yang dibuat sebelumnya.

01| public class ProgramHitungVolumeBalok {

02| public static void Main(string[] args) {

03| Balok balok1 = new Balok(); //mendeklarasikan objek balok1

04| balok1.panjang = 5;

05| balok1.lebar = 4;

06| balok1.tinggi = 3;

07|

08| balok1.CetakVolume();

09| }

10| }

Cara Mendefinisikan MethodBentuk umum penulisan method adalahtipe namaMethod(parameter) { //kode-kode untuk method diketik di sini}

Tipe method dibagi dua jenis, yaitu jenis void dan non-void. Void merupakan tipe kosong, yang berarti method tidak mengembalikan nilai. Dalam hal ini, method void dapat diasosiasikan dengan prosedure dalam bahasa Pascal (Delphi). Sedangkan yang non-void, method mengembalikan nilai sesuai dengan tipe yang didefinisikan untuk method. Dalam hal ini, method non-void dapat diasosiasikan dengan fungsi dalam bahasa Pascal.

Apabila method berjenis non-void, maka dalam method harus ada statement return yang diikuti nilai yang dikembalikan. Nilai dapat berupa konstanta maupun variabel.

Contoh Mendefinisikan MethodContoh method void dapat dilihat pada contoh yang sebelumnya. Untuk contoh method

non-void, maka kita rombak ulang kelas Balok menjadi berikut ini:01| public class Balok {

02| public double panjang;

03| public double lebar;

04| public double tinggi;

05|

06| public double HitungVolume() {

07| return panjang*lebar*tinggi;

08| }

09|

10| public void CetakVolume() {

11| Console.WriteLine("Volume = " + hitungVolume());

12| }

13| }

Page 4: Modul 08

Modul 07 : Pemrograman C# Page 4 of 13

Kemudian program menghitung volume balok juga dirombak menjadi:01| public class ProgramHitungVolumeBalok {

02| public static void Main(string[] args) {

03| Balok balok1 = new Balok();

04| balok1.panjang = 5;

05| balok1.lebar = 4;

06| balok1.tinggi = 3;

07|

08| balok1.CetakVolume();

09|

10| Balok balok2 = new Balok();

11| balok2.panjang = 10;

12| balok2.lebar = 20;

13| balok2.tinggi = 30;

14|

15| Console.WriteLine("Volume balok ke-2 adalah "+balok2.HitungVolume());

16| }

17| }

Pembuatan Method BerparameterMethod berparameter bersifat dinamis dan general, artinya method tersebut dapat

mempunyai kelakuan (behavior) lebih bervariasi ataupun dapat mengembalikan nilai yang berbeda-beda sesuai dengan parameter yang diberikan.

Sebagai contohnya, kita merombak kelas Balok sebagai berikut:01| public class Balok {

02| public double panjang;

03| public double lebar;

04| public double tinggi;

05|

06| public double HitungVolume() {

07| return panjang*lebar*tinggi;

08| }

09| public void SetUkuran(double p, double l, double t) {

10| panjang = p;

11| lebar = l;

12| tinggi = t;

13| }

14| public void CetakVolume() {

15| Console.WriteLine("Volume = " + hitungVolume());

16| }

17| }

Page 5: Modul 08

Modul 07 : Pemrograman C# Page 5 of 13

Dalam hal ini, kita membuat method SetUkuran yang mempunyai 3 parameter bertipe double. Kegunaan method ini adalah untuk menginputkan ukuran Balok dengan lebih cepat, yaitu hanya menggunakan satu statement (bandingkan dengan cara sebelumnya).

Untuk menggunakannya, kita rombak program hitung volume:01| public class ProgramHitungVolumeBalok {

02| public static void Main(string[] args) {

03| Balok balok1 = new Balok();

04| balok1.panjang = 5;

05| balok1.lebar = 4;

06| balok1.tinggi = 3;

07|

08| balok1.CetakVolume();

09|

10| Balok balok2 = new Balok();

11| balok2.SetUkuran(10,20,30);

12|

13| Console.WriteLine("Volume balok ke-2 adalah "+balok2.hitungVolume());

14| }

15| }

Tampilannya adalah:Volume = 60.0Volume balok ke-2 adalah 6000.0

Pengertian Constructor dan PembuatannyaConstructor adalah suatu method khusus yang didefinisikan dalam kelas, dan akan

dipanggil secara otomatis setiap adanya instansiasi objek. Kegunaannya adalah untuk memberikan nilai-nilai awal terhadap atribut-atribut dalam kelas bersangkutan.

Apabila constructor tidak dibuat, maka C# akan membuatkannya untuk kita, yang disebut dengan default constructor, yang memberikan nilai nol untuk semua data. Apabila kita sudah membuat suatu constructor, maka default constructor tidak akan diproses lagi.

Constructor mirip dengan method, namun terdapat perbedaan yang mendasar. Ciri-ciri constructor adalah: (1) constructor tidak mempunyai tipe. Jadi bukan void maupun non-void. Kemudian (2) nama constructor harus sama dengan nama class.

Kerangka constructor adalah:namakelas(parameter) { //kode-kode untuk konstruktor}

Contoh ConstructorSebagai contoh, kita akan merombak kelas Balok dengan membuat konstruktor untuknya

yang akan memberikan nilai awal berupa panjang = 1, lebar = 2, dan tinggi = 3.

Page 6: Modul 08

Modul 07 : Pemrograman C# Page 6 of 13

01| public class Balok {

02| public double panjang;

03| public double lebar;

04| public double tinggi;

05| public Balok() {

06| panjang = 1;

07| lebar = 2;

08| tinggi = 3;

09| }

10| public double HitungVolume() {

11| return panjang*lebar*tinggi;

12| }

13| public void SetUkuran(double p, double l, double t) {

14| panjang = p;

15| lebar = l;

16| tinggi = t;

17| }

18| public void CetakVolume() {

19| Console.WriteLine("Volume = " + hitungVolume());

20| }

21| }

Kemudian untuk menguji konstruktor yang kita buat, program hitung Volume dirombak menjadi seperti berikut:

01| public class ProgramHitungVolumeBalok {

02| public static void Main(string[] args) {

03| Balok balok1 = new Balok();

04| balok1.CetakVolume(); // balok1 belum diberi ukuran

05|

06| Balok balok2 = new Balok();

07| balok2.SetUkuran(10,20,30);

08| Console.WriteLine("Volume balok ke-2 adalah "+balok2.HitungVolume());

09| }

10| }

Tampilannya adalah:Volume = 6.0Volume balok ke-2 adalah 6000.0

Page 7: Modul 08

Modul 07 : Pemrograman C# Page 7 of 13

Contoh lain konstruktor, kita membuat konstruktor yang mengijinkan user langsung memberikan ukuran Balok saat menginstansiasi kelas Balok.

01| public class Balok {

02| public double panjang;

03| public double lebar;

04| public double tinggi;

05|

06| public Balok(double p, double l, double t) {

07| panjang = p;

08| lebar = l;

09| tinggi = t;

10| }

11| public double HitungVolume() {

12| return panjang*lebar*tinggi;

13| }

14| public void CetakVolume() {

15| Console.WriteLine("Volume = " + hitungVolume());

16| }

17| }

Sedangkan programnya kita rombak menjadi:01| public class ProgramHitungVolumeBalok {

02| public static void Main(string[] args) {

03| Balok balok1 = new Balok(2,3,4);

04| balok1.CetakVolume();

05|

06| Balok balok2 = new Balok(10,20,30);

07| Console.WriteLine("Volume balok ke-2 adalah "+balok2.HitungVolume());

08| }

09| }

Melakukan Overload terhadap Method dan ConstructorOverload artinya mendefinisikan lebih dari satu method dengan nama yang sama, namun

berbeda dalam hal parameter. Parameter dapat berbeda dalam hal tipe parameter ataupun jumlah parameter.

Sebagai contoh, kita akan membuat method yang dapat membandingkan suatu balok dengan balok lain. Method isSame akan mengembalikan true jika balok sama, dan false jika balok beda.

Ada beberapa method isSame yang dibuat:(1) Method isSame(Balok balok) yang membandingkan 2 balok dari segi semua ukuran(2) Method isSame(double p, double l, double t) yang membandingkan balok dengan

ukuran yang diberikan dari parameter

Page 8: Modul 08

Modul 07 : Pemrograman C# Page 8 of 13

01| public class Balok

02| {

03| public double panjang;

04| public double lebar;

05| public double tinggi;

06|

07| public Balok(double p, double l, double t) {

08| panjang = p; lebar = l; tinggi = t;

09| }

10| public bool isSame(Balok balok) {

11| bool hasil = (this.panjang == balok.panjang);

12| hasil = hasil & (this.lebar == balok.lebar);

13| hasil = hasil & (this.tinggi == balok.tinggi);

14| return hasil;

15| }

16| public bool isSame(double p, double l, double t) {

17| bool hasil = (this.panjang == p);

18| hasil = hasil & (this.lebar == l);

19| hasil = hasil & (this.tinggi == t);

20| return hasil;

21| }

22| public double HitungVolume() {

23| return panjang*lebar*tinggi;

24| }

25| public void CetakVolume() {

26| Console.WriteLine("Volume = "+ HitungVolume());

27| }

28| }

Sedangkan untuk menguji kelas balok ini, kita membuat program baru.01| public class ProgramHitungVolumeBalok {

02| public static void Main(string[] args) {

03| Balok balok1 = new Balok(2,3,4);

04| Balok balok2 = new Balok(2,3,4);

05| if (balok1.isSame(balok2)) {

06| Console.WriteLine("Balok1 ukurannya sama dengan balok2");

07| } else {

08| Console.WriteLine("Balok2 ukurannya berbeda dengan balok2");

09| }

10| if (balok1.isSame(2,3,2)) {

11| Console.WriteLine("Balok1 berukuran 2x3x2");

12| } else {

13| Console.WriteLine("Balok1 bukan berukuran 2x3x2");

14| }

Page 9: Modul 08

Modul 07 : Pemrograman C# Page 9 of 13

15| }

16| }

Tampilan dari program di atas adalah:Balok1 ukurannya sama dengan balok2Balok1 bukan berukuran 2x3x2

Kita juga dapat mengoverload constructor sehingga kelas Balok memiliki 2 constructor, yaitu (1) Balok() yaitu constructor tak berparameter yang menginisialisasi ukuran balok menjadi berukuran 1x2x3, dan (2) Balok(double p, double l, double t) yaitu constructor yang menginisialisasi ukuran balok menjadi berukuran pxlxt sesuai dengan parameter yang diberikan.

Kelas Balok kita rombak menjadi:01| public class Balok

02| {

03| public double panjang;

04| public double lebar;

05| public double tinggi;

06|

07| public Balok() {

08| panjang = 1; lebar = 2; tinggi = 3;

09| }

10| public Balok(double p, double l, double t) {

11| panjang = p; lebar = l; tinggi = t;

12| }

13| public bool isSame(Balok balok) {

14| bool hasil = (this.panjang == balok.panjang);

15| hasil = hasil & (this.lebar == balok.lebar);

16| hasil = hasil & (this.tinggi == balok.tinggi);

17| return hasil;

18| }

19| public bool isSame(double p, double l, double t) {

20| bool hasil = (this.panjang == p);

21| hasil = hasil & (this.lebar == l);

22| hasil = hasil & (this.tinggi == t);

23| return hasil;

24| }

25| public double HitungVolume() {

26| return panjang*lebar*tinggi;

27| }

28| public void CetakVolume() {

29| Console.WriteLine("Volume = "+ HitungVolume());

30| }

31| }

Page 10: Modul 08

Modul 07 : Pemrograman C# Page 10 of 13

Untuk menguji kelas Balok yang baru ini, kita buat program baru.01| public class CobaBalok2 {

02| public static void Main(string[] args) {

03| Balok balok1 = new Balok(); //tidak diberikan ukuran

04| Balok balok2 = new Balok(1,2,3);

05| if (balok1.isSame(balok2)) {

06| Console.WriteLine("Balok1 dan Balok2 berukuran sama");

07| } else {

08| Console.WriteLine("Balok1 dan Balok2 ukurannya tidak sama");

09| }

10| }

11| }

Jelas saja tampilannya adalahBalok1 dan Balok2 berukuran sama

Kata Kunci Private dan PublicUntuk menentukan tingkat akses suatu data maupun method, kita dapat menggunakan

kata kunci private, public, atau protected. Mengenai protected akan kita pelajari di modul berikutnya saat mempelajari tentang penurunan kelas.

Kata kunci private berarti data atau method tersebut hanya dapat diakses oleh kelas itu sendiri. Kata kunci public berarti data atau method dapat diakses dari bagian luar kelas.

Penggunaan kata kunci tersebut adalah dengan menambahkan kata kunci di depan tipe data atau tipe method yang ingin diberikan tingkat akses. Apabila suatu data atau method tidak diberikan tingkat akses, maka secara default C# akan memberikan tingkat akses private pada data atau method tersebut.

Dalam pemrograman C#, biasanya data (atribut) diberikan tingkat akses private. Hal ini bertujuan agar data yang diberikan benar-benar sesuai dengan keinginan dari programmer. Dalam hal ini, karena data bersifat private, maka perlu suatu method (bersifat public) yang bertujuan mengakses data (set dan get).

Sebagai contohnya, kita rombak kelas Balok. Data panjang, lebar, dan tinggi dalam kelas Balok kita beri tingkat akses private, sehingga kita perlu mendefinisikan method set dan get untuk masing-masing data tersebut. (Agar kode tidak panjang, maka method-method lain tidak dituliskan di sini)

01| public class Balok {

02| double panjang; //bersifat private karena tidak ada kata public

03| double lebar;

04| double tinggi;

05|

06| public void setPanjang(double p) {

07| this.panjang = p;

08| }

09| public double getPanjang(){

10| return this.panjang;

11| }

Page 11: Modul 08

Modul 07 : Pemrograman C# Page 11 of 13

12| public void setLebar(double l) {

13| this.lebar = l;

14| }

15| public double getLebar() {

16| return this.lebar;

17| }

18| public void setTinggi(double t) {

19| this.tinggi = t;

20| }

21| public double getTinggi() {

22| return this.tinggi;

23| }

24| ...

25| }

Untuk menguji kelas Balok, kita mencoba membuat program berikut:01| public class CobaBalok3 {

02| public static void Main(string[] args) {

03| Balok balok1 = new Balok(); //ukuran defaultnya 1x2x3

04| //mencoba mengubah ukuran balok

05| balok1.SetPanjang(5); //salah jika balok1.panjang = 5;

06| balok1.SetLebar(4); //salah jika balok1.lebar = 4;

07| balok1.SetTinggi(3); //salah jika balok1.tinggi = 3;

08| Console.WriteLine("Ukuran balok sekarang:");

09| Console.WriteLine("Panjang = "+balok1.GetPanjang());

10| Console.WriteLine("Lebar = "+balok1.GetLebar());

11| Console.WriteLine("Tinggi = "+balok1.GetTinggi());

12| Console.WriteLine("Volumenya = "+balok1.HitungVolume());

13| }

14| }

Tampilannya adalah:Ukuran balok sekarang:Panjang = 5.0Lebar = 4.0Tinggi = 3.0Volumenya = 60.0

Properties dan PenggunaannyaPada contoh kelas Balok dan program sebelumnya, terlihat bahwa saat attribut diubah

dari public menjadi private, maka untuk setiap attribut harus dibuatkan method set dan get agar attribut dapat diakses dari luar kelas. Hal ini sangat merepotkan. Bayangkan bagaimana jika terdapat banyak attribut dan setiap attribut harus dibuatkan method set dan get. Pengguna kelas juga mesti menggunakan perintah set...() dan get...() untuk mengakses attribut sehingga dalam kode pemrograman, hal ini tidak tampak alami.

Page 12: Modul 08

Modul 07 : Pemrograman C# Page 12 of 13

Untuk itulah C# memperkenalkan fitur yang disebut properties. Dengan menggunakan properties, maka semua kelemahan yang diutarakan sebelumnya menjadi terpecahkan.

Sebagai contoh penggunaan properties, dapat dilihat pada kelas Balok dan program di bawah ini.

01| public class Balok

02| {

03| double panjang;

04| double lebar;

05| double tinggi;

06|

07| public double Panjang {

08| get { return panjang; }

09| set { panjang = value; }

10| }

11| public double Lebar {

12| get { return lebar; }

13| set { lebar = value; }

14| }

15| public double Tinggi {

16| get { return tinggi; }

17| set { tinggi = value; }

18| }

19| ....

20| ....

21| }

Implementasinya adalah program di bawah ini.01| Balok balok1 = new Balok(); //ukuran defaultnya 1x2x3

02| //mencoba mengubah ukuran balok

03| balok1.Panjang = 5; //salah jika balok1.panjang = 5;

04| balok1.Lebar = 4; //salah jika balok1.lebar = 4;

05| balok1.Tinggi = 3; //salah jika balok1.tinggi = 3;

06| Console.WriteLine("Ukuran balok sekarang:");

07| Console.WriteLine("Panjang = "+balok1.Panjang);

08| Console.WriteLine("Lebar = "+balok1.Lebar);

09| Console.WriteLine("Tinggi = "+balok1.Tinggi);

10| Console.WriteLine("Volumenya = "+balok1.HitungVolume());

Tampilannya adalahUkuran balok sekarang:Panjang = 5Lebar = 4Tinggi = 3Volumenya = 60Press any key to continue . . .

Page 13: Modul 08

Modul 07 : Pemrograman C# Page 13 of 13

Latihan:1. Tambahkan method HitungLuasAlas() ke dalam kelas Balok, dengan rumus LuasAlas =

panjang x lebar. Kemudian buat program sederhana untuk menghitung LuasAlas balok yang ukuran baloknya diinput oleh user!

2. Tambahkan method HitungLuasPermukaan() ke dalam kelas Balok, dengan rumus LuasPermukaan = 2x(panjang x lebar + lebar x tinggi + tinggi x panjang). Kemudian buat program sederhana untuk menghitung LuasPermukaan balok yang ukuran baloknya diinput oleh user!

3. Ubahlah properties set pada Panjang, Lebar, dan Tinggi dalam kelas Balok agar pengguna kelas tidak dapat memasukkan ukuran balok (panjang, lebar, maupun tinggi) bernilai 0 atau negatif. Jika pemakai kelas memasukkan nol ataupun negatif, maka berikan nilai 1 sebagai defaultnya.Buat pula program untuk menguji kelas tersebut. Minta user inputkan ukuran balok (user mencoba inputkan nol atau negatif) dan program menampilkan ukuran balok (harusnya tertampil ukuran 1 untuk data yang nol atau negatif)!

4. Buat suatu konstruktor baru yang menerima sebuah parameter double yang berarti user hendak menciptakan sebuah kubus (panjang = lebar = tinggi). Kemudian buat program yang meminta user menginput panjang sisi kubus, lalu menampilkan volume kubus tersebut.

5. Buatlah sebuah kelas Pegawai, yang mempunyai data berupa nomor induk pegawai (nomor bilangan bulat positif), nama pegawai, golongan (A s/d D). Kelas Pegawai mempunyai method gajiPokok() yang mengembalikan nilai berupa besarnya gaji pokok (sesuai tabel). Selain itu juga terdapat method tunjangan() yang mengembalikan nilai berupa besarnya tunjangan (sesuai tabel). Buat juga method pajak() yang mengembalikan nilai pajak yaitu 5% dari gaji pokok ditambah tunjangan. Buat juga method gajiTotal() yang mengembalikan nilai berupa gaji total yang dihitung dari gaji pokok + tunjangan – pajak.Kelas tidak mengijinkan akses langsung terhadap data tersebut. Data golongan yang masuk harus divalidasi. Jika golongan tidak diberi nilai ataupun diberikan nilai yang keliru, maka dianggap pegawai bergolongan D.

Golongan Gaji Pokok TunjanganA Rp2.500.000,00 Rp500.000,00B RP1.500.000,00 Rp300.000,00C Rp1.000.000,00 Rp200.000,00D Rp750.000,00 Rp100.000,00

Kemudian buatlah program untuk menginputkan data pegawai dan kemudian menampilkannya.