Monday, October 12, 2020

PENUGASAN 1 PEMROGRAMAN BERORIENTASI OBJEK (PBO)

Biodata, "Classes And Objects", & Program Konversi Uang dengan Java


1. BIODATA
Sebelum kita mulai mempelajari bahasa pemrograman Java terlebih dahulu kita perlu memahami sesuatu yang begitu mendasar dalam bahasa pemrograman apapun, yaitu bagaimana cara kita melakukan pencetakan data sesuai dengan ketentuan bahasa pemrograman yang sedang digunakan. 

Bagaimana cara kita melakukan pencetakan data dengan bahasa Java? Supaya lebih paham lebih baik langsung kita praktekan. Di bawah ini adalah contoh source code bahasa Java dimana tujuan dari source code di bawah adalah melakukan pencetakan data biodata seseorang, dalam hal ini saya akan menggunakan biodata saya sendiri sebagai contoh.

Jika source code di atas telah di-compile dan dijalankan, maka akan didapatkan output seperti berikut :


Dari source code di atas, bisa kita lihat bahwa untuk melakukan pencetakan data di dalam bahasa java adalah dengan menggunakan system.out.print. Perbedaan antara system.out.print dan system.out.println adalah system.out.print hanya berfungsi untuk melakukan pencetakan data, sedangkan system.out.println berfungsi untuk melakukan pencetakan data sekaligus membuat baris baru.

2. CLASSES & OBJECTS
Saat kita mempelajari bahasa pemrograman Java, terlebih dahulu kita perlu mengerti apakah yang dimaksud dengan class (kelas) dan object (objek). Kedua hal ini penting untuk dimengerti khususnya saat kita mempelajari materi pemrograman berbasis objek. Untuk mempermudah dalam memahami class dan object, maka berikut saya lampirkan pembahasan dan penyelesaian dengan topik "Classes and Objects" yang saya kutip dari buku "Java How To Program 9th Edition" chapter 8. 

A. Time Class Case Study
Pada kasus pertama kita lihat terdapat 2 buah class, yaitu Time1 dan Time1Test. Class Time1 menunjukkan waktu dalam sehari, sedangkan Class Time1Test adalah class aplikasi dimana metode utama (main method) membuat sebuah objek (object) dari class Time1 dan memanggil method-nya. Kedua class tersebut harus dideklarasikan sebagai file yang terpisah karena keduanya adalah public class.

Di dalam class Time1 terdapat 3 macam variabel yaitu hour, minute, dan second. Ketiga variabel ini mempresentasikan waktu dalam format universal atau 24 jam (0-23). Class Time1 mengandung beberapa methods seperti setTime, toUniversalString, dan toString dimana ketiga methods tersebut dikenal dengan public services atau public interface.

Berikut adalah source code dari class Time1

Berikut adalah source code dari class Time1Test
 
Jika kedua source code class diatas telah dihubungkan, di-compile, dan dijalankan maka akan didapatkan output sebagai berikut :


B. Controlling Access to Members
Class - class di dalam pemrograman java dapat saling berhubungan satu sama lain, caranya adalah dengan saling memberikan akses terhadap member mereka masing - masing. Yang disebut dengan member adalah semua yang berada di dalam class, seperti atribute dan method. Setiap class, atribute, dan method  memiliki control access, dimana hak control access ini dituliskan secara eksplisit di awal pendeklarasian class dan method. Hak access ini biasa disebut dengan modifier dan memiliki beberapa tingkatan.

Secara umum ada 3 macam modifier yang lazim digunakan dalam java, yaitu :
Public
Atribute dan method  dari suatu kelas bisa diakses oleh semua class lain dalam program tersebut, dan biasanya hak akses public  digunakan jika suatu atribute boleh diakses secara langsung oleh kelas lain.

Private
Atribute dan method  dari suatu kelas hanya bisa diakses oleh method atau code dari class yang sama, dan biasanya hak akses private digunakan untuk melindungi atribute suatu class agar tidak dapat digunakan oleh class lain.

Protected
Atribute dan method  dari suatu kelas hanya bisa diakses oleh class yang sama, sub-class dari class yang sama, dan package (class yang berada satu package).  Modifier dengan hak akses protected hanya bisa digunakan pada member saja.

Berikut adalah source code dari class MemberAccessTest

Jika source code class di atas telah dihubungkan dengan class Time1, di-compile, dan dijalankan maka akan didapatkan error seperti berikut :




Error diatas merupakan contoh penerapan hak akses private, dimana error terjadi karena anggota private class tidak dapat diakses dari luar class. Dari source code ternyata line 14 - 16 mencoba untuk mengakses secara langsung variabel - variabel private seperti hour, minute, dan second dari object time di class Time1. Saat source code di-compile maka akan muncul error dengan peringatan bahwa private members tidak dapat diakses karena saat dihubungkan program mengasumsikan bahwa class Time1 sedang digunakan.

C. Referring to The Current Object's Members with The "This" Reference
Setiap object bisa mengakses sebuah reference ke dirinya sendiri dengan menggunakann kata kunci atau keyword this ("This" reference). Ketika sebuah method non - static dipanggil untuk sebuah object , badan dari method tersebut akan menggunakan kata kunci this secara implisit untuk merujuk pada variabel objects dan method lain. Hal ini memungkinkan kode dari class untuk mengetahui method mana yang harus dimanipulasi dan meminimalisir kemungkinan kesalahan logika oleh programmer karena kerancuan dari penamaan yang membingungkan.

Berikut adalah source code dari class ThisTest

Jika source code dari class di atas telah di-compile dan dijalankan maka akan didapatkan output seperti berikut :


 D. Time Class Case Study : Overloaded Constructors
Sebuah class perlu memiliki sebuah method yang kita sebut dengan constructor. Saat kita mendeklarasikan suatu object maka constructor adalah method yang pertama kali dipanggil, dimana fungsi dari constructor itu sendiri adalah menentukan bagaimana object dari suatu class akan diinisiasi. Sebuah class dapat memiliki constructor sebanyak 1 atau lebih (Jika programmer tidak menuliskan constructor maka Java akan membuat constructor pada class secara otomatis) 

Dalam membuat sebuah constructor, kita dapat menuliskannya seperti method namun dengan syarat nama constructor harus sama seperti nama class-nya serta hak aksesnya harus ditetapkan sebagai public. Overloading constructor adalah sebutan ketika kita membuat banyak constructor dalam 1 class, dimana saat program dieksekusi maka compiler akan mencari constructor yang sesuai dengan constructor yang dipanggil . Hal inilah yang disebut dengan overloading.

Untuk mempermudah dalam memahaminya, berikut saya lampirkan source code dari class Time2


Berikut adalah source code dari class Time2Test

Jika kedua source code class diatas telah dihubungkan, di-compile, dan dijalankan maka akan didapatkan output sebagai berikut :


Source code diatas merupakan contoh penerapan overloaded constructors, dimana pada sebuah class terdapat beberapa deklarasi constructor namun dengan signature yang berbeda - beda sehingga memungkinkan object dari suatu class dapat diinisiasikan secara berbeda - beda pula. Pada class Time2 terdapat 5 buah overloaded constructor dengan tujuan untuk mempermudah menginisialisasi objects ke dalam class baru Time2. Dari 5 constructor di atas, 4 constructor pertama akan memanggil constructor kelima dengan tujuan untuk memanggil method  setTime dimana method ini akan digunakan untuk melakukan pengecekan bahwa setiap nilai untuk hour (jam) berada dalam rentang universal (0-23) dan nilai untuk minute (menit) dan second (detik) berada dalam rentang 0 - 59.

3. KONVERSI MATA UANG
Berikut saya lampirkan contoh source code yang saya buat dengan bahasa pemrograman Java untuk melakukan konversi mata uang sederhana, dimana kodingan yang saya buat ini bertujuan untuk mengubah nilai mata uang Rupiah menjadi nilai mata uang lain seperti US Dollar, Euro, dan Poundsterling.

Jika source code di atas di-compile dan dijalankan, dimana pada kasus ini saya ingin mengubah 1.000.000 rupiah ke dalam mata uang lain, maka akan didapatkan output sebagai berikut :



Nama : Arvel Gavrilla Raissananda
NRP   : 05111940000040
Kelas : PBO - A








Share:

0 comments:

Post a Comment