BAB III
ANALISA MASALAH DAN PERANCANGAN SISTEM
3.1. Permasalahan yang Ada
Sering kali user kesulitan membuat musik untuk menjadi sebuah lagu yang baik, Masalah yang dihadapi adalah terbatasnya penyediaan berbagai jenis alat musik yang dibutuhkan oleh seorang pembuat lagu yang masih dalam taraf belajar. Hal ini menyebabkan terhambatnya kreativitas seorang pembuat lagu dalam menghasilkan karyanya.
3.2.Strategi Pemecahan Masalah
Sebuah solusi yang ideal untuk menyelesaikan permasalahan di atas adalah dengan di buatnya program aplikasi MIDI Composition Tools. Dengan program aplikasi MIDI Composition Tools ini diharapkan akan mempermudah user untuk membuat musik yang diinginkan.
3.3. Perancangan Sistem
Secara garis besar system program aplikasi MIDI Composition Tools ini terdiri dari empat bagian, yaitu:
1. Composer
Composer merupakan bagian yang menerima input-an dari user yang kemudian akan diterjemahkan menjadi sebuah pattern dalam MusicString.
2. Create MDI File
Crete MIDI Filemerupakan bagian yang bertugas untuk megubah MuicString menjadi MIDI File.
3. Modul Load MIDI File
Modul ini merupakan bagian yang bertugas untuk membaca file MIDI dan mengubahnya menjadi sebuah pattern dalam MusicString.
4. Modul Play Music
Modul ini merupakan bagian yang bertugas untuk memainkan music, baik pattern yang dihasilkan dari bagian Composer maupun pattern yang dihasilkan dari modul Load MIDI File.
Secara lebih mendetail, desain dan implementasi system dibagi menjadi 5 bagian besar, yaitu:
1. Desain system input (Composer) 2. Desain system music string 3. Desain system create MIDI file 4. Desain system Load
5. Desain system play music
3.3.1 Spesifikasi Aplikasi
Aplikasi MIDI Composition Tools yang akan dibangun memiliki kemampuan sebagai berikut :
1. Dapat meng-aransment lagu sesuai dengan kemauan user.
2. Aplikasi ini dapat mengedit MIDI yg sudah ada.
3. Aplikasi ini bersifat user friendly, yaitu aplikasi ini mudah digunakan oleh pengguna, serta mudah dipahami dengan tampilan serta penempatan tools yang jelas.
3.3.2 Spesifikasi Pengguna
Aplikasi ini digunakan untuk umum atau siapa saja yang ingin meng-edit atau mengerang lagu.
3.3.3 Struktur Class dari Perangkat Lunak
Perangkat lunak ini dikembangkan dengan menggunakan prinsip pemrograman berorientasi objek atau lebih dikenal dengan sebutan OOP (Object Oriented Programming). Program memiliki beberapa class, dimana setiap class memiliki member variable dan member function (method) yang mendukung penggunaan class tersebut. Member variable adalah bagian yang menyimpan data,
sedangkan member function atau method adalah fungsi yang mengolah data tersebut.
Class-class utama yang digunakan dalam program aplikasi ini adalah:
1. Pattern
adalah class yang memiliki fungsi untuk menerima input-an dari user dan mengkonversikannya menjadi MusicString.
2. Player
Adalah class yang memiliki fungsi untuk mengkonversi MusicString yang dihasilkan oleh class Pattern menjadi sinyal audio. Selain mengkonversi, class ini juga berfungsi untuk menyimpan dan membaca file dalam format MIDI.
Class ini memanfaatkan file library dari java, yaitu java.io.* dan javax.sound.midi.*.
3. TrackOb
Adalah class yang berfungsi untuk mengatur MusicString, status on/off track, dan instrument dari sebuah track.
4. NotOb
Adalah class yang berfungsi untuk mengatur not yang akan ditambahkan dalam sebuah track.
5. DurasiOb
Adalah class yang berfungsi untuk mengatur penambahan chord nada sebuah track.
3.3.4. Desain Sistem Input (Composer)
Proses input dilakukan oleh user yaitu dengan menentukan track, nada, oktaf, durasi, tempo, chord, dan alat musik yang diinginkan untuk dapat dikomposisikan menjadi MusicString. Untuk lebih jelasnya proses input ditunjukkan pada gambar 3.1.
Gambar 3.1. Flowchart Sistem Input
Pada proses get information program membaca input-an dari user dalam tipe data string. Kemudian pada data string untuk ditambahkan dalam MusicString dari sebuah track.
3.3.5. Desain System Musik String
Dalam proses ini, program akan mengumpulkan informasi-informasi yang diperlukan untuk menuliskan MusicString. Informasi-informasi tersebut merupakan input-an dari user, yaitu not, durasi, oktaf, dan chord. Gambar 3.2.
menunjukkan proses pengumpulan informasi dari user dan menuliskannya dalam Music String.
Start
Note, octave, duration, chord, tempo, instrument
Music String
End Get information
Gambar .3.2. Fowchart Sistem Musik String
3.3. 6. Desain Sistem Create Midi File
Pada proses ini program membaca Musik String yang telah dihasilkan oleh system MusicString dan mengkonversikannya kedalam format file MIDI. Untuk mengkonversikan MusicString menjadi Format file MIDI, program memanfaatkan class yang dimiliki oleh JFugue yaitu pattern.java.
Start
User Input
Get Note, Get Octave, Get Duration
Use Chord
Set Music String
End
Get Chord yes
No
Gambar 3.3. Flowchart Sistem Create MIDI File
3.3.7. Desain Sistem Load
Pada proses ini, program akan membaca file MIDI untuk kemudian dikonversi menjadi Music String sehingga rangkaian nada yang ada pada file MIDI dapat di-edit oleh user sesuai keinginannya. Gambar 3.4. menunjukkan proses system Load.
Start
Music String
Convert to MIDI
Save MIDI File
End
Gambar 3.4. Flowchart Sistem Load
3.3. 8. Desain Sistem Play Musik
System Play Music ini dibagi menjadi dua bagian. Bagian pertama, akan menghasilkan suara audio dengan membaca file MIDI secara langsung. Bagian kedua, program akan menghasilkan suara audio dari Music String yang telah dikomposisi sebelumnya oleh user. Pada system ini dibutuhkan hardware pendukung yaitu speaker dan MIDI device. Pada gambar 3.5. menunjukkan proses system Play Music lebih jelas.
Start
MIDI File
doLoad
Music String
End
Gambar 3.5. Flowchart Sistem Play Music
3.4. Perancangan Aplikasi
Berdasarkan hasil analisis, penulis memuat sebuah aplikasi menggunakan JFugue Java API. Agar aplikasi ini mudah dipahami, penulis membuat pemodelan diagram use case untuk menunjukkan fungsionalitas suatu sistem. Pemodelan collaboration diagram untuk menggambarkan obyek-obyek dan hubungannya satu dengan yang lain, pemodelan diagram aktifitas untuk mengurutkan aktifitas dalam suatu proses.
3.4.1. Use Case Diagram
Diagram use case mendeskripsikan interaksi tipikal antara para pengguna sistem dengan sistem itu sendiri, dengan memberi sebuah narasi tentang bagaimana sistem tersebut digunakan. Diagram ini menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem berinteraksi dengan dunia luar.
Berikut ini adalah use case diagram yang dapat dilihat pada gambar 3.6
Mulai
Form Utama
MIDIFile Music String
Play Musik
Selesai
Gambar 3.6. Use Case Diagram Midi Editor
Pada Use Case program menggambarkan proses fungsionalitas dari Software Midi Composition Tools.
3.4.2. Use Case Spesification
Use Case Spesification ini mendefinisikan dan mendeskripsikan apa saja yang harus dilakukan ketika user menjalankan setiap Use Case pada Aplikasi MIDI Composition Tools.
Tabel 3.1. Spesifikasi Naratif untuk MIDI Editor
Use Case Name MIDI Editor
Input Composer Composer ini menggunakan beberapa Class yang berbeda. Input-an dari user memegang peranan penting dalam composer karena memang composer bertugas menerima inputan dari user.
User
Input Composer
Input Music String
Create Midi File
Load MIDI Files
Composer membutuhkan input-an dari user untuk menjalankan fungsi-fungsi yang ada di dalamnya.
Pertama-tama user dapat menentukan sendiri Not, Octave, Durasi dan penggunaan Chord. Setelah ditentukan, user harus mengklik tombol “Add Notes”
untuk mengkomposisikan kedalam Music String dari track yang terpilih.
Music String Music String berfungsi dalam mengatur nada pada setiap track yang aktif, untuk dikomposisikan menjadi sebuah tangga nada.
Create Midi File Pada sistem Create MIDI File ini, music string merupakan bagian input yang penting. Implementasi sistem ini terdapat pada tombol “Create MIDI Files”.
Ketika tombol tersebut di klik, maka program akan memanggil fungsi dosave()yang akan menampilkan form dari JFileChooser dengan status Save. Setelah diinputkan nama file yang akan menjadi file MIDI,
program akan menjalankan fungsi
player.saveMidi(song,file.getAbsoluteFile()) untuk mengkonversikan MusicString yang telah dikomposisikan oleh user ke dalam bentuk file MIDI.
Load Midi File Pada sistem Load, pertama-tama sistem akan membaca file MIDI yang dipilih oleh user untuk di-edit, kemudian program akan mengkonversi file MIDI tersebut ke dalam bentuk music string sehingga dapat dibaca oleh program untuk dapat di-edit.
Tabel 3.2 Spesifikasi Naratif untuk Use Case Input Composer Use Case : Input Composer
Deskripsi
Singkat :
Composer ini menggunakan beberapa Class yang berbeda. Input-an dari user memegang peranan penting dalam composer karena memang composer bertugas menerima inputan dari user
Actor : Pengguna (User) Pre Condition : Tidak ada
Aliran Utama : 1. User menginput Composer Not, Octave, Durasi dan penggunaan Chord.
2. user harus mengklik tombol “Add Notes” untuk mengkomposisikan kedalam Music String dari track yang terpilih.
Post condition : Hasil Composer akan dikomposisikan kedalam Music String
Tabel 3.3 Spesifikasi Naratif untuk Use Case Input Music String Use Case : Input MusicString
Deskripsi
Singkat :
MusicString berfungsi dalam mengatur nada pada setiap track yang aktif, untuk dikomposisikan menjadi sebuah tangga nada.
Actor : Pengguna (User)
Pre Condition : 1. Pengaturan tangga nanda pada Music String terjadi setelah user menginput Not, Octave, Durasi dan penggunaan Chord.
2. Hanya pada setiap track yang aktif saja Music String akan mengkomposisikan untuk menjadi tangga nada.
Aliran Utama : 1. User harus mengklik track mana saja yang akan di aktifkan untuk menjadi sebuah tangga nada.
Post condition : Music String akan siap di Play atau di save.
Tabel 3.4 Spesifikasi Naratif untuk Use Case Create Midi File Use Case : Create Midi File
Deskripsi
Singkat :
Implementasi sistem ini terdapat pada tombol “Create MIDI Files”. Ketika tombol tersebut di klik, maka program akan memanggil fungsi dosave()yang akan menampilkan form dari JFileChooser dengan status Save.
Actor : Pengguna (User) Pre Condition : Tidak ada
Aliran Utama : 1. User meng-klik tombol “Create MIDI Files”
2. System akan memanggil fungsi dosave( ) yang akan menampilkan form save.
3. User meng-klik tombol save maka file midi akan terismpan.
Post condition : File MIDI akan terismpan pada lokasi penyimpanan yang akan dipilih oleh user.
Tabel 3.5 Spesifikasi Naratif untuk Use Case Load MIDI Files Use Case : Load MIDI Files
Deskripsi
Singkat :
Pada sistem Load, pertama-tama sistem akan membaca file MIDI yang dipilih oleh user untuk di-edit, kemudian program akan mengkonversi file MIDI tersebut ke dalam bentuk music string sehingga dapat dibaca oleh program untuk dapat di-edit.
Actor : Pengguna (User)
Pre Condition : File akan terbaca hanya dalam bentuk .mid
Aliran Utama : 1. System akan membaca file MIDI yg dipilih oleh user
untuk di edit.
2. program akan mengkonversi file MIDI tersebut ke dalam bentuk music string sehingga dapat dibaca oleh program untuk dapat di-edit.
Post condition : Hasil pengkonversian dapat di-edit.
3.4.3. Pemodelan Activity Diagram dan Spesifikasi Naratif
Activity diagram adalah teknik untuk mendeskripsikan logika procedural, proses bisnis dan aliran kerja dalam banyak kasus.
Activity diagram mempunyai peran seperti halnya flowchart, akan tetapi perbedaannya dengan flowchart adalah activity diagram bisa mendukung perilaku parallel sedangkan flowchart tidak bisa. Berikut ini adalah activity diagram pada aplikasi ini yang dapat dilihat pada gambar 3.7 dibawah ini :
User System
Gambar 3.7. Diagram Activity Input Composer
Input Composer (Not, Octave, Durasi dan Chord).
Add notes
Mengkomposisikan kedalam Music String
User System
Gambar 3.8. diagram activity Input Music String
Menginput (Not, Octave, Durasi dan Chord).
Track On
Menjalankan / mengaktifkan dengan
status On
Play
Menghasilkan suara Track yang aktif
User System
Gambar 3.9. Diagram Activity Create MIDI File Klik Create MIDI File
Menampilkan Form Save
Pilih Tombol Save
Menyimpan file dalam bentuk .mid
User System
Gambar 3.10. Diagram Activity Load MIDI File Klik Open MIDI File
Menampilkan Form Open
Pilih MIDI yang ingin di edit
Menampilkan dalam bentuk Pattern
User System
Gambar 3.11 . Diagram Activity Menjalankan Aplikasi Load MIDI / Create
MIDI
MIDI Output
Edit MIDI (Pilih Note, Duration, Octave, Chord,Tempo, add Notes, ketik music
string)
Play
Proses Composisi
Suara
Tabel 3.5 Spesifikasi Naratif untuk Use Case Menjalankan Aplikasi MIDI Composition Tools.
Use Case : menjalankan aplikasi MIDI Composition Tools.
Deskripsi
Singkat :
Use Case ini memungkinkan user untuk dapat mengaransment music
Actor : Pengguna (User) Pre
Condition
: Tidak ada
Aliran Utama : 1. User me-Load MIDI atau Meng-Create MIDI.
2. System mem-prepare Class MIDI
3. User menentukan sendiri Not, Octave, Durasi, penggunaan Chord dan mengetik music string.
4. User mengklik “Play”.
5. System Mem-proses Composisi Post
condition
: Sistem Memberikan hasil suara.
3.4.4 Pemodelan Diagram Sequence
Diagram sequence menggambarkan interaksi antar objek di dalam dan disekitar sistem ( termasuk pengguna, display, dan sebagainya ) berupa pesan (message) yang digambarkan terhadap waktu. Diagram sequence terdiri atas dimensi vertical ( waktu ) dan dimensi horizontal ( objek-objek yang terkait ).
Diagram sequence biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dengan mentrigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan.
Diagram sequence user pada aplikasi MIDI Composition Tools dapat dilihat pada gambar 3.7. Pada gambar tersebut digambarkan skenario atau langkah-langkah yang dilakukan user, hingga user keluar atau selesai. Pertama-tama user harus membuka aplikasi MIDI Aplication Tools, kemudian meng-edit Notes, Duration, Octave, Chord dan user mengetik (mengaransment lagu) dalam bentuk MusicString. Lalu save. Setelah itu untuk mengetahui hasilnya Play (jalankan MIDI) maka system akan menghasilkan suara.
Gambar 3.12. Diagram Sequence Input Composer
Dalam halaman ini pengguna harus menginput Notes, Durasi, Octave dan Chord. Dan setelah pengguna menginput Notes, Durasi, Octave dan Chord pengguna harus memilih tombol ”Add Notes” untuk mengkomposisikan kedalam Musik String dari track yang terpilih, lalu pengguna dapat meng-save file dalam bentuk .mid.
Gambar 3.13. Diagram Sequence Input Musik String
Musik String berfungsi dalam mengatur nada pada setiap track yang aktif, untuk dikomposisikan menjadi tangga nada. Pengaturan tangga nada pada musik string terjadi setelah user menginput Note, Octave, Durasi, dan penggunaan Chord. Hanya pada setiap track yang aktif saja Musik string akan mengkomposisikan untuk menjadi tangga nada. Pengguna harus mengklik track mana saja yang akan di aktifkan untuk menjadi sebuah tangga nada. Musik String akan siap di Play atau di save.
Gambar 3.14. Diagram Sequence Create MIDI File
Implementasi sistem ini terdapat pada tombol “Create MIDI Files”.
Ketika tombol tersebut di klik, maka program akan memanggil fungsi dosave()yang akan menampilkan form dari JFileChooser dengan status
Save. Pengguna meng-klik tombol “Create MIDI Files”. System akan memanggil fungsi dosave( ) yang akan menampilkan form save. Pengguna meng-klik tombol save maka file midi akan terismpan.
Gambar 3.15 Diagram Sequence Load MIDI File
Pada sistem Load, pertama-tama sistem akan membaca file MIDI yang dipilih oleh user untuk di-edit, kemudian program akan mengkonversi file MIDI tersebut ke dalam bentuk MusicString sehingga dapat dibaca oleh program untuk dapat di-edit. File akan terbaca hanya dalam bentuk .mid. System akan membaca file MIDI yg dipilih oleh user untuk di edit. program akan mengkonversi file MIDI tersebut ke dalam bentuk music string sehingga dapat dibaca oleh program untuk dapat di-edit. Hasil pengkonversian dapat di-edit
Gambar 3.16 Diagram Sequence User Pada Aplikasi MIDI Composition Tools
3.5 Perancangan Sistem
Selain masalah perangkat keras, maka dalam merancang sistem berbasis komputer sudah tentu tidak bisa lepas dengan perangkat lunak pendukungnya, karena tanpa dukungan perangkat lunak maka sistem tidak akan dapat berjalan dengan baik. Di bawah ini adalah algoritma dalam bentuk flow chart yang menggambarkan bagimana proses mendeteksi, penangkapan gambar (capturing), dan kemudian mengaktifkan alarm dan menyimpan hasil (capturing) kedalam file berekstension .avi dapat dilakukan.
3.6. Desain Form Utama Perangkat Lunak
Desain form utama dibuat dengan menggunakan Netbeans IDE 6.8 yang berbasis GUI (Graphical User Interface). Desain Form utama dapat dilihat pada Gambar 3.17
Gambar 3.17 . Desain Form Utama.