LAPORAN TUGAS AKHIR
DESI WIDYA WULANDARI 152406040
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
DESI WIDYA WULANDARI 152406040
PROGRAM STUDI D3 TEKNIK INFORMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2018
PEMBUATAN APLIKASI MUSIK DOWNLOADER MENGGUNAKAN ANDROID STUDIO
LAPORAN TUGAS AKHIR
Saya menyatakan bahwa laporan tugas akhir ini adalah hasil karya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2018
Desi Widya Wulandari 152406040
PEMBUATAN APLIKASI MUSIK DOWNLOADER MENGGUNAKAN ANDROID STUDIO
ABSTRAK
Musik merupakan salah satu cabang seni yang menjadi kebutuhan hidup masyarakat. Keberadaan musik dalam kehidupan masyarakat tentunya tidak lepas dari berbagai macam fungsi yang ada di dalam musik itu sendiri. Saat ini perkembangan musik di Indonesia sangat pesat dan juga beragam. Hal ini yang mendasari masyarakat untuk menggunakan aplikasi yang dapat melakukan unduhan musik secara cepat dan efesien.
Dalam pembuatan aplikasi ini, penulis menggunakan bahasa pemprograman Java untuk aplikasi mobile khususnya berbasis Android. Metode pengembangan sistem yang yang digunakan dalam aplikasi ini adalah Metode Waterfall. Aplikasi ini diharapkan dapat membantu setiap orang menjadi lebih mudah untuk melakukan search, share, dan download lagu dengan cepat, efesien, serta aplikasi yang disediakan juga ringan.
Kata Kunci : Waterfall, Downloader, Android, Mobile
MAKING DOWNLOADER MUSIC APPLICATIONS USING ANDROID STUDIO
ABSTRACT
Music is one of the branches of art that became the necessities of life of the community. The existence of music in people's lives certainly can not be separated from the various functions that exist in the music itself. Currently the development of music in Indonesia is very rapid and also diverse. This is the underlying community to use applications that can perform music downloads quickly and efficiently.
In making this application, the author uses the Java programming language for mobile applications especially based on Android. The system development method used in this application is Waterfall Method. This application is expected to help everyone become easier to search, share, and download songs quickly, efficiently, and applications provided are also lightweight.
Keywords: Waterfall, Downloader, Android, Mobile
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Pemurah dan Maha Penyayang, dengan limpah karunia-Nya Penulis dapat menyelesaikan penyusunan laporan tugas akhir ini dengan judul Pembuatan Aplikasi Musik Downloader Menggunakan Android Studio.
Terima kasih penulis sampaikan kepada Ibu Marischa Elveny, STI, M.Kom selaku pembimbing yang telah meluangkan waktunya selama penyusunan laporan tugas akhir ini. Terima kasih kepada Ibu Dra. Normalina Napitupulu, M.Sc dan Bapak Drs. James Piter Marbun, M.Kom selaku ketua program studi dan sekertaris program studi D3 Teknik Informatika FMIPA-USU Medan, dekan dan wakil dekan FMIPA USU, seluruh staf dan dosen Program studi D3 Teknik Informatika FMIPA USU, pegawai dan rekan-rekan kuliah. Akhirnya tidak terlupakan kepada Bapak, Ibu dan keluarga yang selama ini memberikan bantuan dan dorongan yang diperlukan. Semoga Tuhan Yang Maha Esa akan membalasnya.
Medan, Juli 2018
Desi Widya Wulandari
DAFTAR ISI
Halaman
PENGESAHAN LAPORAN TUGAS AKHIR i
ABSTRAK ii
ABSTRACT 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 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
BAB 2 TINJAUAN PUSTAKA 2.1 Aplikasi 5
2.2 Download 5
2.3 Sistem Operasi Android 6
2.3.1 Sejarah Android 6
2.3.2 Perkembangan Android 6
2.4 Platform Android 11
2.5 Java 12
2.6 Android Studio 13
2.7 Flowchart 14
2.7.1 Simbol pada Flowchart 14
2.8 Data Flow Diagram (DFD) 15
BAB 3 ANALISIS, DAN PERANCANGAN SISTEM 3.1 Pengertian Analisis Sistem 18
3.1.1 Analisis Sistem yang Berjalan 18
3.1.2 Analisis Sistem yang Diusulkan 18
3.2 Perancangan 18
3.2.1 Flowchart Aplikasi Downloader Musik 19
3.3 Diagram Konteks 21
3.4 Data Flow Diagram (DFD) 22
3.5 Perancangan Antar Muka (User Interface) 24
BAB 4 IMPLEMENTASI SISTEM 4.1 Pengertian Implementasi Sistem 28
4.1.1 Implementasi Tampilan Antar Muka Pengguna 28
BAB 5 KESIMPULAN DAN SARAN
5.1 Kesimpulan 35
5.2 Saran 35 DAFTAR PUSTAKA
LAMPIRAN
DAFTAR TABEL
Nomor Judul Halaman
Tabel
2.1 Simbol Flowchart 15
2.2 Simbol dan Fungsi Data Flow Diagram (DFD) 15
2.3 Input-Output System 19
2.4 Komponen ERD 20
3.1 Tabel Admin 28
3.3 Tabel Data Barang 29
3.4 Tabel Data Konfirmasi 29
3.5 Tabel Pesanan 29
3.6 Tabel Service 30
DAFTAR GAMBAR
Nomor Judul Halaman Gambar
3.1 Diagram Konteks 22
3.2 Data Flow Diagram (DFD) Level 0 22 3.3 Data Flow Diagram (DFD) Level 1.0 23 3.4 Entity Relationship Diagram (ERD) 24
3.5 Flowchart Menu Utama User 25
3.6 Flowchart Pembelian 26
3.7 Flowchart Menu Admin 27
3.8 Perancangan Login Admin 31
4.1 Tampilan Awalan Aplikasi Musik Downloader 29 4.2 Tampilan Awalan Aplikasi Musik Downloader Lanjutan 29
4.3 Tampilan Menu Top Trending 30
4.4 Tampilan Download Menu Top Trending 31 4.5 Tampilan Download Menu Top Trnding 31
4.6 Tampilan Menu New Single 32
4.7 Tampilan Download Menu New Single 32 4.8 Tampilan Menu International Hits 33
4.9 Tampilan Menu Pencarian Lagu 33
4.10 Tampilan Menu Pencarian Lagu Lanjutan 34 4.11 Tampilan Pencarian Berdasarkan Penyanyi 35
DAFTAR LAMPIRAN
Nomor Judul Halaman Lampiran
1 Listing Program 36
2 Surat Keterangan Dosen Pembimbing 68
3 Kartu Bimbingan Tugas Akhir 70
4 Surat Keterangan Hasil Uji Program 71
BAB 1 PENDAHULUAN
1.1 Latar Belakang
Musik merupakan salah satu cabang seni yang menjadi kebutuhan hidup masyarakat.Keberadaan musik dalam kehidupan masyarakat tentunya tidak lepas dari berbagai macam fungsi yang ada di dalam musik itu sendiri. Saat ini perkembangan musik di Indonesia sangat pesat dan juga beragam. Namun saat ini penikmat musik masih megalami kurangnya media yang mendukung untuk search, share, dan download lagu secara cepat, mudah, dan gratis.
Ada beberapa penelitian yang telah dibuat sebelumnya yang menjadi referensi untuk memperbanyak bahan kajian pada penelitian penulis, salah satunya yaitu dengan judul Perancangan Aplikasi Pemutar Musik Beserta Penampil Lirik Musik Berbasis Android. Aplikasi ini menampilkan lirik menggunakan Teknik Scraping Lirik. Untuk menampilkan lirik aplikasi ini membutuhkan koneksi internet. Aplikasi dapat berjalan pada sistem operasi android minimal 4.1 (Jelly Bean). (Septadi Nugraha, 2016).
Berdasarkan kondisi tersebut, diperlukan aplikasi musik downloader yang mempermudah masyarakat dalam mencari, mendengar dan mengunduh lagu yang diminati secara cepat, mudah dan gratis. Aplikasi ini dibangun dengan pemograman Java dan XML. Beranjak dari permasalahn tersebut, peneliti bertujuan untuk membuat dan merancang aplikasi musik downloader yang akan dilanjutkan untuk memenuhi tugas akhir yang akan diberi judul “Pembuatan Aplikasi Musik Downloader Menggunakan Android Studio”.
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah diuraikan, maka rumusan masalah dalam penelitian ini yaitu bagaimana cara agar penikmat
musik mudah dalam search, share dan download lagu secara cepat, mudah dan gratis dengan aplikasi yang ringan ?
1.3 Batasan Masalah
Batasan masalah dilakukan agar penulis dapat memberikan pemahaman yang terarah dan sesuai dengan yang diharapkan. Agar pembahasan tidak menyimpang dari pokok perumusan masalah yang ada, maka permasalahan yang akan dibahas pada aplikasi ini antara lain:
1. Menggunakan API yang telah dibuat oleh sistem orang lain.
2. Aplikasi ini hanya memfokuskan pada fitur-fitur search, share dan download.
3. Aplikasi downloder yang dibuat oleh penulis hanya untuk melakukan unduhan musik.
4. Sistem yang dibuat tidak menggunakan admin sebagai pengelola dari aplikasi
1.4 Tujuan Penelitian
Dalam penyusunan tugas akhir ini tujuan yang hendak di capai dalam Pembuatan Aplikasi Musik Downloader Menggunakan Adroid Studio adalah :
1. Memenuhi sebagian syarat mengikuti Ujian Tugas Akhir Program Diploma III ( DIII) Program Studi Teknik Informatika di Universitas Sumatera Utara.
2. Untuk mempermudah penikmat musik dalam search, share dan download lagu secara cepat, mudah dan gratis.
3. Untuk memudahkan user melakukan unduhan musik dengan aplikasi yang ringan dan mudah digunakan oleh masyarakat.
1.5 Manfaat Penelitian
Manfaat yang diperoleh dari Pembuatan Aplikasi Musik Downloader Menggunakan Adroid Studio adalah :
a. Bagi penulis
Untuk membantu dalam penyusunan Laporan Semester sebagai syarat untuk mengikuti Ujian Tugas Akhir program Diploma III (D3) Program Studi Teknik Informatika di Universitas Sumatera Utara. Selain itu, penulisan laporan ini diharapkan dapat berguna bagi penulis sendiri untuk menambah wawasan tentang Pembuatan Aplikasi Musik Downloader Menggunakan Android.
b. Bagi pengguna
Untuk Mempermudah penikmat musik dalam menikmati musik yang mereka inginkan secara cepat, mudah dan gratis
c. Sebagai bahan refensi yang akan datang.
1.6 Metode Penelitian
Dalam menyusun tugas akhir ini penulis melakukan penerapan metode penelitian dalam memperoleh data-data yang dibutuhkan sehingga penyusunan tugas akhir ini dapat diselesaikan dengan baik. Adapun metode penelitian yang dilakukan adalah sebagai berikut :
1. Pengumpulan Data
Pengumpulan data-data menggunakan API yang telah disiapkan oeh pihak ke 3 yaitu joox.
2. Identifikasi Masalah
Identifikasi masalah dilakukan dengan melihat dari data yang sudah terkumpul dan penulis mengangkatnya kedalam sebuah solusi yang telah dijadikan judul.
3. Perancangan Aplikasi
Perancangan aplikasi yaitu melakukan desain dan koding untuk Aplikasi Pembuatan Musik Downloader Menggunakan Android Studio.
4. Pengujian
Melakukan pengujian perancangan Aplikasi Pembuatan Musik Downloader Menggunakan Android Studio. Tahap ini dilakukan untuk mengetahui apakah sistem sudah berjalan dengan baik atau masih terdapat kesalahan / error.
5. Peyusunan Laporan
Pada tahap ini dilakukan pembuatan laporan dari perancangan Aplikasi Pembuatan Musik Downloader Menggunakan Android Studio.
1.7 Sistematika Penulisan Tugas Akhir
Agar dapat memberikan gambaran yang jelas pada penulisan tugas akhir ini, maka penulis membaginya dalam beberapa bab sebagai berikut :
BAB I : PENDAHULUAN
Bab ini menguraikan tentang latar belakang, rumusan masalah, tujuan, manfaat, metode penelitian, tinjauan pustaka, sistematika penulisan tugas akhir.
BAB II : TINJAUAN PUSTAKA
Bab ini menguraikan tentang uraian teoritis mengenai pengertian- pengertian dan mengenai bahasa pemprograman yang digunakan.
BAB III : PERANCANGAN SISTEM
Bab ini menguraikan tentang perancangan sistem mulai dari perancangan layout, diagram konteks, ERD, hingga flowchart sistem.
BAB IV : IMPLEMENTASI SISTEM
Berisikan defenisi mengenai dan tujuan implementasi sistem, output program serta komponen – komponen kebutuhan sistem.
BAB V : KESIMPULAN DAN SARAN
Berisikan kesimpulan dan saran yang dikutip oleh penulis selama proses pembangunan aplikasi.
BAB 2
TINJAUAN PUSTAKA
2.1 Aplikasi
Menurut Dhanta (2009:32), aplikasi (application) adalah sofware yang dibuat oleh suatu perusahaan komputer untuk mengerjakan tugas-tugas tertentu misalnya microsoft word, microsoft excel, sedangkan menurut anisyah (2000:30), aplikasi adalah penerapan, penggunaan atau penambahan. Dari pengertian tersebut, dapat disimpulkan bahwa aplikasi merupakan sofware yang berfungsi untuk melakukan berbagai bentuk pekerjaan atau tugas-tugas tertentu seperti penerapan, penggunaan dan penambahan data.
Beberapa aplikasi yang digabung bersama menjadi suatu paket kadang disebut sebagai suatu paket atau suite aplikasi (aplication suite). Contohnya adalah microsft office dan openoffice.org, yang menggabungkan suatu aplikasi pengolah kata, lembar kerja, serta beberapa aplikasi lainnya. Aplikasi-aplikasi dalam suatu paket biasanya memiliki antarmuka pengguna yang memiliki kesamaan sehingga memudahkan pengguna unutk mempelajari dan menggunakan tiap aplikasi. Sering kali, mereka meiliki kemampuan untuk saling berinteraksi satu sama lain sehingga menguntungkan pengguna. Contohnya, suatu lembar kerja dapat dibenamkan dalam satu dokumen pengolah kata walaupun dibuat pada aplikasi lembar kerja yang terpisah.
2.2 Download
Istilah Download pada dasarnya berasal dari bahasa Inggris yang jika dibahasa Indonesiakan artinya adalah mengunduh. Jika diartikan dari asal katanya, maka download merupakan aktivitas mengunduh file-file yang ada di komputer lain dengan memanfaatkan jaringan internet.
Menurut Arbakid, pengertian download adalah suatu proses pengambilan file yang terdapat di jaringan internet dengan menggunakan beberapa macam cara seperti melalui web server, mail server, FTV server, atau pun sistem lain yang sejenis.
2.3 Sistem Operasi Android
Nazruddin Safaat H (2011) dalam bukunya yang berjudul “Android Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Beerbasis Android”
(2014), mengemukakan bahwa android adalah sebuah sistem operasi untuk perangkat mobile berbasis linux yang mencakup sistem operasi, middleware dan aplikasi. Pada buku karya Akhmad Dharma Kasman yang berjudul “Kolaborasi Dahsyat Android dengan PHP & MYSQL” (2013), android adalah sebuah sistem operasi telepon seluler dan komputer tablet layar sentuh (touchscreen) yang berbasis Linux.
Namun seiring perkembangannya, Android berubah menjadi platform yang begitu cepat dalam malakukan inovasi. Hal ini tidak lepas dari pengembang utama dibelakangnya yaitu Google. Google-lah yang mengakusisi android, kemudian membuatkan sebuah platform. Platform Android terdiri dari sistem operasi berbasis Linux, sebuah GUI (Graphic User Interface), sebuah web browser dan aplikasi end-user yang dapat di download dan juga para pengembang bisa dengan leluasa berkarya serta menciptakan aplikasi yang terbaik dan terbuka untuk digunakan oleh berbagai macam perangkat.
2.3.1 Sejarah Android
Pada awalnya, Android Inc. merupakan sebuah perusahaan software kecil yang didirikan pada bulan Oktober 2003 di Palo Alto, California, USA. Didirikan oleh beberapa senior di beberapa perusahaan yang berbasis IT & Communication;
Andy, Rubin, Rich Miner, Nick Sears dan Chris White. Menurut Rubin, Android Inc. didirikan untuk mewujudkan mobile device yang lebih peka terhadap lokasi
dan preferensi pemilik. Dengan kata lain, Android Inc. ingin mewujudkan mobile device yang lebih mengerti pemiliknya.
Konsep yang dimiliki Android Inc. ternyata menggugah minat Google untuk memilikinya. Pada bulan Agustus 2005, akhirnya Android Inc. diakuisisi oleh Google Inc. seluruh sahamnya dibeli oleh Google. Saat ini terdapat dua jenis distributor sistem operasi bagi mobile phone di dunia. Pertama yang mendapat dukungan penuh dari Google atau Google Mail Service (GMS) dan yang kedua adalah yang benar-benar bebas distribusinya tanpa dukungan langsung dari Google atau dikenal dengan Open Handset Distribution (OHD).
Sistem operasi ini membuka pintu untuk para developer untuk mengembangkan software ini dengan Android SDK (Software Development Kit), yang menyediakan tool dan API yang dibutuhkan untuk memulai mengembangkan aplikasi pada platform Android menggunakan pemrograman Java. Pada bulan September 2007, Google mulai mengajukan hak paten aplikasi telepon seluler. Disusul dengan dikenalkannya perangkat seluler Android yang pertama pada tahun 2008, yaitu HTC Dream yang menggunakan Android versi 1.0.
Hadirnya HTC Dream telah mendorong perusahaan-perusahaan perangkat keras lainnya untuk ikut menggunakan sistem operasi Android.
Kemudian pada tahun 2008 terdapat beberapa perusahaan yang ikut bergabung dalam Android Arm Holdings, yaitu Atheros Communications diproduksi oleh Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, dan Vodafone Group Plc. Saat ini, sistem operasi Android menjadi pilihan yang menguntungkan bagi banyak vendor smartphone, karena memiliki biaya lisensi yang lebih murah dan sifatnya yang semi-open source. Selain itu, Android tentunya juga akan support dengan berbagai layanan dari Google.
2.3.2 Perkembangan Android
Keunikan dari nama sistem operasi (OS) Android adalah dengan menggunakan nama makanan hidangan penutup (dessert). Selain itu juga nama- nama OS Android memiliki huruf awal berurutan sesuai abjad. Perkembangan
versi Android menurut buku karya Alfa Satyaputra dan Eva Maulina Aritonang adalah sebagai berikut:
1. Android 1.0 Apple Pie
Telah dirilis setelah versi Android beta dan menjadi versi komersial pertama yang hadir untuk para konsumen. Diantara fitur yang menjadi andalan saat itu adalah:
a. Android Market. Para pengguna bisa memanfaatkan aplikasi-aplikasi yang ada di web itu dengan men-download atau meng-upgrade. Banyak sekali aplikasi termasuk game android yang boleh diunduh secara gratis.
b. Kamera. Tetapi belum ada fasilitas yang lengkap untuk membuat hasil kamera itu maksimal, seperti resolusi, kualitas gambar, kejernihan, dan lainnya.
c. Shortcut icon. Dengan itu, pengguna bisa dengan mudah masuk ke aplikasi, pesan, telepon atau yang lain karena bisa diletakkan pada homescreen.
2. Android 1.1 Banana Bread
Android 1.1 dirilis pada tanggal 9 Februari 2009 yang memiliki kode nama Banana bread serta ukuran layar 320×480 HVA.
3. Android 1.5 Cupcake
Versi ini mulai memakai nama-nama makanan agar mudah diingat. Di antara fitur yang diperbaharui adalah:
a. Dapat merekam sekaligus memutar video berekstensi MPEG-4 serta 3GP.
b. Dapat meng- copy dan paste tulisan saat membuka blog atau website.
c. Bisa menambahkan foto di kontak favorit.
d. Layar dilengkapi dengan animasi-animasi.
e. Layar dapat berputar secara otomatis.
4. Android 1.6 Donut
a. Terdapat history bookmark untuk kontak dan web. Ini akan mempermudah jika kita ingin melihat web yang pernah kita buka.
b. Beberapa aplikasi dapat melafalkan teks.
c. Kamera, perekam video, serta galery sudah diperbaharui agar lebih maksimal penggunaannya.
5. Android Éclair
a. Penambahan fitur bluetooth 2.1
b. Fitur pencarian SMS dan MMS yang disimpan dan SMS yang paling lama akan terhapus apabila mencapai batas yang ditentukan.
c. Keyboardvirtual diperbaharui agar mudah untuk mengetik tulisan.
d. Penambahan Google Maps versi 3.1.2
e. Versi : Android 2.0 , Android 2.0.1 , dan Android 2.1 6. Android 2.2–2.2.3 Froyo
a. Pembaharuan terhadap kecepatan kinerja android.
b. Peningkatan peluncur aplikasi dengan jalan pintas ke Telepon dan aplikasi penjelajah web.
c. Memperbaharui fitur USB tethering serta hotspot Wi-Fi.
d. Terdapat fitur upgrade otomatis pada Google Play.
e. Kontak dapat di-share memakai Bluetooth.
f. Penambahan aplikasi Adobe Flash.
7. Android Gingerbread
a. Akurasi terhadap keyboard virtual telah ditingkatkan. Ditambah lagi dengan fitur input suara.
b. Fitur copypasteditingkatkan untuk mempermudah penggunanya.
c. Download Manager, untuk mempermudah proses pengunduhan beberapa aplikasi termasuk game android.
d. Versi : Android 2.3 – 2.3.2 , Android 2.3.3 – 2.3.7 1. Android Honeycomb
Penambahan sistem bar yang berfungsi untuk mempercepat pemberitahuan, status, serta tombol navigasi.
Fitur untuk melihat aplikasi yang sedang berjalan.
Galery baru bisa melihat foto-foto dengan fullscreen Aplikasi Google Talk. Berfungsi sebagai obtolan.
Versi : Android 3.0 , Android 3.1 , dan Android 3.2 2. Android Ice Cream Sandwich
Membuat folder lebih gampang karena cukup dengan drag dan drop.
Tambahan webbrowser bawaan dari Chrome. Dapat membuka laman sampai 16 tab
Beberapa huruf baru telah ditambahkan.
Data internet bisa dibatasi sesuai keinginan. Internet akan mati apabila mencapai batas tersebut.
Versi : Android 4.0 -4.0.2 , dan Android 4.0.3 – 4.0.4 3. Android Jelly Bean
Akses lebih cepat.
Dapat mematikan pemberitahuan pada aplikasi tertentu
Shortcut serta widget dapat disusun ulang atau diubah ukurannya sesuai keinginan.
Aplikasi pada kamera ditambah.
Dapat menambahkan widget aplikasi tanpa harus root terlebih dulu.
Versi : Android 4.1 , Android 4.2 , dan Android 4.3 3. Android 4.4 KitKat
Status bar serta navigasi menjadi transparan pada homescreen.
Ilengkapi dengan Infrared Akses API ditingkatkan.
Mode layar penuh diperbaharui
Tambahan BluetoothMessageAccessProfile.
4. Android 5.0 Lollipop
Sistem keamanan Lollipop dijalankan diatas sistem SeLinux.
Tampilan lebih berwarna dan responsif.
Menawarkan fitur priority yang fungsinya tidak kalah dengan fitur Apple Do Not Disturb milik iPhone.
Lebih hemat baterai.
5. Android 6.0 Marshmallow
Android Marshmallow memperkenalkan model izin yang didesain ulang:
sekarang ada hanya delapan kategori izin, dan aplikasi yang tidak lagi secara otomatis diberikan semua hak akses mereka ditentukan pada waktu instalasi. Sebuah sistem opt-in sekarang digunakan, di mana pengguna akan diminta untuk memberikan atau menolak izin individu (seperti kemampuan
untuk mengakses kamera atau mikrofon) untuk aplikasi ketika mereka dibutuhkan. Aplikasi mengingat hibah izin mereka, dan mereka dapat disesuaikan oleh pengguna setiap saat. Model izin baru akan digunakan hanya oleh aplikasi yang dikompilasi untuk Marshmallow menggunakan kit pengembangan perangkat lunak (SDK) tersebut, sementara semua aplikasi lainnya akan terus menggunakan model izin sebelumnya.Android Marshmallow juga memiliki skema manajemen daya baru bernama Doze yang mengurangi tingkat aktivitas aplikasi latar belakang saat perangkat menentukan bahwa itu tidak sedang aktif ditangani oleh pengguna, yang, menurut Google, menggandakan pemakaian baterai perangkat. Hal ini juga memperkenalkan pilihan untuk mengatur ulang semua pengaturan jaringan, tersedia untuk pertama kalinya pada Android, yang membersihkan pengaturan terkait jaringan untuk Wi-Fi, Bluetooth, dan koneksi seluler.
6. Android 7.0 Nougat
Google akhirnya merilis sistem operasi Android Nougat 7.0. Untuk awalnya, beberapa model ponsel Google Nexus akan menerima update Over the Air (OTA) sistem operasi Android terbaru itu. Sebelum menerima nama Nougat, Google hanya memberi nama sandi N pada sistem operasinya itu.
Perusahaan teknologi raksasa asal Amerika Serikat ini kemudian membuka polling untuk mencari nama yang tepat. Dan setelah menyeleksi dari ratusan nama yang masuk, terpilihlah nama Nougat. Android Nougat memiliki fitur yang bisa membuat produktivitas penggunanya meningkat. Salah satunya adalah fitur multi-window yang memungkinkan pengguna untuk menjalankan aplikasi secara bersamaan dengan dua tampilan yang terbelah.
7. Oreo
Dengan preview yang dirilis pada 21 maret 2017, Android Oreo mengusung pembaruan yang tidak begitu banyak. Meski begitu Android Oreo juga mengalami berbagai peningkatan yang baik seperti Booting yang lebih cepat, cuplikan notifikasi instan pada aplikasi dan peningkatan multi- windows.
2.4 Platform Android
Platform adalah teknologi yang digunakan sebagai dasar atas mana aplikasi yang lainnya, proses atau teknologi yang dibangun. Pada komputer pribadi, platform adalah perangkat lunan dasar atau computer itu sendiri dan perangkat lunak atau sistem operasi yang mana perangkat lunak lainnya bisa berjalan.
Android diuji sebagai platform mobile pertama yang lengkap, terbuka, dan bebas. Para desainer dapat melakukan pendekatan yang komprehensif ketika mereka sedang mengembangkan platform android dalam membangun perangkat lunak dan memungkinkan untuk peluang pengembangan aplikasi. Platform android disediakan melalui lisensi open source. Pengembang dapat dengan bebas untuk mengembangkan aplikasi yang menggunakan linux kernel 2.6 ini.
Android adalah aplikasi yang bebas untuk dikembangkan. Tidak ada lisensi atau biaya royalty untuk dikembangkan pada platform android ini. Tidak ada biaya keanggotaan yang diperlukan. Tidak ada biaya pengujian, bahkan tidak ada kontrak yang diperlukan. Aplikasi untuk android dapat didistribusikan dan diperdagangkan dalam bentuk apapun.
Dalam hal ini, android dibangun atas dasar sistem operasi linux yang bersifat open source. Android memilih linux sebagai dasar pembuatannya dikarenakan linuk memilki probabilitas yang baik, sistem keamanan yang bagus serta fitur-fitur menarik.
Linux merupakan sisteem operasi dengan kemanan yang tinggi. Android mengandalkannya karena keamanan yang dimiliki linux tersebut. Seluruh aplikasi android berjalan sesuai dengan proses-proses linux. Linux hadir dengan banyak fitur yang bermanfaat. Android mengambil banyak manfaatnya, seperti dukungan manajemen memori, manajemen power, dan jaringan (Gargenta, 2011).
2.5 Java
Java menurut defenisi dari Sun adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat lunak pada computer standalone ataupun pada lingkungan jaringan. Java dikembangkan pada bulan Agustus 1991, dengan nama semula Oak. Pada Januari 1995, karena nama Oak dianggap kurang
komersial, maka diganti menjadi Java. Pada Desember 1998, Sun memperkenalkan nama “Java 2” (J2) sebagai generasi kedua dari Java Platform.
Konvensi nama baru ini diterapkan untuk semua edisi Java yaitu Standard Edition (J2SE), Enterprise Edition (J2EE), dan Micro Edition (J2ME). Ada tiga platform Java yang telah didefenisikan, yang masing-masing diarahkan untuk tujuan tertentu dan untuk lingkungan yang berbeda-beda, yaitu sebagai berikut :
1. Standart Edition (J2SE), merupakan inti dari Bahasa pemrograman java. J2SE di desain untuk jalan pada computer desktop dan computer workstation.
2. Enterprise Edition (J2EE). Dengan built-in mendukung untuk services. JSP dan XML, edisi ini ditunjukkan untuk aplikasi berbasis server.
3. Micro Edition (J2ME). Di desain untuk piranti dengan memori terbatas, layar display terbatas dan power pemrosesan yang juga terbatas.
Bahasa pemrograman Java mendukung multithreading, artinya program dapat dibuat untuk dijalanka oleh thread tertentu. Beberapa thread (baik yang menjalankan program java ataupun program lain) dapat dijalankan secara bersam- sama.
2.6 Android Studio
Android Studio adalah sebuah IDE untuk Android Development yang diperkenalkan google pada acara Google I/O 2013. Android Studio merupakan pengembangkan dari Eclipse IDE, dan dibuat berdasarkan IDE Java populer, yaitu IntelliJ IDEA. Android Studio merupakan IDE resmi untuk pengembangan aplikasi Android.
Sebagai pengembangan dari Eclipse, Android Studio mempunyai banyak fitur- fitur baru dibandingkan dengan Eclipse IDE. Berbeda dengan Eclipse yang menggunakan Ant, Android Studio menggunakan Gradle sebagai build environment. Fitur-fitur lainnya adalah sebagai berikut :
1. Menggunakan Gradle-based build system yang fleksibel.
2. Bisa membuild multiple APK.
3. Template support untuk Google Services dan berbagai macam tipe perangkat.
4. Layout editor yang lebih bagus.
5. Built-in support untuk Google Cloud Platform, sehingga mudah untuk intgrasi dengan Google Cloud Messaging dan App Engine.
6. Import library langsung dari Maven repository.
Ketika awal saya berkenalan dengan Android, saya menggunakan Eclipse sebagai IDE untuk membuat aplikasi Android. Jika dibandingkan dengan Android Studio memang dari sisi build lebih baik dibandingkan Eclipse, karena Android Studio menggunakan Gradle. Ditambah lagi berbeda dengan Eclipse, kita tidak perlu lagi dipusingkan dengan dependencies package pada Android Studio. Satu hal tambahan lagi yang membuat Android Studio unggul adalah dukungan layout xml editor secara visual yang jauh lebih baik daripada Eclipse. Walaupun begitu, Android Studio saat ini masih dalam tahap beta dan belum mempunyai dukungan untuk NDK/Native Development Kit.
2.7 Flowchart
Flowchart (diagram alir) adalah sebuah diagram yang merepresentasikan sebuah algoritma atau proses menggunakan beberapa bangun geometri untuk memperlihatkan langkah-langkah yang dilakukan oleh program dalam menyelesaiklan masalah (Opim Salim Sitompul, 2014). Berikut ini adalah simbol - simbol standar pada sebuah flowchart beserta fungsinya.
2.7.1 Simbol pada Flowchart
Simbol pada flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya.
Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung. Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu menggambarkan proses di dalam program. Simbol- simbol yang dipakai antara lain:
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
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, plotter dan sebagainya
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
2.8 DFD (Data Flow Diagram)
Data Flow Diagram (DFD) adalah suatu diagram yang menggunakan notasi- notasi untuk menggambarkan arus dari data sistem, yang penggunaannya sangat membantu untuk memahami sistem secara logika, tersruktur dan jelas. DFD merupakan alat bantu dalam menggambarkan atau menjelaskan sistem yang sedang berjalan logis untuk menggambarkan sistem sebagai suatu jaringan proses fungsional yang dihubungkan satu sama lain dengan alur data, baik secara manual maupun komputerisasi. Tujuan dari flow diagram yaitu memberikan indikasi mengenai bagaimana data ditransformasikan pada saat data bergerak melalui sistem dan menggambarkan fungsi-fungsi yang mentransformasikan aliran data.
Komponen – komponen data flow diagram yaitu : entitas luar, proses penyimpanan data, dan arus data.
Tabel 3.1 Simbol dan Fungsi Data Flow Diagram
No Simbol Fungsi
1 Entitiy Luar, Merupakan kesatuan luar di lingkungan luar sistem yang akan memberikan input atau menerima output dari sistem.
2 Proses, Kegiatan dari hasil suatu arus data yang masuk kedalam proses untuk menghasilkan arus data yang akan mengubah input menjadi output.
3 Aliran Data, Data mengalir melalui
sistem,dimulai dengan sebagian input dan diubah atau diproses menjadi input.
4 Penyimpanan Data, Data disimpan untuk
keperluan berikutnya.
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Pengertian Analisis Sistem
Menurut Jogiyanto (2005) Analisis sistem dapat didefinisikan sebagai penguraian dari suatu informasi yang utuh kedalam bagian-bagian komponen dengan maksud untuk mengidentifikasi dan mengevaluasi permasalah- permasalahan, kesempatan-kesempatan, hambatan-hambatan yang terjasi dan kebutuhan-kebutuhan yang diharapkan sehingga dapat diusukan perbaikan- perbaikannya.
3.1.1 Analisis Sistem Yang Berjalan
Sistem yang sedang berjalan pengguna harus membuka website untuk melakukan download musik dan untuk melakukan unduhan musik dilakukan secara manual. Download musik dilakukan secara satu persatu tentu hal ini sangat memakan waktu yang cukup lama dan hasil unduhan tersebut juga memiliki kapasitas yang cukup besar.
3.1.2 Analisis Sistem Yang Diusulkan
Aplikasi yang dirancang digunakan untuk melakukan download musik, share, dan search dengan kapasitas aplikasi yang ringan memudahkan masyarakat untuk melakukan unduhan musik secara cepat.
3.2 Perancangan Sistem
Perancangan sistem adalah merancang atau mendesain suatu sistem dengan baik, yang isinya yaitu tentang langkah-langkah operasi dalam pengolahan data dan prosedur untuk mendukung operasi sistem. Untuk memulai membangun
sebuah aplikasi, dalam hal ini penulis membuat sebuah aplikasi mobile android.
Terlebih dahulu penuis harus merancang alur proses berdasarkan kebutuhan pengguna yang akan menggunakan aplikasi ini.
3.2.1 Flowchart Aplikasi Downloader Musik
Flowchart Aplikasi downloader musik dirancang unutk memudahkan user dalam melakukan unduhan musik.
share
download
Copy clipboard
gmail
messenger
hangout
drive
Copy clipboard
Proses mengirim gmail
Proses megirim messenger
Proses mengirim
hangout
Proses mengirim drive
C
C
C
C
C
C C
Ya
Ya
Ya
Ya
Ya Tidak
Tidak
Tidak
Tidak
Tidak Tidak
Tidak
Ya
Proses
download Berhasil Simpan ke perangkat
C
C Ya
Tidak E
Gambar 3.2 Flowchart Aplikasi Downloader Musik
share
download
Copy clipboard
gmail
messenger
hangout
drive
Copy clipboard
Proses mengirim gmail
Proses megirim messenger
Proses mengirim
hangout
Proses mengirim drive
C
C
C
C
C
C C
Ya
Ya
Ya
Ya
Ya Tidak
Tidak
Tidak
Tidak
Tidak Tidak
Tidak
Ya
Proses
download Berhasil Simpan ke perangkat
C
C Ya
Tidak E
Gambar 3.3 Flowchart Lanjutan Aplikasi Downloader Musik
share
download
Copy clipboard
gmail
messenger
hangout
drive
Copy clipboard
Proses mengirim gmail
Proses megirim messenger
Proses mengirim
hangout
Proses mengirim drive
B
B
B
B
B
B B
Ya
Ya
Ya
Ya
Ya Tidak
Tidak
Tidak
Tidak
Tidak Tidak
Tidak
Ya
Proses
download Berhasil Simpan ke
perangkat
B
B Ya
Tidak F
Gambar 3.4 Flowchart Lanjutan Aplikasi Downloader Musik
3.4 Diagram Konteks
Diagram konteks adalah diagram yang mencakup masukan-masukan dasar, sistem umum dan keluaran, diagram ini merupkan tingkatan tertinggi dalam diagram aliran data dan hanya memuat satu proses, menunjukan sistem secara keseluruhan, diagram tersebut tidak memuat penyimpanan dan penggambaran aliran data yang sederhana, proses tersebut diberi nomor nol. Semua entitas
ekternal yang ditunjukan pada diagram konteks berikut aliran data-aliran data utama menuju dan dari sistem. Berikut gambar diagram konteks :
0. Sistem aplikasi downloader music
user
Menampilkan_menu Menampilkan_hasil_pencarian
Hasil download Hasil share
Memilih_menu Kata_kunci_pencarian
Download Share
Gambar 3.5. Diagram Konteks
3.5 Data Flow Diagram
Data Flow Diagram (DFD) adalah suatu diagram yang menggunakan notasi- notasi untuk menggambarkan arus dari data sistem, yang penggunaannya sangat membantu untuk memahami sistem secara logika, tersruktur dan jelas. DFD merupakan alat bantu dalam menggambarkan atau menjelaskan sistem yang sedang berjalan logis untuk menggambarkan sistem sebagai suatu jaringan proses fungsional yang dihubungkan satu sama lain dengan alur data, baik secara manual maupun komputerisasi. Tujuan dari flow diagram yaitu memberikan indikasi mengenai bagaimana data ditransformasikan pada saat data bergerak melalui sistem dan menggambarkan fungsi-fungsi yang mentransformasikan aliran data.
Komponen – komponen data flow diagram yaitu : entitas luar, proses penyimpanan data, dan arus data.
1.0 Pencarian Lagu
user Owplus
2.0 Download
Kata kunci pencarian Kata kunci pencarian
Hasil Pencarian Menampilkan Hasil Pencarian
Download
Proses mengambil lagu
Hasil download Menampilkan hasil
download
Gambar 3.6. Data Flow Diagram (DFD)
3.6 Perancangan Antar Muka (user interface)
Antarmuka (User Interface) merupakan mekanisme komunikasi antara pengguna (user) dengan sistem. Antarmuka (User Interface) dapat menerima informasi dari pengguna (user) dan memberikan informasi kepada pengguna (user) untuk membantu mengarahkan alur penelusuran masalah sampai ditentukan suatu solusi. Berikut adalah rancangan antarmuka pada aplikasi pembuatan musik downloader :
Gambar 3.5 Rancangan Aplikasi Splash Screen
Gambar 3.6 Rancangan Menu Utama Aplikasi Downloader Musik
Gambar 3.7 List Lagu Top Trending
Gambar 3.8 List Lagu New Single
Gambar 3.8 List Lagu Internasonal Hits
BAB IV
IMPLEMENTASI SISTEM
4.1 Pengertian Implementasi Sistem
Setelah dianalisis dan dirancang secara rinci dan teknologi telah diseleksi serta dipilih. Tiba saatnya, aplikasi untuk diimplementasikan. Implementasi sistem adalah langkah-langkah atau prosedur yang dilakukan dalam menyelesaikan desain aplikasi yang telah disetujui, untuk menguji, meng-install, dan memulai sistem baru atau aplikasi yang diperbaiki untuk menggantikan aplikasi yang lama, sedangkan tahap implementasi sistem merupakan tahap meletakan aplikasi agar siap dioperasikan.
Tahap impelementasi sistem terdiri dari langkah-langkah sebagai berikut, yaitu menerapkan rencana implementasi, melakukan kegiatan impelementasi, dan tindak lanjut implementasi. Implementasi Pembuatan Aplikasi Musik Downloader Menggunakan Android Studio ini dilakukan menggunakan bahasa pemograman Java, dan XML. Aplikasi Java, dan XML dijalankan pada Operating System Windows 10. Pada sistem ini pengakasesan sistem dibedakan menjadi dua bagian, yaitu bagian user, dalam bagian ini adalah user dapat menggunakan aplikasi secara penuh baik untuk melakukan download, share, dan search musik.
4.1.2 Implementasi Tampilan Antarmuka Pengguna
Implementasi dari aplikasi musik downloader terdiri dari beberapa form yang mempunyai kegunaan masing-masing.
a. Splashscreen
Splashscreen merupakan tampilan awal dari aplikasi musik downloader.
Berikut tampilan splashscreen :
Gambar 4.1 Tampilan Awal Aplikasi Musik Downloader
b. Menu Utama Aplikasi Musik Downloader
Pada Menu Utama terdapat 4 menu pilihan yang dapat dipilih oleh user yaitu menu Trending Top, New Single, International Hits, dan Indonesia Hits.
Gambar 4.2 Tampilan Awal Aplikasi Musik Downloader
c. Menu Top Trending
Pada Menu ini user dapat melakukan unduhan (download) dan share musik yang lagi trending.
Gambar 4.3 Tampilan Menu Top Trending
d. Menu Downloader Top Trending
Pada Menu ini user dapat melakukan unduhan (download) dan share musik yang lagi trending.
Gambar 4.4 Tampilan Download Menu Top Trending
e. Menu Download Succes
Musik yang telah berhasil didownload akan masuk ke perangkar handphone.
Gambar 4.5 Tampilan Download Menu Top Trending
f. Menu New Single
Pada Menu ini user dapat melakukan unduhan (download) untuk lagu-lagu terbaru.
Gambar 4.6 Tampilan Download Menu New Single
g. Menu Download
Jika seorang user ingin melakukan unduhan pada aplikasi. Maka user dapat menekan tombol download
Gambar 4.7 Tampilan Tombol Download
h. Menu Internasional Hits
Pada Menu ini user dapat melakukan unduhan (download) dan share musik untuk jenis lagu Internasional.
Gambar 4.8 Tampilan Menu International Hits
i. Menu Indonesia Hits
Pada Menu ini user dapat melakukan unduhan (download) dan share musik untuk jenis lagu Indonesia.
Gambar 4.8 Tampilan Menu Indonesia Hits
j. Menu Search
Pada Menu ini user dapat melakukan pencarian lagu. Yang berguna untuk memudahkan user mencari lagu yang diinginkan.
Gambar 4.9 Tampilan Menu pencarian lagu
k. Lanjutan Menu Search
Pada menu search user dapat melakukan pencarian lagu Internasional maupun lagu Indonesia.
Gambar 4.10 Tampilan Menu pencarian lagu lanjutan
l. Tampilan Jenis Lagu
Jika user melakukan pencarian lagu berdasarkan penyanyi, akan muncul beberapa jenis lagu yang dapat dipilih oleh user.
Gambar 4.11 Tampilan pencarian berdasarkan penyanyi
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
1. Pembuatan aplikasi musik downloader ini memudahkan user untuk melakukan unduhan, sharing, dan pencarian lagu.
2. Pada aplikasi musik downloader terdiri dari 4 jenis lagu, yaitu Trending Top, New Single, Internasional Hits, dan Indonesia Hits.
3. User dapat melakukan pencarian lagu berdasarkan judul lagu atau berdasarkan penyanyi.
4. Untuk menjalankan aplikasi dibutuhkan koneksi ke internet
5.2 Saran
1. Diharapkan pengembangan aplikasi selanjutnya dapat menambahkan fitur-fitur lagu lebih lengkap.
2. Senantiasa menjaga dan memperbaharui aplikasi agar user tidak merasa bosan untuk melakukan downloader musik.
3. Kiranya aplikasi ini dapat digunakan secara optimal agar hasil yang diharapkan dapat terwujud.
DAFTAR PUSTAKA
Anisyah, 2000. Analisa dan Desain Sistem Informasi. Yogyakarta: Penerbit Andi.
Jogiyanto, H.M., 2005. Analisa dan Desain Sistem Informasi : Pendekatan Terstruktur Teori dan Praktik Aplikasi Bisnis, Yogyakarta : Andi.
Rizky Dhanta, 2009. Pengantar Ilmu Komputer, Surabaya:Indah.
Safaat, Naruddin. 2011. Android Pemrograman Aplikasi Mobile Smartphone dan Tablet PC Berbasis Android. Bandung:Informatika.
Septiadi, Nugraha, 2016. Perancangan Aplikasi Pemutar Musik Beserta Penampil Lirik Musik Berbasis Android, Semarang : Universitas Stikubank.
http://www.academia.edu, 2012, Pengertian dan Simbol Flowchart.
LAMPIRAN
IndexAdapter.java
package com.desi.mymusic;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.DownloadManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.bumptech.glide.Glide;
import org.json.JSONException;
import org.json.JSONObject;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class IndexAdapter extends
RecyclerView.Adapter<IndexAdapter.MyViewHolder> {
List<IndexList> indexLists;
Context context;
public IndexAdapter(List<IndexList> indexLists, Context context) {
this.indexLists = indexLists;
this.context = context;
}
@NonNull @Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view =
LayoutInflater.from(context).inflate(R.layout.list_data, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
IndexList indexList = indexLists.get(position);
final String titleSong, singerSong;
if(indexList.getSinger().trim().length() > 30){
singerSong = indexList.getSinger().substring(0, 26)+"..";
}else{
singerSong = indexList.getSinger();
}
if(indexList.getTitle().trim().length() > 30){
titleSong = indexList.getTitle().substring(0, 26)+"..";
}else{
titleSong = indexList.getTitle();
}
holder.detailSong.setText(titleSong+"\n"+singerSong);
final String songCode = indexList.getSongId();
holder.download.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
LayoutInflater layoutInflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@SuppressLint("InflateParams") View
dialogView = layoutInflater.inflate(R.layout.popup_download, null);
builder.setView(dialogView);
final AlertDialog dialog = builder.create();
dialog.setView(dialogView, 0, 0, 0, 0);
final ImageView imgSong = dialogView.findViewById(R.id.imgSong);
final ProgressBar loading = dialogView.findViewById(R.id.loading);
final Button btnDownload = dialogView.findViewById(R.id.btnDownload);
final TextView titleSong = dialogView.findViewById(R.id.titleSong);
final TextView singerSong = dialogView.findViewById(R.id.singerSong);
btnDownload.setVisibility(View.GONE);
imgSong.setVisibility(View.GONE);
StringRequest stringRequest = new StringRequest(Request.Method.POST,
"https://www.owplus.com/api/music/desi/get_song_info.php", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.setVisibility(View.GONE);
if(response.equalsIgnoreCase("") ||
response.trim().length() == 0){
Toast.makeText(context, "Cek koneksi internet anda!", Toast.LENGTH_SHORT).show();
}else{
try {
btnDownload.setVisibility(View.VISIBLE);
imgSong.setVisibility(View.VISIBLE);
JSONObject object = new JSONObject(response);
String imageSong = object.getString("imageSong");
final String urlDownload =
object.getString("m4aURL");
String singer = object.getString("singer");
String title = object.getString("song");
Glide.with(context).load(imageSong).into(imgSong);
titleSong.setText(title);
singerSong.setText(singer);
btnDownload.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View view) {
DownloadManager downloadManager = (DownloadManager)
context.getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse(urlDownload);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setNotificationVisibility(DownloadManager.Request.VI SIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir("/Download", uri.getLastPathSegment());
if (downloadManager
!= null) {
Long reference = downloadManager.enqueue(request);
} } });
} catch (JSONException e) { e.printStackTrace();
} } }
}, new Response.ErrorListener() { @Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(context, "Cek koneksi internet anda!", Toast.LENGTH_SHORT).show();
} }){
@Override
protected Map<String, String>
getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("id", songCode);
return params;
} };
RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(stringRequest);
dialog.show();
} });
final String urlDownloadCopy =
"https://www.owplus.com/api/music/desi/share.php?c="+songCod e;
holder.share.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { Intent intent = new
Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
String shareBody = "Download "+ titleSong +"
by "+ singerSong +"\nKlik link ini untuk download\n\n"+urlDownloadCopy;
intent.putExtra(Intent.EXTRA_SUBJECT, "Share Song");
intent.putExtra(Intent.EXTRA_TEXT, shareBody);
view.getContext().startActivity(Intent.createChooser(intent,
"Share Via"));
} });
}
@Override
public int getItemCount() { return indexLists.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView detailSong;
ImageView share, download;
public MyViewHolder(View itemView) { super(itemView);
detailSong =
itemView.findViewById(R.id.songText);
share = itemView.findViewById(R.id.share);
download = itemView.findViewById(R.id.download);
} }
}
IndexLast.Java
package com.desi.mymusic;
public class IndexList {
String singer, songId, title;
public IndexList(String singer, String songId, String title) {
this.singer = singer;
this.songId = songId;
this.title = title;
}
public String getSinger() { return singer;
}
public void setSinger(String singer) { this.singer = singer;
}
public String getSongId() { return songId;
}
public void setSongId(String songId) {
this.songId = songId;
}
public String getTitle() { return title;
}
public void setTitle(String title) { this.title = title;
} }
MainActivity.java
package com.desi.mymusic;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
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.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.RetryPolicy;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
ProgressBar loading;
RecyclerView recyclerView;
Button reload;
ImageView imgSearch;
List<IndexList> indexLists = new ArrayList<>();
IndexAdapter indexAdapter;
LinearLayoutManager mLayoutManager;
String type;
TextView titleHeader;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
type = getIntent().getStringExtra("type");
loading = findViewById(R.id.loading);
recyclerView = findViewById(R.id.recyclerView);
reload = findViewById(R.id.reload);
imgSearch = findViewById(R.id.imgSearch);
titleHeader = findViewById(R.id.titleHeader);
imgSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { startActivity(new
Intent(getApplicationContext(), Search.class));
} });
mLayoutManager = new
LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
if(ActivityCompat.checkSelfPermission(getApplicationContext(
), Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 123);
}
if(type.equalsIgnoreCase("one")){
generateSongOne();
titleHeader.setText("Top Trending");
reload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { generateSongOne();
} });
}else if(type.equalsIgnoreCase("two")){
generateSongTwo();
titleHeader.setText("New Single");
reload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { generateSongTwo();
} });
}else if(type.equalsIgnoreCase("three")){
generateSongThree();
titleHeader.setText("Indonesian Hits");
reload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { generateSongThree();
} });
}else if(type.equalsIgnoreCase("four")){
generateSongFour();
titleHeader.setText("International Hits");
reload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { generateSongFour();
} });
}