π― 1. Pengantar Autentikasi & Keamanan
7
π Deskripsi
- Autentikasi (Authentication) β proses verifikasi identitas pengguna (login)
- Keamanan (Security) β perlindungan sistem dan data dari akses tidak sah
π§ Narasi
Tanpa autentikasi, siapa pun bisa mengakses aplikasi. Tanpa keamanan, data bisa dicuri, diubah, atau dihapus. Maka, keduanya adalah fondasi penting dalam aplikasi desktop modern.
π§© 2. Konsep Dasar Autentikasi
π Jenis Autentikasi
| Jenis | Contoh |
|---|---|
| Something you know | Password |
| Something you have | Token / OTP |
| Something you are | Fingerprint |
π§ Narasi
Sebagian besar aplikasi desktop menggunakan username & password sebagai metode utama autentikasi.
π 3. Alur Login (Authentication Flow)
6
π Alur Proses
- User memasukkan username & password
- Aplikasi memvalidasi input
- Data dikirim ke database
- Sistem mencocokkan data
- Jika cocok β login berhasil
- Jika tidak β tampilkan error
π§ Narasi
Login bukan sekadar input, tetapi proses verifikasi yang harus aman dan akurat.
π 4. Penyimpanan Password (Hashing)
8
π Deskripsi
Password tidak boleh disimpan dalam bentuk asli (plain text).
π Solusi: Hashing
- Mengubah password menjadi kode unik
- Tidak bisa dikembalikan ke bentuk asli
π§ Narasi
Jika database bocor:
- Plain text β password langsung diketahui
- Hash β lebih aman
π§ͺ 5. Tutorial Praktikum: Login + Hashing (Python)
π― Studi Kasus
Membuat sistem login sederhana
π» Contoh Kode
import sqlite3
import hashlib
def hash_password(password):
return hashlib.sha256(password.encode()).hexdigest()
conn = sqlite3.connect("user.db")
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS user (
username TEXT,
password TEXT
)
""")
# Simpan user
username = "admin"
password = hash_password("12345")
cursor.execute("INSERT INTO user VALUES (?, ?)", (username, password))
conn.commit()
# Login
def login(user, pwd):
hashed = hash_password(pwd)
cursor.execute("SELECT * FROM user WHERE username=? AND password=?", (user, hashed))
return cursor.fetchone()
print(login("admin", "12345"))
π§ Penjelasan
hashlibβ hashing passwordsha256β algoritma hash- Password tidak disimpan langsung
π§± 6. Otorisasi (Authorization)
π Deskripsi
Authorization adalah proses menentukan hak akses user setelah login.
π Contoh Role
| Role | Hak Akses |
|---|---|
| Admin | Full akses |
| User | Terbatas |
| Guest | Read only |
π§ Narasi
Autentikasi = siapa kamu
Otorisasi = apa yang boleh kamu lakukan
π‘οΈ 7. Ancaman Keamanan Umum
6
β Jenis Ancaman
| Ancaman | Penjelasan |
|---|---|
| SQL Injection | Manipulasi query |
| Brute Force | Tebak password |
| Malware | Program berbahaya |
| Data Breach | Kebocoran data |
π§ Narasi
Aplikasi tanpa keamanan sangat rentan terhadap serangan.
π 8. Teknik Keamanan Dasar
π Praktik Keamanan
- Gunakan hashing password
- Gunakan parameter query
- Validasi input
- Batasi percobaan login
- Gunakan enkripsi (lanjutan)
π§ Narasi
Keamanan bukan hanya fitur tambahan, tetapi kebutuhan utama.
π₯οΈ 9. Integrasi Login dengan GUI
7
π» Contoh GUI Login (Tkinter)
import tkinter as tk
from tkinter import messagebox
def login():
if entry_user.get() == "admin" and entry_pass.get() == "123":
messagebox.showinfo("Login", "Berhasil")
else:
messagebox.showerror("Login", "Gagal")
app = tk.Tk()
tk.Label(app, text="Username").pack()
entry_user = tk.Entry(app)
entry_user.pack()
tk.Label(app, text="Password").pack()
entry_pass = tk.Entry(app, show="*")
entry_pass.pack()
tk.Button(app, text="Login", command=login).pack()
app.mainloop()
π§ Narasi
GUI login adalah pintu masuk utama aplikasi.
β οΈ 10. Kesalahan Umum
β Tabel Kesalahan
| Kesalahan | Dampak |
|---|---|
| Simpan password plain text | Tidak aman |
| Tidak validasi input | Bug |
| Tidak batasi login | Rentan brute force |
| Tidak gunakan hashing | Risiko tinggi |
π§ Narasi
Kesalahan kecil bisa berdampak besar pada keamanan sistem.
π― 11. Best Practice
β Tips
- Gunakan hashing (bcrypt lebih baik)
- Gunakan role-based access
- Gunakan validasi input
- Logging aktivitas user
- Backup data
ποΈ 12. Studi Kasus Nyata
8
π Contoh
- Sistem perbankan
- Aplikasi kasir
- Sistem akademik
π§ Narasi
Semua sistem tersebut memiliki autentikasi yang kuat karena menyimpan data penting.
π 13. Rangkuman
π Inti Materi
- Autentikasi = verifikasi user
- Keamanan = perlindungan sistem
- Gunakan hashing password
- Gunakan role/otorisasi
- Hindari SQL injection
π 14. Latihan & Tugas
βοΈ Latihan
- Apa itu autentikasi?
- Apa itu hashing?
- Bedakan autentikasi dan otorisasi!
π» Tugas Praktikum
Buat aplikasi:
- Login username & password
- Gunakan hashing
- Tambahkan role (admin/user)
- Tampilkan pesan sukses/gagal
π Penutup
Materi ini sangat penting karena:
- Melindungi data
- Mencegah serangan
- Membuat aplikasi profesional