• Tidak ada hasil yang ditemukan

PEMBUATAN APLIKASI MUSIK DOWNLOADER MENGGUNAKAN ANDROID STUDIO LAPORAN TUGAS AKHIR DESI WIDYA WULANDARI

N/A
N/A
Protected

Academic year: 2022

Membagikan "PEMBUATAN APLIKASI MUSIK DOWNLOADER MENGGUNAKAN ANDROID STUDIO LAPORAN TUGAS AKHIR DESI WIDYA WULANDARI"

Copied!
75
0
0

Teks penuh

(1)

LAPORAN TUGAS AKHIR

DESI WIDYA WULANDARI 152406040

PROGRAM STUDI D3 TEKNIK INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2018

(2)

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

(3)

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

(4)
(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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 :

(15)

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.

(16)

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.

(17)

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.

(18)

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

(19)

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

(20)

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.

(21)

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.

(22)

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

(23)

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.

(24)

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

(25)

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.

(26)

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:

(27)

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

(28)

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

(29)

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.

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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.

(35)

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)

(36)

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

(37)

Gambar 3.6 Rancangan Menu Utama Aplikasi Downloader Musik

Gambar 3.7 List Lagu Top Trending

(38)

Gambar 3.8 List Lagu New Single

Gambar 3.8 List Lagu Internasonal Hits

(39)

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 :

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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

(46)

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.

(47)

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.

(48)

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> {

(49)

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) {

(50)

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 =

(51)

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

(52)

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"));

} });

}

(53)

@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) {

(54)

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 {

(55)

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")){

(56)

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();

} });

}

Referensi

Dokumen terkait

meneliti prevalensi obesitas, hubungan jenis kelamin dan status ekonomi dengan obesitas pada anak di SMP Mardi Yuana Serang karena belum pernah ada penelitian tentang obesitas

Pada suatu struktur yang terbuat dari konstruksi baja baja, baut merupakan suatu elemen yang paling vital untuk diperhitungkan, hal ini dikarenakan baut merupakan alat sambung

Memberikan informasi yang bermanfaat mengenai adanya pengaruh decision making style konsumen online terhadap comparison shopping proneness dan kegunaan comparison

Utusan keluarga pengantin pria datang kerumah orang tua calon pengantin wanita untuk berunding mencari kesepakatan bersama mengenai hal yang berhubungan denagn besarnya

Penelitian ini akan mengembangkan sensor kecepatan yang dipasang pada kapal untuk mengestimasi kecepatan dan posisi kapal menggunakan filter Kalman.. Pemakaian

Isi pokok mata kuliah ini meliputi: (1) konsep teori, pendekatan, metode, dan teknik pembelajaran bahasa, (2) metode-metode pengajaran bahasa, (3) prinsip-prinsip

Upaya pemberdayaan zakat produktif melalui Program OKU Taqwa oleh BAZNAS OKU Timur melalui zakat, dengan memberikan zakat dengan melalui penyediaan alat-alat

Syafrial (2009) menguraikan bahwa penetapan tujuan spesifik akan lebih produktif dari pada tidak menetapkan tujuan spesifik. Produktivitas tersebut akan mampu memberikan pengaruh