Nama : Daffa Rayhan Riadi
NIM : 20104023
NAMA | NIM |
---|---|
Aditya Rizkiawan Nugraha | 20104006 |
Daffa Rayhan Riadi | 20104023 |
Fauzan Fashihul Lisan | 20104029 |
Hastin Ajeng Shalma | 20104030 |
1.1 Latar Belakang
Pada era modern seperti ini banyak masyarakat membutuhkan kendaraan untuk bepergian seperti kendaraan pribadi, kebanyakan kendaraan yang dibutuhkan dan diminati yaitu kendaraan roda empat. Dengan menggunakan kendaraan pribadi itu lebih leluasa dalam beraktivitas di bandingkan dengan menggunakan kendaraan umum. Oleh karena itu dengan menggunakan java kami mencoba membuat program yang nantinya dapat membantu kegiatan penyewaan kendaraan.
1.2 Tujuan
Selain untuk memenuhi tugas matakuliah Praktikum Pemrograman Berbasis Objek dengan membuat sebuah program bertemakan "Penyewaan Kendaraan", program ini dibuat juga untuk membantu masyarakat mendapatkan kendaraan yang aman dan nyaman. Juga untuk membantu mengembangkan usaha penyewaan yang terkadang masih sulit untuk mencari yang terpercaya. Dan juga selain tujuan di atas tersebut ini juga bertujuan untuk memudahkan mahasiswa mengerti tentang java dengan mengimplementasikan ilmu yang di peroleh pada semester ini.
2.1 Definisi
Penyewaan adalah sebuah persetujuan di mana sebuah pembayaran dilakukan atas penggunaan suatu barang atau properti secara sementara oleh oranglain. Ada beberapa pengertian tentang Penyewaan, tetapi semuanya hampir memiliki kesamaan pengertian yang mengarah pada penggunaan barang secara sementara. Berikut beberapa pengertian tentang Penyewaan. a. Dalam KBBI penyewaan : pe.nye.wa.an proses, cara, perbuatan menyewa atau menyewakan. b. Menurut Sadono Sukirno Sewa adalah bagian pembayaran ke atas suatu faktor produksi yang melebihi dari pendapatan yang diterimanya dari pilihan pekerjaan lain yang terbaik yang mungkin dilakukannya. c. Menurut Raymodus Sewa sebagai sejumlah atau uang yang dibayarkan kepada pemilik tanah oleh pihak yang menggunakan tanah sebagai balas jasa untuk pengunaan tanah tersebut. d. Menurut Kimmel Penyewaan adalah perjanjian dimana pemilik dari aset perusahaan memungkinkan pihak lain untuk menggunakan aset yang ada untuk jangka waktu tertentu pada harga yang telah disepakati.
2.2 Java
Java adalah bahasa pemrograman yang multi platform dan multi device. Slogan Java adalah "Tulis sekali, jalankan manapun". Sekarang ini Java menjadi sebuah bahasa pemrograman yang populer dan dimanfaatkan secara luas untuk pengembangan perangkat lunak. Kebanyakan perangkat lunak yang menggunakan Java adalah ponsel feature dan ponsel pintar atau smartphone. Kelebihan dan kekurangan Java. Kelebihan Java yang pertama tentu saja multiplatform. Java dapat dijalankan dalam beberapa platform komputer dan sistem operasi yang berbeda. Hal ini sesuai dengan slogannya yangs sudah dibahas sebelumnya. Yang kedua adalah OOP atau Object Oriented Programming. Java memiliki library yang lengkap. Library disini adalah sebuah kumpulan dari program yang disertakan dalam Java. Hal ini akan memudahkan pemrograman menjadi lebih mudah. Kelengkapan library semakin beragam jika ditambah dengan karya komunitas Java. Kekurangan Java yang pertama, kemudahan aplikasi Java yang di dekompilasi yaitu suatu proses membalikkan sebuah aplikasi menjadi kode sumbernya. Kedua, penggunaan memori cukup banyak lebih besar daripada bahasa tingkat tinggi sebelum generasi Java. Namun, apapun kekurangan yang dimiliki Java faktanya Java merupakan bahasa pemrograman yang populer dan digunakan di seluruh dunia.
2.3 Intellij IDEA
Sebuah IDE yang diekambangkan oleh Jetbrains. Intellij IDEA tersedia dalam dua versi, yaitu versi Community Edition dengan lisensi Apache 2 Licensed yang dapat digunakan secara gratis dan yang kedua versi Ultimate Edition untuk penggunaan komersial. IDE yang ditulis dengan Java dan Kotlin ini dirilis versi pertamanya pada januari 2011 dan langsung menjadi IDE pertama untuk pengembangan aplikasi berbasis Java. Ia mendukung navigasi kode tingkat lanjut dan kemampuan refactoring yang saling terintegrasi. Pada umumnya, sebuah IDE menyediakan beberapa fitur seperti text editor yang akan dapat digunakan untuk menulis kode, tools untuk mengotomatisasi proses build dari program yang di buat dan juga debugger yang akan membantu mendeteksi dan memperbaiki kesalahan yang terdapat pada program.
2.4 Dasar Pemrograman Java
-
Identifier Penamaan identifier harus diawali dengan karakter unicode, tanda $ (dollar) atau tanda _ (underscore). Penamaan identifier ini bersifat case�sensitive dan tidak dibatasi panjang maksimum.
-
Kata Kunci Identifier yang telah dipesan untuk didefinisikan sebelumnya oleh Java untuk tujuan tertentu. Kita tidak dapat menggunakan keyword sebagai nama variabel, class, method.
-
Tipe Data Java mempunyai 8 tipe dasar, yaitu boolean, char, byte, short, int, long, float, dan double.
-
Variable Item yang digunakan data untuk menyimpan pernyataan objek.
2.5 Pengenalan Pemrograman Berorientasi Objek
-
Pengenalan Pemrograman Berorientasi Objek Pemrograman Berorientasi Objek (Object Oriented Programming/OOP) merupakan pemrograman yang berorientasikan kepada objek, dimana semua data dan fungsi dibungkus dalam class�class atau object-object.
-
Deklarasi Class Class adalah wadah yang berisi abstraksi (pemodelan) dari suatu fungsi objek (benda), yang mendeskripsikan data (sifat karakteristik) dan fungsi yang dimiliki oleh objek tersebut.
-
Deklarasi Atribut Attributes merupakan nilai (type) data yang terdapat pada suatu object yang berasal dari class. Attributes merepresentasikan karakteristik dari suatu object.
-
Deklarasi Metode Metode/method adalah sesuatu yang dapat dilakukan oleh objek. Method dalam implementasi program ditulis dalam bentuk fungsi. Metode menentukan apa yang terjadi ketika objek itu dibuat serta berbagai operasi yang dapat dilakukan objek.
-
Pengaksesan Anggota Obyek Untuk dapat mengakses anggota-anggota dari suatu obyek, maka harus dibuat instance dari class tersebut terlebih dahulu.
2.6 Dasar Pemrograman Berorientasi Objek
-
Information Hiding Menyembunyikan atribut dan method suatu objek dari objek lain. Informasi dari suatu class disembunyikan agar anggota�anggota tersebut tidak dapat diakses dari luar. Adapun caranya adalah cukup dengan memberikan akses control private ketika mendeklarasikan suatu atribut atau method.
-
Enkapsulasi Suatu cara untuk menyembunyikan implementasi detail dari suatu class.
-
Constructor Suatu method yang pertama kali dijalankan pada saat pembuatan suatu obyek. Konstruktor ini merupakan method yang berfungsi untuk menginisialisasi variabel-variabel instans yang akan di miliki oleh objek. Konstruktor dipanggil pada saat proses instansiasi kelas menjadi objek.
-
Overloading Constructor Merupakan suatu class yang mempunyai lebih dari satu constructor dengan syarat daftar parameternya tidak boleh ada yang sama.
2.7 Mengelola Class
-
Package Suatu cara untuk memanage class-class yang dibuat. Pakage akan sangat bermanfaat jika class-class yang dibuat sangat banyak sehingga perlu dikelompokan berdasarkan kategori tertentu. Yang harus diperhatikan adalah biasanya nama class utama harus sama dengan nama package.
-
Import Class Digunakan untuk memberitahukan kepada program untuk mengacu pada class-class yang terdapat dalam package tertentu, bukan menjalankan class-class tersebut.
-
Kata Kunci this Digunakan dalam sebuah kelas untuk menyatakan object sekarang. Kata kunci this sangat berguna untuk menunjukkan suatu member dalam class-nya sendiri. this dapat digunakan baik untuk data member maupun untuk function member, serta dapat juga digunakan untuk konstruktor.
2.8 Konsep Inheritance
-
Pengertian Inheritance Dalam bahasa Indonesia inheritance disebut juga sebagai pewarisan atau penurunan. Inheritance merupakan konsep pemrograman dimana sebuah class dapat menurunkan property dan method yang di milikinya kepada class lain. Konsep inheritance digunakan untuk memanfaatkan fitur code reuse untuk menghindari duplikasi kode program. Konsep inheritance membuat sebuah struktur atau hierarchy class dalam kode program. Class yang akan diturunkan bisa disebut sebagai class induk (parents class), super class atau base class. Sedangkan class yang menerima penurunan bisa disebut juga sebagai class anak (child class), sub class, derrived class atau heir class. Tidak semua property dan method dari class induk akan diturunkan. Property dan method dengan hak akses perotected dan public saja yang dapat diakses dari class anak. Suatu class yang mempunyai class turunan di namakan parents class atau base class sedangkan class turunan itu sendiri sering disebut subclass atau child class. Suatu subclass dapat mewarisi apa-apa yang di punyai oleh parents class. Karena suatu subclass dapat mewarisi apa-apa yang di punyai oleh parents class nya, maka member dari suatu subclass itu terdiri dari apa-apa yang di milikinya dan juga apa-apa yang di warisi dari class parent nya.
-
Kata Kunci super Kata kunci super digunakan untuk merujuk pada member dari parents class, seperti pada kata kunci this yang digunakan untuk merujuk pada member dari class itu sendiri. Beberapa hal yang harus diingat ketika menggunakan pemanggil constructor this a. Pemanggil super() harus dijadikan pernyataan pertama dalam constructor b. Pemanggil super() hanya dapat digunakan dalam definisi constructor c. Constructor this() dan pemanggil super() tidak boleh terjadi dalam constructor yang sama
2.9 Overloading dan Overriding
-
Overloading Merupakan konsep pemrograman di mana beberapa method memiliki nama yang sama pada suatu class tetapi memiliki parameter yang berbeda. Yang artinya saat membuat sebuah class dan di dalam class tersebut terdapat beberapa method dengan nama yang sama dan memiliki parameter yang berbeda sehingga di namakan dengan overloading.
-
Overriding Merupakan sebuah kondisi di mana method yang terdapat pada class utama (parent class) digunakan kembali pada sub class (class anak).
2.10 Polimorfisme
-
Konsep Dasar Polimorfisme Polimorfisme dalam OOP adalah sebuah prinsip di mana class dapat memiliki banyak bentuk dengan method yang berbeda-beda meskipun namanya sama. Polimorfisme terjadi pada saat obyek bertipe parent class akan tetapi pemanggilan constructornya melalui subclass.
-
Virtual Method Invocation Virtual Method Invocation dapat terjadi jika terjadi poliformisme dan overriding. Obyek yang sudah dibuat akan memanggil overriding method pada parent class dan setelah itu kompiler java akan melakukan invocation (pemanggilan) terhadap overriding method pada subclass.
-
Polymorphic Arguments Merupakan suatu tipe parameter yang menerima suatu nilai yang bertipe subclass-nya.
-
Pernyataan Instanceof Merupakan keyword pada java yang digunakan untuk membandingkan suatu objek apakah instansiasi dari suatu class atau tidak, hasil dari perbandingan tersebut akan menghasilkan nilai boolean berupa nilai true atau false.
-
Casting Object Merupakan proses konversi data dari tipe data tertentu ke tipe data yang lain.
2.11 Exception
- Exception Handling
Exception adalah singkatan dari Exceptional Events. Exception merupakan kondisi abnormal yang terjadi saat runtime (program berjalan). Dalam java terdapat sebuah teknik untuk menangani kondisi yang tidak biasa saat menjalankan operasi normal dalam program yang dinamakan dengan exception handling. Dalam java segala seusatu merupakan objek maka exception juga termasuk dalam sebuah object yang menjelaskan tentang exception tersebut.
- Mulai
- Pendaftaran
- Pendaftaran Pegawai
- Login
- Input username dan password
- Jika menu utama maka masuk menu utama Jika Pemilik maka masuk menu Pemilik Jika Penyewa maka masuk menu Penyewa Jika Pegawai maka masuk menu Pegawai
- Menu Utama, terdapat 4 menu yaitu pendaftaran, pendaftaran menjadi pegawai, login, keluar
- Menu 1 pada menu utama (Pendaftaran)
- Inputkan nama, umur alamat, username dan password
- Daftar dan Simpan
- Kembali ke menu awal pada menu
- Menu 2 pada menu utama (Pendaftaran pegawai)
- Inputkan nama, username dan password
- Menu 3 pada menu utama (Login)
- Masukkan username dan pasword
- Menu 4 pada menu utama (Logout)
- Menu Pemilik, terdapat 8 menu yaitu cek mobil, tambah mobil, hapus mobil, daftar penyewa, hapus penyewa, daftar pegawai, hapus pegawai dan logout
- Menu 1 pada menu pemilik (Cek mobil) Mengecek apakah data mobil sudah ada
- Menu 2 pada menu pemilik (Tambah mobil)
- Inputkan nama atau jenis mobil
- Inputkan nomor plat
- Inputkan kecepatan
- Inputkan jumlah maksimal penumpang
- inputkan harga
- Menu 3 pada menu pemilik (Hapus mobil)
- Inputkan nama atau jenis mobil
- Menu 4 pada menu pemilik (Daftar penyewa)
- Pilih nama pegawai
- Inputkan nama penyewa
- Menu 5 pada menu penilik (Hapus penyewa)
- Pilih nama pegawai
- Inputkan nama penyewa
- Menu 6 pada menu pemilik (Daftar pegawai)
- Menu 7 pada menu pemilik (Hapus pegawai)
- Inputkan nama pegawai
- Menu 8 pada menu pemilik (Logout)
- Menu Penyewa, terdapat 5 menu yaitu cek mobil, sewa mobil, pengembalian, nota dan logout
- Menu 1 pada menu penyewa (Cek mobil) Mengecek apakah data mobil sudah ada
- Menu 2 pada menu penyewa (Sewa mobil)
- Pilih atau inputkan nama pegawai
- Pilih atau inputkan nama mobil
- Menu 3 pada menu penyewa (Pengembalian)
- Menu 4 pada menu penyewa (Nota pembayaran)
- Menu 5 pada menu penyewa (Logout)
- Menu Pegawai, terdapat 6 menu yaitu cek mobil, tambah mobil, hapus mobil, daftar penyewa, hapus penyewa dan logout
- Menu 1 pada menu pegawai (cek mobil) Mengecek apakah data mobil sudah ada
- Menu 2 pada menu pegawai (Tambah mobil)
- Masukkan nama atau jenis mobil
- Masukkan nomor plat
- Masukkan kecepatan
- Masukkan maksimal jumlah penumpang
- Masukkan harga
- Menu 3 pada menu pegawai (Hapus mobil)
- Masukkan nama atau jenis mobil
- Menu 4 pada menu pegawai (Daftar penyewa)
- Masukkan nama penyewa
- Menu 5 pada menu pegawai (Hapus penyewa)
- Masukkan nama penyewa
- Menu 6 pada menu pegawai (Logout)
4. Penggunaan Method Berparameter
5. Penggunaan Constructor Berparameter
8. Penggunaan kata Package dan Import
9. Penggunaan Overload Constructor
10. Penggunaan Overload Method
12. Penggunaan Information Hidding
13. Penggunaan Getter dan Setter
Analisa Program :
Pada class Pegawai menggunakan information hidding yaitu String naam dan List penyewa lalu terdapat Overload Constructor Pegawai selanjutnya getter dan setter atribut information hidding. Setelah ituu terdapat method hapus penyewa dengan parameter penyewa dan penggunaan try - catch dengan proses perulangan int j = 0, j < dari list penyewa j akan di increment kan. Lalu terdapat method tambahpenyewa dan getpenyewa yang dimana dalam getpenyewa menggunakan try catch dan perulangan yang dimulai dari 0 jika i < lis penyewa maka i akan di increment kan.
Pada class pemilik yang merupakan extends dari class pegawai terdapat constructor berparameter yang didalamnya menggunakan kata kunci super dan this lalu terdapat method tambahPegawai dengan objek dari Pegawai, hapusPegawai, gettersetterPegawai, kembalikan model dan tampil pegawai. Pada class main menggunakan Scanner yang berfungsi menginputkan oleh user lalu terdapat pilihan switch case di dalamnya pendaftaran, login, pendaftaran pegawai dan exit. Pada menu pendaftaran ini user menginputkan nama umur alamat usernma dan password yang nantinya akan digunakan sebagai akun login. Lalu pada pendaftaran pegawai pun sama dengan menginputkan username dan password. Pada method Login pemilih terdapat switch case dengan beberapa plihan sesuai yang dibutuhkan. Di dalam method cek mobil terdapat proses pengecekan ada atau tidaknya mobil jika belum di inputkan oleh pegawai maka akan menampilkan belum ada mobil namun jika ada akan menampilkan mobil beserta jenis mobil. Selanjutnya pada method tambahmobil ini terdapat identitas mobil yang harus disikan. Lalu pada method hapus mobil digunakan untuk menghapus mobil
Dengan menggunakan Intellij IDEA, dapat dihasilkan suatu program penyewaan mobil. Dengan adanya program tersebut dapat mempermudah customer dalam memilih dan menyewa mobil dengan model dan harga yang di inginkan. Pada program sederhana mengenai Rental mobil ini melibatkan class Pegawai & Pemilik yang terdapat pada Package Controller, Class Main yang terdapat pada Package Main dan Class login, class Mobil dan Class Penyewa yang terdapat pada Package Model.