BAB 2 TINJAUAN PUSTAKA
3.2 Perancangan
3.2.1 Flowchart Aplikasi Downloader Musik
Flowchart Aplikasi downloader musik dirancang unutk memudahkan user dalam melakukan unduhan musik.
Gambar 3.2 Flowchart Aplikasi Downloader Musik
share
Gambar 3.3 Flowchart Lanjutan Aplikasi Downloader Musik
share
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
List<IndexList> indexLists;
Context context;
public IndexAdapter(List<IndexList> indexLists, Context context) {
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view =
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
IndexList indexList = indexLists.get(position);
final String titleSong, singerSong;
holder.download.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new
object.getString("m4aURL");
protected Map<String, String>
holder.share.setOnClickListener(new View.OnClickListener() {
by "+ singerSong +"\nKlik link ini untuk download\n\n"+urlDownloadCopy;
@Override
public int getItemCount() { return indexLists.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
public IndexList(String singer, String songId, String title) {
public void setSinger(String singer) { this.singer = singer;
}
public String getSongId() { return songId;
}
public void setSongId(String songId) {
this.songId = songId;
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() {
recyclerView.setLayoutManager(mLayoutManager);
generateSongOne();
}else if(type.equalsIgnoreCase("two")){
generateSongTwo();
}else if(type.equalsIgnoreCase("three")){
generateSongThree();
}else if(type.equalsIgnoreCase("four")){
generateSongFour();
}
private void generateSongOne(){
loading.setVisibility(View.VISIBLE);
reload.setVisibility(View.GONE);
recyclerView.setVisibility(View.GONE);
StringRequest stringRequest = new
"Silahkan periksa jaringan internet anda!", Toast.LENGTH_SHORT).show();
indexLists.add(indexList);
RetryPolicy mRetryPolicy = new DefaultRetryPolicy(0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
stringRequest.setRetryPolicy(mRetryPolicy);
}
private void generateSongTwo(){
loading.setVisibility(View.VISIBLE);
reload.setVisibility(View.GONE);
recyclerView.setVisibility(View.GONE);
StringRequest stringRequest = new
"Silahkan periksa jaringan internet anda!", Toast.LENGTH_SHORT).show();
RecyclerView.LayoutManager
RetryPolicy mRetryPolicy = new DefaultRetryPolicy(0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
stringRequest.setRetryPolicy(mRetryPolicy);
}
private void generateSongThree(){
loading.setVisibility(View.VISIBLE);
reload.setVisibility(View.GONE);
recyclerView.setVisibility(View.GONE);
StringRequest stringRequest = new
StringRequest(Request.Method.POST,
"Silahkan periksa jaringan internet anda!", Toast.LENGTH_SHORT).show();
recyclerView.setItemAnimator(new
RetryPolicy mRetryPolicy = new DefaultRetryPolicy(0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
stringRequest.setRetryPolicy(mRetryPolicy);
}
private void generateSongFour(){
loading.setVisibility(View.VISIBLE);
reload.setVisibility(View.GONE);
recyclerView.setVisibility(View.GONE);
StringRequest stringRequest = new
if(response.equalsIgnoreCase("") ||
"Silahkan periksa jaringan internet anda!", Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
RetryPolicy mRetryPolicy = new DefaultRetryPolicy(0, DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
stringRequest.setRetryPolicy(mRetryPolicy);
}
@Override
public void onRequestPermissionsResult(int requestCode,
@NonNull String[] permissions, @NonNull int[] grantResults) {
123);
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
classpath 'com.android.tools.build:gradle:3.1.2' delete rootProject.buildDir }
public class Search extends Activity {
EditText searchInput;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
searchInput = findViewById(R.id.inputSearch);
searchInput.requestFocus();
searchInput.setOnKeyListener(new View.OnKeyListener() {
import android.widget.ImageView;
public class SearchResult extends Activity { TextView valueSearch;
ImageView imgSearch;
RecyclerView recyclerView;
ProgressBar loading;
Button btnReload;
String searchValue;
List<IndexList> indexLists = new ArrayList<>();
IndexAdapter indexAdapter;
LinearLayoutManager mLayoutManager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_result);
searchValue = getIntent().getStringExtra("value");
valueSearch = findViewById(R.id.valueSearch);
imgSearch = findViewById(R.id.imgSearch);
loading = findViewById(R.id.loading);
recyclerView = findViewById(R.id.recyclerView);
btnReload = findViewById(R.id.reload);
if(searchValue.toUpperCase().length() > 20){
valueSearch.setText(searchValue.toUpperCase().substring(0, 20)+"..");
}else{
valueSearch.setText(searchValue);
}
mLayoutManager = new
LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
btnReload.setOnClickListener(new View.OnClickListener() {
imgSearch.setOnClickListener(new View.OnClickListener() {
private void searchSong(final String query){
recyclerView.setVisibility(View.GONE);
loading.setVisibility(View.VISIBLE);
btnReload.setVisibility(View.GONE);
StringRequest stringRequest = new
"Silahkan cek koneksi internet anda!", Toast.LENGTH_SHORT).show();
}else{
public void onErrorResponse(VolleyError error) {
public class SplashScreen extends Activity { @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
// This method will be executed once the
package="com.desi.mymusic">
<uses-permission
android:icon="@drawable/headphones"
android:label="@string/app_name"
android:roundIcon="@drawable/headphones"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".SplashScreen"
android:theme="@style/AppTheme.NoTitle">
<activity android:name=".MainActivity"
android:launchMode="singleTask"/>
<activity android:name=".Search"
android:launchMode="singleTask"
android:windowSoftInputMode="stateVisible"/>
<activity android:name=".SearchResult"
android:launchMode="singleTask"/>
<activity android:name=".Menu"
android:launchMode="singleTask"/>
</application>
</manifest>