Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
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:
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.
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.
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
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.
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
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.
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
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.
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.
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
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(); } }
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); } } }); }
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:
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;
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;
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();
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) {
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;
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;
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);
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; }
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;
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;
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