Anda di halaman 1dari 33

LAPORAN PRAKTIK KERJA LAPANGAN/KERJA PRAKTIK

DI PT TELKOM INDONESIA DIVISI REGIONAL IV


SEMARANG

PENGGUNAAN SESSION PADA APLIKASI PEMESANAN


MOBIL KANTOR “KBM ONLINE” BERBASIS MOBILE

MUHAMMAD SYAFIQ HIDAYATULLOH


15102108

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNOLOGI INDUSTRI DAN INFORMATIKA
INSTITUT TEKNOLOGI TELKOM PURWOKERTO
2018
LAPORAN PRAKTIK KERJA LAPANGAN/KERJA PRAKTIK
DI PT TELKOM INDONESIA DIVISI REGIONAL IV
SEMARANG

PENGGUNAAN SESSION PADA APLIKASI


PEMESANAN MOBIL KANTOR
“KBM ONLINE” BERBASIS MOBILE

Dipersiapkan dan disusun oleh:

MUHAMMAD SYAFIQ HIDAYATULLOH


15102108

Telah dipresentasikan pada hari

Mengetahui,
Ketua Program Studi Pembimbing PKL/KP ,

(. . . . . . . . . . . . . …..) (. . . . . . . . . ……... . .)
NIK. . . . . . . . . . . NIDN. .. . . . . . . . . .
HALAMAN PENGESAHAN
Praktik Kerja Lapangan/Kerja Praktik

KATA PENGANTAR
Puji syukur kehadirat Tuhan Yang Maha Esa yang telah memberi kekuatan
kepada penulis sehingga mampu menyelesaikan Praktek Kerja Lapangan/PKL
hingga dapat menyelesaikan laporan tugas praktek ini.
Laporan tugas praktek ini disusun guna memenuhi syarat kelulusan mata
kuliah PKL yang ada di semester 7 pada IT Telkom Purwokerto Fakultas
Teknologi Industri dan Informatika program diploma S1 Teknik Informatika.
Kegiatan PKL ini bertujuan untuk memberikan kesempatan kepada mahasiswa
tingkat akhir yang akan lulus untuk belajar mengembangkan ilmu pengetahuan
dan potensi yang dimiliki dengan mengaplikasikan ilmunya di bidang pekerjaan
nantinya serta dapat menjadi tolak ukur tingkat ketrampilan mahasiswa.
Pada PKL serta pembuatan laporannya tak lepas dari bantuan dari berbagai
pihak, baik dari pihak PT Telkom Divisi Regional IV Semarang yang telah
memberikan kesempatan bagi penulis untuk bisa praktek, kemudian pihak kampus
IT Telkom Purwokerto yang sudah memberikan bimbingan serta arahan sebelum
terjun untuk praktek.
Terimakasih penulis ucapkan kepada Orang tua penulis yang selalu
memberikan doa dan support sehingga praktek ini berjalan lancer tanpa adanya
halangan apapun. Terimakasih penulis ucapkan kepada Ibu Yania Maria Christie
selaku manager sekaligus pembimbing lapangan bidang Information System di
PT Telkom Divisi Regional IV Semarang yang sudah bersedia membimbing
praktek kerja di PT Telkom. Terimakasih pula kapada Ibu Rima Dias Ramadhani
selaku dosen pembimbing praktek kerja yang sudah memberikan bimbingan serta
arahan baik saat praktek maupun memberikan masukan saat penulisan laporan.
Terakhir, terimakasih kepada teman-teman kelompok penulis yang sudah mau
bekerja sama menyelesaikan tugas yang diberikan saat praktek kerja.

Semarang, 29 Agustus 2018

Muhammad Syafiq Hidayatulloh

Prodi IF – ITTelkom Purwokerto 15102108


Praktik Kerja Lapangan/Kerja Praktik

ABSTRAK

Prodi IF – ITTelkom Purwokerto 15102108


Praktik Kerja Lapangan/Kerja Praktik

DAFTAR ISI

Prodi IF – ITTelkom Purwokerto 15102108


Praktik Kerja Lapangan/Kerja Praktik

DAFTAR GAMBAR

Prodi IF – ITTelkom Purwokerto 15102108


Praktik Kerja Lapangan/Kerja Praktik

DAFTAR LAMPIRAN

Prodi IF – ITTelkom Purwokerto 15102108


Praktik Kerja Lapangan/Kerja Praktik

Prodi IF – ITTelkom Purwokerto 15102108


Praktik Kerja Lapangan/Kerja Praktik

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik
BAB I

BAB I
PENDAHULUAN

A. Latar Belakang
KBM Online yang merupakan website yang hanya dapat diakses
oleh karyawan PT Telkom Indonesia se-Jawa. Digunakan untuk
memberikan fasilitas kepada karyawan yang ingin meminjam kendaraan
kantor guna kepentingan pekerjaannya. Namun, website tersebut juga
memiliki permasalahan dalam memasukkan data untuk kepentingan
peminjaman secara manual sehingga user harus mengetik satu per satu tiap
kolom. Dalam kenyataanya, masih terdapat kesalahan seperti memasukkan
data alamat penjemputan, kemudian alamat tujuan yang cenderung belum
detail. Berdasarkan permasalahan diatas dan mobilitas karyawan yang
cukup tinggi PT Telkom perlu mengupgrade versi website ke versi
android agar lebih efisien dalam proses peminjaman.
Salah satu cara dalam pengisian form peminjaman pada aplikasi
tersebut agar lebih efisien yaitu dengan mengganti form input alamat
penjemputan dan alamat tujuan dengan menghubungkan langsung kepada
google maps. Dengan demikian, aplikasi KBM Online tersebut dapat
memberikan lebih detail informasi tentang alamat penjemputan serta
alamat tujuan. Selain itu, aplikasi ini sekaligus bisa memberikan informasi
seperti jarak yang ditempuh, perkiraan waktu perjalanan, dan perkiraan
biaya yang harus dikeluarkan untuk pengisian bahan bakar.

B. Tujuan
Tujuan dari aplikasi yang dibuat yaitu sebagai berikut:
1. Efisiensi dalam mengisi form peminjaman mobil
2. Memberikan data detail khususnya alamat karena terhubung
dengan google maps.
3. Memudahkan dalam pemesanan karena dapat dibuka melalui
aplikasi android, sehingga mobilitas tidak terganggu.

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik
BAB I

C. Ruang Lingkup
Pada penelitian ini menerapkan session yang akan digunakan pada
login aplikasi peminjaman mobil KBM Online. Session yang terdapat pada
aplikasi ini berjumlah tiga session dengan fungsi tiap session yang
berbeda.
D. Aspek Umum Dan Kelembagaan

Gambar 1.1 Struktur Organisasi PT Telkom Regional IV Semarang

Secara umum, PT Telkom Divisi Regional IV Semarang ini


memiliki beberapa divisi yang menangani permasalahan dan pelayanan
khusus untuk daerah Jateng-DIY. Penulis berada pada divisi Deputy EVP
Infrastruktur dengan penempatan pada bidang Regional Network
Operation pada Information System Operation Support.
Misi bidang Information System (IS) Operation Support yaitu
dengan memimpin pengelolaan fungsi IS Operation Support untuk
mendukung pencapaian perfomansi. Tanggung jawab yang harus di
tanggung yaitu selalu memastikan dukungan kegiatan O&M aplikasi Core

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik
BAB I

dan Non Core, serta evaluasi sebagai peningkatan kinerja Availability of


Service dan Response Time of Service aplikasi Core dan Non Core sesuai
target dalam dokumen SLA dan OLA. Berikut struktur organisasi dalam
bidang IS Operation Support Telkom Regional IV Semarang.

Gambar 1.2 Struktur Bidang IS Operation Support

E. Metode Penulisan Laporan


Penyusunan laporan ini, data yang diperoleh melalui beberapa
metode meliputi:

1. Metode Wawancara
Wawancara yang dilakukan langsung oleh penulis dan
rekan tim kepada Manager dari Information System (IS) untuk
mengumpulkan data dan kebutuhan yang diperlukan oleh sistem.
2. Metode Kajian Pustaka
Metode ini untuk mengkaji permasalahan untuk mencari
solusi dengan referensi dari internet dengan sumber terpercaya
maupun e-book.

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik
BAB I

3. Metode Diskusi
Diskusi yang dilakukan dengan rekan tim PKL sebagai
pembagian tugas koding aplikasi.
F. Sistematika Penulisan Laporan
Untuk memudahkan pemahaman dalam penyampaian laporan
PKL, dibagi dalam beberapa bab, yakni:
BAB I PENDAHULUAN
Berisi mengenai uraian permasalahan, tujuan serta gambaran
umum tentang perusahaan tempat PKL dan metode-metode yang
digunakan dalam penyusunan laporan.
BAB II LANDASAN TEORI
Berisi tentang teori pemahaman yang digunakan pada aplikasi
sebagai acuan untuk membuat aplikasi berbasis mobile ini agar sesuai
dalam pembuatan.
BAB III ANALISA DAN PEMBAHASAN
Berisi tentang pekerjaan yang dilakukan selama PKL diawali
dengan gambaran umum pekerjaan, kemudian gambaran secara spesifik
pekerjaan pada bidang tersebut. Selain itu berisi tentang pekerjaan yang
dikerjakan selama PKL yang berupa koding membuat aplikasi.
BAB IV PENUTUP
Berisi tentang kesimpulan dari hasil pekerjaan selama kegiatan
PKL serta saran yang ditujukan kepada tempat perusahaan PKL penulis.

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik
BAB II

BAB II
LANDASAN TEORI
A. Aplikasi
Aplikasi merupakan suatu unit perangkat lunak yang dibuat untuk
menunjang kebutuhan dari berbagai aktivitas manusia. Aplikasi ini dibuat
dengan menuliskan sebuah program atau perintah mulai dari interface nya,
kemudian fitur-fitur yang ada di aplikasi dibuat dengan menulis program.
Penulisan sebuah program diperlukan bahasa pemrograman untuk bisa
menulis programnya[1]. Terdapat banyak bahasa pemrograman untuk
membuat sebuah aplikasi, salah satunya yaitu bahasa pemrograman
android dan bahasa pemrograman java.
B. Mobile Application
Mobile application yaitu sebuah program aplikasi yang dapat
diggunakan walaupun pengguna aplikasi berpindah-pindah tidak hanya di
satu lokasi saja. Aplikasi ini dapat diakses dari berbagai perangkat seperti
nirkabel, pager, telepon seluler, smartphone, dan perangkat lain yang
sejenisnya[1].
C. Android Operation System
Android merupakan sebuah sistem operasi yang digunakan untuk
perangkat mobile, dengan basis Linux yang memiliki cakupan mulai dari
sistem operasi, middleware, dan aplikasi[2].
D. Android Studio
Android Studio merupakan sebuha perangkat lunak IDE
(Integrated Development Environment) yang digunakan untuk android
dengan pengembang dari Eclipse IDE, yang dibuat berdasarkan IDE Java
popular[3].
E. Java
Java adalah sebuah bahasa pemrograman tingkat tinggi
berorientasi objek yang mendukung mulai website, aplikasi, dan
client/server. Bahasa pemrograman Java ini mulai diedarkan atau dibuat
oleh Sun Microsystem1 pada awal tahun 1996[4].

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik
BAB II

F. Session
Session merupakan sebuah fitur fungsi pada pemrograman yang
berfungsi menggunakan form login untuk menyimpan data dari sebuah
akun agar tetap tersimpan pada server[5].

G. Shared Preferences
Merupakan proses untuk menyimpan data dalam beberapa nilai
dalam bentuk suatu group key atau bisa juga disebut dengan preferences.
Data tersebut bersifat primitive yang ada pada file internal yang memiliki
pasangan yaitu key-value[6].

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik
BAB III

BAB III
ANALISA DAN PEMBAHASAN

A. Pekerjaan/Kegiatan
PT Telkom Divisi Regional IV Semarang memberikan pekerjaan
kepada penulis selama satu bulan yang dimulai dari 31 Juli 2018 hingga 31
Agustus 2018 yaitu dengan membuat aplikasi. Aplikasi tersebut berawal
dari website yang nantinya dibuat berbasis mobile dikerjakan oleh penulis
beserta rekan rekan kelompok kerja PKL. Tools yang digunakan untuk
membuat aplikasi mobile tersebut menggunakan android studio. Bahasa
pemrograman yang digunakan pada android studio yaitu berupa bahasa
pemrograman android dan bahasa pemrograman java. Penulis beserta
rekan kerja kelompok PKL diharuskan membuat aplikasi tersebut dengan
sedikit memodifikasi aplikasi tersebut agar terhubung dengan google
maps.
Google maps tersebut nantinya akan mengganti form titik
penjemputan beserta titik tujuan yang awalnya di website tersebut masih
mengisi form secara manual, sehingga tingkat keakurasian masih kurang
tepat. Selain itu, fungsi lain dapat memperkirakan jarak tempuh,waktu
tempuh hingga konsumsi bbm, sehingga biaya yang harus dikeluarkan
untuk bbm bisa sesuai dengan penggunaan mobil. Dikarenakan masa PKL
hanya satu bulan yang dirasa kurang oleh pembimbing lapangann, maka
aplikasi tersebut dibuat dengan pembagian tugas kepada penulis dan tiga
rekan lainnya. Penulis mendapat tugas yaitu dengan membuat session
untuk aplikasi tersbut.
Selain pembimbing dari pihak institut, penelitian ini juga memiliki
pembimbing lapangan yang bertugas memberikan tugas kepada penulis
dan rekan kerja, kemudian pengawasan beserta evaluasi kerja yang
dilakukan setiap hari sebelum jam pulang kerja. Melalui buku catatan
kegiatan yang sudah disediakan dari pihak institut, pembimbing lapangan
melaporkan kegiatan penulis selama PKL. Sampai pada saat akhir masa

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik
BAB III

PKL pembimbing lapangan akan memberikan penilaian kepada penulis


dengan kriteria sesuai dengan yang sudah disediakan dalam form penilaian
pada buku pedoman PKL.
B. Analisis dan Pembahasan Hasil Pekerjaan
Penelitian kali ini yaitu membuat aplikasi dengan memberikan
session pada aplikasi tersebut. Session ini bekerja di belakang layar
dengan fungsi session pada aplikasi ini yaitu agar dapat menyimpan data
login serta aktifitas yang dilakukan dengan aplikasinya selama satu hari.
Terdapat tiga session dalam aplikasi yang penempatannya masing-masing
berbeda layout. Fungsi session dalam tiga layout juga berbeda cara
kerjanya.

Gambar 3.1 FlowChart Session KBM Online

Dalam membuat program aplikasi, Session ini memiliki kelas


sendiri dengan bahasa pemrograman java. Kelas ini digunakan untuk
mengatur session pada aplikasi dengan menggunakan shared preferences,
setiap user yang membuka aplikasi akan di cek pertama kalinya di activity
splash screen dengan method session. Jika checklogin bernilai true, maka
user akan diarahkan secara langsung menuju activity dashboard. Update

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik
BAB III

nilai method checklogin diupdate menjadi true saat user menekan tombol
login pada login activity, dan akan bernilai false jika user menekan tombol
exit yang akan membuat method logout. Session akan dideklarasikan
secara global pada setiap activity session, kemudian mengambil konteks
yang ada pada method oncreate. Pada dashboard berisi tombol yang akan
memunculkan jika login sebagai admin, maka tombol approval akan
terlihat, jika sebagai user maka tombol approval akan menghilang.
Session yang pertama berada pada layout splash screen berfungsi
untuk pengecekan awal apakah sudah pernah login (session) pada hari ini
atau belum login. Jika sudah login pada hari ini, maka layout login akan
dilewati sehingga langsung pada dashboard. Selain itu session pada splash
screen juga untuk mengecek bahwa user login sebagai admin atau bukan
sebagai admin.
Pada session yang dibuat login tersebut memiliki fungsi kelanjutan
dari splash screen untuk yang belum login pada satu hari tersebut. Session
ini akan memastikan bahwa user apakah admin atau user biasa, jika
sebagai admin, maka session akan dibuat, begitupun jika sebagai user
maka session dibuat.

Gambar 3.2 (Kiri) Login melalui Admin (Kanan) Login melalui User

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik
BAB III

Session yang dibuat pada layout dashboard merupakan terusan dari


dua session sebelumnya. Session akan melanjutkan tindakan jika user
masuk sebagai admin, maka form approval pada aplikasi akan muncul dan
dapat digunakan untuk approval bawahannya yang akan meminjam
kendaraan. Bagi pengguna user bukan sebagai admin hanya akan
menampilkan form pemesanan peminjaman mobil tidak akan muncul form
approval. Dashboard memiliki button keluar yang memiliki fungsi jika
user keluar dari aplikasi maka session akan dihapus dan akan
menampilkan tampilan login dan melakukan login dari awal.

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik
BAB IV

BAB IV
PENUTUP

A. Kesimpulan
Kesimpulan yang dapat dipelajari dengan adanya session pada aplikasi
KBM Online versi android dalam penelitian kali ini yaitu:
1. Mengurangi penumpukan layout yang aktif di belakang layar sehingga
aplikasi dapat bekerja lebih ringan.
2. Memudahkan user untuk tidak kembali login ke dalam aplikasi pada
satu hari jika sebelumnya sudah login karena session akan menyimpan
data login sementara.
3. Dapat memverifikasi akun, sehingga aplikasi hanya bisa dibuka dalam
1 akun saja.
B. Saran
Saran untuk penelitian kali ini yaitu:
1. Bahan improvisasi kedepan baik dalam jangka panjang maupun jangka
pendek untuk perusahaan.
2. Efisiensi dalam menggunakan aplikasi tanpa harus login kembali
ketika ingin menggunakan aplikasi.

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

DAFTAR PUSTAKA

[1] M. reno Harahap, “Perkembangan Mobile Application di Era Modern,”


2014.
[2] S. Sunaryo, A. Handojo, and J. Andjarwirawan, “Pembuatan Aplikasi
Wisata Sejarah Pertempuran Surabaya 1945 Berbasis Android,”
International, vol. 1, p. 1, 2013.
[3] A. E. Utami, O. D. Nurhayati, and K. T. Martono, “Aplikasi Penerjemah
Bahasa Inggris – Indonesia dengan Optical Character Recognition Berbasis
Android,” J. Teknol. dan Sist. Komput., vol. 4, no. 1, p. 167, 2016.
[4] R. Puspitasari, “Aplikasi Pembayarana Iuran Sekolah dan Buku Lembar
Kerja Siswa pada Sekolah Menengah Atas Negeri 1 Punung,” 2013.
[5] NN, “Fungsi Session Pada Login,” 2017. .
[6] I. G. Agus and M. Putra, “Aplikasi Pembelajaran Nyayian Pupuh
Tradisional Bali Berbasis Android di Sekolah Dasar Learning Application
of the Balinese Traditional Pupuh Songs With Android Platform in
Elementary School,” vol. 1, no. 2, pp. 1051–1058, 2015.

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

LAMPIRAN

MainActivity.java
package com.example.daya.kbmonline;

import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.facebook.stetho.Stetho;

public class MainActivity extends AppCompatActivity {


private Session session;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Stetho.initializeWithDefaults(this);
session = new Session(getApplicationContext());

//main activity bertindak sebagai splashhscreen

new Handler().postDelayed(new Runnable() {


@Override
public void run() {
if (session.checkLogin().equals(false)) { //mengecek jika
session.checlogin == false maka user akan dilempar ke halaman login
Intent intent = new Intent(MainActivity.this,
LoginActivity.class);
startActivity(intent);
finish();
} else if(session.checkLogin().equals(true)){ //jika
session.checklogin == true maka user akan langsung diarahkan ke
dashboard tanpa login
Intent intent = new Intent(MainActivity.this,
DashboardActivity.class);
startActivity(intent);
finish();
}
}
}, 500);
}
}

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

Session.java
package com.example.daya.kbmonline;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;

class Session {
private static final String KEY_USERNAME = "KEY_USERNAME";
private static final String KEY_ID_USERS = "KEY_ID_USERS";
private static final String KEY_PASSWORD = "KEY_PASSWORD";

private static final String KEY_IS_USER_LOGIN = "IS_USER_LOGIN";

private final SharedPreferences session;


private final SharedPreferences.Editor editor;
private final Context context;
private static final String KEY_CHECK_ADMIN =
"KEY_CHECK_ADMIN";

//CUNSTRUCTOR
Session(Context context) {
this.context = context;
session =
PreferenceManager.getDefaultSharedPreferences(context);
editor = session.edit();
}

//method untuk membuat sesion, dengan melampirkan id, username


dan password, dan apakah yang login admin atau bukan
public void createsession(String id, String username, String
password,boolean isAdmin) {

editor.putString(KEY_USERNAME, username);
editor.putString(KEY_PASSWORD, password);
editor.putString(KEY_ID_USERS, id);
editor.putBoolean(KEY_IS_USER_LOGIN, true);
editor.putBoolean(KEY_CHECK_ADMIN, isAdmin);
editor.apply();

}
//method yang digunakan untuk mengecek apakah user session aktif atau
tidak
public Boolean checkLogin() {
boolean s = session.getBoolean(KEY_IS_USER_LOGIN, false);
return s;
}

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

public Boolean isAdmin() {


return session.getBoolean(KEY_CHECK_ADMIN, false);
}

//mendapatkan id users
public String getId_users() {
return session.getString(KEY_ID_USERS, null);
}

//menghapus semua nilai yang ada di sharedpreferences yang artinya


menjadikan session == false
public void logout() {
SharedPreferences.Editor editor = session.edit();
editor.clear();
editor.apply();
Intent i = new Intent(context, LoginActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

DashboardActivity.java
package com.example.daya.kbmonline;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;

import com.facebook.stetho.Stetho;

public class DashboardActivity extends AppCompatActivity {


private Session session; //DEKLARASI SESSION DI GLOBAL

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard);
Stetho.initializeWithDefaults(this);
session = new Session(getApplicationContext());

//store disarankan final dikarenakan diakses dari dalam kelas


final Store store = new Store(getApplicationContext());

//casting widget
final ImageButton logout, tentang, detail, pesan;
logout = findViewById(R.id.logout);
detail = findViewById(R.id.detail);
pesan = findViewById(R.id.order);
TextView txtDetail = findViewById(R.id.txt_detail);

logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
session.logout();
finish();
}
});

if (session.isAdmin()) {// yang asli = AuthAdmin.isAdmin()

detail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

Intent intent = new Intent(DashboardActivity.this,


ApprovalActivity.class);

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

startActivity(intent);
}
});
}else {
detail.setVisibility(View.GONE);
txtDetail.setVisibility(View.GONE);

pesan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
store.clearstore();
Intent intent = new Intent(DashboardActivity.this,
PesanActivity.class);
startActivity(intent);
}
});

}
}

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

LoginActivity.java
package com.example.daya.kbmonline;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Html;
import android.text.Spanned;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.facebook.stetho.Stetho;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class LoginActivity extends AppCompatActivity {


private EditText editTextEmail;
private EditText editTextPassword;
EditText editTextUsername;
TextInputLayout textInputLayoutEmail;
TextInputLayout textInputLayoutPassword;
private Button buttonLogin;

private String username;


private String password;
private Session session;
public static final String TAG = LoginActivity.class.getSimpleName();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Stetho.initializeWithDefaults(this);

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

initCreateAccountTextView();
initViews();

session = new Session(getApplicationContext());

buttonLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
username = editTextEmail.getText().toString();
password = editTextPassword.getText().toString();

if (username.equals("") || password.equals("")) {
Toast.makeText(LoginActivity.this, "username dan password
tidak boleh kosong", Toast.LENGTH_SHORT).show();
}else {
new BackgroundPesan().execute(username, password);
}
}
});
}

class BackgroundPesan extends AsyncTask<String, Void, String> {


final ProgressDialog progDailog = new
ProgressDialog(LoginActivity.this);

@Override
protected String doInBackground(String... strings) {
String username = strings[0];
String password= strings[1];

String register_url =
"http://tiktokandmusically.000webhostapp.com/kbm_online/login.php";

try {
URL url = new URL(register_url);
HttpURLConnection httpURLConnection =
(HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);

String post_data =
URLEncoder.encode("username", "UTF-8") + "=" +
URLEncoder.encode(username, "UTF-8") + "&" +
URLEncoder.encode("password", "UTF-8") + "=" +
URLEncoder.encode(password, "UTF-8");

OutputStream outputStream =
httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

OutputStreamWriter(outputStream, "UTF-8"));

bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();

InputStream inputStream =
httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new
InputStreamReader(inputStream, "iso-8859-1"));
StringBuilder result = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
result.append(line);
}
bufferedReader.close();
inputStream.close();

Log.d(TAG, "response dari file php, doInBackground: " +


httpURLConnection.getResponseMessage());
httpURLConnection.disconnect();
return result.toString();

} catch (IOException e) {
e.printStackTrace();
}
return null;
}

@Override
protected void onPreExecute() {
super.onPreExecute();
try {
progDailog.setMessage("Loading...");
progDailog.setIndeterminate(false);
progDailog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progDailog.setCancelable(false);
progDailog.show();
} catch (Exception e) {
e.printStackTrace();
}
}

@Override
protected void onPostExecute(String s) { //s akan berisi text
"login_failed jika error, dan id user yg login jika sukses
progDailog.dismiss();
if (s.equals("LOGIN_FAILED")) {
Log.d(TAG, "onPostExecute error coy dikarenakan : "+s);
} else {

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

Log.d(TAG, "onPostExecute id users yang didapat: "+s);

if (username.equals("admin") && password.equals("admin")) {


// AuthAdmin.setAdmin(true);
session.createsession(s,username,password,true);

}else {
//AuthAdmin.setAdmin(false);
session.createsession(s,username,password,false);
}

/*yang asli
session.createsession(s,username,password); //saat request login
diterima oleh webserver maka sesion dibuat
*/

//mengecek apakah yang melakukan login adalah admin atau


bukan
if (session.isAdmin()) {//yang asli = AuthAdmin.isAdmin()
Toast.makeText(LoginActivity.this, "ADMIN IS YOURS ",
Toast.LENGTH_SHORT).show();

} else if (!session.isAdmin()) { //yang asli = !AuthAdmin.isAdmin()


Toast.makeText(LoginActivity.this, "LOGIN SUCCES",
Toast.LENGTH_SHORT).show();
}

Intent i = new Intent(LoginActivity.this, DashboardActivity.class);


startActivity(i);
finish();//kill activity dan tidak menambah ke backstack
Log.d(TAG, "onPostExecute: login succes");
}
}
}

private void initCreateAccountTextView() {


TextView textViewCreateAccount =
findViewById(R.id.textViewCreateAccount);
textViewCreateAccount.setText(fromHtml("<font color='#ffffff'>I don't
have account yet. </font><font color='#0c0099'>create one</font>"));
textViewCreateAccount.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(LoginActivity.this,
RegistrasiActivity.class);
startActivity(intent);
}
});

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

//this method is used to connect XML views to its Objects


private void initViews() {
editTextEmail = findViewById(R.id.editTextEmail);
editTextPassword = findViewById(R.id.editTextPassword);
buttonLogin = findViewById(R.id.buttonLogin);
}

private static Spanned fromHtml(String html) {


Spanned result;
if (android.os.Build.VERSION.SDK_INT >=
android.os.Build.VERSION_CODES.N) {
result = Html.fromHtml(html,
Html.FROM_HTML_MODE_LEGACY);
} else {
result = Html.fromHtml(html);
}
return result;
}
}

Prodi IF – ITTelkom Purwokerto 15102108


Laporan Praktik Kerja/Kerja Praktik

Prodi IF – ITTelkom Purwokerto 15102108

Anda mungkin juga menyukai