0% menganggap dokumen ini bermanfaat (0 suara)
22 tayangan10 halaman

Modul 1 - Attachment

Modul ini membahas konsep dan penerapan generics di Java, termasuk class, method, array, dan wildcard generics serta enumerated types. Mahasiswa diajak mempraktikkan berbagai contoh kasus untuk memahami implementasi generics."

Diunggah oleh

Dawamul 336
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
22 tayangan10 halaman

Modul 1 - Attachment

Modul ini membahas konsep dan penerapan generics di Java, termasuk class, method, array, dan wildcard generics serta enumerated types. Mahasiswa diajak mempraktikkan berbagai contoh kasus untuk memahami implementasi generics."

Diunggah oleh

Dawamul 336
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 10

VERSION 1.

1
February 5, 2023

[STRUKTUR DATA]
MODUL 1, GENERICS JAVA

DISUSUN OLEH:
MUHAMMAD SYAUQI AMIQ AMRULLAH
GILANG DWI DARMAWAN

DIAUDIT OLEH:
DIDIH RIZKI CHANDRANEGARA, S.KOM., M.KOM.

PRESENTED BY:

TIM LAB-IT UNIVERSITAS MUHAMMADIYAH MALANG


Laboratorium Informatika

[STRUKTUR DATA]
PETUNJUK PENGERJAAN MODUL
Perhatikan petunjuk praktikum dibawah ini:
1. Wajib membaca materi modul, sewaktu – waktu dapat direview oleh asisten saat demo
2. Gunakan referensi yang disediakan modul dan referensi lain pada google (yang kredibel)
3. Latihan praktikum wajib dikerjakan pada praktikum minggu pertama secara bersama – sama di laboratorium
dan tidak boleh dijadikan pekerjaan rumah
4. Tugas praktikum boleh dijadikan pekerjaan rumah dan di demokan kepada asisten pada praktikum
minggu kedua
5. Memperhatikan kerapihan source code termasuk aturan penamaan Class, Method, Variable, File, dan lain
- lainnya.
6. Segera lapor kepada asisten jika ada kesalahan pada modul praktikum.

PERSIAPAN MATERI
Mahasiswa diharapkan mempelajari materi sebelum mengerjakan tugas, materi yang tercakup antara
lain:
1. Bahasa Pemrograman Java
2. Class dan Object
3. Enkapsulasi
4. Array

TUJUAN
Mahasiswa mampu menguasai dan menjelaskan konsep dari Struktur Data Generics serta mengetahui fungsi
generics dalam beberapa kasus nyata.

TARGET MODUL
Mahasiswa mampu memahami:
1. Menerapkan Array of Object
2. Generics Class
3. Generics Method
4. Wildcard
5. Enumerated Types
6.
PERSIAPAN SOFTWARE/APLIKASI
1. Java Development Kit
2. Java Runtime Environment
3. IDE (Intellij IDEA, Eclipse, Netbeans, dll)

5/2/2023 [STRUKTUR DATA] 2


Laboratorium Informatika

REFERENSI MATERI
Oracle iLearning Java Programming section 6-1 Generics
Geekforgeeks:
https://www.geeksforgeeks.org/generics-in-java/
Youtube (Indonesia)
https://www.youtube.com/watch?v=bvWRDAl30Gs
Youtube (English)
https://www.youtube.com/watch?v=K1iu1kXkVoA
Javapoint
https://www.javatpoint.com/generics-in-java
Programiz
https://www.programiz.com/java-programming/generics

Note:
Dari referensi tersebut mungkin terdapat sedikit perbedaan satu sama yang lain, cukup pahami konsepnya
dan terapkan pada kasus di modul ini.

MATERI POKOK

Pengertian Generics
Generics merupakan sebuah cara yang digunakan untuk membuat tipe bersifat umum. Generics
juga dilakukan untuk menambah stabilitas pada kode program sehingga dapat membantu
mempermudah deteksi bug pada saat kompilasi.

Mengapa mempelajari Generics

Generics memberikan keamanan tipe pada saat kompilasi yang memungkinkan pemrogram
mengetahui tipe yang tidak valid. Generics memungkinkan tipe (class dan interface) menjadi parameter
ketika mendefinisikan suatu class, interface, dan method. Sama seperti parameter formal yang lebih
akrab digunakan dalam deklarasi method, parameter memberikan cara untuk menggunakan kembali
kode yang sama dengan input yang berbeda. Perbedaannya terdapat pada input yang dilakukan ke
parameter formal adalah suatu nilai, sedangkan input untuk parameter adalah suatu tipe.
Penerapan Generics memiliki banyak kegunaan dalam penerapan pada real project seperti
pembuatan Frontend Website, Mobile Application, Backend Application, karena dapat membuat kode
kita menjadi modular dan reusable sehingga kode kita menjadi rapih dan mudah dipahami oleh
programmer lainya serta meminimalisir penulisan kode yang berulang. Oleh karena itu materi Generics
ini menjadi salah satu basic Struktur Data yang harus kita pahami dengan dalam karena tidak sedikit
programmer yang menerapkan konsep ini di perusahaannya atau di proyeknya.

5/2/2023 [STRUKTUR DATA] 3


Laboratorium Informatika

Contoh Perbedaan Dalam Pemanfaatan Generics:


Berikut adalah kode program yang dibuat tanpa menggunakan metode generics (metode yang
dipakai adalah metode casting yang digunakan untuk menerima value dari variable):

Jika menggunakan metode generics:

Dengan metode generics, pemrogram dapat menerapkan algoritma generics yang bekerja pada koleksi
dari berbagai jenis, dapat disesuaikan, aman dan lebih mudah dibaca. Tipe generics dapat
dideklarasikan menggunakan angled brackets (tanda <>) dengan didalamnya diisi tipe pengembalian
yang ingin didapatkan.

Contoh Deklarasi Class Menggunakan Metode Generics:


Penggunaan pada class ditandai dengan angled brackets (tanda <>) lalu dituliskan di dalamnya
seperti class Cell berikut:

Untuk pembuatan object dan menerima object yang menggunakan class dapat menggunakan cara
sebagai berikut:

Deklarasi generics dapat dilakukan dengan cara yang lebih ringkas seperti yang dapat dilihat pada class
Main diatas, yaitu pada baris ke-3 new Cell<Integer> dan baris ke-4 diringkas menjadi new Cell<>,
kedua penulisan tersebut benar semua.

5/2/2023 [STRUKTUR DATA] 4


Laboratorium Informatika

Konvensi Penamaan Parameter Pada Generics:


Penamaan parameter dapat dibuat sesuai keinginan pemrogram, berikut penamaan parameter
yang paling umum digunakan:
 E – Element (digunakan secara luas oleh Java Collections Framework)
 K – Key
 N – Number
 T – Type
 V – Value

Generics Method:
Generics method adalah metode yang digunakan dengan memanfaatkan tipe parameter
mereka sendiri. Cara ini mirip dengan mendeklarasikan tipe generics, tetapi cakupan tipe parameter
terbatas pada metode yang dideklarasikan. Method static, non-static, dan constructor class generics
dapat menggunakan metode ini. Berikut adalah contoh penggunaan generics method:

Pemanggilan dan pembuatan object dapat dilakukan pada class main seperti berikut:

Wildcards:
Wildcard dituliskan dalam tanda tanya (?) yang memiliki arti tipe data belum diketahui.
Wildcard dapat digunakan dalam berbagai situasi, seperti jenis parameter, field, variabel local atau tipe
pengembalian. Dalam wildcard terdapat istilah yang disebut dengan upper bound wildcards, yaitu
digunakan untuk memberi batasan pada variabel. Berikut adalah contoh penggunaannya:

5/2/2023 [STRUKTUR DATA] 5


Laboratorium Informatika

Enumerated Types:
Enumerated types adalah tipe data khusus yang memungkinkan variabel menjadi kumpulan
konstanta yang telah ditentukan. Variabel harus sama dengan salah satu nilai yang telah ditentukan
sebelumnya. Enumerated types ini bisa digunakan untuk arah kompas (NORTH, SOUTH, EAST, WEST)
danlainnya. Berikut adalah contoh Enumerated types untuk membuat deskripsi nama hari:

5/2/2023 [STRUKTUR DATA] 6


Laboratorium Informatika

LATIHAN PRAKTIKUM

LATIHAN 1
Berikut adalah kode program dengan pemanfaatan generics pada class. Lakukan percobaan
latihan dengan mengetik kode program pada IDE anda untuk mengetahui outputnya.

Setelah mempraktikan kode diatas, mari kita coba untuk mempraktikan pada kasus lain.
Pemanfaatan generics juga bisa terdapat pada array atau bisa disebut array of object. Cobalah untuk
mengikuti kode program dibawah agar mengetahui alur proses sehingga menambah
pemahaman Anda.
1. Buat class generics untuk konsumsi

5/2/2023 [STRUKTUR DATA] 7


Laboratorium Informatika
2. Buat class hidangan

3. Pemanfaatan inheritance pada class minuman

4. Pemanfaatan inheritance pada class makanan

5. Class main

5/2/2023 [STRUKTUR DATA] 8


Laboratorium Informatika

TUGAS PRAKTIKUM

KEGIATAN 1
Buat class generic bernama “Segitiga” yang akan digunakan untuk menyimpan nilai alas dan
tinggi dengan syarat hanya menerima jenis (Numbers). Tugas ini dibuat dengan tujuan menghitung nilai
inputan dan mendapatkan hasil luas dari Segitiga dalam 2 tipe. Berikut adalah syarat yang harus
dipenuhi dalam menyelesaikan tugas ini:
1. Fungsi dalam class generic:
Tipe Nama Method Deskripsi
Segitiga(T alas, T tinggi) Inisialisasi variabel alas dan
Constructor
tinggi.
getResultAsInt() Mendapatkan hasil
Int
perhitungan luas segitiga
dalam bentuk tipe integer.
getResultAsDouble() Mendapatkan hasil
Double
perhitungan luas segitiga
dalam bentuk tipe double.

2. Memanfaatkan fungsi Scanner untuk menerima input nilai alas dan tinggi dari user
3. Contoh inisialisasi object pada main dapat dilakukan seperti ini:
Segitiga<Integer> luasTipeInt = new Segitiga<>();
Segitiga<Double> luasTipeDouble = new Segitiga<>();

5/2/2023 [STRUKTUR DATA] 9


Laboratorium Informatika

Berikut adalah contoh output program perhitungan luas segitiga:

Mahasiswa diperbolehkan melakukan improvisasi dari tugas yang diberikan dengan syarat tidak
mengurangi ketentuan yang ada.

CATATAN
Aturan umum penulisan JAVA agar mudah dikoreksi oleh asisten:
1. Untuk nama class, enum, dan yang lainnya biasakan menggunakan gaya CamelCase (diawali
dengan huruf besar pada tiap kata untuk mengganti spasi) seperti: Kursi, JalanRaya,
ParkiranGedung, dan lain seterusnya.
2. Untuk penulisan nama method dan attribute diawali dengan huruf kecil di awal kata dan
menggunakan huruf besar untuk kata setelahnya, seperti: getNamaJalan, namaJalan, harga,
setNamaJalan, dan lain seterusnya.
3. Jika menggunakan IDE Intellij jangan lupa untuk memformat kode agar terlihat rapi menggunakan
menu code -> show reformat file dialog -> centang semua field dan klik ok.

DETAIL PENILAIAN TUGAS

Kriteria Nilai
Semua Ketentuan Pada Tugas Praktikum Terpenuhi 40
Saat Demo dan Kerapihan Code Serta Tidak Ada
Plagiasi
Mengerjakan Latihan Praktikum 40

Presensi Kehadiran 20

5/2/2023 [STRUKTUR DATA] 1


0

Anda mungkin juga menyukai