Autentikasi & Keamanan


🎯 1. Pengantar Autentikasi & Keamanan

https://images.openai.com/static-rsc-4/idoBRr5Nmo8Wf3oycVFYGmUurNqUfi2OuWnTGNiPr3FIhudbmkAiOOWoTCC4nHSxbHlQ0fnUcYwmKHy26WNPo4gcpgBUur9OnQ3RJ9-6w6x0JwFG6hcK6a-yjOpFal3l551_sAbfONIuhkzHrMXQFaN0YwrszctZhdWkzjrXCK6KWMDnOUmLt-WiG_cBH1Z7?purpose=fullsize
https://images.openai.com/static-rsc-4/Ca4lojIAUNB1nWNhybHueYAtL8QWUpniZixIbsjT_VF-6imBTKLEOPKxzigV1QyGWqf7XmYaSP94upZSj8SLXLgBAx329UuPbsBFW97JPuvRqhp2iEnIlgMtbfDRjIF7nH6qvASPvfJqsrP-vdW9sgYl07FyZHRw_vstAYH9bbzA8m2yg6JiJswf_ITRUPLg?purpose=fullsize
https://images.openai.com/static-rsc-4/D8wGwBPhk2VTrrI6jXs8H3X5PfzNq5ymAntuN92FpSi_GFbNfjC7MhP4EGV1nrCi8nxuykkzls6PrxUV-LJyI5h9IhqpdfDa8_o5CY7DK3ZexrPEhXQ6rB0Q2w0w7vn1SVjv3eBRVXOPWekklxRkaOvEC49TybRZkMNICY0UISgU4UoAX8TBgkOZKPnD95TB?purpose=fullsize

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

JenisContoh
Something you knowPassword
Something you haveToken / OTP
Something you areFingerprint

🧠 Narasi

Sebagian besar aplikasi desktop menggunakan username & password sebagai metode utama autentikasi.


πŸ” 3. Alur Login (Authentication Flow)

https://images.openai.com/static-rsc-4/vNrSy3Y8dfXFC4m8lyDxY5h6dZIJH8Rgoi9qrEqaAA-6jeK0iqKXTjuf5PCEA_A2Kf-5I1Yi7XufkIk34p1ru6WMxkfoLdoQsCRFHavfw5CFmou0poERs8hkqC66qzeuHaL2QRB6AHwZQ3V4hNW6OMKO0B8zz12Io1WTPoI74NCD5xBO5ZaBG5DZoZb4SiAA?purpose=fullsize
https://images.openai.com/static-rsc-4/42XkDA98YMBg4pGMlknJJ5tas2DvHOkbh2MAO_ixfVrVQHl9XtB0HxHPKXM9A5V9Gx_73W--S7KoHFG_oKIPlhxAhinxW1slF2omUXQrwlTuy-CYrLskhwfa_gNrwYxXDPC-ll9a6HJ2yV_3Kli57QYUsYoFGXk4LkGXe7IpXuIUeU7CMngUqO92RMUqpb0l?purpose=fullsize
https://images.openai.com/static-rsc-4/gXg8flvbADKISWenDV_pb0MVyhk41U3eajZaC0jYN2uf4fEaY5cgluf2lonu26yEDfHJ4oOTn5rquwC8obWo9W8ihVx0CJnDD17dThNS-QsbnYLiupAnAyVwuDXF1kEJv0VKr9nPkTWJdrjVQXqRxswKtrt7jXfozPzpRYFQ8KbrsetEcprD2lCYSUw3Tqh-?purpose=fullsize

6

πŸ“– Alur Proses

  1. User memasukkan username & password
  2. Aplikasi memvalidasi input
  3. Data dikirim ke database
  4. Sistem mencocokkan data
  5. Jika cocok β†’ login berhasil
  6. Jika tidak β†’ tampilkan error

🧠 Narasi

Login bukan sekadar input, tetapi proses verifikasi yang harus aman dan akurat.


πŸ”‘ 4. Penyimpanan Password (Hashing)

https://images.openai.com/static-rsc-4/dCcfHuCmWKZXiKzeOP-xx6i9Q164z0c8fjMeZ0ITmfwQ4oq2i4QLk_gnvab3jnM3ZPLHz7Qd4-q72drxUE--V-flFfAyYgUIm3XmcMfyFFvb1K7hfcptsGM-TAd0aJjWgzXJeqtfPOSUxlLZu4xC0c-CfWrqjwbfOr2fY9ftt9SVgCMHAxguBdsMtEuq5Syf?purpose=fullsize
https://images.openai.com/static-rsc-4/rZDdVRkpnqsnoTNXZxre_s9c__9Tw_4FP7SJTaAvlciX8348FJRorBNokAGP3PUlGx9qOklrJmLSQPZvCcaQ5rOiG64G6mrrsPg1M_oRs44ftgPglpLjP6tSrnxm3klikufEzEDhEeL75xRizXDTiFaANqwDh9BnLJBoGT2vxDtuR28JBMVv98uCWDbXMtMG?purpose=fullsize
https://images.openai.com/static-rsc-4/J2P3dU4Fn3LfDxVBhjpy6Dti91Fi9QbVdXn0LMn_8KUP2w-XQCtZllV1SADLUzWfg5jjJ0_wGNBgiOEkBRYpH2hk3lrfh5RU9i7IG_xJsCT6X6vhUeGOv4cdBxS9-1QwLh7H-TAXbjNzC5n6dG9MY4F1LBvnNyV7o2sp00bubhLKGLDNQh-zXblrroqLZ7sx?purpose=fullsize

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 password
  • sha256 β†’ algoritma hash
  • Password tidak disimpan langsung

🧱 6. Otorisasi (Authorization)

πŸ“– Deskripsi

Authorization adalah proses menentukan hak akses user setelah login.


πŸ“Š Contoh Role

RoleHak Akses
AdminFull akses
UserTerbatas
GuestRead only

🧠 Narasi

Autentikasi = siapa kamu
Otorisasi = apa yang boleh kamu lakukan


πŸ›‘οΈ 7. Ancaman Keamanan Umum

https://images.openai.com/static-rsc-4/Y-lMPXrQK7ylRV5UgzJvdgb0oC4VzrKaZPzdN-3LUSgNXJZ26tXSmdzaLobBnE_BZ_17nWw49NlpfXLlMf5YjB81pMTloes_rWm8qLyRV76Y6rp4_kln5SCCfPTQ5NLWLhxz75VACOa25v9dS-H2piKdz3p81i70oqSjz9LmeOpl32XUz4sTqnoFWxqEFLL_?purpose=fullsize
https://images.openai.com/static-rsc-4/M6h8KoaHHpg9ACWQXHLhEvpPWAnMsH8D4YgYLSX5HVpfc3-gkYDFWd0PwRa0hcCzabZrCclW0hqixUqMK7E81PAFGMMbGI7Gs3himGrjq2klNvxlrRvh1tppcRhOWW5veN3BN1SWKwickRu2lqsjEEBQiaq0Kgun-lMUcmco-4CbLGgqETyrx1coBwuZuQ9i?purpose=fullsize
https://images.openai.com/static-rsc-4/E-VQpGc7O147bUDEGHoDoSVXubon2LktyqbVjQDTdnNSMxyj40hCo--tA-bFjQKJiDVJQ_YVU0_9zZDlA0A5xo2pKyIyPUYEizTbd76HBjIiW103Qj7Mi_oUl-21Er5dYbw4T0gSfuLIcz3BnwIMRq0-kRXk4tkNih8sqqOftqax6_s7qKBLCgmGUM_zHkk6?purpose=fullsize

6

❌ Jenis Ancaman

AncamanPenjelasan
SQL InjectionManipulasi query
Brute ForceTebak password
MalwareProgram berbahaya
Data BreachKebocoran 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

https://images.openai.com/static-rsc-4/KZgB7-jhMkMDYFnOA-4RHrwtX5eGfArk4AaBIqlkOmWlnH1Z3B9hd_w7zAnD6GpMiDJm2aB7TiQDiOTjyzpRc03Jamg8E5bEQNfhyNOlq67hnVspASsXxCypSGU2uV1EfSuHorOjUWjqAg361lRNHiPrebizkiIBCtEpVC27QE5q4XbTnNOEfK-FMrfq34go?purpose=fullsize
https://images.openai.com/static-rsc-4/GH7JCR1EPi8Bv41EUJXZLJv3LYKpm8BTS02v1GkqVdY_aKRMjLXTxw2ODev0JhVld0M58IhF-4YOPnNOf41vQyUt8qAE7ESA84vXQqGjrgyFOptPxXbEIpBiyZco4ibF-qCdvAq7ObQf8aQ8nC0zIEuW9ItpLvwajZp9nToGNyhWH_UEqXNHPgzLC0oi2rS5?purpose=fullsize
https://images.openai.com/static-rsc-4/l7yQCbwVL5b12FP_mLyskOHfDPMaiSzAl5AySbtNj8We3MibDuSqPkx9omnokm9Kvby0DBVoIUapHNXAdiflvFoBfdF9Dfb7b0unNbm4-wX2ARWNBnOTh7HFulhPtsIUcru9XUZWuWBpOkMZfE9gq8n1IWzJWneW4MPuEsDFFn0sUf73s6cwx_-FP6gU_uOL?purpose=fullsize

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

KesalahanDampak
Simpan password plain textTidak aman
Tidak validasi inputBug
Tidak batasi loginRentan brute force
Tidak gunakan hashingRisiko 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

https://images.openai.com/static-rsc-4/70jLbWJp0UmWjNU2c2b68i3T69r_xw42laOJktLfeRR67AnAV8Xs2tpSpf5DIDHikwOCv2My633Iv7edrl0y1G0plxrrX5miLZDSljrPG7NeWYN7fFtXwQP9zpKB42sFcDtJ2hxYLWEMj-pBZa0zIy3bm7E2V-D_Tjuqsr7GBQOn1oz07FSB8r5zL0lNKm5V?purpose=fullsize
https://images.openai.com/static-rsc-4/ZMuw3F6xgRupGDsB6HCDszpDG1kBVriNwzTWnWp8cJV_U-D8-uqrxTL9nx6qiUZR21KsTq0OjfAhzmGBudbnP1swRMgpq_dMr68Rn_t8in_a-MfXZHaOoRq7ofpPXeIXqPg5_jRiAKY6haVfRU4DF0oEypjLLP83udYmBVH-3Ua1zJ7ZXAyfrwAJxrEAlH7u?purpose=fullsize
https://images.openai.com/static-rsc-4/iwr2vSpMTsaegEGh4yBuy2jL09Qg2jUug8Hg09ZsBXO_tjorv_GfHW5Dh1zcr2X9O3RmaSkpgBlybZ07bOzMOxpu8110qhbba-XMw7i-kRHv5ke59ca-uHJWpybFwYX0GSwjMYloWOjIC4GXoz3AOLSNVhPUahwJeQOyYX6s_4Tt3jRghoDqvsQ9uM6X2Qwi?purpose=fullsize

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

  1. Apa itu autentikasi?
  2. Apa itu hashing?
  3. 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