Untuk file code bisa didapatkan lewat github https://github.com/sogunkwn/java-cli-hotel-reservation

1.Classes dan Instances

Sebuah class adalah blueprint atau cetakan yang digunakan untuk menciptakan object. Sebuah object adalah sebuah instance dari sebuah class

Dalam Program yang kami buat ada 9 class utama

  1. App : sebagai class start, dimana method main berada dalam kelas ini
  2. OurProgram : sebagai kelas utama dimana sebagian besar logic dari sistem hotel berada di class ini
  3. Teks : kelas khusus yang dibuat untuk membuat outputan teks dalam program
  4. CommandlineTable : class yang digunakan untuk mencetak table
  5. Customer : classini digunakan untuk Menyimpan dan Mengolah Data Customer
  6. Room : class ini adalah class abstract, atau kelas yang tidak bisa di instansiasi atau membuat objek dari class ini. Room merupakan Superclass dari class StandardRoom dan VIPRoom
  7. StandardRoom : class yang diturunkan dari class Room, digunakan untuk menyimpan dan mengolah data dari Ruangan tipe Standard
  8. VIPRoom : sama seperti StandardRoom, class diturunkan dari class Room. Digunakan untuk menyimpan dan mengolah data dari ruangan tipe VIP
  9. Booking : merupakan class yang digunakan untuk menyimpan dan mengolah data Bookingan

2. Constructors

Perbedaan method konstruktor dengan method lainnya pada java adalah nama method konstruktor harus sama dengan nama kelasnya. Konstruktor biasanya digunakan untuk menginisialisasi atau memberikan nilai (melalui parameter) kepada sebuah objek pada saat objek pertama kali diciptakan

1.Room class. class ini memiliki sebuah construktor yang memiliki 3 buah parameter, dimana tugasnya adalah memasukan nilai ke 3 instance variable yang dimilikinya, dari parameter

Room
constructor

2. StandardRoom class ini memiliki sebuah construktor dan juga 3 parameter, dimana tugasnya adalah mengambil ketiga parameter kemudian memanggil method super() dan menaruh ke 3 parameter tersebut ke dalamnya. method super() digunakan untuk memanggil constructor milik superclass, dimana Superclass dari StandardRoom adalah Room  

StandardRoom
constructor

3. VIPRoom sama seperti class StandardRoom class ini memiliki sebuah construktor dan juga 3 parameter, dimana tugasnya adalah mengambil ketiga parameter kemudian memanggil method super() dan menaruh ke 3 parameter tersebut ke dalam method super(). method super() digunakan untuk memanggil constructor milik superclass, dimana Superclass dari class VIPRoom adalah class Room

VIPRoom
constructor

4. Customer class. class ini memiliki sebuah constructor yang memiliki 3 buah variable, yang tugasnya untuk mengisi nilai ke 3 instance variable yang dimiliki oleh class

customer constructor

5. Booking class. class ini memiliki sebuah constructor yang memerlukan 6 buah parameter.

booking
constructor

6. Teks class ini memiliki sebuah construktor yang acces modifiernya private, ini berarti class ini tidak bisa di inisialisasi atau dibuatkan instance/objek dari class Teks

teks
constructor

class-class lain yang tidak dibuatkan constructor, akan dibuatkan secara otomatis oleh jvm ketika program dieksekusi, karena semua class di bahasa java harus memiliki minimal sebuah constructor.

3. Package

Package digunakan untuk membungkus class Java kedalam grup-grup tertentu yang telah ditentukan, sehingga dapat menghindari terjadinya konflik penamaan dan hak akses. Selain itu, dengan menggunakan pemaketan seperti ini, akan semakin mudah dalam mencari dan menggunakan class Java.

Dalam program Hotel Reservation ada 4 buah package yang dibuat, yang masing-masing package membungkus, class-class sesuai dengan fungsi dari class-class yang ada

daftar package
  1. Package room, digunakan untuk membungkus class yang mirip, seperti Room, StandardRoom dan VIPRoom
  2. Package customer, tempat class Customer
  3. Package booking, tempat class Booking
  4. Package about, tempat class yang memiliki fungsi tampilan dan logic program, terdapat class CommandLineTable, Teks dan Ourprogram

4. Acces Modifier

Access Modifier adalah sebuah “hak akses” yang diberikan kepada sebuah variabel/method/class dengan tujuan untuk menjaga integritas dari data tersebut ketika ingin diakses object lain

  1. public , Modifier ini akan membuat member dan class bisa di akses dari mana saja.
  2. private , Modifier ini membuat member  hanya bisa diakses oleh dari dalam class itu sendiri.
  3. protected ,Modifier iniakan membuat member dan class hanya bisa diakses dari dalam class itu sendiri dan juga subclass dari class itu sendiri

contoh penerapan acces modifier dalam program Hotel Reservation

  1. public sebagai contoh method go() dalam class Ourprogram memiliki acces modifier public, ini berarti method ini bisa diakses dari luar class Ourprogram

contoh Pengaksesan dari method go() milik Ourprogram adalah dari class App

2. private, sebagai contoh dalam class Ourprogram terdapat method exit() dengan acces modifier private, yang berarti hanya bisa diakses dari dalam class Ourprogram saja.

Ketika kita ingin mengaksesnya dari luar, seperti contoh lewat class App maka kita akan mendapatkan tampilan ERRORRR

3.protected, penerapan acces modifier ini berada pada class Room, dimana semua instance variable mirip Room memiliki acces modifier protected

dimana variable ini nantinya bisa diakses langsung dari subsclass Room, seperti subsclass VIPRoom . dimana variable roomDateAvailable milik Room, bisa diakses langsung lewat class VIPRoom

5. Instance dan Static Method

  1. Instance Method adalah method yg beroperasi pada objek untuk memanipulasi state objek lewat pesan yg diterima dari objek lain. Untuk memanggil method ini kita harus membuat objek terlebih dahulu
  2. Static Method method yang dapat dipakai tanpa harus menginisialisasi suatu class (maksudnya tanpa harus membuat objek terlebih dahulu). Ciri method ini adalah dengan menggunakan kata static di depan kata void. Method ini dapat dipanggil dengan cara menuliskan nama class kemudian diikuti dengan nama method

Penerapan Instance dan Static Method dalaman program, kita ambil contoh pada class Booking. Dimana Method yang berisi key static setelah acces modifier berarti method static

6. Array of Instances

Array of Instances atau bisa disebut array objek, merupakan sekumpulan objek yang memiliki tipe yang sama. Contoh penerapan Array of Instances dalam program

Pada class Ourprogram terdapat 3 buah Array of Instance, pertama Array untuk menyimpan Instance/objek dari class StandardRoom, kedua Array untuk menyimpan objek/instance dari class VIPRoom dan yang terakhir Array of instance untuk menyimpan Objek/Instance dari class Booking

7. Inheritances

Dalam Bahasa Pemrograman Java, Inheritance merupakan konsep pemrograman dimana sebuah class dapat mewariskan atau menurunkan property, method atau data data yang dimilikinya kepada class yang bertindak sebagai subsclass. Jadi class tersebut dapat mengakses data-data dari class utamanya yang bertindak sebagai superclass.

Inheritance dalam java seperti hubungan keluarga antara orang tua dan anak. Sebuah class di Java, bisa memiliki satu atau lebih keturunan atau class anak. Class anak akan memiliki warisan properti dan method dari class orang tua.

  • class anak(subsclass) hanya bisa memiliki satu orang tua(superclass)
  • class orangtua(superclass) bisa menurunkan sifatnya ke banyak anak(subsclass)

Dalam Program Kami, Konsep Inheritances terdapat pada class Room (superclass), VIPRoom dan StandardRoom yang merupakan (subsclass)

kata kunci extends digunakan untuk konsep inheritance dalam bahasa Java

8. Abstract Classes

Abstract class merupakan sebuah class yang dideklarasikan dengan menambahkan keyword abstract pada saat menulisnya. abstract class ini tidak dapat di instansiasi atau dibuatkan objek akan tetapi dapat di inherit  oleh subclassnya.

Contoh konsep .Abstract Classes pada program kami terdapat pada class Room. class Room adalah abstract class, dimana kita tidak akan bisa membuat objek bertipe Room. walaupun tidak bisa dibuatkan objek, tetapi class abstract bisa berfungsi sebagai superclass dari subclass lainnya, seperti VIPRoom dan StandardRoom

Polymorphism

9. Overloading Methods

Method Overloading adalah sebuah kemampuan yang membolehkan sebuah class mempunyai 2 atau lebih method dengan nama yang sama, yang membedakan adalah jenis atau jumlah parameternya

Contoh konsep Overloading Methods dalam program kami terdapat pada class Booking, dimana method ada 2 method getRoom(). Dimana pembedanya adalah, jenis parameternya, yang pertama membutuhkan Array of instance bertipe VIPRoom dan yang kedua membutuhkan Array of Instance bertipe StandardRoom.

Itu berarti ketika kita memanggil method getRoom dan memasukan parameter, jika parameter yang kita masukan adalah Array bertipe VIPRoom maka method overloading yang pertama yang akan dipanggil, jika kita memasukan Array bertipe StandardRoom maka method yang kedua yang akan dipanggil

10. Overidding Methods

Method overriding merupakan method milik superclass yang ditulis kembali oleh subclass.

Contoh Penerapan konsep Overidding Methods pada program kami terdapat pada method setRoomDateAvailAble() antara class Room dan VIPRoom

Leave a comment

Your email address will not be published. Required fields are marked *