Вы находитесь на странице: 1из 109

Cara Mengganti Icon Launcher Aplikasi di

Android Studio
Cara Mengganti Icon Pada Android Studio:
1. Kita langsung saja pada sebuah project sederhana yang sudah kita buat sebelumnya. Pertama-
tama klik tanda panah pada directory “res” agar kelihatan sub directory yang ada diadalmnya.
Setelah itu pada directory “mipmap” klik kanan >> pilih new >> pilih Image Assets.
2. Maka akan muncul jendela configure Image Assets. Pada Assets Type pilih “Image”
kemudian pada Path, kamu cari gambar yang akan di jadikan icon aplikasi kamu.

3. Setelah dapat gambar yang akan dijadikan icon, klik OK.


4. Kamu bisa saja mengatur tampilan icon dengan narik scroll yang ada, seprti pada gambar ini.
Kamu bisa mengatur warna background icon, bentuk background icon dan banyak lainnya. Jika
dirasa sudah cukup, klik Next.
5. Kemudian klik Finish.
6. Sekarang coba kamu “run” aplikasi kamu dan lihat icon nya. Jika berhasil akan seperti punya
saya ini. Bisa temen-temen lihat, pada sebelah kanan adalah icon bawaan dari android studio dan
yang sebelah kiri adalah icon yang baru saja kita tukar.
Bagaimana? Mudah bukan? Sekarang kamu bisa mengganti icon bawaan dari android studio
dengan icon aplikasi mu sendiri agar terlihat lebih menarik. Nah itu tadi sedikit tutorial dari saya,
jika ada kekurangan saya mohon maaf. dan jika ada kesalahan silahkan komentar dibawah agar
segera saya koreksi. Baca juga: Cara Menampilkan Project WEB HTML di Android Studio

Dan jangan lupa SHARE artikel ini jika bermanfaat menurut kalian, supaya lebih banyak lagi
orang yang tau. Sekian dari saya. Terimakasih, Salam Bacacoding.
Cara Membuat Splash Screen dengan
Mudah di Android Studio
Splash screen merupakan tampilan yang muncul saat pertama kali kita membuka sebuah aplikasi.

Splash screen biasanya menampilkan logo, nama, dan lainnya yang berhubungan dengan
aplikasi. Beberapa aplikasi yang menggunakan splash screen antara lain : facebook, youtube,
gojek dan lain sebagainya.

Baiklah tanpa panjang lebar inilah tutorial cara membuat splash screen pada android studio.

1. Buat project baru


Buka android studio kemudian klik creat new project. Kemudian isi :

 Application name : splasscreen


 Phone and tablet : API 19 ( disesuaikan)
 Activity : empty activity
 Activity name : mainactivity

Tunggu sampai workspace android studio terbuka dengan baik dan siap digunakan.

2. Atur layout
Selanjutnya atur layout splash screennya pada activity_main.xml. Untuk logonya sendiri pada
tutorial cara membuat splash screen pada android studio ini menggunakan logo dari aplikasi
gojek. Bisa di download disini.

Jika sudah didownload masukan logo atau gambar yang ingin digunakan pada drawable dengan
cara :

 klik kanan pada drawable


 show in explorer
 copykan gambar ke folder drawable

Lalu ketikan kode-kode dibawah ini pada activity_main.xml.

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


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:gravity="center"
tools:context=".MainActivity">

<ImageView
android:layout_width="160dp"
android:layout_height="60dp"
android:id="@+id/logo"
android:src="@drawable/logogojek"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />

</RelativeLayout>

Pada kode-kode di atas kita bisa melihat layout yang digunakan adalah relative layout dengan
ditambahkan satu widget imageview untuk menampilkan gambar.

3. Atur style
Pada styles.xml yang berada pada folder res kita akan menghilangkan app bar (action bar) dan
mengganti warna primarynya dengan warna putih. Silahkan masukan kode-kode dibawah ini.

<resources>

<!-- Base application theme. -->


<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">#FFFFFF</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

</resources>

4. Buat Activity_home

Splash screen yang dibuat pada tutorial ini hanya akan tampil selama 4 detik setelah itu akan
langsung ditampilkan menu utama dari aplikasi android yang sudah diberi splash screen.

Maka silahkan buat activity baru dengan nama activity home dengan cara klik kanan pada nama
package lalu :

 pilih new
 activity –> empty activity
 beri nama home (activity_home)
Tambahkan kode-kode dibawah ini pada activity_home.xml :

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


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_home"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="30dp"

tools:context=".home">

<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="halo ini adalah tutorial splash screen "
android:textSize="30sp"/>

</RelativeLayout>

6. MainActivity.java
Buka MainActivity.java lalu tambahkan kode-kode java berikut.

package badoystudio.com.splashscreengojek;

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

public class MainActivity extends AppCompatActivity {


private int waktu_loading=4000;

//4000=4 detik

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

setContentView(R.layout.activity_main);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {

//setelah loading maka akan langsung berpindah ke home


activity
Intent home=new Intent(MainActivity.this, home.class);
startActivity(home);
finish();

}
},waktu_loading);
}
}

Perhatikan kode di atas waktu_loading=4000 yaitu splash screen nantinya hanya akan muncul
selama 4 detik saja kemudian langsung pindah ke activity yang lain.

7. AndroidManifests.xml
Terakhir tambahkan script dibawah ini pada AndroidManifest.xml yang ada pada manifest

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


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="badoystudio.com.splashscreengojek">

<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/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

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


</intent-filter>
</activity>
<activity android:name=".home"></activity>
</application>

</manifest>

Ditutorial cara membuat splash screen pada android studio ini penulis masih menjadikan
mainactivity untuk splash screennya. Sehingga tidak ada yang diubah pada android manifestnya
(defaultnya seperti kode-kode di atas).

8. Running Aplikasi

Running aplikasi bisa menggunakan android virtual device, emulator genymotion, atau langsung
ke smartphone yang kamu miliki. Maka akan tampil seperti dibawah ini

Tutorial ini terinspirasi dari splash screen aplikasi gojek


Halaman ini muncul ketika splash screen sudah ditampilkan selama 4 detik

Penulis menggunakan oppo a3s untuk merunning aplikasi pada tutorial ini.

Itulah cara membuat splash screen pada android studio. Saya rasa cukup mudah bukan. Silahkan
praktekan dan modifikasi sesuai kebutuhan aplikasi android yang sedang kamu buat. Semoga
bermanfaat.
30 Menit Membuat Login UI Design Menarik
Android
January 12, 2018 Guntoro Android Simple Example

Pada tutorial kali ini kita akan belajar selama 30 Menit Membuat Login UI Design Menarik
Android menggunakan Android Studio.

Sebelumnya kita sudah belajar membuat ui dashboard menu menarik yang bisa kamu pelajari
pada tautan berikut ini.

Baca Juga :

 30 Membuat Login Android Menggunakan SQLite Database


 Membuat UI Dashboard Menu Menarik pada Android Studio
 30 Menit Membuat Aplikasi Kuis Sederhana
 15 Menit Membuat Option Menu di Android

Sesuai judul tutorial ini kita hanya akan fokus pada pembuatan UI designnya saja dan tidak ada
database ataupun coding java. Baiklah tanpa panjang lebar kita langsung praktekan membuat UI
design login android.

Rekomendasi Ebook Android : ” 5 Hari Menguasai Android


Studio dan SQLite Database (Studi kasus membuat aplikasi kampusku)”.
Hanya Rp. 100.000 Rp 55.000 (Berisi 12 Bab). Pemesanan melalui Whatsapp
ke 085717474692, atau baca selengkapnya di sini.
30 Menit Membuat Login UI Design Menarik Android

1. Buat Project Baru

Buka android studio kemudian buat sebuah project baru dengan nama project ” Uilogin ” .

2. Library Material Design

Kita akan membuat design UI login dengan tambahan material design agar tampilan lebih
kekinian. Tambahkan kode berikut pada build.gradle(module.app).

compile 'com.android.support:design:24.2.0'

Setelah ditambahkan jangan lupa klik sync now. Pastikan laptop terhubung ke internet.

3. Tambahkan Icon

Tambahkan 3 icon dari android studio pada drawable dengan cara :

 klik kanan pada drawable


 pilih new > pilih image asset
 icon type > pilih Action bar dan Tab icon
 Name : user_icon
 Clip art : ic_circle_black (seperti tampilan pada gambar )
Icon Username

Ulangi langkah diatas dengan menambahkan 2 icon lagi. Dengan nama


icon user_icon dan password (icon user dan lock) seperti pada gambar diatas.

4. Background Lingkaran

Buat background lingkaran dengan cara :


 klik kanan pada drawable
 pilih New > Drawable Resource File
 pada file name isikan background_profile
 klik ok

Masukan kode-kode berikut pada file background_profile.xml

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


<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="1000dp" />
<solid android:color="#5EAE9E" />
<stroke
android:width="5dip"
android:color="#5EAE9E" />
<padding
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp" />
</shape>

5. Buat Layout

Buka activity_main.xml. Disini kita akan membuat layout UI login menggunakan kode-kode
xml. Layout yang akan digunakan yaitu : Relative layout dan Linear Layout.

Kita akan membuat layout seperti gambar berikut :


Penjelasan :

 Layout utama ditandai dengan box no. 1 adalah Relative Layout. Kode xml yang digunakan :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#4A9586"
android:orientation="vertical"
android:scrollbarAlwaysDrawVerticalTrack="true">

</RelativeLayout>

 Background putih ditandai dengan box no. 2 adalah Relative Layout. Kode xml yang digunakan :

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/login_title"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginTop="70dp"
android:background="#fff"
android:elevation="4dp"
android:orientation="vertical"
android:padding="20dp"
android:id="@+id/relativeLayout">

</RelativeLayout>

 Untuk menempatkan button, textview dan edit text ditandai dengan box no. 3 adalah Linear
Layout :

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="30dp">

</Linear Layout>

6. Tambahkan Widget

Setelah kita mengetahui layout apa saja yang dibutuhkan.

Perhatikan gambar diatas, kita perlu menambahkan beberapa komponen widget :

 TextView : untuk membuat login & forgot password.


 EditText : untuk membuat username & password
 TextInputLayout : widget dari material design yang diletakan sebelum EditText
 Button : untuk membuat tombol sign in
 ImageButton : untuk membuat lingkaran icon user profile

Langsung saja kode lengkapnya digabungkan dengan layout yaitu :


<?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:background="#4A9586"
android:orientation="vertical"
android:scrollbarAlwaysDrawVerticalTrack="true">

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/login_title"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginTop="70dp"
android:background="#fff"
android:elevation="4dp"
android:orientation="vertical"
android:padding="20dp"
android:id="@+id/relativeLayout">

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="30dp">

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

<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/username"
android:hint="User Name"
android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>

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

<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:drawableLeft="@drawable/password"
android:hint="Password"
android:inputType="numberPassword" />
</android.support.design.widget.TextInputLayout>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:paddingTop="5dp"
android:text="Forgot Password?" />

<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="22dp"
android:background="#d67601"
android:text="Sign in"
android:textAllCaps="false"
android:textColor="#fff"
android:textSize="18sp" />
</LinearLayout>
</RelativeLayout>

<ImageButton
android:id="@+id/user_profile_photo"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_below="@+id/login_title"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:background="@drawable/background_profile"
android:elevation="4dp"
android:src="@drawable/user_icon" />

<TextView
android:id="@+id/login_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="26dp"
android:gravity="center_horizontal"
android:text="Login "
android:textColor="#fff"
android:textSize="26sp"
android:textStyle="bold"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
</RelativeLayout>

7. Running Aplikasi

Jika sudah tidak ada error silahkan running melalui android virtual device (AVD), emulator
genymotion, atau langsung ke smartphone android yang kamu punya.
Mudah bukan untuk membuat Login UI Design Menggunakan Material Design?.
Silahkan dicoba dan dimodifikasi sesuai kebutuhan, semoga bermanfaat dan jangan lupa tekan
tombol share.

30 Menit Membuat Login Android Dengan


SQLite Database
August 30, 2018 Guntoro Android Simple Example, Android Studio, Material Design, Mobile
Development

Jika sebelumnya kita pernah belajar membuat ui login desain menarik dalam 30
menit menggunakan android studio. Kali ini kita akan belajar membuat form login android pada
android studio dengan menggunakan sqlite database. Tutorial ini juga dilengkapi source code
yang bisa kamu download secara gratis (Link download ada di akhir).

Untuk aplikasi login sqlite yang sudah running kamu bisa melihatnya pada video dibawah ini.
Membuat Login Android Dengan SQLite Database
Tanpa basa basi langsung saja kita praktekan membuat login android menggunakan sqlite
database.

1. Buat Project Baru

Langkah pertama silahkan buat project baru di android studio dengan menggunakan nama
project loginsqlite. Jika masih bingung kamu bisa membaca tutorial membuat project pertama di
android.

2. Library Material Design

Tambahkan library material design dengan cara klik gradle (module:app) > masukan 1 baris
kode berikut pada dependencies > klik sync now (pastikan terknoneksi dengan internet )

implementation 'com.android.support:design:26.1.0'

3. Edit String

Edit string yang nantinya digunakan untuk nama aplikasi dan beberapa komponen widget.
Buka res > values > string.xml. disiniKamu bisa pelajari struktur folder android .

<resources>
<string name="app_name">LoginRegisterScreenDesign</string>
<string name="create_account"><font color="#00ff00">text</font></string>
<string name="email">Email</string>
<string name="password">Password</string>
<string name="login">Login</string>
<string name="username">Username</string>
<string name="register">Register</string>
<string name="back_to_login">Back to Login</string>
</resources>

4. Edit Color

Edit warna yang dengan cara buka res > values > colors.xml.

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


<resources>
<color name="colorPrimary">#607d8b</color>
<color name="colorPrimaryDark">#455a64</color>
<color name="colorAccent">#0c0099</color>
</resources>
5. Drawable

Copykan gambar/ icon pendukung (download disini ). Caranya klik kanan pada drawable
> klik paste.

6. Edit Style

Edit tema pada res > values > styles.xml. Dalam aplikasi yang akan kita buat ini kita tidak akan
menampilkan action bar (app bar). Sehingga kode-kodenya kita edit menjadi seperti seperti
berikut.

<resources>

<!-- Base application theme. -->


<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay"
parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"


/>

</resources>

7. Activity Login

Buat activity login dengan cara klik folder java > klik kanan nama package > New > Activity
> Empty Activity > Isikan Nama LoginActivity. Sehingga akan terdapat class java
LoginActivity.java dan layout activity_login.xml.

 LoginActivity.java

Masukan kode-kode berikut dibawah nama package.

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.text.Html;
import android.text.Spanned;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class LoginActivity extends AppCompatActivity {

//Declaration EditTexts
EditText editTextEmail;
EditText editTextPassword;

//Declaration TextInputLayout
TextInputLayout textInputLayoutEmail;
TextInputLayout textInputLayoutPassword;

//Declaration Button
Button buttonLogin;

//Declaration SqliteHelper
SqliteHelper sqliteHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
sqliteHelper = new SqliteHelper(this);
initCreateAccountTextView();
initViews();

//set click event of login button


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

//Check user input is correct or not


if (validate()) {

//Get values from EditText fields


String Email = editTextEmail.getText().toString();
String Password = editTextPassword.getText().toString();

//Authenticate user
User currentUser = sqliteHelper.Authenticate(new
User(null, null, Email, Password));

//Check Authentication is successful or not


if (currentUser != null) {
Snackbar.make(buttonLogin, "Successfully Logged in!",
Snackbar.LENGTH_LONG).show();

//User Logged in Successfully Launch You home screen


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

} else {

//User Logged in Failed


Snackbar.make(buttonLogin, "Failed to log in , please
try again", Snackbar.LENGTH_LONG).show();

}
}
}
});

//this method used to set Create account TextView text and click event(
maltipal colors
// for TextView yet not supported in Xml so i have done it
programmatically)
private void initCreateAccountTextView() {
TextView textViewCreateAccount = (TextView)
findViewById(R.id.textViewCreateAccount);
textViewCreateAccount.setText(fromHtml("<font color='#ffffff'>I don't
have account yet. </font><font color='#0c0099'>create one</font>"));
textViewCreateAccount.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(LoginActivity.this,
RegisterActivity.class);
startActivity(intent);
}
});
}

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


private void initViews() {
editTextEmail = (EditText) findViewById(R.id.editTextEmail);
editTextPassword = (EditText) findViewById(R.id.editTextPassword);
textInputLayoutEmail = (TextInputLayout)
findViewById(R.id.textInputLayoutEmail);
textInputLayoutPassword = (TextInputLayout)
findViewById(R.id.textInputLayoutPassword);
buttonLogin = (Button) findViewById(R.id.buttonLogin);

//This method is for handling fromHtml method deprecation


@SuppressWarnings("deprecation")
public static Spanned fromHtml(String html) {
Spanned result;
if (android.os.Build.VERSION.SDK_INT >=
android.os.Build.VERSION_CODES.N) {
result = Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY);
} else {
result = Html.fromHtml(html);
}
return result;
}

//This method is used to validate input given by user


public boolean validate() {
boolean valid = false;

//Get values from EditText fields


String Email = editTextEmail.getText().toString();
String Password = editTextPassword.getText().toString();

//Handling validation for Email field


if (!android.util.Patterns.EMAIL_ADDRESS.matcher(Email).matches()) {
valid = false;
textInputLayoutEmail.setError("Please enter valid email!");
} else {
valid = true;
textInputLayoutEmail.setError(null);
}

//Handling validation for Password field


if (Password.isEmpty()) {
valid = false;
textInputLayoutPassword.setError("Please enter valid password!");
} else {
if (Password.length() > 5) {
valid = true;
textInputLayoutPassword.setError(null);
} else {
valid = false;
textInputLayoutPassword.setError("Password is to short!");
}
}

return valid;
}

 activity_login.xml

Untuk membuat layout halaman login, silahkan ketikan kode-kode dibawah ini.

<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/colorPrimary"
android:fitsSystemWindows="true"
tools:context=".LoginActivity">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:orientation="vertical">

<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center_horizontal"
android:layout_margin="16dp"
android:src="@drawable/usericon" />

<android.support.design.widget.TextInputLayout
android:id="@+id/textInputLayoutEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
app:errorEnabled="true">

<android.support.design.widget.TextInputEditText
android:id="@+id/editTextEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/email"
android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
android:id="@+id/textInputLayoutPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
app:errorEnabled="true"
app:passwordToggleEnabled="true"
app:passwordToggleTint="@color/colorAccent">

<android.support.design.widget.TextInputEditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/password"
android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>

<Button
android:id="@+id/buttonLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:background="@color/colorAccent"
android:text="@string/login"
android:textColor="@android:color/white" />

<TextView
android:id="@+id/textViewCreateAccount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginTop="16dp"
android:gravity="center_horizontal" />
</LinearLayout>
</ScrollView>

Layout Login

8. Activity Register

Buat activity register dengan cara klik java > klik kanan nama package > New > Activity >
Empty Activity > Isikan Nama RegisterActivity. Sehingga akan terdapat class java
RegisterActivity.java dan layout activity_register.xml.

 RegisterActivity.java

Untuk kode-kode RegisterActivity.java (tempatkan dibawah nama package) adalah :

import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.Nullable;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class RegisterActivity extends AppCompatActivity {

//Declaration EditTexts
EditText editTextUserName;
EditText editTextEmail;
EditText editTextPassword;

//Declaration TextInputLayout
TextInputLayout textInputLayoutUserName;
TextInputLayout textInputLayoutEmail;
TextInputLayout textInputLayoutPassword;

//Declaration Button
Button buttonRegister;

//Declaration SqliteHelper
SqliteHelper sqliteHelper;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
sqliteHelper = new SqliteHelper(this);
initTextViewLogin();
initViews();
buttonRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (validate()) {
String UserName = editTextUserName.getText().toString();
String Email = editTextEmail.getText().toString();
String Password = editTextPassword.getText().toString();

//Check in the database is there any user associated with


this email
if (!sqliteHelper.isEmailExists(Email)) {

//Email does not exist now add new user to database


sqliteHelper.addUser(new User(null, UserName, Email,
Password));
Snackbar.make(buttonRegister, "User created
successfully! Please Login ", Snackbar.LENGTH_LONG).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
}
}, Snackbar.LENGTH_LONG);
}else {

//Email exists with email input provided so show


error user already exist
Snackbar.make(buttonRegister, "User already exists
with same email ", Snackbar.LENGTH_LONG).show();
}
}
}
});
}

//this method used to set Login TextView click event


private void initTextViewLogin() {
TextView textViewLogin = (TextView) findViewById(R.id.textViewLogin);
textViewLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}

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


private void initViews() {
editTextEmail = (EditText) findViewById(R.id.editTextEmail);
editTextPassword = (EditText) findViewById(R.id.editTextPassword);
editTextUserName = (EditText) findViewById(R.id.editTextUserName);
textInputLayoutEmail = (TextInputLayout)
findViewById(R.id.textInputLayoutEmail);
textInputLayoutPassword = (TextInputLayout)
findViewById(R.id.textInputLayoutPassword);
textInputLayoutUserName = (TextInputLayout)
findViewById(R.id.textInputLayoutUserName);
buttonRegister = (Button) findViewById(R.id.buttonRegister);

//This method is used to validate input given by user


public boolean validate() {
boolean valid = false;

//Get values from EditText fields


String UserName = editTextUserName.getText().toString();
String Email = editTextEmail.getText().toString();
String Password = editTextPassword.getText().toString();

//Handling validation for UserName field


if (UserName.isEmpty()) {
valid = false;
textInputLayoutUserName.setError("Please enter valid username!");
} else {
if (UserName.length() > 5) {
valid = true;
textInputLayoutUserName.setError(null);
} else {
valid = false;
textInputLayoutUserName.setError("Username is to short!");
}
}

//Handling validation for Email field


if (!android.util.Patterns.EMAIL_ADDRESS.matcher(Email).matches()) {
valid = false;
textInputLayoutEmail.setError("Please enter valid email!");
} else {
valid = true;
textInputLayoutEmail.setError(null);
}

//Handling validation for Password field


if (Password.isEmpty()) {
valid = false;
textInputLayoutPassword.setError("Please enter valid password!");
} else {
if (Password.length() > 5) {
valid = true;
textInputLayoutPassword.setError(null);
} else {
valid = false;
textInputLayoutPassword.setError("Password is to short!");
}
}

return valid;
}
}

 activity_register.xml

Masukan koe-kode dibawah ini untuk merancang layout register.

<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/colorPrimary"
android:fitsSystemWindows="true"
tools:context=".RegisterActivity">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:orientation="vertical">

<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center_horizontal"
android:layout_margin="10dp"
android:src="@drawable/usericon" />

<android.support.design.widget.TextInputLayout
app:errorEnabled="true"
android:id="@+id/textInputLayoutUserName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">

<android.support.design.widget.TextInputEditText
android:id="@+id/editTextUserName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/username"
android:inputType="textPersonName" />
</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
android:id="@+id/textInputLayoutEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:errorEnabled="true">

<android.support.design.widget.TextInputEditText
android:id="@+id/editTextEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/email"
android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
android:id="@+id/textInputLayoutPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
app:errorEnabled="true"
app:passwordToggleEnabled="true"
app:passwordToggleTint="@color/colorAccent">

<android.support.design.widget.TextInputEditText
android:id="@+id/editTextPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/password"
android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>

<Button
android:id="@+id/buttonRegister"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:background="@color/colorAccent"
android:text="@string/register" />
<TextView
android:id="@+id/textViewLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="@string/back_to_login"
android:textColor="@android:color/white" />
</LinearLayout>
</ScrollView>

Layout Register

9. Class SqliteHelper

Tambahkan class SqliteHelper. Untuk membuatnya silahkan klik folder java > klik kanan
pada nama package > pilih new > class > beri nama class SqliteHelper. Masukan kode-kode
berikut ini pada SqliteHelper.java (tempatkan dibawah nama package).

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class SqliteHelper extends SQLiteOpenHelper {

//DATABASE NAME
public static final String DATABASE_NAME = "loopwiki.com";

//DATABASE VERSION
public static final int DATABASE_VERSION = 1;

//TABLE NAME
public static final String TABLE_USERS = "users";

//TABLE USERS COLUMNS


//ID COLUMN @primaryKey
public static final String KEY_ID = "id";

//COLUMN user name


public static final String KEY_USER_NAME = "username";

//COLUMN email
public static final String KEY_EMAIL = "email";

//COLUMN password
public static final String KEY_PASSWORD = "password";

//SQL for creating users table


public static final String SQL_TABLE_USERS = " CREATE TABLE " +
TABLE_USERS
+ " ( "
+ KEY_ID + " INTEGER PRIMARY KEY, "
+ KEY_USER_NAME + " TEXT, "
+ KEY_EMAIL + " TEXT, "
+ KEY_PASSWORD + " TEXT"
+ " ) ";

public SqliteHelper(Context context) {


super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
//Create Table when oncreate gets called
sqLiteDatabase.execSQL(SQL_TABLE_USERS);

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
//drop table to create new one if database version updated
sqLiteDatabase.execSQL(" DROP TABLE IF EXISTS " + TABLE_USERS);
}

//using this method we can add users to user table


public void addUser(User user) {

//get writable database


SQLiteDatabase db = this.getWritableDatabase();

//create content values to insert


ContentValues values = new ContentValues();
//Put username in @values
values.put(KEY_USER_NAME, user.userName);

//Put email in @values


values.put(KEY_EMAIL, user.email);

//Put password in @values


values.put(KEY_PASSWORD, user.password);

// insert row
long todo_id = db.insert(TABLE_USERS, null, values);
}

public User Authenticate(User user) {


SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_USERS,// Selecting Table
new String[]{KEY_ID, KEY_USER_NAME, KEY_EMAIL,
KEY_PASSWORD},//Selecting columns want to query
KEY_EMAIL + "=?",
new String[]{user.email},//Where clause
null, null, null);

if (cursor != null && cursor.moveToFirst()&& cursor.getCount()>0) {


//if cursor has value then in user database there is user
associated with this given email
User user1 = new User(cursor.getString(0), cursor.getString(1),
cursor.getString(2), cursor.getString(3));

//Match both passwords check they are same or not


if (user.password.equalsIgnoreCase(user1.password)) {
return user1;
}
}

//if user password does not matches or there is no record with that
email then return @false
return null;
}

public boolean isEmailExists(String email) {


SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_USERS,// Selecting Table
new String[]{KEY_ID, KEY_USER_NAME, KEY_EMAIL,
KEY_PASSWORD},//Selecting columns want to query
KEY_EMAIL + "=?",
new String[]{email},//Where clause
null, null, null);

if (cursor != null && cursor.moveToFirst()&& cursor.getCount()>0) {


//if cursor has value then in user database there is user
associated with this given email so return true
return true;
}

//if email does not exist return false


return false;
}
}

Di dalam Class SqliteHelper merupakan bagian dari SQLiteOpenHelper di dalamnya


terdapat :

 Nama database
 Versi database
 Tabel
 Kolom

10. Class User

Tambahkan class User yang akan dijadikan model dari user. Untuk membuatnya sama seperti
point 8, lalu beri nama class User. Tambahkan kode-kode dibawah ini pada User.java.

public class User {


public String id;
public String userName;
public String email;
public String password;

public User(String id, String userName, String email, String password) {


this.id = id;
this.userName = userName;
this.email = email;
this.password = password;
}

11. Home Screen

Jika login berhasil maka aplikasi akan menampilkan home screen. Home screen yang kita buat
kali ini hanya menampilkan komponen TextView.Tambahkan kode-kode dibawah ini
pada activity_main.xml.

<?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="badoystudio.com.loginsqlite.MainActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Kamu telah berhasil login "
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

Layout Home Screen

12. Android Manifest

Buka AndroidManifest.xml yang ada pada folder app > manifest. Edit kode-kodenya sehingga
menjadi seperti dibawah ini(pakcagenya sesuaikan dengan nama package yang kamu buat).

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


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="badoystudio.com.loginsqlite">

<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/AppTheme">
<activity
android:name=".LoginActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".RegisterActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" />

<activity
android:name=".MainActivity"
android:label="Home Screen"
android:theme="@style/AppTheme.NoActionBar" />

</application>

</manifest>

13. Running Project

Running project menggunakan emulator bawaan anroid, genymotion, atau langsung melalui
smartphone android yang kamu miliki. Maka hasil akhirnya adalah seperti gambar dibawah ini.

Tampilan Form Login dan Register


Tampilan Login Faild dan Sukses

Membuat UI Dashboard Menu Menarik


pada Android Studio
Pada aplikasi android biasanya terdapat menu utama biasanya disebut juga dashboard
atau home menu. Isi dari dashboard yaitu berupa icon-icon ataupun nama-nama yang
berfungsi untuk menghubungkan ke activity yang lainnya.

Ditutorial ini kita akan belajar Membuat UI Dashboard Menu Menarik


menggunakan Android Studio. Langsung saja kita pelajari sekarang juga.

Membuat UI Dashboard Menu Android


Sempatkan waktu minimal 60 menit untuk fokus mempraktekan isi dari tutorial
android ini.
1. Buat Project Baru

Silahkan buat project baru dengan rincian sebagai berikut :

 Application name : dashboard


 Phone and tablet : API 19 ( disesuaikan)
 Activity : Empty activity
 Activity name : MainActivity

2. Tambahkan Library Grid Layout

Setelah workspace android studio terbuka tambahkan dependencies Grid Layout.

Caranya pilih build.gradle(Module:app) lalu ketikan atau copykan kode-kode


dibawah ini. Lalu klik Sync Now (pastikan komputer/ laptop terhubung dengan
internet).

implementation 'com.android.support:gridlayout-v7:26.1.0'

3. Tambahkan Icon

Tambahkan icon-icon pada drawable. Icon-icon yang saya gunakan didownload dari
freepick.com. Namun untuk mempermudah silahkan unduh dari file pendukung
pembelajaran yang sudah penulis disediakan. Klik unduh icon.

Untuk menambahkannya bisa dengan cara klik kanan pada folder drawable >
pilih show in explorer > lalu pastekan icon pada folder drawable.
Bisa juga dengan langsung mengcopykan icon dan langsung pastekan pada folder
drawable. Jika masih bingung pelajari tutorial dibawah ini.

4. Edit Layout

Layout yang digunakan untuk membuat dashboard ini yaitu :

 Relative Layout
 Frame Layout
 Grid Layout

Silahkan buka activity_main.xml lalu tambahkan kode-kode dibawah ini.

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


<android.support.v7.widget.GridLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="2"
app:rowCount="2"
app:orientation="horizontal"
>

<FrameLayout
app:layout_columnWeight="1"
app:layout_rowWeight="1"
android:background="#5F9EA0"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/user"
android:src="@drawable/user"/>
<TextView
android:layout_width="wrap_content"
android:layout_marginTop="10dp"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:layout_height="wrap_content"
android:layout_below="@+id/user"
android:layout_centerHorizontal="true"
android:text="Profile"/>
</RelativeLayout>
</FrameLayout>

<FrameLayout
app:layout_columnWeight="1"
app:layout_rowWeight="1"
android:background="#D2691E">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/job"
android:src="@drawable/pin"/>
<TextView
android:layout_width="wrap_content"
android:layout_marginTop="10dp"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:layout_height="wrap_content"
android:layout_below="@+id/job"
android:layout_centerHorizontal="true"
android:text="Search Job"/>
</RelativeLayout>
</FrameLayout>

<FrameLayout
app:layout_columnWeight="1"
app:layout_rowWeight="1"
android:background="#CD5C5C">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/notif"
android:src="@drawable/bell"/>
<TextView
android:layout_width="wrap_content"
android:layout_marginTop="10dp"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:layout_height="wrap_content"
android:layout_below="@+id/notif"
android:layout_centerHorizontal="true"
android:text="Notification"/>
</RelativeLayout>
</FrameLayout>

<FrameLayout
app:layout_columnWeight="1"
app:layout_rowWeight="1"
android:background="#B8860B"
>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/mail"
android:src="@drawable/mail"/>
<TextView
android:layout_width="wrap_content"
android:layout_marginTop="10dp"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:layout_height="wrap_content"
android:layout_below="@+id/mail"
android:layout_centerHorizontal="true"
android:text="Messages"/>
</RelativeLayout>
</FrameLayout>

<FrameLayout
app:layout_columnWeight="1"
app:layout_rowWeight="1"
android:background="#2E8B57"
>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/rate"
android:src="@drawable/star"/>
<TextView
android:layout_width="wrap_content"
android:layout_marginTop="10dp"
android:textColor="#FFFFFF"
android:textSize="20sp"
android:layout_height="wrap_content"
android:layout_below="@+id/rate"
android:layout_centerHorizontal="true"
android:text="Rate Card"/>
</RelativeLayout>
</FrameLayout>

<FrameLayout
app:layout_columnWeight="1"
app:layout_rowWeight="1"
android:background="#BC8F8F">

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/rev"
android:src="@drawable/like"/>
<TextView
android:layout_width="wrap_content"
android:layout_marginTop="10dp"
android:textSize="20sp"
android:layout_height="wrap_content"
android:layout_below="@+id/rev"
android:layout_centerHorizontal="true"
android:textColor="#FFFFFF"
android:text="Review "/>
</RelativeLayout>
</FrameLayout>
</android.support.v7.widget.GridLayout>
5. Edit String
Kita ubah nama appnya menggunakan nama “ Dashboard “. Tambahkan kode-kode
berikut pada Strings.xml.
<resources>
<string name="app_name">Dashboard</string>
</resources>

6. Edit Color

Pada Colors.xml ubah warna utama (primary) :

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


<resources>
<color name="colorPrimary">#4682B4</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
</resources>

7. Running Aplikasi

Jika sudah tidak ada error pada kode-kode diatas silahkan running aplikasi dashboard ini
menggunakan :

 Emulator bawaan android studio / AVD

Disini saya menggunakan OPPO A3S untuk merunningnya. Dan hasilnya seperti gambar
dibawah ini.
Kesimpulan

Tutorial ini hanya menekankan pada pembuatan UI saja makanya tidak ada penambahan bahasa
java pada MainActivity.java. Untuk memberikan action ke halaman lain ketika salah satu icon
di klik, silahkan tambahkan Intent. Tutorialnya bisa dibaca di : Cara menggunakan intent pada
android studio.
Cukup mudah bukan untuk membuat tampilan dashboard ? silahkan dicoba dan dimodifikasi
sesuai kebutuhan aplikasi teman-teman. Jangan lupa tekan tombol sharenya dan Semoga
bermanfaat.

Membuat WebView Dengan Progress Bar


pada Android Studio
Membuat WebView Dengan Progress Bar pada Android Studio sangat mudah. WebView
merupakan salah satu widget yang berfungsi menampilkan halaman web di dalam aplikasi
android. WebView mengubah aplikasi Anda menjadi aplikasi web.

Contoh kasus : Badoystudio.com hanya bisa diakses melalui web tidak mempunyai aplikasi
android. Maka dengan WebView kita bisa membuat aplikasi androidnya (berbentuk apk)
tentunya dapat diinstall pada smartphone android sehingga ketika kita ingin mengakses
badoystudio.com hanya perlu menyentuh icon badoystudio yang sudah terinstall dismartphone
android.

Script WebView pada xml yaitu :

<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/webView"

/>

Script Object Class WebView pada java yaitu :

webView = (WebView) findViewById(R.id.webView);

Untuk memuat url web ke WebView, gunakan metode loadUrl (String url) dari kelas WebView,
dengan script :

webView.loadUrl("https://badoystudio.com");

Membuat Webview dengan Progress Bar


Untuk langkah-langkah selengkapnya yaitu sebagai berikut :
1. Buat Layout WebView pada Activity_Main.xml

Layout webview badoystudio.com ini akan ditambahkan progress bar supaya saat proses load
website akan menampilkan icon loading. Untuk script lengkapnya yaitu sebagai berikut :

<?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:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<WebView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/webView"

/>

<ProgressBar
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="110dp"
android:id="@+id/progressBar2"
/>

</RelativeLayout>

2. MainActivity.java

Tambahkan script untuk memanggil url website, object class Webview, dan proses progress bar
pada MainActivity.java yaitu sebagai berikut :

package badoystudio.com.webview;

import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {


WebView webView;
ProgressBar bar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView);
bar=(ProgressBar) findViewById(R.id.progressBar2);
webView.setWebViewClient(new myWebclient());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("https://badoystudio.com");

public class myWebclient extends WebViewClient{


@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
bar.setVisibility(View.GONE);
}

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if((keyCode==KeyEvent.KEYCODE_BACK) && webView.canGoBack()){
webView.goBack();
return true;
}

return super.onKeyDown(keyCode, event);


}
}

Script Dibawah Digunakan Untuk Back Ke Webview ketika kita sudah membuka konten yang
terdapat pada website.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if((keyCode==KeyEvent.KEYCODE_BACK) && webView.canGoBack()){
webView.goBack();
return true;
}

return super.onKeyDown(keyCode, event);


}

3. Style.xml

Agar terlihat lebih baik ui nya hilangkan actionbar webview dengan script dibawah ini :

<resources>

<!-- Base application theme. -->


<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

</resources>

4. AndroidManifests.xml

Tambahkan user permission internet pada AndroidManifest.xml :

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


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="badoystudio.com.webview">

<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/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.MAIN" />

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


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

</manifest>

Silahkan running project melalui android virtual device, emulator genymotion, atau langsung
menggunakan smartphone yang kamu miliki. Maka hasilnya akan seperti gambar berikut :
Mudah bukan untuk membuat web kita menjadi apk webview pada android studio. Share ya jika

bermanfaat. Tunggu apalagi praktekan sekarang

Membuat Intro Slider Keren Menggunakan


Android Studio
Tutorial telah diperbaharui dengan menambahkan dimens.xml

Tutorial kali ini kita akan membuat intro slider menggunakan android studio. Intro Slider
nantinya akan menampilkan beberapa slide yang bisa di geser oleh user sebelum masuk ke menu
utama pada sebuah aplikasi.

Kita akan menambahkan 2 button lewati dan lanjut, jika ditekan lewati (skip) itu artinya user
tidak ingin melihat slider melainkan ingin langsung ke menu utama. Jika ditekan lanjut
(next) maka slider akan tampil / menggeser sampai dengan slider terakhir baru akan ditampilkan
menu utamanya.

Langsung saja kita mulai :

1. Buat Project Baru

 Buat project baru pada android studio, kemudian pilih empty activity
 Tambahkan icon pendukung pada drawable yang nantinya akan ditampilkan pada slider
 download gambar disini. (icon didownload dari flaticon.com)

2. Atur Warna

 Buka color.xml atur warna background, dan warna lingkaran kecil untuk perpindahan slider.
Untuk warnanya bisa anda sesuaikan sendiri dengan kode-kode warna menggunakan
hexadesimal. Kemudian Tambahkan script berikut :

<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>

<!-- Screens background color-->


<color name="bg_screen1">#800000</color>
<color name="bg_screen2">#006400</color>
<color name="bg_screen3">#008B8B</color>
<color name="bg_screen4">#8A2BE2</color>

<!-- dots inactive colors -->


<color name="dot_dark_screen1">#FFFFF0</color>
<color name="dot_dark_screen2">#FFFFF0</color>
<color name="dot_dark_screen3">#FFFFF0</color>
<color name="dot_dark_screen4">#FFFFF0</color>

<!-- dots active colors -->


<color name="dot_light_screen1">#A9A9A9</color>
<color name="dot_light_screen2">#A9A9A9</color>
<color name="dot_light_screen3">#A9A9A9</color>
<color name="dot_light_screen4">#A9A9A9</color>

<array name="array_dot_active">
<item>@color/dot_light_screen1</item>
<item>@color/dot_light_screen2</item>
<item>@color/dot_light_screen3</item>
<item>@color/dot_light_screen4</item>
</array>

<array name="array_dot_inactive">
<item>@color/dot_dark_screen1</item>
<item>@color/dot_dark_screen2</item>
<item>@color/dot_dark_screen3</item>
<item>@color/dot_dark_screen4</item>
</array>
</resources>

3. Atur Teks yang akan ditampilkan

 Buka string.xml kemudian atur teks yang nantinya akan ditampilkan pada intro slider (teks
button, content slider). Adapun script yang saya gunakan yaitu :
 <resources>
 <string name="app_name">Intro Slider</string>
 <string name="title_activity_welcome">Home Screen</string>
 <string name="next">LANJUT</string>
 <string name="skip">LEWATI</string>
 <string name="start">MULAI</string>

 <string name="slide_1_title">KULINER</string>
 <string name="slide_1_desc">Rasakan Berbagai Kuliner yang Akan
Memanjakan Lidahmu</string>

 <string name="slide_2_title">HOTEL</string>
 <string name="slide_2_desc">Temukan Hotel yang Nyaman Untuk
Istirahat Perjalananmu</string>

 <string name="slide_3_title">WISATA</string>
 <string name="slide_3_desc">Destinasi Menarik Menantimu. Segera
Pilih Destinasi Wisatamu</string>

 <string name="slide_4_title">GUIDE</string>
 <string name="slide_4_desc">Cari Guide Untuk Menemani Perjalananmu
Agar semakin asyik </string>


</resources>

4. Atur Style dan Margin

 Buka Style.xml kemudian tambahkan script berikut :

<resources>

<!-- Base application theme. -->


<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay"
parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"


/>

</resources>

Untuk pengaturan margin buka dimens.xml tambahkan script berikut :

<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="dots_height">30dp</dimen>
<dimen name="dots_margin_bottom">20dp</dimen>
<dimen name="img_width_height">120dp</dimen>
<dimen name="slide_title">30dp</dimen>
<dimen name="slide_desc">16dp</dimen>
<dimen name="desc_padding">40dp</dimen>
</resources>

Intro Slider hanya akan tampil satu kali yaitu ketika aplikasi sudah selesai diinstall dan dibuka
pertama kali. setelah itu tidak akan tampil lagi. Namun disini kita akan menambahkan tombol
pada homescreen agar bisa mengulang slider yang ditampilkan.

Untuk pengaturannya gunakan SharedPreferences (SP)

adalah mekanisme untuk menyimpan pasangan key-value untuk tipe data primitif (integer,
double, string, booelan). SP cocok untuk penggunaan data kecil seperti menyimpan setting
aplikasi dan informasi mengenai user interface. Data dalam shared preferences disimpan dalam
device android dalam bentuk XML. Sumber http://indonesiaberkicau.com/
5. Buat Class baru

Buat kelas baru dengan nama PrefManager.java disinilah pengaturan sharedprefereces


ditambahkan dengan script berikut :

package badoystudio.com.introslider;

import android.content.Context;
import android.content.SharedPreferences;

public class PrefManager {


SharedPreferences pref;
SharedPreferences.Editor editor;
Context _context;

// shared pref mode


int PRIVATE_MODE = 0;

// Shared preferences file name


private static final String PREF_NAME = "introslider";

private static final String IS_FIRST_TIME_LAUNCH = "IsFirstTimeLaunch";

public PrefManager(Context context) {


this._context = context;
pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);
editor = pref.edit();
}

public void setFirstTimeLaunch(boolean isFirstTime) {


editor.putBoolean(IS_FIRST_TIME_LAUNCH, isFirstTime);
editor.commit();
}

public boolean isFirstTimeLaunch() {


return pref.getBoolean(IS_FIRST_TIME_LAUNCH, true);
}

6. Buat Slide

 Kita akan membuat 4 slide dengan nama layout : slide1, slide2, slide3, slide4. Caranya yaitu klik
kanan pada layout -> new -> xml -> pilih empty .
 Tambahkan script berikut pada slide1.xml :

<?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:background="@color/bg_screen1">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center_horizontal"
android:orientation="vertical">

<ImageView
android:layout_width="@dimen/img_width_height"
android:layout_height="@dimen/img_width_height"
android:src="@drawable/ic_kuliner" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/slide_1_title"
android:textColor="@android:color/white"
android:textSize="@dimen/slide_title"
android:textStyle="bold" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:paddingLeft="@dimen/desc_padding"
android:paddingRight="@dimen/desc_padding"
android:text="@string/slide_1_desc"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="@dimen/slide_desc" />

</LinearLayout>
</RelativeLayout>

 Pada slide2.xml tambahkan script berikut :

<?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:background="@color/bg_screen2">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center_horizontal"
android:orientation="vertical">

<ImageView
android:layout_width="@dimen/img_width_height"
android:layout_height="@dimen/img_width_height"
android:src="@drawable/ic_hotel" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/slide_2_title"
android:textColor="@android:color/white"
android:textSize="@dimen/slide_title"
android:textStyle="bold" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:paddingLeft="@dimen/desc_padding"
android:paddingRight="@dimen/desc_padding"
android:text="@string/slide_2_desc"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="@dimen/slide_desc" />

</LinearLayout>

</RelativeLayout>

 Slide3.xml tambahkan script berikut :

<?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:background="@color/bg_screen3">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center_horizontal"
android:orientation="vertical">

<ImageView
android:layout_width="@dimen/img_width_height"
android:layout_height="@dimen/img_width_height"
android:src="@drawable/ic_wisata" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/slide_3_title"
android:textColor="@android:color/white"
android:textSize="@dimen/slide_title"
android:textStyle="bold" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:paddingLeft="@dimen/desc_padding"
android:paddingRight="@dimen/desc_padding"
android:text="@string/slide_3_desc"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="@dimen/slide_desc" />

</LinearLayout>

</RelativeLayout>

 Tambahkan pula pada slide4.xml script berikut :

<?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:background="@color/bg_screen4">

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center_horizontal"
android:orientation="vertical">

<ImageView
android:layout_width="@dimen/img_width_height"
android:layout_height="@dimen/img_width_height"
android:src="@drawable/ic_guide" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/slide_4_title"
android:textColor="@android:color/white"
android:textSize="@dimen/slide_title"
android:textStyle="bold" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:paddingLeft="@dimen/desc_padding"
android:paddingRight="@dimen/desc_padding"
android:text="@string/slide_4_desc"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="@dimen/slide_desc" />

</LinearLayout>

</RelativeLayout>

7. Buat Activity Baru

Buat baru dengan nama WelcomeActivity.java dengan cara klik kanan pada package -> New -
>Activity -> Empty Activity .
8. Atur Activity

Pada activity_welcome.xml tambahkan script untuk memodifikasi tombol lanjut dan


lewati juga lingkarang kecil yang tampil pada slider yaitu sebagai berikut :

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


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:showIn="@layout/activity_welcome">

<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />

<LinearLayout
android:id="@+id/layoutDots"
android:layout_width="match_parent"
android:layout_height="@dimen/dots_height"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/dots_margin_bottom"
android:gravity="center"
android:orientation="horizontal"></LinearLayout>

<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:alpha=".5"
android:layout_above="@id/layoutDots"
android:background="@android:color/white" />

<Button
android:id="@+id/btn_next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="@null"
android:text="@string/next"
android:textColor="@android:color/white" />

<Button
android:id="@+id/btn_skip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:background="@null"
android:text="@string/skip"
android:textColor="@android:color/white" />
</RelativeLayout>

9. Buka WelcomeActivity.java

Buka WelcomeActivity.java tambahkan script berikut :

Disinilah pengaturan slider, event click button, notification bar dimasukan.

package badoystudio.com.introslider;

import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

public class WelcomeActivity extends AppCompatActivity {

private ViewPager viewPager;


private MyViewPagerAdapter myViewPagerAdapter;
private LinearLayout dotsLayout;
private TextView[] dots;
private int[] layouts;
private Button btnSkip, btnNext;
private PrefManager prefManager;

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

// mengecek lauch activity - sebelum memanggil setContentView()


prefManager = new PrefManager(this);
if (!prefManager.isFirstTimeLaunch()) {
launchHomeScreen();
finish();
}

// membuat transparan notifikasi


if (Build.VERSION.SDK_INT >= 21) {

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_S
TABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
setContentView(R.layout.activity_welcome);

viewPager = (ViewPager) findViewById(R.id.view_pager);


dotsLayout = (LinearLayout) findViewById(R.id.layoutDots);
btnSkip = (Button) findViewById(R.id.btn_skip);
btnNext = (Button) findViewById(R.id.btn_next);

// layout xml slide 1 sampai 4


// add few more layouts if you want
layouts = new int[]{
R.layout.slide1,
R.layout.slide2,
R.layout.slide3,
R.layout.slide4};

// tombol dots (lingkaran kecil perpindahan slide)


addBottomDots(0);

// membuat transparan notifikasi


changeStatusBarColor();

myViewPagerAdapter = new MyViewPagerAdapter();


viewPager.setAdapter(myViewPagerAdapter);
viewPager.addOnPageChangeListener(viewPagerPageChangeListener);

btnSkip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
launchHomeScreen();
}
});

btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// mengecek page terakhir (slide 4)
// jika activity home sudah tampil
int current = getItem(+1);
if (current < layouts.length) {
// move to next screen
viewPager.setCurrentItem(current);
} else {
launchHomeScreen();
}
}
});
}

private void addBottomDots(int currentPage) {


dots = new TextView[layouts.length];

int[] colorsActive =
getResources().getIntArray(R.array.array_dot_active);
int[] colorsInactive =
getResources().getIntArray(R.array.array_dot_inactive);
dotsLayout.removeAllViews();
for (int i = 0; i < dots.length; i++) {
dots[i] = new TextView(this);
dots[i].setText(Html.fromHtml("&#8226;"));
dots[i].setTextSize(35);
dots[i].setTextColor(colorsInactive[currentPage]);
dotsLayout.addView(dots[i]);
}

if (dots.length > 0)
dots[currentPage].setTextColor(colorsActive[currentPage]);
}

private int getItem(int i) {


return viewPager.getCurrentItem() + i;
}

private void launchHomeScreen() {


prefManager.setFirstTimeLaunch(false);
startActivity(new Intent(WelcomeActivity.this, MainActivity.class));
finish();
}

// viewpager change listener


ViewPager.OnPageChangeListener viewPagerPageChangeListener = new
ViewPager.OnPageChangeListener() {

@Override
public void onPageSelected(int position) {
addBottomDots(position);

// mengubah button lanjut 'NEXT' / 'GOT IT'


if (position == layouts.length - 1) {
// last page. make button text to GOT IT
btnNext.setText(getString(R.string.start));
btnSkip.setVisibility(View.GONE);
} else {
// still pages are left
btnNext.setText(getString(R.string.next));
btnSkip.setVisibility(View.VISIBLE);
}
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {

@Override
public void onPageScrollStateChanged(int arg0) {

}
};

/**
* Making notification bar transparent
*/
private void changeStatusBarColor() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();

window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
;
window.setStatusBarColor(Color.TRANSPARENT);
}
}

/**
* View pager adapter
*/
public class MyViewPagerAdapter extends PagerAdapter {
private LayoutInflater layoutInflater;

public MyViewPagerAdapter() {
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
layoutInflater = (LayoutInflater)
getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View view = layoutInflater.inflate(layouts[position], container,


false);
container.addView(view);

return view;
}

@Override
public int getCount() {
return layouts.length;
}

@Override
public boolean isViewFromObject(View view, Object obj) {
return view == obj;
}

@Override
public void destroyItem(ViewGroup container, int position, Object
object) {
View view = (View) object;
container.removeView(view);
}
}
}

10. Buka activity_main.xml

Buka activity_main.xml tambahkan script untuk membuat tombol mengulang slider yaitu
sebagai berikut berikut :
<?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:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#E0FFFF"
tools:context="badoystudio.com.introslider.MainActivity">

<Button
android:layout_width="300dp"
android:layout_height="70dp"
android:text="Mulai Lagi Slider"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="43dp"
android:id="@+id/button"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="Home Screen!"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>

11. Tambahkan script MainActivity.java


Tambahkan script berikut untuk memberikan intent pada button mengulang slide
pada MainActivity.java

package badoystudio.com.introslider;

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

public class MainActivity extends AppCompatActivity {


Button button;

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

findViewById(R.id.button).setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
PrefManager prefManager = new
PrefManager(getApplicationContext());
prefManager.setFirstTimeLaunch(true);
startActivity(new Intent(MainActivity.this,
WelcomeActivity.class));
finish();
}
});

}
}

12. Atur AndroidManifest.xml

Terakhir Atur WelcomeActivity sebagai launcher utama pada AndroidManifest.xml

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


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="badoystudio.com.introslider">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".WelcomeActivity">
<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>

Oke sampai disini sudah selesai silahkan di running menggunakan android virtual device,
emulator genymotion, atau langsung di smartphone yang kamu punya. Maka akan tampil seperti
dibawah ini :
Silahkan dipraktekan dan dipelajari kode-kodenya ya. semoga bermanfaat.

Cara Mudah Membuat Animasi Transisi


(on/off lampu) pada Android Studio
Halo teman-teman masih semangat belajar android development ? Harus tetap semangat
pastinya. Kali ini kita akan belajar membuat aplikasi sederhana dengan menggunakan animasi
transisi pada android studio.

Dengan animasi transisi kita bisa mengatur pergantian/perpindahan dari satu activity
(antarmuka) ke activity lainnya dengan memberikan sentuhan efek animasi supaya terlihat lebih
menarik.

Pada tutorial kali ini kita akan membuat aplikasi sederhana menyalakan dan mematikan lampu
yang mana ketika tombol switch on/off ditekan akan terlihat efek animasi transisi (perpindahan)
dari lampu yang mati (off) ke lampu yang menyala (on) ataupun sebaliknya.

Tampilan Lampu dalam keadaan Off


Tampilan lampu dalam keadaan On

Langkah-langkah :

1. Buat Project Baru

Silahkan Buka android studionya dan buat project baru dengan nama Transition, tentukan sdk,
activity dan lainnya sampai dengan finish dan workspace android studio tampil.

2. Tambahkan Gambar

Tambahkan dua gambar yaitu gambar lampu dalam keadaan off dan juga gambar lampu dalam
keadaan on pada drawable.

Untuk memudahkan proses belajar disini saya sudah menyediakan gambarnya silahkan klik
download
3. Buat Layout Baru

Buat dua layout baru pada directory drawable dengan cara klik kanan pada drawable > New >
Xml > Nama Layout

 Layout trans_off.xml
 Layout trans_on.xml

Ketikan kode-kode berikut pada trans_off.xml

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


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

<item android:drawable="@drawable/on"/>
<item android:drawable="@drawable/off"/>

</transition>

Pada trans_on.xml ketikan juga kode-kode berikut :

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


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

<item android:drawable="@drawable/off"/>
<item android:drawable="@drawable/on"/>

</transition>

4. Atur Layout Utama

Buka Activity_Main.xml

 Ubah background color menjadi warna hitam dengan kode-kode sebagai berikut :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="badoystudio.com.transition.MainActivity">
 Tambahkan ImageView, untuk srcnya pilih drawable layout trans_on.xml dengan kode-kode
berikut :

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/trans_on"
android:scaleType="centerInside"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:id="@+id/imageView" />

 Tambahkan button dengan kode-kode berikut :

<Button
android:text="ON / OFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="34dp"
android:id="@+id/button" />

 Untuk lengkapnya yaitu :

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


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="badoystudio.com.transition.MainActivity">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@drawable/trans_on"
android:scaleType="centerInside"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:id="@+id/imageView" />

<Button
android:text="ON / OFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="34dp"
android:id="@+id/button" />
</RelativeLayout>

5. Atur MainActivity.java

Pada MainActivity. java kita akan memasukan kode-kode java diantaranya yaitu :

 kode untuk memberikan action pada button (on/off) yang telah dibuat
pada ActivityMain.xml dan juga pengaturan animasi transisi termasuk waktu berapa lama efek
transisi tampil dengan kode-kode :

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!turnOn){
imageview.setImageResource(R.drawable.trans_on);

((TransitionDrawable)imageview.getDrawable()).startTransition(3000);
turnOn=true;
}else {
imageview.setImageResource(R.drawable.trans_off);

((TransitionDrawable)imageview.getDrawable()).startTransition(3000);
turnOn=false;

Untuk kode lengkapnya pada MainActivity.java :

package badoystudio.com.transition;

import android.graphics.drawable.TransitionDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

ImageView imageview;
Button button;
Boolean turnOn=false;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageview=(ImageView)findViewById(R.id.imageView);
button=(Button)findViewById(R.id.button);

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!turnOn){
imageview.setImageResource(R.drawable.trans_on);

((TransitionDrawable)imageview.getDrawable()).startTransition(3000);
turnOn=true;
}else {
imageview.setImageResource(R.drawable.trans_off);

((TransitionDrawable)imageview.getDrawable()).startTransition(3000);
turnOn=false;

}
});
}
}

6. Atur Nama Aplikasi

Buka string.xml masukan kode-kode berikut :

<resources>
<string name="app_name">Animasi Transisi</string>
</resources>

Jika sudah diikuti langkah-langkah diatas, silahkan jalankan aplikasi menggunakan android
virtual device, emulator genymotion, atau langsung ke device android dan Lihat hasilnya.

Mudah bukan membuat animasi transisi ? Bila terdapat error atau ingin request tutorial silahkan
komentar dibawah ini. So semoga bermanfaat dan bisa dipraktekan pada aplikasi yang kamu buat

nanti.

Custom Font pada Android Studio Dengan


Mudah
Kali ini kita akan belajar Custom Font pada Android Studio dengan mudah. Android SDK
telah menyediakan beberapa font yaitu sans, serif, dan lainnya.
Namun kadang kita kurang menyukai font yang sudah tersedia dan ingin membuat tulisan pada
aplikasi menjadi lebih menarik. Itu artinya kita harus melakukan custom font pada aplikasi
android.

Mengimplementasikan custom font pada android studio sangat mudah. Langsung saja kita
praktekan bagaimana menggunakan custom font. Langkah-langkahnya sebagai berikut :

1. Download Font

Siapkan font yang nantinya akan digunakan diaplikasi android dengan cara mendownloadnya
dari internet. Dalam tutorial ini saya mendownload font Knight Brush Demo.otf dan Studio
Gothic dari 1001 font .

2. Buat Project Baru

Buat project baru pada android studio beri nama project font (sesuaikan) kemudian atur minimun
sdk, layout atau lainnya sampai dengan workspace android studio tampil.

3. Activity_main.xml

Pada Activity_main.xml tambahkan teks sesuai dengan properti yang kita inginkan
menggunakan widget TextView. Adapun kode-kode yang saya gunakan yaitu :

<?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:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="badoystudio.com.font.MainActivity">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textAlignment="center"
android:textSize="55sp"
android:textColor="@color/colorAccent"
android:text="Badoy Studio "
android:id="@+id/font"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="45dp" />

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textAlignment="center"
android:textSize="35sp"
android:textColor="@color/colorAccent"
android:text="Selamat Belajar Membuat Aplikasi Android Menggunakan
Android Studio "
android:id="@+id/font2"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="45dp" />

</LinearLayout>

4. Buat Folder Assets

Klik project > app > src > main (klik kanan pada folder main) > New > Directory > beri nama
assets

Membuat folder assets

5. Buat Folder Font

Klik kanan pada folder assets yang sudah dibuat > New > Directory > beri nama font . Untuk
langkahnya seperti pada point 4.

6. Copykan Font

Setelah folder assets dan font dibuat copykan font yang sudah didownload dari internet kedalam
folder font dengan cara klik kanan paste.
membuat folder font

7. MainActivity.java

Buka MainActivity.java lalu lengkapi dengan kode-kode berikut ini :

package badoystudio.com.font;

import android.graphics.Typeface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

TextView teks, teks2;

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

teks=(TextView)findViewById(R.id.font);
teks2=(TextView)findViewById(R.id.font2);
Typeface customfont=Typeface.createFromAsset(getAssets(),"font/Knight
Brush Demo.otf");
teks.setTypeface(customfont);
Typeface
customfont2=Typeface.createFromAsset(getAssets(),"font/StudioGothicAlternate-
ExtraLigh Trial.ttf");
teks2.setTypeface(customfont2);
}
}

Pada tampilan preview memang tidak akan terlihat perubahan font yang sudah di custom. Kita
bisa melihatnya ketika aplikasi sudah di running. Maka silahkan running aplikasi dan lihat
hasilnya.
Custom Font ketika di running pada Android Studio

So, cukup mudah bukan untuk custom font pada android stuido. selamat mencoba dan jangan

lupa share

Cara Menggunakan Fitur Kamera pada


Android Studio
Saat membuat aplikasi android ada kalanya kita ingin mengimplementasikan fitur kamera yang
ada di smartphone android. Lalu bagaimana cara menggunakan fitur kamera pada android studio
?.

Untuk menggunakan kamera pada aplikasi yang kita buat kita perlu memanggil intent
MediaStore. ACTION_IMAGE_CAPTURE. Adapun langkah-langkahnya yaitu :
1. Buat project baru
Buka android studio kemudian klik creat new project. Kemudian isi :

 application name : androidcamera


 phone and tablet : API 19 ( disesuaikan)
 activity : empty activity
 activity name : mainactivity

Jika sudah diisi silahkan klik finish dan tunggu sampai proses gradle selesai.

2. Pembuatan layout
Buka activity_main.xml kemudian tambahkan atur layout menjadi relative layout . Silahkan
modifikasi sesuai script xml dibawah ini.

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


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp"
tools:context="badoystudio.com.androidcamera.MainActivity">

</RelativeLayout>

3. Pengkodingan java
Buka MainActivity.java lalu tambahkan kode-kode dibawah ini

package badoystudio.com.androidcamera;

import android.Manifest;
import android.app.Activity;
import android.app.AlertDialog;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;

import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;

import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;

public class MainActivity extends AppCompatActivity {


public static final int MY_PERMISSIONS_REQUEST_CAMERA = 100;
public static final String ALLOW_KEY = "ALLOWED";
public static final String CAMERA_PREF = "camera_pref";

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

if (ContextCompat.checkSelfPermission(this,
Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
if (getFromPref(this, ALLOW_KEY)) {
showSettingsAlert();
} else if (ContextCompat.checkSelfPermission(this,
Manifest.permission.CAMERA)

!= PackageManager.PERMISSION_GRANTED) {

// Should we show an explanation?


if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.CAMERA)) {
showAlert();
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.CAMERA},
MY_PERMISSIONS_REQUEST_CAMERA);
}
}
} else {
openCamera();
}

}
public static void saveToPreferences(Context context, String key, Boolean
allowed) {
SharedPreferences myPrefs = context.getSharedPreferences(CAMERA_PREF,
Context.MODE_PRIVATE);
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putBoolean(key, allowed);
prefsEditor.commit();
}

public static Boolean getFromPref(Context context, String key) {


SharedPreferences myPrefs = context.getSharedPreferences(CAMERA_PREF,
Context.MODE_PRIVATE);
return (myPrefs.getBoolean(key, false));
}

private void showAlert() {


AlertDialog alertDialog = new
AlertDialog.Builder(MainActivity.this).create();
alertDialog.setTitle("Alert");
alertDialog.setMessage("App needs to access the Camera.");

alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "DONT ALLOW",


new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();
}
});

alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "ALLOW",
new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {


dialog.dismiss();
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.CAMERA},
MY_PERMISSIONS_REQUEST_CAMERA);
}
});
alertDialog.show();
}

private void showSettingsAlert() {


AlertDialog alertDialog = new
AlertDialog.Builder(MainActivity.this).create();
alertDialog.setTitle("Alert");
alertDialog.setMessage("App needs to access the Camera.");

alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "DONT ALLOW",


new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {


dialog.dismiss();
//finish();
}
});

alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "SETTINGS",
new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int which) {


dialog.dismiss();
startInstalledAppDetailsActivity(MainActivity.this);
}
});

alertDialog.show();
}

@Override
public void onRequestPermissionsResult(int requestCode, String
permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_CAMERA: {
for (int i = 0, len = permissions.length; i < len; i++) {
String permission = permissions[i];
if (grantResults[i] == PackageManager.PERMISSION_DENIED)
{
boolean
showRationale =

ActivityCompat.shouldShowRequestPermissionRationale(
this, permission);

if (showRationale) {
showAlert();
} else if (!showRationale) {
// user denied flagging NEVER ASK AGAIN
// you can either enable some fall back,
// disable features of your app
// or open another dialog explaining
// again the permission and directing to
// the app setting
saveToPreferences(MainActivity.this, ALLOW_KEY,
true);
}
}
}
}

// other 'case' lines to check for other


// permissions this app might request
}
}

@Override
protected void onResume() {
super.onResume();
}

public static void startInstalledAppDetailsActivity(final Activity


context) {
if (context == null) {
return;
}

final Intent i = new Intent();


i.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.setData(Uri.parse("package:" + context.getPackageName()));
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
i.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
context.startActivity(i);
}

private void openCamera() {


Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivity(intent);
}
}
4. Pengaturan uses permission
Selanjutnya kita atur permissionnya pada AndroidManifest.xml. Untuk kode-kodenya sendiri
silahkan tambahkan seperti dibawah ini.

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


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="badoystudio.com.androidcamera">

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

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

5. Running aplikasi
Running aplikasi yang sudah kita tambahkan fitur kamera menggunakan android virtual device,
genymotion, atau langsung ke smartphone android yang kita miliki.

Pada latihan ini saya merunnng aplikasi menggunakan smartphone Oppo A3s dan hasilnya :
Itulah tutorial Cara Menggunakan Fitur Kamera pada Android Studio. Silahkan di praktekan dan
jangan lupa share.
Cara Membuat Aplikasi Konversi Uang
Sederhana
Beberapa hari yang lalu nilai dollar sempat mencapai angka Rp. 15 ribu. Akhirnya saya
kepikiran untuk membuat tutorial cara membuat aplikasi konversi uang sederhana menggunakan
android studio.

Langsung saja silahkan ikuti tutorial cara membuat aplikasi konversi uang sederhana berikut ini.

1. Penjelasan Aplikasi
Aplikasi android yang akan dibuat ini tidak begitu rumit yaitu ketika kita memasukan nilai
rupiah lalu menekan tombol rupiah ke dollar maka akan ditampilkan berapa hasil dalam versi
dollar atau mata uang yang lainnya.

Karena seperti biasanya tutorial yang disajikan adalah tutorial membuat aplikasi android
sederhana yang ditujukan untuk mengasah logika pembuatan aplikasi saja.

2. Requirements
Sebelum mempelajari tutorial ini ada baiknya kamu mempelajari tutorial-tutorial dasar yang ada
dibawah ini :

 Cara membuat project baru di android studio


 Cara menggunakan relative layout

3. Buat Project Baru


Silahkan buka android studionya lalu buat project baru. Kemudian isi :

 Application name : konversimatauang(disesuaikan)


 Phone and tablet : API 19 ( disesuaikan)
 Activity : empty activity
 Activity name : mainactivity

4. LinearLayout
Jika workspace android studio sudah siap digunakan. Klik tab Activity_main.xml lalu ubah
layoutnya menggunakan layout linearlayout.
<?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:gravity="center"
android:padding="20dp"
tools:context="badoystudio.com.konversimatauang.MainActivity">

</LinearLayout>

5. ImageView
Tambahkan gambar menggunakan widget ImageView didalam linearlayout yang sudah
ditambahkan pada langkah ke empat. sebelumnya silahkan kamu masukan dulu gambar
pendukungnya ke folder drawable. Disini saya menggunakan gambar / icon dari flaticon.

Jika sudah masukan kode-kode dibawah ini diantara linearlayout.

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/bank"/>

6. EditText dan TextView


Sekarang tambahkan edittext dan textview dibawah widget imageview. Supaya posisinya
horizontal maka kita tambahkan linearlayout terlebih dahulu. Baru di dalamnya tambahkan
edittext dan textview.

<LinearLayout
android:padding="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">

<EditText
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/uang_input"
android:textSize="20sp"
android:hint="0 Rupiah"/>
<TextView
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:textSize="20sp"/>
<TextView
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/hasil_konversi"
android:text="Hasil Konversi"
android:background="#FFFFFF"
android:textSize="20sp"/>
</LinearLayout>

7. Button
Pada langkah ini kita akan menambahkan 3 widget button dengan teks :

 rp > usd
 rp > yen
 rp > euro

fungsi dari ketiga button tersebut yaitu mengubah nilai rupiah ke mata uang yang telah
ditentukan. Tambahkan kode-kode dibawah ini pada linearlayout yang mengapit edittext dan
textview.

<Button
android:layout_width="270dp"
android:layout_marginTop="10dp"
android:layout_height="wrap_content"
android:text="Rp > USD"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:background="#FF0000"
android:onClick="toUSD"
android:id="@+id/rpusd"/>

<Button
android:layout_width="270dp"
android:layout_marginTop="10dp"
android:textSize="20sp"
android:layout_height="wrap_content"
android:text="Rp > YEN"
android:textColor="#FFFFFF"
android:background="#483D8B "
android:onClick="toYEN"
android:id="@+id/rpyen"/>

<Button
android:layout_width="270dp"
android:textColor="#FFFFFF"
android:background="#A52A2A"
android:layout_marginTop="10dp"
android:layout_height="wrap_content"
android:text="Rp > Euro"
android:textSize="20sp"
android:onClick="toEuro"
android:id="@+id/rpeuro"/>

8. Activity_main. xml
Kode lengkap xml dari langkah 3 sampai dengan 7 yaitu :

<?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:gravity="center"
android:padding="20dp"
tools:context="badoystudio.com.konversimatauang.MainActivity">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/bank"/>

<LinearLayout
android:padding="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">

<EditText
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/uang_input"
android:textSize="20sp"
android:hint="0 Rupiah"/>
<TextView
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:textSize="20sp"/>

<TextView
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/hasil_konversi"
android:text="Hasil Konversi"
android:background="#FFFFFF"
android:textSize="20sp"/>
</LinearLayout>
<Button
android:layout_width="270dp"
android:layout_marginTop="10dp"
android:layout_height="wrap_content"
android:text="Rp > USD"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:background="#FF0000"
android:onClick="toUSD"
android:id="@+id/rpusd"/>

<Button
android:layout_width="270dp"
android:layout_marginTop="10dp"
android:textSize="20sp"
android:layout_height="wrap_content"
android:text="Rp > YEN"
android:textColor="#FFFFFF"
android:background="#483D8B "
android:onClick="toYEN"
android:id="@+id/rpyen"/>

<Button
android:layout_width="270dp"
android:textColor="#FFFFFF"
android:background="#A52A2A"
android:layout_marginTop="10dp"
android:layout_height="wrap_content"
android:text="Rp > Euro"
android:textSize="20sp"
android:onClick="toEuro"
android:id="@+id/rpeuro"/>
</LinearLayout>

Maka hasil dari kode-kode xml di atas yaitu :


9. MainActivity.java
Buka file MainActivity.java lalu tambahkan kode-kode java dibawah ini :

package badoystudio.com.konversimatauang;

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;
import android.widget.Toast;

import java.text.NumberFormat;
import java.util.Locale;

public class MainActivity extends AppCompatActivity {


EditText input_uang;
Button rp_usd, rp_euro, rp_yen;
TextView hasil_konversi;

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

input_uang = (EditText) findViewById(R.id.uang_input);


rp_usd = (Button) findViewById(R.id.rpusd);
rp_euro = (Button) findViewById(R.id.rpeuro);
rp_yen = (Button) findViewById(R.id.rpyen);
hasil_konversi = (TextView) findViewById(R.id.hasil_konversi);
}

public boolean cek(){


if (input_uang.getText().toString().isEmpty()){
Toast.makeText(this, "Silahkan masukan jumlah uang",
Toast.LENGTH_SHORT).show();
return false;
}
return true;
}

public void toYEN(View v){


if (!cek()){
return;
}

try{
angka = Double.parseDouble(input_uang.getText().toString());
}catch(Exception ex){
Toast.makeText(this, "Masukkan angka",
Toast.LENGTH_SHORT).show();
}

double hasil = angka / 132;

hasil_konversi.setText(NumberFormat.getCurrencyInstance(Locale.JAPAN).format(
hasil));
Toast.makeText(this, "1 Yen = Rp 132", Toast.LENGTH_SHORT).show();
}

public void toEuro(View v){


if (!cek()){
return;
}

try{
angka = Double.parseDouble(input_uang.getText().toString());
}catch(Exception e){
Toast.makeText(this, "Masukkan angka",
Toast.LENGTH_SHORT).show();
}

double hasil = angka / 17228;

hasil_konversi.setText(NumberFormat.getCurrencyInstance(Locale.GERMANY).forma
t(hasil));
Toast.makeText(this, "1 Euro = Rp 17.228",
Toast.LENGTH_SHORT).show();
}

public void toUSD(View v){


if (!cek()){
return;
}

try{
angka = Double.parseDouble(input_uang.getText().toString());
}catch(Exception e){
Toast.makeText(this, "Masukkan angka",
Toast.LENGTH_SHORT).show();
}

double hasil = angka / 14808;

hasil_konversi.setText(NumberFormat.getCurrencyInstance(Locale.US).format(has
il));
Toast.makeText(this, "1 U$D = Rp 14808", Toast.LENGTH_SHORT).show();
}
}

10. Running app


Langkah terakhir dari tutorial ini adalah merunning aplikasi konversi uang. bisa menggunakan
emulator bawaan android studio, genymotion atau langsung ke smartphone android.
Ditutorial ini saya merunning aplikasi menggunakan emulator genymotion. Itulah cara membuat
aplikasi konversi uang menggunakan android studio. Silahkan praktekan dan modifikasi sesuai
keinginanmu agar aplikasi yang kamu buat bisa lebih baik lagi dari pada tutorial ini.

9 Langkah Mudah Membuat Aplikasi


Kalkulator Sederhana di Android
Pada tutorial kali ini kita akan belajar membuat aplikasi kalkulator sederhana di android

menggunakan android studio. Bagaimana cara membuatnya ? Mudah ko Langsung saja kita
buat sekarang, inilah langkah-langkahnya.

9 langkah Membuat Aplikasi Kalkulator Sederhana di Android :

1. Buat Project Baru

Buat project baru pada android studio dengan nama project app ” calculator ” atau kamu bisa
menyesuaikan sendiri.

2. Ubah Icon

Icon default aplikasi bawaan dari android yaitu logo android (robot hijau). Kali ini kita akan
merubah icon aplikasi dengan icon yang sudah kita download (icon calculator ) dengan cara
sebagai berikut.

Klik folder res > klik kanan pada folder mipmap > New Image Asset
Setelah itu ubah nama ic_launcher menjadi ic_calc > pilih image pada asset type > pilih icon dari
komputer kita pada path > Next > Finish
3. Buat Layout

Buat layout kalkulator pada activity_main.xml. Kita akan menggunakan beberapa widget yaitu :

 TextView
 Button

TextView akan digunakan sebagai layar angka kalkulator ditambah beberapa tombol yang
diperlukan. TextView juga digunakan sebagai pengganti EditText, untuk mencegah input
pengguna manual menggunakan keypad default Android.

Dan layout yang digunakan yaitu :

 Relative Layout
 Linear Layout

Kode lengkapnya adalah sebagai berikut :

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

tools:context=".MainActivity">

<TextView
android:id="@+id/txtScreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:gravity="right|center_vertical"
android:maxLength="16"
android:padding="10dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="30sp"
android:typeface="serif" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/txtScreen"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnSeven"
android:text="7" />
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnEight"
android:text="8" />
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnNine"
android:text="9"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnDivide"
android:text="/"/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnFour"
android:text="4"/>
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnFive"
android:text="5" />
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnSix"
android:text="6" />
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnMultiply"
android:text="*" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnOne"
android:text="1" />
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnTwo"
android:text="2" />
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnThree"
android:text="3" />
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnSubtract"
android:text="-" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnDot"
android:text="." />
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnZero"
android:text="0" />
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnClear"
android:text="C" />
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnAdd"
android:text="+" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnEqual"
android:text="=" />

</LinearLayout>

</LinearLayout>

</RelativeLayout>

Maka pada bagian preveiw akan terlihat seperti gambar dibawah ini layoutnya :
4. Style pada Button

Button pada layout yang sudah dibuat pada langkah ke 3 terlihat kurang menarik. Kita akan
memberikan style pada button agar lebih menarik. Caranya yaitu :

Klik folder res > Klik kanan pada drawable > Pilih New > Pilih Drawable resource file

Drawable filenya kita beri nama button


Kemudian masukan kode-kode berikut pada drawable/ button.xml

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


<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<gradient android:angle="90" android:endColor="#FFFFFF"
android:startColor="#9EB8FF" android:type="linear" />
<padding android:bottom="0dp" android:left="0dp"
android:right="0dp" android:top="0dp" />
<size android:width="60dp" android:height="60dp" />
<stroke android:width="1dp" android:color="#ff3da6ef" />
</shape>
</item>
<item>
<shape>
<gradient android:angle="90" android:endColor="#FFFFFF"
android:startColor="#ffd9d9d9" android:type="linear" />
<padding android:bottom="0dp" android:left="0dp"
android:right="0dp" android:top="0dp" />
<size android:width="60dp" android:height="60dp" />
<stroke android:width="0.5dp" android:color="#ffcecece" />
</shape>
</item>
</selector>

5. Background button

Setelah kamu buat file button.xml pada drawable. Maka langkah selanjutnya gunakan button.xml
sebagai background button pada activity_main.xml.
Tambahkan kode berikut pada setiap button.

android:background="@drawable/button"

Sehingga kode lengkap pada activity_main.xml yaitu :

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

tools:context=".MainActivity">

<TextView
android:id="@+id/txtScreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:gravity="right|center_vertical"
android:maxLength="16"
android:padding="10dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="30sp"
android:typeface="serif" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/txtScreen"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:background="@drawable/button"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnSeven"
android:text="7" />
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnEight"
android:text="8" />
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnNine"
android:text="9"/>
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnDivide"
android:text="/"/>
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnFour"
android:text="4"/>
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnFive"
android:text="5" />
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:background="@drawable/button"
android:id="@+id/btnSix"
android:text="6" />
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnMultiply"
android:text="*" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnOne"
android:text="1" />
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnTwo"
android:text="2" />
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnThree"
android:text="3" />
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnSubtract"
android:text="-" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnDot"
android:text="." />
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnZero"
android:text="0" />
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnClear"
android:text="C" />
<Button
android:layout_width="0dp"
android:background="@drawable/button"
android:layout_height="match_parent"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnAdd"
android:text="+" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="@drawable/button"
android:layout_weight="1"
android:textSize="30sp"
android:id="@+id/btnEqual"
android:text="=" />

</LinearLayout>

</LinearLayout>

</RelativeLayout>

Jika di preview hasilnya :


6. Library

Untuk mengevaluasi ekspresi aritmatika, library exp4J digunakan dalam pembuatan kalkulator
ini.

Buka file “build.gradle (Module: app)” dari skrip Gradle. Tambahkan kode berikut :

compile 'net.objecthunter:exp4j:0.4.4'

pastikan terhubung ke internet lalu klik sync now.


7. MainActivity.java

Ubah MainActivity.java seperti yang kode-kode di bawah ini. Deskripsi lengkap tentang kode
diberikan pada tag komentar.

package badoystudio.com.simplecalculator;

import android.support.v7.app.AppCompatActivity;

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

import net.objecthunter.exp4j.Expression;
import net.objecthunter.exp4j.ExpressionBuilder;

public class MainActivity extends ActionBarActivity {


// IDs of all the numeric buttons
private int[] numericButtons = {R.id.btnZero, R.id.btnOne, R.id.btnTwo,
R.id.btnThree, R.id.btnFour, R.id.btnFive, R.id.btnSix, R.id.btnSeven,
R.id.btnEight, R.id.btnNine};
// IDs of all the operator buttons
private int[] operatorButtons = {R.id.btnAdd, R.id.btnSubtract,
R.id.btnMultiply, R.id.btnDivide};
// TextView used to display the output
private TextView txtScreen;
// Represent whether the lastly pressed key is numeric or not
private boolean lastNumeric;
// Represent that current state is in error or not
private boolean stateError;
// If true, do not allow to add another DOT
private boolean lastDot;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Find the TextView
this.txtScreen = (TextView) findViewById(R.id.txtScreen);
// Find and set OnClickListener to numeric buttons
setNumericOnClickListener();
// Find and set OnClickListener to operator buttons, equal button and
decimal point button
setOperatorOnClickListener();
}

/**
* Find and set OnClickListener to numeric buttons.
*/
private void setNumericOnClickListener() {
// Create a common OnClickListener
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// Just append/set the text of clicked button
Button button = (Button) v;
if (stateError) {
// If current state is Error, replace the error message
txtScreen.setText(button.getText());
stateError = false;
} else {
// If not, already there is a valid expression so append
to it
txtScreen.append(button.getText());
}
// Set the flag
lastNumeric = true;
}
};
// Assign the listener to all the numeric buttons
for (int id : numericButtons) {
findViewById(id).setOnClickListener(listener);
}
}

/**
* Find and set OnClickListener to operator buttons, equal button and
decimal point button.
*/
private void setOperatorOnClickListener() {
// Create a common OnClickListener for operators
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// If the current state is Error do not append the operator
// If the last input is number only, append the operator
if (lastNumeric && !stateError) {
Button button = (Button) v;
txtScreen.append(button.getText());
lastNumeric = false;
lastDot = false; // Reset the DOT flag
}
}
};
// Assign the listener to all the operator buttons
for (int id : operatorButtons) {
findViewById(id).setOnClickListener(listener);
}
// Decimal point
findViewById(R.id.btnDot).setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
if (lastNumeric && !stateError && !lastDot) {
txtScreen.append(".");
lastNumeric = false;
lastDot = true;
}
}
});
// Clear button
findViewById(R.id.btnClear).setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
txtScreen.setText(""); // Clear the screen
// Reset all the states and flags
lastNumeric = false;
stateError = false;
lastDot = false;
}
});
// Equal button
findViewById(R.id.btnEqual).setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
onEqual();
}
});
}

/**
* Logic to calculate the solution.
*/
private void onEqual() {
// If the current state is error, nothing to do.
// If the last input is a number only, solution can be found.
if (lastNumeric && !stateError) {
// Read the expression
String txt = txtScreen.getText().toString();
// Create an Expression (A class from exp4j library)
Expression expression = new ExpressionBuilder(txt).build();
try {
// Calculate the result and display
double result = expression.evaluate();
txtScreen.setText(Double.toString(result));
lastDot = true; // Result contains a dot
} catch (ArithmeticException ex) {
// Display an error message
txtScreen.setText("Error");
stateError = true;
lastNumeric = false;
}
}
}
}

8. AndroidManifest.xml

Ubah android:icon menjadi @mipmap/ic_calc agar icon tidak lagi robot hijau.

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


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="badoystudio.com.simplecalculator" >

<application
android:allowBackup="true"
android:icon="@mipmap/ic_calc"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<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>

9. Running App

Silahkan kamu jalankan aplikasi pada android virtual device, emulator genymotion, atau
langsung menggunakan device android.
Tujuan dari tutorial ini bukanlah untuk membuat kalkulator yang sempurna seperti pada aplikasi
bawaan android. Setidaknya kita bisa mengetahui cara dasar pembuatan kalkulator sederhana
dari tutorial ini.

Jangan lupa klik tombol share :D. Semoga bermanfaat.

Вам также может понравиться