45
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.
46
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,
47
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.
48
Start
Note, octave, duration, chord, tempo, instrument
Get information
Music String
End
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.
49
Start
User Input
Get Note, Get Octave, Get Duration
Use Chord
yes
Get Chord
No
Set Music String
End
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.
50
Start
Music String
Convert to MIDI
Save MIDI File
End
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.
51
Start
MIDI File
doLoad
Music String
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.
52
Mulai
Form Utama
MIDI File
Music String
Play Musik
Selesai
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
53
Input Composer
Input Music String
User Create Midi File
Load MIDI Files
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.
54
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
player.saveMidi(song,file.getAbsoluteFile()) mengkonversikan
MusicString
yang
fungsi untuk 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.
55
Tabel 3.2 Spesifikasi Naratif untuk Use Case Input Composer Use Case
:
Deskripsi Singkat
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
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
:
Deskripsi Singkat
Input MusicString
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.
56
Post condition
:
Music String akan siap di Play atau di save.
Tabel 3.4 Spesifikasi Naratif untuk Use Case Create Midi File Use Case
:
Deskripsi Singkat
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. 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
:
Deskripsi Singkat
Load MIDI Files 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
57
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
Input Composer (Not, Octave, Durasi dan Chord).
Add notes Mengkomposisikan kedalam Music String
Gambar 3.7. Diagram Activity Input Composer
58
User
System
Menginput (Not, Octave, Durasi dan Chord).
Track On Menjalankan / mengaktifkan dengan status On
Play Menghasilkan suara Track yang aktif
Gambar 3.8. diagram activity Input Music String
59
User
System
Klik Create MIDI File Menampilkan Form Save
Pilih Tombol Save
Menyimpan file dalam bentuk .mid
Gambar 3.9. Diagram Activity Create MIDI File
60
User
System
Klik Open MIDI File
Menampilkan Form Open
Pilih MIDI yang ingin di edit Menampilkan dalam bentuk Pattern
Gambar 3.10. Diagram Activity Load MIDI File
61
User
System
Load MIDI / Create MIDI
MIDI Output Edit MIDI (Pilih Note, Duration, Octave, Chord,Tempo, add Notes, ketik music string)
Play
Proses Composisi
Suara
Gambar 3.11 . Diagram Activity Menjalankan Aplikasi
62
Tabel 3.5 Spesifikasi Naratif untuk Use Case Menjalankan Aplikasi MIDI Composition Tools. Use Case
:
Deskripsi
menjalankan aplikasi MIDI Composition Tools. Use Case ini memungkinkan user untuk dapat
Singkat
:
mengaransment music
Actor
:
Pengguna (User)
Pre
:
Tidak ada
Condition 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
:
Sistem Memberikan hasil suara.
condition
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.
63
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.
64
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
65
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
66
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.