Welcome to my blog! Today a reader, tomorrow a leaderšŸ”„

Tugas 1 Pemrograman Berorientasi Objek (PBO)

Biodata

        Sebelum memasuki dunia pemrograman Java lebih dalam, ada baiknya kita terlebih dahulu mengetahui dan membahas bagaimana cara membuat program sederhana untuk menghasilkan output tentang biodata kita. Berikut adalah programnya.

Berikut adalah output dari program diatas.

8.1    Introduction (Classes and Objects)
        Dalam penggunaan Java, pastinya ada kelas yang berbeda-beda. Sekarang kita akan lebih fokus kepada cara membangun kelas, mengontrol akses ke anggota kelas, dan membuat konstruktor. Kita akan membahas komposisi kemampuan yang memungkinkan kelas memiliki referensi ke objek kelas lain sebagai anggota dalam satu paket yang sama, dengan menggunakan metode set dan get. 
        Kita juga akan membahas hubungan antara objek dan kelas, yang menunjukkan bahwa kelas, dapat dideklarasikan dalam filenya sendiri dengan konstruktor, metode, dan kolom. Bab ini juga membahas anggota kelas statis dan variabel instan akhir secara rinci, serta bagaimana mengatur kelas dalam paket yang sama dengan mengimplementasikan penggunaan "return", kemudian menunjukkan hubungan khusus antar kelas dalam paket yang sama, dan bagaimana cara memanggil anggota kelas tersebut, agar dapat menjalankan satu program yang sama.

8.2    Contoh Program (Time Class Case Study)
        Contoh pertama ini terdiri dari 2 program, dimana program pertama kita "declare" terlebih dahulu fungsi class Time yang mewakili hari, dan program kedua bernama class TimeTest yang merupakan aplikasi dari class Time. Di dalam program class TimeTest tersebut kita akan membuat objek dan memanggil fungsi class Time. Kedua kelas ini harus dideklarasikan dalam file terpisah karena keduanya merupakan "public class".
  • Metode setTime (baris 15-26)
        Merupakan metode publik yang mendeklarasikan 3 parameter int dan menggunakannya untuk menyetel waktu. Baris ke-18 menguji setiap argumen untuk menentukan apakah nilai berada dalam kisaran yang tepat, dan jika demikian, baris 20-22 berguna untuk menetapkan nilai ke variabel instan jam, menit, dan detik. 
        Sedangkan untuk fungsi setTime throw new IllegalArgumentException berguna untuk memberi tahu klien bahwa ada nilai diluar jangkauan (tidak bisa dibaca oleh program/invalid). Jika ada nilai invalid tersebut, kita bisa menggunakan fungsi "try" dan "catch" sebagai penangkalnya, bisa dilihat pada program class TimeTest.
  • Metode toUniversalString (baris 29-32)
        Merupakan metode yang mengkonversikan nilai dari jam, menit, dan detik, ke dalam format HH:MM:SS sesuai dengan waktu universal. Contoh, 13:30:07.
  • Metode toString (baris 35-38)
        Merupakan metode yang mengkonversikan nilai jam, menit, dan detik ke dalam format H:MM:SS AM/PM sesuai dengan waktu standar (terkini). Contoh, 1:30:07 PM.

Berikut ini adalah program class TimeTest.
Bisa kita lihat pada program class TimeTest diatas ini, kita memanggil fungsi class Time yakni program pertama, agar fungsi main pada class TimeTest bisa dijalankan, dan dapat menghasilkan output.

Berikut adalah hasil output dari kedua program public class diatas.

Kedua program ini telah terhubung otomatis, dan ditandai dengan tanda panah seperti berikut.

Program TimeTest memiliki tanda panah yang mengarah pada program Time, karena ada fungsi di TimeTest yang memanggil fungsi dari Time.

8.3    Contoh Program (Controlling Access to Members)
        Pada contoh ini, program sengaja dibuat untuk tidak bisa diakses oleh klien. Bahwa anggota kelas privat tidak dapat diakses diluar kelas.

Bisa kita lihat baris 14-16 mencoba untuk mengakses langsung variabel instan privat jam, menit, dan detik dari objek waktu pada program class Time diawal. Ketika program ini dikompilasi, kompilator akan menghasilkan pesan "error" bahwa anggota privat (hour, minute, second) ini tidak dapat diakses. Program ini mengasumsikan bahwa fungsi class Time diawal telah digunakan. Program ini tidak dapat mengeluarkan output karena "compilation error" dan menunjukkan ada 3 error di dalam program tersebut.


Berikut ini adalah hasil gabungan ketiga program diatas (Time, TimeTest, dan MemberAccessTest). Program class MemberAccessTest memiliki panah yang mengarah ke program class Time karena ia juga mencoba memanggil fungsi yang ada di class Time, dan jika tidak diletakkan dalam 1 paket yang sama, maka 3 error diatas tidak akan muncul, yang muncul adalah 1 error pada saat inisialisasi objek Time pada baris 12, karena ia tidak dapat menemukan fungsi yang merujuk ke "Time" tersebut.

8.4    Contoh Program (Referensi Terhadap Fungsi "this")
        Setiap objek dapat mengakses referensike dirinya sendiri, dengan kata kunci "this". Contoh dibawah ini menunjukkan adanya 2 kelas sekaligus dalam 1 file.

Kelas ThisTest dideklarasikan pada baris 8-15, dan kelas SimpleTime pada baris 16-41. Bisa kita lihat bahwa hanya kelas ThisTest yang "public", sedangkan kelas SimpleTime tidak. Ini dikarenakan dalam 1 file, hanya boleh terdapat 1 kelas publik. Jika tidak, akan terjadi error saat kompilasi.

Berikut adalah hasil output nya.

8.5    Contoh Program (Time Class Case Study : Overloaded Constructor)
        Pada persoalan ini, kita mencoba untuk menggunakan kelas dengan konstruktor yang kelebihan beban, maka untuk diinisialisasi, harus menggunakan cara yang berbeda. Program ini awalnya menginisialisasi jam, menit, dan detik ke nilai default 0 (tengah malam dalam waktu universal). Kelas Time2 ini juga menyediakan fungsi set dan get untuk setiap variabel instan.

Contoh konstruktor tanpa argumen dapat dilihat pada baris 16-19. Sedangkan konstruktor dengan 1 argumen dapat dilihat pada baris 20-23, dan seterusnya, sesuai berapa integer yang dideklarasi dalam fungsi tersebut. Pada baris ke-14, kita memakai fungsi "this" untuk memanggil kembali 3 parameter konstruktor Time2, yakni pada baris 28-31 dengan jam, menit, dan detik bernilai 0.

Setelah itu, berikut ini adalah program class Time2Test.

Dengan ada nya program kelas Time2Test, maka program menjadi lengkap dan ada outputnya. Berikut inilah output dari kedua program diatas.

Berikut adalah arah panah kedua program tersebut.

Keterangan nya sama seperti pada program class Time yang di awal tadi.
NB : Untuk setiap kelas, memiliki setidaknya 1 konstruktor.

Konversi Mata Uang

Berikut ini adalah contoh program sederhana untuk mengkonversikan mata uang rupiah ke mata uang lainnya. Seperti US Dollar, Euro, Poundsterling, dan RM.

Berikut adalah hasil output dari program diatas, dimana saya menginput mata uang rupiah dengan nominal 1jt, dan akan diubah ke dalam mata uang lain yang telah saya sebutkan diatas.

Itulah hasil dari konversi mata uang rupiah dengan nominal 1jt, ke mata uang lainnya. Masing-masing tertera pada output diatas.

Nama : Julietta Anastasia Rodiah Boru Panjaitan
NRP    : 05111940000033
Kelas  : PBO-A

Komentar

Postingan Populer