agregasi, kelas yang memiliki variable dengan tipe kelas yang lain

halo :) haha sudah sampai mana belajar java nya rekan2 sekalian ? hehe selamat dilanjutkan semoga sukses ya :)… kali ini kita akan bahas kasus yang sering kita jumpai yaitu ketika sebuah kelas memiliki variable yang tipenya bukan lagi data primitif tapi berupa kelas lain, sebenarnya kita sudah sering menggunakannya, contohnya adalah String, String adalah sebuah kelas java. contoh lain adalah jika kita membuat kelas dengan nama Mobil dan memiliki variable mesin dan roda, mesin dan roda ini pasti memiliki merk dan nama serta ukuran. jadi, sebuah variable bisa saja memiliki variable juga misalnya nama_roda atau nama_mesin oleh karena itu kita perlu membuat kelas baru dengan nama Mesin dan kelas baru dengan nama Roda. lalu kedua kelas ini dipakai dalam kela Mobil. contoh singkatnya seperti ini
1
2
3
4
class Mesin{
  String nama;
  String teknologi;
}
lalu kita buat kelas Roda
1
2
3
4
5
class Roda{
 String merk;
 int ukuran;
}
    
setelah itu kita buat kelas utama yaitu Mobil
1
2
3
4
5
6
class Mobil{
String namaMobil;
Mesin mesin;
Roda roda;
 }
    

nah seperti itulah contohnya, sekarang kita buat yang sedikit lebih banyak kodenya hehe, pertama kita buat kelas kalkulator yang memiliki method untuk menghitung penjumlahan, pengurangan, perkalian, pembagian.sederhana saja..:)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Kalkulator {
     
    public double penjumlahan(double angka1, double angka2){
        return angka1 + angka2;
    }
     
    public double pengurangan(double angka1, double angka2 ){
        return angka1 - angka2;
    }
     
     public double perkalian(double angka1, double angka2){
        return angka1 * angka2;
    }
      
      public double pembagian(double angka1, double angka2){
        return angka1 / angka2;
    }
     
}
    
setelah kelas kalkulator jadi, kita akan gunakan untuk keperluan kelas lain yaitu kelas Person, nanti niatnya kelas Person ini bisa menghitung tanpa harus membuat method menghitung lagi, yaitu dengan memanfaatkan kelas Kalkulator, berikut ini kodenya
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
import java.util.Scanner;
 
public class Person {
 
    Kalkulator hitung;
    double x, y;
 
    public Person() {
        hitung = new Kalkulator();
    }
 
    public void ambilInput(Scanner s) {
        System.out.print("masukkan bilangan pertama : ");
        x = s.nextDouble();
        System.out.print("masukkan bilangan kedua : ");
        y = s.nextDouble();
    }
 
    public static void main(String[] args) {
        Person objekPerson = new Person();
        Scanner scan = new Scanner(System.in);       
        String yes = "";
        do {
            System.out.println("1. penjumlahan");
            System.out.println("2. pengurangan");
            System.out.println("3. perkalian");
            System.out.println("4. pembagian");
            System.out.println("5. exit");
            System.out.print("silahkan pilih : ");
           int pilihan = scan.nextInt();
            if (pilihan == 5) {
                System.exit(0);
                 
            } else {
                switch (pilihan) {
                    case 1:
                        objekPerson.ambilInput(scan);
                        System.out.println("hasilnya : " + objekPerson.hitung.penjumlahan(objekPerson.x, objekPerson.y));
                        break;
                    case 2:
                        objekPerson.ambilInput(scan);
                        System.out.println("hasilnya : " + objekPerson.hitung.pengurangan(objekPerson.x, objekPerson.y));
                        break;
                    case 3:
                        objekPerson.ambilInput(scan);
                        System.out.println("hasilnya : " + objekPerson.hitung.perkalian(objekPerson.x, objekPerson.y));
                        break;
                    case 4:
                        objekPerson.ambilInput(scan);
                        System.out.println("hasilnya : " + objekPerson.hitung.pembagian(objekPerson.x, objekPerson.y));
                        break;
                }
            }
            System.out.println("ulangi ? (y/n) : ");
            yes = scan.next();
            for (int i = 0; i < 5; i++) {
                System.out.println("");
            }
 
        } while (!yes.equals("n"));
 
 
    }
}