• Tidak ada hasil yang ditemukan

DAFTAR PUSTAKA. Diakses Pada 26 Mei 2018

N/A
N/A
Protected

Academic year: 2022

Membagikan "DAFTAR PUSTAKA. Diakses Pada 26 Mei 2018"

Copied!
28
0
0

Teks penuh

(1)

62

DAFTAR PUSTAKA

Ariani Sukamto, Rosa. 2009. Black-Box Testing. http://julian.unsri.ac.id. Diakses pada tanggal 7 Agustus 2017.

Belen Cruz Zapata, 2015. Pengertian Android Studio

http://eprints.akakom.ac.id. Diakses Pada 02 Juni 2018 Haryanto, 1999 pengertian flowchart

http://elib.unikom.ac.id. Diakses Pada 27 Mei 2018

Jogiyanto. 2004. Pengenalan Komputer, Dasar Ilmu Komputer, Pemrograman Sistem Informasi dan Intelegensi Buatan.

Kasman, A Dharma. 2013. Kolaborasi Dahsyat Android dengan PHP dan MYSQL.

Nugroho, Adi. 2004. Konsep Pengembangan Sistem Basis data http://elib.unikom.ac.id. Diakses Pada 26 Mei 2018

Rosyida, Hanifah. 2015. Balsamiq Mockup. http://enggar.net. Diakses pada tanggal 04 Agustus 2018.

Safaat, Nazruddin. 2012.Pemrograman AplikasiMobile Smartphone dan Tablet PC Berbasis Android.

http://elib.unikom.ac.id. Diakses Pada 05 Juni 2018 Salahudin dan Sukamto, 2013. UML (Unifield Modeling Language)

http://ejournal.bsi.ac.id. Diakses Pada 26 Mei 2018 Sholikhin dan Riasti, 2013 pengertian php

http://download.portalgaruda.org. Diakses Pada 26 Mei 2018

(2)

LAMPIRAN 1

KUISIONER

(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)

LAMPIRAN 2

SOURCE CODE

(14)

Source Code LoginActivity.java

LoginActivity.java

package com.example.indra_act.akasimonsi_nfc;

import android.app.ProgressDialog;

import android.content.Intent;

import android.os.Bundle;

import android.support.annotation.NonNull;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import android.util.Patterns;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import com.android.volley.DefaultRetryPolicy;

import com.android.volley.NetworkResponse;

import com.android.volley.Request;

import com.android.volley.Response;

import com.android.volley.VolleyError;

import com.android.volley.toolbox.StringRequest;

import

com.example.indra_act.akasimonsi_nfc.Firebase.SharedPrefManag er;

import

com.example.indra_act.akasimonsi_nfc.ServerSide.MySingleton;

import com.example.indra_act.akasimonsi_nfc.ServerSide.URL;

import

com.example.indra_act.akasimonsi_nfc.ServerSide.VolleyHandler

;

import com.google.android.gms.tasks.OnCompleteListener;

import com.google.android.gms.tasks.Task;

import com.google.firebase.auth.AuthResult;

import com.google.firebase.auth.FirebaseAuth;

import com.valdesekamdem.library.mdtoast.MDToast;

import org.json.JSONException;

(15)

import org.json.JSONObject;

import java.util.Collections;

import java.util.HashMap;

import java.util.Map;

public class LoginActivity extends AppCompatActivity {

EditText username;

EditText password;

SessionManager sessionManager;

ProgressDialog progressDialog;

FirebaseAuth firebaseAuth;

String token = null;

Button login;

@Override

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

setContentView(R.layout.activity_login);

sessionManager = new

SessionManager(getApplicationContext());

firebaseAuth =FirebaseAuth.getInstance();

token =

SharedPrefManager.getInstance(LoginActivity.this).getDeviceTo ken();

username = findViewById(R.id.email);

password = findViewById(R.id.et_password);

login = findViewById(R.id.btn_login);

login.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) { login();

} });

}

public void login() {

(16)

if

(!Patterns.EMAIL_ADDRESS.matcher(username.getText()).matches(

) && password.length() < 6 ) {

MDToast.makeText(this, "Masukan Email dan Kata Sandi Yang Benar", Toast.LENGTH_SHORT, MDToast.TYPE_WARNING).show();

} else if

(!Patterns.EMAIL_ADDRESS.matcher(username.getText()).matches(

)) {

MDToast.makeText(this, "Masukan Email yang Benar!", Toast.LENGTH_SHORT,MDToast.TYPE_WARNING).show();

} else if (password.length() < 6) {

MDToast.makeText(this, "Masukan Kata Sandi (Minimal 6 Karakter)!", Toast.LENGTH_SHORT,MDToast.TYPE_WARNING).show();

} else {

progresDialog();

goLogin();

} }

public void goLogin() {

StringRequest stringRequest = new

StringRequest(Request.Method.POST, URL.URL_LOGIN, new Response.Listener<String>() {

@Override

public void onResponse(String response) { Log.d("data", response);

progressDialog.dismiss();

try {

final JSONObject respons = new JSONObject(response);

int status = respons.getInt("STATUS");

final String message = respons.getString("MESSAGE");

if (status == 200) {

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

startActivity(intent);

finish();

} else {

(17)

MDToast mdToast = MDToast.makeText(LoginActivity.this, "Email Atau Password Tidak Sesuai!", Toast.LENGTH_SHORT, MDToast.TYPE_ERROR);

mdToast.show();

}

} catch (JSONException e) { e.printStackTrace();

MDToast mdToast =

MDToast.makeText(LoginActivity.this, e.getMessage(), Toast.LENGTH_SHORT, MDToast.TYPE_ERROR);

mdToast.show();

}

}

}, new Response.ErrorListener() { @Override

public void onErrorResponse(VolleyError error) { VolleyHandler handler = new VolleyHandler();

handler.VolleyHandler(LoginActivity.this, error);

progressDialog.dismiss();

} }){

@Override

protected Response<String>

parseNetworkResponse(NetworkResponse response) { if (response.headers == null)

{

// cant just set a new empty map because the member is final.

response = new NetworkResponse(

response.statusCode, response.data,

Collections.<String,

String>emptyMap(), // this is the important line, set an empty but non-null map.

response.notModified,

(18)

response.networkTimeMs);

}

return super.parseNetworkResponse(response);

}

@Override

protected Map<String, String> getParams() {

Map<String, String> params = new HashMap<>();

params.put("USERNAME", username.getText().toString());

params.put("PASSWORD", password.getText().toString());

params.put("TOKEN", token);

Log.d("params", params.toString());

return params;

} };

stringRequest.setRetryPolicy(new DefaultRetryPolicy(

URL.TIMEOUT_ACCESS,

DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

MySingleton.getInstance(getApplicationContext()).addToRequest Queue(stringRequest);

}

private void progresDialog() {

progressDialog = new ProgressDialog(this);

progressDialog.setMessage("Memuat...");

progressDialog.setIndeterminate(false);

progressDialog.setCancelable(false);

progressDialog.show();

}

(19)

Source Code Tampilan_login.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

xmlns:app="http://schemas.android.com/apk/res-auto"

android:background="@drawable/background"

tools:context=".LoginActivity">

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:padding="16dp"

android:orientation="vertical">

<LinearLayout

android:layout_gravity="center"

android:gravity="center"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:padding="16dp"

android:orientation="horizontal">

<ImageView

android:layout_width="50dp"

android:layout_gravity="center"

android:layout_height="50dp"

android:src="@drawable/ic_nfc"/>

<TextView

android:layout_marginLeft="10dp"

android:layout_marginTop="@dimen/activity_horizontal_margin"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

(20)

android:textSize="24sp"

android:textColor="#fff"

android:fontFamily="sans-serif"

android:layout_marginBottom="@dimen/activity_horizontal_margin"

android:text="LOGIN"/>

</LinearLayout>

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="wrap_content">

<android.support.design.widget.TextInputLayout android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textColorHint="@color/white">

<EditText

android:id="@+id/email"

android:layout_marginTop="8dp"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="Email"

android:textColorHint="#80FFFFFF"

android:padding="8dp"

android:inputType="textEmailAddress"

android:layout_marginBottom="@dimen/activity_horizontal_margin"

android:background="@drawable/bg_rectangle_edittext"

android:textColor="#80FFFFFF"/>

</android.support.design.widget.TextInputLayout>

</RelativeLayout>

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="wrap_content">

<android.support.design.widget.TextInputLayout

(21)

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textColorHint="@color/white"

app:passwordToggleEnabled="true">

<EditText

android:id="@+id/et_password"

android:layout_marginTop="8dp"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="Password"

android:textColorHint="#80FFFFFF"

android:inputType="textPassword"

android:padding="8dp"

android:layout_marginBottom="20dp"

android:background="@drawable/bg_rectangle_edittext"

android:textColor="#80FFFFFF"/>

</android.support.design.widget.TextInputLayout>

</RelativeLayout>

<Button

android:id="@+id/btn_login"

android:layout_marginTop="16dp"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textColor="#FFF"

android:text="LOG IN"

android:background="@drawable/bg_rectangle_button"/>

</LinearLayout>

</RelativeLayout>

(22)

Source Code Daftar_kartu.java

package com.example.indra_act.akasimonsi_nfc.Daftar_kartu;

import java.util.ArrayList;

import java.util.List;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import android.app.Activity;

import android.app.ProgressDialog;

import android.os.AsyncTask;

import android.os.Bundle;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemSelectedListener;

import android.widget.ArrayAdapter;

import android.widget.Spinner;

import android.widget.Toast;

import

com.example.indra_act.akasimonsi_nfc.Adapter.ServiceHandle r;

import com.example.indra_act.akasimonsi_nfc.R;

import com.example.indra_act.akasimonsi_nfc.data.Data_Mahasiswa;

public class Daftar_kartu extends Activity {

private static String

URL="http://apdosi.dyno8.net/Nfc/mahasiswa";

ProgressDialog pDialog;

JSONArray JsonArraySiswa = null;

List<String> valueIdSiswa = new ArrayList<String>();

List<String> valueNamaSiswa = new ArrayList<String>();

Spinner spinnerSiswa;

@Override

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

setContentView(R.layout.activity_daftar_kartu);

spinnerSiswa = findViewById(R.id.spinner1);

}

public void LoadData(View v){

// Menggunakan async task untuk "ngeload" data JSON new getDataSiswa().execute();

}

private class getDataSiswa extends AsyncTask<Void, Void, Void> {

(23)

@Override

protected void onPreExecute() { super.onPreExecute();

pDialog = new ProgressDialog(Daftar_kartu.this);

pDialog.setMessage("Mohon Tunggu...");

pDialog.setCancelable(false);

pDialog.show();

}

@Override

protected Void doInBackground(Void... arg0) { //Membuat Service "ServiceHandler"

ServiceHandler sh = new ServiceHandler();

// Memanggil URL untuk mendapatkan respon data

String jsonStr = sh.makeServiceCall(URL, ServiceHandler.GET);

Log.d("Response: ", "> " + jsonStr);

if (jsonStr != null) { try {

JSONObject jsonObj = new JSONObject(jsonStr);

// Mendapatkan data Array JSON

JsonArraySiswa = jsonObj.getJSONArray("");

ArrayList<Data_Mahasiswa> listDataSiswa = new ArrayList<Data_Mahasiswa>();

listDataSiswa.clear();

//Melakukan perulangan untuk memecah data for (int i = 0; i < JsonArraySiswa.length();

i++) {

JSONObject obj =

JsonArraySiswa.getJSONObject(i);

Data_Mahasiswa data_mahasiswa = new Data_Mahasiswa();

data_mahasiswa.setId_mahasiswa(obj.getString("ID_MAHASISWA

"));

data_mahasiswa.setNama_mahasiswa(obj.getString("NAMA_MAHAS ISWA"));

listDataSiswa.add(data_mahasiswa);

System.out.println("data

"+data_mahasiswa.getId_mahasiswa());

}

valueIdSiswa = new ArrayList<String>();

valueNamaSiswa = new ArrayList<String>();

for (int i = 0; i < listDataSiswa.size();

i++) {

(24)

valueIdSiswa.add(listDataSiswa.get(i).getId_mahasiswa());

valueNamaSiswa.add(listDataSiswa.get(i).getNama_mahasiswa(

));

System.out.println("data 2

"+listDataSiswa.get(i).getNama_mahasiswa());

}

System.out.println("id siswa +

"+valueIdSiswa.get(0));

} catch (JSONException e) { e.printStackTrace();

} } else {

Log.e("ServiceHandler", "Couldn't get any data from the url");

}

return null;

}

@Override

protected void onPostExecute(Void result) { super.onPostExecute(result);

// Dismiss the progress dialog if (pDialog.isShowing())

pDialog.dismiss();

// Membuat adapter untuk spinner

ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(Daftar_kartu.this,

android.R.layout.simple_spinner_item, valueNamaSiswa);

spinnerAdapter.setDropDownViewResource(android.R.layout.si mple_spinner_dropdown_item);

//Mengaitkan adapter spinner dengan spinner yang ada di layout

spinnerSiswa.setAdapter(spinnerAdapter);

spinnerSiswa.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override

public void onItemSelected(AdapterView<?>

parentView, View selectedItemView, int position, long id) { String idSiswa = valueIdSiswa.get(position);

String namaSiswa =

valueNamaSiswa.get(position);

Toast.makeText(Daftar_kartu.this, "Anda Memilih ID SISWA: "+idSiswa+", Nama: "+namaSiswa, Toast.LENGTH_LONG).show();

(25)

}

@Override

public void onNothingSelected(AdapterView<?>

parentView) {

// your code here }

});

}

}

Source Code AdapterKartu.java

package com.example.indra_act.akasimonsi_nfc.Adapter;

import android.app.Activity;

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.TextView;

import com.example.indra_act.akasimonsi_nfc.R;

import com.example.indra_act.akasimonsi_nfc.data.Data;

import com.example.indra_act.akasimonsi_nfc.data.DataKartu;

import com.example.indra_act.akasimonsi_nfc.data.Data_Mahasiswa;

import java.util.List;

public class AdapterKartu extends BaseAdapter { private Activity activity;

private LayoutInflater inflater;

private List<DataKartu> item;

public AdapterKartu(Activity activity, List<DataKartu> item) {

this.activity = activity;

this.item = item;

}

@Override

public int getCount() { return item.size();

}

@Override

public Object getItem(int location) { return item.get(location);

}

@Override

public long getItemId(int position) {

(26)

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

if (inflater == null)

inflater = (LayoutInflater) activity

.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

if (convertView == null)

//spiner list yang ada di regist baak

convertView =

inflater.inflate(R.layout.spinner_listid, null);

TextView level = (TextView)

convertView.findViewById(R.id.id);

DataKartu data;

data = item.get(position);

level.setText(data.getNama_mahasiswa());

return convertView;

} }

}

Activity_daftar_kartu.xml

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:padding="10dp"

android:orientation="vertical"

tools:context=".Daftar_kartu.Daftar_kartu" >

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_alignRight="@+id/textView2"

android:layout_below="@+id/textView2"

android:layout_marginTop="41dp"

android:onClick="LoadData"

android:text="Tampilkan Data" />

<TextView

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/button1"

(27)

android:layout_alignRight="@+id/button1"

android:layout_below="@+id/button1"

android:layout_marginTop="16dp"

android:text="Spinner Data Siswa"

android:textAppearance="?android:attr/textAppearanceMedium" />

<Spinner

android:id="@+id/spinner1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_alignParentRight="true"

android:layout_below="@+id/textView1" />

</LinearLayout>

Data_Mahasiswa.java

package com.example.indra_act.akasimonsi_nfc.data;

public class Data_Mahasiswa {

private String id_mahasiswa;

private String nama_mahasiswa;

public String getId_mahasiswa() { return id_mahasiswa;

}

public void setId_mahasiswa(String id_mahasiswa) { this.id_mahasiswa = id_mahasiswa;

}

public String getNama_mahasiswa() { return nama_mahasiswa;

}

public void setNama_mahasiswa(String nama_mahasiswa) { this.nama_mahasiswa = nama_mahasiswa;

} }

(28)

Referensi

Dokumen terkait

Pada makalah ini, akan disimulasikan penggunaan algoritma Dijkstra, salah satu algoritma untuk mencari path terpendek dalam satu graf, dalam menghitung waktu yang

Pasal 23 Undang-Undang No. 5 Tahun 1999 menyebutkan, bahwa pelaku usaha dilarang bersekongkol dengan pihak lain untuk mendapatkan informasi kegiatan usaha

sektor Publik yang terkait termasuk Kepolisian Selandia Baru, Korporasi Kompensasi Kecelakaan, Kementerian Kehakiman, Imigrasi Selandia Baru dan organisasi non- pemerintah

Menurut PIC ESAP, seiring berjalannya waktu pada program ESAP, timbul berbagai permasalahan seperti peningkatan kemampuan dari para peserta berkemampuan lebih tinggi dan

Data diperoleh melalui kuesioner yang dibagikan kepada responden yaitu siswi yang berusia antara 11-12 tahun yang bersekolah di SD Negeri yang berisi 25

terikat permanen, dan aktiva bersih terikat temporer. Tetapi dalam laporan.. keuangan Rumah Sakit Ibnu Sina Padang yang dicantumkan hanya dua, yaitu aset. bersih tidak

Apabila kita melihat suatu gambar tampak atas dari suatu rencana atap, maka panjang jurai luar ataupun dalam belum merupakan suatu garis atau panjang yang sebenarnya disini

pendek dengan kandungan minyak tak jenuh tinggi, c) persilangan dura dan pisifera untuk meminimumkan gejala crown disease (CD), d) sistem seleksi untuk menghasilkan tanaman