BAB III PEMBAHASAN - repository.bsi.ac.id · berkompetensi di bidangnya dan memiliki sertifikasi...

28
21 BAB III PEMBAHASAN 3.1. Tinjauan Kasus Salah satu rukun iman dalam agama Islam adalah iman kepada Kitab Suci. Kitab suci yang diturunkan kepada Nabi Muhammad adalah Alquran. Agama Islam juga mengajarkan bahwa membaca Alquran merupakan satu bentuk ibadah, dalam salat juga umat Islam membaca bacaan yang diambil dari Alquran, maka dari itu kemampuan membaca Alquran menjadi kewajiban bagi setiap umat Islam. Dengan adanya teknologi yang berkembang saat ini, pembelajaran Alquran sudah semakin berkembang dan mencakup lebih banyak kalangan dibandingkan dengan zaman dulu. Adanya program aplikasi belajar membaca Alquran ini bisa menjadi salah satu pilihan pembelajaran bagi pemula yang ingin mempelajari Alquran akan tetapi terhalang waktu untuk berguru secara rutin dengan seorang guru. Aplikasi ini juga dilengkapi suara untuk memudahkan pengguna untuk mengenal dan mendalami bacaan Alquran. 3.2. Spesifikasi Rancangan Program 3.2.1 Analisa Kebutuhan Sistem Media pembelajaran berbasis Android merupakan media penunjang yang bertujuan memudahkan pengguna untuk belajar. Berikut spesifikasi kebutuhan sistem dari Aplikasi Pembelajaran Membaca Alquran Menggunakan Metode Mafaza :

Transcript of BAB III PEMBAHASAN - repository.bsi.ac.id · berkompetensi di bidangnya dan memiliki sertifikasi...

  • 21

    BAB III

    PEMBAHASAN

    3.1. Tinjauan Kasus

    Salah satu rukun iman dalam agama Islam adalah iman kepada Kitab Suci. Kitab

    suci yang diturunkan kepada Nabi Muhammad adalah Alquran. Agama Islam juga

    mengajarkan bahwa membaca Alquran merupakan satu bentuk ibadah, dalam salat

    juga umat Islam membaca bacaan yang diambil dari Alquran, maka dari itu

    kemampuan membaca Alquran menjadi kewajiban bagi setiap umat Islam.

    Dengan adanya teknologi yang berkembang saat ini, pembelajaran Alquran sudah

    semakin berkembang dan mencakup lebih banyak kalangan dibandingkan dengan

    zaman dulu. Adanya program aplikasi belajar membaca Alquran ini bisa menjadi salah

    satu pilihan pembelajaran bagi pemula yang ingin mempelajari Alquran akan tetapi

    terhalang waktu untuk berguru secara rutin dengan seorang guru. Aplikasi ini juga

    dilengkapi suara untuk memudahkan pengguna untuk mengenal dan mendalami

    bacaan Alquran.

    3.2. Spesifikasi Rancangan Program

    3.2.1 Analisa Kebutuhan Sistem

    Media pembelajaran berbasis Android merupakan media penunjang yang

    bertujuan memudahkan pengguna untuk belajar. Berikut spesifikasi kebutuhan sistem

    dari Aplikasi Pembelajaran Membaca Alquran Menggunakan Metode Mafaza :

  • 22

    1. Pada aplikasi ini terdapat 3 jenis menu yaitu menu awal, menu pilihan,

    dan menu materi.

    2. Pada menu pilihan, terdapat 26 materi yang bisa dipilih pengguna untuk

    dipelajari.

    3. Pada menu materi, terdapat tiga bagian yaitu materi pelajaran yang akan

    mengeluarkan suara ketika ditekan, latihan bacaan dan pemutar suara

    untuk mencontohkan bacaan yang ada di latihan.

    4. Untuk menjamin kualitas aplikasi, pengisi suara diambil dari orang yang

    berkompetensi di bidangnya dan memiliki sertifikasi tahsin dari lembaga

    yang kredibel. Pada aplikasi ini, suara diambil dari suara penulis sendiri

    yang mana penulis sudah memiliki sertifikasi tahsin dari “Lembaga

    Tahfidz dan Tilawah (LTTQ) Institut PTIQ Jakarta”

    3.2.2 Desain Sistem

    1. Desain tampilan awal

  • 23

    Gambar III.1 & III.2, Tampilan awal program & Tampilan Credit

    Halaman ini merupakan halaman awal yang akan dilihat pengguna ketika mulai

    membuka aplikasi. Di sini terdapat dua tombol yaitu tombol play untuk berpindah ke

    menu materi dan tombol credit untuk melihat credit aplikasi.

    2. Desain Tampilan menu

    Gambar III.3 & III.4, Tampilan Menu & Petunjuk Pembelajaran.

    Halaman ini muncul ketika kita menekan tombol play pada halaman awal. Pada

    halaman ini pengguna bisa memilih materi yang ingin dipelajari dan memunculkan

    petunjuk pembelajaran dengan menekan tombol pada sudut kanan atas.

  • 24

    3. Tampilan Materi

    Gambar III.5 & III.6, Tampilan Materi & Petunjuk Makhraj.

    Halaman ini muncul sesuai dengan tombol materi yang ditekan pada halaman

    menu. Pada halaman ini terdapat tombol materi yang bisa mengeluarkan suara, latihan

    materi yang bisa di scroll ke atas dan ke bawah, tombol di bawah berfungsi untuk

    mengeluarkan suara dari contoh latihan materi yang ada, tombol di pojok kanan atas

    berfungsi untuk menampilkan petunjuk makhraj sesuai dengan materi yang dipilih.

    3.2.3. Spesifikasi Bentuk Masukan

    Spesifikasi Bentuk Masukan adalah dokumen yang digunakan pengguna untuk

    memberikan suatu proses untuk ditanggapi oleh aplikasi. Adapun Spesifikasi Bentuk

    Masukan dari aplikasi ini adalah sebagai berikut:

  • 25

    1. Nama Masukan : Button Menu

    Nama Dokumen : activity_main.xml

    Fungsi : Memindahkan pengguna dari tampilan awal ke

    tampilan menu

    Sumber : Admin

    Tujuan : User

    Media : Aplikasi

    Jumlah : 1 Button

    Frekuensi : Setiap Button di klik

    Bentuk : Lihat Lampiran A.1

    2. Nama Masukan : Button Credit

    Nama Dokumen : activity_main.xml

    Fungsi : Menampilkan credit aplikasi

    Sumber : Admin

    Tujuan : User

    Media : Aplikasi

    Jumlah : 1 Button

    Frekuensi : Setiap Button di klik

    Bentuk : Lihat Lampiran A.1

    3. Nama Masukan : Button Materi

    Nama Dokumen : activity_menu.xml

    Fungsi : Memindahkan pengguna dari menu kepada

    pelajaran yang dipilih

    Sumber : Admin

  • 26

    Tujuan : User

    Media : Aplikasi

    Jumlah : 26 Button

    Frekuensi : Setiap Button di klik

    Bentuk : Lihat Lampiran A.2

    4. Nama Masukan : Button Petunjuk

    Nama Dokumen : activity_menu.xml

    Fungsi : Menampilkan petunjuk pembelajaran

    Sumber : Admin

    Tujuan : User

    Media : Aplikasi

    Jumlah : 1 Button

    Frekuensi : Setiap Button di klik

    Bentuk : Lihat Lampiran A.2

    5. Nama Masukan : Button Makhraj

    Nama Dokumen : activity_materi1_a.xml - activity_materi18_a.xml

    Fungsi : Menampilkan petunjuk posisi bacaan pada

    mulut

    Sumber : Admin

    Tujuan : User

    Media : Aplikasi

    Jumlah : 1 Button

    Frekuensi : Setiap Button di klik

    Bentuk : Lihat Lampiran A.3

  • 27

    6. Nama Masukan : Button Pelajaran

    Nama Dokumen : activity_materi1_a.xml - activity_materi26_a.xml

    Fungsi : Memberikan keluaran berupa suara untuk materi

    pelajaran yang dipilih.

    Sumber : Admin

    Tujuan : User

    Media : Aplikasi

    Jumlah : 1 Button

    Frekuensi : Setiap Button di klik

    Bentuk : Lihat Lampiran A.3

    7. Nama Masukan : Button Home

    Nama Dokumen : activity_materi1_a.xml - activity_materi26_a.xml

    Fungsi : Mengembalikan tampilan dari pembelajaran ke

    menu

    Sumber : Admin

    Tujuan : User

    Media : Aplikasi

    Jumlah : 1 Button

    Frekuensi : Setiap Button di klik

    Bentuk : Lihat Lampiran A.3

    8. Nama Masukan : Button Play

    Nama Dokumen : activity_materi1_a.xml - activity_materi26_a.xml

    Fungsi : Memberikan keluaran berupa contoh bacaan

    pada latihan

  • 28

    3.2.4. Spesifikasi Bentuk Keluaran

    Data keluaran merupakan dokumen yang dihasilkan dari masukan yang diterima

    oleh aplikasi. Adapun bentuk spesifikasi bentuk keluaran pada aplikasi ini adalah

    sebagai berikut:

    Sumber : Admin

    Tujuan : User

    Media : Aplikasi

    Jumlah : 1 Button

    Frekuensi : Setiap Button di klik

    Bentuk : Lihat Lampiran A.3

    9. Nama Masukan : Button Pause

    Nama Dokumen : activity_materi1_a.xml - activity_materi26_a.xml

    Fungsi : Menghentikan bacaan yang sedang diputar

    Sumber : Admin

    Tujuan : User

    Media : Aplikasi

    Jumlah : 1 Button – 5 Button

    Frekuensi : Setiap Button di klik

    Bentuk : Lihat Lampiran A.3

    1. Tampilan Awal

    Nama Dokumen : activity_main.xml

    Fungsi : Sebagai penanda aplikasi telah berjalan.

    Sumber : Admin

  • 29

    Tujuan : User

    Media : xml layout

    Frekuensi : Setiap membuka aplikasi

    Bentuk : Lihat Lampiran A.1

    2. Tampilan Credit

    Nama Dokumen : credit.xml

    Fungsi : Untuk memperlihatkan credit aplikasi.

    Sumber : Admin

    Tujuan : User

    Media : xml layout

    Frekuensi : Setiap menekan Button credit

    Bentuk : Lihat Lampiran A.1

    3. Tampilan Menu

    Nama Dokumen : activity_menu.xml

    Fungsi : Sebagai tampilan untuk memperlihatkan pilihan

    materi pembelajaran

    Sumber : Admin

    Tujuan : User

    Media : xml layout

    Frekuensi : Setiap menekan Button Menu pada tampilan

    awal atau ketika menekan Button home pada

    tampilan materi

    Bentuk : Lihat Lampiran A.2

    4. Tampilan Petunjuk

  • 30

    Nama Dokumen : petunjuk.xml

    Fungsi : Untuk memperlihatkan petunjuk pembelajaran

    Sumber : Admin

    Tujuan : User

    Media : xml layout

    Frekuensi : Setiap menekan Button info

    Bentuk : Lihat Lampiran A.2

    5. Tampilan Materi

    Nama Dokumen : activity_materi1_a.xml - activity_materi26_a.xml

    Fungsi : Sebagai tampilan untuk memperlihatkan materi

    pembelajaran beserta latihan

    Sumber : Admin

    Tujuan : User

    Media : xml layout

    Frekuensi : Setiap menekan Button Materi

    Bentuk : Lihat Lampiran A.3

    6. Tampilan Makhraj

    Nama Dokumen : makhraj1.xml - makhraj18.xml

    Fungsi : Untuk memperlihatkan petunjuk pembelajaran

    Sumber : Admin

    Tujuan : User

    Media : xml layout

    Frekuensi : Setiap menekan Button makhraj.

    Bentuk : Lihat Lampiran A.3

  • 31

    3.2.5. Spesifikasi file

    7. Pelajaran

    Nama Dokumen : activity_materi1_a.xml - activity_materi26_a.xml

    Fungsi : Sebagai ilustrasi untuk materi pelajaran

    Sumber : Admin

    Tujuan : User

    Media : Media Player

    Frekuensi : Setiap menekan Button Pelajaran

    Bentuk : Suara

    8. Mainkan latihan

    Nama Dokumen : activity_materi1_a.xml - activity_materi26_a.xml

    Fungsi : Sebagai ilustrasi untuk materi pelajaran

    Sumber : Admin

    Tujuan : User

    Media : Media Player

    Frekuensi : Setiap menekan Button Play

    Bentuk : Suara

    9. Hentikan latihan

    Nama Dokumen : activity_materi1_a.xml - activity_materi26_a.xml

    Fungsi : Sebagai ilustrasi untuk materi pelajaran

    Sumber : Admin

    Tujuan : User

    Media : Media Player

    Frekuensi : Setiap menekan Button Pause

  • 32

    Pada aplikasi ini terdapat beberapa berkas. Penjelasan rinci mengenai berkas-

    berkas tersebut adalah sebagai berikut:

    1. Spesifikasi berkas ‘Tampilan Awal’

    Nama Berkas : activity_main.xml

    Fungsi : Sebagai penanda aplikasi telah berjalan.

    Software : Android Studio

    No. Nama Tipe

    1 mainLayout ConstraintLayout

    2 creditButton imageView

    3 menuButton imageButton

    4 klik MediaPlayer

    Tabel III.1, Spesifikasi berkas ‘Tampilan Awal’

    2. Spesifikasi berkas ‘credit’

    Nama Berkas : credit.xml

    Fungsi : Untuk menampilkan credit aplikasi.

    Software : Android Studio

    No. Nama Tipe

    1 txtclose textView

    2 ubsiLogo imageView

    3 txtCredit textView

    4 klik MediaPlayer

    Tabel III.2, Spesifikasi berkas ‘credit’

    3. Spesifikasi berkas ‘Menu’

  • 33

    Nama Berkas : activity_menu.xml

    Fungsi : Untuk menampilkan pilihan materi yang bisa dipelajari

    pengguna.

    Software : Android Studio

    No. Nama Tipe

    1. ConstraintLayout ConstraintLayout

    2. LinearLayout LinearLayout (vertical)

    3. RelativeLayout RelativeLayout

    4. TextView textView

    5. ScrollView scrollView

    6. GridLayout gridLayout

    7. materi1 – materi26 imageView

    8. klik MediaPlayer

    Tabel III.3, Spesifikasi berkas ‘Menu’

    4. Spesifikasi berkas ‘Petunjuk’

    Nama Berkas : petunjuk.xml

    Fungsi : Untuk menampilkan petunjuk pembelajaran.

    Software : Android Studio

    No. Nama Tipe

    1 txtclose textView

    2 txtJudul textView

    3 txtPetunjuk textView

    4 klik MediaPlayer

  • 34

    Tabel III.4, Spesifikasi berkas ‘Petunjuk’

    5. Spesifikasi berkas ‘Materi 1-18, Materi 22, & Materi 23’

    Nama Berkas : activity_materi1_a.xml – activity_materi18_a.xml,

    activity_materi22_a.xml & activity_materi23_a.xml

    Fungsi : Untuk menampilkan tampilan pembelajaran

    Software : Android Studio

    No. Nama Tipe

    1. ConstraintLayout ConstraintLayout

    2. LinearLayout LinearLayout (vertical)

    3. RelativeLayout RelativeLayout

    4. textView TextView

    5. scrollView ScrollView

    6. scrollLayout LinearLayout(vertical)

    7. gridLayout GridLayout

    8. menuPlay LinearLayout(horizontal)

    9. playButton ImageButton

    10. progressBar SeekBar

    11. homeButton Button

    12. pelajaran ImageView

    13. klik MediaPlayer

    Tabel III.5, Spesifikasi berkas ‘Materi 1-18, Materi 22, & Materi 23’

    6. Spesifikasi berkas ‘Materi 19-21 & Materi 24-26 ”

    Nama Berkas : activity_materi19_a.xml – activity_materi21_a.xml &

    activity_materi24_a.xml – activity_materi26_a.xml &

  • 35

    Fungsi : Untuk menampilkan pilihan materi yang bisa dipelajari

    pengguna.

    Software : Android Studio

    No. Nama Tipe

    1. ConstraintLayout ConstraintLayout

    2. LinearLayout1 LinearLayout (vertical)

    3. RelativeLayout RelativeLayout

    4. textView TextView

    5. HorizontalScrollView HorizontalScrollView

    6. LinearLayout2 LinearLayout (horizontal)

    7. LinearLayout3 LinearLayout (vertical)

    8. LinearLayout4 LinearLayout (vertical)

    9. LinearLayout5 LinearLayout (vertical)

    10. Pelajaran1 ImageView

    11. Pelajaran2 ImageView

    12. Pelajaran3 ImageView

    13. scrollView1 ScrollView

    14. scrollView2 ScrollView

    15. scrollView3 ScrollView

    16. menuPlay1 LinearLayout(horizontal)

    17. menuPlay2 LinearLayout(horizontal)

    18. menuPlay3 LinearLayout(horizontal)

    19. scrollLayout1 LinearLayout(vertical)

    20. scrollLayout2 LinearLayout(vertical)

  • 36

    21. scrollLayout3 LinearLayout(vertical)

    22. gridLayout1 GridLayout

    23. gridLayout2 GridLayout

    24. gridLayout3 GridLayout

    25. gridLayout4 GridLayout

    26. gridLayout5 GridLayout

    27. gridLayout6 GridLayout

    28. playButton ImageButton

    29. playButton ImageButton

    30. playButton ImageButton

    31. progressBar SeekBar

    32. progressBar SeekBar

    33. progressBar SeekBar

    34. homeButton Button

    35. klik MediaPlayer

    36. materi MediaPlayer

    37 latihan MediaPlayer

    Tabel III.6, Spesifikasi berkas “Materi 19-21 & Materi 24-26 “

    7. Spesifikasi berkas Makhraj.

    Nama Berkas : makhraj1.xml – makhraj18.xml

    Fungsi : Untuk menampilkan petunjuk pembelajaran.

    Software : Android Studio

    No. Nama Tipe

    1 txtclose textView

  • 37

    3.2.6. HIPO

    Gambar III.7, Diagram HIPO Program

    2 txtJudul textView

    3 textA textView

    4 textB textView

    5 imageA imageView

    6 imageB imageView

    7 klik MediaPlayer

    Tabel III.7, Spesifikasi berkas ‘Makhraj’

  • 38

    3.2.7. Spesifikasi Program

    Spesifikasi program ini menjelaskan nama program dan fungsi masing – masing

    program yang sebelumnya telah digambarkan dalam bentuk HIPO.

    1. Spesifikasi program ‘Tampilan Awal’

    Nama Berkas : MainActivity.java

    Fungsi : Sebagai penanda aplikasi telah berjalan.

    Bahasa : Java

    Bentuk Tampilan : Lampiran A.1

    Proses :

    a. Tekan tombol credit untuk menampilkan credit aplikasi dalam

    bentuk pop up

    b. Tekan tombol play untuk berpindah ke menu

    2. Spesifikasi program ‘Menu’

    Nama Berkas : MenuActivity.java

    Fungsi : Untuk menampilkan pilihan materi yang bisa

    dipelajari pengguna.

    Bahasa : Java

    Bentuk Tampilan : Lampiran A.2

    Proses :

    a. Tampilan menu muncul setelah tombol play pada tampilan awal

    ditekan

  • 39

    b. Tekan tombol petunjuk untuk menampilkan petunjuk

    pembelajaran dalam bentuk pop up

    c. Tekan tombol materi untuk berpindah ke tampilan materi yang

    diinginkan

    3. Spesifikasi program “Materi 1 – 26”

    Nama Berkas : Materi1Activity_a.java -Materi26Activity_a.java

    Fungsi : Untuk menampilkan melihat dan mendengarkan

    materi pelajaran beserta contohnya

    Bahasa : Java

    Bentuk Tampilan : Lampiran A.3 & A.4

    Proses :

    a. Tampilan pelajaran muncul setelah dipilih dari menu

    b. Ketika materi pelajaran ditekan, akan keluar suara contoh dari

    materi tersebut.

    c. Gambar catatan di bagian atas akan menampilkan petunjuk

    makhraj ketika ditekan.

    d. Tombol play di bagian bawah bisa ditekan untuk mendengarkan

    contoh bacaan dari latihan.

    e. Ketika contoh latihan diputar, tombol play akan berubah menjadi

    tombol pause, dan ketika ditekan maka suara akan berhenti

  • 40

    3.2.8. Flowchart

    1. Flowchart Menu

    Gambar III.8, Flowchart Menu

  • 41

    2. Flowchart Materi

    Gambar III.9, Flowchart Materi

    3.2.9. Implementasi Sistem (Listing Program)

    1. MainActivity.java

    package com.example.mafaza01;

    import android.app.Dialog;

    import android.content.Intent;

    import android.graphics.Color;

    import android.graphics.drawable.ColorDrawable;

    import android.media.MediaPlayer;

    import android.support.v7.app.AppCompatActivity;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.TextView;

    public class MainActivity extends AppCompatActivity {

    Dialog myDialog;

    MediaPlayer mp;

    public void buttonMulai(View view) {

    mp.start();

    Intent intent = new Intent(MainActivity.this, MenuActivity.class);

    startActivity(intent);

    }

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    myDialog = new Dialog(this);

    mp = MediaPlayer.create(this, R.raw.klik);

    }

    public void ShowPopup(View v) {

    mp.start();

    TextView txtclose;

    myDialog.setContentView(R.layout.credit);

    txtclose = myDialog.findViewById(R.id.txtclose);

    txtclose.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

    mp.start();

    myDialog.dismiss();

    }

    });

  • 42

    if (myDialog.getWindow() != null){

    myDialog.getWindow().setBackgroundDrawable(new

    ColorDrawable(Color.TRANSPARENT));

    myDialog.show();

    }

    }

    }

    2. MenuActivity.java

    package com.example.mafaza01;

    import android.app.Dialog;

    import android.content.Intent;

    import android.graphics.Color;

    import android.graphics.drawable.ColorDrawable;

    import android.media.MediaPlayer;

    import android.support.v7.app.AppCompatActivity;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.TextView;

    public class MenuActivity extends AppCompatActivity {

    Dialog myDialog;

    MediaPlayer mp;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_menu);

    myDialog = new Dialog(this);

    }

    public void ShowPopup(View v) {

    TextView txtclose;

    myDialog.setContentView(R.layout.petunjuk);

    txtclose = myDialog.findViewById(R.id.txtclose);

    txtclose.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

    myDialog.dismiss();

    }

    });

    if (myDialog.getWindow() != null){

    myDialog.getWindow().setBackgroundDrawable(new

    ColorDrawable(Color.TRANSPARENT));

    myDialog.show();

    }

    }

    public void masukMateri(View view){

    mp = MediaPlayer.create(this, R.raw.klik);

    switch (view.getId()){

    case R.id.materi1:

    Intent intent1 = new Intent(MenuActivity.this,

    Materi1Activity_a.class);

    startActivity(intent1);

    mp.start();

    break;

    case R.id.materi2:

    Intent intent2 = new Intent(MenuActivity.this,

    Materi2Activity_a.class);

    startActivity(intent2);

    mp.start();

    break;

  • 43

    case R.id.materi3:

    Intent intent3 = new Intent(MenuActivity.this,

    Materi3Activity_a.class);

    startActivity(intent3);

    mp.start();

    break;

    case R.id.materi4:

    Intent intent4 = new Intent(MenuActivity.this,

    Materi4Activity_a.class);

    startActivity(intent4);

    mp.start();

    break;

    case R.id.materi5:

    Intent intent5 = new Intent(MenuActivity.this,

    Materi5Activity_a.class);

    startActivity(intent5);

    mp.start();

    break;

    case R.id.materi6:

    Intent intent6 = new Intent(MenuActivity.this,

    Materi6Activity_a.class);

    startActivity(intent6);

    mp.start();

    break;

    case R.id.materi7:

    Intent intent7 = new Intent(MenuActivity.this,

    Materi7Activity_a.class);

    startActivity(intent7);

    mp.start();

    break;

    case R.id.materi8:

    Intent intent8 = new Intent(MenuActivity.this,

    Materi8Activity_a.class);

    startActivity(intent8);

    mp.start();

    break;

    case R.id.materi9:

    Intent intent9 = new Intent(MenuActivity.this,

    Materi9Activity_a.class);

    startActivity(intent9);

    mp.start();

    break;

    case R.id.materi10:

    Intent intent10 = new Intent(MenuActivity.this,

    Materi10Activity_a.class);

    startActivity(intent10);

    mp.start();

    break;

    case R.id.materi11:

    Intent intent11 = new Intent(MenuActivity.this,

    Materi11Activity_a.class);

    startActivity(intent11);

    mp.start();

    break;

    case R.id.materi12:

    Intent intent12 = new Intent(MenuActivity.this,

    Materi12Activity_a.class);

    startActivity(intent12);

    mp.start();

    break;

    case R.id.materi13:

    Intent intent13 = new Intent(MenuActivity.this,

    Materi13Activity_a.class);

    startActivity(intent13);

    mp.start();

    break;

    case R.id.materi14:

  • 44

    Intent intent14 = new Intent(MenuActivity.this,

    Materi14Activity_a.class);

    startActivity(intent14);

    mp.start();

    break;

    case R.id.materi15:

    Intent intent15 = new Intent(MenuActivity.this,

    Materi15Activity_a.class);

    startActivity(intent15);

    mp.start();

    break;

    case R.id.materi16:

    Intent intent16 = new Intent(MenuActivity.this,

    Materi16Activity_a.class);

    startActivity(intent16);

    mp.start();

    break;

    case R.id.materi17:

    Intent intent17 = new Intent(MenuActivity.this,

    Materi17Activity_a.class);

    startActivity(intent17);

    mp.start();

    break;

    case R.id.materi18:

    Intent intent18 = new Intent(MenuActivity.this,

    Materi18Activity_a.class);

    startActivity(intent18);

    mp.start();

    break;

    case R.id.materi19:

    Intent intent19 = new Intent(MenuActivity.this,

    Materi19Activity_a.class);

    startActivity(intent19);

    mp.start();

    break;

    case R.id.materi20:

    Intent intent20 = new Intent(MenuActivity.this,

    Materi20Activity_a.class);

    startActivity(intent20);

    mp.start();

    break;

    case R.id.materi21:

    Intent intent21 = new Intent(MenuActivity.this,

    Materi21Activity_a.class);

    startActivity(intent21);

    mp.start();

    break;

    case R.id.materi22:

    Intent intent22 = new Intent(MenuActivity.this,

    Materi22Activity_a.class);

    startActivity(intent22);

    mp.start();

    break;

    case R.id.materi23:

    Intent intent23 = new Intent(MenuActivity.this,

    Materi23Activity_a.class);

    startActivity(intent23);

    mp.start();

    break;

    case R.id.materi24:

    Intent intent24 = new Intent(MenuActivity.this,

    Materi24Activity_a.class);

    startActivity(intent24);

    mp.start();

    break;

    case R.id.materi25:

    Intent intent25 = new Intent(MenuActivity.this,

  • 45

    Materi25Activity_a.class);

    startActivity(intent25);

    mp.start();

    break;

    case R.id.materi26:

    Intent intent26 = new Intent(MenuActivity.this,

    Materi26Activity_a.class);

    startActivity(intent26);

    mp.start();

    break;

    }

    }

    }

    3. MateriActivity.java

    package com.example.mafaza01;

    import android.app.Dialog;

    import android.content.Intent;

    import android.graphics.Color;

    import android.graphics.drawable.ColorDrawable;

    import android.media.MediaPlayer;

    import android.os.Handler;

    import android.support.v7.app.AppCompatActivity;

    import android.os.Bundle;

    import android.view.View;

    import android.widget.ImageButton;

    import android.widget.SeekBar;

    import android.widget.TextView;

    public class Materi1Activity_a extends AppCompatActivity {

    Dialog myDialog;

    ImageButton playButton;

    SeekBar seekBar;

    MediaPlayer latihan , materi;

    Runnable runnable;

    Handler handler;

    public void tombol(View v) {

    switch (v.getId()){

    case R.id.playButton:

    if(latihan.isPlaying()){

    latihan.pause();

    playButton.setImageResource(R.drawable.playbutton);

    } else {

    latihan.start();

    playButton.setImageResource(R.drawable.pausebutton);

    changeSeekbar();

    }

    break;

    case R.id.pelajaran:

    materi.start();

    break;

    case R.id.homeButton:

    Intent intent = new Intent(Materi1Activity_a.this,

    MenuActivity.class);

    startActivity(intent);

    break;

    }

    }

    public void ShowPopup(View v) {

    TextView txtclose;

  • 46

    myDialog.setContentView(R.layout.makhraj1);

    txtclose = myDialog.findViewById(R.id.txtclose);

    txtclose.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View v) {

    myDialog.dismiss();

    }

    });

    if (myDialog.getWindow() != null){

    myDialog.getWindow().setBackgroundDrawable(new

    ColorDrawable(Color.TRANSPARENT));

    myDialog.show();

    }

    }

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_materi1_a);

    myDialog = new Dialog(this);

    playButton = findViewById(R.id.playButton);

    handler = new Handler();

    seekBar = findViewById(R.id.progressBar);

    latihan = MediaPlayer.create(this,R.raw.latihan1);

    materi = MediaPlayer.create(this,R.raw.mat1);

    latihan.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

    @Override

    public void onPrepared(MediaPlayer mp) {

    seekBar.setMax(latihan.getDuration());

    changeSeekbar();

    }

    });

    seekBar.setOnSeekBarChangeListener(new

    SeekBar.OnSeekBarChangeListener() {

    @Override

    public void onProgressChanged(SeekBar seekBar, int progress,

    boolean fromUser) {

    if(fromUser){

    latihan.seekTo(progress);

    }

    }

    @Override

    public void onStartTrackingTouch(SeekBar seekBar) {

    }

    @Override

    public void onStopTrackingTouch(SeekBar seekBar) {

    }

    });

    }

    private void changeSeekbar() {

    seekBar.setProgress(latihan.getCurrentPosition());

    if (latihan.isPlaying()){

    runnable = new Runnable() {

    @Override

  • 47

    public void run() {

    changeSeekbar();

    }

    };

    handler.postDelayed(runnable,1000);

    }

    }

    @Override

    protected void onPause() {

    super.onPause();

    if (latihan != null) {

    latihan.pause();

    if (isFinishing()) {

    latihan.stop();

    }

    }

    }

    }

    3.3 Sarana Pendukung Program

    3.3.1. Perangkat Keras

    Perangkat keras merupakan alat yang memiliki bentuk fisik dan diperlukan untuk

    pemrosesan aplikasi yang dibuat. Adapun perangkat keras yang digunakan dalam

    pembuatan aplikasi ini adalah :

    1. Laptop

    Merk : HP

    Processor : AMD A8 6410

    RAM : 8 GB DDR3L

    Storage : 240GB SSD

    OS : Windows 10 Pro

    2. SmartPhone

    Merk : ASUS

    Seri : Zenfone Live L1

    Processor : Qualcomm Snapdragon 425

  • 48

    RAM : 2GB

    OS : Android 8.0 Oreo

    3.3.2. Perangkat Lunak

    Perangkat lunak merupakan program yang memberi perintah pada perangkat

    keras untuk melakukan pemrosesan tertentu. Adapun perangkat lunak yang digunakan

    dalam pembuatan aplikasi ini adalah :

    1. Windows 10 Pro

    2. Android Studio Versi 3.4

    3. Adobe Photoshop CC 2019

    4. Adobe Audition CC 2019