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

 Source Code: Music Player Github

1. Apa yang dimaksud dengan Inheritance dalam Java. Bagaimana implementasi inheritance dalam Final Project yang sedang dikerjakan.

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.

public class MusicPlayer extends PlaybackListener {

Kelas MusicPlayer adalah subclass dari PlaybackListener. Dengan inheritance ini semua atribut dan metode di PlaybackListener dapat digunakan langsung oleh MusicPlayer, tanpa perlu mendeklarasikannya ulang.

2. Jelaskan fitur Aplikasi yang ada dalam Final Project

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 currentTimeInMilli dan currentSong.getFrameRatePerMs().
    • Metode musicPlayerGUI.setPlaybackSliderValue(calculatedFrame) digunakan untuk memperbarui posisi slider.

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 menggunakan play(currentFrame, Integer.MAX_VALUE).
  • Stop:

    • Fitur:
      Menghentikan pemutaran lagu sepenuhnya dan membersihkan sumber daya.
    • Implementasi:
      • Lagu dihentikan menggunakan advancedPlayer.stop() dan advancedPlayer.close().
      • Variabel advancedPlayer diatur menjadi null untuk mengindikasikan bahwa tidak ada pemutaran aktif.

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 menggunakan stopSong().
    • Variabel currentFrame dan currentTimeInMilli di-reset ke 0 untuk memulai dari awal.
    • Pemutaran lagu dimulai dengan playCurrentSong().
3. Buatlah desain Diagram Kelas dari aplikasi Final Project


App: Bagian ini digunakan untuk memulai program, dan mempunyai hubungan uses dengan musicPlayerGUI untuk menampilkan interface-nya.

musicPlayerGUI: Bagian ini digunakan untuk menampilkan interface dari pemutar Mp3. Class ini mempunyai hubungan uses dengan musicPlayer yang digunakan untuk load song, memutar, menghentikan, dan mengatur waktu musik yang ingin didengarkan. Class ini juga mempunyai hubungan uses dengan class Song yang digunakan untuk memberikan informasi pada tiap-tiap lagu yang sedang diputar.

musicPlayer: Bagian ini digunakan untuk melakukan play, pause, load song.

Song: Bagian ini digunakan memberikan informasi pada tiap tiap file mp3.

4. Implementasikan Aplikasi yang telah didesain dengan menggunakan Pemrograman Berbasis Obyek Java


4. Buat PPT presentasi yang menunjang Demo Aplikasi

Link PowerPoint: Canva.com























No comments:

Post a Comment

PPB EAS - Aplikasi Member Timezone

Manajemen Keanggotaan & Loyalty Program Timezone dengan Room Database dan Jetpack Compose Aryaka Leorgi Epridaka - 5025231117 Muhammad ...