Anda di halaman 1dari 36

MAKALAH MID

Pemprograman Mobile
(Form Register)

DI SUSUN OLEH :

NURMAYULINA (H13116517)

AINUN MARDIYAH ISTIQAMAH (H13116507)

BAISH FAJAR LUTHFI (H13115503)

PROGRAM STUDI ILMU KOMPUTER


DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS HASANUDDIN
2019
KATA PENGANTAR

Ucapan puji-puji dan syukur semata-mata hanyalah milik Allah SWT. Hanya kepada-Nya
lah kami memuji dan hanya kepada-Nya lah kami bersyukur, kami meminta ampunan dan kami
meminta pertolongan.

Shalawat serta salam tidak lupa selalu kita haturkan untuk junjungan nabi gung kita, yaitu
Nabi Muhammad SAW yang telah menyampaikan petunjukan Allah SWT untuk kita semua,
yang merupakan sebuah pentunjuk yang paling benar yakni Syariah agama Islam yang sempurna
dan merupakan satu-satunya karunia paling besar bagi seluruh alam semesta.

Dengan hormat serta pertolongan-Nya, puji syukur, pada akhirnya kami dapat
menyelesaikan makalah kami dengan lancar. Kami pun menyadari dengan sepenuh hati bahwa
tetap terdapat kekurangan pada makalah kami ini.

Oleh sebab itu, kami sangat menantikan kritik dan saran yang membangun dari setiap
pembaca untuk materi evaluasi kami mengenai penulisan makalah berikutnya. Kami juga
berharap hal tersebut mampu dijadikan cambuk untuk kami supaya kami lebih mengutamakan
kualitas makalah di masa yang selanjutnya.

Makasssar, 5 April 2019


DAFTAR ISI

KATA PENGANTAR .................................................................................................................... 2


DAFTAR ISI ................................................................................................................................... 3
BAB I PENDAHULUAN ............................................................................................................... 4
1.1. Latar Belakang ................................................................................................................. 4
1.2. Rumusan Masalah ............................................................................................................ 4
1.3. Tujuan............................................................................................................................... 4
BAB II ............................................................................................................................................. 5
TINJAUAN PUSTAKA ................................................................................................................. 5
2.1. ANDROID .................................................................................................................... 5
2.2. ANDROID STUDIO .................................................................................................... 6
2.3. FORM REGISTER ....................................................................................................... 6
BAB III ........................................................................................................................................... 7
METODE PENYELESAIAN ......................................................................................................... 7
3.1. FLOWCHART .......................................................................................................... 7
3.2. PENAMBAHAN GRADLE ..................................................................................... 7
3.3. SINTAKS PROGRAM ............................................................................................. 9
3.4. OUTPUT ................................................................................................................. 32
BAB I
PENDAHULUAN

1.1.Latar Belakang
Memasuki abad ke 21 seperti saat ini perkembangan dalam berbagai bidang kehidupan
semakin maju dan berkembang. Berbagai bidang ikut mengalami perkembangan, mulai dari
bidang sosial budaya, ekonomi, pendidikan, politik, dan teknologi. Perubahan dalam semua
bidang tersebut membuat bidang yang satu ikut mempengaruhi bidang yang lain. Hal itu
dikarenakan adanya saling keterkaitan antara bidang yang satu dengan bidang yang lain. Salah
satu contohnya yaitu pada bidang pendidikan dan bidang teknologi.
Bidang teknologi mengalami perkembangan yang sangat pesat dan cepat. Perkembangan
dalam bidang teknologi tersebut ikut mempengaruhi perkembangan dalam bidang pendidikan
karena saat ini telah banyak hasil produk bidang teknologi yang digunakan dalam bidang
pendidikan. Salah satu contoh hasil produk teknologi yang digunakan dalam bidang pendidikan
yaitu sebagai media pembelajaran dan sebagai bidang kajian. Salah satu bidang teknologi yang
perkembangannya cukup pesat dan juga ikut digunakan dalam bidang pendidikan adalah
komputer. Perkembangan dalam bidang komputer dinilai sangat tinggi mengingat hampir setiap
saat bermunculan berbagai macam software-software baru.
Dalam makalah kali ini, kami akan merancang sebuah aplikasi mobile berupa form register
yang merupakan sebuah project untuk ujian mid semester kami. Penerapannya menggunakan
bahasa pemrograman Java for Android dalam membangun aplikasi mobile karena saat ini
android didukung oleh teknologi Java

1.2.Rumusan Masalah
Bagaimana cara kita merancang suatu aplikasi android berupa sebuah form pendafratan
(registration form)?

1.3.Tujuan
Makalah ini bertujuan agar kita dapat mempelajari dan mengetahui cara membuat aplikasi
android berupa registration form, serta penerapannya menggunakan Bahasa pemrograman Java.
BAB II
TINJAUAN PUSTAKA

2.1.ANDROID
Android adalah software besutan Google yang mencakup sistem operasi atau OS,
middleware, dan aplikasi kunci yang berbasis Linux pada suatu gadget seperti telephone cellular,
smartphone dan komputer tablet. Android persis seperti symbian yang dipergunakan oleh Nokia
dan BlackBerry OS. Jelasnya seperti microsoft windows yang sangat dikenal baik oleh para
pengguna komputer dan laptop. Jika dianalogikan, Android adalah windows-nya sedangkan
smartphone atau komputer tablet adalah unit komputernya.\
Android menyediakan platform terbuka (open souces) bagi para pengembang untuk
menciptakan aplikasi mereka sendiri untuk digunakan oleh berbagai macam piranti bergerak.
Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat piranti lunak untuk
ponsel. Kemudian Google Inc mengembangkannya dengan cara membentuk Open Handset
Alliance (OHD), konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan
telekomunikasi, termasuk Google, HTC, Intel, LG, Motorola, Qualcomm, T-Mobile, Samsung
dan Nvidia.
Di dunia ini terdapat dua jenis distributor sistem operasi Android. Pertama yang mendapat
dukungan penuh dari Google atau Google Mail Services (GMS) dan yang kedua adalah yang
benar–benar bebas distribusinya tanpa dukungan langsung Google atau dikenal sebagai Open
Handset Distribution. Keputusan Google Inc. mengembangkan Android dengan cara membentuk
Open Handset Distribution dinilai sangat tepat karena melalui hal tersebut saat ini Android telah
berhasil menjadi salah satu sistem operasi paling populer. Saking populernya Android pun dapat
mengalahkan sistem operasi lain seperti iOS, Windows Phone, dan Blackberry.
Pengembangan aplikasi pada platform Android menggunakan bahasa pemrograman Java.
Serangkaian aplikasi inti Android antara lain klien email, program SMS, kalender, peta, browser,
kontak, dan lain-lain. Android bergantung pada versi Linux 2.6 untuk layanan sistem inti seperti
keamanan, manajemen memori, manajemen proses, network stack, dan model driver. Kernel
juga bertindak sebagai lapisan abstraksi antara hardware dan seluruh software stack.
Dengan sistem distribusi open sources yang digunakan Android, memungkinkan para
pengembang untuk menciptakan berbagai macam aplikasi menarik yang dapat dinikmati oleh
para penggunanya, seperti game, chatting dan lain-lain, hal ini pulalah yang membuat
smartphone berbasis Android ini lebih murah dibanding gadget sejenisnya.
2.2.ANDROID STUDIO
Android Studio adalah Integrated Development Enviroment (IDE) untuk sistem operasi
Android, yang dibangung diatas perangkat lunak JetBrains IntelliJ IDEA dan didesain khusus
untuk pengembangan Android. IDE ini merupakan pengganti dari Eclipse Android Development
Tools (ADT) yang sebelumnya merupakan IDE utama untuk pengembangan aplikasi android.
Android studio sendiri pertama kali diumumkan di Google I/O conference pada tanggal 16
Mei 2013. Ini merupakan tahap preview dari versi 0.1 pada Mei 2013, dan memasuki tahap beta
sejak versi 0.8 dan mulai diliris pada Juni 2014.
Versi liris stabil yang pertama diliris pada December 2014, dimulai sejak versi 1.0.
Sedangkan versi stabil yang sekarang adalah versi 3.13 yang diliris pada Juni 2018. Fitur Fitur
yang tersedia saat ini dalam stable version :
 Dukungan Gradle-based build
 Android-specific refactoring dan perbaikan cepat
 Lint tools untuk menangkap kinerja, kegunaan, kompatibilitas versi, dan masalah lainnya
 Integrasi Proguard dan kemampuan penananda tanganan aplikasi
 Template-based wizards untuk membuat template design umum seperti drawer atau empty
activity
 Mendukung untuk pengembangan aplikasi Android Wear.
 Editor tata letak yang memungkinkan pengguna untuk menyeret dan menjatuhkan (drag-and-
drop) komponen UI, opsi untuk melihat tata letak pada beberapa konfigurasi layer
 Dukungan bawaan untuk Google Cloud Platform, memungkinkan integrasi dengan Firebase
Cloud Messaging („Perpesanan Google Cloud‟ Sebelumnya) dan Google App Engine
 Android Virtual Device (Emulator) untuk menjalankan dan men-debug aplikasi di studio
Android.

2.3.FORM REGISTER
Form register adalah sebuah formulir yang menyimpan informasi dari setiap orang yang
ingin bergabung/mendaftar disuatu event tertentu. Biasanya form register digunakan pada suatu
organisasi, event, dll. Agar memudahkan mengumpulkan informiasi tiap pendaftar.
BAB III
METODE PENYELESAIAN

3.1.FLOWCHART

3.2.PENAMBAHAN GRADLE
build.gradle (Project: ProjectMidMobile)
// Top-level build file where you can add configuration options common
to all sub-projects/modules.

buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath "io.realm:realm-gradle-plugin:5.3.1"

// NOTE: Do not place your application dependencies here; they


belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
google()
jcenter()
}
}

task clean(type: Delete) {


delete rootProject.buildDir
}

build.gradle (Module: app)


apply plugin: 'com.android.application'
apply plugin: 'realm-android'

android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.projectmidmobile"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-
optimize.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-
core:3.0.2'
}

3.3.SINTAKS PROGRAM
Sintaks pada “ activity_main.xml “ sebagai berikut :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:background="@mipmap/background_1"
android:orientation="vertical"
android:gravity="center"
android:padding="20dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:id="@+id/mainlinear">

<ImageView
android:layout_width="match_parent"
android:layout_height="100dp"
android:src="@mipmap/color_splash"/>

<EditText
android:id="@+id/phoneNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/phone_number_icon"
android:drawablePadding="10dp"
android:hint="Phone Number"
android:inputType="number"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/password_icon"
android:drawablePadding="10dp"
android:hint="Password"
android:inputType="textPassword"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<Button
android:id="@+id/loginBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Log In"
android:shadowColor="@android:color/transparent"
android:padding="15dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="20dp"
android:background="@drawable/shapelogin"/>

<Button
android:id="@+id/signupbtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sign Up"
android:shadowColor="@android:color/transparent"
android:padding="15dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="0dp"
android:background="@drawable/shapesignup"
android:textColor="@color/white"/>

</LinearLayout>

Sintaks pada “ MainActivity.java “ sebagai berikut :


package com.example.projectmidmobile;

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

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Rect;
import android.support.v7.app.AlertDialog;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;

import io.realm.Realm;
import io.realm.exceptions.RealmMigrationNeededException;
public class MainActivity extends AppCompatActivity {
Realm realm;
Button signup, login;
EditText number, pass;
String getnumber, getpass;

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

Realm.init(this);

try {
realm = Realm.getDefaultInstance();
} catch (RealmMigrationNeededException r) {
Realm.deleteRealm(realm.getDefaultConfiguration());
realm = Realm.getDefaultInstance();
}

signup = findViewById(R.id.signupbtn);
login = findViewById(R.id.loginBtn);
number = findViewById(R.id.phoneNumber);
pass = findViewById(R.id.password);

login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getnumber = number.getText().toString();
getpass = pass.getText().toString();

if(getnumber.isEmpty() || getpass.isEmpty()){
Toast.makeText(MainActivity.this, "Fill The Blank",
Toast.LENGTH_SHORT).show();
}else{
UserModel user =
realm.where(UserModel.class).equalTo("phone", getnumber).findFirst();
if (user != null) {
String user_password = user.getPass();
if (user_password.equals(getpass)) {
Intent intent = new Intent(MainActivity.this,
Menu.class);
intent.putExtra("phone", getnumber);
Toast.makeText(MainActivity.this, getnumber+"
Login Successfull", Toast.LENGTH_SHORT).show();
startActivity(intent);
finish();
}else {
Toast.makeText(MainActivity.this, "Invalid
Password", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(MainActivity.this, "Phone number not
registered", Toast.LENGTH_SHORT).show();
}
}
}
});

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

LinearLayout touchInterceptor = findViewById(R.id.mainlinear);


touchInterceptor.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
if(number.isFocused() || pass.isFocused()){
Rect outRect = new Rect();
number.getGlobalVisibleRect(outRect);
pass.getGlobalVisibleRect(outRect);

if(!outRect.contains((int)event.getRawX(),(int)event.getRawY())){
number.clearFocus();
pass.clearFocus();
InputMethodManager imm = (InputMethodManager)
v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(v.getWindowToken(),0);
}
}
}
return false;
}
});
}

@Override
public void onBackPressed(){
new
AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Closing Activity")
.setMessage("Are You Sure Want To Exit ?")
.setPositiveButton("Yes", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
moveTaskToBack(true);

android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
finish();
}
})
.setNegativeButton("No", null)
.show();
}
}
Sintaks pada “ activity_signup.xml “ sebagai berikut :
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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=".signup"
android:background="@mipmap/background_1"
android:gravity="center"
android:padding="20dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:id="@+id/signupsv">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">

<ImageView
android:layout_width="match_parent"
android:layout_height="100dp"
android:src="@mipmap/color_splash"/>

<EditText
android:id="@+id/phoneNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/phone_number_icon"
android:drawablePadding="10dp"
android:hint="Phone Number"
android:inputType="number"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/password_icon"
android:drawablePadding="10dp"
android:hint="Password"
android:inputType="textPassword"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/username_icon"
android:drawablePadding="10dp"
android:hint="Full Name"
android:inputType="textCapWords"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<EditText
android:id="@+id/birthdate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/birthdate_icon"
android:drawableRight="@drawable/arrow_down"
android:drawablePadding="10dp"
android:hint="Birthdate"
android:inputType="none"
android:focusable="false"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white" />

<RadioGroup
android:id="@+id/gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin="10dp"
android:padding="10dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:background="@drawable/shapeemail">

<RadioButton
android:id="@+id/male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Male"
android:textColor="@color/white"
android:checked="true"
android:buttonTint="@color/white"/>
<RadioButton
android:id="@+id/female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Female"
android:textColor="@color/white"
android:buttonTint="@color/white"/>
</RadioGroup>

<EditText
android:id="@+id/address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/address_icon"
android:drawablePadding="10dp"
android:hint="Address"
android:inputType="textCapWords"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<Button
android:id="@+id/signupbtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Sign Up"
android:shadowColor="@android:color/transparent"
android:padding="15dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="20dp"
android:background="@drawable/shapelogin"/>

<Button
android:id="@+id/cancelbtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Cancel"
android:shadowColor="@android:color/transparent"
android:padding="15dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="0dp"
android:background="@drawable/shapesignup"
android:textColor="@color/white"/>

</LinearLayout>

</ScrollView>
Sintaks pada “ signup.java “ sebagai berikut :
package com.example.projectmidmobile;

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

import android.app.DatePickerDialog;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import java.text.DateFormat;
import java.util.Calendar;

import io.realm.Realm;
import io.realm.RealmResults;
import io.realm.exceptions.RealmMigrationNeededException;

public class signup extends AppCompatActivity {


Realm realm;

RealmResults<UserModel> user;

Button signupbtn,cancel;
Calendar myCalendar;
DatePickerDialog.OnDateSetListener date;
EditText birthdate;
EditText phone,pass,name,address;
RadioGroup gender;
RadioButton selectedGender;
String getphone, getpass, getname, getaddress, getbirthdate, getgender;

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

try {
realm = Realm.getDefaultInstance();
} catch (RealmMigrationNeededException r) {
Realm.deleteRealm(realm.getDefaultConfiguration());
realm = Realm.getDefaultInstance();
}

phone = findViewById(R.id.phoneNumber);
pass = findViewById(R.id.password);
name = findViewById(R.id.username);
address = findViewById(R.id.address);
gender = findViewById(R.id.gender);
signupbtn = findViewById(R.id.signupbtn);
cancel = findViewById(R.id.cancelbtn);
birthdate = findViewById(R.id.birthdate);

myCalendar = Calendar.getInstance();

date = new DatePickerDialog.OnDateSetListener() {


@Override
public void onDateSet(DatePicker view, int year, int month, int
dayOfMonth) {
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, month);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateLabel();
}
};

birthdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new DatePickerDialog(signup.this, date,
myCalendar.get(Calendar.YEAR),
myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});

signupbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int selectedId = gender.getCheckedRadioButtonId();
selectedGender = findViewById(selectedId);

getbirthdate = birthdate.getText().toString();
getphone = phone.getText().toString();
getname = name.getText().toString();
getpass = pass.getText().toString();
getaddress = address.getText().toString();
getgender = selectedGender.getText().toString();

boolean isMale = getgender.equals("Male");

UserModel model = new UserModel(getphone, getname, getpass,


isMale, getaddress, getbirthdate);
model.setMale(isMale);

if(getphone.isEmpty() || getname.isEmpty() ||
getpass.isEmpty() || getaddress.isEmpty() || getbirthdate.isEmpty() ){
Toast.makeText(signup.this, "Fill The Blank",
Toast.LENGTH_SHORT).show();
}else{
UserModel user =
realm.where(UserModel.class).equalTo("phone", getphone).findFirst();
if (user == null) {
realm.beginTransaction();
realm.copyToRealm(model);
realm.commitTransaction();
Toast.makeText(signup.this, getphone+" registered",
Toast.LENGTH_LONG).show();
}else {
Toast.makeText(signup.this, getphone+" already
exists, try other phone number", Toast.LENGTH_SHORT).show();
return;
}

Intent intent = new Intent(signup.this,


MainActivity.class);
startActivity(intent);
finish();
}

}
});

cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(signup.this, MainActivity.class);
startActivity(i);
}
});
}

private void updateLabel() {


DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
birthdate.setText(df.format(myCalendar.getTime()));
}
}

Sintaks pada “ activity_menu.xml “ sebagai berikut :


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".Menu"
android:background="@mipmap/background_1"
android:gravity="center"
android:orientation="vertical">

<ImageView
android:layout_width="match_parent"
android:layout_height="150dp"
android:src="@mipmap/color_splash"
android:layout_marginBottom="20dp"/>
<Button
android:id="@+id/show"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Show Data"
android:shadowColor="@android:color/transparent"
android:padding="15dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="0dp"
android:background="@drawable/shapesignup"
android:textColor="@color/white"/>

<Button
android:id="@+id/edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Edit Data"
android:shadowColor="@android:color/transparent"
android:padding="15dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="0dp"
android:background="@drawable/shapesignup"
android:textColor="@color/white"/>

<Button
android:id="@+id/delete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Delete Data"
android:shadowColor="@android:color/transparent"
android:padding="15dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="0dp"
android:background="@drawable/shapesignup"
android:textColor="@color/white"/>

<Button
android:id="@+id/logout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Log Out"
android:shadowColor="@android:color/transparent"
android:padding="15dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="0dp"
android:background="@drawable/shapesignup"
android:textColor="@color/white"/>

</LinearLayout>
Sintaks pada “ Menu.java “ sebagai berikut :
package com.example.projectmidmobile;

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

import io.realm.Realm;
import io.realm.exceptions.RealmMigrationNeededException;

public class Menu extends AppCompatActivity {


Button show, edit, delete, logout;
String phone;
Realm realm;
UserModel user;

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

show = findViewById(R.id.show);
edit = findViewById(R.id.edit);
delete = findViewById(R.id.delete);
logout = findViewById(R.id.logout);

try {
realm = Realm.getDefaultInstance();
} catch (RealmMigrationNeededException r) {
Realm.deleteRealm(realm.getDefaultConfiguration());
realm = Realm.getDefaultInstance();
}

Intent i = getIntent();
phone = i.getStringExtra("phone");

show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Menu.this, show.class);
i.putExtra("phone", phone);
startActivity(i);
}
});

edit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Menu.this, edit.class);
i.putExtra("phone", phone);
startActivity(i);
}
});

delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user = realm.where(UserModel.class).equalTo("phone",
phone).findFirst();
if(user!=null){
realm.beginTransaction();
user.deleteFromRealm();
realm.commitTransaction();
Intent i = new Intent(Menu.this, MainActivity.class);
Toast.makeText(Menu.this, phone+" Has been erased",
Toast.LENGTH_SHORT).show();
startActivity(i);
}
}
});

logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Menu.this, MainActivity.class);
Toast.makeText(Menu.this, "Logged Out",
Toast.LENGTH_SHORT).show();
startActivity(i);
}
});
}
}

Sintaks pada “ activity_show.xml “ sebagai berikut :


<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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=".show"
android:background="@mipmap/background_1"
android:gravity="center"
android:padding="20dp">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">

<ImageView
android:layout_width="match_parent"
android:layout_height="100dp"
android:src="@mipmap/color_splash"/>

<TextView
android:id="@+id/phoneNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/phone_number_icon"
android:drawablePadding="10dp"
android:text="Phone Number"
android:textSize="18sp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/username_icon"
android:drawablePadding="10dp"
android:text="Name"
android:textSize="18sp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<TextView
android:id="@+id/birthdate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/birthdate_icon"
android:drawablePadding="10dp"
android:text="Birthdate"
android:textSize="18sp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<TextView
android:id="@+id/gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/gender_icon"
android:drawablePadding="10dp"
android:text="Gender"
android:textSize="18sp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<TextView
android:id="@+id/address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/address_icon"
android:drawablePadding="10dp"
android:text="Address"
android:textSize="18sp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<Button
android:id="@+id/backbtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Back"
android:shadowColor="@android:color/transparent"
android:padding="15dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="0dp"
android:background="@drawable/shapesignup"
android:textColor="@color/white"/>

</LinearLayout>

</ScrollView>

Sintaks pada “ show.java “ sebagai berikut :


package com.example.projectmidmobile;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import io.realm.Realm;
import io.realm.exceptions.RealmMigrationNeededException;
public class show extends AppCompatActivity {
Button back;
TextView phone, name, birthdate, gender, address;
String getphone, getname, getbirthdate, getgender, getaddress;
boolean isMale;

Realm realm;

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

back = findViewById(R.id.backbtn);
phone = findViewById(R.id.phoneNumber);
name = findViewById(R.id.name);
birthdate = findViewById(R.id.birthdate);
gender = findViewById(R.id.gender);
address = findViewById(R.id.address);

Intent i = getIntent();
getphone = i.getStringExtra("phone");

try {
realm = Realm.getDefaultInstance();
} catch (RealmMigrationNeededException r) {
Realm.deleteRealm(realm.getDefaultConfiguration());
realm = Realm.getDefaultInstance();
}

UserModel user = realm.where(UserModel.class).equalTo("phone",


getphone).findFirst();
if (user != null) {
getaddress = user.getAddress();
getname = user.getName();
getbirthdate = user.getBirthdate();
getgender = isMale ? "Male" : "Female";

phone.setText(getphone);
name.setText(getname);
birthdate.setText(getbirthdate);
address.setText(getaddress);
gender.setText(getgender);
}

back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(show.this, Menu.class);
i.putExtra("phone", getphone);
startActivity(i);
}
});
}
}
Sintaks pada “ activity_edit.xml “ sebagai berikut :
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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:background="@mipmap/background_1"
android:gravity="center"
android:padding="20dp"
tools:context=".edit"
android:focusable="true"
android:focusableInTouchMode="true"
android:id="@+id/editsv">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">

<ImageView
android:layout_width="match_parent"
android:layout_height="100dp"
android:src="@mipmap/color_splash"/>

<EditText
android:id="@+id/phoneNumber"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/phone_number_icon"
android:drawablePadding="10dp"
android:text="Phone Number"
android:inputType="number"
android:focusable="false"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/password_icon"
android:drawablePadding="10dp"
android:text="Password"
android:inputType="textVisiblePassword"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/username_icon"
android:drawablePadding="10dp"
android:text="Name"
android:inputType="textCapWords"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<EditText
android:id="@+id/birthdate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/birthdate_icon"
android:drawablePadding="10dp"
android:text="Birthdate"
android:focusable="false"
android:drawableRight="@drawable/arrow_down"
android:inputType="datetime"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<RadioGroup
android:id="@+id/gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin="10dp"
android:padding="10dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:background="@drawable/shapeemail">

<RadioButton
android:id="@+id/male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Male"
android:textColor="@color/white"
android:buttonTint="@color/white"/>

<RadioButton
android:id="@+id/female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Female"
android:textColor="@color/white"
android:buttonTint="@color/white"/>
</RadioGroup>

<EditText
android:id="@+id/address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="15dp"
android:background="@drawable/shapeemail"
android:drawableLeft="@drawable/address_icon"
android:drawablePadding="10dp"
android:text="Address"
android:textSize="18sp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textColorHighlight="@color/white"/>

<Button
android:id="@+id/savebtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Save"
android:shadowColor="@android:color/transparent"
android:padding="15dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="20dp"
android:background="@drawable/shapelogin"/>

<Button
android:id="@+id/cancelbtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Back"
android:shadowColor="@android:color/transparent"
android:padding="15dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="0dp"
android:background="@drawable/shapesignup"
android:textColor="@color/white"/>

</LinearLayout>

</ScrollView>
Sintaks pada “ edit.java “ sebagai berikut :
package com.example.projectmidmobile;

import android.app.DatePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import java.text.DateFormat;
import java.util.Calendar;

import io.realm.Realm;
import io.realm.exceptions.RealmMigrationNeededException;

public class edit extends AppCompatActivity {


Button save, cancel;
DatePickerDialog.OnDateSetListener date;
Calendar myCalendar;
EditText phone, name, birthdate, address, pass;
boolean isMale;
String getphone, getpass, getname, getbirthdate, getaddress;

Realm realm;
UserModel user;

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

save = findViewById(R.id.savebtn);
cancel = findViewById(R.id.cancelbtn);
phone = findViewById(R.id.phoneNumber);
name = findViewById(R.id.name);
pass = findViewById(R.id.password);
birthdate = findViewById(R.id.birthdate);
address = findViewById(R.id.address);
pass = findViewById(R.id.password);

myCalendar = Calendar.getInstance();
date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int
dayOfMonth) {
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, month);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateLabel();
}
};

birthdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new DatePickerDialog(edit.this, date,
myCalendar.get(Calendar.YEAR),
myCalendar.get(Calendar.MONTH),
myCalendar.get(Calendar.DAY_OF_MONTH)).show();
}
});

Intent i = getIntent();
getphone = i.getStringExtra("phone");

try {
realm = Realm.getDefaultInstance();
} catch (RealmMigrationNeededException r) {
Realm.deleteRealm(realm.getDefaultConfiguration());
realm = Realm.getDefaultInstance();
}

user = realm.where(UserModel.class).equalTo("phone",
getphone).findFirst();
if (user != null) {
getname = user.getName();
getpass = user.getPass();
isMale = user.isMale();
getaddress = user.getAddress();
getbirthdate = user.getBirthdate();

name.setText(getname);
phone.setText(getphone);
pass.setText(getpass);
address.setText(getaddress);
birthdate.setText(getbirthdate);
RadioButton male, female;
male = findViewById(R.id.male);
female = findViewById(R.id.female);
if (isMale) {
male.setChecked(true);
} else {
female.setChecked(true);
}
}

save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
user = realm.where(UserModel.class).equalTo("phone",
getphone).findFirst();
if (user != null) {
getname = name.getText().toString();
getpass = pass.getText().toString();
getbirthdate = birthdate.getText().toString();
RadioGroup genderRadio = findViewById(R.id.gender);
RadioButton selectedgender =
findViewById(genderRadio.getCheckedRadioButtonId());
isMale =
selectedgender.getText().toString().equals("Male");
getaddress = address.getText().toString();

realm.beginTransaction();
user.setName(getname);
user.setPass(getpass);
user.setMale(isMale);
user.setAddress(getaddress);
user.setBirthdate(getbirthdate);
realm.commitTransaction();

}
Intent intent = new Intent(edit.this, Menu.class);
Toast.makeText(edit.this, getphone+" Data Updated",
Toast.LENGTH_SHORT).show();
intent.putExtra("phone", getphone);
startActivity(intent);
finish();
}
});

cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(edit.this, Menu.class);
i.putExtra("phone", getphone);
startActivity(i);
}
});
}

private void updateLabel() {


DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
birthdate.setText(df.format(getbirthdate));
}
}

Sintaks pada “ UserModel.java “ sebagai berikut :


package com.example.projectmidmobile;

import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey;
import io.realm.annotations.Required;

public class UserModel extends RealmObject {

@Required
@PrimaryKey
private String phone; //no.hp
@Required
private String name;
@Required
private String pass;
private boolean isMale;
private String address;
private String birthdate;
//attributes

public UserModel () {}

public UserModel(String phone, String name, String pass, boolean isMale,


String address, String birthdate) {
this.phone = phone;
this.name = name;
this.pass = pass;
this.isMale = isMale;
this.address = address;
this.birthdate = birthdate;
}

public String getPhone() {


return phone;
}

public void setPhone(String phone) {


this.phone = phone;
}

public String getName() {


return name;
}

public void setName(String name) {


this.name = name;
}

public String getPass() {


return pass;
}

public void setPass(String pass) {


this.pass = pass;
}

public boolean isMale() {


return isMale;
}

public void setMale(boolean male) {


isMale = male;
}

public String getAddress() {


return address;
}

public void setAddress(String address) {


this.address = address;
}

public String getBirthdate() {


return birthdate;
}

public void setBirthdate(String birthdate) {


this.birthdate = birthdate;
}
}

3.4.OUTPUT
Hasil Run nya sebagai berikut :

Mengisi
Form awal
dengan
memasukka
n nomor
telepon dan
password
Tekan “login” jika sudah mempunyai akun,
dan tekan “sign up” jika baru ingin membuat
akun.
Tekan “sign up” maka masuk ke halaman
sign up dan masukkan biodata akun.

kemudian
tekan
button “sign
up” maka
akun telah
ditambahka
n.
kembali
kehalaman
awal, isi data
sesuai akun
yang telah
dibuat
kemudian
tekan button
“login”,dan
kehalaman
berikut.

Tekan
“show data”
untuk
menampilka
n detail dari
data. “edit
data” untuk
mengubah
isi data.
Jika tekan
button
“delete”
maka akun
akan
terhapus dan
kembali ke
halaman
awal.

Jika tekan button “log


out” maka akan
kembali ke halaman
awal.
Tekan tombol
kanan
handphone
untuk keluar
dari aplikasi.

Anda mungkin juga menyukai