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
No comments:
Post a Comment