- Yahya Ayyash Ashdaqi 5025231210
- Aryaka Leorgi Eprideka 5025231117
- Muhammad Risyad Himawan Putra 5025231205
Thursday, December 12, 2024
Pertemuan 15 - Ide Final Project
Wednesday, December 11, 2024
Pertemuan 16 - EAS Final Project
Nama: Muhammad Risyad Himawan Putra
NRP: 5025231205
Kelas: Pemrograman Berbasis Obyek (G)
Music Player
Implementation in BlueJ
Inheritance (pewarisan) adalah salah satu konsep utama dalam pemrograman berorientasi objek (OOP), yang memungkinkan sebuah kelas (subclass atau child class) mewarisi atribut dan metode dari kelas lain (superclass atau parent class). Dengan inheritance, kode menjadi lebih terorganisir, dapat digunakan kembali, dan mudah untuk diperluas.
Dalam Java, inheritance diimplementasikan menggunakan keyword extends. Subclass akan secara otomatis memiliki semua properti dan metode dari superclass, kecuali yang dideklarasikan sebagai private. Subclass juga dapat menambahkan atribut atau metode baru, serta meng-override metode dari superclass jika diperlukan.
Kelas MusicPlayer adalah subclass dari PlaybackListener. Dengan inheritance ini semua atribut dan metode di PlaybackListener dapat digunakan langsung oleh MusicPlayer, tanpa perlu mendeklarasikannya ulang.
1. Slider Playback (Playback Slider)
Fitur:
Aplikasi dilengkapi dengan slider yang menunjukkan progres pemutaran lagu secara real-time. Slider ini memberikan pengguna gambaran visual tentang posisi lagu yang sedang dimainkan.Implementasi:
- Saat lagu diputar, nilai slider dihitung menggunakan variabel
currentTimeInMillidancurrentSong.getFrameRatePerMs(). - Metode
musicPlayerGUI.setPlaybackSliderValue(calculatedFrame)digunakan untuk memperbarui posisi slider.
- Saat lagu diputar, nilai slider dihitung menggunakan variabel
2. Start dan Stop Musik
Start:
- Fitur:
Memulai pemutaran lagu dari awal atau dari posisi terakhir saat lagu dijeda. - Implementasi:
- Lagu diputar menggunakan
AdvancedPlayer.play(). - Jika lagu dijeda (
isPaused = true), pemutaran dilanjutkan dari frame tertentu menggunakanplay(currentFrame, Integer.MAX_VALUE).
- Lagu diputar menggunakan
- Fitur:
Stop:
- Fitur:
Menghentikan pemutaran lagu sepenuhnya dan membersihkan sumber daya. - Implementasi:
- Lagu dihentikan menggunakan
advancedPlayer.stop()danadvancedPlayer.close(). - Variabel
advancedPlayerdiatur menjadinulluntuk mengindikasikan bahwa tidak ada pemutaran aktif.
- Lagu dihentikan menggunakan
- Fitur:
3. Load Song
- Fitur:
Memuat lagu baru untuk diputar, menggantikan lagu yang sedang aktif (jika ada). - Implementasi:
- Lagu baru dimuat menggunakan metode
loadSong(Song song). - Jika ada lagu yang sedang aktif dan belum selesai diputar (
!songFinished), lagu dihentikan menggunakanstopSong(). - Variabel
currentFramedancurrentTimeInMillidi-reset ke 0 untuk memulai dari awal. - Pemutaran lagu dimulai dengan
playCurrentSong().
- Lagu baru dimuat menggunakan metode
Thursday, December 5, 2024
Pertemuan 14 - Pemrograman GUI
Nama: Muhammad Risyad Himawan Putra
NRP: 5025231205
Kelas: Pemrograman Berbasis Obyek (G)
GUI Programming
Implementation in BlueJ
Class OFImage
OFImage(BufferedImage image)
- Menginisialisasi objek
OFImagedengan menyalin data dari objekBufferedImageyang sudah ada. - Menyalin model warna dan data gambar dari
BufferedImageke dalam objekOFImage.
OFImage(int width, int height)
- Konstruktor untuk membuat objek
OFImagedengan ukuran yang ditentukan (lebar dan tinggi), tanpa konten gambar yang spesifik.
void setPixel(int x, int y, Color col)
- Menetapkan nilai piksel pada posisi
(x, y)dengan warna yang ditentukan dalam objekColor.
Color getPixel(int x, int y)
- Mengambil warna piksel pada posisi
(x, y)dalam bentuk objekColor.
darker()
- Menurunkan kecerahan gambar dengan memproses setiap piksel dan menerapkan metode
darker()pada setiap warna piksel.
lighter()
- Meningkatkan kecerahan gambar dengan memproses setiap piksel dan menerapkan metode
brighter()pada setiap warna piksel.
threshold()
- Melakukan operasi threshold tiga level pada gambar, mengubah warna setiap piksel menjadi hitam, abu-abu, atau putih berdasarkan kecerahannya.
Class ImagePanel
ImagePanel()
- Menginisialisasi objek
ImagePanelyang digunakan untuk menampilkan gambar. Panel ini memiliki ukuran default 360x240 piksel.
void setImage(OFImage image)
- Menetapkan gambar yang akan ditampilkan pada panel, serta memperbarui ukuran panel sesuai dengan ukuran gambar yang baru.
void clearImage()
- Membersihkan gambar yang ditampilkan dengan mengisi panel dengan warna latar belakang terang.
void paintComponent(Graphics g)
- Digunakan untuk menggambar ulang panel dan menampilkan gambar yang ada pada
ImagePanel.
Class ImageViewer
ImageViewer()
- Menginisialisasi objek
ImageVieweryang berfungsi sebagai aplikasi tampilan gambar dan memungkinkan pengguna untuk membuka, mengedit, dan menyimpan gambar.
void openFile()
- Menampilkan dialog pemilih file untuk memilih dan membuka gambar baru. Jika gambar berhasil dimuat, maka gambar tersebut ditampilkan pada panel.
void close()
- Menutup gambar yang sedang ditampilkan dan membersihkan panel gambar.
void quit()
- Menutup aplikasi
ImageViewer.
void makeDarker()
- Memproses gambar untuk membuatnya lebih gelap dengan menggunakan metode
darker()yang telah disediakan dalam objekOFImage.
void makeLighter()
- Memproses gambar untuk membuatnya lebih terang dengan menggunakan metode
lighter()yang telah disediakan dalam objekOFImage.
void applyThreshold()
- Memproses gambar dengan metode
threshold()untuk membuat gambar dengan tiga level warna berdasarkan kecerahan piksel.
Class FileManager
FileManager()
- Menginisialisasi objek
FileManageryang digunakan untuk mengelola operasi file seperti membuka, membaca, menyimpan, dan menulis gambar.
File openFile(String fileName)
- Membuka file gambar yang ditentukan dengan nama file
fileName. Mengembalikan objekFileyang merepresentasikan file gambar tersebut.
void saveImage(File file, OFImage image)
- Menyimpan gambar yang ada dalam objek
OFImageke dalam file yang ditentukan. Operasi ini akan menulis file ke disk dengan format gambar yang sesuai.
OFImage loadImage(File file)
- Memuat gambar dari file yang ditentukan. Mengembalikan objek
OFImageyang memuat data gambar yang ada dalam file tersebut.
Class Login
Login()
- Menginisialisasi objek
Logindengan username dan password yang telah ditentukan.
void go()
- Menginisialisasi
JFramesebagai tampilan utama aplikasi. - Mengatur
JPaneldengan layoutGridLayoutuntuk menata komponen secara vertikal. - Menambahkan komponen-komponen seperti label untuk username dan password, serta tombol
LogindanCancel.
class LoginListener implements ActionListener
- Menangani aksi yang terjadi ketika tombol
Loginditekan. - Memeriksa apakah username dan password yang dimasukkan sesuai dengan yang telah ditentukan.
- Menampilkan pesan
Login Granted!jika berhasil, atauLogin Deniedjika gagal.
class CancelListener implements ActionListener
- Menangani aksi yang terjadi ketika tombol
Cancelditekan. - Membersihkan teks yang ada di
JTextFielduntuk username dan password. - Fokus kembali di
txtUsernameagar pengguna bisa langsung memasukkan username baru.
Penjelasan Fungsi Utama
Login
- Merupakan class utama yang memuat logika untuk tampilan dan interaksi pada jendela login.
- Username dan password yang dimasukkan akan dibandingkan dengan nilai yang telah ditentukan di dalam kode, yaitu
risyaddan123.
LoginListener
- Class ini berfungsi untuk memproses login dan memberikan feedback kepada pengguna setelah memeriksa data login.
- Jika username dan password sesuai, maka akan muncul pesan
Login Granted!sebagai pemberitahuan berhasil. - Jika username atau password salah, maka akan muncul pesan
Login Denied.
CancelListener
- Class ini menangani aksi pembatalan, yang menghapus teks di kolom input dan mengatur fokus kembali ke kolom username.
Pertemuan 13 - Abstraksi
Nama: Muhammad Risyad Himawan Putra
NRP: 5025231205
Kelas: Pemrograman Berbasis Obyek (G)
Abstract Class
Implementation in BlueJ
1. Tuliskan implementasi dari program kecil Abstract Class Makhluk hidup yang diwariskan kepada manusia, hewan, dan tumbuhan
Class MakhlukHidup
abstract class MakhlukHidup
- Menjadi blueprint untuk semua makhluk hidup, yang mendefinisikan perilaku umum seperti
bernafasdanmakan. - Memiliki metode konkret
info()untuk memberikan informasi umum tentang makhluk hidup.
Manusia, Hewan, Tumbuhan
- Subclass dari
MakhlukHidupyang mengimplementasikan metode abstrak sepertibernafas()danmakan(). - Setiap subclass memiliki implementasi spesifik yang sesuai dengan jenis makhluk hidup tersebut.
info()
- Merupakan metode konkret di abstract class
MakhlukHidupuntuk menampilkan informasi dasar bahwa objek tersebut adalah makhluk hidup.
Class Main & Testing
Class Foxes and Rabbits Simulation
abstract class Animal
- Blueprint untuk semua hewan dalam simulasi.
- Mengelola properti umum seperti
agedanaliveuntuk menentukan usia dan status hidup hewan. - Memiliki metode abstrak seperti
act()dangetMaxAge()untuk perilaku spesifik subclass.
class Rabbit
- Subclass dari
Animalyang mewakili kelinci. - Mengimplementasikan metode
act()untuk perilaku kelinci (melompat). - Menentukan usia maksimal kelinci sebagai 5 tahun dengan metode
getMaxAge().
class Fox
- Subclass dari
Animalyang mewakili rubah. - Mengimplementasikan metode
act()untuk perilaku rubah (berburu). - Menentukan usia maksimal rubah sebagai 10 tahun dengan metode
getMaxAge().
class Simulation
- Mengelola logika utama simulasi interaksi antar kelinci dan rubah selama beberapa hari.
- Memantau usia dan status kehidupan hewan dan menambahkan event acak seperti kelinci mati atau lahir baru.
Class Main & Testing
PPB EAS - Aplikasi Member Timezone
Manajemen Keanggotaan & Loyalty Program Timezone dengan Room Database dan Jetpack Compose Aryaka Leorgi Epridaka - 5025231117 Muhammad ...
-
Perkembangan Teknologi OS di Berbagai Device (Ringkas - 2026) Perkembangan Teknologi OS di Berbagai Device ...
-
Membuat Aplikasi Android "Happy Birthday" dengan Jetpack Compose Jetpack Compose adalah toolkit modern Android untuk membuat UI...
-
Nama: Muhammad Risyad Himawan Putra NRP: 5025231205 Kelas: Pemrograman Berbasis Obyek (G) Auction System in BlueJ Source Code Github Class ...