CAPAIAN LUARAN PRAKTIKAN
Dalam 170 menit, mahasiswa dapat memecah program menjadi metode, membedakan parameter dan hasil, menulis kontrak serta test sederhana, dan menjelaskan scope variabel. M01–M02 menjadi prasyarat. Bukti: sekumpulan metode pengolahan nilai tanpa ketergantungan pada input konsol. Ini menjadi dasar API struktur data dan algoritma lanjut.
TEORI DASAR
Metode sebagai unit tanggung jawab. Metode memberi nama pada satu pekerjaan dengan input dan hasil yang jelas. Misalnya, valid(nilai) menjawab apakah nilai berada dalam rentang, sedangkan kategori(nilai) mengembalikan kategori. Memisahkan pembacaan input dari perhitungan memungkinkan satu fungsi diuji berkali-kali tanpa mengetik ulang di konsol. Metode yang terlalu banyak tugas sulit diuji dan sulit diganti.
Parameter argumen dan return. Parameter adalah nama yang dideklarasikan pada metode; argumen adalah nilai yang diberikan saat dipanggil. return mengirim hasil kepada pemanggil dan mengakhiri metode. System.out.println hanya mencetak; ia bukan pengganti pengembalian nilai. Metode void dipakai ketika tidak ada nilai hasil. Dalam Java, argumen dikirim sebagai nilai; perubahan parameter primitive di dalam metode tidak mengganti variabel pemanggil. Dampak nilai referensi dibahas pada M05.
Kontrak dan kondisi gagal. Kontrak menjelaskan input yang diterima, hasil, dan perilaku ketika syarat tidak terpenuhi. Misalnya rata(total,banyak) menerima banyak>0 dan menghasilkan total/banyak sebagai double. Pada latihan, banyak<=0 ditolak dengan IllegalArgumentException. Kontrak mencegah pemanggil menebak apakah hasil nol berarti rata-rata benar-benar nol atau sebenarnya input tidak sah. Exception dipelajari lebih lengkap pada M07.
Scope dan variabel lokal. Variabel lokal hanya dapat diakses dalam blok tempat ia dideklarasikan. Setiap pemanggilan metode mempunyai parameter dan variabel lokalnya sendiri. Nama parameter boleh sama dengan nama variabel pemanggil tanpa berarti keduanya lokasi penyimpanan yang sama. Hindari memakai field global untuk memindahkan hasil antar metode jika hasil itu dapat dikembalikan langsung.
Fungsi murni dan efek samping. Fungsi murni menghasilkan hasil dari argumennya tanpa mengubah keadaan luar yang dapat diamati. Metode yang mengubah objek atau mencetak mempunyai efek samping. Keduanya dapat diperlukan, tetapi kontraknya harus jelas. Memisahkan perhitungan murni dari tampilan memudahkan diagnosis bug. Overloading berarti beberapa metode bernama sama mempunyai daftar parameter berbeda; metode yang dipilih bergantung pada tanda tangan yang sesuai saat kompilasi.
LANGKAH EKSPERIMEN
| Tahap dan durasi | Aktivitas dan bukti |
|---|---|
| Diagnostik 10 menit | Bedakan parameter, argumen, dan return |
| Konsep 25 menit | Baca kontrak, scope, dan efek samping |
| Demonstrasi 20 menit | Jejak pemanggilan contoh |
| Latihan terbimbing 40 menit | Buat valid dan kategori |
| Latihan mandiri 45 menit | Pisahkan metode statistik dari antarmuka |
| Uji dan penjelasan 20 menit | Jalankan kontrak normal dan gagal |
| Refleksi 10 menit | Jelaskan dekomposisi yang dipilih |
public class M03Metode {
static double rata(int total, int banyak) {
if (banyak <= 0) {
throw new IllegalArgumentException("banyak harus positif");
}
return (double) total / banyak;
}
public static void main(String[] args) {
double hasil = rata(5, 3);
System.out.println(hasil > 1.66 && hasil < 1.67);
}
}
- Tulis kontrak rata dalam satu kalimat input, satu kalimat hasil, dan satu kondisi gagal. Prediksi output contoh, yaitu true.
- Tulis valid(int nilai) yang mengembalikan boolean untuk rentang 0–100. Metode tidak mencetak dan tidak membaca Scanner.
- Tulis kategori(int nilai). Panggil valid terlebih dahulu; tolak nilai tidak valid. Kembalikan String A/B/C dengan batas M02.
- Tulis maksimum(int a,int b) dan selisihAbsolut(int a,int b) untuk data kecil dalam rentang −1000..1000. Nyatakan batas tersebut agar overflow di luar latihan tidak diabaikan.
- Refaktor program M02 sehingga main mengatur input/tampilan dan metode mengatur validasi serta perhitungan. Bandingkan source sebelum/sesudah; identifikasi kode yang kini dapat diuji tanpa konsol.
- Buat satu pemanggilan yang sengaja tidak memenuhi kontrak rata. Baca exception dan kembalikan program ke test yang benar; cara menangkap exception akan dilatih pada M07.
LATIHAN TUGAS EVALUASI KEMAMPUAN
| Pemanggilan | Hasil harapan |
|---|---|
| rata(240,3) | 80.0 |
| rata(5,3) | Sekitar 1.6666667 |
| rata(5,0) | IllegalArgumentException |
| valid(−1), valid(0), valid(100), valid(101) | false, true, true, false |
| kategori(59), kategori(60), kategori(80) | C, B, A |
Kasus kritis: metode mengembalikan hasil yang dapat dipakai pemanggil dan input gagal tidak menghasilkan nilai normal yang menyesatkan. Tulis setidaknya lima pemanggilan berbeda tanpa menyalin rumus perhitungan ke test sebagai hasil harapannya.
Cek pemahaman dan kunci. Mengapa print tidak menggantikan return? Pemanggil memerlukan nilai, bukan sekadar tulisan di layar. Apakah dua pemanggilan memakai variabel lokal yang sama? Masing-masing mempunyai keadaan lokal sendiri. Mengapa perhitungan dipisah dari Scanner? Test dapat memasok argumen langsung dan dijalankan ulang.
Pengumpulan dan remediasi. Kumpulkan source metode, kontrak, tabel uji, dan penjelasan alur main. Jika bingung pada parameter, telusuri satu pemanggilan dengan kotak terpisah untuk variabel pemanggil dan parameter metode.
PUSTAKA
Barker, Bab 4 tentang interaksi objek dan metode; Bab 2 untuk scope dan ekspresi. RPS IF25W0305 untuk modularitas, kontrak API, dan testing.