1. Jelaskan apa perbedaan kelas dan objek dalam pemrograman berorientasi objek. Berikan contoh dengan kode sederhana yang menunjukkan hubungan antara kelas dan objek
-Class adalah suatu entitias atau cetakan (Blueprint) yang menggambarkan keadaan dan perilaku dari sesuatu yang logis. Class berisi cetakan fungsi, variabel, dan lain lainnya.
-Objek adalah sebuah instansiasi dari atau perwujudan dari suatu class pada suatu waktu/state yang disimpan pada memory.
-Hubungan class dan objek, bisa dilihat kita membuat sebuah class yang berisi blueprint dari objek yang nantinya akan dibuat. Dengan menginstansiasi objek kita gunakan dari blueprint ClassETS, ClassETS classETS = new ClassETS(10, "Test");.
2. Buatlah Aplikasi CofeeMachine yang menyediakan kopi dengan harga tertentu
publicclassCoffee{
privateString name;
privatefloat cost;
publicCoffee(Stringname, floatcost)
{
this.name= name;
this.cost= cost;
}
publicStringgetName()
{
return name;
}
publicfloatgetCost()
{
return cost;
}
}
publicclassCustomer{
publicStringname;
publicfloatbalance;
publicCustomer(Stringname, floatbalance)
{
this.name=name;
this.balance=balance;
}
publicStringgetName()
{
returnname;
}
publicfloatgetBalance()
{
returnbalance;
}
publicbooleanuseBalance(floatamount)
{
if(amount<0f)
{
System.out.println("Cannot use negative balance amount!");
3. Apa yang dimaksud dengan enkapsulasi dalam pemrograman berorientasi objek? Berikan contoh bagaimana enkapsulasi diterapkan dalam kelas menggunakan modifier private dan method akses (getter dan setter)
Enkapsulasi adalah sebuah konsep yang mengajarkan bagaimana menyembunyikan detail implementasi dari pengguna kelas dan hanya menyediakan antarmuka publik yang diperlukan.. Enkapsulasi dicapai dengan mendeklarasikan variabel suatu kelas menjadi private, yang berarti data tersebut hanya dapat terakses oleh class itu sendiri. Dan jika ingin diakses oleh luar, sebuah getter dan setter yang merupakan sebuah metode public.
Contoh:
publicclassUser{
privateStringname;
privateintage;
privatefloatbalance;
publicUser()
{
}
publicStringgetDisplay()
{
returnname+", age : "+age+" , balance : "+balance;
}
publicvoidsetName(Stringvalue)
{
if(value==null)
{
System.out.println("Cannot set with null name!");
return;
}
this.name=value;
}
publicvoidsetAge(intage)
{
if(age<0)
{
System.out.println("Cannot set a negative age!");
return;
}
this.age=age;
}
publicvoidsetBalance(floatbalance)
{
if(balance<0)
{
System.out.println("Cannot set a negative balance!");
return;
}
this.balance=balance;
}
publicStringgetName()
{
returnname;
}
publicintgetAge()
{
returnage;
}
publicfloatgetBalance()
{
returnbalance;
}
}
publicclassMain{
publicstaticvoidmain(String[] args){
Useruser=newUser();
user.setName("Fajar");
user.setAge(-1);
user.setBalance(-100f);
user.setAge(19);
user.setBalance(9999999f);
System.out.println(user.getDisplay());
}
}
Hasil :
Penjelasan : Bisa dilihat implementasi dari User tidak diperlihatkan. Dan yang hanya diperlihatkan sebuah antarmuka publik yang digunakan untuk memodifikasi dari object tersebut. Sehingga state dari object bisa dipastikan tidak menyimpang dari apa yang diinginkan oleh class tersebut.
4. Buatlah dua kelas BankAccount dan Customer. Setiap objek Customer memiliki akun bank (BankAccount). Buatlah metode dalam Customer yang memungkinkan nasabah untuk melakukan penyetoran (deposit) dan penarikan (withdraw) melalui akun bank mereka. Pastikan interaksi terjadi melalui metode dalam Customer.
publicclassBankAccount{
privateString bankType;
privatefloat balance;
publicBankAccount(StringbankType)
{
this.bankType= bankType;
}
publicbooleandeposit(floatbalance)
{
if(balance <0)
{
returnfalse;
}
this.balance+= balance;
returntrue;
}
publicbooleansetBalance(floatbalance)
{
if(balance <0)
{
returnfalse;
}
this.balance= balance;
returntrue;
}
publicfloatwithdraw(floatamount)
{
if(amount <0)
{
return0f;
}
if(amount > balance)
{
floattempBalance= balance;
setBalance(0);
return tempBalance;
}
setBalance(balance - amount);
return amount;
}
publicfloatgetBalance()
{
return balance;
}
publicStringgetBankType()
{
return bankType;
}
}
publicclassCustomer{
privateStringname;
privateBankAccountbankAccount;
publicCustomer(Stringname, StringbankType)
{
this.name=name;
this.bankAccount=newBankAccount(bankType);
}
publicbooleandeposit(floatamount)
{
if(bankAccount.deposit(amount))
{
System.out.println(name+" ,successfully deposited "+amount+" to bank account "+bankAccount.getBankType());
5. Buatlah Desain Class Diagram untuk Trip Application yang digunakan untuk mengelola perjalanan. Setiap perjalanan memiliki atribut destination, distance, dan costPerKM. Fitur aplikasi sebagai berikut:
Menghitung total biaya perjalanan berdasarkan jarak dan biaya per kilometer.
Menambah penumpang dan mencetak daftar penumpang
Membatalkan perjalanan jika penumpang kurang dari jumlah minimum
Nama : Kadek Fajar Pramartha Yasodana NRP : 5025231185 Kelompok : 7 Nama Kelompok : - I Gusti Ngurah Arya Sudewa (5025231030) - Randi Palguna Artayasa (5025231020) - Kadek Fajar Pramartha Yasodana (5025231185) Kelas : KPPL E Mengimplementasikan Applikasi Nama Aplikasi : HelpThink Internet Chat Bot Support System Link Hosting : Vercel Source Code : GitHub Metode : Waterfall Setelah kita menguraikan hasil studi kasus pada Paper tugas sebelumnya, kita juga sudah menguraikan tahapan tahapan yang akan kita lakukan untuk membuat aplikasi support system berdasarkan ilmu yang telah didapatkan. Seperti tugas sebelumnya aplikasi yang kita buat bernama HelpThink . HelpThink merupakan aplikasi web chatbot technical support system, yang bisa digunakan oleh pengguna untuk bertanya mengenai permasalahannya terhadap suatu jaringan internet. Applikasi ini menggunakan metode waterfall. Selain itu tahapan-tahapan pembuatan applikasi antara lain: Requirement tahapan Requirement pada aplikasi He...
Nama : Kadek Fajar Pramartha Yasodana NRP : 5025231185 Kelas : PBO A Abstraksi & Simulasi Fox & Rabit 1. Tuliskan implementasi dari program kecil Abstract Class Makhluk hidup yang diwariskan kepada manusia, hewan, dan tumbuhan Source Code : GitHub Pada soal nomor ini, kita hanya perlu membuat sebuah abstract class makhluk hidup dengan beberapa metode abstrak juga. Setelah itu kita inherit classnya menjadi beberapa subclass Manusia, Hewan, dan Tumbuhan. Terdapat beberapa class seperti MakhlukHidup.java public abstract class MakhlukHidup { protected String name ; public MakhlukHidup (String name) { this . name = name ; } public abstract void doSomething () ; public abstract void grow () ; public abstract void breathe () ; } Class ini merupakan class yang sebagai template sebuah class makhluk hidup. dengan beberapa method yang harus di override oleh subclassnya yaitu doSomething, grow, dan breathe Manusia.java public class Manusia extends M...
Nama : Kadek Fajar Pramartha Yasodana NRP : 5025231185 Kelompok :7 Nama Kelompok : - Randi Palguna Artayasa (5025231020) - I Gusti Ngurah Arya Sudewa (5025231030) - Kadek Fajar Pramartha Yasodana (5025231185) Kelas : KPPL E Studi Kasus Pembuatan Aplikasi dengan menggunakan Metode Agile Develepment Judul Paper : Design and Development of a Web-Based Complaints Management System at Syiah Kuala University Integrated Laboratory Sumber Paper : International Journal Software Engineering and Computer Science (IJSECS) Pendahuluan Sistem Manajemen Pengaduan Berbasis Web di Universitas Syiah Kuala (USK) dibuat untuk mempercepat proses penanganan komplain di Unit Laboratorium Teknis Terpadu (ILTMU) yang sebelumnya dilakukan secara manual. Proses manual ini dinilai tidak efisien karena memerlukan waktu dan tenaga lebih dari staf untuk menangani keluhan yang masuk. Sistem ini bertujuan untuk meningkatkan kualitas layanan dan kinerja ILTMU dengan ...
Comments
Post a Comment