Skip to main content

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.

info

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:

  1. Username
  2. Password

Program kemudian:

  1. Menghitung jumlah karakter password.
  2. Membuat representasi password menggunakan karakter *.
  3. Menampilkan username.
  4. Menampilkan password dalam bentuk karakter *.
  5. 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.