Bagaimana dengan kasus kita ingin mengirimkan suatu data yang tidak pasti (lebih dari satu data) pada sebuah method, apakah bisa? Jawabannya bisa, untuk melakukan hal tersebut kita gunakan array sebagai parametermnya. Tapi ingat array tersebut harus ditempatkan di argument terakhir. Kita akan coba terlebih dahulu membuat kelas bernama VariableArgumentMethod, pertama tanpa menggunakan variabel argument, ketikkan sintaks di bawah ini:
public class VariableArgumentMethod { public static void main(String[] args) { int[] nilaiNilai = {70, 80, 70, 65}; //menginputkan nilai1, nilai2 sampai dengan nilai4 ucapanSelamat("Pauzan", nilaiNilai); } //deklarasi method static void ucapanSelamat(String nama, int[] nilaiNilai){//nilaiNilai dalam bentuk array, banyak nilai yang digabungkan var total = 0; //inisiasi variabel bernama total dengan nilai awal 0 for(var nilai : nilaiNilai){ //looping, dilakukan mulai dari nilai pertama sampai terakhir total += nilai;//artinya total = total + nilai. jika nilai1: 70 maka total:70, nilai2:80 maka total:70+80=150 } var nilaiAkhir = total / nilaiNilai.length; //nilai total diperoleh dari for loop di atas yg merupakan penjumlahan nilai1 sampai 4 if(nilaiAkhir >= 70){ //jika nilaiNilai >= 70 maka eksekusi blok di bawah ini System.out.println("Selamat " + nama +", Anda Lulus"); }else{ //jika tidak, eksekusi blok yang ada di else System.out.println("Maaf " + nama + ", anda belum lulus"); } } }
Jika kita run maka hasilnya sebagai berikut:
Selamat Pauzan, Anda Lulus
Sekarang kita gunakan variabel argument. Perhatikan bahwa pada parameter yang berupa array jika kita ingin memasukkan nilai-nilai yang diperoleh, harus dituliskan di data arraynya, kemudian baru bisa dipanggil methodnya. Kita dapat langsung memasukkan nilai-nilai yang diperoleh ke methodnya, tanpa mendekalarasikan array terlebih dahulu. Jadi kelebihannya adalah kita dapat memasukkan data-data di dalam array dengan jumlah yang tak terbatas (bebas sesuai keperluan). Supaya lebih jelas, koding di atas ditulis ke bentuk variabel argument seperti pada sintaks di bawah ini:
public class VariableArgumentMethod { public static void main(String[] args) { ucapanSelamat("Pauzan", 70, 80, 70, 65); //sekarang cukup masukkan nilai-nilainya } //deklarasi method static void ucapanSelamat(String nama, int... nilaiNilai){//yang dirubah bagian ini saja, int[] menjadi int... var total = 0; for(var nilai : nilaiNilai){ total += nilai; } var nilaiAkhir = total / nilaiNilai.length; if(nilaiAkhir >= 70){ System.out.println("Selamat " + nama +", Anda Lulus"); }else{ System.out.println("Maaf " + nama + ", anda belum lulus"); } } }
Jika kita run maka hasilnya adalah:
Selamat Pauzan, Anda Lulus
PREVIOUS: Nilai Kembali Method
NEXT: Method Overloading