Latihan: Password Checker
Pada latihan ini, kita akan menggabungkan beberapa konsep Python dasar yang sudah dipelajari sebelumnya untuk membuat program sederhana Password Checker.
Program akan meminta pengguna memasukkan username dan password, kemudian menampilkan informasi password tanpa menampilkan password aslinya.
Catatan: Exercise ini hanya untuk latihan konsep Python dasar. Teknik menyembunyikan password menggunakan karakter * bukan merupakan metode keamanan atau enkripsi password yang sebenarnya.
Tujuan Exercise
Latihan ini bertujuan untuk mempraktikkan:
input()- Variable
len()- String multiplication
- f-string
- String manipulation
- Clean code dan code readability
Studi Kasus
Buatlah program yang meminta pengguna memasukkan:
- Username
- Password
Program kemudian:
- Menghitung jumlah karakter password.
- Membuat representasi password menggunakan karakter
*. - Menampilkan username.
- Menampilkan password dalam bentuk karakter
*. - Menampilkan jumlah karakter password.
Contoh Interaksi
Misalnya pengguna memasukkan:
What is your username? johnny
What is your password? mysecret
Program harus menghasilkan:
johnny, your password ******* is 8 letters long.
Password asli:
mysecret
tidak ditampilkan.
Petunjuk
1. Menerima Username
Gunakan:
username = input("What is your username? ")
2. Menerima Password
Gunakan:
password = input("What is your password? ")
Ingat bahwa hasil dari input() berupa:
str
3. Menghitung Panjang Password
Gunakan:
len(password)
Simpan hasilnya ke dalam variable yang memiliki nama deskriptif.
Contohnya:
password_length = len(password)
4. Membuat Password Tersembunyi
Gunakan teknik string multiplication.
Contohnya:
"*" * 5
menghasilkan:
*****
Gunakan panjang password untuk menentukan jumlah karakter *.
hidden_password = "*" * password_length
5. Menampilkan Hasil
Gunakan f-string untuk membuat output.
Contohnya:
print(f"{username}, your password {hidden_password} is {password_length} letters long.")
Tantangan
Lengkapi program berikut:
username = input("What is your username? ")
password = input("What is your password? ")
# Hitung panjang password
# Buat password tersembunyi
# Tampilkan hasil
Contoh Solusi
Setelah mencoba menyelesaikan exercise sendiri, Anda dapat membandingkan dengan solusi berikut:
username = input("What is your username? ")
password = input("What is your password? ")
password_length = len(password)
hidden_password = "*" * password_length
print(f"{username}, your password {hidden_password} is {password_length} letters long.")
Memahami Solusi
Program dimulai dengan meminta username:
username = input("What is your username? ")
Kemudian meminta password:
password = input("What is your password? ")
Selanjutnya, program menghitung jumlah karakter password:
password_length = len(password)
Jika password adalah:
mysecret
maka:
password_length = 8
Kemudian program membuat string bintang:
hidden_password = "*" * password_length
Hasilnya:
********
Terakhir, program menggunakan f-string untuk menampilkan hasil:
print(f"{username}, your password {hidden_password} is {password_length} letters long.")
String Multiplication
Salah satu konsep penting dalam exercise ini adalah string multiplication.
Python memungkinkan kita mengalikan string dengan integer.
Contohnya:
print("*" * 5)
Hasil:
*****
Contoh lainnya:
print("Python " * 3)
Hasil:
Python Python Python
Konsep ini digunakan dalam exercise untuk membuat karakter * sebanyak jumlah karakter password.
Menggabungkan len() dan String Multiplication
Dua konsep tersebut dapat digunakan bersama:
password = "secret"
password_length = len(password)
hidden_password = "*" * password_length
Hasil:
password_length → 6
hidden_password → ******
Dengan demikian, jumlah karakter bintang akan selalu mengikuti panjang password.
Mengapa Menggunakan Variable Terpisah?
Kita sebenarnya dapat menulis seluruh proses langsung di dalam print().
Contohnya:
print(f"{username}, your password {'*' * len(password)} is {len(password)} letters long.")
Kode tersebut memang dapat berjalan, tetapi lebih sulit dibaca.
Dalam pembelajaran dasar, lebih baik memecah proses menjadi beberapa variable:
password_length = len(password)
hidden_password = "*" * password_length
Kemudian:
print(f"{username}, your password {hidden_password} is {password_length} letters long.")
Cara ini membuat alur program lebih jelas.
Prinsip Clean Code
Exercise ini juga memperkenalkan konsep sederhana mengenai code readability.
Bandingkan:
print(f"{username}, your password {'*' * len(password)} is {len(password)} letters long.")
dengan:
password_length = len(password)
hidden_password = "*" * password_length
print(f"{username}, your password {hidden_password} is {password_length} letters long.")
Versi kedua lebih panjang, tetapi lebih mudah dipahami.
Program dapat dibaca seperti sebuah proses:
Ambil password
↓
Hitung panjang password
↓
Buat password tersembunyi
↓
Tampilkan hasil
Challenge Tambahan
Cobalah modifikasi program agar output menggunakan bahasa Indonesia.
Contoh:
Masukkan username: johnny
Masukkan password: mysecret
johnny, password kamu ******** panjangnya 8 karakter.
Gunakan konsep yang sama:
input()
len()
string multiplication
f-string
Challenge Tambahan 2
Cobalah membuat program yang menampilkan hanya dua karakter terakhir password dan menyembunyikan karakter lainnya.
Contoh:
Password: mysecret
Output: ******et
Petunjuk:
Gunakan konsep string slicing yang sudah dipelajari sebelumnya.
Konsep yang Dilatih
Exercise ini menggabungkan beberapa konsep Python dasar:
input()
↓
Variable
↓
String
↓
len()
↓
String Multiplication
↓
f-string
↓
Output
Kesimpulan
Exercise Password Checker merupakan latihan sederhana untuk menggabungkan beberapa konsep Python yang sudah dipelajari.
Konsep utama yang digunakan:
input()
untuk mengambil username dan password.
len(password)
untuk menghitung jumlah karakter password.
"*" * password_length
untuk membuat representasi password menggunakan karakter *.
Dan:
f"..."
untuk membuat output yang dinamis.
Exercise ini bertujuan melatih penggunaan beberapa konsep dasar Python secara bersamaan sekaligus membiasakan diri menulis kode yang mudah dibaca.