Kotlin Cover - Inpows
Kotlin Android

Membuat Email Validation pada Android Kotlin

Membuat Email Validation pada Android Kotlin –  Pada artikel ini, kita akan membahas bagaimana membuat email validation pada Android Kotlin. Kita akan membuat sebuah aplikasi Android sederhana untuk melakukan validasi alamat email menggunakan bahasa pemrograman Kotlin. Aplikasi android akan memiliki sebuah AppCompatTextView, AppCompatEditText, dan AppCompatButton. Validasi email pada bahasa pemgrograman Kotlin khususnya Android development memiliki dua cara yang sering digunakan yaitu menggunakan regular expression atau regex dan Android Utility Class. Nah, disini kita akan membuat validasi alamat email menggunakan Android Utility Class tersebut. Simak artikel ini lebih lanjut untuk memahami bagaimana cara untuk membuat email validation pada Android Kotlin.

Buat Project Android Kotlin

Anda dapat membuat sebuah project Android Kotlin menggunakan Android Studio, yaitu melalui File ⇒ New Project dan isi semua detail untuk pembuatan project Android yang baru dan Pastikan Anda menggunakan bahasa pemgrograman Kotlin.

Kode MainActivity.kt

Berikut ini adalah kode kotlin pada MainActivity yang merupakan activity untuk membuat validasi alamat email.

import android.os.Bundle
import android.text.TextUtils
import android.util.Patterns
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.AppCompatButton
import androidx.appcompat.widget.AppCompatEditText
import java.util.regex.Pattern


class MainActivity : AppCompatActivity() {

    private val emailPattern = Pattern.compile(
        "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" +
                "\\@" +
                "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" +
                "(" +
                "\\." +
                "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" +
                ")+"
    )
    private lateinit var editText: AppCompatEditText
    private lateinit var btn: AppCompatButton

    private fun isValidEmail(target: CharSequence): Boolean {
        return !TextUtils.isEmpty(target) && Patterns.EMAIL_ADDRESS.matcher(target).matches()
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        editText = findViewById(R.id.editText)
        btn = findViewById(R.id.btnValidateEmail)
        btn.setOnClickListener {
            val email = editText.text.toString().trim()
            if (isValidEmail(email)) {
                Toast.makeText(
                    applicationContext, "Valid email address",
                    Toast.LENGTH_SHORT
                ).show()
            } else {
                Toast.makeText(
                    applicationContext, "Invalid email address",
                    Toast.LENGTH_SHORT
                ).show()
            }
        }
    }
}

Layout XML (activity_main.xml)

Setelah kalian memasukan kode kotlin pada MainActivity.xml, kalian dapat menggunakan kode xml untuk layoutnya. Pada kode xml ini terdapat AppCompatTextView, AppCompatEditText, dan AppCompatButton.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_gravity="top"
            android:gravity="top"
            android:layout_marginTop="40dp"
            android:layout_marginBottom="40dp"
            android:layout_marginStart="12dp"
            android:layout_marginEnd="12dp">

            <androidx.appcompat.widget.AppCompatTextView
                android:id="@+id/postTopic"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:text="Email Validation"
                android:textAlignment="center"
                android:textColor="@android:color/holo_green_dark"
                android:textSize="32sp"
                android:textStyle="bold" />

            <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/editText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Enter Email Address" />

            <androidx.appcompat.widget.AppCompatButton
                android:id="@+id/btnValidateEmail"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/editText"
                android:layout_gravity="center_horizontal"
                android:text="Validate" />

        </LinearLayout>

    </androidx.core.widget.NestedScrollView>

</androidx.constraintlayout.widget.ConstraintLayout>

Pengaturan Android Manifest

Jangan lupa untuk memastikan MainActivity.xml telah ada di AndroidManifest.xml.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.inpows.emailvalidation">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.EmailValidation">
        <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>

build.gradle pada Project

Berikut adalah build.gradle yang digunakan pada level project.

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    ext.kotlin_version = "1.4.31"
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.2"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle pada app

Berikut adalah build.gradle yang digunakan pada level app.

plugins {
    id 'com.android.application'
    id 'kotlin-android'
}

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.inpows.emailvalidation"
        minSdkVersion 23
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

dependencies {

    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    implementation 'androidx.core:core-ktx:1.3.2'
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

Hasil yang diperoleh

Kalian bisa menjalankan program yang telah kalian buat menggunakan kode diatas. Disini saya asumsikan kalau kalian telah terhubung pada perangkat Android atau emulator Android. Proses running akan membutuhkan waktu dan ketika selesai kalian akan melihat seperti gambar-gambar dibawah ini.

Email Validation pada Android Kotlin
Email Validation pada Android Kotlin

Pada AppCompatEditText kalian dapat memasukan email dan saat alamat email yang dimasukkan benar atau valid maka akan memperlihatkan hasil seperti gambar dibawah ini.

Email Validation pada Android Kotlin - Valid Email
Email Validation pada Android Kotlin – Valid Email

Saat alamat email yang dimasukkan salah atau tidak valid maka akan memperlihatkan hasil seperti gambar dibawah ini.

Email Validation pada Android Kotlin - InvalidEmail
Email Validation pada Android Kotlin – InvalidEmail

 

Temukan source code menarik lainnya hanya di Inpows.

Baca Juga

Membuat Pola Bintang Setengah Piramid Menggunakan Kotlin

Membuat Email Validation dengan Regex di Kotlin

Penjumlahan Matrix di Java

Tutorial Membuat PhotoView di Flutter

Mendapatkan Resolusi Gambar Menggunakan Python