Tugas Pertemuan 5 PBO

 Nama  : Moh. Rizky Rahmadian Makkani

NRP    : 5025231035

Kelas : PBO A

Tugas Pertemuan 5 : PBO


Main

public class Main {
public static void main(String[] args) {
MusicOrganizer org = new MusicOrganizer();

org.listAllTracks();

org.playTrack(1);
org.playTrack(3);

org.stopTrack();

org.playTrack(2);

org.stopTrack();
}
}

Track Reader

package track;

import java.util.ArrayList;
import java.io.File;

public class TrackReader {

public ArrayList readTracks(String folderName){
ArrayList tracks = new ArrayList<>();

File folder = new File(folderName);
if (!folder.exists() || !folder.isDirectory()) {
System.out.println("Invalid folder path!");
return tracks;
}

File[] files = folder.listFiles((dir, name) -> name.endsWith(".mp3"));
if (files == null || files.length == 0) {
System.out.println("No mp3 files found in the folder.");
return tracks;
}

for(File file : files){
String fileNameFull = file.getName();
String fileName = fileNameFull.substring(0, fileNameFull.lastIndexOf(".mp3"));

String[] parts = fileName.split("-");
if (parts.length == 2) {
String title = parts[0].trim();
String artist = parts[1].trim();

tracks.add(new Track(fileName, artist, title));
} else {
System.out.println("File name format incorrect for: " + fileName);
}
}

return tracks;
}

}

ClassTrack

package track;

public class Track {
private String filename;
private String artist;
private String title;

public Track(String filename, String artist, String title){
this.filename = filename;
this.artist = artist;
this.title = title;
}

public String getFilename(){
return filename;
}

public String getArtist(){
return artist;
}

public String getTitle(){
return title;
}

public String getDisplayString(){
return artist + " - " + title;
}
}

MusicPlayer

package music;

public class MusicPlayer {
private boolean isPlaying;

public MusicPlayer(){
isPlaying = false;
}

public void startPlaying(String filename){
System.out.println("File: " + filename + " is now playing.");
isPlaying = true;
}

public void stopPlaying(){
if(isPlaying){
System.out.println("Track stopped.");
isPlaying = false;
}else{
System.out.println("No track is currently playing.");
}
}
}

Music Organizer

package music;

import track.*;
import java.util.ArrayList;

public class MusicOrganizer {
private ArrayList tracks;
private MusicPlayer player;
private TrackReader reader;

public MusicOrganizer(){
tracks = new ArrayList();
player = new MusicPlayer();
reader = new TrackReader();
readLibrary("../music_files");
System.out.println("Music library loaded. " + getNumberOfTracks() + " tracks.");
System.out.println();
}

public void addTrack(Track track){
tracks.add(track);
}

public int getNumberOfTracks(){
return tracks.size();
}

public void searchTrack(int index){
if(index >= 0 && index < tracks.size()){
Track result = tracks.get(index);
System.out.println(result.getDisplayString());
}
}

public void listAllTracks(){

if(tracks.size() > 0){
System.out.println("Tracks List:");

int index = 0;
while(index < tracks.size()){
Track track = tracks.get(index);
index++;
System.out.println(index + ". " + track.getDisplayString());
}
}else{
System.out.println("Tracks List is empty.");
}

System.out.println("");
}

public void removeTrack(int index){
if(index >= 0 && index < tracks.size()){
tracks.remove(index);
}
}

public void playTrack(int index){
int real_index = index - 1;
if(indexValid(real_index)){
Track track = tracks.get(real_index);
player.startPlaying(track.getFilename());
System.out.println("Now playing: " + track.getDisplayString());
}

System.out.println("");
}

public void stopTrack(){
player.stopPlaying();
System.out.println("");
}

public void readLibrary(String folderName){
tracks = reader.readTracks(folderName);
}

public boolean indexValid(int index){
return index >= 0 && index < tracks.size();
}
}


Komentar

Postingan populer dari blog ini

Tugas 2 PBO : Konsep OOP

Tugas Pertemuan 14 PBO

Tugas Pertemuan 10 PBO