bab 2 persiapan pengkodingan...17 gambar 2.21. android studio project ide membuat activity 1....

104
8 BAB 2 PERSIAPAN PENGKODINGAN

Upload: others

Post on 12-Dec-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

8

BAB 2

PERSIAPAN PENGKODINGAN

Page 2: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

9

Setelah kita membahas gambaran pengenalan android pada bab sebelumnya, pada bab ini kita akan membahas secara detail hal-hal yang kita perlukan dalam rangka membuat aplikasi Smart Dewan berbasis android. Sebelum kita lanjutkan kebagian pembuatan project, pastikan PC atau laptop kalian terinstall Android Studio dan aplikasi-aplikasi pendukung lainnya seperti :

1. Java, Android SDK & JDK 2. Android Emulator 3. XAMPP 4. Visual Studio Code 5. Chrome

Dan juga download asset gambar dan web server di link berikut : https://github.com/didikirawan153/Project-Smartdewan. download semua file di link tersebut, file tersebut digunakan ketika nanti sudah masuk pengkodingan.

Pembuatan Database

Berisi tentang langkah-langkah pembuatan database dan table yang dibutuhkan. Disini aplikasi yang digunakan adalah XAMPP, sesudah menginstal XAMPP nyalakanlah PHPmyadmin, lalu buka browser dan ketikkan di alamat localhost/phpmyadmin, sehingga muncul tampilan seperti berikut ini.

Pada menu “Databases”, silahkan masukkan nama “sekolahku”, kemudian klik “Create”.

Gambar 2.1. Menu Awal Pembuatan Database

Page 3: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

10

Setelah membuat database baru, akan terlihat daftar tabel yang masih kosong .

Gambar 2.2. Kolom Create Tabel

A. Tabel User

Ketika telah masuk kedalam database “sekolahku”, maka kita ketikkan nama tabel beserta jumlah field yang ada pada tabel.

Tabel “user”:

Gambar 2.3. Nama tabel

Gambar 2.4. Kolom field yang harus di isi

Jika sudah mengisi nama tabel dan jumlah field dan tipe datanya klik tombol “Go”

Page 4: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

11

Gambar 2.5. Tabel User beserta field dan tipe datanya

Lanjutkan pengerjaan database “sekolahku”, Lalu buat kembali beberapa tabel berikut ini menggunakan phpMyAdmin (lihat contoh pengerjaan pada pembuatan table user).

B. Tabel Absen

Berikut struktur yang terdapat dalam tabel “absen” untuk mengisi field yang akan digunakan:

Tabel “absen”:

Gambar 2.6. Tabel Absen beserta fieldnya

C. Tabel Bulan

Tabel “bulan”:

Gambar 2.7. Tabel Bulan beserta fieldnya

Page 5: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

12

D. Tabel Guru

Tabel“guru”:

Gambar 2.8.Tabel Guru beserta fieldnya

E. Tabel Hari

Tabel “hari”:

Gambar 2.9. Tabel Hari beserta fieldnya

F. Tabel Jadwal

Tabel “jadwal”:

Gambar 2.10. Tabel Jadwal beserta fieldnya

Page 6: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

13

G. Tabel Jam

Tabel “jam”:

Gambar 2.11. Tabel Jam beserta fieldnya

H. Tabel Kelas

Tabel “kelas”:

Gambar 2.12. Tabel Kelas beserta fieldnya

I. Tabel Pelajaran

Tabel “pelajaran”:

Gambar 2.13. Tabel Pelajaran beserta fieldnya

Page 7: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

14

J. Tabel Pengumuman

Tabel “pengumuman”:

Gambar 2.14. Tabel Pengumuman beserta fieldnya

K. Tabel Sekolah

Tabel “sekolah”:

Gambar 2.15. Tabel Sekolah beserta fieldnya

L. Tabel Siswa

Tabel “siswa”:

Gambar 2.16. Tabel Siswa beserta fieldnya

Page 8: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

15

M. Tabel Tahun

Tabel “tahun”:

Gambar 2.17. Tabel Tahun beserta fieldnya

N. Tabel Tanggal

Tabel “tanggal”:

Gambar 2.18. Tabel Tanggal beserta fieldnya

Jika semua langkah selesai tahap berikutnya membuat project

Androidnya. Atau jika tidak mau lama dalam pembuatan databasenya

silahkan import database dari file yang telah didownload, didalamnya ada

file database sekolahku.sql yang siap diimport dan digunakan diphp my

admin.

Membuat project Android

Tutorial ini menunjukkan cara membuat project Android baru dengan Android Studio dan menjelaskan beberapa file dalam project.

Membuat projek baru

1. Buka Android Studio dan pilih Start a new Android Studio

project, lalu akan muncul halaman seperti gambar 2.19. Kemudian

memilih activity, pilih saja Empty activity lalu klik next.

Page 9: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

16

Gambar 2.19. Memilih activity, pilih saja Empty activity

2. Isikan nama project pada applicationname dan settingpackagename,

save location, language, dan minimum API level seperti gambar 2.20,

kemudian klik tombol finish.

Gambar 2.20. Konfigurasi Project Awal

3. Jika sudah membuat projek baru akan muncul tampilan seperti

gambar 2.21. Dan kemudian kita akan mulai dengan membuat

activity dan mendesain tampilannya.

Page 10: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

17

Gambar 2.21. Android Studio Project IDE

Membuat Activity

1. Sebelum mendesain activity kita akan mulai dengan membuat activity

baru, pertama kita klik kanan pada folder Java kemudian klik new dan

pilih Activity lalu klik Empty Activity seperti gambar dibawah ini.

Gambar 2.22. Membuat Activity Baru

2. Kemudian muncul tampilan seperti gambar dibawah ini. Untuk activity yang pertama kita beri nama utamaActivity. Setting seperti gambar dibawah ini. Kemudian klik finish.

Page 11: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

18

Gambar 2.23. Konfigurasi Activity Baru

3. Ulangi langkah tersebut untuk membuat activity lainnya. Dimana masing-masing nama activitynya adalah sebagai berikut: about, absensi, input_address, mainjadwal, detailinfo, tampil_semua_info, payment, splash, login,main_ujian. Jika sudah selesai file activitynya seperti gambar dibawah ini.

Gambar 2.24. Hasil Pembuatan Activity

Membuat Fragment

1. Seperti halnya membuat activity untuk pembuatan fragment langkah awalnya hampir sama dengan membuat activity. Yaitu pertama kita klik kanan pada folder Java kemudian klik new dan pilih Fragment lalu klik Blank Fragment seperti gambar 2.25.

Page 12: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

19

Gambar 2.25. Pembuatan Fragment Baru

2. Kemudian muncul tampilan form baru untuk konfigurasi fragment. Untuk fragment yang pertama kita beri nama homeFragment. Jangan lupa hilangkan tanda centang pada tanda warna merah seperti gambar 2.26, kemudian klik finish.

Gambar 2.26. Konfigurasi Component Fragment Baru

3. Ulangi langkah tersebut untuk membuat fragment akun. Dimana nama fragmentnya adalah sebagai berikut: akunFragment. Jika sudah selesai file fragmentnya seperti gambar 2.27.

Page 13: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

20

Gambar 2.27. Hasil Pembuatan Fragment

Membuat ListItem

Digunakan untuk menampilkan data list untuk pemanggilan activity jadwal dan informasi. Buatlah activity baru dengan nama list_item_jadwal dan listitem_info kemudian untuk file .xml nya isikan kodingan berikut ini:

a. Listitem_jadwal.xml

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

<LinearLayout

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

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent">

<TableLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/tablelayoutid"

android:layout_marginTop="10dp">

<TableRow

android:id="@+id/rowlay"

android:padding="5dp">

<TextView

android:id="@+id/jam"

android:layout_width="100dp"

android:layout_height="wrap_content" />

<TextView

Page 14: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

21

android:id="@+id/mapel"

android:layout_width="100dp"

android:layout_height="wrap_content" />

<TextView

android:id="@+id/guru"

android:layout_width="100dp"

android:layout_height="wrap_content" />

</TableRow>

</TableLayout>

</LinearLayout>

b. List_item_info.xml

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

<LinearLayout

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

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent">

<TextView

android:id="@+id/id"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

<TextView

android:id="@+id/name"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textStyle="bold" />

</LinearLayout>

Untuk tahap selanjutnya kita melakukan penambahan library seperti ikon gambar maupun desain layout untuk activity. Dan juga pengaturan lainnya di manifest maupun library. Untuk gambar dan tema tambahan bisa kalian download file assetgambar.rar di link berikut : https://github.com/didikirawan153/Project-Smartdewan.

Page 15: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

22

Menambahkan Asset ikon dan gambar

1. Arahkan kursor dan klik kiri kebagian folder res, kemudian klik kanan difolder drawable kemudian klik new – >vector asset seperti gambar dibawah ini.

Gambar 2.28. Pembuatan folder drawable

2. Kemudian langkah selanjutnya muncul tampilan Configure Vector

Asset untuk memilih jenis ikon yang akan dipakai,lalu klik Clip Art dan akan muncul berbagai pilihan ikon. Selanjutnya silahkan pilih ikon yang akan dipakai.

Gambar 2.29. Konsfigurasi Vector Asset

Page 16: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

23

3. Berikan nama dikolom Name untuk identifikasi masing-masing ikon. Kemudian klik next dan finish. Untuk ikon-ikon yang akan kita pakai bisa diberkas yang didownload tadi. Hasilnya seperti gambar berikut.

Gambar 2.30. Hasil Pembuatan icon

4. Kemudian untuk menambahkan gambar untuk tampilan formnya bisa dicopy dari folder download tadi kemudian pastekan di folder drawable dan berikan nama pada masing-masing gambar tadi.

Gambar 2.31. Penambahangambar di folder drawable

Page 17: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

24

Gambar 2.32. Form Penamaan dalam penambahan gambar

5. Jika sudah file didrawable siap untuk digunakan.

Gambar 2.33. Daftar File di file drawable

Page 18: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

25

Menambahkan Library Baru Di Values

Values yaitu tempat untuk menyimpan file seperti colors (deklarasi warna yang akan kita gunakan), string (berisi deklarasi data berupa teks yang akan kita gunakan untuk komponen aplikasi), dan styles (berisi resource tentang tema seperti nama toolbar).

1. Untuk menambahkan deklarasi warna yang digunakan klik folder values kemudian klik dua kali di file colors.xml.

Gambar 2.34. File colors untuk penambahan deklarasi warna

2. Kemudian isikan kodingan di file colors.xml seperti berikut :

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

<resources>

<color name="colorPrimary">#00BCD4</color>

<color name="colorPrimaryDark">#03A9F4</color>

<color name="colorAccent">#68EFAD</color>

<color name="colorCheck">#ffffff</color>

<color name="colorUncheck">#B2D7D2</color>

<color name="colorNavigationIcon">#dae9f6</color>

<color name="colorNavigationText">#ffffff</color>

<color name="lightgray">#ededed</color>

<color name="deeppurple">#7c4dff</color>

<color name="yello">#ffb300</color>

<color name="green">#00bfa5</color>

<color name="darkblue">#23283a</color>

<color name="testcolorblue">#152b38</color>

<color name="pink">#fe104d</color>

<color name="black_overlay">#66000000</color>

<color name="QRCodeWhiteColor">#ffffff</color>

<color name="QRCodeBlackColor">#000000</color>

</resources>

Page 19: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

26

3. Kemudian membuat file resource baru difolder values dengan nama dimens, file ini digunakan untuk mengatur layout margin nanti. Langkah awalnya klik kanan pada folder values kemudian klik new lalu klik Values resource file.

Gambar 2.35. Pembuatan Library baru di values

4. Kemudian berikan nama file dimens di konfigurasinya

Gambar 2.36. Konsfigurasi nama file dimens

Page 20: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

27

5. Kemudian isikan kodingan di file dimens.xml seperti berikut :

<resources>

<!-- Default screen margins, per the Android Design guidelines. -->

<dimen name="activity_horizontal_margin">16dp</dimen>

<dimen name="activity_vertical_margin">16dp</dimen>

</resources>

6. Kemudian langkah berikutnya mengatur deklarasi string, klik dua kali file strings.xml kemudian isikan kodingan berikut ini :

<resources>

<string name="app_name">Kuncoro Login</string>

<string name="buku">Buku</string>

<string name="musik">Musik</string>

<string name="film">Film</string>

<string name="fragment_buku">Fragment Buku</string>

<string name="fragment_film">Fragment Film</string>

<string name="fragment_musik">Fragment Musik</string>

<string name="search">Search</string>

<string name="type_name">Type Name</string>

<!-- TODO: Remove or change this placeholder text -->

<string name="hello_blank_fragment">Hello blank

fragment</string>

<string name="title_activity_utama">utamaActivity</string>

<string name="title_home">Home</string>

<string name="title_dashboard">Dashboard</string>

<string name="title_notifications">Notifications</string>

<string name="home">Home</string>

<string name="info">Info</string>

<string name="account">Account</string>

<string name="btn_lanjutkan">Lanjutkan</string>

<string name="hint_name">Masukkan IP address/Domain</string>

<string name="err_msg_name">Form IP address/Domain tidak boleh

kosong</string>

<string name="tentang">Tentang</string>

<string name="keluar">Keluar</string>

</resources>

7. Kemudian membuat file styles baru, sama seperti membuat file

dimens untuk membuat file styles baru tinggal isikan namanya style2 kemudian isikan kodingan berikut ini :

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

<resources>

<style name="AppTheme2"

parent="Theme.AppCompat.Light.NoActionBar">

<!-- Customize your theme here. -->

<item name="colorPrimary">@color/colorPrimary</item>

<item name="colorPrimaryDark">@color/colorPrimaryDark</item>

<item

name="colorAccent">@color/cardview_dark_background</item>

Page 21: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

28

</style>

</resources>

8. Untuk file styles isikan kodingan berikut ini:

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

<resources>

<!-- Base application theme. -->

<style name="AppTheme"

parent="Theme.AppCompat.Light.DarkActionBar">

<!-- Customize your theme here. -->

<item name="colorPrimary">@color/colorPrimary</item>

<item name="colorPrimaryDark">@color/colorPrimaryDark</item>

<item name="colorAccent">@color/colorAccent</item>

</style>

</resources>

9. Sehingga di folder values kita mempunyai file-file seperti gambar

2.37

Gambar 2.37. file-file difolder values

Manifes Aplikasi

Setiap aplikasi harus memiliki file AndroidManifest.xml (bernama persis seperti ini) di direktori akar. File manifes menyediakan informasi penting tentang aplikasi ke sistem Android, yang harus dimiliki sistem agar bisa menjalankan setiap kode aplikasi.

Yang dilakukan file manifes di antaranya:

a) Menamai paket Java untuk aplikasi. Nama paket berfungsi sebagai identifier unik untuk aplikasi.

b) Menjelaskan berbagai komponen aplikasi, yang menyertakan aktivitas, layanan, penerima siaran, dan penyedia materi yang membentuk aplikasi. Juga menamai kelas yang mengimplementasikan masing-masing komponen dan menerbitkan kemampuannya, seperti pesan Intent yang dapat

Page 22: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

29

mereka tangani. Deklarasi ini menginformasikan sistem Android mengenai komponen dan kondisi yang memungkinkan peluncurannya.

c) Menentukan proses yang menjadi host komponen aplikasi.

d) Mendeklarasikan izin aplikasi yang harus dimiliki aplikasi untuk mengakses bagian yang dilindungi pada API dan berinteraksi dengan aplikasi lain. Juga mendeklarasikan izin lain yang harus dimiliki untuk berinteraksi dengan komponen aplikasi.

e) Mencantumkan daftar kelas Instrumentation yang memberikan profil dan informasi lain saat aplikasi berjalan. Deklarasi ini hanya ada di manifes saat aplikasi dibuat dan dihapus sebelum aplikasi dipublikasikan.

f) Mendeklarasikan level minimum Android API yang diperlukan aplikasi.

g) Mencantumkan daftar pustaka yang harus ditautkan aplikasi.

Menambahkan settingan dimanifest

1. Untuk menambahkan settingan di manifest klik folder manifest lalu klik dua kali file AndroidManifest.xml

Gambar 2.38. Folder manifest dalam menambah settingan

Page 23: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

30

2. Kemudian setelah itu isikan kodingan di file manifest seperti berikut

ini :

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

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

package="com.smartfix.smartdewan">

<uses-permission

android:name="android.permission.DISABLE_KEYGUARD" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission

android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission

android:name="android.permission.SYSTEM_ALERT_WINDOW" />

<application

android:name="com.smartfix.smartdewan.app.AppController"

android:allowBackup="true"

android:icon="@drawable/logo_sd"

android:label="Smart Dewan"

android:supportsRtl="true"

android:theme="@style/AppTheme">

<activity android:name=".about"></activity>

<activity

android:name="com.smartfix.smartdewan.MainActivityjadwal"

android:theme="@style/AppTheme2" />

<activity

android:name="com.smartfix.smartdewan.paymentActivity" />

<activity

android:name="com.smartfix.smartdewan.detailInfoActivity" />

<activity

android:name="com.smartfix.smartdewan.TampilSemuaInfo"></activity>

<activity

android:name="com.smartfix.smartdewan.utamaActivity"

android:theme="@style/AppTheme2" />

<activity

android:name="com.smartfix.smartdewan.LoginActivity"

android:theme="@style/AppTheme2" />

<activity

android:name="com.smartfix.smartdewan.MainActivity"

android:theme="@style/AppTheme2" />

<activity

android:name="com.smartfix.smartdewan.InputAddress"

android:theme="@style/AppTheme2" />

<activity

android:name="com.smartfix.smartdewan.SplashActivity"

android:theme="@style/AppTheme2">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category

android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity

android:name="com.smartfix.smartdewan.absensiActivity" />

<meta-data

android:name="android.s192upport.VERSION"

android:value="26.1.0" />

Page 24: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

31

<meta-data

android:name="android.arch.lifecycle.VERSION"

android:value="27.0.0-SNAPSHOT" />

<meta-data

android:name="com.android.vending.derived.apk.id"

android:value="1" />

</application>

</manifest>

Menu

Menu adalah komponen antarmuka pengguna yang lazim dalam banyak tipe aplikasi. Untuk menyediakan pengalaman pengguna yang sudah akrab dan konsisten, Kalian harus menggunakan API Menu untuk menyajikan tindakan dan opsi lain dalam aktivitas kepada pengguna.

Mulai dengan Android 3.0 (API level 11), perangkat Android tidak perlu lagi menyediakan tombol Menutersendiri. Dengan perubahan ini, aplikasi Android harus bermigrasi dari dependensi pada panel menu 6 item biasa, dan sebagai gantinya menyediakan bilah aplikasi untuk menyajikan berbagai tindakan pengguna yang lazim.

Walaupun desain dan pengalaman pengguna untuk sebagian item menu telah berubah, semantik untuk mendefinisikan serangkaian tindakan dan opsi masih berdasarkan pada Menu API. Panduan ini menampilkan cara membuat tiga tipe dasar penyajian menu atau aksi pada semua versi Android:

1. Menu opsi dan bilah aplikasi

Menu opsi adalah kumpulan item menu utama untuk suatu aktivitas. Inilah tempat Kalian harus menempatkan tindakan yang berdampak global pada aplikasi, seperti "Cari", "Tulis email", dan "Setelan".

Lihat bagian tentang Membuat Menu Opsi.

2. Menu konteks dan mode aksi kontekstual

Menu konteks adalah menu mengambang yang muncul saat pengguna mengeklik lama pada suatu elemen. Menu ini menyediakan tindakan yang memengaruhi materi atau bingkai konteks yang dipilih.

Mode aksi kontekstual menampilkan item aksi yang memengaruhi materi yang dipilih dalam bilah di bagian atas layar dan memungkinkan pengguna memilih beberapa item sekaligus..

Page 25: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

32

3. Menu munculan

Menu munculan menampilkan daftar item secara vertikal yang dipasang pada tampilan yang memanggil menu. Ini cocok untuk menyediakan kelebihan tindakan yang terkait dengan materi tertentu atau untuk menyediakan opsi bagi bagian kedua dari suatu perintah. Tindakan di menu munculan tidak boleh memengaruhi secara langsung materi yang bersangkutan—yang diperuntukkan bagi tindakan kontekstual. Melainkan, menu munculan adalah untuk tindakan tambahan yang terkait dengan region materi dalam aktivitas kalian.

Mendefinisikan Menu dalam XML

Untuk semua tipe menu, Android menyediakan sebuah format XML standar untuk mendefinisikan item menu. Sebagai ganti membangun menu dalam kode aktivitas, kalian harus mendefinisikan menu dan semua itemnya dalam sumber daya menu XML. kalian kemudian bisa memekarkan sumber daya menu (memuatnya sebagai objek Menu) dalam aktivitas atau fragmen.

Menggunakan sumber daya menu adalah praktik yang baik karena beberapa alasan:

a) Memvisualisasikan struktur menu dalam XML menjadi lebih mudah.

b) Cara ini memisahkan materi untuk menu dari kode perilaku aplikasi kalian.

c) Cara ini memungkinkan kalian membuat konfigurasi menu alternatif untuk berbagai versi platform, ukuran layar, dan konfigurasi lainnya dengan memanfaatkan kerangka kerja sumber daya aplikasi.

Untuk mendefinisikan menu, buatlah sebuah file XML dalam direktori res/menu/ proyek dan bangun menu dengan elemen-elemen berikut:

<menu>

Mendefinisikan Menu, yang merupakan sebuah kontainer untuk item menu. Elemen <menu> harus menjadi simpul akar untuk file dan bisa menampung salah satu atau beberapa dari elemen <item> dan <group>.

Page 26: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

33

<item>

Membuat MenuItem, yang mewakili satu item menu. Elemen ini bisa berisi elemen <menu> tersarang guna untuk membuat submenu.

<group>

Kontainer opsional tak terlihat untuk elemen-elemen <item>.

Kontainer ini memungkinkan kalian mengelompokkan item menu untuk berbagi properti seperti status aktif dan visibilitas. Untuk informasi selengkapnya, lihat bagian tentang Membuat Grup Menu.

Berikut ini adalah membuat menu bernama main_menujadwal.xml :

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

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

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

<item

android:id="@+id/action_search"

android:icon="@android:drawable/ic_menu_search"

android:title="@string/search"

app:actionViewClass="android.support.v7.widget.SearchView"

app:showAsAction="always" />

</menu>

Selanjutnya membuat menu bernama menu_main.xml :

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

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

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

<item

android:id="@+id/action_settings"

android:orderInCategory="100"

android:title="@string/tentang"

app:showAsAction="withText" />

<item

android:id="@+id/action_exit"

android:orderInCategory="100"

android:title="@string/keluar"

app:showAsAction="withText" />

</menu>

Selanjutnya membuat menu bernama menunavigasi.xml :

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

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

<item

android:id="@+id/home_menu"

android:title="@string/home"

android:icon="@drawable/ic_home"/>

<item

Page 27: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

34

android:id="@+id/info_menu"

android:title="@string/info"

android:icon="@drawable/ic_info"/>

<item

android:id="@+id/account_menu"

android:title="@string/account"

android:icon="@drawable/ic_account"/>

</menu>

Terakhir buatlah menu bernama navigasijadwal.xml :

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

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

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

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

<item

android:id="@+id/senin"

android:title="Senin"

/>

<item

android:id="@+id/selasa"

android:title="Selasa"

/>

<item

android:id="@+id/rabu"

android:title="Rabu"

/>

<item

android:id="@+id/kamis"

android:title="Kamis"

/>

<item

android:id="@+id/jumat"

android:title="Jumat"

/>

</menu>

Animasi

Dalam beberapa situasi, gambar harus dianimasikan di layar. Ini berguna jika kalian ingin menampilkan animasi pemuatan khusus yang terdiri dari beberapa gambar, atau jika kalian ingin satu ikon berubah menjadi yang lain setelah tindakan pengguna. Android menyediakan beberapa opsi untuk membuat animasi drawable. Opsi pertama adalah menggunakan Animasi Drawable. Ini memungkinkan kalian menentukan beberapa file statis yang dapat ditampilkan yang akan ditampilkan satu per satu untuk membuat

Page 28: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

35

animasi. Opsi kedua adalah menggunakan Animated Vector Drawable, yang memungkinkan kalian menganimasikan sifat-sifat drawable vektor.

Untuk membuat file pendukung animasi pertama klik kanan folder res kemudian klik new dan pilih New resource file seperti gambar dibawah ini

Gambar 2.39. Folder res dalam pembuatan file baru

Kemudian isikan File name dan setting seperti gambar dibawah ini. Setelah itu klik ok dan lanjutkan dengan pengkodingan.

Gambar 2.40. Settingan awal file atg

Page 29: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

36

Kemudian lakukan langkah seperti diatas, dimana masing-masing file diberi nama atg, atgroket, atgthree, atgtwo,packageimg dan isikan masing-masing file dengan sintak dibawah ini.

a. File atg.xml

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

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

android:duration="800"

android:startOffset="150"

android:interpolator="@android:anim/accelerate_interpolator"

>

<translate

android:fromYDelta="200"

android:toYDelta="0"

/>

<alpha

android:fromAlpha="0.0"

android:toAlpha="1.0"

/>

</set>

b. File atgrocket.xml

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

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

android:duration="1000"

android:startOffset="250"

android:interpolator="@android:anim/accelerate_interpolator"

>

<translate

android:fromYDelta="0"

android:toYDelta="-1000"

/>

</set>

c. File atgthree.xml

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

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

android:duration="800"

android:startOffset="800"

android:interpolator="@android:anim/accelerate_interpolator"

>

<translate

android:fromYDelta="200"

android:toYDelta="0"

/>

<alpha

android:fromAlpha="0.0"

android:toAlpha="1.0"

Page 30: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

37

/>

</set>

d. File packageimg.xml

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

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

android:duration="800"

android:startOffset="500"

android:interpolator="@android:anim/accelerate_interpolator"

>

<translate

android:fromYDelta="200"

android:toYDelta="0"

/>

<alpha

android:fromAlpha="0.0"

android:toAlpha="1.0"

/>

</set>

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

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

android:duration="800"

android:interpolator="@android:anim/bounce_interpolator"

>

<scale

android:fromYScale="0.0"

android:fromXScale="0.0"

android:toYScale="1.0"

android:toXScale="1.0"

android:pivotY="50%"

android:pivotX="50%"

/>

<alpha

android:fromAlpha="0.0"

android:toAlpha="1.0"

/>

</set>

Page 31: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

38

Menambahkan Font

1. Langkah pertama buatlah folder font untuk penyimpanan library font, dengan cara yaitu klik kanan folder res kemudian klik new dan pilih New resource file seperti gambar dibawah ini

Gambar 2.41. Pembuatan folder font

2. Kemudian export font dari folder assetgambar.rar yang sudah didowmload dengan cara copykan font ke folder font dengan hasil akhir seperti gambar dibawah ini.

Gambar 2.42. File font dalam folder font

Menambahkan java class baru

1. Untuk mendukung ke server database dan juga untuk mendukung relasi dengan file aktiviti satu dengan yang lainnya, maka kita buat file java class baru dengan nama adapter, app, model, konfigurasi, DetectConection, progressDialogModel, requestHandle.

2. Langkah pertama yaitu membuat folder baru untuk adapter, app, dan model. Untuk membuatnya klik kanan pada package kemudian klik

Page 32: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

39

new kemudian klik android resource directory seperti gambar dibawah ini dan berikan nama file foldernya adapter.

Gambar 2.43. Pembuatan Folder baru untuk adapter, app, dan model

3. Kemudian buatlah class baru difolder adapter dengan nama class adapter.java

Gambar 2.44. Pembuatan java class baru di adapter

Page 33: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

40

Gambar 2.45. Memberikan nama file java class

4. Kemudian masukan sintak pada file java class adapter dengan kodingan dibawah ini :

package com.smartfix.smartdewan.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.smartfix.smartdewan.R;

import com.smartfix.smartdewan.model.DataModel;

import java.util.List;

public class Adapter extends BaseAdapter {

private Activity activity;

private LayoutInflater inflater;

private List<DataModel>item;

public Adapter(Activity activity, List<DataModel> item) {

this.activity = activity;

this.item = item;

}

@Override

public int getCount() {

return item.size();

}

@Override

public Object getItem(int location) {

Page 34: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

41

return item.get(location);

}

@Override

public long getItemId(int position) {

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)

convertView = inflater.inflate(R.layout.list_item,

null);

TextView txt_nama = (TextView)

convertView.findViewById(R.id.mapel);

TextView txt_guru = (TextView)

convertView.findViewById(R.id.guru);

TextView txt_jam = (TextView)

convertView.findViewById(R.id.jam);

txt_nama.setText(item.get(position).getNama());

txt_guru.setText(item.get(position).getGuru());

txt_jam.setText(item.get(position).getId());

return convertView;

}

}

5. Kemudian buatlah file java class untuk yang lainnya dengan langkah-langkah seperti diatas. Dengan masing-masing sintak sebagai berikut :

a. File AppController.java

package com.smartfix.smartdewan.app;

import android.app.Application;

import android.text.TextUtils;

import com.android.volley.Request;

import com.android.volley.RequestQueue;

import com.android.volley.toolbox.Volley;

public class AppController extends Application {

public static final String TAG =

AppController.class.getSimpleName();

private RequestQueue mRequestQueue;

private static AppController mInstance;

@Override

Page 35: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

42

public void onCreate() {

super.onCreate();

mInstance = this;

}

public static synchronized AppController getInstance() {

return mInstance;

}

public RequestQueue getRequestQueue() {

if (mRequestQueue == null) {

mRequestQueue = Volley.newRequestQueue(getApplicationContext());

}

return mRequestQueue;

}

public <T>void addToRequestQueue(Request<T> req, String tag) {

req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);

getRequestQueue().add(req);

}

public <T>void addToRequestQueue(Request<T> req) {

req.setTag(TAG);

getRequestQueue().add(req);

}

public void cancelPendingRequests(Object tag) {

if (mRequestQueue != null) {

mRequestQueue.cancelAll(tag);

}

}

}

b. File konfigurasi.java

package com.smartfix.smartdewan;

public class konfigurasi {

//Dibawah ini merupakan Pengalamatan dimana Lokasi Skrip CRUD

PHP disimpan

//Pada tutorial Kali ini, karena kita membuat localhost maka

alamatnya tertuju ke IP komputer

//dimana File PHP tersebut berada

//PENTING! JANGAN LUPA GANTI IP SESUAI DENGAN IP KOMPUTER DIMANA

DATA PHP BERADA

public static final String URL =

"http://192.168.100.36/SmartDewan/ServerLink/";

public static final String URL_GET_ALL =

"http://192.168.100.36/SmartDewan/ServerLink/view_info/tampilSemuaIn

fo.php";

public static final String URL_GET_EMP =

"http://192.168.100.36/SmartDewan/ServerLink/view_info/tampilDetailI

nfo.php?id=";

public static final String url_data =

"http://192.168.100.36/SmartDewan/ServerLink/data.php";

public static final String url_cari =

Page 36: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

43

"http://192.168.100.36/SmartDewan/ServerLink/cari_data.php";

//JSON Tags

public static final String TAG_JSON_ARRAY="result";

public static final String TAG_DIMULAI= "dimulai";

public static final String TAG_ID = "id";

public static final String TAG_NAMA = "name";

public static final String TAG_DESKRIPSI = "desk";

public static final String TAG_SELESAI = "selesai";

//ID pengumuman

public static final String EMP_ID = "emp_id";

}

c. File RequestHandler.java

package com.smartfix.smartdewan;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.io.UnsupportedEncodingException;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

import java.util.HashMap;

import java.util.Map;

import javax.net.ssl.HttpsURLConnection;

public class RequestHandler {

//Metode Untuk mengirim httpPostRequest

//Metode ini mengambil 2 Argumen

//Metode Pertama adalah URL dari Skrip yang digunakan untuk

mengirimkan permintaan

//Yang lainnya adalah HashMap dengan nilai pasangan nama yang

berisi data yang akan dikirim dengan permintaan

public String sendPostRequest(String requestURL,

HashMap<String, String>

postDataParams) {

//Membuat URL

URL url;

//Objek StringBuilder untuk menyimpan pesan diambil dari

server

StringBuilder sb = new StringBuilder();

try {

//Inisialisasi URL

url = new URL(requestURL);

//Membuat Koneksi HttpURLConnection

HttpURLConnection conn = (HttpURLConnection)

url.openConnection();

//Konfigurasi koneksi

conn.setReadTimeout(15000);

Page 37: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

44

conn.setConnectTimeout(15000);

conn.setRequestMethod("POST");

conn.setDoInput(true);

conn.setDoOutput(true);

//Membuat Keluaran Stream

OutputStream os = conn.getOutputStream();

//Menulis Parameter Untuk Permintaan

//Kita menggunakan metode getPostDataString yang

didefinisikan di bawah ini

BufferedWriter writer = new BufferedWriter(

new OutputStreamWriter(os, "UTF-8"));

writer.write(getPostDataString(postDataParams));

writer.flush();

writer.close();

os.close();

int responseCode = conn.getResponseCode();

if (responseCode == HttpsURLConnection.HTTP_OK) {

BufferedReader br = new BufferedReader(new

InputStreamReader(conn.getInputStream()));

sb = new StringBuilder();

String response;

//Reading server response

while ((response = br.readLine()) != null){

sb.append(response);

}

}

} catch (Exception e) {

e.printStackTrace();

}

return sb.toString();

}

public String sendGetRequest(String requestURL){

StringBuilder sb =new StringBuilder();

try {

URL url = new URL(requestURL);

HttpURLConnection con = (HttpURLConnection)

url.openConnection();

BufferedReader bufferedReader = new BufferedReader(new

InputStreamReader(con.getInputStream()));

String s;

while((s=bufferedReader.readLine())!=null){

sb.append(s+"\n");

}

}catch(Exception e){

}

return sb.toString();

}

public String sendGetRequestParam(String requestURL, String id){

StringBuilder sb =new StringBuilder();

try {

URL url = new URL(requestURL+id);

HttpURLConnection con = (HttpURLConnection)

url.openConnection();

Page 38: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

45

BufferedReader bufferedReader = new BufferedReader(new

InputStreamReader(con.getInputStream()));

String s;

while((s=bufferedReader.readLine())!=null){

sb.append(s+"\n");

}

}catch(Exception e){

}

return sb.toString();

}

private String getPostDataString(HashMap<String, String> params)

throws UnsupportedEncodingException {

StringBuilder result = new StringBuilder();

boolean first = true;

for (Map.Entry<String, String> entry : params.entrySet()) {

if (first)

first = false;

else

result.append("&");

result.append(URLEncoder.encode(entry.getKey(), "UTF-

8"));

result.append("=");

result.append(URLEncoder.encode(entry.getValue(), "UTF-

8"));

}

return result.toString();

}

}

d. File DataModel.java

package com.smartfix.smartdewan.model;

public class DataModel {

private String id, nama, guru;

public DataModel() {

}

public DataModel(String id, String nama, String guru) {

this.id = id;

this.nama = nama;

this.nama = guru;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getNama() {

Page 39: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

46

return nama;

}

public void setNama(String nama) {

this.nama = nama;

}

public String getGuru() {

return guru;

}

public void setGuru(String guru) {

this.guru = guru;

}

}

e. File ProgressDialogModel.java

package com.smartfix.smartdewan;

import android.app.ProgressDialog;

import android.content.Context;

public class progressDialogModel {

static ProgressDialog progressDialog;

public static void pdMenyiapkanDataLogin(Context context){

progressDialog=new ProgressDialog(context,

R.style.AppCompatAlertDialogStyle);

progressDialog.setMessage("Menyiapkan Data....");

progressDialog.setTitle("Silahkan Tunggu");

progressDialog.show();

}

public static void hideProgressDialog(){

if (progressDialog != null) {

progressDialog.dismiss();

progressDialog = null;

}

}

}

Page 40: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

47

6. Kemudian untuk file akhirnya seperti gambar berikut ini :

Gambar 2.46. Hasil dari Penambahan Java class yang dibuat

Page 41: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

48

Pengaturan Layout XML

Layout mendefinisikan struktur visual untuk antarmuka pengguna, seperti UI sebuah aktivitas atau widget aplikasi. Kalian dapat mendeklarasikan layout dengan dua cara:

1. Deklarasikan elemen UI dalam XML. Android menyediakan sebuah kosakata XML sederhana yang sesuai dengan kelas dan subkelas View, seperti halnya untuk widget dan layout.

2. Buat instance elemen layout saat waktu proses. Aplikasi Kalian bisa membuat objek View dan ViewGroup (dan memanipulasi propertinya) lewat program.

Kerangka kerja Android memberi Kalian fleksibilitas untuk menggunakan salah satu atau kedua metode ini guna mendeklarasikan dan mengelola UI aplikasi Kalian. Misalnya, Kalian bisa mendeklarasikan layout default aplikasi Kalian dalam XML, termasuk elemen-elemen layar yang akan muncul di dalamnya dan di propertinya. Kalian nanti bisa menambahkan kode dalam aplikasi yang akan memodifikasi status objek layar, termasuk yang dideklarasikan dalam XML, saat waktu proses.

Untuk desain layout activity dan fragment kita menggunakan kodingan .xml buka masing-masing file difolder layout kemudian masukan kodingan pada file tersebut. Dimana masing masing sintak untuk disain layoutnya seperti berikut ini :

1. Activity_absensi.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"

android:background="@drawable/bg_bulan"

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

<View

android:id="@+id/view2"

android:layout_width="match_parent"

android:layout_height="170dp"

android:background="@drawable/i_bulan"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="1.0"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

Page 42: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

49

<TextView

android:visibility="gone"

android:id="@+id/txt_tanggal"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_marginTop="5dp"

android:layout_marginBottom="5dp"

android:text="tanggal"

android:textColor="#FFFFFF"

android:textSize="18dip"

android:textStyle="bold" />

<TextView

android:visibility="gone"

android:id="@+id/txt_nis"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_marginTop="30dip"

android:text="nis"

android:textColor="#FFFFFF"

android:textSize="16dip"

android:textStyle="bold" />

<ScrollView

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_centerHorizontal="true"

android:orientation="vertical">

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_marginBottom="46dp"

android:orientation="vertical">

<ImageView

android:id="@+id/btabseni"

android:layout_width="75dp"

android:layout_height="150dp"

android:layout_below="@+id/view2"

android:layout_gravity="center_horizontal"

android:layout_marginTop="400dp"

android:src="@drawable/icon_rocket"

app:layout_constraintTop_toBottomOf="@+id/view2" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tekan Roket Untuk Kehadiran."

android:textStyle="bold"

android:textSize="15dp"

android:textColor="#FFF"

android:layout_gravity="center_horizontal"/>

</LinearLayout>

</ScrollView>

Page 43: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

50

</RelativeLayout>

Gambar 2.47. Hasil Desain Layout activity_absensi.xml

2. activity_input_address.xml

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

<android.support.design.widget.CoordinatorLayout

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

android:layout_width="match_parent"

android:layout_height="match_parent">

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@drawable/main1"

android:paddingLeft="20dp"

android:paddingRight="20dp"

android:orientation="vertical">

<android.support.design.widget.TextInputLayout

android:id="@+id/input_layout_address"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textColor="@color/zxing_custom_viewfinder_laser"

android:layout_alignParentBottom="true"

android:layout_marginBottom="400px">

<EditText

android:id="@+id/input_address"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="@string/hint_name"

android:maxLines="1"

android:singleLine="true"

android:textColor="@color/zxing_custom_viewfinder_laser"

/>

Page 44: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

51

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

<Button

android:id="@+id/btn_lanjut"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_marginBottom="200px"

android:background="@color/zxing_custom_viewfinder_laser"

android:text="@string/btn_lanjutkan"

android:textColor="@android:color/white" />

</RelativeLayout>

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

Gambar 2.48. Hasil Desain Layout activity_input_address.xml

3. activity_main_ujian.xml

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

<android.support.design.widget.CoordinatorLayout

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

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

android:layout_width="match_parent"

android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout

android:id="@+id/tab_appbar_layout"

android:layout_width="match_parent"

android:layout_height="wrap_content"

app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

<android.support.v7.widget.Toolbar

android:id="@+id/toolbar"

android:layout_width="match_parent"

Page 45: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

52

android:layout_height="?attr/actionBarSize"

android:background="@color/colorPrimary"

app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"

app:popupTheme="@style/Theme.AppCompat.Light"/>

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

<android.support.v4.widget.SwipeRefreshLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

app:layout_behavior="@string/appbar_scrolling_view_behavior"

android:id="@+id/swipe_refresh_layout">

<WebView

android:id="@+id/activity_main_webview"

android:layout_width="match_parent"

android:layout_height="match_parent"

app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

</android.support.v4.widget.SwipeRefreshLayout>

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

Gambar 2.49. Hasil Desain Layout activity_main_ujian.xml

4. activity_mainjadwal.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"

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

android:id="@+id/swipe_refresh"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.smartfix.smartdewan.MainActivityjadwal">

Page 46: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

53

<android.support.design.widget.BottomNavigationView

android:id="@+id/bn_mainjadwal"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:background="@color/colorPrimary"

app:itemTextColor="@drawable/statebnve"

app:menu="@menu/navigasijadwal" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/txtkelas" />

<LinearLayout

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

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

android:layout_width="match_parent"

android:orientation="vertical"

android:layout_height="match_parent" android:paddingLeft="16dp"

android:paddingRight="16dp"

android:paddingTop="16dp"

android:paddingBottom="16dp"

>

<TextView

android:id="@+id/TextView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_marginBottom="5dp"

android:layout_marginTop="45dp"

android:text="INFO JADWAL PELAJARAN"

android:textSize="18dip"

android:textStyle="bold" />

<TableLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/tablelayoutid"

android:layout_marginTop="10dp">

<TableRow

android:id="@+id/rowlay"

android:background="@android:color/holo_blue_light"

android:padding="5dp">

<TextView

android:layout_width="100dp"

android:layout_height="wrap_content"

android:text="Jam Ke" />

<TextView

android:layout_width="100dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:text="Nama Mapel" />

Page 47: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

54

<TextView

android:layout_width="100dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:text="Nama Guru" />

</TableRow>

</TableLayout>

<ListView

android:id="@+id/list_view"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:divider="@null" />

<TextView

android:id="@+id/txt_id"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textStyle="bold"

android:textColor="@color/cardview_light_background"

android:layout_marginTop="10dp"

/>

</LinearLayout>

</RelativeLayout>

Gambar 2.50. Hasil Desain Layout activity_mainjadwal.xml

5. activity_payment.xml

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

<RelativeLayout

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

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

Page 48: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

55

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

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:layout_gravity="center"

tools:context="com.smartfix.smartdewan.paymentActivity">

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@drawable/gradient">

<LinearLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:gravity="center">

<TextView

android:id="@+id/textview"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center"

android:text="123456" />

<ImageView

android:id="@+id/imageView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center"

android:layout_marginTop="10dp"/>

<TextView

android:id="@+id/TextView2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tunjukan pada kasir untuk melakukan pembayaran"

android:textStyle="bold"

android:layout_marginTop="10dp"/>

<TextView

android:id="@+id/textView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Smart Dewan V.0.1"

android:textStyle="bold"

android:layout_marginTop="30dp"/>

</LinearLayout>

</RelativeLayout>

</RelativeLayout>

Page 49: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

56

Gambar 2.51. Hasil Desain Layout activity_payment.xml

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

<RelativeLayout

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

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

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

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".SplashActivity">

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@drawable/splash"

android:paddingLeft="20dp"

android:paddingRight="20dp"

android:orientation="vertical">

<ImageView

android:id="@+id/splashscreen"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:layout_centerHorizontal="true" />

</RelativeLayout>

</RelativeLayout>

Page 50: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

57

Gambar 2.52. Hasil Desain Layout activity_splash.xml

7. activity_tampil_semua_info.xml <LinearLayout

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

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

android:layout_width="match_parent"

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

android:orientation="vertical"

android:layout_height="match_parent"

android:paddingLeft="16dp"

android:paddingRight="16dp"

android:paddingTop="16dp"

android:paddingBottom="16dp"

tools:context="com.smartfix.smartdewan.TampilSemuaInfo">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="18dip"

android:textStyle="bold"

android:text="Info Terbaru"

android:layout_gravity="center_horizontal"/>

<ListView

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/listView" />

</LinearLayout>

Page 51: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

58

Gambar 2.53. Hasil Desain Layout activity_tampil_semua_info.xml

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

<RelativeLayout

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

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

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

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.smartfix.smartdewan.utama">

<ScrollView

android:layout_width="match_parent"

android:layout_height="wrap_content"

app:layout_behavior="@string/appbar_scrolling_view_behavior" >

<FrameLayout

android:id="@+id/fl_container"

android:layout_width="match_parent"

android:layout_height="wrap_content"

/>

</ScrollView>

<android.support.design.widget.BottomNavigationView

android:id="@+id/bn_main"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

Page 52: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

59

android:background="@color/colorPrimary"

app:itemIconTint="@drawable/statebnve"

app:itemTextColor="@drawable/statebnve"

app:menu="@menu/menunavigasi" />

</RelativeLayout>

Gambar 2.54. Hasil Desain Layout activity_utama.xml

9. fragment_akun.xml <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="800dp"

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

tools:context="com.smartfix.smartdewan.akunFragment">

<!-- TODO: Update blank fragment layout -->

<android.support.v7.widget.CardView

android:layout_width="match_parent"

android:layout_height="150dp"

android:layout_alignParentTop="true"

android:layout_marginStart="10dp"

android:layout_marginTop="23dp"

android:layout_marginEnd="10dp"

android:clickable="true"

android:foreground="?android:attr/selectableItemBackground">

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

Page 53: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

60

android:orientation="vertical">

<ImageView

android:layout_width="64dp"

android:layout_height="64dp"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="11dp"

android:layout_marginBottom="23dp"

android:background="@drawable/cerclebackgroundbiru"

android:padding="10dp"

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

<TextView

android:id="@+id/nama"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="99dp"

android:layout_marginTop="10dp"

android:layout_marginBottom="73dp"

android:text="Nama"

android:textStyle="bold" />

<TextView

android:id="@+id/nis"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentStart="true"

android:layout_alignParentTop="true"

android:layout_marginStart="94dp"

android:layout_marginTop="76dp"

android:gravity="center"

android:padding="5dp"

android:text="NIS"

android:textColor="@android:color/darker_gray" />

<TextView

android:id="@+id/kelas"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="94dp"

android:layout_marginBottom="20dp"

android:gravity="center"

android:padding="5dp"

android:text="Kelas"

android:textColor="@android:color/darker_gray" />

<View

android:layout_width="match_parent"

android:layout_height="1dp"

android:layout_alignParentBottom="true"

android:layout_marginEnd="0dp"

android:layout_marginBottom="109dp"

android:background="@color/lightgray" />

<TextView

android:layout_width="wrap_content"

Page 54: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

61

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:layout_marginBottom="121dp"

android:gravity="center"

android:padding="5dp"

android:text="SMK DEWANTARA 2 CIKARANG"

android:textColor="@android:color/darker_gray" />

</RelativeLayout>

</android.support.v7.widget.CardView>

<android.support.v7.widget.CardView

android:layout_width="match_parent"

android:layout_height="200dp"

android:layout_alignParentTop="true"

android:layout_marginStart="10dp"

android:layout_marginTop="185dp"

android:layout_marginEnd="10dp"

android:clickable="true"

android:foreground="?android:attr/selectableItemBackground">

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<ImageView

android:layout_width="24dp"

android:layout_height="24dp"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="14dp"

android:layout_marginBottom="166dp"

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

<ImageView

android:layout_width="24dp"

android:layout_height="24dp"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="14dp"

android:layout_marginBottom="116dp"

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

<ImageView

android:layout_width="24dp"

android:layout_height="24dp"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="14dp"

android:layout_marginBottom="66dp"

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

<ImageView

android:layout_width="24dp"

android:layout_height="24dp"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="14dp"

android:layout_marginBottom="16dp"

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

<TextView

Page 55: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

62

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="51dp"

android:layout_marginBottom="163dp"

android:padding="5dp"

android:text="Tempat Lahir"

android:textColor="@android:color/darker_gray" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="51dp"

android:layout_marginBottom="113dp"

android:padding="5dp"

android:text="Tanggal Lahir"

android:textColor="@android:color/darker_gray" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="51dp"

android:layout_marginBottom="63dp"

android:padding="5dp"

android:text="Jenis Kelamin"

android:textColor="@android:color/darker_gray" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="51dp"

android:layout_marginBottom="13dp"

android:padding="5dp"

android:text="Agama"

android:textColor="@android:color/darker_gray" />

<TextView

android:id="@+id/tpt_lhr"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentEnd="true"

android:layout_alignParentBottom="true"

android:layout_marginEnd="14dp"

android:layout_marginBottom="163dp"

android:padding="5dp"

android:text="Tempat Lahir"

android:textColor="@android:color/darker_gray" />

<TextView

android:id="@+id/tgl_lhr"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentEnd="true"

android:layout_alignParentBottom="true"

android:layout_marginEnd="14dp"

android:layout_marginBottom="113dp"

android:padding="5dp"

Page 56: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

63

android:text="Tanggal Lahir"

android:textColor="@android:color/darker_gray" />

<TextView

android:id="@+id/jkelamin"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentEnd="true"

android:layout_alignParentBottom="true"

android:layout_marginEnd="14dp"

android:layout_marginBottom="63dp"

android:padding="5dp"

android:text="Jenis Kelamin"

android:textColor="@android:color/darker_gray" />

<TextView

android:id="@+id/agama"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentEnd="true"

android:layout_alignParentBottom="true"

android:layout_marginEnd="14dp"

android:layout_marginBottom="13dp"

android:padding="5dp"

android:text="Agama"

android:textColor="@android:color/darker_gray" />

</RelativeLayout>

</android.support.v7.widget.CardView>

<android.support.v7.widget.CardView

android:layout_width="match_parent"

android:layout_height="200dp"

android:layout_alignParentTop="true"

android:layout_marginStart="10dp"

android:layout_marginTop="405dp"

android:layout_marginEnd="10dp"

android:clickable="true"

android:foreground="?android:attr/selectableItemBackground">

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<ImageView

android:layout_width="24dp"

android:layout_height="24dp"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="14dp"

android:layout_marginBottom="166dp"

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

<ImageView

android:layout_width="24dp"

android:layout_height="24dp"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="14dp"

Page 57: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

64

android:layout_marginBottom="116dp"

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

<ImageView

android:layout_width="24dp"

android:layout_height="24dp"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="14dp"

android:layout_marginBottom="66dp"

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

<ImageView

android:layout_width="24dp"

android:layout_height="24dp"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="14dp"

android:layout_marginBottom="16dp"

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

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="51dp"

android:layout_marginBottom="163dp"

android:padding="5dp"

android:text="Alamat"

android:textColor="@android:color/darker_gray" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="51dp"

android:layout_marginBottom="113dp"

android:padding="5dp"

android:text="No Handphone"

android:textColor="@android:color/darker_gray" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="51dp"

android:layout_marginBottom="63dp"

android:padding="5dp"

android:text="Nama Ayah"

android:textColor="@android:color/darker_gray" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentStart="true"

android:layout_alignParentBottom="true"

android:layout_marginStart="51dp"

android:layout_marginBottom="13dp"

Page 58: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

65

android:padding="5dp"

android:text="Nama Ibu"

android:textColor="@android:color/darker_gray" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentEnd="true"

android:layout_alignParentBottom="true"

android:layout_marginEnd="14dp"

android:layout_marginBottom="163dp"

android:padding="5dp"

android:text="alamat"

android:id="@+id/alamat"

android:textColor="@android:color/darker_gray" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentEnd="true"

android:layout_alignParentBottom="true"

android:layout_marginEnd="14dp"

android:layout_marginBottom="113dp"

android:padding="5dp"

android:text="no_hp"

android:id="@+id/no_hp"

android:textColor="@android:color/darker_gray" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentEnd="true"

android:layout_alignParentBottom="true"

android:layout_marginEnd="14dp"

android:layout_marginBottom="63dp"

android:padding="5dp"

android:text="nama_ayah"

android:id="@+id/nm_ayah"

android:textColor="@android:color/darker_gray" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentEnd="true"

android:layout_alignParentBottom="true"

android:layout_marginEnd="14dp"

android:layout_marginBottom="13dp"

android:padding="5dp"

android:text="nama_ibu"

android:id="@+id/nm_ibu"

android:textColor="@android:color/darker_gray" />

</RelativeLayout>

</android.support.v7.widget.CardView>

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_marginStart="10dp"

android:layout_marginTop="625dp"

Page 59: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

66

android:layout_marginEnd="10dp"

android:clickable="true"

android:foreground="?android:attr/selectableItemBackground">

<Button

android:id="@+id/buttonlgt"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:textColor="#FFF"

android:background="@drawable/bgbtnguide"

android:text="Logout" />

</RelativeLayout>

</RelativeLayout>

Gambar 2.55. Hasil Desain Layout fragment_akun.xml

10. fragment_home.xml <android.support.constraint.ConstraintLayout

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

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

android:layout_width="match_parent"

android:layout_height="700dp"

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

tools:context="com.smartfix.smartdewan.homeutama">

<!-- TODO: Update blank fragment layout -->

Page 60: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

67

<View

android:layout_width="match_parent"

android:layout_height="230dp"

android:background="@drawable/bgheader2"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="1.0"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

<LinearLayout

android:id="@+id/linearLayout2"

android:layout_width="match_parent"

android:layout_height="182dp"

android:layout_marginStart="16dp"

android:layout_marginTop="112dp"

android:layout_marginEnd="16dp"

android:background="@drawable/bgmenus"

android:orientation="vertical"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.0"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent">

<TextView

android:id="@+id/mainmenus"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginStart="16dp"

android:layout_marginTop="16dp"

android:layout_marginBottom="12dp"

android:fontFamily="@font/mr"

android:text="Menu Utama"

android:textColor="#818181"

android:textSize="16sp" />

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:weightSum="4">

<LinearLayout

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center"

android:orientation="vertical">

<ImageButton

android:id="@+id/absensi"

android:layout_width="64dp"

android:layout_height="64dp"

android:layout_marginBottom="8dp"

android:background="@drawable/cerclebackgroundkuning"

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

<TextView

android:id="@+id/review"

Page 61: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

68

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:fontFamily="@font/mm"

android:text="Absensi"

android:textColor="#172646"

android:textSize="16sp" />

</LinearLayout>

<LinearLayout

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center"

android:orientation="vertical">

<ImageButton

android:id="@+id/jadwalfix"

android:layout_width="64dp"

android:layout_height="64dp"

android:layout_marginBottom="8dp"

android:background="@drawable/cerclebackgroundbiru"

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

<TextView

android:id="@+id/network"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:fontFamily="@font/mm"

android:text="Jadwal"

android:textColor="#172646"

android:textSize="16sp" />

</LinearLayout>

<LinearLayout

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center"

android:orientation="vertical">

<ImageButton

android:id="@+id/ujian"

android:layout_width="64dp"

android:layout_height="64dp"

android:layout_marginBottom="8dp"

android:background="@drawable/cerclebackgroundkuning"

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

<TextView

android:id="@+id/plugins"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:fontFamily="@font/mm"

android:text="Ujian"

android:textColor="#172646"

android:textSize="16sp" />

</LinearLayout>

Page 62: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

69

<LinearLayout

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:gravity="center"

android:orientation="vertical">

<ImageButton

android:id="@+id/bayar"

android:layout_width="64dp"

android:layout_height="64dp"

android:layout_marginBottom="8dp"

android:background="@drawable/cerclebackgroundbiru"

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

<TextView

android:id="@+id/myapps"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:fontFamily="@font/mm"

android:text="Payment"

android:textColor="#172646"

android:textSize="16sp" />

</LinearLayout>

</LinearLayout>

<TextView

android:id="@+id/tukar"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#FFF"/>

<TextView

android:id="@+id/txtkelas"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#FFF"/>

</LinearLayout>

<ImageView

android:id="@+id/imageView3"

android:layout_width="154dp"

android:layout_height="154dp"

android:layout_marginEnd="8dp"

android:layout_marginStart="8dp"

android:layout_marginTop="12dp"

android:src="@drawable/icon_menu"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.497"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/linearLayout2" />

<TextView

android:id="@+id/pagetitle"

Page 63: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

70

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginEnd="8dp"

android:layout_marginStart="8dp"

android:layout_marginTop="12dp"

android:text="Smart Dewan"

android:fontFamily="@font/mm"

android:textColor="#172646"

android:textSize="22sp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintHorizontal_bias="0.498"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/imageView3" />

<TextView

android:id="@+id/pagesubtitle"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginEnd="8dp"

android:layout_marginStart="8dp"

android:fontFamily="@font/ml"

android:layout_marginTop="8dp"

android:text="We give easly \nfor attendance."

android:textAlignment="center"

android:textColor="#A1A1A1"

android:textSize="16sp"

android:lineSpacingExtra="6dp"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/pagetitle" />

<Button

android:id="@+id/btnguide"

android:layout_width="194dp"

android:layout_height="wrap_content"

android:layout_marginEnd="8dp"

android:layout_marginStart="8dp"

android:layout_marginTop="16dp"

android:textSize="20sp"

android:textColor="#FFF"

android:fontFamily="@font/mm"

android:text="About Me"

android:textAllCaps="false"

android:background="@drawable/bgbtnguide"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toBottomOf="@+id/pagesubtitle" />

</android.support.constraint.ConstraintLayout>

Page 64: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

71

Gambar 2.56. Hasil Desain Layout fragment_home.xml

11. Activity_detail_info.xml

<LinearLayout

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

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

android:layout_width="match_parent"

android:orientation="vertical"

android:layout_height="match_parent" android:paddingLeft="16dp"

android:paddingRight="16dp"

android:paddingTop="16dp"

android:paddingBottom="16dp" tools:context=".MainActivity">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Judul Pengumuman" />

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/editTextJudul" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Isi Pengumuman" />

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/editTextDeskripsi" />

<TextView

android:layout_width="wrap_content"

Page 65: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

72

android:layout_height="wrap_content"

android:text="Berlaku Mulai" />

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/editTextDimulai" />

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Selesai" />

<EditText

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/editTextSelesai" />

</LinearLayout>

Gambar 2.57. Hasil Desain Layout activity_detail_info.xml

12. Activity_login.xml

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

<RelativeLayout

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

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

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

android:layout_width="match_parent"

android:layout_height="match_parent"

>

Page 66: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

73

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_centerHorizontal="true"

android:orientation="vertical"

android:background="@drawable/bg_about">

<LinearLayout

android:id="@+id/loginlayout"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_centerVertical="true"

android:orientation="vertical">

<ImageView

android:id="@+id/imageView2"

android:layout_centerHorizontal="true"

android:layout_width="100dp"

android:layout_height="100dp"

android:layout_above="@+id/txt_username"

android:layout_marginBottom="20dp"

app:srcCompat="@drawable/logo_sd_t"

android:layout_gravity="center_horizontal"/>

<TextView

android:id="@+id/textView2"

android:layout_above="@+id/txt_username"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:text="Welcome To Smart Dewan"

android:textColor="#FFFFFF"

android:textSize="25sp"

android:textStyle="bold"

android:layout_gravity="center_horizontal"/>

<TextView

android:id="@+id/textView3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_above="@+id/txt_username"

android:layout_gravity="center_horizontal"

android:layout_marginBottom="45dp"

android:text="your place for login"

android:textColor="#FFFFFF"

android:textSize="19sp" />

<EditText

android:id="@+id/txt_username"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_margin="10dp"

android:hint="Username"

android:inputType="textEmailAddress"

android:singleLine="true" />

<EditText

android:id="@+id/txt_password"

Page 67: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

74

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_margin="10dp"

android:hint="Password"

android:password="true"

android:singleLine="true" />

<Button

android:id="@+id/btn_login"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:layout_marginBottom="20dp"

android:background="#00555555"

android:text="Login"

android:textColor="#fff"

android:textStyle="bold" />

</LinearLayout>

</RelativeLayout>

</RelativeLayout>

Gambar 2.58. Hasil Desain Layout Activity_login.xml

13. activity_about.xml

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

<android.support.constraint.ConstraintLayout

Page 68: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

75

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

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

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

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.smartfix.smartdewan.aboutActivity">

<ImageView

android:layout_width="match_parent"

android:layout_height="match_parent"

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

</android.support.constraint.ConstraintLayout>

Gambar 2.59. Hasil Desain Layout activity_about.xml

Page 69: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

76

Pengkodingan dengan sintak java

Ketika kalian membuat sebuah activity, Android Studio otomatis akan membuat beberapa baris kode pada file XML dan file Java. File java di Android Studio secara default di namakan dengan MainActivity.java.

Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform sistem operasi. Perkembangan Java tidak hanya terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai sistem operasi dan bersifat open source.

Untuk mengintregasikan antara layout dengan server ataupun antar activity lainnya disini menggunakan pengkodingan java. Buka masing-masing file java kemudian isikan masing-masing sintaknya seperti berikut ini:

1. File absensiActivity.java

package com.smartfix.smartdewan;

import android.annotation.SuppressLint;

import android.app.ProgressDialog;

import android.content.Context;

import android.content.Intent;

import android.net.ConnectivityManager;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.view.animation.Animation;

import android.view.animation.AnimationUtils;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

import com.android.volley.Request;

import com.android.volley.Response;

import com.android.volley.VolleyError;

import com.android.volley.toolbox.StringRequest;

import com.smartfix.smartdewan.app.AppController;

import org.json.JSONException;

import org.json.JSONObject;

import java.util.Calendar;

import java.util.HashMap;

import java.util.Map;

public class absensiActivity extends AppCompatActivity {

ProgressDialog pDialog;

Page 70: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

77

TextView txt_tanggal, txt_nis;

Intent intent;

ImageView btabsen;

int success,hari, tahun, bulan;

ConnectivityManager conMgr;

Animation atgroket, atgtwo, atgthree;

private String url = konfigurasi.URL + "register.php";

private static final String TAG =

absensiActivity.class.getSimpleName();

private static final String TAG_SUCCESS = "success";

private static final String TAG_MESSAGE = "message";

String tag_json_obj = "json_obj_req";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_absensi);

Bundle b = getIntent().getExtras();

conMgr = (ConnectivityManager)

getSystemService(Context.CONNECTIVITY_SERVICE);

{

if (conMgr.getActiveNetworkInfo() != null

&&conMgr.getActiveNetworkInfo().isAvailable()

&&conMgr.getActiveNetworkInfo().isConnected()) {

} else {

Toast.makeText(getApplicationContext(), "No Internet

Connection",

Toast.LENGTH_LONG).show();

}

}

atgroket = AnimationUtils.loadAnimation(this, R.anim.atgroket);

atgtwo = AnimationUtils.loadAnimation(this, R.anim.atgtwo);

atgthree = AnimationUtils.loadAnimation(this, R.anim.atgthree);

Calendar calendar = Calendar.getInstance();

hari = calendar.get(Calendar.DAY_OF_MONTH);

bulan = calendar.get(Calendar.MONTH);

tahun = calendar.get(Calendar.YEAR);

String akhirtanggal = hari + "-" + bulan + "-" + tahun;

txt_tanggal = (TextView) findViewById(R.id.txt_tanggal);

txt_nis = (TextView) findViewById(R.id.txt_nis);

btabsen = (ImageView) findViewById(R.id.btabseni);

txt_tanggal.setText(akhirtanggal);

txt_nis.setText(b.getCharSequence("nis"));

btabsen.setOnClickListener(new View.OnClickListener() {

@Override

Page 71: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

78

public void onClick(View v) {

// TODO Auto-generated method stub

String tanggal = txt_tanggal.getText().toString();

String nis = txt_nis.getText().toString();

if (conMgr.getActiveNetworkInfo() != null

&&conMgr.getActiveNetworkInfo().isAvailable()

&&conMgr.getActiveNetworkInfo().isConnected()) {

checkRegister(tanggal, nis);

btabsen.startAnimation(atgroket);

} else {

Toast.makeText(getApplicationContext(), "No

Internet Connection", Toast.LENGTH_SHORT).show();

}

}

});

}

private void checkRegister(final String tanggal, final String nis) {

pDialog = new ProgressDialog(this);

pDialog.setCancelable(false);

pDialog.setMessage("absensiActivity ...");

showDialog();

StringRequest strReq = new

StringRequest(Request.Method.POST, url, new

Response.Listener<String>() {

@SuppressLint("LongLogTag")

@Override

public void onResponse(String response) {

Log.e(TAG, "absensiActivity Response: " +

response.toString());

hideDialog();

try {

JSONObject jObj = new JSONObject(response);

success = jObj.getInt(TAG_SUCCESS);

// Check for error node in json

if (success == 1) {

Log.e("Successfully absensiActivity!",

jObj.toString());

Toast.makeText(getApplicationContext(),

jObj.getString(TAG_MESSAGE),

Toast.LENGTH_LONG).show();

txt_tanggal.setText("");

txt_nis.setText("");

} if (success == 2) {

Log.e("Successfully absensiActivity!",

jObj.toString());

Toast.makeText(getApplicationContext(),

jObj.getString(TAG_MESSAGE),

Page 72: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

79

Toast.LENGTH_LONG).show();

txt_tanggal.setText("");

txt_nis.setText("");

} else {

Toast.makeText(getApplicationContext(),

jObj.getString(TAG_MESSAGE),

Toast.LENGTH_LONG).show();

}

} catch (JSONException e) {

// JSON error

e.printStackTrace();

}

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

Log.e(TAG, "Login Error: " + error.getMessage());

Toast.makeText(getApplicationContext(),

error.getMessage(),

Toast.LENGTH_LONG).show();

hideDialog();

}

}) {

@Override

protected Map<String, String> getParams() {

// Posting parameters to login url

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

params.put("tanggal", tanggal);

params.put("nis", nis);

return params;

}

};

// Adding request to request queue

AppController.getInstance().addToRequestQueue(strReq, tag_json_obj);

}

private void showDialog() {

if (!pDialog.isShowing())

pDialog.show();

}

private void hideDialog() {

if (pDialog.isShowing())

pDialog.dismiss();

}

}

Page 73: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

80

2. File inputAddress.java

package com.smartfix.smartdewan;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.content.SharedPreferences;

import android.net.ConnectivityManager;

import android.net.NetworkInfo;

import android.os.Bundle;

import android.preference.PreferenceManager;

import android.support.design.widget.TextInputLayout;

import android.text.Editable;

import android.text.TextWatcher;

import android.view.KeyEvent;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class InputAddress extends Activity {

private Button btnLanjut;

private EditText inputAddress;

private TextInputLayout inputLayoutAddress;

private String s = "online";

private class MyTextWatcher implements TextWatcher {

private View view;

private MyTextWatcher(View view) {

this.view = view;

}

public void beforeTextChanged(CharSequence charSequence, int i, int

i1, int i2) {

}

public void onTextChanged(CharSequence charSequence, int i, int i1,

int i2) {

}

public void afterTextChanged(Editable editable) {

switch (this.view.getId()) {

case R.id.input_address /*2131230805*/:

InputAddress.this.validateAddress();

return;

default:

return;

}

}

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_input_address);

try {

Page 74: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

81

s = getIntent().getStringExtra("valid");

if (s.equals("offline")){

Toast.makeText(InputAddress.this, "Url tidak

valid/offline", Toast.LENGTH_LONG).show();

}

} catch (Exception e){

e.printStackTrace();

}

this.inputLayoutAddress = findViewById(R.id.input_layout_address);

this.inputAddress = findViewById(R.id.input_address);

this.inputAddress.setOnFocusChangeListener(new

View.OnFocusChangeListener() {

public void onFocusChange(View v, boolean hasFocus) {

if (hasFocus) {

InputAddress.this.inputAddress.setSelection(InputAddress.this.inputA

ddress.getText().length());

}

}

});

this.btnLanjut = findViewById(R.id.btn_lanjut);

this.inputAddress.addTextChangedListener(new

MyTextWatcher(this.inputAddress));

this.btnLanjut.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {

InputAddress.this.submitForm();

}

});

if (!isNetworkAvailable()) {

new

AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert

).setTitle("Peringatan").setMessage("Tidak ada

koneksi").setPositiveButton("Close", new

DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {

InputAddress.this.finish();

System.exit(0);

}

}).show();

}

final SharedPreferences prefs =

PreferenceManager.getDefaultSharedPreferences(this);

this.inputAddress.setText(prefs.getString("autoSave",

BuildConfig.FLAVOR));

this.inputAddress.addTextChangedListener(new TextWatcher() {

public void onTextChanged(CharSequence s, int start, int before, int

count) {

}

public void beforeTextChanged(CharSequence s, int start, int count,

int after) {

}

public void afterTextChanged(Editable s) {

prefs.edit().putString("autoSave", s.toString()).commit();

}

});

this.inputAddress.setOnKeyListener(new View.OnKeyListener() {

public boolean onKey(View v, int keyCode, KeyEvent event) {

if (event.getAction() == 0) {

switch (keyCode) {

Page 75: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

82

case R.styleable.Toolbar_titleMarginEnd /*23*/:

case R.styleable.AppCompatTheme_editTextColor /*66*/:

InputAddress.this.submitForm();

return true;

}

}

return false;

}

});

}

private void submitForm() {

if (validateAddress()) {

Intent intent = new Intent(getBaseContext(),

MainActivity.class);

intent.putExtra("url",

this.inputAddress.getText().toString());

startActivity(intent);

finish();

}

}

private boolean validateAddress() {

if (this.inputAddress.getText().toString().trim().isEmpty()) {

this.inputLayoutAddress.setError(getString(R.string.err_msg_name));

requestFocus(this.inputAddress);

return false;

}

this.inputLayoutAddress.setErrorEnabled(false);

return true;

}

private void requestFocus(View view) {

if (view.requestFocus()) {

getWindow().setSoftInputMode(5);

}

}

public boolean isNetworkAvailable() {

NetworkInfo networkInfo = ((ConnectivityManager)

getSystemService(CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

if (networkInfo == null || !networkInfo.isConnected()) {

return false;

}

return true;

}

public void onBackPressed() {

AlertDialog.Builder alertDialogBuilder = new

AlertDialog.Builder(this);

alertDialogBuilder.setTitle("Keluar");

alertDialogBuilder.setMessage("Yakin keluar dari aplikasi

?").setCancelable(false).setPositiveButton("Ya", new

DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

System.exit(0);

}

}).setNegativeButton("Tidak", new

DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

dialog.cancel();

Page 76: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

83

}

});

alertDialogBuilder.create().show();

}

}

3. File MainActivity.java

package com.smartfix.smartdewan;

import android.app.AlertDialog;

import android.app.KeyguardManager;

import android.app.PendingIntent;

import android.content.Context;

import android.content.DialogInterface;

import android.content.Intent;

import android.graphics.Bitmap;

import android.graphics.Color;

import android.os.Bundle;

import android.support.v4.widget.SwipeRefreshLayout;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.Toolbar;

import android.util.Log;

import android.view.Menu;

import android.view.MenuItem;

import android.view.WindowManager;

import android.webkit.WebView;

import android.webkit.WebViewClient;

import android.widget.Toast;

import java.util.Timer;

import java.util.TimerTask;

import static

com.smartfix.smartdewan.DetectConnection.isNetworkStatusAvialable;

public class MainActivity extends AppCompatActivity {

MyTimerTask myTimerTask;

Timer timer;

private SwipeRefreshLayout swipeRefreshLayout;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setSupportActionBar((Toolbar) findViewById(R.id.toolbar));

getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,

WindowManager.LayoutParams.FLAG_SECURE);

final String s = getIntent().getStringExtra("url");

final WebView view = findViewById(R.id.activity_main_webview);

view.getSettings().setJavaScriptEnabled(true);

view.getSettings().setUseWideViewPort(true);

view.getSettings().setLoadWithOverviewMode(true);

view.getSettings().setSupportZoom(true);

view.getSettings().setBuiltInZoomControls(true);

view.getSettings().setDisplayZoomControls(false);

Page 77: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

84

view.setWebViewClient(new ExamWebView());

view.loadUrl("http://" + s);

swipeRefreshLayout = findViewById(R.id.swipe_refresh_layout);

swipeRefreshLayout.setColorSchemeColors(Color.RED, Color.GREEN,

Color.BLUE, Color.CYAN);

swipeRefreshLayout.setOnRefreshListener(new

SwipeRefreshLayout.OnRefreshListener() {

@Override

public void onRefresh() {

if(isNetworkStatusAvialable (MainActivity.this)) {

view.reload();

view.getSettings().setDomStorageEnabled(true);

} else {

Toast.makeText(MainActivity.this, "Url tidak

valid/offline", Toast.LENGTH_LONG).show();

view.loadDataWithBaseURL(null, "<html><body><img width=\"100%\"

height=\"100%\"

src=\"file:///android_res/drawable/offline.png\"></body></html>",

"text/html", "UTF-8", null);

progressDialogModel.hideProgressDialog();

swipeRefreshLayout.setRefreshing(false);

Intent i = new Intent(getBaseContext(),

InputAddress.class);

startActivity(i);

finish();

}

}

});

}

class MyTimerTask extends TimerTask {

@Override

public void run() {

bringApplicationToFront();

}

}

private class ExamWebView extends WebViewClient {

private ExamWebView() {

}

public void onPageStarted(WebView view, String url, Bitmap favicon)

{

super.onPageStarted(view, url, favicon);

}

public boolean shouldOverrideUrlLoading(WebView view, String url) {

if(isNetworkStatusAvialable (MainActivity.this)) {

view.loadUrl(url);

progressDialogModel.pdMenyiapkkaliantaLogin(MainActivity.this);

} else {

Toast.makeText(MainActivity.this, "Url tidak

valid/offline", Toast.LENGTH_LONG).show();

view.loadDataWithBaseURL(null, "<html><body><img

width=\"100%\" height=\"100%\"

src=\"file:///android_res/drawable/offline.png\"></body></html>",

"text/html", "UTF-8", null);

progressDialogModel.hideProgressDialog();

swipeRefreshLayout.setRefreshing(false);

Intent i = new Intent(getBaseContext(),

Page 78: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

85

InputAddress.class);

startActivity(i);

finish();

}

return true;

}

public void onPageFinished(WebView view, String url) {

progressDialogModel.hideProgressDialog();

swipeRefreshLayout.setRefreshing(false);

super.onPageFinished(view, url);

}

public void onReceivedError(WebView view, int errorCode, String

description, String failingUrl) {

swipeRefreshLayout.setRefreshing(false);

Intent i = new Intent(getBaseContext(),

InputAddress.class);

i.putExtra("valid", "offline");

startActivity(i);

System.exit(0);

}

}

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.menu_main, menu);

return true;

}

public boolean onOptionsItemSelected(MenuItem item) {

int id = item.getItemId();

if (id == R.id.action_settings) {

new MyDialogFragment().show(getSupportFragmentManager(),

"MyDialogFragmentTag");

}

if (id == R.id.action_exit) {

System.exit(0);

}

return super.onOptionsItemSelected(item);

}

public void onBackPressed() {

AlertDialog.Builder alertDialogBuilder = new

AlertDialog.Builder(this);

alertDialogBuilder.setTitle("Keluar");

alertDialogBuilder.setMessage("Yakin keluar dari aplikasi

?").setCancelable(false).setPositiveButton("Ya", new

DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

System.exit(0);

}

}).setNegativeButton("Tidak", new

DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

dialog.cancel();

}

});

alertDialogBuilder.create().show();

}

@Override

Page 79: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

86

protected void onResume() {

super.onResume();

if (timer != null) {

timer.cancel();

timer = null;

}

}

@Override

protected void onPause() {

if (timer == null) {

myTimerTask = new MyTimerTask();

timer = new Timer();

timer.schedule(myTimerTask, 100, 100);

}

super.onPause();

}

private void bringApplicationToFront() {

KeyguardManager myKeyManager = (KeyguardManager)

getSystemService(Context.KEYGUARD_SERVICE);

if (myKeyManager.inKeyguardRestrictedInputMode())

return;

Log.d("TAG", "====Bringging Application to Front====");

Intent notificationIntent = new Intent(this,

MainActivity.class);

notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |

Intent.FLAG_ACTIVITY_SINGLE_TOP);

PendingIntent pendingIntent =

PendingIntent.getActivity(this, 0, notificationIntent, 0);

try {

pendingIntent.send();

} catch (PendingIntent.CanceledException e) {

e.printStackTrace();

}

}

}

4. File MainActivityJadwal.java

package com.smartfix.smartdewan;

import android.app.ProgressDialog;

import android.os.Bundle;

import android.support.annotation.NonNull;

import android.support.design.widget.BottomNavigationView;

import android.support.v4.widget.SwipeRefreshLayout;

import android.support.v7.app.AppCompatActivity;

import android.util.Log;

import android.view.MenuItem;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

import com.android.volley.Request;

import com.android.volley.Response;

import com.android.volley.VolleyError;

import com.android.volley.VolleyLog;

import com.android.volley.toolbox.JsonArrayRequest;

import com.android.volley.toolbox.StringRequest;

Page 80: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

87

import com.smartfix.smartdewan.adapter.Adapter;

import com.smartfix.smartdewan.app.AppController;

import com.smartfix.smartdewan.model.DataModel;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class MainActivityjadwal extends AppCompatActivity implements

BottomNavigationView.OnNavigationItemSelectedListener {

ProgressDialog pDialog;

List<DataModel>listData = new ArrayList<DataModel>();

Adapter adapter;

SwipeRefreshLayout swipe;

ListView list_view;

TextView textkelas;

/* 10.0.2.2 adalah IP Address localhost EMULATOR ANDROID STUDIO,

Ganti IP Address tersebut dengan IP Laptop Apabila di RUN di HP.

HP dan Laptop harus 1 jaringan */

public static final String url_data =

"http://192.168.100.36/kuncoro_search_view/data.php";

public static final String url_cari =

"http://192.168.100.36/kuncoro_search_view/cari_data.php";

private static final String TAG =

MainActivityjadwal.class.getSimpleName();

public static final String TAG_ID = "id";

public static final String TAG_NAMA = "nama";

public static final String TAG_GURU = "guru";

public static final String TAG_RESULTS = "results";

public static final String TAG_MESSAGE = "message";

public static final String TAG_VALUE = "value";

String tag_json_obj = "json_obj_req";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_mainjadwal);

Bundle b = getIntent().getExtras();

textkelas =(TextView) findViewById(R.id.txtkelas);

textkelas.setText(b.getCharSequence("kls"));

list_view = (ListView) findViewById(R.id.list_view);

adapter = new Adapter(MainActivityjadwal.this, listData);

list_view.setAdapter(adapter);

String keyword = "Senin";

String kelas = textkelas.getText().toString();

cariData(keyword , kelas);

Page 81: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

88

BottomNavigationView bottomNavigationView =

findViewById(R.id.bn_mainjadwal);

// beri listener pada saat item/menu bottomnavigation terpilih

bottomNavigationView.setOnNavigationItemSelectedListener(this);

}

private void callData() {

listData.clear();

adapter.notifyDataSetChanged();

swipe.setRefreshing(true);

// Creating volley request obj

JsonArrayRequest jArr = new JsonArrayRequest(url_data, new

Response.Listener<JSONArray>() {

@Override

public void onResponse(JSONArray response) {

Log.e(TAG, response.toString());

// Parsing json

for (int i = 0; i < response.length(); i++) {

try {

JSONObject obj = response.getJSONObject(i);

DataModel item = new DataModel();

item.setId(obj.getString(TAG_ID));

item.setNama(obj.getString(TAG_NAMA));

item.setGuru(obj.getString(TAG_GURU));

listData.add(item);

} catch (JSONException e) {

e.printStackTrace();

}

}

// notifying list adapter about data changes

// so that it renders the list view with updated

data

adapter.notifyDataSetChanged();

swipe.setRefreshing(false);

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

VolleyLog.e(TAG, "Error: " + error.getMessage());

Toast.makeText(MainActivityjadwal.this,

error.getMessage(), Toast.LENGTH_LONG).show();

swipe.setRefreshing(false);

}

});

// Adding request to request queue

AppController.getInstance().addToRequestQueue(jArr);

}

Page 82: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

89

private void cariData(final String keyword, final String kelas) {

pDialog = new ProgressDialog(MainActivityjadwal.this);

pDialog.setCancelable(false);

pDialog.setMessage("Loading...");

pDialog.show();

StringRequest strReq = new

StringRequest(Request.Method.POST, url_cari, new

Response.Listener<String>() {

@Override

public void onResponse(String response) {

Log.e("Response: ", response.toString());

try {

JSONObject jObj = new JSONObject(response);

int value = jObj.getInt(TAG_VALUE);

if (value == 1) {

listData.clear();

adapter.notifyDataSetChanged();

String getObject =

jObj.getString(TAG_RESULTS);

JSONArray jsonArray = new

JSONArray(getObject);

for (int i = 0; i < jsonArray.length(); i++) {

JSONObject obj =

jsonArray.getJSONObject(i);

DataModel data = new DataModel();

data.setId(obj.getString(TAG_ID));

data.setNama(obj.getString(TAG_NAMA));

data.setGuru(obj.getString(TAG_GURU));

listData.add(data);

}

} else {

listData.clear();

Toast.makeText(getApplicationContext(),

jObj.getString(TAG_MESSAGE), Toast.LENGTH_SHORT).show();

}

} catch (JSONException e) {

// JSON error

e.printStackTrace();

}

adapter.notifyDataSetChanged();

pDialog.dismiss();

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

VolleyLog.e(TAG, "Error: " + error.getMessage());

Toast.makeText(getApplicationContext(),

Page 83: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

90

error.getMessage(), Toast.LENGTH_SHORT).show();

pDialog.dismiss();

}

}) {

@Override

protected Map<String, String> getParams() {

// Posting parameters to login url

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

params.put("keyword", keyword);

params.put("kelas", kelas);

return params;

}

};

AppController.getInstance().addToRequestQueue(strReq,

tag_json_obj);

}

@Override

public boolean onNavigationItemSelected(@NonNull MenuItem item) {

String kelas = textkelas.getText().toString();;

switch (item.getItemId()){

case R.id.senin:

String keyword = "Senin";

cariData(keyword,kelas);

break;

case R.id.selasa:

keyword = "Selasa";

cariData(keyword,kelas);

break;

case R.id.rabu:

keyword = "Rabu";

cariData(keyword,kelas);

break;

case R.id.kamis:

keyword = "Kamis";

cariData(keyword,kelas);

break;

case R.id.jumat:

keyword = "Jumat";

cariData(keyword,kelas);

break;

}

return true;

}

}

5. File paymentActivity.java

package com.smartfix.smartdewan;

import android.content.SharedPreferences;

Page 84: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

91

import android.graphics.Bitmap;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.ImageView;

import android.widget.TextView;

import com.google.zxing.BarcodeFormat;

import com.google.zxing.MultiFormatWriter;

import com.google.zxing.WriterException;

import com.google.zxing.common.BitMatrix;

public class paymentActivity extends AppCompatActivity {

ImageView imageView;

TextView textView, txt_id1;

String EditTextValue ;

String id1;

SharedPreferences sharedpreferences;

Thread thread ;

public final static int QRcodeWidth = 500 ;

Bitmap bitmap ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_payment);

Bundle b = getIntent().getExtras();

imageView = (ImageView)findViewById(R.id.imageView);

textView = (TextView) findViewById(R.id.textview);

textView.setText(b.getCharSequence("nis"));

EditTextValue = textView.getText().toString();

try {

bitmap = TextToImageEncode(EditTextValue);

imageView.setImageBitmap(bitmap);

} catch (WriterException e) {

e.printStackTrace();

}

}

Bitmap TextToImageEncode(String Value) throws WriterException {

BitMatrix bitMatrix;

try {

bitMatrix = new MultiFormatWriter().encode(

Value,

BarcodeFormat.DATA_MATRIX.QR_CODE,

QRcodeWidth, QRcodeWidth, null

);

} catch (IllegalArgumentException Illegalargumentexception)

{

Page 85: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

92

return null;

}

int bitMatrixWidth = bitMatrix.getWidth();

int bitMatrixHeight = bitMatrix.getHeight();

int[] pixels = new int[bitMatrixWidth * bitMatrixHeight];

for (int y = 0; y < bitMatrixHeight; y++) {

int offset = y * bitMatrixWidth;

for (int x = 0; x < bitMatrixWidth; x++) {

pixels[offset + x] = bitMatrix.get(x, y) ?

getResources().getColor(R.color.QRCodeBlackColor):getResources().get

Color(R.color.QRCodeWhiteColor);

}

}

Bitmap bitmap = Bitmap.createBitmap(bitMatrixWidth,

bitMatrixHeight, Bitmap.Config.ARGB_4444);

bitmap.setPixels(pixels, 0, 500, 0, 0, bitMatrixWidth,

bitMatrixHeight);

return bitmap;

}

}

6. File SplashActivity.java

package com.smartfix.smartdewan;

import android.support.v7.app.AppCompatActivity;

import android.content.Intent;

import android.os.Bundle;

import android.os.Handler;

public class SplashActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_splash);

int SPLASH_DISPLAY_LENGTH = 3000;

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

@Override

public void run() {

Intent intent = new Intent(SplashActivity.this,

Login.class);

startActivity(intent);

finish();

}

}, SPLASH_DISPLAY_LENGTH);

}

Page 86: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

93

protected void onPause() {

super.onPause();

finish();

}

}

7. File detailInfoActivity.java

package com.smartfix.smartdewan;

import android.app.ProgressDialog;

import android.content.DialogInterface;

import android.content.Intent;

import android.os.AsyncTask;

import android.os.Bundle;

import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import java.util.HashMap;

public class TampilInfo extends AppCompatActivity implements

View.OnClickListener{

private EditText editTextId;

private EditText editTextName;

private EditText editTextDesg;

private EditText editTextSalary;

private Button buttonUpdate;

private Button buttonDelete;

private String id;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_tampil_info);

Intent intent = getIntent();

id = intent.getStringExtra(konfigurasi.EMP_ID);

editTextId = (EditText) findViewById(R.id.editTextJudul);

editTextName = (EditText) findViewById(R.id.editTextDeskripsi);

editTextDesg = (EditText) findViewById(R.id.editTextDimulai);

editTextSalary = (EditText) findViewById(R.id.editTextSelesai);

Page 87: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

94

getEmployee();

}

private void getEmployee(){

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

ProgressDialog loading;

@Override

protected void onPreExecute() {

super.onPreExecute();

loading =

ProgressDialog.show(TampilInfo.this,"Mendownload...","Wait...",false

,false);

}

@Override

protected void onPostExecute(String s) {

super.onPostExecute(s);

loading.dismiss();

showEmployee(s);

}

@Override

protected String doInBackground(Void... params) {

RequestHandler rh = new RequestHandler();

String s =

rh.sendGetRequestParam(konfigurasi.URL_GET_EMP,id);

return s;

}

}

GetEmployee ge = new GetEmployee();

ge.execute();

}

private void showEmployee(String json){

try {

JSONObject jsonObject = new JSONObject(json);

JSONArray result =

jsonObject.getJSONArray(konfigurasi.TAG_JSON_ARRAY);

JSONObject c = result.getJSONObject(0);

String judul = c.getString(konfigurasi.TAG_NAMA);

String deskripsi =

c.getString(konfigurasi.TAG_DESKRIPSI);

String dimulai = c.getString(konfigurasi.TAG_DIMULAI);

String selesai = c.getString(konfigurasi.TAG_SELESAI);

editTextId.setText(judul);

editTextName.setText(deskripsi);

editTextDesg.setText(dimulai);

editTextSalary.setText(selesai);

} catch (JSONException e) {

e.printStackTrace();

}

}

Page 88: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

95

@Override

public void onClick(View v) {

}

}

8. File Tampilsemuainfo.java

package com.smartfix.smartdewan;

import android.app.ProgressDialog;

import android.content.Intent;

import android.os.AsyncTask;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ListAdapter;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import java.util.ArrayList;

import java.util.HashMap;

public class TampilSemuaInfo extends AppCompatActivity implements

ListView.OnItemClickListener{

private ListView listView;

private String JSON_STRING;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_tampil_semua_info);

listView = (ListView) findViewById(R.id.listView);

listView.setOnItemClickListener(this);

getJSON();

}

private void getJSON(){

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

ProgressDialog loading;

@Override

Page 89: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

96

protected void onPreExecute() {

super.onPreExecute();

loading = ProgressDialog.show(TampilSemuaInfo.this,"Mengambil

Data","Mohon Tunggu...",false,false);

}

@Override

protected void onPostExecute(String s) {

super.onPostExecute(s);

loading.dismiss();

JSON_STRING = s;

showEmployee();

}

@Override

protected String doInBackground(Void... params) {

RequestHandler rh = new RequestHandler();

String s =

rh.sendGetRequest(konfigurasi.URL_GET_ALL);

return s;

}

}

GetJSON gj = new GetJSON();

gj.execute();

}

private void showEmployee(){

JSONObject jsonObject = null;

ArrayList<HashMap<String,String>> list = new

ArrayList<HashMap<String, String>>();

try {

jsonObject = new JSONObject(JSON_STRING);

JSONArray result =

jsonObject.getJSONArray(konfigurasi.TAG_JSON_ARRAY);

for(int i = 0; i<result.length(); i++){

JSONObject jo = result.getJSONObject(i);

String id = jo.getString(konfigurasi.TAG_ID);

String dimulai=

jo.getString(konfigurasi.TAG_DIMULAI);

String name = jo.getString(konfigurasi.TAG_NAMA);

HashMap<String,String> employees = new HashMap<>();

employees.put(konfigurasi.TAG_ID,id);

employees.put(konfigurasi.TAG_DIMULAI,dimulai);

employees.put(konfigurasi.TAG_NAMA,name);

list.add(employees);

}

} catch (JSONException e) {

e.printStackTrace();

}

ListAdapter adapter = new SimpleAdapter(

TampilSemuaInfo.this, list, R.layout.list_item_info,

new String[]{konfigurasi.TAG_ID,konfigurasi.TAG_NAMA},

new int[]{R.id.id, R.id.name});

listView.setAdapter(adapter);

}

Page 90: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

97

@Override

public void onItemClick(AdapterView<?> parent, View view, int

position, long id) {

Intent intent = new Intent(this, TampilInfo.class);

HashMap<String,String> map

=(HashMap)parent.getItemAtPosition(position);

String empId = map.get(konfigurasi.TAG_ID).toString();

intent.putExtra(konfigurasi.EMP_ID,empId);

startActivity(intent);

}

}

9. File utamaActivity.java

package com.smartfix.smartdewan;

import android.content.Intent;

import android.os.Bundle;

import android.support.annotation.NonNull;

import android.support.design.widget.BottomNavigationView;

import android.support.v4.app.Fragment;

import android.support.v7.app.AppCompatActivity;

import android.view.MenuItem;

import android.widget.ScrollView;

public class utamaActivity extends AppCompatActivity implements

BottomNavigationView.OnNavigationItemSelectedListener {

ScrollView scroll;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_utama);

// kita set default nya Home Fragment

loadFragment(new homeFragment());

// inisialisasi BottomNavigaionView

BottomNavigationView bottomNavigationView =

findViewById(R.id.bn_main);

// beri listener pada saat item/menu bottomnavigation

terpilih

bottomNavigationView.setOnNavigationItemSelectedListener(this);

}

private boolean loadFragment(Fragment fragment){

if (fragment != null) {

getSupportFragmentManager().beginTransaction()

.replace(R.id.fl_container, fragment)

.commit();

return true;

}

return false;

}

Page 91: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

98

@Override

public boolean onNavigationItemSelected(@NonNull MenuItem

menuItem) {

Fragment fragment = null;

switch (menuItem.getItemId()){

case R.id.home_menu:

fragment = new homeFragment();

break;

case R.id.info_menu:

Intent intent = new

Intent(this,TampilSemuaInfo.class);

startActivity(intent);

break;

case R.id.account_menu:

fragment = new akunFragment();

break;

}

return loadFragment(fragment);

}

}

10. File akunFragment.java

package com.smartfix.smartdewan;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.TextView;

/**

* A simple {@link Fragment} subclass.

*/

public class akunFragment extends Fragment {

Button btn_logout;

TextView kelas, txt_id1, txt_username1, tpt_lhr, tgl_lhr, jkel,

agama, alamat, nohp, nmibu,nmayah;

String str_kelas, id1, username1, str_tpt_lhr, str_tgl_lhr,

str_jkel, str_agama, str_alamat, str_nohp, str_nmibu,str_nmayah;

SharedPreferences sharedpreferences;

public static final String TAG_NIS = "id";

public static final String TAG_NAMA = "username";

public static final String TAG_TPT_LHR = "tpt_lahir";

public static final String TAG_TGL_LHR = "tgl_lahir";

public static final String TAG_JKEL = "j_kel";

public static final String TAG_AGAMA = "agama";

public static final String TAG_ALAMAT = "alamat";

Page 92: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

99

public static final String TAG_NO_HP = "no_hp";

public static final String TAG_NAMA_IBU = "nm_ibu";

public static final String TAG_NAMA_AYAH = "nm_ayah";

public static final String TAG_KELAS = "kelas";

public akunFragment() {

// Required empty public constructor

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup

container,

Bundle savedInstanceState) {

// Inflate the layout for this fragment

View view = inflater.inflate(R.layout.fragment_akun, container,

false);

txt_id1 = (TextView) view.findViewById(R.id.nis);

txt_username1 = (TextView) view.findViewById(R.id.nama);

tpt_lhr = (TextView) view.findViewById(R.id.tpt_lhr);

tgl_lhr = (TextView) view.findViewById(R.id.tgl_lhr);

agama = (TextView) view.findViewById(R.id.agama);

jkel = (TextView) view.findViewById(R.id.jkelamin);

alamat = (TextView) view.findViewById(R.id.alamat);

nohp = (TextView) view.findViewById(R.id.no_hp);

nmayah = (TextView) view.findViewById(R.id.nm_ayah);

nmibu = (TextView) view.findViewById(R.id.nm_ibu);

btn_logout = (Button) view.findViewById(R.id.buttonlgt);

kelas = (TextView) view.findViewById(R.id.kelas);

sharedpreferences =

getActivity().getSharedPreferences(Login.my_shared_preferences,

Context.MODE_PRIVATE);

id1 = getActivity().getIntent().getStringExtra(TAG_NIS);

username1 = getActivity().getIntent().getStringExtra(TAG_NAMA);

str_tpt_lhr = getActivity().getIntent().getStringExtra(TAG_TPT_LHR);

str_tgl_lhr = getActivity().getIntent().getStringExtra(TAG_TGL_LHR);

str_jkel = getActivity().getIntent().getStringExtra(TAG_JKEL);

str_agama = getActivity().getIntent().getStringExtra(TAG_AGAMA);

str_alamat = getActivity().getIntent().getStringExtra(TAG_ALAMAT);

str_nohp = getActivity().getIntent().getStringExtra(TAG_NO_HP);

str_nmayah =

getActivity().getIntent().getStringExtra(TAG_NAMA_AYAH);

str_nmibu = getActivity().getIntent().getStringExtra(TAG_NAMA_IBU);

str_kelas = getActivity().getIntent().getStringExtra(TAG_KELAS);

txt_id1.setText(id1);

txt_username1.setText(username1);

tpt_lhr.setText(str_tpt_lhr);

tgl_lhr.setText(str_tgl_lhr);

agama.setText(str_agama);

jkel.setText(str_jkel);

alamat.setText(str_alamat);

nohp.setText(str_nohp);

nmayah.setText(str_nmayah);

nmibu.setText(str_nmibu);

kelas.setText(str_kelas);

Page 93: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

100

btn_logout.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

// update login session ke FALSE dan mengosongkan nilai id dan

username

SharedPreferences.Editor editor = sharedpreferences.edit();

editor.putBoolean(Login.session_status, false);

editor.putString(TAG_NIS, null);

editor.putString(TAG_NAMA, null);

editor.commit();

Intent intent = new Intent(getActivity(),

Login.class);

getActivity().finish();

startActivity(intent);

}

});

return view;

}

}

11. File homeFragment.java

package com.smartfix.smartdewan;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.support.v4.app.Fragment;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.view.animation.Animation;

import android.view.animation.AnimationUtils;

import android.widget.Button;

import android.widget.ImageButton;

import android.widget.ImageView;

import android.widget.TextView;

public class homeutama extends Fragment {

// TODO: Rename parameter arguments, choose names that match

// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER

TextView nameuser, walletuser, review, network, plugins, myapps,

mainmenus,

pagetitle, pagesubtitle;

ImageButton bayar,ujian,jadwal,absensi;

Page 94: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

101

TextView txt_id1,txt_id2;

String id1,kelas;

SharedPreferences sharedpreferences;

public static final String TAG_NIS1 = "id";

public static final String TAG_KELAS = "kelas";

Button btnguide;

Animation atg, atgtwo, atgthree;

ImageView imageView3;

public homeutama() {

// Required empty public constructor

}

// TODO: Rename and change types and number of parameters

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup

container,

Bundle savedInstanceState) {

// Inflate the layout for this fragment

View view = inflater.inflate(R.layout.fragment_homeutama, container,

false);

txt_id1 = (TextView) view.findViewById(R.id.tukar);

txt_id2 = (TextView) view.findViewById(R.id.txtkelas);

sharedpreferences =

getActivity().getSharedPreferences(Login.my_shared_preferences,

Context.MODE_PRIVATE);

id1 = getActivity().getIntent().getStringExtra(TAG_NIS1);

kelas = getActivity().getIntent().getStringExtra(TAG_KELAS);

txt_id1.setText(id1);

txt_id2.setText(kelas);

bayar = (ImageButton) view.findViewById(R.id.bayar);

ujian = (ImageButton) view.findViewById(R.id.ujian);

absensi = (ImageButton) view.findViewById(R.id.absensi);

jadwal = (ImageButton) view.findViewById(R.id.jadwalfix);

atg = AnimationUtils.loadAnimation(getActivity(), R.anim.atg);

atgtwo = AnimationUtils.loadAnimation(getActivity(), R.anim.atgtwo);

atgthree = AnimationUtils.loadAnimation(getActivity(),

R.anim.atgthree);

review = view.findViewById(R.id.review);

network = view.findViewById(R.id.network);

plugins = view.findViewById(R.id.plugins);

myapps = view.findViewById(R.id.myapps);

mainmenus = view.findViewById(R.id.mainmenus);

pagetitle = view.findViewById(R.id.pagetitle);

pagesubtitle = view.findViewById(R.id.pagesubtitle);

Page 95: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

102

btnguide = view.findViewById(R.id.btnguide);

imageView3 = view.findViewById(R.id.imageView3);

// pass an animation

imageView3.startAnimation(atg);

pagetitle.startAnimation(atgtwo);

pagesubtitle.startAnimation(atgtwo);

btnguide.startAnimation(atgthree);

bayar.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v){

Intent intent = new Intent(getActivity(),

paymentActivity.class);

Bundle b = new Bundle();

b.putString("nis", txt_id1.getText().toString());

intent.putExtras(b);

getActivity().startActivity(intent);

}

});

jadwal.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v){

Intent intent = new Intent(getActivity(),

MainActivityjadwal.class);

Bundle b = new Bundle();

b.putString("kls", txt_id2.getText().toString());

intent.putExtras(b);

getActivity().startActivity(intent);

}

});

ujian.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v){

Intent intent = new Intent(getActivity(),

InputAddress.class);

getActivity().startActivity(intent);

}

});

absensi.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v){

Intent intent = new Intent(getActivity(),

absensiActivity.class);

Bundle b = new Bundle();

b.putString("nis", txt_id1.getText().toString());

intent.putExtras(b);

getActivity().startActivity(intent);

Page 96: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

103

}

});

return view;

}

}

12. File LoginActivity.java

package com.smartfix.smartdewan;

import android.app.ProgressDialog;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.net.ConnectivityManager;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import com.android.volley.Request;

import com.android.volley.Response;

import com.android.volley.VolleyError;

import com.android.volley.toolbox.StringRequest;

import com.smartfix.smartdewan.app.AppController;

import org.json.JSONException;

import org.json.JSONObject;

import java.util.HashMap;

import java.util.Map;

public class Login extends AppCompatActivity {

ProgressDialog pDialog;

Button btn_login;

EditText txt_username, txt_password;

Intent intent;

int success;

ConnectivityManager conMgr;

private String url = konfigurasi.URL + "login.php";

private static final String TAG = Login.class.getSimpleName();

private static final String TAG_SUCCESS = "success";

private static final String TAG_MESSAGE = "message";

public final static String TAG_USERNAME = "username";

public final static String TAG_ID = "id";

public static final String TAG_TPT_LHR = "tpt_lahir";

public static final String TAG_TGL_LHR = "tgl_lahir";

Page 97: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

104

public static final String TAG_JKEL = "j_kel";

public static final String TAG_AGAMA = "agama";

public static final String TAG_ALAMAT = "alamat";

public static final String TAG_NO_HP = "no_hp";

public static final String TAG_NAMA_IBU = "nm_ibu";

public static final String TAG_NAMA_AYAH = "nm_ayah";

public static final String TAG_KELAS = "kelas";

String tag_json_obj = "json_obj_req";

SharedPreferences sharedpreferences;

Boolean session = false;

String id, kelas, username, tpt_lahir, tgl_lahir, j_kel, agama,

alamat, no_hp, nm_ayah, nm_ibu;

public static final String my_shared_preferences =

"my_shared_preferences";

public static final String session_status = "session_status";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.login);

conMgr = (ConnectivityManager)

getSystemService(Context.CONNECTIVITY_SERVICE);

{

if (conMgr.getActiveNetworkInfo() != null

&&conMgr.getActiveNetworkInfo().isAvailable()

&&conMgr.getActiveNetworkInfo().isConnected()) {

} else {

Toast.makeText(getApplicationContext(), "No Internet

Connection",

Toast.LENGTH_LONG).show();

}

}

btn_login = (Button) findViewById(R.id.btn_login);

txt_username = (EditText) findViewById(R.id.txt_username);

txt_password = (EditText) findViewById(R.id.txt_password);

// Cek session login jika TRUE maka langsung buka MainActivity

sharedpreferences = getSharedPreferences(my_shared_preferences,

Context.MODE_PRIVATE);

session = sharedpreferences.getBoolean(session_status, false);

id = sharedpreferences.getString(TAG_ID, null);

username = sharedpreferences.getString(TAG_USERNAME, null);

tpt_lahir = sharedpreferences.getString(TAG_TPT_LHR, null);

tgl_lahir = sharedpreferences.getString(TAG_TGL_LHR, null);

j_kel = sharedpreferences.getString(TAG_JKEL, null);

agama = sharedpreferences.getString(TAG_AGAMA, null);

alamat = sharedpreferences.getString(TAG_ALAMAT, null);

no_hp = sharedpreferences.getString(TAG_NO_HP, null);

nm_ayah = sharedpreferences.getString(TAG_NAMA_AYAH, null);

nm_ibu = sharedpreferences.getString(TAG_NAMA_IBU, null);

kelas = sharedpreferences.getString(TAG_KELAS, null);

if (session) {

Intent intent = new Intent(Login.this, utama.class);

intent.putExtra(TAG_ID, id);

intent.putExtra(TAG_USERNAME, username);

intent.putExtra(TAG_TPT_LHR, tpt_lahir);

Page 98: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

105

intent.putExtra(TAG_TGL_LHR, tgl_lahir);

intent.putExtra(TAG_JKEL, j_kel);

intent.putExtra(TAG_AGAMA, agama);

intent.putExtra(TAG_ALAMAT, alamat);

intent.putExtra(TAG_NO_HP, no_hp);

intent.putExtra(TAG_NAMA_AYAH, nm_ayah);

intent.putExtra(TAG_NAMA_IBU, nm_ibu);

intent.putExtra(TAG_KELAS, kelas);

finish();

startActivity(intent);

}

btn_login.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

String username = txt_username.getText().toString();

String password = txt_password.getText().toString();

// mengecek kolom yang kosong

if (username.trim().length() >0 && password.trim().length() >0) {

if (conMgr.getActiveNetworkInfo() != null

&&conMgr.getActiveNetworkInfo().isAvailable()

&&conMgr.getActiveNetworkInfo().isConnected()) {

checkLogin(username, password);

} else {

Toast.makeText(getApplicationContext() ,"No

Internet Connection", Toast.LENGTH_LONG).show();

}

} else {

// Prompt user to enter credentials

Toast.makeText(getApplicationContext() ,"Kolom tidak boleh kosong",

Toast.LENGTH_LONG).show();

}

}

});

}

private void checkLogin(final String username, final String

password) {

pDialog = new ProgressDialog(this);

pDialog.setCancelable(false);

pDialog.setMessage("Logging in ...");

showDialog();

StringRequest strReq = new

StringRequest(Request.Method.POST, url, new

Response.Listener<String>() {

@Override

public void onResponse(String response) {

Log.e(TAG, "Login Response: " +

response.toString());

hideDialog();

try {

JSONObject jObj = new JSONObject(response);

Page 99: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

106

success = jObj.getInt(TAG_SUCCESS);

// Check for error node in json

if (success == 1) {

String username =

jObj.getString(TAG_USERNAME);

String id = jObj.getString(TAG_ID);

String tpt_lahir =

jObj.getString(TAG_TPT_LHR);

String tgl_lahir =

jObj.getString(TAG_TGL_LHR);

String j_kel = jObj.getString(TAG_JKEL);

String agama = jObj.getString(TAG_AGAMA);

String alamat = jObj.getString(TAG_ALAMAT);

String no_hp = jObj.getString(TAG_NO_HP);

String nm_ayah =

jObj.getString(TAG_NAMA_AYAH);

String nm_ibu =

jObj.getString(TAG_NAMA_IBU);

String kelas = jObj.getString(TAG_KELAS);

Log.e("Successfully Login!",

jObj.toString());

Toast.makeText(getApplicationContext(),

jObj.getString(TAG_MESSAGE), Toast.LENGTH_LONG).show();

// menyimpan login ke session

SharedPreferences.Editor editor = sharedpreferences.edit();

editor.putBoolean(session_status, true);

editor.putString(TAG_ID, id);

editor.putString(TAG_USERNAME, username);

editor.putString(TAG_TPT_LHR, tpt_lahir);

editor.putString(TAG_TGL_LHR, tgl_lahir);

editor.putString(TAG_JKEL, j_kel);

editor.putString(TAG_AGAMA, agama);

editor.putString(TAG_ALAMAT, alamat);

editor.putString(TAG_NO_HP, no_hp);

editor.putString(TAG_NAMA_AYAH, nm_ayah);

editor.putString(TAG_NAMA_IBU, nm_ibu);

editor.putString(TAG_KELAS, kelas);

editor.commit();

// Memanggil main activity

Intent intent = new Intent(Login.this, utama.class);

intent.putExtra(TAG_ID, id);

intent.putExtra(TAG_USERNAME, username);

intent.putExtra(TAG_TPT_LHR, tpt_lahir);

intent.putExtra(TAG_TGL_LHR, tgl_lahir);

intent.putExtra(TAG_JKEL, j_kel);

intent.putExtra(TAG_AGAMA, agama);

intent.putExtra(TAG_ALAMAT, alamat);

intent.putExtra(TAG_NO_HP, no_hp);

intent.putExtra(TAG_NAMA_AYAH, nm_ayah);

intent.putExtra(TAG_NAMA_IBU, nm_ibu);

intent.putExtra(TAG_KELAS, kelas);

finish();

startActivity(intent);

} else {

Toast.makeText(getApplicationContext(),

Page 100: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

107

jObj.getString(TAG_MESSAGE),

Toast.LENGTH_LONG).show();

}

} catch (JSONException e) {

// JSON error

e.printStackTrace();

}

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

Log.e(TAG, "Login Error: " + error.getMessage());

Toast.makeText(getApplicationContext(),

error.getMessage(),

Toast.LENGTH_LONG).show();

hideDialog();

}

}) {

@Override

protected Map<String, String> getParams() {

// Posting parameters to login url

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

params.put("username", username);

params.put("password", password);

return params;

}

};

// Adding request to request queue

AppController.getInstance().addToRequestQueue(strReq, tag_json_obj);

}

private void showDialog() {

if (!pDialog.isShowing())

pDialog.show();

}

private void hideDialog() {

if (pDialog.isShowing())

pDialog.dismiss();

}

}

Page 101: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

108

Pengaturan Web Server

Untuk menghubungkan aplikasi android dengan server web

silahkan download file SmartDewan.zip di link berikut:

https://github.com/didikirawan153/Project-Smartdewan kemudian

ekstrak filenya dan taruh di file htdocs ataupun server local di personal

computer masing-masing seperti gambar dibawah ini.

Gambar 2.60. File directory htdocs smart dewan

Hasil akhir project smartdewan

Dari kodingan xml dan java yang telah dibuat berikut ini adalah hasil dari masing-masing layoutnya :

1. Layout Screenshoot Program

Page 102: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

109

Gambar 2.61.Splash

Activity

Gambar 2.62.Login

Activity

Gambar 2.63.About

Activity

Gambar2.64.Payment

Activity

Page 103: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

110

Gambar 2.65.

Absensi Activity

Gambar2.66. Jadwal

Activity

Gambar2.67.

Info Activity

Gambar2.68.

Detail Info Activity

Page 104: BAB 2 PERSIAPAN PENGKODINGAN...17 Gambar 2.21. Android Studio Project IDE Membuat Activity 1. Sebelum mendesain activity kita akan mulai dengan membuat activity baru, pertama kita

111

Gambar 2.69.Home

Fragment

Gambar 2.71.Akun

Fragment

Gambar2.70.

Ujian Activity

Ujian Activity