Skip to content
/ Task_5 Public

Exercise on Inner Class, Exception and Threading

Notifications You must be signed in to change notification settings

OOP-ADF/Task_5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Task_5

Exercise on Inner Class, Exception and Threading

Buatlah program java Aplikasi Music Player sebagai berikut

MusicPlayer

  • Buatlah sebuah Java Project MusicPlayer

JLayer library

1. Application.java

  • Buatlah kelas Application sebagai berikut
    01
  • Import library berikut pada kelas Application
    02
  • class ThreadPlayer merupakan Inner Class

a. inner class ThreadPlayer

  • extends Thread
  • constructor
  • menginisialisasi String filepath
  • method run()
  • lakukan proses berikut dalam blok try-catch
  • Baca file yang diambil dari String filepath menggunakan FileInputStream
  • Instansiasi objek Player untuk memainkan file musik yang dibaca
  • Putar musik menggunakan method play() dari objek Player 03
  • tambahkan catch FileNotFoundException jika file pada filepath tidak ditemukan
  • tambahkan catch JavaLayerException jika terjadi error saat memainkan musik
  • isi catch melempar new IllegalStateException 04

b. Constructor Application

  • Menginstansiasi Arraylist musicList baru

c. method addMusic( String path )

  • Menambahkan String path ke dalam ArrayList musicList

d. method getMusicList()

  • mengembalikan ArrayList musicList dalam bentuk array String
    05

e. method getNowPlayed()

  • mengembalikan String path music yang sedang diputar
    06

f. method removeMusic( int i )

  • menghapus String path ke-i dari musicList

g. method play( int i )

  • method akan memutar lagu ke-i dari dalam musicList
  • set nowplaying = i
  • ambil String path music ke-i dari musicList
  • instansiasi objek ThreadPlayer baru menggunakan String path yang diambil
  • jalankan objek ThreadPlayer dengan memanggil method start()
    07

h. method stop()

  • method menghentikan music yang sedang diputar dengan menghentikan thread yang sedang berjalan
    08

i. method next()

  • method menghentikan music yang sedang diputar
  • memainkan music yang berada di setelah music yang sedang diputar di dalam listMusic
  • method dipanggil jika nowPlaying bukanlah music terakhir di dalam listMusic
    09

j. method prev()

  • method menghentikan music yang sedang diputar
  • memainkan music yang berada di sebelum music yang sedang diputar di dalam listMusic
  • method dipanggil jika nowPlaying bukanlah music pertama di dalam listMusic
    ![10] (/asset/10.JPG)

2. PlayerGui.java

  • Buatlah class JFrame PlayerGui.java dengan tampilan sebagai berikut
    11
  • Komponen yang ada :
  • listMusic : JList
  • txFieldPlaying : JTextField, set Editable = false
  • btnAdd, btnDelete, btnPrev, btnPlay, btnStop, btnNext
  • hapus main method (psvm) di dalam GUI
  • tambahkan method getter objek untuk mengembalikan setiap objek button
    12
  • method void setListMusic( String[] musicList )
  • method mengeset JList listMusic dengan data musicList dengan memanggil method setListData
    13
  • method void setTxFieldPlaying( String filename )
    • method mengeset text field txFieldPlaying dengan string filename dengan memanggil method setText
  • method int getSelectedMusic()
    • method mengembalikan integer index list yang dipilih dari JList listMusic
    • method melemparkan new IllegalStateException jika tidak ada music yang dipilih dari listMusic
      14
  • import java.awt.event.ActionListener
  • method void addListener(ActionListener e)
  • tambahkan add listener pada setiap tombol dengan memanggil method addActionListener
    15

3. Controller.java

  • Buatlah class Controller.java sesuai class diagram berikut
    17
  • import library berikut
    16
  • kelas Controller implements ActionListener
  • implementasikan method actionPerformed(ActionEvent ae)

a. Constructor Controller

  • Constructor menginstansiasi Application app
  • Constructor menginstansiasi GUI view
  • set visible view = true
  • set lisener view dengan controller this
  • set view listMusic dengan musicList dari objek app
    18

b. Method actionPerformed(ActionEvent ae)

  • get Object source action event
    19
  • lakukan proses berikut dalam blok try-catch
    • cek source action event
    • jika event berasal dari tombol add :
      21
      • Instansiasi objek JFileChooser() untuk membuka window file chooser
      • set filter file *.mp3
      • tampilkan JFileChooser dari view GUI
        20
      • jika file mp3 telah dipilih, ambil absolute path dari file
      • tambahkan file path music ke dalam musicList objek app 22
    • jika event berasal dari tombol delete :
      • ambil index music yang dipilih dari listMusic menggunakan method getSelectedMusic
      • hapus path music yang dipilih pada objek app
      • update tampulan listMusic
        23
    • jika event berasal dari tombol play :
      • ambil index music yang dipilih dari listMusic menggunakan method getSelectedMusic
      • stop music yang sedang berjalan
      • play music dengan index music yang dipilih
      • update text field playing dengan mengambil string getNowPlayed()
        24
    • jika event berasal dari tombol stop :
      • stop music yang sedang berjalan
      • hapus text di dalam text field playing
        25
    • jika event berasal dari tombol next :
      • panggil method next() dari objek app
      • update text field playing
        26
    • jika event berasal dari tombol prev :
      • panggil method prev() dari objek app
      • update text field playing
        27
  • pada blok catch tampilkan window JOptionPane dan tampilkan pesan error yang didapat
    28

4. Driver.java

  • Buatlah class Driver.java yang memiliki main method (psvm)
  • instansiasi objek Controller()
  • cobalah aplikasi music player yang telah dibuat

About

Exercise on Inner Class, Exception and Threading

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published