Belajar java array satu dan dua dimensi bagian 4

by

helmy

Selamat Datang di Blog Orang IT. Sudah lama sejak terakhir kali saya posting artikel karena banyaknya tugas dan kesibukan yang menumpuk didunia nyata. Pada postingan kali ini kita akan mencoba mengimplementasi soal array satu dimensi dan dua dimensi kedalam program java
Untuk materi dasar array pada java, silahkan baca di buku / LKS / website lain.. kalau sudah punya gambaran perihal array termasuk mulai indeks ke-0 , menentukan baris dan kolom pada array dua dimensi, menghitung matriks dan sebagainya mari kita asah skill ngoding dengan soal-soal array berikut ini

1. Bentuk java array dasar

package javaapplication8;
public class JavaApplication8 {

    public static void main(String[] args) {
        //deklarasi array tidak langsung
        int [] daftarangka= new int[4];
        daftarangka[0]=1;
        daftarangka[1]=2;
        daftarangka[2]=3;
        daftarangka[3]=4;
   
        String [] namakota= new String [4];
        namakota[0]=”kediri”;
        namakota[1]=”surabaya”;
        namakota[2]=”denpasar”;
        namakota[3]=”depok”;
        // deklarasi array langsung
        String[] namahewan= {“kucing”, “anjing”, “babi” , “ayam”};
        int [] angkaganjil= {1,3,5,7,9};
   
        System.out.println(“indeks ke-2 = ” +daftarangka[2]);
        System.out.println(“Panjang array namahewan= “+ namahewan.length);
    }

}

2. Buat program java yang mula-mula menyimpan data huruf vokal ke dalam array/larik kemudian tampilkan isi array

package javaapplication8;
public class JavaApplication8 {
    public static void main(String[] args) {
        char [] vokal2= new char [5];
        vokal2 [0]=’A’;
        vokal2 [1]=’I’;
        vokal2 [2]=’U’;
        vokal2 [3]=’E’;
        vokal2 [4]=’O’;
   
        for (int i=0 ; i<5;i++){
        System.out.print (vokal2[i]+” “);
        }
        System.out.println();
    }

}

Hasilnya:

menyimpan data huruf vokal

3. Mencari bilangan terbesar dalam array. Buat program untuk menyimpan data berikut kedalam array

10 4 2 5 3 8 9 2 9 5

Source code:

package javaapplication8;
public class JavaApplication8 {
    public static void main(String[] args) {
        int[] data= {10,4,2,5,3,8,9,2,9,5};
        int terbesar= data[0];
   
        for ( int i=0 ; i<10;i++){
            if (data[i]> terbesar)
                terbesar= data[i];
        }
        System.out.println(“Data terbesar= “+terbesar);
    }

}

Hasilnya:

Mencari bilangan terbesar

4. Buat program yang membaca data secara berulang dari keyboard dan meletakkannya kedalam array. Jumlah maksimal data yang bisa dimasukkan kedalam array adalah 10, kemudian tampilkan seluruh data yang dimasukkan tadi

Source code:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {
        double[] data= new double[10];
        int i, jumdata;
        String str;
        char jawab;
        Scanner scan= new Scanner(System.in);
   
        jumdata=0;
        for(i = 0; i<data.length-1; i++){
            System.out.print(“Masukkan bilangan= “);
            data [i]= scan.nextDouble();
            scan.nextLine(); //buang data sisa
       
            //konfirmasi masukkan lagi
            if (i<data.length-2){
                System.out.print(“Y/T= “);
                str= scan.nextLine();
                jawab= str.charAt(0);
                if (jawab==’T’ || jawab== ‘t’){
                    jumdata= i+1;
                    break;
                }
         
            }
        }
        //tampil data
      for (i=0; i<jumdata ; i++)
          System.out.println(data[i]);
    }
}

Hasilnya:

membaca data secara berulang

5. Memperoleh nilai rata-rata dalam larik. Berdasarkan nilai larik no.4 diatas cari rata-ratanya

Source code:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {
     double [] data= new double[10];
     Scanner scan= new Scanner(System.in);
 
     int jumdata=0;
     for (int i = 0 ; i < data.length-1;i++){
         System.out.print(“Masukkan bilangan=”);
         data[i]= scan.nextDouble();
         scan.nextLine();
     
         if (i<data.length-2){
             System.out.print(“Masukkan data lagi Y/T? = “);
             String opsi= scan.nextLine();
             char jawab= opsi.charAt(0);
         
             if (jawab== ‘T’ || jawab==’t’){
                 jumdata= i+1;
                 break;
             }
         }
     }
         double jumtotal=0;
         for (int i=0 ; i<jumdata; i++)
             jumtotal= jumtotal+data[i];
         
                  double rata2= jumtotal/jumdata;
             System.out.println(“Jumlahtotal= “+rata2);
    }

}

Hasilnya:

nilai rata-rata dalam larik

6. Buat program untuk menampilkan nama bulan berdasarkan kode bulan , misal 1 berarti januari , 2 berarti februari dan seterusnya. Gunakan array untuk menyimpan nama bulan

Source code:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {

        String [] nmbulan= {“januari”, “februari”, “maret”, “april”, “mei”, “juni” , “juli”,
            “agustus”, “september”, “oktober”, “november”, “desember”};
        Scanner scan= new Scanner(System.in);
        System.out.print(“Masukkan kode bulan 1-2 = “);
        int kdbulan = scan.nextInt();
        if (kdbulan >=1 && kdbulan <=12){
        System.out.println(“Nama bulan = “+ nmbulan[kdbulan-1]);
        } else{
        System.out.print(“Hanya ada 12 bulan saja”);   
    }
     
    }
 
}

Hasilnya:

nama bulan berdasarkan kode bulan

7. Menampilkan permutasi tiga orang. Buat program yang menampilkan permutasi dari tiga nama orang

Source code:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {
        String [] nama= {“Helmy”, “Idam”, “Dimas”};
   
        int i, j, k;
   
        for (i=0; i<=2; i++){
            for (j=0; j<=2; j++)
                if (i!=j)
                    for (k=0; k<=2;k++)
                        if (k!=i && k!=j)
                            System.out.println(nama[i]+” “+nama[j]+” “+nama[k]);
        }
   
    }

}

Bisa juga lho digabung menjadi satu:

if (k!=i && k!=j && i!=j && i!=k && j!=i && j!=k)

Hasilnya:

permutasi tiga orang

8. Menjumlahkan dua array, buat contoh programnya

Source code:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {
        int[] larik1= {10, 7 , 8 , 9, 5 , 7, 5};
        int[] larik2= {20, 8 , 1 , 8, 9 , 9, 4};
        int[] larik3= new int [8];
   
        for (int i=0 ; i< larik1.length; i++)
            larik3[i]= larik1[i]+larik2[i];
   
        for (int i=0 ; i<larik1.length;i++)
        System.out.print(larik3[i]+” “);
   
    }

}

Hasilnya cek sendiri

9. Memperoleh interseksi dua buah array. Buat program yang mengambil interseksi dari dua buah larik. Interseksi adalah element yang terdapat pada dua array tersebut

Source code:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {
        int[] larik1= {10, 7 , 8 , 9, 5 , 7, 5};
        int[] larik2= {20, 8 , 1 , 8, 9 , 9, 4};
        int[] larik3= new int [8];
   
        int juminterseksi=0;
        for (int i=0; i<=5 ; i++){
            int cari = larik1[i];
        for (int j=0; j<=5 ; j++)
            if (cari== larik2[j]) {
                larik3[juminterseksi]= cari;
                juminterseksi++;
                break;
            } 
        }
        if (juminterseksi==0)
            System.out.print(“Tidak ada angka yang sama”);
        else
            System.out.println(“Interseksi= “);
            for (int i=0 ; i<juminterseksi;i++)
            System.out.println(larik3[i]);
    }
}

Hasilnya:

10. Menulis elemen array dari belakang.

Itu mudah! berikut source codenya:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {
        int [] data= {3,6,3,8,4,3,2,1};
   
        for(int i=7 ; i>=0; i–)
            System.out.print(data[i]);
        System.out.println();
    }
}

Hasilnya:

Menulis elemen array dari belakang

11. Menukar dua array yang bersebelahan, buat program yang melakukan pertukaran 2 nilai array yang berdekatan

Misal 8 9 4 7 6 1…

Menjadi 9 8 7 4 1 6…

Source code:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {
        int [] data= {1,2,3,4,5,6,7,8};
        for (int i=0 ; i< 7 ; i+=2){
            int tmp= data[i];
            data[i]= data[i+1];
            data[i+1]= tmp;
        }
        for (int i=0; i<8; i++){
            System.out.print(data[i]+” “);
        }
    }
}

Hasilnya cek sendiri

12. Buat program yang menyimpan pasangan data negara dan ibukota kemudian tampilkan nama negara dan ibu kotanya hanya yang berawalan huruf I

Source code:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {
        String [][] negara= new String [5][2];
   
        negara[0][0]=”Indonesia”;
        negara[0][1]=”Jakarta”;
        negara[1][0]=”Philipina”;
        negara[1][1]=”Manila”;
        negara[2][0]=”Austria”;
        negara[2][1]=”Misa”;
        negara[3][0]=”India”;
        negara[3][1]=”New Delhi”;
        negara[4][0]=”Iran”;
        negara[4][1]=”Taheran”;
   
        String nmnegara;
        for (int i=0 ; i<negara.length; i++){
            nmnegara= negara[i][0];
            if (nmnegara.charAt(0)==’I’)
                System.out.println(negara[i][0]+”-“+negara[i][1]);
        }   
    }
}

Bisa juga membuat array dengan cara ini:

String [][] negara= {{“Indonesia”, “jakarta”},
                    {“Philipina”, “manila”},
                    {“Austria”, “wina”},
                    {“India”, “New delhi”},
                    {“Iran”, “Taheran”}};

Hasilnya:

pasangan data negara

13. Menjumlahkan 2 buah matriks

Source code:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {
    int[][] a= {{6,7}, {5,8}};
    int[][] b= {{1,3}, {4,1}};
    int[][] c= new int[2][2];

    for (int i=0; i<a.length; i++)
    for (int j=0; j<b.length; j++)
    c[i][j]= a[i][j]+b[i][j];

    for (int i=0; i<a.length; i++){
    for (int j=0; j<b.length; j++)
    System.out.printf(“%3d”,c[i][j]);
    System.out.println();
    }
    }
}

Hasilnya:

Menjumlahkan 2 buah matriks

14. Buat program untuk memasukkan data kedalam matriks. Semua data berupa jumlah baris dan jumlah kolom serta element matrik dimasukkan dari keyboard kemudian tampilkan hasilnya

Source code:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {
        Scanner scan= new Scanner(System.in);
        System.out.print(“masukkan jumlah baris= “);
        int jumbaris= scan.nextInt();
        System.out.print(“masukkan jumlah kolom= “);
        int jumkolom=scan.nextInt();
   
        int i, j;
        double data[][]= new double[jumbaris][jumkolom];
        for(i=0 ; i< jumbaris ;i++)
        for(j=0 ; j< jumkolom ;j++){
                System.out.printf(“Baris %d, kolom %d:”,i,j);
                data [i][j]= scan.nextDouble();
            }
   
        System.out.println(“Tampil matrik: “);
        for (i=0 ; i<jumbaris ; i++){
        for (j=0; j<jumkolom ; j++)
            System.out.printf (“%10.2g”, data[i][j]);
                    System.out.println();
        }
    }
}

Hasilnya:

memasukkan data kedalam matriks

15. Menghitung selisih array. Buat program untuk memperoleh array yang berisi semua element A yang tidak terdapat pada element B

Source code:

package javaapplication8;
import java.util.Scanner;
    public class JavaApplication8{
      Scanner input = new Scanner(System.in);
       int[] himpunanA= {1,2,3,4,5,6,7,8,9,10};
       int[] himpunanB= {1, 2, 3, 5, 6, 9};
       int[] himpunanC= new int[60];
       public void himpunanSelisih(){
              System.out.print(“Himpunan Selisih A – B : { “);
              for( int i=0;i<=9;i++){
                   boolean adaSama = false;
                   for(int j=0;j<=5;j++){
                     if(himpunanA[i]==himpunanB[j])
                            adaSama=true;
              }
              if(adaSama==false){
                 himpunanC[i]= himpunanA[i];
                 System.out.print(himpunanC[i]+” “);
              }
              }
              System.out.println(“}”);
       }
    public static void main(String[] args) {
  JavaApplication8 bilangan = new JavaApplication8();
              bilangan.himpunanSelisih();
    }
}

16. Buat program yang meminta data dua buah matriks berukuran mxn dimasukkan dari keyboard. Lalu proseslah agar matrik ke tiga berisi perkalian dari kedua matriks tersebut

Source code:

package javaapplication8;
import java.util.Scanner;
import java.util.Arrays;
    public class JavaApplication8{
    public static void main(String[] args) {
 int i, j, k, l, m, n, o, p, q , jumlah=0;
int matriks1[][] = new int [10][10];
int matriks2[][] = new int [10][10];
int hasil[][] = new int [10][10];
Scanner scan= new Scanner(System.in);
System.out.print(“Masukkan baris matrik ke-1 = “);
m= scan.nextInt();
System.out.print(“Masukkan kolom matrik ke-1 = “);
n= scan.nextInt();
System.out.print(“Masukkan baris matrik ke-2 = “);
p= scan.nextInt();
System.out.print(“Masukkan kolom matrik ke-2 = “);
q= scan.nextInt();
if (n!=p) {
System.out.println(“Jumlah kolom tydak sama dgn baris”);
} else {
System.out.print(“Masukkan elemen 1 : “);
for (i=0; i<m ; i++) {
  for (j=0; j< n; j++) {
matriks1[i][j]= scan.nextInt();
}
}
System.out.print(“Masukkan elemen 1 : “);
for (i=0; i<p ; i++) {
  for (j=0; j< q; j++) {
matriks2[i][j]= scan.nextInt();
}
}
for (i=0; i<m ; i++) {
  for (j=0; j< q; j++) {
  for (k=0; k< p; k++) {
jumlah= jumlah+matriks1[i][k] * matriks2[k][j];
}
hasil[i][j]= jumlah;
jumlah=0;
}   }
System.out.println(“Hasil perkalian matrik: “);
for (i=0; i<m ; i++) {
  for (j=0; j< q; j++) {
System.out.print(hasil[i][j]+ “t”);
}
System.out.println();
}  }
}  }

Hasilnya:
meminta data dua buah matriks

17. Kembangkan contoh nomor – 12 agar menampilkan negara dengan ibukota berakhiran a

SOurce code:

package javaapplication8;
import java.util.Scanner;
public class JavaApplication8 {
    public static void main(String[] args) {
        String [][] negara= new String [5][2];
   
        negara[0][0]=”Indonesia”;
        negara[0][1]=”Jakarta”;
        negara[1][0]=”Philipina”;
        negara[1][1]=”Manila”;
        negara[2][0]=”Austrian”;
        negara[2][1]=”Misa”;
        negara[3][0]=”India”;
        negara[3][1]=”New Delhi”;
        negara[4][0]=”Iran”;
        negara[4][1]=”Taheran”;
   
        String nmnegara;
        for (int i=0 ; i<negara.length; i++){
            nmnegara= negara[i][1];
            int searchIndex = negara[i][1].indexOf(“a”);
            if (nmnegara.charAt(searchIndex)==’a’)
                System.out.println(negara[i][0]+”-“+negara[i][1]);
        }   
    }
}

Bisa juga menggunakan

  if (nmnegara.charAt(nmnegara.length()-1)==’a’)

18. Buat program untuk mengkonversikan suatu bilangan kedalam bentuk kata-kata. Contoh 69 akan di konversikan menjadi enam puluh sembilan

Source code:

package javaapplication8;
import java.util.Scanner;
import java.util.Arrays;
    public class JavaApplication8{
    static String[] huruf= {“”,”satu”, “dua”, “tiga”, “empat”, “lima”, “enam”, “tujuh”, “delapan”, “sembilan”, “sepuluh”, “sebelas”};
    public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.print(“Masukkan angka= “);
    System.out.println(new JavaApplication8().angkaToTerbilang(scan.nextLong()));
    }
     public static String angkaToTerbilang(Long angka){
        if(angka<12)
    return huruf[angka.intValue()];
        if(angka>=12 && angka <=19)
    return huruf[angka.intValue() %10]+” belas “;
        if(angka>=20 && angka <=99)
    return angkaToTerbilang(angka/10)+” puluh “+huruf[angka.intValue() % 10];
        if(angka>=100 && angka <=199)
    return “seratus”+angkaToTerbilang(angka%100);
         if(angka>=200 && angka <=999)
    return angkaToTerbilang(angka/100)+” Ratus ” + angkaToTerbilang(angka%100);
         if(angka>=1000 && angka <=1999)
    return “seribu” + angkaToTerbilang(angka%100);
        if(angka>=2000 && angka <=999999)
    return angkaToTerbilang(angka/1000)+” Ribu ” + angkaToTerbilang(angka%1000);
     if(angka>=1000000 && angka <=999999999)
    return angkaToTerbilang(angka/1000000)+” Juta ” + angkaToTerbilang(angka%1000000);
        if(angka>=1000000000 && angka <=999999999999L)
    return angkaToTerbilang(angka/1000000000)+” Milyar ” + angkaToTerbilang(angka0000000);
    return “”;
    }
    } 

Hasilnya:

mengkonversikan suatu bilangan kedalam bentuk kata

19. Mengurutkan data array dari yang terkecil hingga terbesar berdasarkan nomor

Source code:
package javaapplication8;
import java.util.Scanner;
import java.util.Arrays;
    public class JavaApplication8{
    public static void main(String[] args) {
        int[] nomor = {10,6,3,1, 2, 4, 5 , 9 , 8 ,7};
        String[] nama = {“Rian”, “Sita”, “Fanny”,”Erwin”, “Ahmad”, “ridwan”, “desi”, “triana”, “ali”, “yohanes”};
            for(int i=0 ; i< 10 ; i++){
            Arrays.sort(nomor);
            Arrays.sort(nama);
            System.out.println(nomor[i]+” “+nama[i]);
            }
    }
        }

Hasilnya:

Mengurutkan data array

20. Tentukan koefisien persamaan regresi dari pasangan data X dan Y, implementasikan kedalam program java

Source code:

package javaapplication8;
import java.util.Scanner;
import java.util.Arrays;
 public class JavaApplication8 {
double []x = {1,2,3,4,5,6,7,8,9,10};
double []y = {23.4, 26.9, 32.5, 34.9, 40.3, 39.9, 42.9, 47.0, 50.1, 53.2};
    private double b_0, b_1;
    private double r_square;
    private double s_e;
    private double sig_x, sig_y, sig_xy, sig_x_square, sig_y_square;
 
    public void run(){
        for(int i = 0; i<x.length; i++){
            sig_x +=x[i];
            sig_y +=y[i];
            sig_xy +=x[i]*y[i];
            sig_x_square+=Math.pow(x[i], 2);
            sig_y_square+=Math.pow(y[i], 2);
        }
     
        b_0 = ((sig_y*sig_x_square)-(sig_x*sig_xy))/
                ((x.length*(sig_x_square))-(Math.pow(sig_x, 2)));
     
        b_1 = ((x.length*sig_xy)-(sig_x*sig_y))/
                ((x.length*sig_x_square)-Math.pow(sig_x, 2));
     
        r_square = Math.pow(((x.length*sig_xy)-(sig_x*sig_y))/
                Math.sqrt(((double)(x.length*sig_x_square)-Math.pow(sig_x, 2))*
                        (double)((x.length*sig_y_square)-Math.pow(sig_y, 2))),2);
     
        s_e = Math.sqrt((sig_y_square-(b_0*sig_y)-(b_1*sig_xy))/(x.length-2));
    }
 
    public void print(){     
        System.out.println(“Persamaan regresi : Y = “+b_0+” + “+b_1+” Xn”
                + “Koefisien determinasi (R2) = “+r_square+”n”
                + “Standard error (Se) = “+s_e);
     
    }
 
    public static void main(String[]args){
        JavaApplication8 slr = new JavaApplication8();
        slr.run();
        slr.print();
    }
}

Hasilnya:

koefisien persamaan regresi

21. Membaca data sekumpulan nama siswa dan nilai. Sepuluh siswa mengikuti ujian dengan nilai berkisar antara 0-100. Buat program untuk membaca semua data (nama dan nilai ujian)

Hitung nilai rata-rata dan tampilkan siswa yang gagal

Source code:

package javaapplication8;
import java.util.Scanner;
import java.util.Arrays;
class daftarnilai {
    public String nama;
    public int nilai;
}
 public class JavaApplication8 {
    public static void main(String[]args){
        final int jumlah=5;
        Scanner scan= new Scanner(System.in);
        String nama;
        daftarnilai [] data= new daftarnilai[jumlah];
     
        int cacah=0;
        while (cacah<jumlah){
      //bentuk objek berkelas daftar nilai
      data[cacah]= new daftarnilai();
      //baca nama
      System.out.print(“Masukkan nama: “);
      data[cacah].nama= scan.nextLine();
      //baca nilai
      while(true){
      System.out.print(“Masukkan nilai: “);
      data[cacah].nilai= scan.nextInt();
   
      if(data[cacah].nilai>=0 && data[cacah].nilai<=100)
          break; //keluar dari while
        }
      //tambah cacah
      cacah=cacah+1;
      //buang bari tersisa
      scan.nextLine();
        }
      //hitung rata-rata
      double jum=0;
      cacah=0;
      while (cacah<jumlah){
          jum=jum+data[cacah].nilai;
          cacah=cacah+1;
      }
      double rata2=jum/10.0;
      System.out.print(“Hasil rata-rata = “+rata2);
   
      //menampilkan siswa gagal
      System.out.println(“Siswa yang gagal”);
      cacah=0;
      boolean adagagal=false;
      while (cacah<jumlah){
          if(data[cacah].nilai<60){
              adagagal= true;
          System.out.println(data[cacah].nama);
      }
      cacah=cacah+1;
    }
      if(!adagagal)
          System.out.println(“Tida ada gagal”);
 }
}

Penjelasan singkat:

daftarnilai [] data= new daftarnilai[jumlah]

Mendeklarasikan variable data agar merujuk ke array yang berkelas daftarnilai, dimana jumlah element array sama dengan “jumlah”

Karena pernyataan di atas belum menghasilkan objek, maka diperlukan perintah

data[cacah]= new daftarnilai();

Dengen begitu, element dengan indeks berupa cacah akan merujuk pada objek yang di ciptakan melalui new. Setelah pernyataan tersebut, barulah variabel publik bernama nama dan nilai bisa diakses melalui

data[cacah].nama
data[cacah].nilai

Hasilnya:

Hitung nilai rata-rata

22. Buat program untuk mengetahui zodiak berdasarkan tanggal dan bulan

SOurce code:

package javaapplication8;
import java.util.Scanner;
import java.util.Arrays;
class zodiak{
    public String nama;
    public int tanggalawal;
    public int bulanawal;
    public int tanggalakhir;
    public int bulanakhir; 
public zodiak ( String nama, int tanggalawal, int bulanawal, int tanggalakhir,
        int bulanakhir) {
    this.nama= nama;
    this.tanggalawal= tanggalawal;
    this.bulanawal= bulanawal;
    this.tanggalakhir= tanggalakhir;
    this.bulanakhir= bulanakhir; 
        }
}
 public class JavaApplication8 {
    public static void main(String[]args){
        zodiak[] z = new zodiak [12];
        z[0]= new zodiak (“Aries”, 21, 3, 19, 4);
        z[1]= new zodiak (“Taurus”, 20, 4, 20, 5);
        z[2]= new zodiak (“Gemini”, 21, 5 , 20, 6);
        z[3]= new zodiak (“Cancer”, 21, 6, 22, 7);
        z[4]= new zodiak (“Leo”, 23, 7, 22, 8);
        z[5]= new zodiak (“Virgo”, 23,8, 22, 9);
        z[6]= new zodiak (“Libra”, 23,9, 22, 10);
        z[7]= new zodiak (“Scorpio”, 23, 10, 21, 11);
        z[8]= new zodiak (“Sagitarius”, 22, 11, 21, 12);
        z[9]= new zodiak (“Capricon”, 22, 12, 19, 1);
        z[10]= new zodiak (“Aquarius”, 29, 1 , 18, 2);
        z[11]= new zodiak (“Pisces”, 19, 2, 20, 3);
     
        Scanner scan= new Scanner(System.in);
        System.out.print (“Masukkan tanggal lahir 1-31: “);
        int tanggal= scan.nextInt();
        System.out.print(“Masukkan bulan lahir 1-12: “);
        int bulan= scan.nextInt();
     
        for( int i=0 ; i < 12 ; i++)
            if (((tanggal >=z[i].tanggalawal) && (bulan== z[i].bulanawal)) ||
                   (( tanggal <=z[i].tanggalakhir) && (bulan== z[i].bulanakhir))) {
        System.out.println (z[i].nama);
        break;
    }
 }
}

Hasilnya:
mengetahui zodiak

Penjelasan:

Untuk menyederhanakan penulisan program maka kelas zodiak melibatkan konstruktor (sub rutin) yang ditujukan untuk memberi nilai terhadap variable instant dalam kelas sewaktu objek di ciptakan (melalui new)

Sementara fungsi  this.nama= nama; dibaca sebagai milik objek yang merujuk pada variabel instant dalam kelas. Sementara “nama” berupa argumen

zodiak[] z = new zodiak [12]; dipakai untuk menjadikan z sebagai variabel yang merujuk pada array yang berisi 12 elemen berkelas zodiak

z[0]= new zodiak (“Aries”, 21, 3, 19, 4); untuk menciptakan sebuah objek berkelas zodiak yang kemudian dirujuk oleh element berindeks 0

Baca juga: Belajar java while bagian 3

Related Post