Diperbarui: 4 Desember 2025
Ringkasan cepat:
- Fitur login di Android berfungsi untuk memastikan hanya pengguna yang berhak yang bisa mengakses bagian tertentu aplikasi (misalnya halaman admin, dashboard, atau data pribadi).
- Untuk latihan dan aplikasi offline sederhana, kamu bisa membuat login dengan SharedPreferences (menyimpan username/password lokal, misalnya hanya untuk admin internal).
- Untuk aplikasi nyata yang punya banyak pengguna, jauh lebih aman menggunakan Firebase Authentication (email/password, nomor HP, atau OAuth) daripada menyimpan password sendiri.
- Secara syariat, data login adalah amanah: jangan disalahgunakan untuk memata-matai, mencuri akun, atau bikin aplikasi yang mendukung maksiat.
- Tutorial ini bisa kamu jadikan modul PDF Android Studio: mulai dari desain layout, logika login SharedPreferences, sampai contoh alur login dengan Firebase.
Daftar isi
- Kapan sebaiknya mulai belajar fitur login di Android Studio?
- Apa itu sistem login di aplikasi Android dan kapan pilih SharedPreferences vs Firebase?
- Syarat sebelum mengikuti Android Studio tutorial login
- Langkah-langkah membuat halaman login dengan SharedPreferences
- Langkah-langkah membuat halaman login dengan Firebase Authentication
- Tips keamanan dan best practice login di Android
- Risiko & kesalahan umum saat membuat fitur login
- FAQ seputar Android Studio tutorial login
- Baca juga di Beginisob.com
Kapan sebaiknya mulai belajar fitur login di Android Studio?
Kamu sudah waktunya belajar login kalau:
- Sudah bisa membuat aplikasi Android sederhana dengan satu Activity dan beberapa tombol.
- Mulai ingin memisahkan area “umum” dan area “khusus” (misalnya halaman admin toko, halaman data karyawan, atau catatan pribadi).
- Menyiapkan tugas akhir/projek kampus yang wajib ada login sebagai salah satu fitur.
- Merencanakan aplikasi toko online, manajemen stok, atau aplikasi edukasi yang menyimpan progres siswa.
Login adalah “gerbang depan” banyak aplikasi. Sekali kamu menguasainya, kamu bisa melanjutkan ke topik seperti pengelolaan sesi, role user, dan integrasi backend.
Apa itu sistem login di aplikasi Android dan kapan pilih SharedPreferences vs Firebase?
Secara sederhana, sistem login di Android terdiri dari beberapa bagian:
- Form login: biasanya dua input (username/email & password) plus tombol “Masuk”.
- Logika verifikasi: mengecek apakah kombinasi username/password ini valid.
- Penyimpanan status login: menyimpan informasi bahwa pengguna sudah login (misalnya token, ID user).
- Proteksi halaman: mencegah akses ke halaman tertentu kalau belum login.
Kapan memakai SharedPreferences?
Cocok untuk:
- Aplikasi latihan untuk pemula.
- Aplikasi offline yang dipakai sendiri (single user) di satu HP.
- Halaman admin sederhana yang tidak menyimpan data sangat sensitif.
SharedPreferences menyimpan data sebagai pasangan kunci–nilai di memori internal. Untuk latihan, kadang orang menyimpan username/password langsung di SharedPreferences. Namun untuk produksi, tidak disarankan menyimpan password polos di sana.
Kapan memakai Firebase Authentication?
Cocok untuk:
- Aplikasi yang punya banyak pengguna dengan akun masing-masing.
- Aplikasi yang butuh reset password, verifikasi email, login dengan nomor HP, atau login sosial (Google, dll.).
- Projek yang ingin kamu kembangkan ke Play Store, meskipun skala kecil.
Firebase Authentication mengurus banyak hal berat: enkripsi password, reset password, token, dan integrasi dengan layanan lain Firebase.
Syarat sebelum mengikuti Android Studio tutorial login
1. Perangkat & tools
- Laptop/PC dengan Android Studio terinstal dan berjalan normal.
- HP Android untuk testing nyata (opsional tapi sangat direkomendasikan).
- Koneksi internet yang cukup stabil (wajib untuk Firebase, tidak wajib untuk SharedPreferences).
- Akun Google untuk mengakses Firebase Console.
2. Ilmu dasar yang sebaiknya sudah dikuasai
- Dasar Kotlin (class, fungsi, variabel,
if–else). - Dasar layout XML (EditText, Button, TextView, LinearLayout/ConstraintLayout).
- Cara membuat project baru dan menjalankannya di emulator/HP.
3. Syarat dari sudut pandang syariat
- Gunakan fitur login untuk melindungi data, bukan untuk mengakali atau mencuri akun orang lain.
- Jangan buat aplikasi yang mendorong maksiat (misalnya aplikasi judi, konten vulgar, atau penipuan) meskipun teknik login yang dipakai sama.
- Jika aplikasi menangani data sensitif (email, nomor HP), jaga amanah: jangan diperjualbelikan tanpa izin.
Langkah-langkah membuat halaman login dengan SharedPreferences
Contoh kasus: aplikasi sederhana dengan akun admin lokal. Username dan password disimpan di SharedPreferences, hanya untuk latihan.
Langkah 1 – Buat layout login
Edit activity_login.xml (atau activity_main.xml jika hanya satu Activity):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/edtUsername"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username" />
<EditText
android:id="@+id/edtPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:inputType="textPassword" />
<Button
android:id="@+id/btnLogin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Login"
android:layout_marginTop="12dp" />
</LinearLayout>
Langkah 2 – Siapkan SharedPreferences
Di contoh ini, kita buat akun default: username admin dan password 123456. Di aplikasi nyata, jangan lakukan seperti ini.
class LoginActivity : AppCompatActivity() {
private lateinit var prefs: SharedPreferences
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
prefs = getSharedPreferences("auth_prefs", Context.MODE_PRIVATE)
val edtUsername = findViewById<EditText>(R.id.edtUsername)
val edtPassword = findViewById<EditText>(R.id.edtPassword)
val btnLogin = findViewById<Button>(R.id.btnLogin)
// Simpan kredensial default sekali (opsional, bisa dipindah ke tempat lain)
val editor = prefs.edit()
if (!prefs.contains("username")) {
editor.putString("username", "admin")
editor.putString("password", "123456")
editor.apply()
}
btnLogin.setOnClickListener {
val inputUser = edtUsername.text.toString().trim()
val inputPass = edtPassword.text.toString().trim()
if (inputUser.isEmpty() || inputPass.isEmpty()) {
Toast.makeText(this, "Username dan password wajib diisi", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
val savedUser = prefs.getString("username", "")
val savedPass = prefs.getString("password", "")
if (inputUser == savedUser && inputPass == savedPass) {
// Set status login
prefs.edit().putBoolean("is_logged_in", true).apply()
// Pindah ke halaman utama
startActivity(Intent(this, MainActivity::class.java))
finish()
} else {
Toast.makeText(this, "Username atau password salah", Toast.LENGTH_SHORT).show()
}
}
}
}
Langkah 3 – Cegah pengguna masuk ke login lagi jika sudah login
Misalnya di SplashActivity atau di awal LoginActivity:
override fun onStart() {
super.onStart()
val prefs = getSharedPreferences("auth_prefs", Context.MODE_PRIVATE)
if (prefs.getBoolean("is_logged_in", false)) {
startActivity(Intent(this, MainActivity::class.java))
finish()
}
}
Langkah 4 – Logout
Di MainActivity, buat tombol logout:
btnLogout.setOnClickListener {
val prefs = getSharedPreferences("auth_prefs", Context.MODE_PRIVATE)
prefs.edit().putBoolean("is_logged_in", false).apply()
startActivity(Intent(this, LoginActivity::class.java))
finish()
}
Catatan penting: teknik ini hanya cocok untuk latihan atau aplikasi internal yang sangat sederhana. Untuk aplikasi publik, gunakan solusi yang lebih aman seperti Firebase atau backend sendiri.
Langkah-langkah membuat halaman login dengan Firebase Authentication
Contoh: login dengan email & password menggunakan Firebase.
Langkah 1 – Siapkan project Firebase
- Buka Firebase Console > buat project baru.
- Tambahkan aplikasi Android (isi package name sama dengan di Android Studio).
- Ikuti langkah integrasi (download file
google-services.jsondan letakkan di folderapp/).
Langkah 2 – Tambahkan dependency Firebase
Di build.gradle (Module) tambahkan (pastikan versi mengikuti rekomendasi Firebase terkini):
dependencies {
implementation(platform("com.google.firebase:firebase-bom:33.0.0"))
implementation("com.google.firebase:firebase-auth-ktx")
}
Di akhir file, pastikan ada plugin:
apply plugin: "com.google.gms.google-services"
Langkah 3 – Layout login Firebase
Layout hampir sama dengan contoh SharedPreferences, bisa ditambah tombol “Daftar Akun”.
Langkah 4 – Logika login dengan FirebaseAuth
class LoginFirebaseActivity : AppCompatActivity() {
private lateinit var auth: FirebaseAuth
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login_firebase)
auth = FirebaseAuth.getInstance()
val edtEmail = findViewById<EditText>(R.id.edtEmail)
val edtPassword = findViewById<EditText>(R.id.edtPassword)
val btnLogin = findViewById<Button>(R.id.btnLogin)
val btnRegister = findViewById<Button>(R.id.btnRegister)
btnLogin.setOnClickListener {
val email = edtEmail.text.toString().trim()
val pass = edtPassword.text.toString().trim()
if (email.isEmpty() || pass.isEmpty()) {
Toast.makeText(this, "Email dan password tidak boleh kosong", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
auth.signInWithEmailAndPassword(email, pass)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
startActivity(Intent(this, MainActivity::class.java))
finish()
} else {
Toast.makeText(this, "Login gagal: ${task.exception?.message}", Toast.LENGTH_SHORT).show()
}
}
}
btnRegister.setOnClickListener {
val email = edtEmail.text.toString().trim()
val pass = edtPassword.text.toString().trim()
if (email.isEmpty() || pass.isEmpty()) {
Toast.makeText(this, "Email dan password tidak boleh kosong", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
auth.createUserWithEmailAndPassword(email, pass)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
Toast.makeText(this, "Pendaftaran berhasil, silakan login", Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "Daftar gagal: ${task.exception?.message}", Toast.LENGTH_SHORT).show()
}
}
}
}
override fun onStart() {
super.onStart()
val currentUser = auth.currentUser
if (currentUser != null) {
startActivity(Intent(this, MainActivity::class.java))
finish()
}
}
}
Dengan Firebase, kamu tidak menyimpan password sendiri. Firebase yang mengurus hashing & penyimpanan secara aman di server mereka.
Tips keamanan dan best practice login di Android
- Jangan simpan password asli di SharedPreferences: kalau pun harus menyimpan sesuatu, simpan token atau minimal versi yang sudah di-hash (untuk backend sendiri).
- Gunakan HTTPS saat berkomunikasi dengan server dan API.
- Batasi jumlah percobaan login untuk mencegah brute force (di sisi server/Firebase).
- Tambahkan verifikasi dua langkah untuk akun penting (misalnya via email/OTP), mirip konsep verifikasi dua langkah di WhatsApp yang sudah umum dibahas.
- Jangan menampilkan pesan error yang terlalu detail: misalnya “password salah” sudah cukup; jangan mengungkap apakah email ada atau tidak di sistem untuk semua kasus.
- Dari sisi syariat: jangan gunakan ilmu login ini untuk meretas akun orang lain atau menjual aplikasi yang mempermudah pembajakan akun.
Risiko & kesalahan umum saat membuat fitur login
- Menyimpan password polos di lokal: baik di SharedPreferences, file, atau database tanpa enkripsi.
- Tidak memvalidasi input: mengizinkan email kosong, password satu karakter, atau input aneh lain.
- Tidak meng-handle error jaringan (Firebase): aplikasi langsung crash jika internet putus.
- Mengandalkan login palsu untuk aplikasi publik: login dummy SharedPreferences digunakan di aplikasi yang di-publish, mudah dibongkar.
- Menyalahgunakan data login: meminjam akun user untuk promosi spam, jual beli akun, atau hal haram lainnya.
FAQ seputar Android Studio tutorial login
1. Untuk pemula, lebih baik belajar login pakai SharedPreferences dulu atau langsung Firebase?
Sebaiknya dua-duanya: mulai dari SharedPreferences untuk memahami alur dasar (input–validasi–status login), lalu naik ke Firebase agar terbiasa dengan cara kerja login yang lebih aman dan siap online.
2. Apakah aman menyimpan password user di SharedPreferences?
Tidak aman jika password disimpan polos (plain text). SharedPreferences hanya cocok untuk menyimpan status login sederhana atau token yang tidak terlalu sensitif. Untuk password banyak user, gunakan backend/Firebase.
3. Apakah Firebase Authentication gratis?
Firebase Authentication punya kuota gratis yang cukup besar untuk projek kecil/pemula (detail batasan bisa dicek di dokumentasi resmi). Untuk aplikasi skala besar, mungkin perlu naik ke paket berbayar.
4. Bagaimana menguji login tanpa terus menerus daftar akun baru?
Kamu bisa membuat beberapa akun dummy untuk testing (misal test1@example.com, test2@example.com) dan menggunakan fitur reset password, atau memanfaatkan akun yang sama di beberapa HP.
5. Bolehkah tutorial login ini dibuat modul PDF dan dibagikan ke siswa/umum?
Boleh. Menyusun ulang tutorial ini menjadi modul PDF lengkap dengan screenshot Android Studio justru bisa menjadi bahan ajar Android yang bermanfaat, selama kamu tidak menyalin mentah modul berbayar orang lain tanpa izin.
Baca juga di Beginisob.com
- Cara menghubungkan aplikasi Android dengan database MySQL
- Cara membuat aplikasi Android online shop (panduan lengkap)
- Cara membuat aplikasi menjadi APK di Android
- Cara mengamankan akun WhatsApp dari pembajakan dengan verifikasi dua langkah
- Passkey Google: cara mengaktifkan dan menggunakannya sebagai metode login baru
- Panduan Google Analytics 4 (GA4) untuk pemula: cara membaca data trafik website & aplikasi
Comments
Post a Comment