PERANCANGAN APLIKASI PEMUTAR MUSIK BERBASIS ANDROID
LAPORAN TUGAS AKHIR
YUNITA PUTRI MANURUNG 152406103
PROGRAM STUDI D3 TEKNIK INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2018
LAPORAN TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya
YUNITA PUTRI MANURUNG 152406103
PROGRAM STUDI D3 TEKNIK INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2018
PERANCANGAN APLIKASI PEMUTAR MUSIK BERBASIS ANDROID
ABSTRAK
Teknologi ponsel telah berkembang sangat cepat ditandai dengan munculnya ponsel pintar dengan harga tingkat yang lebih terjangkau masyarakat. Sebelumnya, hanya pasti orang yang memiliki ponsel tetapi sekarang hampir semua orang memiliki ponsel. Ini berhubungan dengan tingginya permintaan untuk komunikasi dan ada berbagai telepon yang dipasarkan dengan harga yang terjangkau dan memiliki berbagai fasilitas.
Musik adalah satu hal yang tidak dapat dipisahkan dari hak asasi manusia sekarang. Dilihat dari perkembangannya, musik kuno dulu hanya digunakan untuk upacara keagamaan atau tradisional ritual. Tapi sekarang musik sudah menjadi kebutuhan.
Dalam hal ini, penulis membuat makalah berjudul Aplikasi Pemutar Musik Berbasis Android. Tujuannya adalah untuk menyediakan fasilitas kepada orang- orang untuk mendengar musik di ponsel android mereka.
Kata kunci : Aplikasi, Aplikasi Android, Aplikasi Pemutar Musik, Pemutar Musik untuk Android
DESIGN MUSIC PLAYERS APPLICATION BASED ON ANDROID
ABSTRACT
Mobile phone technology has grown very quickly marked by its emergence smart phones at a more affordable price to the community. Before, only certain people who own a mobile phone but now almost everyone has a mobile phone. This is related to the high demand for communication and there are various phones that are marketed at affordable prices and have various facilities.
Music is one thing that can not be separated from human rights now. Judging from its development, ancient music used to be used only for religious ceremonies or traditional rituals. But now music has become a necessity.
In this case, the authors create a paper entitled Android-Based Music Player App.
The goal is to provide facilities to people to hear music on their android phone.
Keywords: Apps, Android Apps, Music Players Apps, Music Players for Android
DAFTAR ISI
Halaman
PENGESAHAN LAPORAN TUGAS AKHIR i
ABSTRAK ii
ABSTRACK iii
PENGHARGAAN iv
DAFTAR ISI v
DAFTAR TABEL vii
DAFTAR GAMBAR viii
DAFTAR LAMPIRAN ix
BAB 1 PENDAHULUAN
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 2
1.5 Manfaat Penelitian 2
1.6 Metodolodi Penelitian 3
1.7 Sistematika Penulisan 3
BAB 2 LANDASAN TEORI
2.1 Android 5
2.2 JAVA 6
2.3 Android Studio 7
2.3.1 Fitur Android Studio 7
2.4 XML 8
2.5 Flowchart 9
2.6 Use Case Diagram 12
BAB 3 METODE PENELITIAN, ANALISIS DAN PERANCANGAN SISTEM
3.1 Metode Penelitian 14
3.2 Analisis Sistem 15
3.3 Perancangan Sistem 15
3.4 Flowchart Aplikasi 16
3.5 Use Case Diagram Aplikasi 17
3.6 Perancangan Antar Muka Aplikasi 18
BAB 4 HASIL DAN PEMBAHASAN
4.1 Pengertian Implementasi Sistem 32
4.2 Tahapan Implementasi Sistem 32
4.3 Implementasi Tampilan Antar Muka Aplikasi 33
4.4 Pengujian Sistem 46
BAB 5 KESIMPULAN DAN SARAN
5.1 Kesimpulan 29
5.2 Saran 29
DAFTAR PUSTAKA 30
LAMPIRAN
DAFTAR TABEL
Nomor Judul Halaman
Tabel
2.1. Simbol Flowchart 10
4.1. Hasil Pengujian Pada Tampilan Daftar Lagu 25
4.2. Hasil Pengujian Pada Halaman Pencarian 27
4.3. Hasil Pengujian Pada Halaman Pemutar Musik 28
DAFTAR GAMBAR
Nomor Judul Halaman
Gambar
2.1. Flowchart Menu Utama 12
2.2. Komponen Actor 13
2.3. Komponen Use Case 13
3.1. Flowchart Aplikasi 17
3.2. Use Case Diagram Aplikasi 18
3.3. Antarmuka Tampilan Splash Screen 19
3.4. Antarmuka Tampilan Daftar Lagu 20
3.5. Antarmuka Tampilan Pemutar Musik 20
4.1. Implementasi Splash Screen 23
4.2. Implementasi Daftar lagu 23
4.3. Implementasi Pencarian 24
4.4. Implementasi Pemutar Musik 25
4.5. Hasil Pengujian Halaman Daftar lagu 26
4.6. Hasil Pengujian Halaman Pencarian 27
4.7. Hasil Pengujian Halaman Pemutar Musik 28
DAFTAR LAMPIRAN
Nomor Lampiran Judul Halaman
1. Listing Program 31
2. Surat Keterangan Hasil Uji Program 53 3. Surat Keterangan Dosen Pembimbing 54
4. Kartu Bimbingan 55
BAB 1 PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi informasi mendorong tumbuh kembangnya perangkat lunak termasuk aplikasi ponsel pintar (smartphone) yang tersebar luas hingga saat ini. Banyak penambahan fitur-fitur yang terdapat di ponsel pintar (smartphone) pada saat ini, jadi ponsel di era modern seperti sekarang sebuah ponsel tidak hanya berfungsi sebagai alat komunikasi jarak jauh akan tetapi lebih sebagai alat untuk mempermudah kita mencari sebuah informasi salah satunya musik yang merupakan penambahan dari banyaknya fitur-fitur yang di tambahkan didalam sebuah ponsel.
Menurut Jamalus (1988) seorang ahli musik, musik adalah suatu yang membuahkan hasil karya seni, berupa bunyi berbentuk lagu atau komposisi yang mengungkapkan fikiran serta perasaan penciptanya lewat unsur-unsur pokok musik, yakni irama, melodi, harmoni, serta bentuk atau susunan lagu dan ekspresi sebagai satu kesatuan.Musik juga dapat menghibur para pendengarnya dan juga penikmat seni. Maka dari itu, musik adalah suatu hal yang tidak bisa dipisahkan dari manusia pada saat ini. Kalau dilihat dari perkembangannya, pada zaman dahulu musik digunakan hanya untuk upacara-upacara ritual keagamaaan atau adat istiadat. Tetapi sekarang ini musik sudah seperti sudah menjadi kebutuhan hidup manusia.
Dimana pun mereka berada, mereka ingin mendengarkan musik yang dapat membuat tenang atau menambah semangat. Untuk memudahkan kita memutar musik dimanapun mereka berada maka penulis mencoba membuat sebuah aplikasi yang dapat membuat kita dengan mudah mendengarkan musik tersebut.
1.2 Rumusan Masalah
Berdasarkan uraian dari latar belakang diatas, maka penulis mencoba membuat rumusan masalah sebagai berikut :
1. Perancangan aplikasi alternatif untuk memutar musik berbasis android.
2. Perancangan aplikasi pemutar musik menjadi sebuah aplikasi yang mudah dan praktis saat digunakan.
1.3 Batasan Masalah
Adapun batasan masalah dalam pembuatan aplikasi pemutar musik berbasis sistem operasi android ini diantaranya adalah sebagai berikut :
1. Aplikasi merupakan mobile based.
2. Ruang lingkup hanya di batasi pada aplikasi pemutar musik.
3. Aplikasi ini kana berjalan pada sistem operasi android minimum dengan versi 6.0 ( Marshmallow) atau lebih.
1.4 Tujuan Penelitian
Tujuan utama dari penelitian ini adalah menghasilkan aplikasi pemutar music guna membantu melengkapi proses pembelajaran khususnya tentang aplikasi android. Semua orang diharapkan dapat mendengarkan music dengan mudah dengan perangkat lunak yang telah dibangun pada smartphone yang dimiliki.
1.5 Manfaat Penelitian
Adapun manfaat dari perancangan aplikasi ini adalah :
1. Sebagai aplikasi yang dapat digunakan sebagai alternatif dalam memainkan atau memutar file musik.
2. Motivasi untuk menciptakan atau membangun aplikasi berbasis android.
3. Referensi tentang penciptaan atau pembangunan sendiri untuk kebutuhan pribadi maupun umum.
3
1.6 Metodologi Penelitian
Metode adalah suatu cara atau teknik yang sistematik untuk mengerjakan atau menyelesaikan sesuatu. Berikut ini metodologi penelitian yang gunakan dalam membangun aplikasi ini, yaitu :
1. Pengumpulan Data
Mengumpulkan data sekunder yang dibutuhkan untuk perancangan aplikasi dengan cara mengobservasi terlebih dahulu.
2. Analisis Sistem
Dilakukan untuk memperoleh informasi tentang sistem, menganalisis data–data yang ada dalam sistem dan juga menganalisis poin – poin masalah pada sistem terutama mengenai kelebihan dan kekurangan sistem.
3. Perancangan (Desain)
Membangun / mengembangkan sistem yang diusulkan berupa perancangan sistem data flow diagram (DFD), dimana tahapan ini dapat dibangun dengan memperoleh informasi diantaranya memastikan informasi yang didapat akurat, memberikan ulasan-ulasan yang terperinci.
4. Penulisan Program (Coding)
Membuat program didalam aplikasi yang dibuat agar dapat berjalan sesuai dengan yang difungsikan.
5. Uji Program.
Pengujian akan dilaksanakan jika program telah selesai dikerjakan. Bila saat pengujian terdapat kesalahan maka perlu adanya perbaikan terhadap program agar menghasilkan hasil yang maksimal.
1.7 Sistematika Penulisan
Agar dapat memberikan gambaran yang jelas pada penulisan tugas akhir ini, maka penulis membaginya dalam beberapa bab sebagai berikut :
BAB 1 : PENDAHULUAN
Bab ini menguraikan tentang latar belakang pembangunan aplikasi, perumusan masalah, batasan masalah, tujuan penelitian, manfaat
penelitian, metodologi penelitian, hingga sistematika penulisan tugas akhir ini.
BAB 2 : LANDASAN TEORI
Bab ini menguraikan tentang uraian teoritis mengenai pengertian- pengertian dan mengenai bahasa pemrograman yang digunakan.
BAB 3 : METODE PENILITIAN, ANALISIS DAN PERANCANGAN SISTEM
Bab ini menguraikan mengenai metode penelitian yang digunakan dan perancangan sistem mulai dari perancangan layout, diagram konteks sistem, hingga flowchart system
BAB 4 : IMPLEMENTASI SISTEM
Bab ini menguraikan tentang bagaimana proses lanjutan dari perancangan sistem.
BAB 5 : KESIMPULAN DAN SARAN
Bab ini menguraikan tentang kesimpulan dan saran yang dikutip oleh penulis selama proses pembangunan aplikasi.
BAB 2
LANDASAN TEORI
2.1 Android
Menurut Teguh Arifianto (2011), android merupakan perangkat bergerak pada sistem operasi untuk telepon seluler yang berbasis linux.Android awalnya dikembangkan oleh Android, Inc., dengan dukungan finansial dari Google, yang kemudian membelinya pada tahun 2005. Sistem operasi ini dirilis secara resmi pada tahun 2007, bersamaan dengan didirikannya Open Handset Alliance, konsorsium dari perusahaan-perusahaan perangkat keras, perangkat lunak, dan telekomunikasi yang bertujuan untuk memajukan standar terbuka perangkat seluler. Ponsel Android pertamamulai dijual pada bulan Oktober 2008.
Antarmuka pengguna Android umumnya berupa manipulasi langsung, menggunakan gerakan sentuh yang serupa dengan tindakan nyata, misalnya menggeser, mengetuk, dan mencubit untuk memanipulasi objek di layar, serta papan ketik virtual untuk menulis teks. Selain perangkat layar sentuh, Google juga telah mengembangkan Android TV untuk televisi, Android Auto untuk mobil, dan Android Wear untuk jam tangan, masing-masingnya memiliki antar muka pengguna yang berbeda. Varian Android juga digunakan pada komputer jinjing, konsol permainan, kamera digital, dan peralatan elektronik lainnya.
Android adalah sistem operasi dengan sumber terbuka, dan Google merilis kodenya di bawah Lisensi Apache. Kode dengan sumber terbuka dan lisensi perizinan pada Android memungkinkan perangkat lunak untuk dimodifikasi secara bebas dan didistribusikan oleh para pembuat perangkat, operator nirkabel, dan pengembang aplikasi. Selain itu, Android memiliki sejumlah besar komunitas pengembang aplikasi (apps) yang memperluas fungsionalitas perangkat, umumnya ditulis dalam versi kustomisasi bahasa pemrograman Java.
Pada bulan Oktober 2013, ada lebih dari satu juta aplikasi yang tersedia untuk Android, dan sekitar 50 miliar aplikasi telah diunduh dari Google Play, toko aplikasi utama Android. Sebuah survei pada bulan April-Mei 2013 menemukan bahwa Android adalah platform paling populer bagi para pengembang, digunakan oleh 71%
pengembang aplikasi bergerak. Di Google I/O 2014, Google melaporkan terdapat lebih dari satu miliar pengguna aktif bulanan Android, meningkat dari 583 juta pada bulan Juni 2013.
2.2 JAVA
Sejak dirilis pada tahun 1995, bahasa pemrograman Java dengan cepat memperoleh popularitas di kalangan para pemrogram. Keberhasilan ini disebabkan teknologi baru yang diperkenalkan Sun Microsystems yaitu Java Virtual Machine (JVM), yang memungkinkan sebuah aplikasi dijalankan di atas platform apa saja sepanjang pada mesin tersebut dipasang JVM.
Program yang dihasilkan dengan bahasa Java dapat berupa applet (aplikasi kecil yang berjalan di atas web browser) maupun berupa aplikasi mandiri yang dijalankan dengan program Java Interpreter. Contoh program yang ditulis dengan bahasa Java adalah Hot Java yang berupa sebuah web browser. Java adalah sebuah bahasa pemrograman berorientasi obyek murni.
Jadi program – program Java berada dalam sebuah struktur kelas – kelas dan obyek – obyek. Pada dasarnya sintaks pada bahasa Java mirip dengan sintaks pada bahasa C atau C++. Java bertipe kuat (strongly-typed). Ini berarti semua tipe data terikat secara statis atau dengan kata lain setiap nama variabel diasosiasikan dengan sebuah tipe data tunggal yang dikenali pada saat kompilasi.
Java adalah bahasa pemrograman tingkat tinggi yang berorientasi objek dan program java tersusun dari bagian yang disebut kelas. Kelas terdiri atas metode- metode yang melakukan pekerjaan dan mengembalikan informasi setelah melakukan tugasnya. Para pemrogram Java banyak mengambil keuntungan dari kumpulan kelas di pustaka kelas Java, yang disebut dengan Java Application Programming Interface (API). Kelas-kelas ini diorganisasikan menjadi sekelompok yang disebut paket (package).
7
Java API telah menyediakan fungsionalitas yang memadai untuk menciptakan applet dan aplikasi canggih. Jadi ada dua hal yang harus dipelajari dalam Java, yaitu mempelajari bahasa Java dan bagaimana mempergunakan kelas pada Java API. Kelas merupakan satu-satunya cara menyatakan bagian eksekusi program, tidak ada cara lain. Pada Java program javac untuk mengkompilasi file kode sumber Java menjadi kelas-kelas bytecode. File kode sumber mempunyai ekstensi *.java. Kompilator javac menghasilkan file bytecode kelas dengan ekstensi
*.class. Interpreter merupakan modul utama sistem Java yang digunakan aplikasi Java dan menjalankan program bytecode Java.
2.3 Android Studio
Android Studio adalah Lingkungan Pengembangan Terpadu - Integrated Development Environment (IDE) untuk pengembangan aplikasi Android, berdasarkan IntelliJ IDEA . Selain merupakan editor kode IntelliJ dan alat pengembang yang berdaya guna, Android Studio menawarkan fitur lebih banyak untuk meningkatkan produktivitas Anda saat membuat aplikasi Android.
Sebagai media yang menjadi pengembangan dari Eclipse, Android Studio tentunya sudah dilengkapi dengan gaya baru serta mempunyai banyak fitur-fitur baru dibandingkan dengan Eclipse IDE. Berbeda dengan Eclipse yang menggunakan Ant, Android Studio menggunakan Gradle sebagai build environment.
2.3.1 Fitur Android Studio
Android Studio adalah IDE resmi Android. Tujuannya dibuat untuk Android adalah untuk mempercepat pengembangan dan membantu Anda membuat aplikasi berkualitas tinggi untuk setiap perangkat Android.
Android Studio Memiliki fitur sebagai alat bantu yang dibuat khusus untuk pengembang Android, meliputi pengeditan kode yang lengkap, debugging, pengujian, dan alat pembuatan profil. Berikut adalah fitur-fitur yang banyak digunakan yaitu :
1. Navigation Drawer Menu
Navigation Drawer Menu adalah salah satu komponen navigasi menu, atau biasa disebut sliding menu yang berfungsi untuk menavigasikan aktivity atau fragment dari aplikasi. Navigasi Drawer sering digunakan pada aplikasi yang sudah populer seperti BBM dan aplikasi-aplikasi populer lainnya.
Navigation Drawe View panel yang menampilkan pilihan navigasi utama aplikasi dari tepi layar. Tersembunyi sebaagian, tetapi aplikasi akan muncul ketika pengguna gesekkan jari dari tepi kiri layar atau pengguna menyentuh ikon aplikasi di bar untuk menampilkannya.
2. Tab Layout Fragment
Fragment adalah sebuah reuseable class yang mengimplement beberapa fitur sebuah Activity. Fragment biasanya dibuat sebagai bagian dari suatu antarmuka.
Sebuah fragment harus berada di dalam sebuah activity, mereka tidak dapat berjalan sendiri tanpa adanya activity tempat mereka menempel.
Dalam aplikasi yang menggunakan banyak fragment, kita perlu selalu ingat untuk mengorganisasikan kode kita agar mengikuti best practice. Di dalam sebuah aplikasi yang memakai banyak fragment, kita harus selalu ingat fungsi dari perpindahan activity.
2.4 XML
XML (Extensible Markup Language) adalah bahasa markup untuk keperluan umum yang disarankan oleh W3C untuk membuat dokumen markup keperluan pertukaran data antar sistem yang beraneka ragam. XML merupakan kelanjutan dari HTML (HyperText Markup Language) yang merupakan bahasa standar untuk melacak Internet.
XML adalah singkatan dari Extensible Markup Language adalah bahasa markup tujuan umum yang disarankan oleh W3C untuk membuat dokumen markup untuk pertukaran data di berbagai sistem. XML adalah kelanjutan dari HTML (HyperText Markup Language) yang merupakan bahasa standar untuk pelacakan Internet.XML didesain untuk mampu menyimpan data secara ringkas dan mudah
9
diatur. Kata kunci utama XML adalah data (jamak dari datum) yang jika diolah bisa memberikan informasi.
XML menyediakan suatu cara terstandarisasi namun bisa dimodifikasi untuk menggambarkan isi dari dokumen. Dengan sendirinya, XML dapat digunakan untuk menggambarkan sembarang view database, tetapi dengan satu cara yang standar. Karena data yang disimpan pada XML berupa teks, maka data tersebut akan sangat mudah dibaca oleh berbagai aplikasi. Dan data akan tetap valid meskipun dilakukan updgrade terhadap sistem operasi, server, aplikasi baru dan browser baru. XML menyediakan cara standarisasi namun dapat dimodifikasi untuk menjelaskan isi dokumen. Dengan sendirinya, XML dapat digunakan untuk menggambarkan tampilan database manapun, namun dengan cara yang standar.
XML adalah bahasa markup – menggunakan tag label, mengkategorikan dan mengatur informasi dalam spesifikasi cara. Markup menjelaskan dokumen atau data struktur dan organisasi. Konten, seperti teks, Gambar, dan data, adalah bagian dari kode yang berisi markup Tag. Hal ini juga yang paling menarik untuk kebanyakan manusia sehari-hari yang membaca atau berinteraksi dengan data dan kebutuhan dokumen. fleksibilitas XML telah berkembang yang menyebabkan digunakan untuk bertukar data dalam berbagai bentuk.
2.5 Flowchart
Menurut Indrajani (2011), Flowchart adalah gambaran secara grafik dari langkah-langkah dan urutan prosedur suatu program.Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menyatakan proses tertentu sedangkan antar proses digambarkan dengan garis penghubung.
Flowchart Sistem merupakan bagan yang menunjukkan alur kerja atau apa yang sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur-prosedur yang ada di dalam sistem. Dengan kata lain, flowchart ini merupakan dekripsi secara grafik dari urutan prosedur-prosedur yang terkombinasi yang membentuk suatu sistem.
Flowchart Sistem terdiri dari data yang mengalir melalui sistem dan proses yang mentransformasikan data itu. Data dan proses dalam flowchart sistem dapat digambarkan secara online (dihubungkan langsung dengan komputer) atau offline
(tidak dihubungkan langsung dengan komputer, misalnya mesin tik, cash register atau kalkulator). Berikut ini adalah simbol-simbol standar pada sebuah flowchart berserta fugnsinya.
Tabel 2.1. Simbol Flowchart
No Nama Simbol Fungsi
1 Terminator
Digunakan untuk mewakili simbol
start dan end
2 Arrow Menunjukkan alur
proses
3 Rectangle
Menunjukkan langkah pemrosesan
4 Trapezium Simbol untuk
input-output
5 Document Digunakan untuk
mewakili output
6 Decision
Simbol yang berfungsi untuk
menyatakan keputusan
11
7 Preparation
Simbol yang berfungsi untuk proses inisialisasi
atau pemberian harga awal
8 Connector
Simbol untuk keluar-masuk atau
penyambungan peoses pada halaman yang
berbeda
9 Manual input
Simbol untuk memasukkan data
secara manual melaui keyboard
10 Manual operation
Simbol yang menunjukkan pengolahan yang
tidak dilakukan oleh computer
11 Predefine process
Simbol untuk pelaksanaan suatu
bagian
12 Display
Simbol yang menyatakan peralatan output yang digunakan
seperti layar, printer, dll.
13 Magnetic disk
Simbol yang digunakan untuk pemyimpanan data
ke database
14 Storage Data
Simbol yang menyatakan input
yang berasal dari disk atau disimpan
ke disk
Dalam pembuatan flowchart tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisa suatu masalh dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan pemrogram lainnya.
Sumber : Buku Analisis Perancangan Sistem Edisi Kelima Gambar 2.1 Flowchart Menu Utama
2.6 Use Case Diagram
Use case merupakan sebuah teknik yang digunakan dalam pengembangan sebuah software atau sistem informasi untuk menangkap kebutuhan fungsional dari
13
sistem yang bersangkutan, use case menjelaskan interaksi yang terjadi antara aktor inisiator dari interaksi sistem itu sendiri dengan sistem yang ada, sebuah use case direpresentasikan dengan urutan langkah yang sederhana.
Perilaku sistem adalah bagaimana sistem beraksi dan bereaksi. Perilaku ini merupakan aktifitas sistem yang bisa dilihat dari luar dan bisa diuji.Perilaku sistem ini dicapture di dalam use case. Use case sendiri mendeskripsikan sistem, lingkungan sistem, serta hubungan antara sistem dengan lingkungannya.
Deskripsi dari sekumpulan aksi sekuensial yang ditampilkan sistem yang menghasilkan yang tampak dari nilai ke actor khusus. Use case digunakan untuk menyusun behavioral things dalam sebuah model. Use case direalisasikan dengan sebuah collaboration. Berikut ini adalah komponen dari use case :
1. Actor
Menggambarkan sesorang yang beriteraksi dengan sistem, di mana hanya bisa menginputkan informasi dan menerima indormasi dari sistem dan tidak memegang kendali pada use case. Dan biasa actor di gambarkan dengan stickman.
Gambar 2.2 Komponen Actor 2. Use Case
Gambaran fungsional sistem yang akan di buat, agar pengguna lebih mengerti penggunaan system.
Gambar 2.3 Komponen Use Case
BAB 3
METODE PENELITIAN, ANALISIS DAN PERANCANGAN SISTEM
3.1 Metode Penelitian
Metode penelitian adalah langkah yang dimiliki dan dilakukan oleh peneliti dalam rangka untuk mengumpulkan informasi atau data serta melakukan investigasi pada data yang telah didapatkan tersebut. Metode penelitian memberikan gambaran rancangan penelitian yang meliputi antara lain: prosedur dan langkah-langkah yang harus ditempuh, waktu penelitian, sumber data, dan dengan langkah apa data-data tersebut diperoleh dan selanjutnya diolah dan dianalisis. Berikut ini adalah metode penelitian yang digunakan dalam pembuatan Aplikasi Pemutar Musik Berbasis Android adalah sebagai berikut :
a. Pengumpulan data dan Informasi
Pengumpulan data untuk membangun Aplikasi Pemutar Musik ini membutuhkan banyak sumber. Data yang dikumpukan mulai dari gambar, video dan buku berisi Informasi cara pembangunan Aplikasi ini.
b. Analisis Sistem
Analisis Sistem yang telah dilakukan untuk Sistem Aplikasi ini dengan melihat dari data-data yang sudah terkumpul dari berbagai sistem aplikasi lain dan menjadikannya Analisis yang akan diterapkan pada aplikasi ini.
c. Perancangan Tampilan dan Penulisan Program
Perancangan Tampilan untuk Aplikasi ini dibentuk dengan tampilan yang semenarik mungkin bagi pengguna untuk menggunakannya. Dirancang dalam bentuk sederhana agar mudah dipahami oleh pengguna. Setelah Perancangan tampilan, maka kemudian diikuti dengan pembuatan program. Pembuatan program dalam Aplikasi ini harus terstruktur sesuai dengan rancangan tampilan agar menampilkan hasil sesuai dengan yang diinginkan.
d. Uji Program
Uji Program yang dilakukan dari perancangan Aplikasi Pemutar Musik ini bertujuan untuk mengetahui apakah aplikasi sudah berjalan dengan baik atau masih ada kesalahan.
15
e. Implementasi
Program yang telah dilakukan pengujian siap untuk dioprasikan. Artinya proses dari Sistem Aplikasi Pemutar Musik Berbasis Android telah terlaksana sesuai dengan rancangan yang telah dibentuk.
3.2 Analisis Sistem
Analisis sistem ialah penjabaran dari suatu sistem informasi yang utuh ke dalam berbagai bagian komponennya dengan maksud agar bisa mengidentifikasi dan mengevaluasi berbagai macam masalah atau hambatan yang timbul pada sistem sehingga nantinya bisa dilakukan penanggulangan, perbaikan dan juga pengembangan.
Lalu orang yang atau kelompok yang melakukan perbaikan atau perancangan suatu sistem dinamakan dengan sistem analis. Sistem analis adalah orang atau kelompok yang melaksanakan pengembangan sistem. Sistem analis menekuni permasalah ataupun kebutuhan pada suatu sistem dan sistem analis juga merupakan orang yang bertanggung jawab atas terjadinya proses analisa ataupun perancangan pada sistem informasi.
Untuk Analisis saat ini, Sistem aplikasi kebanyakan hanya menampilkan lagu atau musik yang diputar, tidak menampilkan lagu pada genre dan album. Adanya musik atau lagu yang ada pada aplikasi ini karena lagu atau musik sudah tersimpan dahulu pada penyimpanan memori pada android. Analisis sistem ini bertujuan untuk membuat sistem menggunakan android untuk mempermudah masyarakat untuk mendengarkan lagu yang disukai kapanpun dan dimanapun tanpa menggunakan jarinagan internet ( Aplikasi dapat dijalankan saat offline) .
3.3 Perancangan Sistem
Perancangan sistem merupakan tahap selanjutnya setelah analisa sistem, mendapatkan gambaran dengan jelas tentang apa yang dikerjakan pada analisa sistem, maka dilanjutkan dengan memikirkan bagaimana membentuk sistem tersebut.
Perancangan sistem adalah suatu fase dimana diperlukan suatu keahlian perancangan untuk elemen-elemen komputer yang akan mengunakan sistem yaitu pemilihan peralatan dan program komputer untuk sistem yang baru.
Pada aplikasi yang dibentuk saat ini di awali dengan perancangan sistem terlebih dahulu. Perancangan sistem dimulai dengan membentuk sebuah Flowchart sebagai bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksi yang ada didalam aplikasi. Berikutnya dibentuk sebuah Data Flow Diagram(DFD) untuk mengkonseptualisasikan bagaimana data berpindah dalam organisasi, proses-proses atau transformasi dimana data-data melalui, dan apa keluarannya.
Setelah dibentuknya sebuah Flowchart , selanjutnya adalah Perancangan Antar Muka Aplikasi. Pada saat membentuk perancangan Antarmuka, pembuatan objek-objek yang ada didalamnya adalah hal yang akan menjadi tampilan nyata dari Aplikasi yang dibentuk. Mulai dari perancangan tampilan Home, Login, Daftar, hingga Menu-menu konten lainnya.
3.4 Flowchart Aplikasi
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses berserta instruksinya. Berikut ini adalah alur Flowchart dari Aplikasi Pemutar Musik Berbasis Android :
17
Gambar 3.1 Flowchart Aplikasi
Dari Flowchart diatas bisa kita lihat, untuk penggunaan awal aplikasi, user akan masuk pada halaman daftar lagu lalu masuk pada media player. Pada saat music berputar, user dapat menjeda atau memilih lagu selanjutnya dan juga dapat memutar acak lagu yang ada.
3.5 Use Case Diagram Aplikasi
Use case menjelaskan interaksi yang terjadi antara aktor inisiator dari interaksi sistem itu sendiri dengan sistem yang ada, sebuah use case direpresentasikan dengan urutan langkah yang sederhana. Berikut ini adalah use case diagram dari Aplikasi Pemutar Musik Berbasis Android :
Gambar 3.2 Use Case Diagram Aplikasi
3.6 Perancangan Antar Muka
Merancang antarmuka merupakan bagian yang paling penting dari merancang sistem. Biasanya hal tersebut juga merupakan bagian yang paling sulit, karena dalam merancang antarmuka harus memenuhi tiga persyaratan: sebuah antarmuka harus sederhana, sebuah antarmuka harus lengkap, dan sebuah antarmuka harus memilki kinerja yang cepat.
Alasan utama mengapa antarmuka sulit untuk dirancang adalah karena setiap antarmuka adalah sebuah bahasa pemrograman yang kecil: antarmuka menjelaskan sekumpulan objek-objek dan operasi-operasi yang bisa digunakan untuk memanipulasi objek.
Dalam proses pengembangan antarmuka, kita bisa atau mungkin saja tidak bisa memisahkannya dari seluruh proses pengembangan sebuah produk. Walaupun begitu, fokus dari dua proses tersebut sangatlah berbeda. Dalam proses pengembangan antarmuka, fokus haruslah terletak pada elemen-elemen antarmuka
19
dan objek-objek yang pengguna lihat dan gunakan, dibandingkan dengan kemampuan sebuah program.
a. Perancangan Antar Muka Tampilan Splash screen
Perancangan Tampilan ini Terdiri dari nama aplikasi, dan gambar untuk background tampilan. Berikut Tampilan Antar Muka Tampilan splash screen :
Gambar 3.3 Antar Muka Tampilan Splash Screen b. Perancangan Antar Muka Tampilan Daftar Lagu
Perancangan Tampilan Daftar Lagu berisi tombol cari, nama aplikasi, daftar lagu dan tombol untuk memutar lagu.
Gambar 3.4 Antar Muka Tampilan Daftar Lagu c. Perancangan Antar Muka Tampilan Pemutar Musik
Perancangan Antar Muka Tampilan ini berisi Image View berupa gambar pada lagu, banyak button agar user dapat menjeda lagu, mempercepat dan memperlambat, mengganti dan putar acak lagu. Terdapat seek bar untuk menunjukkan durasi lagu yang diputar.
Gambar 3.5 Antar Muka Tampilan Pemutar Musik
BAB 4
HASIL DAN PEMBAHASAN
4.1 Pengertian Implementasi Sistem
Implementasi sistem adalah suatu proses untuk menempatkan sistem informasi baru ke dalam sistem yang sudah ada (sistem lama). Pada kesempatan ini saya akan membahas tahapan dalam melakukan implementasi sistem informasi. Ada lima tahap dalam implementasi sistem, yaitu membuat dan menguji basis data dan jaringan, membuat dan menguji program, memasang dan menguji sistem baru, serta mengirim sistem baru ke dalam sistem lama.
Implementasi sistem adalah langkah-langkah atau prosedur-prosedur yang dilakukan dalam menyelesaikan desaian sistem yang telah disetujui, untuk menguji, menginstal dan memulai sistem baru atau sistem yang diperbaiki untuk menggantikan sistem yang lama. Implementasi yang telah sesuai harus diuji coba sehingga dapat diketahui kehandalan dari sistem yang ada telah sesuai dengan apa yang diinginkan. Tujuan implementasi sistem ini adalah :
1. Menyelesaikan desain sistem yang ada dalam dokumen desain sistem yang disetujui, menyusun dokumen baru atau dokumen-dokumen yang diperbaiki.
2. Menulis, menguji dan mendokumentasikan program-program dan prosedur prosedur yang diperbaiki oleh desain sistem yang disetujui.
3. Memastikan bahwa user dapat mengoperasikan sistem baru.
4. Memperhitungkan bahwa sistem memenuhi permintaan user yaitu dengan menguji sistem secara menyeluruh.
5. Memastikan bahwa konversi sistem yang baru berjalan secara benar yaitu dengan merencanakan, mengontrol dan melakukan instalasi sistem baru secara benar.
4.2 Tahapan Implementasi Sistem
Dalam membuat suatu sistem haruslah dijelaskan terlebih dahulu langkah- langkah atau tahapan dari sistem yang akan dirancang, sehingga dapat tercapai sistem yang diharapkan. Tahap-tahap yang dilakukan dalam pembuatan sistem ini terdiri dari :
1. Persiapan Pada tahap ini dilakukan persiapan yaitu menganalisa masalah yang akan diproses, masalah yang penulis bahas dalam hal ini adalah masalah pendataan pegawai outsourcing.
2. Analisa Pada tahap ini akan dilakukan proses analisa mengenai data input pegawai, data input absensi, data input sanksi dan data input gaji.
3. Penulisan Tahap berikutnya adalah penyusunan atau penulisan program kedalam bahasa komputer dengan bahasa yang telah ditentukan.
4. Menjalankan Program Kita gunakan web server untuk menjalankan program dan browser internet untuk melihat output atau tampilan halaman web.
5. Pengujian Program Sebelum program dijalankan benar, maka program terlebih dahulu harus bebas dari kesalahan, oleh sebab itu program harus diuji kembali untuk mengetahui apakah program dapat menerima input dengan baik atau tidak, serta memberikan output yang sesuai dengan yang diharapkan.
4.3 Implementasi Tampilan Antarmuka Aplikasi
Pada tahapan implementasi ini merupakan tahapan pengimplementasian dari rancangan sistem yang telah dianalisis dalam perancangan sistem ke dalam bentuk pemrograman untuk menghasilkan suatu aplikasi yang dibuat berdasarkan kebutuhan. Adapun pembahasan implementasi adalah implementasi antar muka.
Berikut ini adalah beberapa tampilan interface dari aplikasi yang telah diimplementasikan.
23
1. Splash Screen
Halaman awal dari aplikasi yang berisi nama aplikasi.
Gambar 4.1 Implementasi Splash Screen 2. Daftar Lagu
Halaman yang ditampilkan setelah splash screen merupakan halaman yang berisi kumpulan lagu yang ada pada memori atau penyimpanan smartphone dan tombol untuk memutar musik yang berada pada sisi kanan dari judul lagu yang ada. Terdapat pula tombol pencarian judul lagu pada sisi sudut kanan atas tampilan.
Gambar 4.2 Implementasi Daftar Lagu
3. Pencarian
Pada halaman ini terdapat search view pada sisi atas tampilan yang berfungsi untuk melakukan pencarian judul sebuah lagu. Terdapat beberapa daftar lagu di bawah search view. Pada sisi sudut kiri atas tampilan terdapat tombol kembali untuk mengembalikan ke halaman daftar lagu.
Gambar 4.3 Implementasi Pencarian 4. Pemutar Musik
Pada halaman ini terdapat image view yang menunjukan gambar dari llagu yang diputar. Terdapat juga beberapa tombol yaitu Play dan Pause untuk menjeda dan memutar lagu, increase speed dan decrease speed untuk mempercepat dan memperlambat lagu, skip forward dan skip back untuk melompati satu lagu dan memundurkan kembali lagu, shuffle untuk memutar acak lagu yang diputar.
Terdapat tampilan nama penyanyi dan judul lagu yang diputar serta seekbar untuk menunjukkan durasi lagu.
25
Gambar 4.4 Implementasi Pemutar Musik
4.4 Pengujian
Pengujian merupakan suatu keharusan dalam membuat aplikasi untuk mendapatkan informasi mengenai kualitas dari aplikasi yang telah dibuat dan mengetahui apakah fungsi - fungsi dari aplikasi tersebut telah berjalan sesuai dengan tujuan. Metode dari pengujian sistem dalam penelitian ini yaitu metode pengujian black box.
1. Hasil Pengujian Halaman Daftar Lagu
Tabel 4.1 Hasil Pengujian Pada Tampilan Daftar Lagu Kasus dan Hasil Uji
Aksi Yang Diharapkan Pengamatan Kesimpulan Menekan tombol
play
Berpindah ke halaman pemutar musik
Pilihan aksi sesuai yang diharapkan
Berhasil
Menekan tombol search
Berpindah ke halaman pencarian
Pilihan aksi sesuai yang diharapkan
Berhasil
Hasil Pengujian di atas dapat dilihat pada gambar berikut:
Gambar 4.5 Hasil Pengujian Halaman Daftar Lagu
27
2. Hasil Pengujian Halaman Pencarian
Tabel 4.2 Hasil Pengujian Pada Halaman Pencarian Kasus dan Hasil Uji
Aksi Yang Diharapkan Pengamatan Kesimpulan Menekan tombol
kembali
Berpindah ke halaman daftar lagu
Pilihan aksi sesuai yang diharapkan
Berhasil
Mengisi judul lagu pada search view
Menampilkan lagu sesuai judul
Pilihan aksi sesuai yang diharapkan
Berhasil
Hasil Pengujian di atas dapat dilihat pada gambar berikut:
Gambar 4.6 Hasil Pengujian Halaman Pencarian
3. Hasil Pengujian pada Halaman Pemutar Musik
Tabel 4.3 Hasil Pengujian Pada Pemutar Musik Kasus dan Hasil Uji
Aksi Yang Diharapkan Pengamatan Kesimpulan Menekan tombol
play atau pause
Musik berputar atau berhenti
Pilihan aksi sesuai yang diharapkan
Berhasil
Menekan tombol increase speed atau decrease speed
Musik melambat atau semakin cepat
Pilihan aksi sesuai yang diharapkan
Berhasil
Menekan tombol skip back atau skip forward
Lagu terganti
Pilihan aksi sesuai yang diharapkan
Berhasil
Menekan tombol shuffle
Lagu terpuar secara acak
Pilihan aksi sesuai yang diharapkam
Berhasil
Hasil Pengujian di atas dapat dilihat pada gambar berikut:
Gambar 4.7 Hasil Pengujian Halaman Pemutar Musik
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan implementasi dan hasil pengujian Black Box diatas, penulis menarik kesimpulan bahwa salah satu aplikasi multimedia yang dapat dibuat adalah pemutar music. Perancangan dan pembuatan aplikasi ini berjalan dengan baik sesuai dengan kinerja penulis atau pembuat aplikasi.
5.2 Saran
Aplikasi Pemitar Musik berbasis Android ini kedepannya diharapkan agar bisa diakses pada sistem operasi iOS juga dapat menjadi alternatif bagi para pendengar dan pecinta musik.
DAFTAR PUSTAKA
Andri Kristanto,2008. Perancangan Sistem Informasi dan Aplikasinya. Gava Media:
Yogyakarta [19 Mei 2018]
Anonim.Mengenal Android Studio.
https://developer.android.com/studio/intro/index.html [7 Juni 2018]
Anonim. MP3 player flowchart.
https://www.deviantart.com/krrouse/art/MP3-player-flowchart-119251631 [21 Juni 2018]
Anonim.Bahasa Pemograman Java
https://didiindra.wordpress.com/tag/pengertian-java/ [24 April 2018]
Anonim.Android Sistem Operasi
https://id.wikipedia.org/wiki/Android (sistem_operasi) [25 April 2018]
Anonim.Pengertian android dan java
http://www.jadibaru.com/android/pengenalan-android-studio-2/ [25 April 2018]
Arif Wicaksana. Pengertian Use Case.
https://medium.com/@arifwicaksanaa/pengertian-use-case-a7e576e1b6bf [11 Juni 2018]
Arifianto, Teguh. (2011). Membuat Interface Aplikasi Android Lebih Keren dengan LWUIT. Yogyakarta: Andi Publisher [7 Juni 2018]
Bima Injam Pamungkas. Naskah Publikasi Desain dan Implementasi Pemutar Musik Berbasis Android.http://repository.amikom.ac.id/files/Publikasi_10.02.7799 [23 April 2018]
Indrajani. (2011). Perancangan Basis Data dalam All in 1, PT. Elex Media Komputindo, Jakarta [ 7 Juni 2018]
Jamalus. 1988. Panduan Pengajaran Buku Pengajaran Musik Melalui Pengalaman Musik. Jakarta: Proyek Pengembangan Lembaga Pendidikan Tenga
Kependidikan. [ 7 Juni 2018]
Juhara, Zamrony P. 2016.Panduan Lengkap Pemrograman Adnroid. Yogyakarta:
Penerbit Andi. [19 Mei 2018]
Kenneth, Julie E Kendall. 2015.Analisis Dan Perancangan Sistem Edisi Kelima [9 Mei 2018]
Nazruddin Safaat H, 2011. Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Informatika, Bandung. [19 Mei 2018]
LAMPIRAN
1. Listing Program
SplashScreenActivity.java
package com.example.acer.musicplayer;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class SplashScreenActivity extends AppCompatActivity { public static int time = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
new Handler().postDelayed(new Runnable() { @Override
public void run() { Intent i = new
Intent(SplashScreenActivity.this, MainActivity.class);
startActivity(i);
finish();
} }, time);
} }
MainActivity.java
package com.example.acer.musicplayer;
import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.SeekBar;
import android.widget.Toast;
import
com.miguelcatalan.materialsearchview.MaterialSearchView;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity { private ArrayList<SongInfo> _songs = new
ArrayList<SongInfo>();
ArrayList song,album_ID ; private List<String> title;
RecyclerView recyclerView;
SeekBar seekBar;
String album;
SongAdapter songAdapter;
MediaPlayer mediaPlayer;
MaterialSearchView searchView;
ListView lstView;
public static final int RUNTIME_PERMISSION_CODE = 7;
Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.RecycleView);
seekBar = findViewById(R.id.Seekbar);
song = new ArrayList();
album_ID = new ArrayList();
title = new ArrayList();
songAdapter = new SongAdapter(this,_songs);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(recyclerView.getContext(),linearLayoutMa nager.getOrientation());
recyclerView.addItemDecoration(dividerItemDecoration);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(songAdapter);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("Music");
toolbar.setTitleTextColor(Color.parseColor("#ffffff"));
lstView = findViewById(R.id.recycler_view_fragment);
songAdapter.setOnItemClickListener(new SongAdapter.OnItemClickListener() {
@Override
public void onItemClick(final Button b, View v, final SongInfo obj, int position) {
Intent detail = new
Intent(MainActivity.this,DetailMusicActivity.class);
detail.putExtra("url", obj.getSongUrl());
detail.putExtra("album", obj.albumID);
detail.putExtra("position", position);
detail.putStringArrayListExtra("array_song", song);
detail.putStringArrayListExtra("album_ID", album_ID);
startActivity(detail);
} });
CheckPermission();
loadSongs();
Thread t = new Thread();
t.start();
searchView = findViewById(R.id.search_view);
searchView.setOnSearchViewListener(new MaterialSearchView.SearchViewListener() { @Override
public void onSearchViewShown() { }
@Override
public void onSearchViewClosed() {
recyclerView.setVisibility(View.VISIBLE);
lstView =
findViewById(R.id.recycler_view_fragment);
ArrayAdapter adapter = new ArrayAdapter(MainActivity.this,
android.R.layout.simple_list_item_1, title);
lstView.setAdapter(adapter);
lstView.setVisibility(View.GONE);
} });
searchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() { @Override
public boolean onQueryTextSubmit(String query) { return false;
}
@Override
public boolean onQueryTextChange(String newText) { recyclerView.setVisibility(View.GONE);
lstView.setVisibility(View.VISIBLE);
if (newText != null && !newText.isEmpty()) {
List<String> lstFound = new ArrayList<String>();
for (String item : title) { if (item.contains(newText)) lstFound.add(item);
}
ArrayAdapter adapter = new ArrayAdapter(MainActivity.this,
android.R.layout.simple_list_item_1, lstFound);
lstView.setAdapter(adapter);
} else {
ArrayAdapter adapter = new ArrayAdapter(MainActivity.this,
android.R.layout.simple_list_item_1, title);
lstView.setAdapter(adapter);
}
return true;
} });
lstView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?>
adapterView, View view, int i, long l) {
String selectedItemText = (String) adapterView.getItemAtPosition(i);
SongInfo obj = new SongInfo();
Intent detail = new
Intent(MainActivity.this,DetailMusicActivity.class);
detail.putExtra("url", obj.getSongUrl());
detail.putExtra("album", obj.albumID);
detail.putExtra("position", i);
detail.putStringArrayListExtra("array_song", song);
detail.putStringArrayListExtra("album_ID", album_ID);
startActivity(detail);
} });
}
public class MyThread extends Thread{
@Override
public void run(){
try {
Thread.sleep(1000);
if (mediaPlayer!=null){
seekBar.setProgress(mediaPlayer.getCurrentPosition());
}
} catch (InterruptedException e) { e.printStackTrace();
} } }
private void CheckPermission(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if
(checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE ) != PackageManager.PERMISSION_GRANTED) {
if
(shouldShowRequestPermissionRationale(Manifest.permission.READ _EXTERNAL_STORAGE)) {
AlertDialog.Builder alert_builder = new AlertDialog.Builder(MainActivity.this);
alert_builder.setMessage("External Storage Permission is Required.");
alert_builder.setTitle("Please Grant Permission.");
alert_builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, RUNTIME_PERMISSION_CODE);
} });
alert_builder.setNeutralButton("Cancel", null);
AlertDialog dialog = alert_builder.create();
dialog.show();
} else {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, RUNTIME_PERMISSION_CODE);
} } else { }
} }
@Override
32
public void onRequestPermissionsResult(int requestCode,
@NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){
case 123:
if
(grantResults[0]==PackageManager.PERMISSION_GRANTED){
loadSongs();
} else {
Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show();
CheckPermission();
} break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
} }
private void loadSongs() {
Uri ur = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String selection = MediaStore.Audio.Media.IS_MUSIC +"!=0";
Cursor cursor =
getContentResolver().query(ur,null,selection,null,null);
if (cursor!=null){
if (cursor.moveToFirst()){
do {
String name =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.
TITLE));
String arist =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.
ARTIST));
String url =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.
DATA));
album =
cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.
ALBUM_ID));
song.add(url);
title.add(name);
album_ID.add(album);
SongInfo s = new SongInfo(name,arist,url,album);
_songs.add(s);
} while (cursor.moveToNext());
}
cursor.close();
songAdapter = new SongAdapter(this,_songs);
} }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_item, menu);
MenuItem item = menu.findItem(R.id.action_search);
searchView.setMenuItem(item);
return true;
} }
SongAdapter.java
package com.example.acer.musicplayer;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.TextView;
import java.util.ArrayList;
/**
* Created by ACER on 18/06/2018.
*/
public class SongAdapter extends
RecyclerView.Adapter<SongAdapter.SongHolder> {
ArrayList<SongInfo> _songs;
Context context;
OnItemClickListener onItemClickListener;
SongAdapter(Context context, ArrayList<SongInfo> _songs){
this.context = context;
this._songs = _songs;
}
public interface OnItemClickListener{
void onItemClick(Button b, View v ,SongInfo obj, int position);
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener){
this.onItemClickListener = onItemClickListener;
}
@Override
public SongHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View myView =
LayoutInflater.from(context).inflate(R.layout.row_song,parent, false);
return new SongHolder(myView);
}
@Override
public void onBindViewHolder(@NonNull final SongHolder holder, final int position) {
final SongInfo c = _songs.get(position);
holder.songName.setText(c.songName);
holder.artistName.setText(c.artistName);
holder.btnAction.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { if (onItemClickListener !=null){
onItemClickListener.onItemClick(holder.btnAction,view,c,positi on);
} } });
}
@Override
public int getItemCount() { return _songs.size();
}
public class SongHolder extends RecyclerView.ViewHolder { TextView songName,artistName;
Button btnAction;
public SongHolder(View itemView) { super(itemView);
songName = itemView.findViewById(R.id.tvSongName);
artistName =
itemView.findViewById(R.id.tvArtistName);
btnAction = itemView.findViewById(R.id.btnAction);
} } }
DetailMusicActivity.java
package com.example.acer.musicplayer;
import android.database.Cursor;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Handler;
import android.provider.MediaStore;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class DetailMusicActivity extends AppCompatActivity { String url, albumID, Artist, Judul, play, S_shuffle;
MediaPlayer mediaPlayer;
TextView Txt_Artist, Txt_Judul, Txt_wkt_total, Txt_wkt_skrng;
ImageView image,next,previous,fast,rewind,shuffle;
FloatingActionButton fab;
SeekBar seekbar;
Handler handler;
Runnable runnable;
ArrayList
song,album_ID,song_shuffle,album_ID_shuffle,song_ori,album_ID_
ori;
int position;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail_music);
image = findViewById(R.id.Image);
next = findViewById(R.id.next);
previous = findViewById(R.id.previous);
fast = findViewById(R.id.fast);
rewind = findViewById(R.id.rewind);
shuffle = findViewById(R.id.shuffle);
Txt_Artist = findViewById(R.id.Txt_Artist);
Txt_Judul = findViewById(R.id.Txt_Judul);
Txt_wkt_total = findViewById(R.id.Txt_wkt_total);
Txt_wkt_skrng = findViewById(R.id.Txt_wkt_skrng);
fab = findViewById(R.id.fab);
seekbar = findViewById(R.id.Seekbar);
handler = new Handler();
song = new ArrayList();
album_ID = new ArrayList();
play = "play";
S_shuffle = "on";
getData();
LoadDetails();
PlayingMusic();
seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
if (b) {
mediaPlayer.seekTo(i);
} }
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) { }
});
fab.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View view) { if (play.equals("play")) { mediaPlayer.pause();
play = "pause";
fab.setImageResource(R.drawable.ic_play_vector);
} else if (play.equals("pause")) { mediaPlayer.start();
play = "play";
fab.setImageResource(R.drawable.ic_pause_vector);
} } });
next.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View view) { position = position+1;
if (position==song.size()){
position = position-1;
Toast.makeText(DetailMusicActivity.this,
"End Of Song", Toast.LENGTH_SHORT).show();
} else {
mediaPlayer.stop();
mediaPlayer.release();
PlayingMusic();
LoadDetails();
} } });
previous.setOnClickListener(new View.OnClickListener() {