Saturday, November 25, 2017

Kelas dan Objek Dalam Java 4: Metode Helper Untuk Konstruktor


Metode helper (pembantu) ini bisa dipanggil dari konstruktor kelas. Pada kasus ini, metode helper yang dibuat, usia(), dipanggil pada konstruktor default (tanpa argumen). Metode helper ini juga dipanggil dari metode publik usiaKaryawan(int) sehinga bila nilai usia yang dimasukkan bernilai negatif, maka nilainya ditetapkan menjadi 0.

========================================================================


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package tugasPBO;
import java.io.*;

public class Karyawan {
 String nama;
 int usia;
 String jabatan;
 double gaji;

 // Ini adalah konstruktor tanpa argumen dari kelas Karyawan
 public Karyawan() {
  this.nama = "Rismon";
  this.jabatan = "Dosen Biasa";
  usia(0);
 }
 
 /* Ini adalah konstruktor penyalin (copy constructor),
  * ia menyalin nilai-nilai dari satu objek ke objek lain
  * (objek yang memanggil konstruktor ini).
  */
    Karyawan(Karyawan salin){ 
  nama = salin.nama;
  jabatan = salin.jabatan;
    }
  
    //Metode helper ini bisa dipanggil dari konstruktor.
     void usia(int x) {
      usia = x;
     }
 
 // Ini adalah konstruktor satu argumen dari kelas Karyawan
 public Karyawan(String nama) {
  this.nama = nama;
 }
 
 // Ini adalah konstruktor dua argumen dari kelas Karyawan
 public Karyawan(String nama, double gaji) {
  this.nama = nama;
  this.gaji = gaji;
 }

 // Menugaskan usia karyawan pada variabel usia
 public void usiaKaryawan(int usiaKarya) {
       if (usiaKarya<0) {
           usia(0);
       } 
       else { 
           usia(usiaKarya);
       }
    }

 /* Menugaskan jabatan kepada variabel jabatan*/
 public void jabatanKaryawan(String jabatanKarya) {
  jabatan = jabatanKarya;
 }

 /* Menugaskan gaji kepada variabel gaji*/
 public void gajiKaryawan(double gajiKarya) {
  gaji = gajiKarya;
 }

 /* Menampilkan identitas karyawan */
 public void tampilKaryawan() {
  System.out.println("Nama:"+ nama);
  System.out.println("Usia:" + usia);
  System.out.println("Jabatan:" + jabatan);
  System.out.println("Gaji:" + gaji);
 }
}

=======================================================================


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package tugasPBO;
import java.io.*;

public class UjiKaryawan {
 public static void main(String args[]) {
  //Menciptakan satu objek menggunakan konstruktor tanpa argumen
  Karyawan karya1 = new Karyawan();
  System.out.println("Nilai-nilai data pada objek karya1: ");
  karya1.tampilKaryawan();
  
  //Menguji metode helper pada konstruktor tanpa argumen
  //dengan memberikan nilai minus pada usia
  karya1.usiaKaryawan(-10);
  System.out.println("\n\n");
  System.out.println("Nilai-nilai data pada objek karya1 sekarang: ");
  karya1.tampilKaryawan();
  
  //Menguji keberadaan konstruktor penyalin (copy constructor)
  Karyawan karya1_salin = new Karyawan(karya1);
  System.out.println("\n\n");
  System.out.println("Nilai-nilai data pada objek karya1_salin: ");
  karya1_salin.tampilKaryawan();
  
  /* Menciptakan satu objek menggunakan konstruktor satu argumen*/
  Karyawan karya2 = new Karyawan("Hamzan");
  System.out.println("\n\n");
  System.out.println("Nilai-nilai data pada objek karya2: ");
  karya2.tampilKaryawan();
  
  /* Menciptakan satu objek menggunakan konstruktor dua argumen*/
  Karyawan karya3 = new Karyawan("Robert", 1000000);
  System.out.println("\n\n");
  System.out.println("Nilai-nilai data pada objek karya3: ");
  karya3.tampilKaryawan();
  
  // Memanggil metode-metode dari objek karya1
  System.out.println("\n\n");
  System.out.println("Nilai-nilai data pada objek karya1 sekarang: ");
  karya1.usiaKaryawan(26);
  karya1.gajiKaryawan(1000000);
  karya1.tampilKaryawan();

  // Memanggil metode-metode dari objek karya2
  System.out.println("\n\n");
  System.out.println("Nilai-nilai data pada objek karya2 sekarang: ");
  karya2.usiaKaryawan(21);
  karya2.jabatanKaryawan("Insinyur Informatika");
  karya2.gajiKaryawan(500000);
  karya2.tampilKaryawan();
  
  // Memanggil metode-metode dari objek karya3
  System.out.println("\n\n");
  System.out.println("Nilai-nilai data pada objek karya3 sekarang: ");
  karya3.usiaKaryawan(21);
  karya3.jabatanKaryawan("Insinyur Senior");
  karya3.tampilKaryawan();
 }
}

========================================================================

KELUARAN PROGRAM:

Nilai-nilai data pada objek karya1:
Nama:Rismon
Usia:0
Jabatan:Dosen Biasa
Gaji:0.0

Nilai-nilai data pada objek karya1 sekarang:
Nama:Rismon
Usia:0
Jabatan:Dosen Biasa
Gaji:0.0

Nilai-nilai data pada objek karya1_salin:
Nama:Rismon
Usia:0
Jabatan:Dosen Biasa
Gaji:0.0

Nilai-nilai data pada objek karya2:
Nama:Hamzan
Usia:0
Jabatan:null
Gaji:0.0

Nilai-nilai data pada objek karya3:
Nama:Robert
Usia:0
Jabatan:null
Gaji:1000000.0

Nilai-nilai data pada objek karya1 sekarang:
Nama:Rismon
Usia:26
Jabatan:Dosen Biasa
Gaji:1000000.0

Nilai-nilai data pada objek karya2 sekarang:
Nama:Hamzan
Usia:21
Jabatan:Insinyur Informatika
Gaji:500000.0

Nilai-nilai data pada objek karya3 sekarang:
Nama:Robert
Usia:21
Jabatan:Insinyur Senior
Gaji:1000000.0


========================================================================

PERHATIAN: Meskipun usia karyawan diberikan nilai -10, namun nilai data usia dari objek karya1 menjadi tetap 0. Hal ini karena ambang-batas yang diberikan pada metode publik usiaKaryawan(int) dengan memanfaatkan metode helper.









No comments: