<html>
<p><center>https://steemitimages.com/DQmbdTMCBXwm25kN7rMfraEG9NbFMymoxsMu4yf7njSgk5m/image.png</center><center><a href="http://blog.digitorious.com/tag/resources-to-learn-java/">RESOURCES TO LEARN JAVA</a></center></p>
<p>Pada artikel ini merupakan lanjutan dari artikel sebelumnya yaitu <a href="https://steemit.com/indonesia/@alfarisi/programming-9-java-programming-for-programmer-classes-and-objects-part-4-or-bahasa"><strong>Java Programming for Programmer - Classes and Objects (PART 4)</strong></a>. Masih dalam topik yang sama, dimana saya akan membahas mengenai kelas dan objek. Langsung saja pada pokok pembahasan berikut ini.</p>
<h3>Metode SetWaktu pada Kelas Waktu2</h3>
<p>Metode <strong>setWaktu</strong> (baris 45-50) memanggil <strong>setJam</strong> (baris 53-59), <strong>setMenit</strong> (baris 62-68), dan <strong>setDetik</strong> (baris 71-77), yang memastikan bahwa nilai yang disuplai untuk jam berapa dalam rentang waktu 0 sampai 23 dan nilai-nilai untuk menit dan detik berada dalam rentang 0 sampai 59. Jika suatu nilai berada di luar rentang yang ditentukan, maka setiap metode ini akan melempar eksepsi <strong>IllegalArgumentException</strong> (baris 58, 67, dan 76), yang mengindikasikan nilai mana yang berada diluar rentang yang diizinkan.</p>
<h3>Catatan: Metode-metode Set dan Get</h3>
<p>Metode-metode <strong>set</strong> dan <strong>get </strong>dipanggil pada banyak tempat di dalam kelas. Metode <strong>setWaktu</strong> memanggil metode-metode <strong>setJam</strong>, <strong>setMenit</strong>, dan <strong>setDetik </strong>pada baris 47-49, dan metode-metode <strong>toUniversalString</strong> dan <strong>toString</strong> memanggil metode-metode <strong>getJam</strong>, <strong>getMenit</strong>, dan <strong>getDetik </strong>pada baris 93 dan pada baris 100-101. Pada setiap kasus, metode-metode tersebut bisa saja mengakses data <em>private</em> secara langsung tanpa perlu memanggil metode-metode <strong>set</strong> dan <strong>get</strong>. Tetapi, pertimbangkan apabila diinginkan untuk mengubah representasi waktu dari tiga nilai <em>int</em> (memerlukan 12 byte memori) menjadi satu nilai <em>int</em> tunggal yang merepresentasikan jumlah total detik setelah tengah malam (memerlukan hanya byte memori).</p>
<p>Jika dilakukan perubahan semacam itu, maka hanya tubuh-tubuh metode yang mengakses data <em>private</em> secara langsung yang perlu dimodifikasi, dalam kasus ini hanya metode-metode <strong>set</strong> dan <strong>get</strong> untuk jam, menit, dan detik saja yang perlu diubah. Anda tidak perlu memodifikasi tubuh metode-metode <strong>setWaktu</strong>, <strong>toUniversalString</strong>, atau <strong>toString</strong> karena ketiganya tidak mengakses data secara langsung. Merancang kelas dengan gaya seperti ini akan mereduksi kemungkinan kerusakan program ketika dilakukan pengubahan implementasi kelas.</p>
<h3>Penggunaan Konstruktor-konstruktor Kelas Waktu2</h3>
<p>Kelas <strong>ujiWaktu2</strong> (kode 1.6) memanggil konstruktor-konstruktor ter-overload <strong>Waktu2</strong> (baris -12 dan baris 40). Baris 8 memanggil konstruktor tanpa argumen (kode 1.5, baris 12-15). Baris 9-13 pada program mendemonstrasikan pelewatan argumen kepada konstruktor-konstruktor <strong>Waktu2</strong> yang lain. Baris 9 memanggil konstruktor satu argumen yang menerima suatu nilai <em>int</em> pada baris 18-21 pada kode 1.5. Baris 10 memanggil konstruktor tiga argumen pada baris 30-33 pada kode 1.5. Baris 12 memanggil konstruktor satu argumen yang mengambil suatu objek <strong>Waktu2</strong> pada baris 34-42 pada kode 1.5. Selanjutnya, aplikasi menampilkan representasi <strong>String</strong> atas setiap objek <strong>Waktu2</strong> untuk menegaskan penginisialisasian dilakukan secara benar. Baris 40 mencoba untuk menginisialisasi <strong>t6</strong> dengan menciptakan suatu objek <strong>Waktu2</strong> yang baru dan melewatkan tiga nilai tidak valid untuk menginisialisasi jam, maka akan terjadi eksepsi <strong>IllegalArgumentException</strong>. Program akan menangkap eksepsi ini pada baris 42 dan menampilkan pesan error yang menghasilkan baris terakhir pada keluaran program.</p>
<p><h3><code>Kode 1.6</code></h3></p>
<p><center>https://steemitimages.com/DQmb6eoupgyjp6evebvpq3xtzHFUcRbiwRJwB3fWbEpmRSW/1.JPG</center></p>
<p><center>https://steemitimages.com/DQmRzUPQ5fxC1CHRpwA7DctMNZis2S5TBdJ65j4g9FcvxFg/2.JPG</center></p>
<p><h3><code> Output:</code></h3></p>
<p><center>https://steemitimages.com/DQmQEFPkSBWy3TN9YzXJecXATK9RJNmBm6KRsYwr7wzJJyM/3.JPG</center></p>
<h3>Catatan: Metode Set dan Get</h3>
<p>Seperti yang anda ketahui, bidang-bidang data <em>private</em> suatu kelas hanya bisa dimanipulasi oleh metode-metode yang di deklarasikan didalam kelas tersebut. Manipulasi bisa berupa pengubahan rekening saldo konsumen bank (misalnya, variabel contoh <em>private</em> suatu kelas <strong>AkunBank</strong>) oleh suatu metode <strong>hitungBunga</strong>. Beberapa kelas sering kali menyediakan beberapa metode <strong>public</strong> untuk mengizinkan klien kelas <strong>set</strong> (menugaskan nilai kepada) atau <strong>get</strong> (mendapatkan nilai dari) variabel-variabel contoh <em>private</em>.</p>
<p>Dalam penamaan, suatu metode yang menugaskan nilai-nilai kepada variabel contoh dari kelas <strong>lajuBunga</strong> biasanya diberikan nama <strong>setLajuBunga</strong> dan suatu metode yang mendapatkan nilai dari variabel contoh kelas <strong>lajuBunga</strong> umumnya diberikan nama <strong>getSukuBunga</strong>. Metode <strong>set</strong> umumnya disebut dengan mutator, sedangkan metode <strong>get</strong> umumnya dipanggil dengan aksesor.</p>
<p><a href=""><strong>To be continued...</strong></a></p>
<p><h3>Regards <a href="https://steemit.com/@alfarisi"><strong>alfarisi</strong></a>,</h3></p>
<p><center><hr size="30"></center></p>
<p><center><h1><a href="https://steemit.com/indonesia/@alfarisi/programming-9-java-programming-for-programmer-classes-and-objects-part-4-or-bahasa#"><strong>INDONESIAN STEEMIT COMMUNITY</strong></a></h1></center><p>
</html>