Array Sebagai Parameter Method
Penggunaan Elemen Array Sebagai Aktual Parameter Variabel nilai bertype
1. public class MP2 { integer 2. public static void main(String[] args) { 3. int nilai=10; 4. int[] listNilai={7,1,5,3}; 5. System.out.println("Sebelum method1 " + nilai); 6. method1(nilai); 7. System.out.println("Setelah method1 " + nilai); 8. System.out.println("=======Contoh Elemen Array Sebagai Parameter Formal======="); 9. System.out.println("Sebelum method1 " + listNilai[3]); 10. method1(listNilai[3]); 11. System.out.println("Setelah method2 " + listNilai[3]); 12. 13. 14. 15. 16. 17. 18.}
} public static void method1(int nilai) { System.out.println("Method1: sebelum diubah :" + nilai); nilai*=2; System.out.println("Method1: setelah diubah :" + nilai); }
Variabel listNilai bertype array of integer, sudah diinisialisasi dengan 4 elemen Variabel nilai sebagai parameter aktual saat memanggil method1. (Mengapa benar) Parameter actual harus bertype sama dengan parameter formal-nya
Saat di-run, bandingkan output yang dihasilkan oleh baris 5,6, dan 7. Apa pengaruhnya baris 15?
Penggunaan Elemen Array Sebagai Aktual Parameter 1. public class MP2 { 2. public static void main(String[] args) { 3. int nilai=10; 4. int[] listNilai={7,1,5,3}; 5. System.out.println("Sebelum method1 " + nilai); 6. method1(nilai); 7. System.out.println("Setelah method1 " + nilai); 8. System.out.println("=======Contoh Elemen Array Sebagai Parameter Formal======="); 9. System.out.println("Sebelum method1 " + listNilai[3]); 10. method1(listNilai[3]); 11. System.out.println("Setelah method2 " + listNilai[3]); 12. 13. 14. 15. 16. 17. 18.}
} public static void method1(int nilai) { System.out.println("Method1: sebelum diubah :" + nilai); nilai*=2; System.out.println("Method1: setelah diubah :" + nilai); }
Variabel listNilai bertype array of integer, sudah diinisialisasi dengan 4 elemen Elemen listNilai index 3 menjadi parameter aktual saat memanggil method1. (Mengapa benar) Parameter actual harus bertype sama dengan parameter formal-nya. Elemen index 3 ( listNilai[3]) bertype integer, sehingga dapat digunakan sebagai parameter actual method1.
Saat di-run, bandingkan output yang dihasilkan oleh baris 9,10, dan 11. Apa pengaruhnya baris 15?
Penggunaan Elemen Array Sebagai Aktual Parameter • Kesimpulan: • Elemen array pada dasarnya seperti variabel atau nilai yang bertype bukan array. • Jadi listNilai[3] adalah bertype integer, bukan array of integer
• Ketika elemen array di-passing-kan ke suatu method, maka passing nya adalah berupa nilai • Perubahan yang ada di dalam method1 tidak mempengaruhi listNilai[3]
Penggunaan Array Sebagai Aktual Parameter 1. public class MP3 { 2. public static void main(String[] args) { 3. int nilai=10; 4. int[] listNilai={7,1,5,3}; 5. System.out.println("=======Contoh Elemen Array Sebagai Parameter Formal======="); 6. System.out.println("Sebelum method1 " + listNilai[3]); 7. method2(listNilai); 8. System.out.println("Setelah method2 " + listNilai[3]); 9. 10. 11. 12. 13. 14. 15.}
} public static void method2(int[] nilai) { System.out.println("Method1: sebelum diubah :" + nilai[3]); nilai[3]*=2; System.out.println("Method1: setelah diubah :" + nilai[3]); }
Saat di-run, bandingkan output yang dihasilkan oleh baris 6,7, dan 8. Apa pengaruhnya baris 12?
Variabel listNilai bertype array of integer, sudah diinisialisasi dengan 4 elemen Variabel listNilai menjadi parameter aktual saat memanggil method2. (Mengapa benar) Parameter actual harus bertype sama dengan parameter formal-nya. listNilai[3] bertype array of integer, sehingga dapat digunakan sebagai parameter actual method2.
Bagaimana scoupe of variabel untuk variabel listNilai? Apakah termasuk global atau local variabel?
Penggunaan Array Sebagai Aktual Parameter • Kesimpulan: • Array menyimpan lebih dari satu nilai. • Perhatikan deklarasi : int [] listNilai; • Saat menjadi parameter actual untuk method, sedangkan method tersebut parameter formalnya bertype array, maka tanda [] tidak dituliskan.
• Ketika type array di-passing-kan ke suatu method, maka passing nya berupa nilai refference-nya • Perubahan yang ada di dalam method2 berpengaruh terhadap variabel listNilai pada method main
Tugas: Soal • Buat sebuah program untuk memasukkan data nama dan nilai sejumlah mahasiswa kemudian menampilkan kembali data tersebut SECARA BERURUTAN DARI NILAI TERTINGGI KE NILAI TERENDAH • Contoh keluaran: No
Nama
Nilai
1
Santo
10
2
Sinta
5
3
Santi
3
Rata-rata
6
Slide berikut ini petunjuk untuk mengerjakan tugas!
Tugas: Isi method yang harus dibuat • Tuliskan kode java dengan isi sebagai berikut: • method: public static void masukkanData(int [] nilai, String [] nama), untuk memasukkan nilai dan nama mahasiswa • method: public static void tampilkanData(int [] nilai, String [] nama), untuk menampilkan nilai dan nama mahasiswa • method: public static void urutkanData(int [] nilai, String [] nama), untuk mengurutkan data berdasarkan nilai • method main yang harus berisi: Lanjut Slide berikutnya
public static void main(String [] args){ String[] nama; int[] nilai; Scanner input=new Scanner(System.in); int jumlah; print("Jumlah data"); jumlah=input.nextInt(); nama=new String[jumlah]; nilai=new int[jumlah]; masukkanData(nilai, nama); println("Data Sebelum diurutkan"); tampilkanData(nilai, nama); urutkanData(nilai, nama); println("Data Setelah diurutkan"); tampilkanData(nilai, nama); }