MODUL 4
Design Pattern & Object Composing
DISUSUN OLEH :
Moh Iqbal Kharisma S 3411211106
i
BAB I. HASIL PRAKTIKUM
I.1 Latihan
Dalam praktikum ini, akan dilakukan menggunakan Java. Contoh kasus yang
return rollNo;
this.rollNo = rollNo;
return name;
this.name = name;
(Screenshot hasil)
1
Gambar 1. Hasil Compile
I.1.B. Analisis
Program ini adalah contoh dari prinsip enkapsulasi dalam pemrograman berorientasi
objek, di mana data (atribut) disimpan sebagai pribadi dan diakses melalui metode publik. Ini
membantu dalam menjaga integritas data dan memungkinkan kontrol atas bagaimana data
diakses dan diubah.
2
View : StudentView.java
studentRollNo){
System.out.println("Student: ");
I.1.C. Analisis
Program ini dapat digunakan sebagai bagian dari aplikasi yang lebih besar yang
menggunakan pola desain MVC, di mana kelas ini digunakan untuk menampilkan informasi
siswa kepada pengguna.
Controller : StudentController.java
private Student model;
private StudentView view;
public StudentController(Student model, StudentView view){
this.model = model;
this.view = view;
}
public void setStudentName(String name){
model.setName(name);
}
public String getStudentName(){
return model.getName();
}
public void setStudentRollNo(String rollNo){
model.setRollNo(rollNo);
3
}
public String getStudentRollNo(){
return model.getRollNo();
}
public void updateView(){
view.printStudentDetails(model.getName(), model.getRollNo());
}
}
I.1.D. Analisis
Program ini mengimplementasikan pola desain MVC dengan jelas. Kelas
StudentController bertindak sebagai penghubung antara model (Student) dan tampilan
(StudentView), dan juga memberikan metode untuk mengatur dan mengambil data siswa serta
memperbarui tampilan ketika data berubah. Ini membantu memisahkan logika aplikasi, data,
dan tampilan, sehingga membuat aplikasi lebih modular dan mudah di-maintain.
I.1.E. Analisis
Program ini adalah contoh bagaimana pola desain MVC digunakan dalam aplikasi Java.
Model (Student), tampilan (StudentView), dan pengendali (StudentController) dipisahkan
dengan jelas, memungkinkan pengelolaan data dan tampilan secara terpisah.
5
BAB II. TUGAS PRAKTIKUM
II.1 Tugas
Deskripsi atau Instruksi dari Tugas/Pekerjaan
Name: Java
Course ID: 01
Course Details:
Name: Python
Course ID: 01
6
public void setCourseCategory(String courseCategory) {
this.courseCategory = courseCategory;
}
II.1.B. Analisis
Program ini adalah contoh sederhana penggunaan kelas dalam Java untuk
merepresentasikan dan mengelola data kursus, serta memungkinkan pembaruan data
menggunakan metode-metode setter.
7
//Create a view : to write course details on console
CourseView view = new CourseView();
CourseController controller = new CourseController(model, view);
controller.updateView();
//update model data
controller.setCourseName("Python");
System.out.println("nAfter updating, Course Details are as
follows");
controller.updateView();
}
private static Course retriveCourseFromDatabase() {
Course course = new Course();
course.setName("Java");
course.setId("01");
course.setCategory("Programming");
return course;
}
}
II.1.C. Analisa
Program ini adalah contoh bagaimana pola desain MVC digunakan dalam aplikasi Java
untuk mengelola data kursus. Model (Course), tampilan (CourseView), dan pengendali
(CourseController) dipisahkan dengan jelas, memungkinkan pemisahan tanggung jawab antara
logika aplikasi, tampilan, dan data. Dalam program ini, nama kursus diubah dari "Java"
menjadi "Python", dan tampilan diperbarui secara otomatis setelah perubahan tersebut.
II.1.D. Analisis
Sebaiknya implementasikan metode-metode tersebut dengan menambahkan pernyataan
return atau pernyataan yang mengatur nilai atribut sesuai dengan argumen yang diberikan. Ini
akan memungkinkan kelas Course untuk mengambil dan mengatur data kursus dengan benar.
9
II.1.E. Analisis
Program ini adalah contoh implementasi tampilan dalam sebuah aplikasi. Tampilan ini
menerima data dari model (dalam hal ini, kursus) dan menampilkan data tersebut kepada
pengguna dalam format yang sesuai.
II.1.F. Analisis
Program ini mengimplementasikan pola desain MVC dengan jelas. Kelas
CourseController bertindak sebagai penghubung antara model (Course) dan tampilan
(CourseView) serta memberikan metode untuk mengatur dan mengambil data kursus serta
memperbarui tampilan ketika data berubah. Ini membantu memisahkan logika aplikasi, data,
dan tampilan, sehingga membuat aplikasi lebih modular dan mudah di-maintain.
import java.util.Scanner;
public class Kasir {
public static void main(String[] args) {
String nama;
int harga;
int stok;
Scanner in = new Scanner(System.in);
// Inisiasi
nama = "GeForce GTX 1060Ti";
harga = 3000;
stok = 10;
// Tampilan info
System.out.println("Nama Barang : "+nama);
System.out.println("Harga Barang : "+harga);
System.out.println("Stok Barang : "+stok);
// Transaksi pembelian
int qty;
System.out.println("Transaksi Pembelian");
System.out.print("Jumlah barang : ");
qty=in.nextInt();
stok = stok-qty;
// Print Pembayaran
System.out.println("Jumlah Bayar : "+qty*harga);
11
// Tampilan info
System.out.println("Nama Barang : "+nama);
System.out.println("Harga Barang : "+harga);
System.out.println("Stok Barang : "+stok);
}
}
II.1.G. Analisis
Program ini adalah contoh sederhana dari aplikasi kasir yang memungkinkan pengguna
untuk membeli barang tertentu dengan mengurangi stok dari barang tersebut setelah pembelian.
Namun, dalam kehidupan nyata, aplikasi kasir seringkali melibatkan lebih banyak barang,
pelanggan, dan operasi yang lebih kompleks, seperti menghitung pajak dan mengelola
pembayaran yang lebih luas.
12
BAB III. KESIMPULAN
1. Pentingnya Pola Desain (Design Patterns): Desain perangkat lunak adalah bagian
integral dari pengembangan perangkat lunak yang efektif dan skalabel. Pola desain
adalah solusi umum untuk masalah desain perangkat lunak yang sering muncul.
Mempelajari dan menerapkan pola desain membantu pengembang untuk menghasilkan
kode yang lebih terstruktur, mudah dimengerti, dan mudah dikelola.
2. Berbagai Jenis Pola Desain: Ada berbagai macam pola desain yang masing-masing
memiliki tujuan dan konteks penggunaan yang berbeda. Contoh-contoh pola desain
meliputi Pola Singleton, Pola Factory, Pola Observer, Pola Builder, Pola Strategy, Pola
MVC (Model-View-Controller), dan banyak lagi.
3. MVC (Model-View-Controller): Pola desain MVC adalah salah satu pola desain yang
sangat umum digunakan dalam pengembangan perangkat lunak berbasis GUI. Ini
memisahkan komponen model (data), tampilan (presentasi), dan pengendali (logika
aplikasi) untuk mempermudah pemeliharaan, skalabilitas, dan pengembangan aplikasi
yang lebih terstruktur.
4. Komposisi Objek: Objek dalam pemrograman seringkali berinteraksi satu sama lain
untuk mencapai tujuan yang lebih besar. Pengembangan perangkat lunak yang efektif
sering melibatkan komposisi objek, yaitu penggabungan dan pemaduan objek-objek
yang berbeda untuk mencapai fungsi dan fitur yang kompleks.
5. Desain yang Dapat Diperluas (Extensible Design): Saat merancang perangkat lunak,
sangat penting untuk mempertimbangkan kemampuan untuk memperluas dan
memodifikasi fungsionalitas di masa depan tanpa mengganggu struktur yang sudah ada.
Pola desain dan komposisi objek yang baik dapat membantu mencapai desain yang
dapat diperluas.
6. Kesesuaian dengan Konteks: Pemilihan pola desain dan pendekatan komposisi objek
harus selaras dengan kebutuhan dan konteks aplikasi yang sedang dikembangkan.
Tidak semua pola desain cocok untuk setiap situasi, jadi penting untuk memahami
kapan dan bagaimana menerapkan pola yang sesuai.
7. Praktik Terbaik dalam Pengembangan Perangkat Lunak: Memahami pola desain dan
penggunaan yang baik dalam komposisi objek adalah praktik terbaik dalam
13
pengembangan perangkat lunak yang membantu menghasilkan kode yang lebih efisien,
mudah dimengerti, dan mudah dikelola.
Dengan memahami dan menerapkan konsep-konsep di atas, pengembang dapat merancang
dan mengembangkan perangkat lunak yang lebih baik, lebih terstruktur, dan lebih mudah
dikelola dalam berbagai konteks pengembangan.
14