0% menganggap dokumen ini bermanfaat (0 suara)
62 tayangan

Modul Logika Java Android

Bab 1 dokumen tersebut membahas tentang instruksi dasar Android seperti pengaturan atribut widget, penggunaan operator aritmatika dan logika, serta instruksi pemilihan dan pengulangan."

Diunggah oleh

Raffi Baihaqy
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
62 tayangan

Modul Logika Java Android

Bab 1 dokumen tersebut membahas tentang instruksi dasar Android seperti pengaturan atribut widget, penggunaan operator aritmatika dan logika, serta instruksi pemilihan dan pengulangan."

Diunggah oleh

Raffi Baihaqy
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 145

DAFTAR ISI

DAFTAR ISI ..............................................................................................................


BAB I INSTRUKSI DASAR ANDROID ................................................................... 1
1.1 Pengaturan Atribut Widget......................................................................... 1
1.2 Pengaturan File xml pada folder values. ....................................................... 7
1.3 Penggunaan Operator ............................................................................... 8
1.4 LEMBAR KERJA PENGGUNAAN OPERATOR ........................................ 17
A. Operator Arithmatika................................................................................ 17
B. OPERATOR LOGIKA .............................................................................. 21
1.5 Instruksi Pemilihan dan Pengulangan ........................................................ 30
B. Instruksi Pengulangan / Looping ............................................................... 36
1.6 LEMBAR KERJA INSTRUKSI PEMILIHAN................................................. 40
A. Instruksi Pemilihan If................................................................................ 40
B. Instruksi Switch Case .............................................................................. 48
1.7 Lembar Kerja Instruksi Pengulangan ......................................................... 58
1.8 Pembuatan Form Login .............................................................................. 70
1.9 Penggunaan Array ...................................................................................... 78
A. Deklarasi Array di Java ............................................................................ 78
B. Array Multi Dimensi.................................................................................. 83
1.10 LEMBAR KERJA ARRAY.......................................................................... 84
BAB II PEMBUATAN APLIKASI ANDROID .......................................................... 93
2.1 Pembuatan Basis Data Menggunakan DBMS MYSQL............................ 93
2.2 Lembar Kerja Basis Data ......................................................................... 95
3.1 Pembuatan Application Programming Interface (API) Web Services ........ 110
3.2 Pembuatan Project Android Studio ........................................................ 115
DAFTAR PUSTAKA ............................................................................................ 143

WIDIASTUTI-LAB RPL BBPPMPV BMTI I


BAB I INSTRUKSI DASAR ANDROID

TUJUAN PEMBELAJARAN:
1. Mengaplikasikan pengaturan atribut widget
2. Mengaplikasikan penggunaan operator aritmatika
3. Mengaplikasikan penggunaan operator logika
4. Mengaplikasikan penggunaan instruksi pemilihan
5. Mengaplikasikan penggunaan instruksi pengulangan
6. Mengaplikasikan penggunaan array

1.1 Pengaturan Atribut Widget

Setiap widget memiliki atribut masing-masing, dimana setiap atribut tersebut


mempunyai fungsi tersendiri. Misalnya pada widget textview memiliki atribut
pengaturan textcolor, text size, dan sebagainya. Semua atribut sebuah widget dapat
diatur melalui tab desain, pada bagian attributes atau pada tab code dengan
menuliskan code atributnya. Berikut ini contoh pengaturan beberapa widget pada
android studio.

a. Atribut Widget Texview


TextView memiliki banyak atribut, misalnya pengaturan text size, textcolor,
textAlignment dapat diatur menggunakan tab desain seperti berikut ini.
Textsize untuk pengaturan ukuran huruf, textcolor, mengatur warna huruf,
textalignment mengatur posisi text apakah rata kiri, kanan, atau di
tengah/center.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 1


b. Atribut widget RadioButton
RadioButton memiliki beberapa pengaturan atribut misalnya buttonTint untuk
mengatur warna bulatan pada radiobutton, yang bisa diatur dari tab desain,
pada button tint, pilih warna sesuai keinginan.

c. Atribut Checkbox

CheckBox memiliki beberapa pengaturan atribut misalnya buttonTint untuk


mengatur warna bulatan pada radiobutton, yang bisa diatur dari tab desain,
pada button tint, pilih warna sesuai keinginan.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 2


d. Atribut Button
CheckBox memiliki beberapa pengaturan atribut misalnya background untuk
mengatur warna button, yang bisa diatur dari tab desain, pada background,
pilih warna sesuai keinginan.

e. Penambahan pengaturan atribut melalui file xml.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 3


Pengaturan atribut dapat dilakukan juga dengan membuat file xml, untuk
menambah style pada atribut widget tertentu. Misalnya untuk membuat
edittext dan button memiliki rounded courner, sehingga tampilan edittext dan
button tersebut tidak hanya kotak tetapi seperti ada bulatan pada setiap
ujung kotaknya. Berikut ini cara membuat file xml rounded corner untuk
menambah atribut background di edit text dan button.
1. Buka project yang ada widget edit text, lalu [ada folder re, klik kanan, pilih
new file, beri nama rondedcorner.xml.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 4


2. Maka akan terbentuk file rondedcorner.xml, selanjutnya buat coding
berikut ini pada file rondedcorner.xml

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

<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#FFFFFF"/>
<stroke android:width="2dp" android:color="#4f000000"
/>
<corners
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp"/>
</shape>

3. Buka file activity_main.xml, selanjutnya pada atribut background, diganti


dengan mengambil file ronded corner, dapat dilakukan dari tab code
seperti berikut ini.
<EditText
android:id="@+id/edit3"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 5


android:layout_width="329dp"
android:layout_height="39dp"
android:background="@drawable/ronded"
android:ems="10"
android:hint="input nilai uas"
android:inputType="textEmailAddress"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.916"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.417" />

4. Atau dapat dilakukan dari tab desain seperti berikut ini.

5. Hasil tampilan rounded corner pada edit text dan button, terlihat seperti
berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 6


1.2 Pengaturan File xml pada folder values.

Folder Values dalam struktur project android studio berisi file strings.xml dan
colors.xml. Kedua file ini berfungsi untuk pengaturan warna dan dapat mengatur
semua string yang digunakan pada layout aplikasi. File colors.xml dapt
ditambahkan atau diubah beberapa warna sesuai keinginan, seperti berikut ini.

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


<resources>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="peach">#F87655</color>
<color name="kuning">#FFEB3B</color>
</resources>

Sedangkan file strings.xml, dapat digunakan untuk mengubah judul project


android, seperti berikut ini.
<resources>
<string name="app_name">Contoh Radio Button</string>
</resources>

WIDIASTUTI-LAB RPL BBPPMPV BMTI 7


Ketika project dijalankan, maka judul project sudah berubbah sesuai dengan
yang dituliskan pada strings.xml.

1.3 Penggunaan Operator

Beberapa contoh operator di JAVA antara lain yaitu:

1. Operator arithmatika (unary dan binary)


2. Operator pembanding
3. Operator Logika

WIDIASTUTI-LAB RPL BBPPMPV BMTI 8


WIDIASTUTI-LAB RPL BBPPMPV BMTI 9
WIDIASTUTI-LAB RPL BBPPMPV BMTI 10
OPERATOR LOGIKA

Operator logika memiliki satu atau lebih operand boolean yang menghasilkan nilai
boolean. Operator Logika diantaranya: && (logika AND), || (logika OR), | (boolean
logika inclusive OR), ^ (boolean logika exclusive OR), dan ! (logika NOT).

Logika && (Logika AND)

Hasil Operand Logika && (AND) akan bernilai true jika kedua operand
bernilai true dan akan bernilai false jika ada salah satu operand yang
bernilai false. Untuk lebih jelasnya coba perhatikan tabel kebenaran berikut ini.

---- OPERAND1 ---- ---- OPERAND2 ---- ---- HASIL ----

true true true

true false false

false true false

false false false

WIDIASTUTI-LAB RPL BBPPMPV BMTI 11


Dan berikut ini merupakan contoh sederhana kode program yang menggunakan
Logika && (AND).

public class operator_logika {


public static void main(String[] args){
int operand1 = 48;
int operand2 = 70;

/**
* Demonstrasi1 penggunaan Logika AND, hasilnya akan true
* karena kedua operand tersebut bernilai true
*/
boolean test1 = operand1 > 20 && operand2 <= 100;
System.out.println(test1);

/**
* Demonstrasi2 penggunaan Logika AND, hasilnya akan false
* karena ada salah satu operand yang bernilai false
*/
boolean test2 = operand1 < 20 && operand2 <= 100;
System.out.println(test2);
}
}

Hasilnya akan seperti berikut ini.

Logika | | (Logika OR)

Hasil Operand Logika || (Logika OR) akan bernilai true jika kedua operand
bernilai true atau ada salah satu operand yang bernilai true dan akan
bernilai false jika kedua operand bernilai false. Coba perhatikan tabel kebenaran
berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 12


---- OPERAND1 ---- ---- OPERAND2 ---- ---- HASIL ----

true true true

true false true

false true true

false false false


Perhatikan contoh program berikut ini.

public class operator_logika {


public static void main(String[] args){
int operand1 = 80;
int operand2 = 120;

//Demonstrasi1 || (Logika OR)


boolean test1 = (operand1 == 80) || (operand2 < 10);
System.out.println(test1);

//Demonstrasi2 || (Logika OR)


boolean test2 = (operand1 > 100) || (operand2 >= 200);
System.out.println(test2);
}
}

Jalankan maka hasilnya akan seperti ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 13


Logika | (boolean logika inclusive OR)

Perbedaan dasar antara logika | | (OR) dan | (inclisive OR) adalah bahwa logika | |
(OR) mendukung short-circuit evaluations (proses evaluasi sebagian), sementara
| tidak. Contoh penulisan kode programnya seperti berikut ini.

public class operator_logika {


public static void main(String[] args){
int operand1 = 80;
int operand2 = 120;

//Demonstrasi || (Logika OR)


boolean test1 = (operand1 < 200) || (operand2++ != 400);
System.out.println(operand1);
System.out.println(operand2);
System.out.println(test1);

//Demonstrasi | (boolean Logika Inclusive OR)


boolean test2 = (operand1 < 200) | (operand2++ != 400);
System.out.println(operand1);
System.out.println(operand2);
System.out.println(test2);
}
}

Hasilnya:

Coba perhatikan, pada Logika | | (OR), variable operand2++ tidak akan di evaluasi
karena pada operand1 sudah bernilai true jadi program tidak akan memperdulikan
sesuatu yang terjadi pada operand2 tapi jika operand1 bernilai false maka program
akan mengevaluasi operand2.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 14


Pada logika | (boolean logika inclusive OR) operand2 akan tetap di evaluasi
walaupun pada operand1 bernilai true.

Logika ^ (boolean logika exclusive OR)

Pada logika ^ (exclusive OR), operand akan bernilai true jika nilai boolean pada
kedua operand tidak sama dan akan bernilai false jika nilai boolean pada kedua
operand sama. Berikut ini merupakan tabel kebenaran untuk logika ^ (exclusive
OR).
---- OPERAND1 ---- ---- OPERAND2 ---- ---- HASIL ----

true true false

true false true

false true true

false false false


Dan berikut ini merupakan contoh program yang menggunakan logika ^ (exclusive
OR).

public class operator_logika {


public static void main(String[] args){
int operand1 = 77;
int operand2 = 30;

//Demonstrasi1 ^ (boolean logika exclusive OR)


boolean test1 = (operand1 > 100) ^ (operand2 != operand1);
System.out.println(test1);

//Demonstrasi2 ^ (boolean logika exclusive OR)


boolean test2 = (operand1 < 10) ^ (operand2 > 40);
System.out.println(test2);
}
}

Outputnya akan seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 15


Logika ! (Logika NOT)

Logika ! (NOT) digunakan hanya untuk satu Operand saya, logika NOT akan
menghasilkan true jika nilai pada boolean berisi false dan akan bernilai false jika
nilai pada boolean berisi true, singkatnya operator ini merupakan kebalikan
dari true menjadi false dan false menjadi true. Tebel kebenaran untuk logika
NOT seperti ini.

---- OPERAND ---- ---- HASIL ----

true false

false true
Untuk contoh programnya seperti berikut ini.

public class operator_logika {


public static void main(String[] args){
int operand = 200;

//Demonstrasi1 ! (logika NOT)


boolean test1 = (operand > 100);
System.out.println(test1);

//Demonstrasi2 ! (logika NOT)


boolean test2 = (operand > 100);
System.out.println(!test2);
}
}

Hasilnya akan seperti ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 16


1.4 LEMBAR KERJA PENGGUNAAN OPERATOR

A. Operator Arithmatika

1. Buat Project baru, beri nama project, dan pilih empty activity
2. Buka file activity_main.xml, lalu desain widget menggunakan layout
linear dan relative seperti berikut ini.

3. Atau bisa dari tab code membuat coding seperti berikut ini.

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


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 17


android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="60dp"
tools:context=".MainActivity">

<EditText
android:id="@+id/inputpertama"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="bilangan pertama"
android:inputType="number" />

<EditText
android:id="@+id/inputkedua"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="bilangan kedua"
android:inputType="number" />

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp"
android:gravity="center">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"
android:onClick="prosestambah"
android:id="@+id/tambah"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/tambah"
android:text="-"
android:onClick="proseskurang"
android:id="@+id/kurang"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/kurang"
android:text="x"
android:onClick="proseskali"
android:id="@+id/kali"/>

WIDIASTUTI-LAB RPL BBPPMPV BMTI 18


<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/kali"
android:text="/"
android:onClick="prosesbagi"
android:id="@+id/bagi"/>
</RelativeLayout>

<TextView
android:id="@+id/hasil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp"
android:background="#ED5A5A"
android:text="HASIL"
android:textAlignment="center"
android:textSize="30sp" />
</LinearLayout>

4. Buka file MainActivity.java, lalu buatlah coding berikut ini.

package com.example.contohoperator;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


//deklarasi variabel
EditText input1,input2;
TextView output;
Double v1,v2,hasil;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

WIDIASTUTI-LAB RPL BBPPMPV BMTI 19


input1 = (EditText) findViewById(R.id.inputpertama);
input2 = (EditText) findViewById(R.id.inputkedua);
output = (TextView) findViewById(R.id.hasil);

public void konver(){


//konversi tipe data ke double
v1 = Double.parseDouble(input1.getText().toString());
v2 = Double.parseDouble(input2.getText().toString());
}

public void prosestambah(View view) {


konver();
hasil = v1+v2; //penjumlahan
output.setText(Double.toString(hasil)); //output
}

public void proseskurang(View view) {


konver();
hasil = v1-v2; //pengurangan
output.setText(Double.toString(hasil)); //output
}

public void proseskali(View view) {


konver();
hasil = v1*v2; //perkalian
output.setText(Double.toString(hasil)); //output
}
public void prosesbagi(View view) {
konver();
hasil = v1/v2; //pembagian
output.setText(Double.toString(hasil)); //output
}
}

5. Jalankan Program, inputkan bilangan pertama dan bilangan kedua,


lalu klik salah satu operator misalnya tambah atau kali, maka akan
terlihat output seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 20


B. OPERATOR LOGIKA

1. Buat project baru, pilih empty activity, beri nama project sesuai keinginan
2. Buka file activity_main.xml, desain activity tambahkan edittext, button dan
textview, seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 21


3. Atau bisa dari tab code dan buat coding berikut ini.

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


<LinearLayout
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:orientation="vertical"
android:paddingLeft="10dp"
android:paddingTop="60dp"
android:paddingRight="10dp"
tools:context=".MainActivity">

<EditText
android:id="@+id/inputpertama"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="operator logika kesatu"
android:inputType="text" />

<EditText
android:id="@+id/inputkedua"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="operator logika kedua"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 22


android:inputType="text" />

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="20dp">

<Button
android:id="@+id/opor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="logikaor"
android:text="OR" />

<Button
android:id="@+id/opand"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/opor"
android:onClick="logikaand"
android:text="AND" />

<Button
android:id="@+id/opnot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/opand"
android:onClick="logikanot"
android:text="NOT" />

<Button
android:id="@+id/bagi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/opnot"
android:onClick="logikaxor"
android:text="XOR" />
</RelativeLayout>

<TextView
android:id="@+id/hasil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 23


android:layout_marginTop="50dp"
android:background="#ED5A5A"
android:text="HASIL"
android:textAlignment="center"
android:textSize="30sp" />
</LinearLayout>
android:text="XOR" />
</RelativeLayout>

<TextView
android:id="@+id/hasil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp"
android:background="#ED5A5A"
android:text="HASIL"
android:textAlignment="center"
android:textSize="30sp" />
</LinearLayout>

4. Buka file MainActivity.java, lalu buat coding berikut ini.

package com.example.operatorlogika;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


//deklarasi variabel
EditText input1,input2;
TextView output;
Boolean v1,v2,hasil;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

WIDIASTUTI-LAB RPL BBPPMPV BMTI 24


input1 = (EditText) findViewById(R.id.inputpertama);
input2 = (EditText) findViewById(R.id.inputkedua);
output = (TextView) findViewById(R.id.hasil);

public void konver(){


//konversi tipe data ke boolean
v1 =
Boolean.parseBoolean(input1.getText().toString());
v2 =
Boolean.parseBoolean(input2.getText().toString());
}

public void logikaand(View view) {


konver();
hasil = v1 && v2; //logika And
output.setText(Boolean.toString(hasil)); //output
}

public void logikaor(View view) {


konver();
hasil = v1||v2; //Logika OR
output.setText(Boolean.toString(hasil)); //output
}

public void logikanot(View view) {


konver();
hasil = !v1; //Logika NOT
output.setText(Boolean.toString(hasil)); //output
}
public void logikaxor(View view) {
konver();
hasil = v1^v2; //logika XOR
output.setText(Boolean.toString(hasil)); //output
}
}

5. Jalankan program pada AVD, terlihat output seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 25


Ketika program running, input operand 1 misal true, input operand 2 misal
true, klik salah satu tombol operator logika, misal XOR, maka akan terlihat
hasil false. Input operand tidak berlaku case sensitive, jadi dapat dimasukkan
input operand dengan huruf besar atau huruf kecil. Hasil operator logika akan
sesuai tabel pada gerbang logika (lihat tabel hasil operator logika pada
modul).

WIDIASTUTI-LAB RPL BBPPMPV BMTI 26


TUGAS LK PENGGUNAAN OPERATOR

Buatlah project android yang terdiri dari beberapa activity, ketika diklik
next muncul activity berikutnya, dengan ketentuan sebagai berikut.

a. Tampilan pertama splash screen


b. Tampilan kedua seperti berikut ini.

c. Tampilan ketiga, nama anggota kelompok masing-masing.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 27


next

d. Tampilan keempat buatlah activity untuk menghitung nilai akhir siswa,


dengan ketentuan nilai akhir= (uh + uts+uas)/3.
Gunakan widget sesuai kebutuhan, sedangkan untuk layout dengan
tampilan seperti pada gambar, tetapi kelompok 1 menggunakan
layout tabel, kelompok 2 menggunakan layout constraint, kelompok 3
menggunakan layout relative, kelompok 4 menggunakan layout linear.

HITUNG

WIDIASTUTI-LAB RPL BBPPMPV BMTI 28


e. Tampilan kelima membuat perhitungan diskon harga barang,
dengan ketentuan seperti berikut ini. Input barang edittext,
tombol hitung, total harga textview. Total harga= jumlahbarang *
harga satuan

Layout Kelompok 1 : Linear Layout


Layout Kelompok 2 : Constraint Layout
Layout Kelompok 3 : Relative Layout
Layout Kelompok 4 : Table Layout

TOKO MAJU JAYA


Input nama barang
Input jumlah barang
Input harga satuan

HITUNG

TOTAL HARGA

f. Tampilan keenam penggunaan operator logika seperti yang ada


pada lembar kerja

WIDIASTUTI-LAB RPL BBPPMPV BMTI 29


1.5 Instruksi Pemilihan dan Pengulangan

A. Instruksi Pemilihan/Pengkondisian

Pengkondisian/pemilihan adalah pengontrol program menggunakan


operator bersyarat dengan kondisi yang telah ditentukan.
Digunakan untuk memeriksa kebenaran sebuah kondisi dengan ekspresi
logika untuk menentukan langkah eksekusi berikutnya.
Untuk memutuskan langkah mana yang akan ditempuh oleh program.
Instruksi pemilihan/pengkondisian pada JAVA ada dua yaitu menggunakan instruksi
if dan switch case.
1. Penggunaan instruksi pemilihan if

 If kontrol

WIDIASTUTI-LAB RPL BBPPMPV BMTI 30


 If – else control

WIDIASTUTI-LAB RPL BBPPMPV BMTI 31


Contoh Penggunaan if else pada java

 Multi If - else

WIDIASTUTI-LAB RPL BBPPMPV BMTI 32


 If Bersarang/Nested If

WIDIASTUTI-LAB RPL BBPPMPV BMTI 33


Contoh kasus :

Pada sebuah hotel, harga ditentukan oleh Tipe Kamar dan Lama Menginap pada
hotel tersebut. Hotel tersebut memiliki 3 tipe kamar, yaitu : Superior, Deluxe, dan
Premium. Dengan aturan harga tampak seperti berikut :

WIDIASTUTI-LAB RPL BBPPMPV BMTI 34


2. Penggunaan Instruksi Switch – Case
Digunakan untuk memeriksa nilai-nilai yang mungkin dari sebuah ekspresi.
int, byte, short, char

WIDIASTUTI-LAB RPL BBPPMPV BMTI 35


B. Instruksi Pengulangan / Looping

Pengulangan adalah pernyataan dalam pemrograman dimana program akan


mengulang sebuah atau sekelompok pernyataan selama kondisi bernilai benar.
Instruksi pengulangan pada JAVA dapat menggunakan While, do while, dan for.
Berikut ini contoh penerapan instruksi pengulangan pada JAVA.

 Instruksi Pengulangan While

Bagian pada statement akan terus menerus dieksekusi selama pertanyaan


bernilai true. Contoh penerapan instruksi pengulangan While di JAVA

WIDIASTUTI-LAB RPL BBPPMPV BMTI 36


 Instruksi Pengulangan Do While

Pernyataan Do…….While akan melakukan pengecekan kondisi di belakang.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 37


 Instruksi Pengulangan FOR

 Perulangan for akan dikerjakan dalam hitungan yang sudah pasti.


 Kita sudah tahu dengan pasti berapa kali perulangan akan terjadi.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 38


WIDIASTUTI-LAB RPL BBPPMPV BMTI 39
1.6 LEMBAR KERJA INSTRUKSI PEMILIHAN

A. Instruksi Pemilihan If

A1. Penggunaan If Else


1. Buat project baru, pilih empty activity, beri nama project.
2. Buka file activity_main.xml, buat desain seperti berikut ini

3. Buka Mainactivity.java, lalu buat coding berikut ini

package com.example.latihaninput;

import android.support.v7.app.AppCompatActivity;

WIDIASTUTI-LAB RPL BBPPMPV BMTI 40


import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {


//deklarasi variabel
EditText input1,input2,input3;
double nuh,nuts,nuas,na;
TextView txtnilai,txtket;
Button btnhitung;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input1=(EditText)findViewById(R.id.edit1);
input2=(EditText)findViewById(R.id.edit2);
input3=(EditText)findViewById(R.id.edit3);
btnhitung=(Button)findViewById(R.id.button);
txtnilai=(TextView)findViewById(R.id.textnilai);
txtket=(TextView)findViewById(R.id.ket);

btnhitung.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

nuh = Double.parseDouble(input1.getText().toString());
nuts = Double.parseDouble(input2.getText().toString());
nuas = Double.parseDouble(input3.getText().toString());
na= (nuh+nuts+nuas)/3;
txtnilai.setText(Double.toString(na));
if (na>70 && na<100){
txtket.setText("Alhamdulilah lulus");

}
else if(na<70){
txtket.setText("belum lulus");
}

else {
txtket.setText("tidak ada nilai");
}

}
});
}
}

WIDIASTUTI-LAB RPL BBPPMPV BMTI 41


4. Jalankan program pada AVD, terlihat output seperti berikut ini. Jika
hasil perhitungan nilai akhir lebih dari 70, maka keterangan lulus, jika
nilai akhir kurang dari 70 maka keterangan belum lulus, dan jika nilai
di atas 100, keterangan tidak ada nilai.

A2. Penggunaan Nested If pada Checkbox


1. Buat project baru, pilih empty activity, beri nama project.
2. Buka file activity_main.xml, buat desain seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 42


3. Atau bisa dilakukan dari tab code dan buat coding berikut ini.

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


<LinearLayout 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:layout_margin="8dp"
android:orientation="vertical"
tools:context=".MainActivity">

<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:gravity="center"
android:text="Daftar Diklat di BBPPMPV BMTI"
android:textSize="18sp"
android:textStyle="bold" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<CheckBox

WIDIASTUTI-LAB RPL BBPPMPV BMTI 43


android:id="@+id/oop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Diklat OOP " />

<CheckBox
android:id="@+id/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Diklat Android" />

<CheckBox
android:id="@+id/basisdata"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Diklat Basis Data" />
</LinearLayout>

<Button
android:id="@+id/daftar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=" Daftar" />

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:gravity="center"
android:text="Diklat yang ingin diikuti"
android:textSize="18sp"
android:textStyle="bold" />

<TextView
android:id="@+id/pilihan_satu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Pilihan 1: "
android:textColor="#000000"
android:textSize="14sp" />

<TextView
android:id="@+id/pilihan_dua"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="Pilihan 2: "
android:textColor="#000000"
android:textSize="14sp" />

<TextView

WIDIASTUTI-LAB RPL BBPPMPV BMTI 44


android:id="@+id/pilihan_tiga"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="Pilihan 3: "
android:textColor="#000000"
android:textSize="14sp" />

</LinearLayout>

4. Buka file MainActivity.java lalu buat coding berikut ini.

package com.example.proyekif;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

//deklarasi variabel

private CheckBox diklatoop, diklatandroid, diklatbd;


private String menu1, menu2, menu3;
private Button daftar;
private TextView pilihan1, pilihan2, pilihan3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Memanggil semua widget


diklatoop = findViewById(R.id.oop);
diklatandroid = findViewById(R.id.android);
diklatbd = findViewById(R.id.basisdata);
pilihan1 = findViewById(R.id.pilihan_satu);
pilihan2 = findViewById(R.id.pilihan_dua);
pilihan3 = findViewById(R.id.pilihan_tiga);
daftar = findViewById(R.id.daftar);

//membuat button supaya bisa diklik

daftar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

WIDIASTUTI-LAB RPL BBPPMPV BMTI 45


// Melihat Status Kondisi Pada Pilihan Diklat OOP
if(diklatoop.isChecked()){
menu1 = "Diklat OOP";
}else if(!diklatoop.isChecked()){
menu1 = " ";
}

// Melihat Status Kondisi Pada Pilihan Diklat Android


if(diklatandroid.isChecked()){
menu2 = "Diklat Android";
}else if(!diklatandroid.isChecked()){
menu2 = " ";
}

// Melihat Status Kondisi Pada Pilihan Diklat Basis Data


if(diklatbd.isChecked()){
menu3 = "Diklat Basis Data";
}else if(!diklatbd.isChecked()){
menu3 = " ";
}

// Kondisi Jika Tidak Ada Salah Satupun Daftar Diklat Yang


Dipilih
if(!diklatoop.isChecked() && !diklatandroid.isChecked() &&
!diklatbd.isChecked()){
Toast.makeText(getApplicationContext(), "Tidak Ada Menu
yang Dipesan", Toast.LENGTH_SHORT).show();
}else{
// Menampilkan Hasil Yang Di Input Dari User pada toast
Toast.makeText(getApplicationContext(), "Pesanan
Terkirim", Toast.LENGTH_SHORT).show();
pilihan1.setText("Pilihan 1: "+menu1);
pilihan2.setText("Pilihan 2: "+menu2);
pilihan3.setText("Pilihan 3: "+menu3);
}
}
});
}

5. Jalankan program pada AVD.


Jika tidak ada menu diklat yang dipilih, lalu klik tombol daftar, maka akan
muncul pesan tidak ada menu yang dipesan pada toast, dan tidak ada
daftar menu yang dipilih pada textview seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 46


Jika ada menu diklat yang dipilih, misal yang dipilih menu diklat oop dan basis data,
Lalu klik tombol daftar, maka akan terlihat output menu diklat yang dipilih pada text
view pilihan 1 dan pilihan 3, dan muncul text pesanan terkirim pada toast, seperti
berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 47


B. Instruksi Switch Case

B1. Contoh penggunaan Switch case Pada Radio Button


1. Buat project baru, pilih empty activity, beri nama project
2. Buka file activity_main.xml, lalu buat desain seperti berikut ini

WIDIASTUTI-LAB RPL BBPPMPV BMTI 48


3. Atau bisa dari tab code buat coding berikut ini

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


<android.support.constraint.ConstraintLayout
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"
android:layout_marginRight="30dp"
android:layout_marginLeft="30dp"
android:layout_marginBottom="30dp"
android:layout_marginTop="30dp"
android:background="#F67898"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PENGGUNAAN RADIO BUTTON!"
android:textColor="#100F0F"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 49


android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.146" />

<RadioGroup
android:id="@+id/menuopsi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.416">

<RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:buttonTint="#F65889"
android:text="MEMBUAT LAYOUT"
android:textColor="#F3F2F5"
android:textSize="18sp"
tools:layout_editor_absoluteX="133dp"
tools:layout_editor_absoluteY="247dp" />

<RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:buttonTint="@color/teal_200"
android:text="CODING MAINACTIVITY.JAVA"
android:textSize="18sp"
tools:layout_editor_absoluteX="133dp"
tools:layout_editor_absoluteY="247dp" />

<RadioButton
android:id="@+id/radio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:buttonTint="@color/purple_700"
android:text="MEMPERBAIKI ERROR CODE"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 50


android:textSize="18sp"
tools:layout_editor_absoluteX="133dp"
tools:layout_editor_absoluteY="247dp" />

</RadioGroup>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="APA KESULITAN ANDA DALAM CODING ANDROID?"
android:textColor="#100F0F"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.276" />

</android.support.constraint.ConstraintLayout>

4. Buka file MainActivity.java dan buat coding berikut ini

package com.example.radiobutton5;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

//deklarasi variabel

private RadioGroup pilihan;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

pilihan=findViewById(R.id.menuopsi);
pilihan.setOnCheckedChangeListener(new
RadioGroup.OnCheckedChangeListener() {
@Override

WIDIASTUTI-LAB RPL BBPPMPV BMTI 51


public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId) {
case R.id.radio1:
Toast.makeText(getApplication(), "MEMBUAT LAYOUT",
Toast.LENGTH_SHORT).show();
break;
case R.id.radio2:
Toast.makeText(getApplication(), "CODING
MAINACTIVITY.JAVA", Toast.LENGTH_SHORT).show();
break;
case R.id.radio3:
Toast.makeText(getApplication(), "MEMPERBAIKI ERROR
CODE", Toast.LENGTH_SHORT).show();
break;
}
}
});
}
}

5. Jalankan program pada AVD, akan terlihat output, jika dipilih salah satu
radio buttonnya misalnya memilih pilihan ketiga, maka akan terlihat
tampilan text memperbaiki error code (pilihan ketiga) pada toast, seperti
berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 52


B2. Contoh Penggunan Switch Case Pada Menu Option

1. Buka project menu yang telah dibuat sebelumnya


2. Buat activity baru, klik file new activity, empty activity,beri nama activity, klik
finish
3. Bka file activity_main2.xml dan tambahkan satu textview dengan tulisan
PROFIL SMK, seperti desain berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 53


4. Atau bisa dari tab code pada activity_main2.xml, buat coding berikut ini.

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


<android.support.constraint.ConstraintLayout
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=".MainActivity2">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PROFIL SMK"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.175"
android:textColor="#191717"
android:textSize="24sp"
tools:layout_editor_absoluteX="153dp"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 54


tools:layout_editor_absoluteY="195dp" />
</android.support.constraint.ConstraintLayout>

5. Buka file MainActivity.java dan tambahkan coding seperti berikut ini.

package com.example.proyekmenu;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.content.Intent;
import android.view.MenuItem;
import android.widget.Toast;
import android.app.AlertDialog;
import android.content.DialogInterface;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menusaya, menu);
return true;
}

public boolean onOptionsItemSelected(MenuItem item) {


switch (item.getItemId()) {
case R.id.menu1:

startActivity(new Intent(this, MainActivity2.class));


Toast.makeText(getApplicationContext(), "Profil SMK",
Toast.LENGTH_SHORT).show();
break;

case R.id.menu2:
Toast.makeText(getApplicationContext(), "Struktur
Organisasi", Toast.LENGTH_SHORT).show();
break;

case R.id.menu3:
Toast.makeText(getApplicationContext(), "Kompetensi
Keahlian", Toast.LENGTH_SHORT).show();
break;

WIDIASTUTI-LAB RPL BBPPMPV BMTI 55


case R.id.menu4:

AlertDialog.Builder builder = new AlertDialog.Builder(this);


builder.setCancelable(false);
builder.setMessage("Do you want to Exit?");
builder.setPositiveButton("Yes", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//if user pressed "yes", then he is allowed to exit
from application
finish();
}
});
builder.setNegativeButton("No", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//if user select "No", just cancel this dialog and
continue with app
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();

Toast.makeText(getApplicationContext(), "EXIT",
Toast.LENGTH_SHORT).show();
break;
}
return true;
}
}

6. Jalankan program pada AVD, sehingga terlihat output, ketika menu profil
SMK diklik, akan membuka activity kedua, yang berisi textview profil SMK
dan akan muncul toast Profil SMK seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 56


Ketika menu exit diklik, akan muncul alert dialog, berupa konfirmasi apakah
ingin keluar dari aplikasi atau tidak, jika diklik no, maka akan tetap berada
pada aplikasi, jika diklik yes maka akan keluar dari aplikasi, seperti berikut
ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 57


1.7 Lembar Kerja Instruksi Pengulangan
A. Pengulangan tanpa input user

1. Buat project baru, pilih empty activity, beri nama project


2. Buka file activity_main.xml dan lakukan desain seperti berikut ini.

3. Desain layout dapat dilakukan dari tab code dengan membuat coding
berikut ini.

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


<android.support.constraint.ConstraintLayout
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=".MainActivity">

<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 58


android:text="CONTOH PENGULANGAN WHILE<DO WHILE< FOR"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.462"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.181" />

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="FOR"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.817"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.346" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="WHILE"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.157"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.346" />

<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DO WHILE"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.346" />

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="HASILNYA"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 59


app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.499" />

</android.support.constraint.ConstraintLayout>

5. Buka file MainActivity.java, lalu buat coding berikut ini.

6. package com.example.contohulang;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


//deklarasi variabel
TextView output;
Button tfor,twhile,tdo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
output = (TextView) findViewById(R.id.txthasil);

twhile=(Button)findViewById(R.id.button1);
tdo=(Button)findViewById(R.id.button2);
tfor=(Button)findViewById(R.id.button3);

//untuk tombol while

twhile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int angka=0;
while (angka<=12){

output.setText(output.getText().toString()+angka);
angka++;

}
}
});

tdo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int angka=0;

WIDIASTUTI-LAB RPL BBPPMPV BMTI 60


do {

output.setText(output.getText().toString()+angka+"\n");
angka=angka+1;
}while (angka<=12);
}
});

tfor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int angka;
for (angka=0;angka<=12;angka++){

output.setText(output.getText().toString()+angka+"\n");
}
}
});
}
}

7. Jalankan program pada AVD, klik salah satu tombol while, do while atau
for, maka akan terlihat tampilan berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 61


B. Pengulangan dengan input user

1. Buat project baru, pilih empty activity, beri nama project


2. Buka file activity_main.xml dan lakukan desain seperti berikut ini.

3. Desain layout dapat juga dibuat dari tab code, dan buat coding berikut
ini

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


<android.support.constraint.ConstraintLayout
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=".MainActivity">

<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Instruksi Pengulangan!"
android:textColor="#100F0F"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 62


android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.444"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.165" />

<EditText
android:id="@+id/edit1"
android:layout_width="280dp"
android:layout_height="43dp"
android:ems="10"
android:hint="input batas akhir pengulangan"
android:inputType="number"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.368"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.298" />

<TextView
android:id="@+id/txthasil"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="HASILNYA"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.598" />

<Button
android:id="@+id/button1"
android:layout_width="72dp"
android:layout_height="52dp"
android:text="FOR"

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.049"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.423" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 63


android:text="do while"

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.337"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.426" />

<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="WHILE"

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.647"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.426" />

<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CLEAR"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.95"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.426" />

</android.support.constraint.ConstraintLayout>

5. Buka file MainActivity.java dan buat coding berikut ini.

6. package com.example.contohwhile;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.Button;

WIDIASTUTI-LAB RPL BBPPMPV BMTI 64


public class MainActivity extends AppCompatActivity {
//deklrasi variabel
EditText input1;
TextView output;
Button tfor, twhile, tdo, tclear;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
input1 = (EditText) findViewById(R.id.edit1);
output = (TextView) findViewById(R.id.txthasil);
tfor = (Button) findViewById(R.id.button1);
twhile = (Button) findViewById(R.id.button3);
tdo = (Button) findViewById(R.id.button2);
tclear = (Button) findViewById(R.id.button4);

tfor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Integer no =
Integer.parseInt(input1.getText().toString());
StringBuilder tampil = new StringBuilder();
for (int i = 0; i <= no; i++) {
tampil.append(i);
}
output.setText(tampil);

}
});

tdo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Integer no =
Integer.parseInt(input1.getText().toString());
StringBuilder tampil = new StringBuilder();
int i = 0;
do {

tampil.append(i);
i++;
} while (i <= no);
output.setText(tampil);

}
});

WIDIASTUTI-LAB RPL BBPPMPV BMTI 65


twhile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Integer no =
Integer.parseInt(input1.getText().toString());
StringBuilder tampil = new StringBuilder();
int i = 0;
while (i <= no) {
tampil.append(i);
i++;
}
output.setText(tampil);

}
});

tclear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
output.setText("");
}
});
}

7. Jalankan program pada avd, inputkan nilai angka akhir untuk


pengulangannya, klik tombol while, atau for, atau do while, sehingga
terlihat hasil pengulangannya, lalu klik tombol clear untuk membersihkan
hasilnya seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 66


TUGAS INSTRUKSI PEMILIHAN DAN PENGULANGAN

Buatlah project yang memuat beberapa activity dengan ketentuan sebagai


berikut.

1. Tampilan awal splash screen, desain bebas.


2. Tampilan kedua penggunaan option menu untuk membuka semua
activity pada project ini , dengan menu terdiri dari Profil Kelompok, Toko
Maju, Hotel Sejahtera, Deret Bilangan Genap, Gambar Bintang
3. Tampilan ketiga Profil Kelompok memuat nama anggota kelompok,
desain bebas
4. Tampilan keempat Toko Maju, menghitung harga barang dengan
tampilan seperti berikut ini. Total harga= jumlah barang * harga satuan.
Ketika diklik tombol next, maka akan membuka activity kelima yang
menampilkan passing input data dan total harga.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 67


TOKO MAJU JAYA

Nama barang : roti tawar


Jumlah barang: 2
Harga satuan : 15000
Total harga: 30000

NEXT

5. Tampilan keenam Hotel sejahtera. Sebagai sebuah hotel yang baru


dibuka, Hotel sejahtera menentukan harga berdasarkan Tipe Kamar dan
Lama Menginap pada hotel tersebut. Hotel tersebut memiliki 3 tipe
kamar, yaitu : Superior, Deluxe, dan Premium. Dengan aturan harga
tampak seperti berikut :

Buatlah activity keenam ini, dengan yang ditampilkan adalah input nama
konsumen, pemilihan tipe kamar dan lama menginap, serta total harga
hotel. Penggunaan widget dan layout disesuaikan dengan kebutuhan

WIDIASTUTI-LAB RPL BBPPMPV BMTI 68


(misalnya untuk pemilihan tipe kamar dan lama menginap menggunakan
radio button).

6. Tampilan ketujuh membuat deret bilangan genap menerapkan


penggunaan instruksi pengulangan dengan input user, dengan layout
seperti berikut ini.

7. Tampilan kedelapan membuat gambar bintang menerapkan nested loop,


dengan output seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 69


1.8 Pembuatan Form Login

Akses sebuah aplikasi dapat dibatasi dengan membuat form login, dimana user
harus memasukkan username dan password untuk dapat membuka aplikasi. Form
login dapat dibuat menggunakan fasilitas login activity yang ada pada android
studio. Sedangkan untuk pembatasan akses dengan memasukkan username dan
password dapat menerapkan instruksi pemilihan if else. Berikut ini tahapan
pembuatan form login.

1. Buka salah satu proyek yang sudah ada sebelumnya, lalu buat activity baru
dengan cara klik File, new Activity, pilih empty Activity, seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 70


2. Selanjutnya akan terlihat tampilan pemberian nama FormLogin seperti
berikut ini, lalu klik finish.

3. Buka file Activity_Form_Login.xml, dan buat desain form login seperti


berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 71


4. Pembuatan desain form login dapat dilakukan juga dari tab code dengan
membuat coding berikut ini.

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


<android.support.constraint.ConstraintLayout
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=".FormLogin">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DIKLAT ANDROID 2020"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.613"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.16" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Selamat datang di BMTI"
android:textSize="30sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.566"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.085" />

<EditText
android:id="@+id/edit1"
android:layout_width="360dp"
android:layout_height="49dp"
android:inputType="textPersonName"
android:hint="username"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.49"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 72


app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.624" />

<ImageView
android:id="@+id/imageView2"
android:layout_width="210dp"
android:layout_height="198dp"
android:src="@drawable/ikon1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.542"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.313" />

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LOGIN"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.894" />

<EditText
android:id="@+id/edit2"
android:layout_width="349dp"
android:layout_height="63dp"
android:ems="10"
android:hint="password"
android:inputType="textPassword"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.403"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.76" />

</android.support.constraint.ConstraintLayout>

WIDIASTUTI-LAB RPL BBPPMPV BMTI 73


5. Buka FormLoginActivity.java, dan buat coding berikut ini.

package com.example.projekkesatu;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.content.Intent;
import android.app.AlertDialog;

public class FormLogin extends AppCompatActivity {


//deklarasi variabel
EditText username, password;
Button btnLogin;
String usernamekey, passwordkey;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_form_login);
//inisialisasi widget

username = (EditText) findViewById(R.id.edit1);


password = (EditText) findViewById(R.id.edit2);
btnLogin = (Button) findViewById(R.id.blogin);

btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
usernamekey = username.getText().toString();
passwordkey = password.getText().toString();
if (usernamekey.equals("bmti") &&
passwordkey.equals("bmti")) {
//jika login berhasil
Toast.makeText(getApplicationContext(), "LOGIN SUKSES",
Toast.LENGTH_SHORT).show();
Intent intent = new Intent(FormLogin.this,
MainActivity.class);
FormLogin.this.startActivity(intent);
finish();
} else {
//jika login gagal
AlertDialog.Builder builder = new
AlertDialog.Builder(FormLogin.this);
builder.setMessage("Username atau Password Anda salah!")
.setNegativeButton("Retry",

WIDIASTUTI-LAB RPL BBPPMPV BMTI 74


null).create().show();
}

}
});

6. Buka androidmanifest.xml, lalu pindahkan intent filter ke dalam activity form


login seperti berikut ini.
7. <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.projekkesatu">

<application
android:allowBackup="true"
android:icon="@mipmap/jinlewbbm"
android:label="@string/app_name"
android:roundIcon="@mipmap/jinlewbbm"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".FormLogin">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity">

</activity>
</application>

</manifest>

8. Lakukan setting configuration untuk project, klik Menu Run, edit


configuration, atur launch ativity menjadi formlogin, seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 75


9. Jalankan program pada AVD, masukkan username dan password, jika
username dan password benar maka akan terlihat tampilan activity kedua,
tetapi jika salah akan terlihat alert dialog bahwa username dan password
salah.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 76


Jika username dan passwor benar terlihat tampilan activity kedua.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 77


1.9 Penggunaan Array
A. Deklarasi Array di Java
Array adalah kumpulan variabel (elemen), berukuran tetap (fixed-length element
collection), berurutan dan mempunyai tipe data sama. Tidak ada batasan berapa
banyak dimensi Array yang dibuat, tetapi bukan sesuatu yang biasa membuat obyek
Array dengan dimensi lebih dari tiga. Array sebenarnya adalah obyek. Variabel yang
menggunakan Array adalah variabel acuan. Karena elemen Array dapat
mempunyai tipe data apapun, termasuk tipe acuan, elemen Array juga dapat berupa
veriabel acuan yang mengacu ke Array lain. Ketika Array akan digunakan, Array
terlebih dahulu harus dibuat. Dalam deklarasi Array, Anda diminta untuk
menentukan tipe data dan jumlah elemen (length) dari Array. Jumlah elemen Array
tidak berubah (fixed-length) setelah Array dideklarasikan.

Array menggunakan indeks untuk memudahkan akses terhadap data yang


disimpannya. Indeks array dimulai dari 0.

Cara membuat array kosong:

// cara pertama
String[] nama;

// cara kedua
String nama[];

WIDIASTUTI-LAB RPL BBPPMPV BMTI 78


// cara ketiga dengan kata kunci new
String[] nama = new String[5];
Parhatikan:

 Gunakan kurung siku [] untuk membuat array;


 Kurung siku bisa diletakkan setelah tipe data atau nama array;
 Angka 5 dalam kurung artinya jumlah elemen array.

Contoh: String namasiswa[5] ini artinya nama array adalah namasiswa berjumlah
5 elemen,dengan tipe data string. Array yang kosong dapat diisi data, pastikan
mengisinya dengan data yang sesuai dengan tipe datanya.

nama[0] = "Linda";
nama[1] = "Santi";
nama[2] = "Susan";
nama[3] = "Mila";
nama[4] = "Ayu";

Pengisian array dapat dilakukan secara langsung mengisi datanya seperti berikut
ini.

String[] nama = {"Linda", "Santi", "Susan", "Mila", "Ayu"};

Array memiliki indeks untuk memudahkan kita mengakses datanya, oleh sebab itu
bisa mengambil data array dapat dilakukan dengan cara seperti ini:

// membuat array
String[] nama = {"Linda", "Santi", "Susan", "Mila", "Ayu"};

// mengambil data array

WIDIASTUTI-LAB RPL BBPPMPV BMTI 79


System.out.println(teman[2]);
Susan

Outputnya adalah elemen array ke-2 , yatu Susan karena indeks array dimulai dari
0.

Pembuatan array dengan instruksi pengulangan

Jika elemen array jumlahnya sangat banyak maka pengambilan data satu persatu
akan membuat baris code menjadi sangat panjang, selain itu juga harus membuat
ulang nama array-nya dengan indeks yang berbeda.

Contoh:

System.out.println(teman[0]);
System.out.println(teman[1]);
System.out.println(teman[2]);
System.out.println(teman[3]);

Jika data array-nya sampai 1000, maka harus mengetik kode sebanyak seribu kali.
Oleh sebab itu akan lebih mudah menggunakan instruksi perulangan untuk array
dengan jumlah elemen yang sangat banyak. Contoh coding java penggunaan
instruksi pengulangan pada array

WIDIASTUTI-LAB RPL BBPPMPV BMTI 80


Dalam contoh program tersebut, penggunaan atribut length untuk mengambil
panjang arraynya. Jadi, perulangan akan dilakukan sebanyak jumlah elemen
arraynya.

import java.util.Scanner;

public class Buah {


public static void main(String[] args) {

// membuat array buah-buahan


String[] buah = new String[5];

// membuat scanner
Scanner scan = new Scanner(System.in);

// mengisi data ke array


for( int i = 0; i < buah.length; i++ ){
System.out.print("Buah ke-" + i + ": ");

WIDIASTUTI-LAB RPL BBPPMPV BMTI 81


buah[i] = scan.nextLine();
}

System.out.println("---------------------------");

// menampilkan semua isi array


for( String b : buah ){
System.out.println(b);
}

}
}

Output:

WIDIASTUTI-LAB RPL BBPPMPV BMTI 82


B. Array Multi Dimensi
Array multi dimensi artinya array yang memiliki lebih dari satu dimensi. Contoh
berikut ini adalah array dua dimensi:

String[][] kontak = {
{"Lili","08111"},
{"Lala","08122"},
{"Maya","08133"}
};
Indek ke-0 pada array kontak berisi array {"lili","08111"}.

Contoh cara mengakses data dari array dua dimensi:

WIDIASTUTI-LAB RPL BBPPMPV BMTI 83


1.10 LEMBAR KERJA ARRAY

A. Array Statis 1 Dimensi

1. Buat project baru, pilih empty activity, beri nama project


2. Buka file activity_main.xml, lalu buat desain seperti berikut ini, tambahkan
textview dan listview.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 84


3. Desain dapat dilakukan dengan membuat coding berikut ini pada tab code.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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=".MainActivity">

<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Contoh Array!"
android:textColor="#101010"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.11" />

<ListView
android:id="@+id/list1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="30dp"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="32dp">

</ListView>

</android.support.constraint.ConstraintLayout>

4. Buka Mainactivity.java dan masukkan coding berikut ini.


5. package com.example.contoharray1;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

WIDIASTUTI-LAB RPL BBPPMPV BMTI 85


import android.view.View;
import android.widget.TextView;
import android.widget.ListView;
import android.widget.ArrayAdapter;
import android.widget.Button;

public class MainActivity extends


AppCompatActivity {
//deklarasi variabel

ListView list;
ArrayAdapter adapter1;
String namasiswa[] = {"andi", "ali", "fina",
"dodo"};
//Button tombol;

@Override
protected void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//inisialisasi widget
//tombol=(Button)
findViewById(R.id.button1);
adapter1 = new ArrayAdapter(this,
android.R.layout.simple_list_item_1, namasiswa);
list = (ListView)
findViewById(R.id.list1);
list.setAdapter(adapter1);

}
}

WIDIASTUTI-LAB RPL BBPPMPV BMTI 86


6. Jalankan program pada AVD, terlihat output berikut ini

WIDIASTUTI-LAB RPL BBPPMPV BMTI 87


B. Array Dinamis

1. Buat project baru, pilih empty activity, beri nama project


2. Buka activity_main.xml dan buatlah desain berikut ini dengan menambahkan
widget textview, edittext,button,listview.

3. Desain dapat dilakukan dengan cara membuat coding berikut ini pada tab
code
4. <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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=".MainActivity">

<TextView
android:id="@+id/judul"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ARRAY DINAMIS"
android:textColor="#0E0E0E"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 88


android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.053" />

<EditText
android:id="@+id/anama"
android:layout_width="326dp"
android:layout_height="54dp"
android:ems="10"
android:inputType="text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.494"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.146" />

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hasilnya"
android:textColor="#0B0B0B"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.203"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.359" />

<Button
android:id="@+id/btnsubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.255" />
<ListView
android:id="@+id/list_data"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</android.support.constraint.ConstraintLayout>

WIDIASTUTI-LAB RPL BBPPMPV BMTI 89


5. Pada folder java/com.example, klik kanan , pilih new java class dan beri
nama ambildata

6. Pada file ambildata.java tersebut buatlah coding berikut ini.


7. package com.example.contoharray2;

public class ambildata {


private String data;

public String getData() {


return data;
}

public void setData(String data) {


this.data = data;
}

public String toString(){


return (getData());
}
}

WIDIASTUTI-LAB RPL BBPPMPV BMTI 90


8. Buka Mainactivity.java lalu buat coding berikut ini

package com.example.contoharray2;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {


//deklarasi variabe;

private List kontenList = new ArrayList<>();


private ArrayAdapter adapter = null;
private ListView listView;
private EditText InputData;
private Button simpan;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//inisialisasi widget

listView = findViewById(R.id.list_data);
InputData = findViewById(R.id.anama);
simpan = findViewById(R.id.btnsubmit);

//Mengatur ArrayAdapter untuk listView


adapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1, kontenList);
listView.setAdapter(adapter);

simpan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ambildata myKonten = new ambildata();
myKonten.setData(InputData.getText().toString());
adapter.add(myKonten);
Toast.makeText(getApplicationContext(),"Data Tersimpan",

WIDIASTUTI-LAB RPL BBPPMPV BMTI 91


Toast.LENGTH_SHORT).show();
}
});

9. Jalankan program pada AVD, input nama siswa, lalu klik tombol submit,
terlihat output seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 92


BAB II PEMBUATAN APLIKASI ANDROID

TUJUAN PEMBELJARAN:
1. Membuat Basis data menggunakan DBMS MYSQL
2. Membuat API Web Services
3. Membuat project android studio terhubung ke API Web Services

Dalam membuat aplikasi android yang terhubung ke basis data dapat dilakukan
dengan berbagai cara diantaranya menggunakan SQLITE untuk pembuatan basis
datanya. SQLITE merupakan single database yang dapat menyatu dengan aplikasi
androidnya, artinya semua query databasenya mencakup create database, add,
edit, delete database berada pada file aplikasi androidnya. Tetapi penggunaan
SQLITE memiliki keterbatasan yaitu tidak bisa untuk database client server dan juga
keterbatasan dalam ukuran dan jumlah data. Artinya SQLITE tidak bisa
menampung data dalam jumlah yang sangat besar. Oleh sebab itu dalam kegiatan
pembelajaran ini, akan digunakan cara lain yaitu menggabungkan aplikasi android
yang dibuat dengan android studio, dengan database MYSQL. Ada 3 hal yang perlu
dilakukan dalam membuat aplikasi android dengan cara tersebut yaitu:

1. Membuat Basis Data


2. Membuat Application Programming Interface (API) Web Services
3. Membuat Project Android Studio

2.1 Pembuatan Basis Data Menggunakan DBMS MYSQL

MySQL adalah salah satu contoh perangkat lunak DBMS yang memiliki fitur
pengelolaan data serta menggunakan perintahSQL ( Structured Query
Language). MySQL memiliki dua bentuk lisensi, yaitu FreeSoftware dan
Shareware. MySQL yang biasa digunakan adalah MySQL FreeSoftware yang
berada dibawah lisensi GNU/GPL (General Public License).

MySQL merupakan sebuah database server yang free, artinya bebas menggu
nakan database ini untuk keperluan pribadi atau usaha tanpa harus membeli

WIDIASTUTI-LAB RPL BBPPMPV BMTI 93


atau membayar lisensinya. MySQL pertama kali dirintis oleh seorang
programmer database bernama Michael Widenius. Selain database sever,
MySQL juga merupakan program yang dapat mengakses suatu database yang
berposisi sebagai server, yang berarti program kita berposisi sebagai client.
Jadi MySQL adalah sebuah database yang digunakan sebagai client server.

DBMS MySQL merupakan suatu perangkat lunak database berupa database


relasional atau disebut Relational Database Management System (RDBMS)
yang menggunakan suatu bahasa permintaan yang bernama SQL. Kelebihan
MYSQL diantaranya :
 MySQL merupakan Database Management System ( DBMS )
 MySQL sebagai Relation Database Management System ( RDBMS ) atau
disebut dengan database Relational.
 MySQL Merupakan sebuah database server yang free, artinya
bebas digunakan untuk keperluan pribadi atau usaha tanpa harus membeli
atau membayar lisensinya.
 MySQL merupakan sebuah database client.
 MySQL mampu menerima query yang bertumpuk dalam satu permintaan
atau Multi-Threading.
 MySQL merupakan Database yang mampu menyimpan data berkapasitas
sangat besar hingga berukuran GigaByte sekalipun.
 MySQL diidukung oleh driver ODBC
 MySQL adalah database menggunakan enkripsi password, sehingga aman
karena memiliki password untuk mengaksesnya.
 MySQL merupakan Database Server yang multi user, artinya database ini
tidak hanya digunakan olehsatu pihak pengguns akan tetapi dapat dapat
digunakan oleh banyak pengguna.
 MySQL mendukung field yang dijadikan sebagai kunci primer dan kunci
unik (Unique).
 MySQL memliki kecepatan dalam pembuatan table maupun pengubahan
tabel.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 94


DBMS MYSQL sebagai DBMS Client Server memiliki kemampuan untuk
menerapkan Data Definition Language (DDL), Data Manipulation Languange
(DML), serta Data Control Language (DCL). DDL adalah metode query SQL
yang berguna untuk mendefinisikan data pada sebuah database, Instruksi
SQL DDL antara lain:
 Create digunakan untuk membuat database dan tabel
 Drop digunakan untuk menghapus tabel dan database
 Alter digunakan untuk melakukan perubahan struktur tabel yang
telah dibuat, baik menambah field (add), mengganti nama field
(change) ataupun menamakannya kembali (rename), dan
menghapus field (drop).
MySQL selaku database server yang mampu berjalan pada jaringan, tentu
saja harus memiliki kemampuan khusus yang berguna untuk melakukan
DML seperti tambah data, hapus data, edit data, cari data, dan sebagainya.

2.2 Lembar Kerja Basis Data

A. Instalasi XAMPP versi 3.2.2


 Sebelum proses instalasi, terlebih dahulu mempersiapkan master dari
aplikasi yang akan diinstal dalam hal ini adalah xampp 3.2.2;

WIDIASTUTI-LAB RPL BBPPMPV BMTI 95


 Klik dua kali pada xampp-win32-1.8.3-5-vc11-installer, sehingga
akan muncul kotak dialog berikut , kemudian klik tombol Next.

 Selanjutnya menampilkan komponen-komponen yang akan diinstal,


tandai semua bagian yang ada dalam menu select components,
kemudian tekan tombol next.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 96


 Pada bagian ini, untuk menentukan letak penyimpanan, simpan folder
xampp pada directory c:\xampp , kemudian klik tombol next.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 97


 Pada bagian ini hilangkan tanda celkis yang terdapat pada pilihan
Learn More About Bitnami For xampp, kemudian klik tombol Next.

 selanjutnya tunggu proses instalasi berlangsung, sampai dengan


selesai.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 98


 tekan tombol finish, ceklis pada bagian do you want to start the
control panel now

 pada bagian ini klik pada bagian apache dan mysql untuk
mengaktifkan xampp, kemudian klik tombol start.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 99


 buka browser dan ketikan pada url : localhost/phpmyadmin

WIDIASTUTI-LAB RPL BBPPMPV BMTI 100


B. Instruksi DDL dan DML

1. Cara membuat database di phpMyAdmin


a. Klik New
b. Isi sebuah database pada kolom buat basis data, lalu klik buat

a b

2. Cara membuat tabel siswa di database sekolah


a. Klik database sekolah
b. Masukan nama tabel, contoh siswa pada kolom buat tabel dan berapa
jumlah kolom yang dibutuhkan, klik kirim

a
3. Mengisi data, type, dan value pada tabel siswa
a. Struktur tabel yang akan dibuat,
Name Type Value index
nis Varchar 10 primary
namasiswa Varchar 50 -
alamat Varchar 50 -
jk Varchar 15 -
b. klik simpan

WIDIASTUTI-LAB RPL BBPPMPV BMTI 101


4. Cara melihat struktur tabel dan menampilkan tabel
a. Cara melihat struktur tabel, klik tabel siswa pada database sekolah lalu
klik menu struktur

b. Cara melihat tabel, klik tabel siswa pada database sekolah lalu klik menu
jelajahi / browse

WIDIASTUTI-LAB RPL BBPPMPV BMTI 102


5. Menambahkan/memasukan data pada record
a. Klik tabel siswa, pilih Insert / Tambahkan, isi nis, nama, alamat, jk lalu klik
kirim

b. Cara melihat tabel, klik tabel siswa pada database sekolah lalu klik menu
jelajahi / browse

6. Buatlah tabel-tabel yang lain dengan struktur kabel sebagai berikut :

WIDIASTUTI-LAB RPL BBPPMPV BMTI 103


a. Tabel Guru
Name Type Value index
kdguru Varchar 10 primary
nip Varchar 18 -
namaguru Varchar 50 -
alamat Varchar 50 -
jk Varchar 15 -

b. Tabel Keahlian
Name Type Value index
kdpk Varchar 10 primary
namapk Varchar 30 -

c. Tabel Admin
Name Type Value index
no Int 18 primary
username Varchar 15 -
password Varchar 15 -

d. Tabel Galery
Name Type Value index
Id Int 11 primary
deskripsi Varchar 50 -
foto text -

e. Tabel Kelas
Name Type Value index
kdkelas Varchar 10 primary
namakelas Varchar 30 -
f. Tabel Mapel
Name Type Value index
kdmapel Varchar 10 primary
namamapel Varchar 30 -

g. Tabel Mengajar
Name Type Value index
kdmengajar Varchar 10 primary

WIDIASTUTI-LAB RPL BBPPMPV BMTI 104


kdguru Varchar 10 -
kdpk Varchar 10 -
kdkelas Varchar 10 -
kdmapel Varchar 10 -

h. Tabel Nilai
Name Type Value index
kdnilai Varchar 10 primary
nis Varchar 10 -
kdguru Varchar 10 -
kdpk Varchar 10 -
Kdkelas Varchar 10 -
kdmapel Varchar 10 -
uh Double - -
uts Double - -
uas Double - -
na Double - -

7. Cara merelasikan tabel di xampp


a. Klik database yang akan kita relasikan semua tabelnya, lalu klik tab
lainnya (more), lalu pilih desainer (designer)

Hasil setelah klik desiner

WIDIASTUTI-LAB RPL BBPPMPV BMTI 105


b. Cara Menghubungkan table-tabel yang berelasi
Klik tombol create relasion

c. Pilih tabel yang akan direlasikan klik yang menjadi primary key (kunci
rujukan), dalam contoh ini adalah kdguru pada tabel guru

WIDIASTUTI-LAB RPL BBPPMPV BMTI 106


d. Arahkan pada tabel yang akan direlasikan dalam hal ini tabel mengajar
yang menjadi Foregn Key adalah kdguru

e. Muncul kotak dialog seperti gambar berikut ini, lalu klik ok

WIDIASTUTI-LAB RPL BBPPMPV BMTI 107


f. Hasil relasi setelah klik ok

WIDIASTUTI-LAB RPL BBPPMPV BMTI 108


g. Hubungkan semua tabel sehingga hasilnya sebagai berikut:

h. Cara menghapus relasi, klik pada ujung relasi foreign key lalu klik
hapus/delete

WIDIASTUTI-LAB RPL BBPPMPV BMTI 109


3.1 Pembuatan Application Programming Interface (API) Web Services

Pembuatan API web services akan menggunakan PHP, dimana file PHP ini
digunakan untuk parsing data aplikasi Android. Pada tahap pembuatan API web
services ini, ada beberapa tahap yang harus dilakukan, seperti berikut ini.

1. Membuat folder di htdocs dengan nama websmkbmti (nama folder sesuai


keinginan)
2. Membuat File koneksi.php
File ini berfungsi untuk membuat koneksi dengan database. Berikut ini
source code file koneksi.php.

<?php

/* ====== dwi wahyu widiastuti BBPPMPV BMTI ======= */


$server = "localhost"; //sesuaikan dengan nama server
$user = "root"; //sesuaikan username
$password = ""; //sesuaikan password
$database = "smkbmti"; //sesuaikan nama database

$con = mysqli_connect($server, $user, $password, $database);


if (mysqli_connect_errno()) {
echo "Gagal terhubung MySQL: " . mysqli_connect_error();
}

?>

3. Pembuatan file register.php


<?php
header("content-type:application/json; charset=UTF-8");

include 'koneksi.php';

WIDIASTUTI-LAB RPL BBPPMPV BMTI 110


if(isset($_POST['username']) && isset($_POST['password'])){

$username = $_POST["username"];
$password = md5($_POST["password"]);

$sql_insert = "INSERT INTO user(username, password) VALUES


('$username','$password')";
$hasil = mysqli_query($sql_insert);

$response = array();
$data = array();

if($hasil > 0){


$response ["success"] = 1;
$response ["message"] = "Data inserted Successfully";
}else{
$response["success"] = 0;
$response["message"] = "An error occured";
}
echo json_encode($response);
}else{
$response["success"] = 0;
$response ["message"] = "Required fields is missing";
echo json_encode($response);
}
?>

4. Pembuatan file tambahsiswa.php


<?php
if($_SERVER['REQUEST_METHOD']=='POST'){

//Mendapatkan Nilai Variable


$nis = $_POST['nis'];
$namasiswa = $_POST['namasiswa'];
$jk = $_POST['jk'];
$alamat = $_POST['alamat'];

WIDIASTUTI-LAB RPL BBPPMPV BMTI 111


//Pembuatan Syntax SQL
$sql = "INSERT INTO siswa (nis,namasiswa,jk,alamat) VALUES
('$nis','$namasiswa','jk','$alamat')";

//Import File Koneksi database


require_once('koneksi.php');

//Eksekusi Query database


if(mysqli_query($con,$sql)){
echo 'Berhasil Menambahkan Siswa';
}else{
echo 'Gagal Menambahkan Siswa';
}
mysqli_close($con);
}
?>

5. Pembuatan file tampilsiswa.php

<?php

//untuk mendapatkan nilai nis dari table siswa


$nis = $_GET['nis'];
//Importing database
require_once('../koneksi.php');

//Sql query dengan table siswa


$sql = "SELECT * FROM siswa WHERE nis=$nis";

WIDIASTUTI-LAB RPL BBPPMPV BMTI 112


//Mendapatkan Hasil
$r = mysqli_query($con,$sql);
//Memasukkan Hasil Kedalam Array
$result = array();
$row = mysqli_fetch_array($r);
array_push($result,array(
"nis"=>$row['nis'],
"namasiswa"=>$row['namasiswa'],
"jk"=>$row['jk'],
"alamat"=>$row['alamat']
));
//Menampilkan data dalam format JSON
echo json_encode(array('result'=>$result));
mysqli_close($con);
?>

6. Pembuatan file updatesiswa.php


<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
//MEndapatkan Nilai Dari Variable
$nis = $_POST['nis'];
$namasiswa = $_POST['namasiswa'];
$jk = $_POST['jk'];
$alamat = $_POST['alamat'];

//import file koneksi database


require_once('../koneksi.php');

//Membuat SQL Query


$sql = "UPDATE siswa SET namasiswa = '$namasiswa', jk = '$jk', alamat
= '$alamat' WHERE nis = $nis;";

WIDIASTUTI-LAB RPL BBPPMPV BMTI 113


//Meng-update Database
if(mysqli_query($con,$sql)){
echo 'Berhasil Update Data Siswa';
}else{
echo 'Gagal Update Data Siswa';
}
mysqli_close($con);
}
?>

7. Pembuatan file hapussiswa.php

<?php
$nis = $_GET['nis'];
//Import File Koneksi Database
require_once('../koneksi.php');
//Membuat SQL Query
$sql = "DELETE FROM siswa WHERE nis=$nis;";

//Menghapus Nilai pada Database


if(mysqli_query($con,$sql)){
echo 'Berhasil Menghapus data siswa';
}else{
echo 'Gagal Menghapus data siswa';
}

mysqli_close($con);
?>

WIDIASTUTI-LAB RPL BBPPMPV BMTI 114


3.2 Pembuatan Project Android Studio

Tahapan terakhir adalah membuat project android studio yang akan terhubung
dengan API web services yang telah dibuat sebelumnya. Berikut ini adalah tahapan
pembuatan project android studio aplikasi android smkbmti.

A. Pengaturan android.manifes
Buka file androidmanifest.xml, tambahkan source code android permisiion
seperti berikut ini.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.aplikasibmti">

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

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Aplikasibmti">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

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


</intent-filter>
</activity>
</application>

</manifest>

B. Pembuatan file konfigurasi.java

1. Klik kanan pada package, klik new java class, beri nama konfigurasi
seperti berikut ini

WIDIASTUTI-LAB RPL BBPPMPV BMTI 115


2. Pada file konfigurasi.java tersebut, buat coding berikut ini.
package com.example.aplikasibmti;

public class konfigurasi {

//Dibawah ini adalah Pengalamatan tempat terseimpannya Lokasi


Skrip PHP
//Tutorial Kali ini, kita menggunakan localhost maka untuk
alamatnya tertuju ke file PHP
//dimana PHP file tersebut disimpan
//JANGAN LUPA gunakan IP SESUAI DENGAN IP KOMPUTER
public static final String
URL_ADD="http://192.168.43.213/smkbmti/siswa/tambahsiswa.php";
// public static final String URL_GET_ALL =
"http://192.168.43.213/Android/pegawai/tampilSemuaPgw.php";
public static final String URL_GET_EMP =
"http://192.168.43.213/Android/pegawai/tampilsiswa.php?id=";
public static final String URL_UPDATE_EMP =
"http://192.168.43.213/Android/pegawai/updatesiswa.php";
public static final String URL_DELETE_EMP =
"http://192.168.43.213/Android/pegawai/hapussiswa.php?id=";

//Dibawah ini merupakan script atau perintah untuk mengirim


permintaan ke dalam Skrip PHP
public static final String KEY_EMP_ID = "nis";
public static final String KEY_EMP_NAMA = "namasiswa";
public static final String KEY_EMP_POSISI = "jk";
public static final String KEY_EMP_GAJIH = "alamat";

//JSON Tags

WIDIASTUTI-LAB RPL BBPPMPV BMTI 116


public static final String TAG_JSON_ARRAY="result";
public static final String TAG_ID = "nis";
public static final String TAG_NAMA = "namasiswa";
public static final String TAG_POSISI = "jk";
public static final String TAG_GAJIH = "alamat";

//ID karyawan
//emp merupakan singkatan dari Employee
public static final String EMP_ID = "emp_id";

C. Pembuatan file RequestHandler.java


1. Klik kanan package, pilih new java class beri nama RequestHandler.
2. Buat coding berikut ini pada file RequestHandler.java
package com.example.aplikasibmti;

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 yang digunakan mengirim httpPostRequest


public String sendPostRequest(String requestURL,
HashMap<String, String>
postDataParams) {
//Membuat URL
URL url;

//Objek StringBuilder digunakan menyimpan pesan diambil


dari server
StringBuilder sb = new StringBuilder();
try {
//Inisialisasi URL
url = new URL(requestURL);

WIDIASTUTI-LAB RPL BBPPMPV BMTI 117


//Koneksi HttpURLConnection
HttpURLConnection conn = (HttpURLConnection)
url.openConnection();

//Konfigurasi koneksi
conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);

//Membuat Keluaran Stream


OutputStream os = conn.getOutputStream();

//Menuliskan 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;
//Pembaca respon server
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()));

WIDIASTUTI-LAB RPL BBPPMPV BMTI 118


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();
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();
}
}

WIDIASTUTI-LAB RPL BBPPMPV BMTI 119


D. Pembuatan tampilan tambah siswa
1. Buat desain layout tambah siswa seperti berikut ini.

2. Desain bisa dibuat dari tab code dengan membuat coding berikut ini.

<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="20dp"
android:paddingTop="50dp"
android:paddingBottom="20dp"
tools:context=".MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NIS Siswa" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextnis" />

WIDIASTUTI-LAB RPL BBPPMPV BMTI 120


<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nama Siswa" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextName" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Jenis kelamin" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextDesg" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alamat" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextSalary" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Tambah Siswa"
android:id="@+id/buttonAdd" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Tampilkan data Siswa"
android:id="@+id/buttonView" />

</LinearLayout>

WIDIASTUTI-LAB RPL BBPPMPV BMTI 121


E. Pembuatan file Mainactivity.java
File ini untuk membuat tampilan tambah siswa yang memuat button tambah
siswa dan tampil siswa, buka file mainactivity.java lalu tambahkan coding
berikut ini.
package com.example.aplikasibmti;

import android.support.v7.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.util.HashMap;

public class MainActivity extends AppCompatActivity {


//deklarasi variabel
private EditText editTextName, editTextnis;
private EditText editTextDesg;
private EditText editTextSal;

private Button buttonAdd;


private Button buttonView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextnis = (EditText) findViewById(R.id.editTextnis);
editTextName = (EditText) findViewById(R.id.editTextName);
editTextDesg = (EditText) findViewById(R.id.editTextDesg);
editTextSal = (EditText) findViewById(R.id.editTextSalary);

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


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

buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String nis = editTextnis.getText().toString().trim();
final String name =
editTextName.getText().toString().trim();

WIDIASTUTI-LAB RPL BBPPMPV BMTI 122


final String desg =
editTextDesg.getText().toString().trim();
final String sal = editTextSal.getText().toString().trim();

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

ProgressDialog loading;

@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(MainActivity.this,
"Menambahkan...", "Tunggu...", false, false);
}

@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
Toast.makeText(MainActivity.this, s,
Toast.LENGTH_LONG).show();
}

@Override
protected String doInBackground(Void... v) {
HashMap<String, String> params = new HashMap<>();
params.put(Konfigurasi.KEY_EMP_ID, nis);
params.put(Konfigurasi.KEY_EMP_NAMA, name);
params.put(Konfigurasi.KEY_EMP_POSISI, desg);
params.put(Konfigurasi.KEY_EMP_GAJIH, sal);

RequestHandler rh = new RequestHandler();


String res = rh.sendPostRequest(Konfigurasi.URL_ADD,
params);
return res;
}
}

AddEmployee ae = new AddEmployee();


ae.execute();
}

});

}
}

WIDIASTUTI-LAB RPL BBPPMPV BMTI 123


buttonView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,MainActivity2.class));
}
});

F. Pembuatan activity tampil siswa


Activity ini berfungsi untuk menampilkan semua data siswa dengan listview,
lalu ketika diklik salah satu nama siswa pada listview, akan tampil data siswa
yang diklik tersebut
1. Buat activity baru, beri nama activitymain2
2. Buka file activitymain2.xml, lalu desain seperti berikut ini.

3. Desain tersebut dapat dibuat dari tab code seperti berikut ini.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 124


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=".MainActivity2">

<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listView" />

</LinearLayout>

4. Buat file xml, dengan nama list_item.xml, lalu tambahkan coding berikut
ini.

<?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" />
</LinearLayout>

5. Buka file MainActivity2.java, lalu tambahkan coding berikut ini.

package com.example.aplikasibmti;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;

WIDIASTUTI-LAB RPL BBPPMPV BMTI 125


import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
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 MainActivity2 extends AppCompatActivity implements


AdapterView.OnItemClickListener {

private ListView listView;

private String JSON_STRING;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
listView = (ListView) findViewById(R.id.listView);
listView.setOnItemClickListener(this);
getJSON();

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 name = jo.getString(Konfigurasi.TAG_NAMA);
HashMap<String, String> employees = new HashMap<>();
employees.put(Konfigurasi.TAG_ID, id);
employees.put(Konfigurasi.TAG_NAMA, name);
list.add(employees);
}

} catch (JSONException e) {

WIDIASTUTI-LAB RPL BBPPMPV BMTI 126


e.printStackTrace();
}

ListAdapter adapter = new SimpleAdapter(


MainActivity2.this, list, R.layout.list_item,
new String[]{Konfigurasi.TAG_ID, Konfigurasi.TAG_NAMA},
new int[]{R.id.id, R.id.name});

listView.setAdapter(adapter);
}

private void getJSON() {


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

ProgressDialog loading;

@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(MainActivity2.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();
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {

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


HashMap<String, String> map = (HashMap)
parent.getItemAtPosition(position);
String empId = map.get(Konfigurasi.TAG_ID).toString();
intent.putExtra(Konfigurasi.EMP_ID, empId);

WIDIASTUTI-LAB RPL BBPPMPV BMTI 127


startActivity(intent);

}
}

6. Buat activity baru beri nama Mainactivity3


7. Buka file activity_main3.xml dan desain layout seperti berikut ini.

8. Desain dapat dilakukan dari tab code dengan membuat coding berikut ini.

<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=".MainActivity3">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 128


android:text="ID Pegawai" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextId" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nama Pegawai" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextName" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Posisi" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextDesg" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Salary" />

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/editTextSalary" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Update Pegawai"
android:id="@+id/buttonUpdate" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hapus Pegawai"
android:id="@+id/buttonDelete" />
</LinearLayout>

WIDIASTUTI-LAB RPL BBPPMPV BMTI 129


9. Buka file mainactivity3.java, dan tambahkan coding berikut ini

package com.example.aplikasibmti;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AlertDialog;
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 MainActivity3 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_main3);

Intent intent = getIntent();

id = intent.getStringExtra(Konfigurasi.EMP_ID);

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


editTextName = (EditText) findViewById(R.id.editTextName);
editTextDesg = (EditText) findViewById(R.id.editTextDesg);
editTextSalary = (EditText) findViewById(R.id.editTextSalary);

WIDIASTUTI-LAB RPL BBPPMPV BMTI 130


buttonUpdate = (Button) findViewById(R.id.buttonUpdate);
buttonDelete = (Button) findViewById(R.id.buttonDelete);

buttonUpdate.setOnClickListener(this);
buttonDelete.setOnClickListener(this);

editTextId.setText(id);

getEmployee();
}

private void getEmployee() {


class GetEmployee extends AsyncTask<Void, Void, String> {
ProgressDialog loading;

@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(MainActivity3.this,
"Fetching...", "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 name = c.getString(Konfigurasi.TAG_NAMA);
String desg = c.getString(Konfigurasi.TAG_POSISI);
String sal = c.getString(Konfigurasi.TAG_GAJIH);

editTextName.setText(name);

WIDIASTUTI-LAB RPL BBPPMPV BMTI 131


editTextDesg.setText(desg);
editTextSalary.setText(sal);

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

private void updateEmployee() {


final String name = editTextName.getText().toString().trim();
final String desg = editTextDesg.getText().toString().trim();
final String salary = editTextSalary.getText().toString().trim();

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


ProgressDialog loading;

@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(MainActivity3.this,
"Updating...", "Wait...", false, false);
}

@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
Toast.makeText(MainActivity3.this, s,
Toast.LENGTH_LONG).show();
}

@Override
protected String doInBackground(Void... params) {
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put(Konfigurasi.KEY_EMP_ID, id);
hashMap.put(Konfigurasi.KEY_EMP_NAMA, name);
hashMap.put(Konfigurasi.KEY_EMP_POSISI, desg);
hashMap.put(Konfigurasi.KEY_EMP_GAJIH, salary);

RequestHandler rh = new RequestHandler();

String s = rh.sendPostRequest(Konfigurasi.URL_UPDATE_EMP,
hashMap);

return s;
}
}

UpdateEmployee ue = new UpdateEmployee();


ue.execute();
}

WIDIASTUTI-LAB RPL BBPPMPV BMTI 132


private void deleteEmployee() {
class DeleteEmployee extends AsyncTask<Void, Void, String> {
ProgressDialog loading;

@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(MainActivity3.this,
"Updating...", "Tunggu...", false, false);
}

@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
Toast.makeText(MainActivity3.this, s,
Toast.LENGTH_LONG).show();
}

@Override
protected String doInBackground(Void... params) {
RequestHandler rh = new RequestHandler();
String s =
rh.sendGetRequestParam(Konfigurasi.URL_DELETE_EMP, id);
return s;
}
}

DeleteEmployee de = new DeleteEmployee();


de.execute();
}

private void confirmDeleteEmployee() {


AlertDialog.Builder alertDialogBuilder = new
AlertDialog.Builder(this);
alertDialogBuilder.setMessage("Apakah Kamu Yakin Ingin Menghapus
Pegawai ini?");

alertDialogBuilder.setPositiveButton("Ya",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
deleteEmployee();
startActivity(new Intent(MainActivity3.this,
MainActivity2.class));
}
});

alertDialogBuilder.setNegativeButton("Tidak",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {

WIDIASTUTI-LAB RPL BBPPMPV BMTI 133


}
});

AlertDialog alertDialog = alertDialogBuilder.create();


alertDialog.show();
}

@Override
public void onClick(View v) {
if (v == buttonUpdate) {
updateEmployee();
}

if (v == buttonDelete) {
confirmDeleteEmployee();
}
}
}

10. Jalankan program pada AVD, terlihat output, input data siswa , klik
tambah maka data akan bertambah ke tabel siswa.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 134


G. Pembuatan tampilan hasil login user pada activity_main.xml
1. Buat new project, pilih empty activity, lalu beri nama project sesuai keinginan.
2. Buka file activyty_main.xml, lalu buat desain seperti berikut ini.

3. Pembuatan desain bisa dilakukan dari tab code seperti berikut ini.
<?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"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 135


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

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical">

<ImageView
android:id="@+id/logo"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:background="@drawable/ikon1" />

<TextView
android:id="@+id/TextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:text="DIKLAT ANDROID BBPPMPV BMTI 2020"
android:textSize="18dip"
android:textStyle="bold" />

<View
android:id="@+id/View1"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_gravity="center"
android:background="#448AFF" />

<TextView
android:id="@+id/txt_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:text="ID" />

<TextView
android:id="@+id/txt_username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:text="Username" />

<Button

WIDIASTUTI-LAB RPL BBPPMPV BMTI 136


android:id="@+id/btn_logout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:background="#00555555"
android:text="Logout"
android:textStyle="bold" />

</LinearLayout>

</RelativeLayout>

H. Pembuatan tampilan form login user

1. Buat activity baru, klik File, New Activity, empty activity, beri nama activity
sesuai keinginan.
2. Buat desain tampilan seperti berikut ini.

3. Desain dapat dibuat dari tab code seperti berikut ini.

WIDIASTUTI-LAB RPL BBPPMPV BMTI 137


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical">

<ImageView
android:id="@+id/logo"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:background="@drawable/ikon1" />

<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="5dp"
android:text="DIKLAT ANDROID BBPPMPV BMTI 2020"
android:textSize="18dip"
android:textStyle="bold" />

<View
android:id="@+id/View1"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_gravity="center"
android:background="#448AFF" />

<TextView
android:id="@+id/TextView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="30dip"
android:text="SILAKAN LOGIN"
android:textSize="16dip" />

<EditText
android:id="@+id/txt_username"
android:layout_width="match_parent"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 138


android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:hint="Username"
android:inputType="text"
android:singleLine="true" />

<EditText
android:id="@+id/txt_password"
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="15dp"
android:text="Login"
android:background="#448AFF"
android:textColor="#fff"
android:textStyle="bold" />

<Button
android:id="@+id/btn_register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="15dp"
android:background="#00555555"
android:text="Register"
android:textStyle="bold" />

</LinearLayout>

</RelativeLayout>

I. Pembuatan tampilan register user


1. Buat activity baru, beri nama register
2. Desain tampilan register user seperti berikut ini

WIDIASTUTI-LAB RPL BBPPMPV BMTI 139


3. Desain dapat dilakukan dari tab code seperti berikut ini.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical">

<ImageView
android:id="@+id/logo"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:background="@drawable/ikon1" />

<TextView
android:id="@+id/TextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"

WIDIASTUTI-LAB RPL BBPPMPV BMTI 140


android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:text="REGISTRASI USER DIKLAT ANDROID BBPPMPV BMTI 2020"
android:textAlignment="center"
android:textSize="18dip"
android:textStyle="bold" />

<View
android:id="@+id/View1"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_gravity="center"
android:background="#448AFF" />

<TextView
android:id="@+id/TextView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="30dip"
android:text="REGISTER BELOW"
android:textSize="16dip" />

<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"
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" />

<EditText
android:id="@+id/txt_confirm_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:hint="Comfirmation Password"
android:password="true" />

WIDIASTUTI-LAB RPL BBPPMPV BMTI 141


<Button
android:id="@+id/btn_register"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="15dp"
android:background="#448AFF"
android:textColor="#fff"
android:text="Register"
android:textStyle="bold" />

<Button
android:id="@+id/btn_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="15dp"
android:background="#00555555"
android:text="Login"
android:textStyle="bold" />

</LinearLayout>

</RelativeLayout>

WIDIASTUTI-LAB RPL BBPPMPV BMTI 142


DAFTAR PUSTAKA

Android Developer, Panduan Android Developer,


https://developer.android.com/guide/ diakses pada 17 September 2020
Earl Triggs, Android App Development in Android Studio, 2020, Kindle Edition,
USA
Michael Burton, Android Application Development for Dummies 3 rd Edition, 2015,
Wiley & Sons Inc, Canada
Neil Smyth, Android 4.0 Development Essentials -Java Edition, 2020, Payload
Media Inc, USA

WIDIASTUTI-LAB RPL BBPPMPV BMTI 143

Anda mungkin juga menyukai