bab 4 pembahasan 4.1 perancangan

25
17 BAB 4 PEMBAHASAN 4.1 PERANCANGAN Perancangan Aplikasi Permohonan Penyuluhan dan Pengaduan Narkoba di Badan Narkotika Nasional Kabupaten Sleman terdiri dari perancangan alur bisnis, kebutuhan perangkat lunak, perancangan input, dan perancangan output. 4.1.1 Perancangan Alur Bisnis yang Baru Berikut adalah perancangan alur bisnis yang baru permohonan penyuluhan yang dapat dilihat pada Gambar 4.1 Gambar 4.1 Flowmap Permohonan Penyuluhan Baru Penjelasan alur bisnis yang baru permohonan penyuluhan yang akan dibuat:

Upload: others

Post on 12-Nov-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

17

BAB 4

PEMBAHASAN

4.1 PERANCANGAN

Perancangan Aplikasi Permohonan Penyuluhan dan Pengaduan Narkoba di

Badan Narkotika Nasional Kabupaten Sleman terdiri dari perancangan alur bisnis,

kebutuhan perangkat lunak, perancangan input, dan perancangan output.

4.1.1 Perancangan Alur Bisnis yang Baru

Berikut adalah perancangan alur bisnis yang baru permohonan penyuluhan

yang dapat dilihat pada Gambar 4.1

Gambar 4.1 Flowmap Permohonan Penyuluhan Baru

Penjelasan alur bisnis yang baru permohonan penyuluhan yang akan dibuat:

Page 2: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

18

1. Masyarakat mengisi form permohonan penyuluhan dan menginputkannya

ke dalam aplikasi.

2. Petugas BNNK Sleman kemudian meninjau permohonan dengan melihat

jadwal tersedia

3. Petugas BNNK Sleman menginputkan hasil persetujuan penyuluhan dan

hasil permohonan penyuluhan dikirimkan ke pemohon/masyarakat.

7. Bila hasil persetujuan permohonan penyuluhan diterima maka akan

dilakukan penyuluhan, tetapi apabila permohonan penyuluhan yang

diajukan tidak diterima Masyarakat harus kembali mengajukan permohonan

penyuluhan.

4. Petugas BNNK kemudian menginputkan laporan hasil penyuluhan

penyuluhan yang dikirimkan kepada Masyarakat dan Kepala BNNK

Sleman.

5. Kepala BNNK menerima laporan hasil penyuluhan.

6. Masyarakat menerima laporan hasil penyuluhan.

Berikut adalah perancangan alur bisnis yang baru pengaduan narkoba yang

dapat dilihat pada Gambar 4.2.

Gambar 4.2 Flowmap Pengaduan Narkoba Baru

4.1.2 Diagram Konteks

Diagram konteks merupakan gambaran secara keseluruhan yang

menggambarkan hubungan antar entitas yang terlibat secara langsung dengan

Aplikasi Android Permohonan Penyuluhan dan Pengaduan Narkoba di Badan

Narkotika Nasional Kabupaten Sleman dapat dilihat pada Gambar 4.3.

Page 3: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

19

Gambar 4.3 Diagram Konteks

Pada konteks diagram diatas, user yang terkait dengan aplikasi ini nantinya ada 3,

yaitu :

1. Petugas BNNK Sleman, memiliki hak akses untuk mengolah data

masyarakat dan Kepala BNNK Sleman. Selain itu, petugas BNNK Sleman

juga menerima output dari aplikasi berupa informasi data-data masyarakat.

2. Masyarakat, memiliki hak akses berupa mengolah data permohonan

penyuluhan dan pengaduan narkoba. Selain itu, masyarakat juga menerima

output dari aplikasi berupa form permohonan penyuluhan, form pengaduan

narkoba, konfirmasi permohonan penyuluhan dan laporan hasil penyuluhan.

3. Kepala BNNK Sleman, memiliki hak akses untuk menerima data

pengaduan narkoba dan laporan hasil penyuluhan.

4.1.3 DFD Level 1

DFD Level 1 menjelaskan tentang proses-proses yang ada didalam aplikasi

android permohonan penyuluhan dan pengaduan narkoba berdasarkan diagram

konteks yang telah dibuat. Proses Penyuluhan terbagi menjadi 4 bagian yaitu,

proses manajeman data masyarakat, petugas BNNK Sleman, dan kepala BNNK

Sleman, proses pengisian form permohonan penyuluhan, proses konfirmasi

penyuluhan, dan output laporan hasil penyuluhan. DFD Level 1 Proses Penyuluhan

Aplikasi Android Permohonan Penyuluhan dan Pengaduan Narkoba di Badan

Narkotika Nasional Kabupaten Sleman dapat dilihat pada Gambar 4.4.

Page 4: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

20

Gambar 4.4 DFD Level 1 Penyuluhan

Proses Pengaduan terbagi menjadi bagian yaitu proses manajeman data masyarakat,

petugas BNNK Sleman, dan kepala BNNK Sleman, proses pengisian form

pengaduan narkoba dan daftar masuk pengaduan narkoba. DFD Level 1 Proses

Pengaduan Aplikasi Android Permohonan Penyuluhan dan Pengaduan Narkoba di

Badan Narkotika Nasional Kabupaten Sleman dapat dilihat pada Gambar

Gambar 4.5 DFD Level 1 Pengaduan

Page 5: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

21

4.1.4 Kebutuhan Perangkat Keras dan Perangkat Lunak

4.1.4.1 Perangkat Keras

Adapun kebutuhan perangkat keras untuk membuat aplikasi ini adalah

sebagai berikut:

Tabel 4.1 Kebutuhan Perangkat Keras

No. Nama Perangkat Spesifikasi

1. RAM 6.0 GB

2. Processor Intel Core i3

3. Hardisk 500GB

4.1.4.2 Perangkat Lunak

Adapun kebutuhan perangkat lunak untuk membuat aplikasi ini adalah

sebagai berikut:

Tabel 4.2 Kebutuhan Perangkat Lunak

No. Nama Perangkat Spesifikasi

1. Android Studio Versi 4.0

2. MySQL/MariaDB Versi 10.4.13

3. Chrome Versi 83.0.4103.116

(64-bit)

4. XAMPP Versi 3.2.4

5. Sublime Text Versi 3.2.2

6. PHPMyAdmin Versi 5.0.2

4.1.5 Perancangan Input

Rancangan input merupakan perancangan untuk memasukan data yang

dilakukan untuk memberikan output. Rancangan input aplikasi ini terdiri dari

rancangan input from login, rancangan input form register, rancangan input

permohonan penyuluhan, input pengaduan narkoba, dan input laporan hasil

penyuluhan.

Page 6: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

22

4.1.5.1 Rancangan Form Login

Rancangan form login pada Aplikasi Permohonan Penyuluhan dan

Pengaduan Narkoba di Badan Narkotika Nasional Kabupaten Sleman dapat dilihat

pada Gambar 4.6.

Gambar 4.6 Rancangan Login

4.1.5.2 Rancangan Form Register

Rancangan form register pada Aplikasi Permohonan Penyuluhan dan

Pengaduan Narkoba di Badan Narkotika Nasional Kabupaten Sleman dapat dilihat

pada Gambar 4.7.

Gambar 4.7 Rancangan Register

Page 7: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

23

4.1.5.3 Rancangan Input Permohonan Penyuluhan

Rancangan input permohonan penyuluhan pada Aplikasi Permohonan

Penyuluhan dan Pengaduan Narkoba di Badan Narkotika Nasional Kabupaten

Sleman dapat dilihat pada Gambar 4.8.

Gambar 4.8 Rancangan Input Permohonan Penyuluhan

4.1.5.4 Rancangan Input Konfirmasi Permohonan Penyuluhan

Rancangan input konfirmasi permohonan penyuluhan pada Aplikasi

Permohonan Penyuluhan dan Pengaduan Narkoba di Badan Narkotika Nasional

Kabupaten Sleman dapat dilihat pada Gambar 4.8.

Page 8: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

24

4.1.5.5 Rancangan Input Pengaduan Narkoba

Rancangan input pengaduan narkoba pada Aplikasi Permohonan

Penyuluhan dan Pengaduan Narkoba di Badan Narkotika Nasional Kabupaten

Sleman dapat dilihat pada Gambar 4.9.

Gambar 4.9 Rancangan Input Pengaduan Narkoba

4.1.5.6 Rancangan Input Laporan Hasil Penyuluhan

Rancangan input laporan hasil penyuluhan pada Aplikasi Permohonan

Penyuluhan dan Pengaduan Narkoba di Badan Narkotika Nasional Kabupaten

Sleman dapat dilihat pada Gambar 4.10.

Gambar 4.10 Input Laporan Hasil Penyuluhan

Page 9: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

25

4.1.6 Perancangan Output

Rancangan output merupakan perancangan untuk menampilkan hasil yang

dilakukan oleh input. Rancangan output aplikasi ini terdiri dari rancangan daftar

masuk permohonan penyuluhan, rancangan pemberitahuan konfirmasi penyuluhan,

rancangan daftar masuk pengaduan narkoba dan rancangan daftar laporan hasil

penyuluhan.

4.1.6.1 Rancangan Daftar Masuk Permohonan Penyuluhan

Rancangan output daftar masuk permohonan penyuluhan pada User Petugas

Aplikasi Permohonan Penyuluhan dan Pengaduan Narkoba di Badan Narkotika

Nasional Kabupaten Sleman dapat dilihat pada Gambar 4.11.

Gambar 4.11 Rancangan Daftar Masuk Permohonan Penyuluhan

4.1.6.2 Rancangan Pemberitahuan Konfirmasi Penyuluhan

Rancangan output pemberitahuan konfirmasi penyuluhan pada User

Masyarakat Aplikasi Permohonan Penyuluhan dan Pengaduan Narkoba di Badan

Narkotika Nasional Kabupaten Sleman dapat dilihat pada Gambar 4.12.

Page 10: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

26

Gambar 4.12 Rancangan Pemberitahuan Konfirmasi Penyuluhan

4.1.6.3 Rancangan Daftar Masuk Pengaduan Narkoba

Rancangan output daftar masuk pengaduan narkoba pada user petugas dan

user kepala Aplikasi Permohonan Penyuluhan dan Pengaduan Narkoba di Badan

Narkotika Nasional Kabupaten Sleman dapat dilihat pada Gambar 4.13.

Gambar 4.13 Rancangan Daftar Masuk Pengaduan Narkoba

4.1.6.4 Rancangan Daftar Laporan Hasil Penyuluhan

Rancangan output daftar laporan hasil penyuluhan pada Aplikasi

Permohonan Penyuluhan dan Pengaduan Narkoba di Badan Narkotika Nasional

Kabupaten Sleman dapat dilihat pada Gambar 4.14.

Page 11: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

27

Gambar 4.14 Rancangan Daftar Laporan Hasil Penyuluhan

4.2 IMPLEMENTASI

4.2.1 Form Login

Pada form ini, Masyarakat yang telah memiliki email dan password dapat

melakukan login dan akan masuk pada halaman utama masing-masing sesuai

dengan login usernya. Implementasi dapat dilihat pada Gambar 4.15.

Gambar 4.15 Form Login

Page 12: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

28

Berikut adalah kode untuk halaman form login masyarakat yang meliputi kode

menampilkan ikon/logo bnn, kemudian terdapat dua form untuk memasukkan email

dengan code etmail dan form password dengan code etpass kemudian code tersebut

diimplementasikan dengan method onclick:

4.2.2 Form Register

Pada form ini, Masyarakat yang belum memiliki akun dapat melakukan

register/daftar terlebih dahulu agar dapat login dan masuk pada halaman utama.

Implementasi dapat dilihat pada Gambar 4.16.

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); etemail=(EditText)findViewById(R.id.etemail); etpass=(EditText)findViewById(R.id.etpass); tvcreate=(TextView)findViewById(R.id.tvcreate); tvforgetpass=(TextView)findViewById(R.id.tvforgetpass);

btnlogin=(Button)findViewById(R.id.btnlogin); mApiService = ApiUtils.getApiService();

initCheck(); btnlogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String email= etemail.getText().toString().trim(); String password= etpass.getText().toString().trim();

if(!TextUtils.isEmpty(email) && !TextUtils.isEmpty(password)) { loginUser(email, password); } } }); public void initCheck(){ String token = Preferences.getLogin(getBaseContext()); if(token!=""){ Intent regist = new Intent(LoginActivity.this,MainActivity.class); startActivity(regist); finish(); } } @Override public void onResponse(Call<LoginUser> call, Response<LoginUser> response) { if(response.body().getStatus()) { Preferences.setLogin(getBaseContext(),response.body().getToken()); Toast.makeText(LoginActivity.this,response.body().getMsg(), Toast.LENGTH_SHORT).show(); Intent regist = new Intent(LoginActivity.this,MainActivity.class);

startActivity(regist); finish(); }else { Toast.makeText(LoginActivity.this,"Login Failed", Toast.LENGTH_SHORT).show(); } }

Page 13: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

29

Gambar 4.16 Form Register

Berikut adalah kode untuk halaman form register masyarakat meliputi kode untuk

memasukkan nama lengkap dengan code etname, email dengan code etmailreg, no

handphone dengan code etnotelp, password dengan etpassreg dan memilih

pertanyaan lupa password dengan code question kemudian code tersebut

diimplementasikan dengan method onclick:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_register); mContext = this; etname=(EditText)findViewById(R.id.etname); etemailreg=(EditText)findViewById(R.id.emailR); etnotelp=(EditText)findViewById(R.id.etnotelp); etpassreg=(EditText)findViewById(R.id.etpassreg); etanswer=(EditText)findViewById(R.id.etanswer); question=(Spinner)findViewById(R.id.question); btnregis=(Button)findViewById(R.id.btnregis); btncButtonR=(Button)findViewById(R.id.cButtonR); mApiService = ApiUtils.getApiService(); btnregis.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String nama_lengkap= etname.getText().toString().trim(); String email= etemailreg.getText().toString().trim(); String nomer= etnotelp.getText().toString().trim(); String password= etpassreg.getText().toString().trim(); String pertanyaan= question.getSelectedItem().toString().trim(); String jawaban= etanswer.getText().toString().trim();if(!TextUtils.isEmpty(nama_lengkap)&& !TextUtils.isEmpty(email) && !TextUtils.isEmpty(nomer) && !TextUtils.isEmpty(password) && !TextUtils.isEmpty(pertanyaan) && !TextUtils.isEmpty(jawaban) ) { saveRegis(nama_lengkap, email, nomer, password, pertanyaan, jawaban); } } }); }

Page 14: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

30

4.2.3 Form Input Permohonan Penyuluhan

Pada form ini, Masyarakat yang ingin mengajukan permohonan penyuluhan

melakukan input data permohonan. Implementasi dapat dilihat pada Gambar 4.17.

Gambar 4.17 Form Input Permohonan Penyuluhan

Berikut adalah kode untuk halaman form input permohonan penyuluhan meliputi

kode untuk memasukkan nama lengkap dengan code eNaLeng, nama

instansi/organisasi dengan code eInstansi, nama kegiatan dengan code eKegiatan,

tanggal kegiatan dengan code eTangga, waktu kegiatan dengan code eWaktu, lokasi

kegiatan dengan code eLokasi, jumlah peserta hadir dengan code eJumlah, dan

upload surat permohonan dengan code btnupload:

Page 15: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

31

4.2.4 Form Input Pengaduan Narkoba

Pada form ini, Masyarakat yang ingin melaporkan pengaduan narkoba

melakukan input data pengaduan narkoba. Implementasi dapat dilihat pada Gambar

4.18.

@Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View rootview = inflater.inflate(R.layout.activity_permohonan, container, false); btnUpload = (Button) rootview.findViewById(R.id.upload); btnSubmit = (Button) rootview.findViewById(R.id.permohonansend); eNaLeng = (EditText) rootview.findViewById(R.id.edtvNaLeng); eInstansi = (EditText) rootview.findViewById(R.id.edintansiorgs); eKegiatan = (EditText) rootview.findViewById(R.id.edkegiatan); eTangga = (EditText) rootview.findViewById(R.id.edDate); eWaktu (EditText) rootview.findViewById(R.id.edStartTime); eLokasi = (EditText) rootview.findViewById(R.id.edlokkeg); eSasaran = (EditText) rootview.findViewById(R.id.edsarkeg); eJumlah = (EditText) rootview.findViewById(R.id.edhadir); mApiService = ApiUtils.getApiService(); btnUpload.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); intent.addCategory(Intent.CATEGORY_OPENABLE); try { startActivityForResult( Intent.createChooser(intent, "Select a File to Copy"), FILE_SELECT_CODE); } catch (android.content.ActivityNotFoundException ex) { new selfDialog(getActivity(),"Please install a File Manager."); } } }); btnSubmit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { progressDialog = new ProgressDialog(getActivity()); progressDialog.setMessage("Sedang Di Proses..."); progressDialog.setCancelable(false); progressDialog.show(); String NaLeng = eNaLeng.getText().toString().trim(); String Instansi = eInstansi.getText().toString().trim(); String Kegiatan = eKegiatan.getText().toString().trim(); String Tanggal = eTanggal.getText().toString().trim(); String Waktu = eWaktu.getText().toString().trim(); String Lokasi = eLokasi.getText().toString().trim(); String Sasaran = eSasaran.getText().toString().trim(); String Jumlah = eJumlah.getText().toString().trim(); uploadFile(NaLeng, Kegiatan, Lokasi, Instansi, Tanggal, Waktu, Sasaran, Jumlah); } }); return rootview;

Page 16: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

32

Gambar 4.18 Form Input Pengaduan Narkoba

Berikut adalah kode untuk halaman form input pengaduan narkoba yang meliputi

method onCreateView untuk implementasi nama-nama id yang ada pada tampilan

form dan method onClick untuk memanggil serta mengambil data dari data yang

diinputkan sesuai dengan nama-nama id/variabel :

Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View rootview = inflater.inflate(R.layout.activity_pengaduan, container, false); String [] valuesnarkoba = {"Jenis Narkoba","Sabu","Ganja","Ekstasi", "Obat-Obatan Terlarang",}; spjns_narkoba = (Spinner) rootview.findViewById(R.id.spjns_narkoba); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, valuesnarkoba); adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); spjns_narkoba.setAdapter(adapter); String [] peran = {"Peran","Pengguna","Bandar","Pengedar","Kurir", "Lainnya",}; spperan = (Spinner) rootview.findViewById(R.id.spperan); ArrayAdapter<String> adapterperan = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, peran); adapterperan.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line); spperan.setAdapter(adapterperan); rsendlpr = (Button) rootview.findViewById(R.id.sendlpr); checkBox = (CheckBox) rootview.findViewById(R.id.confirmlpr); redNalengKp = (EditText) rootview.findViewById(R.id.edNalengKp); redEmailp = (EditText) rootview.findViewById(R.id.edEmailp); redNop = (EditText) rootview.findViewById(R.id.edNop); redalamatp = (EditText) rootview.findViewById(R.id.edalamatp); redNalengKt = (EditText) rootview.findViewById(R.id.edNalengKt); redNot = (EditText) rootview.findViewById(R.id.edNot); redalamatt = (EditText) rootview.findViewById(R.id.edalamatt); rspjns_narkoba = (Spinner) spjns_narkoba; redjmlnarkoba = (EditText) rootview.findViewById(R.id.edjmlnarkoba); rspperan = (Spinner) spperan;

Page 17: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

33

4.2.5 Form Input Konfirmasi Permohonan Penyuluhan

Pada form ini, petugas melakukan input konfirmasi permohonan

penyuluhan yang dikirimkan kepada masyarakat apakah diterima/ditolak.

Implementasi dapat dilihat pada Gambar 4.19.

redprofesit = (EditText) rootview.findViewById(R.id.edprofesit); redalamatkt = (EditText) rootview.findViewById(R.id.edalamatkt); redkendaraan = (EditText) rootview.findViewById(R.id.edkendaraan); redkronologis = (EditText) rootview.findViewById(R.id.edkronologis); redTKP = (EditText) rootview.findViewById(R.id.edTKP); redlokpelsrgter = (EditText) rootview.findViewById(R.id.edlokpelsrgter); redinfo = (EditText) rootview.findViewById(R.id.edinfo); rsendlpr.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) { if(checkBox.isChecked()){ progressDialog = new ProgressDialog(getActivity()); progressDialog.setMessage("Sedang Di Proses..."); progressDialog.setCancelable(false); progressDialog.show(); String enama_lengkap_pelapor = redNalengKp.getText().toString().trim();String eemail_pelapor = redEmailp.getText().toString().trim(); String eno_telp_pelapor = redNop.getText().toString().trim(); String ealamat_pelapor = redalamatp.getText().toString().trim(); String enama_lengkap_terlapor = redNalengKt.getText().toString().trim();String eno_telp_telapor = redNot.getText().toString().trim(); String ealamat_terlapor = redalamatt.getText().toString().trim(); String ejenis_narkoba = rspjns_narkoba.getSelectedItem().toString().trim(); String ejumlah_narkoba = redjmlnarkoba.getText().toString().trim(); String eperan_terlapor = rspperan.getSelectedItem().toString().trim(); String eprofesi_terlapor = redprofesit.getText().toString().trim(); String ealamat_kantor_telapor = redalamatkt.getText().toString().trim(); String enomer_jenis_kendaraan = redkendaraan.getText().toString().trim(); String euraian_pengedaran = redkronologis.getText().toString().trim(); String elokasi_transaksi = redTKP.getText().toString().trim();String elokasi_sering_terlihat = redlokpelsrgter.getText().toString().trim(); String einfo_didapatkan_dari = redinfo.getText().toString().trim();

Page 18: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

34

Gambar 4.19 Form Input Konfirmasi Permohonan Penyuluhan

Berikut adalah kode untuk halaman form input konfirmasi permohonan penyuluhan

meliputi method onCreateView untuk implementasi nama-nama id yang ada pada

tampilan form, method onClick untuk memanggil serta mengambil data dari data

yang diinputkan sesuai dengan nama-nama id/variabel , dan method onClik untuk

implementasi klik surat agar surat yang sudah diupload dapat terunduh serta status

permohonan diterima/ditolak agar bisa diklik.

@Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View rootview = inflater.inflate(R.layout.activity_detail, container, false); String idx = getArguments().getString("idx"); unduhsurat = (Button) rootview.findViewById(R.id.unduhsurat); checkBoxTerima = (CheckBox) rootview.findViewById(R.id.prmhnditerima); checkBoxTolak = (CheckBox) rootview.findViewById(R.id.prmhnditolak); name = (TextView) rootview.findViewById(R.id.name); instansi = (TextView) rootview.findViewById(R.id.instansi); keg = (TextView) rootview.findViewById(R.id.keg); tanggal = (TextView) rootview.findViewById(R.id.tanggal); waktu = (TextView) rootview.findViewById(R.id.waktu); lokasi = (TextView) rootview.findViewById(R.id.lokasi); sasaran = (TextView) rootview.findViewById(R.id.sasaran); peserta = (TextView) rootview.findViewById(R.id.peserta); btnKPerjuan = (Button) rootview.findViewById(R.id.KPerjuan); teddnampeg1 = (EditText) rootview.findViewById(R.id.eddnampeg1); teddnampeg2 = (EditText) rootview.findViewById(R.id.eddnampeg2); teddnampeg1.setVisibility(rootview.GONE); teddnampeg2.setVisibility(rootview.GONE); unduhsurat.setOnClickListener(new View.OnClickListener() { @RequiresApi(api = Build.VERSION_CODES.O) @Override public void onClick(View v) {

Page 19: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

35

4.2.6 Form Input Laporan Hasil Penyuluhan

Pada form ini, petugas melakukan input laporan hasil penyuluhan yang

dikirimkan kepada masyarakat dan kepala. Implementasi dapat dilihat pada Gambar

4.20.

Gambar 4.20 Form Input Laporan Hasil Penyuluhan

Berikut adalah kode untuk halaman form input laporan hasil penyuluhan meliputi

method onCreateView untuk implementasi nama-nama id/variabel, method

onTouch untuk menekan dan mendetekasi klik tulisan panjang, dan method onClick

untuk memanggil serta mengambil data dari data yang diinputkan sesuai dengan

nama-nama id:

new DownloadTask(getActivity(),"https://bnn.gmscode.net/upload/kegiatan/"+nameXFile); } }); btnKPerjuan.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String eteddnampeg1 = teddnampeg1.getText().toString().trim(); String eteddnampeg2 = teddnampeg2.getText().toString().trim(); String eStatus = statusAct?"diterima":"ditolak"; kirimKonfirmasi(idx,eteddnampeg1,eteddnampeg2,eStatus); } }); refresh(idx); return rootview;

Page 20: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

36

@Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState){ View rootview = inflater.inflate(R.layout.activity_input_laporan, container, false); xeddesk = (EditText) rootview.findViewById(R.id.eddesk); ednampeg1 = (EditText) rootview.findViewById(R.id.ednampeg1); ednampeg2 = (EditText) rootview.findViewById(R.id.ednampeg2); edjmlhadir = (EditText) rootview.findViewById(R.id.edjmlhadir); upldimage = (Button) rootview.findViewById(R.id.upldimage); lapsend = (Button) rootview.findViewById(R.id.lapsend); xeddesk.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (xeddesk.hasFocus()) { v.getParent().requestDisallowInterceptTouchEvent(true); switch (event.getAction() & MotionEvent.ACTION_MASK){ case MotionEvent.ACTION_SCROLL: v.getParent().requestDisallowInterceptTouchEvent(false); return true; } } return false; } }); lapsend.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { progressDialog = new ProgressDialog(getActivity()); progressDialog.setMessage("Sedang Di Proses..."); progressDialog.setCancelable(false); progressDialog.show(); String eednampeg1 = ednampeg1.getText().toString().trim(); String eednampeg2 = ednampeg2.getText().toString().trim(); String eedjmlhadir = edjmlhadir.getText().toString().trim(); String exeddesk = xeddesk.getText().toString().trim(); uploadFile(eednampeg1, eednampeg2, eedjmlhadir, exeddesk); } }); upldimage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); intent.addCategory(Intent.CATEGORY_OPENABLE); try { startActivityForResult( Intent.createChooser(intent, "Select Picture"), PICK_IMAGE); } catch (android.content.ActivityNotFoundException ex) { new selfDialog(getActivity(),"Please install a File Manager."); } } }); return rootview;

Page 21: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

37

4.2.7 Daftar Masuk Permohonan Penyuluhan

Pada tampilan ini, petugas dapat melihat daftar permohonan penyuluhan

yang telah masuk. Implementasi dapat dilihat pada Gambar 4.21.

Gambar 4.21 Daftar Masuk Permohonan Penyuluhan

Berikut adalah kode untuk halaman daftar masuk permohonan penyuluhan meliputi

method onCreateView untuk mengimplementasikan nama-nama id/variabel untuk

list daftar permohonan yang telah masuk dan method onViewCreated dipanggil

setelah onCreateView:

@Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState){ View rootview = inflater.inflate(R.layout.activity_list_permohonan, container, false); mRecyclerView = (RecyclerView) rootview.findViewById(R.id.rvpermohonan); tvtitle = (TextView) rootview.findViewById(R.id.tvtitle); mLayoutManager = new LinearLayoutManager(getActivity()); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setHasFixedSize(true); PemberitahuanList = new ArrayList<>(); mAdapter = new kegiatanAdapter(PemberitahuanList); mRecyclerView.setAdapter(mAdapter); if(Preferences.getLevel(getActivity()).equals("Petugas")){ refresh(); }else{ tvtitle.setText("Daftar Laporan Kegiatan Penyuluhan"); getHLap(); } return rootview; } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState);

Page 22: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

38

4.2.8 Pemberitahuan Konfirmasi Permohonan Penyuluhan

Pada tampilan ini, masyarakat dapat mengetahui konfirmasi hasil

permohonan penyuluhan apakah diterima/ditolak. Implementasi dapat dilihat pada

Gambar 4.22.

Gambar 4.22 Pemberitahuan Konfirmasi Permohonan Penyuluhan

Berikut adalah kode untuk halaman pemberitahuan konfirmasi permohonan

penyuluhan meliputi method onCreateViewnama-nama id untuk list daftar

permohonan yang telah dikirim:

4.2.9 Daftar Masuk Pengaduan Narkoba

Pada tampilan ini, petugas dan kepala dapat melihat daftar pengaduan

narkoba yang telah masuk dengan klik download otomatis file akan tersimpan

dalam format pdf. Implementasi dapat dilihat pada Gambar 4.23.

@Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View rootview = inflater.inflate(R.layout.activity_pemberitahuan, container, false); mRecyclerView = (RecyclerView) rootview.findViewById(R.id.pemberitahuanView); mLayoutManager = new LinearLayoutManager(getActivity()); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setHasFixedSize(true); PemberitahuanList = new ArrayList<>(); mAdapter = new kegiatanAdapter(PemberitahuanList); mRecyclerView.setAdapter(mAdapter); refresh(); return rootview; }

Page 23: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

39

Gambar 4.23 Daftar Masuk Pengaduan Narkoba

Berikut adalah kode untuk halaman daftar masuk pengaduan narkoba meliputi

method onCreateView untuk implementasi nama-nama id/variabel untuk list daftar

pengaduan yang diterima:

4.2.10 Daftar Laporan Hasil Penyuluhan

Pada tampilan ini, masyarakat dan kepala dapat melihat hasil laporan

kegiatan penyuluhan yang telah dilaksanakan dengan klik download laporan

otomatis file akan tersimpan dalam format pdf. Implementasi dapat dilihat pada

Gambar 4.24.

Gambar 4.24 Daftar Laporan Hasil Penyuluhan

@Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState){ View rootview = inflater.inflate(R.layout.activity_pengaduan, container, false); mRecyclerView = (RecyclerView) rootview.findViewById(R.id.rvpengaduan); mLayoutManager = new LinearLayoutManager(getActivity()); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setHasFixedSize(true); pengaduanList = new JSONArray(); mAdapter = new pengaduanAdapter(pengaduanList); mRecyclerView.setAdapter(mAdapter); refresh(); return rootview;

Page 24: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

40

Berikut adalah kode untuk halaman daftar laporan hasil penyuluhan meliputi

method onCreateView untuk implementasi nama-nama id/variabel untuk list daftar

pengaduan yang diterima:

4.3 PENGUJIAN

Metode yang digunakan untuk pengujian Aplikasi Android Permohonan

Penyuluhan dan Pengaduan Narkoba di Badan Narkotika Nasional Kabupaten

Sleman adalah pengujian User Acceptance Test (UAT).

4.3.1 User Acceptance Test

Pengujian User Acceptance Test (UAT) adalah pengujian pada

fungsionalitas dari fitur-fitur yang ada pada aplikasi dengan menggunaka kuesioner

dengan beberapa pertanyaan dan pilihan ganda yang diberikan setelah user selesai

mencoba aplikasi ini. Detail kuesioner dengan sampel sebanyak 8 user dapat dilihat

pada tabel 4.3

Tabel 4.3 Detail Kuesioner Pengujian

No. Pertanyaan Jawaban

1.

Apakah tampilan aplikasi android

permohonan penyuluhan dan

pengaduan narkoba di bnnk

sleman mudah dikenali?

Sangat

Mudah Mudah

Tidak

Mudah

Sangat

Tidak

Mudah

4 4

2. Apakah form input permohonan

pada aplikasi user masyarakat

sudah berjalan dengan baik?

Sangat

Baik Baik

Tidak

Baik

Sangat

Tidak

Baik

8

@Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View rootview = inflater.inflate(R.layout.activity_pemberitahuan, container, false); tvtitle = (TextView) rootview.findViewById(R.id.tvtitle); mRecyclerView = (RecyclerView) rootview.findViewById(R.id.pemberitahuanView); mLayoutManager = new LinearLayoutManager(getActivity()); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setHasFixedSize(true); PemberitahuanList = new JSONArray(); mAdapter = new hasilLaporanAdapter(PemberitahuanList); mRecyclerView.setAdapter(mAdapter); tvtitle.setText("Daftar Laporan Kegiatan Penyuluhan"); refresh(); return rootview;

Page 25: BAB 4 PEMBAHASAN 4.1 PERANCANGAN

41

3. Apakah form input pengaduan

narkoba pada aplikasi user

masyarakat sudah berjalan dengan

baik?

Sangat

Baik Baik

Tidak

Baik

Sangat

Tidak

Baik

8

4. Apakah form input konfirmasi

permohonan penyuluhan pada

aplikasi user petugas sudah

berjalan dengan baik?

Sangat

Baik Baik

Tidak

Baik

Sangat

Tidak

Baik

8

5. Apakah form input laporan hasil

penyuluhan pada aplikasi user

petugas sudah berjalan dengan

baik?

Sangat

Baik Baik

Tidak

Baik

Sangat

Tidak

Baik

8

6. Apakah Tampilan Daftar Masuk

Permohonan Penyuluhan pada

aplikasi user petugas sudah

berjalan dengan baik?

Sangat

Baik Baik

Tidak

Baik

Sangat

Tidak

Baik

8

7. Apakah Tampilan Pemberitahuan

Konfirmasi Permohonan

Penyuluhan pada aplikasi user

masyarakat berjalan dengan baik?

Sangat

Baik Baik

Tidak

Baik

Sangat

Tidak

Baik

8

8. Apakah Tampilan Daftar Masuk

Pengaduan Narkoba pada aplikasi

user petugas dan user kepala

berjalan dengan baik?

Sangat

Baik Baik

Tidak

Baik

Sangat

Tidak

Baik

8

9. Apakah Tampilan Daftar Laporan

Hasil Penyuluhan pada aplikasi

user masyarakat dan user kepala

berjalan dengan baik?

Sangat

Baik Baik

Tidak

Baik

Sangat

Tidak

Baik

8