Pendamping Bab 10: Input Pengguna dan Validasi Dasar. Gunakan nomor contoh dan latihan yang sama dengan buku.
Tujuan Belajar
- Menerima masukan dengan input.
- Memeriksa teks sebelum konversi bilangan.
- Meminta ulang masukan sampai memenuhi aturan.
Persiapan
Kamu sudah memahami percabangan dan perulangan. Jalankan contoh interaktif dan masukkan data uji yang disebutkan. Penanganan exception secara lengkap dibahas pada Bab 15.
Program dengan tombol Coba di IDE dapat dijalankan di browser. Untuk program lokal, unduh sumber, ekstrak ZIP, lalu ikuti README.txt.
Pembahasan
Ikuti pembahasan pada buku, lalu gunakan kegiatan dan materi pendamping berikut untuk memeriksa pemahaman.
Studi Kasus
10-01 – Menerima jumlah buku
or mengevaluasi bagian kanan hanya jika diperlukan. Saat teks bukan digit desimal, int tidak dijalankan. Nol ditolak karena jumlah harus positif.
Coba di IDE Unduh SumberMasukan uji, berurutan: 'abc', '0', '3'.
teks = input("Jumlah buku: ").strip()
while not teks.isdecimal() or int(teks) == 0:
print("Masukkan bilangan bulat positif.")
teks = input("Jumlah buku: ").strip()
jumlah = int(teks)
print(f"Jumlah buku: {jumlah}")
Hasil yang diharapkan:
Jumlah buku: Masukkan bilangan bulat positif.
Jumlah buku: Masukkan bilangan bulat positif.
Jumlah buku: Jumlah buku: 3Coba ubah: Uji spasi di sekitar angka dan masukan berupa pecahan.
Rangkuman
input mengembalikan string. Tentukan format masukan yang diterima, validasi, lalu konversikan jika sesuai. isdecimal cocok untuk digit desimal tanpa tanda; bentuk seperti -2 dan 2.5 memerlukan aturan lain.
Cek Pemahaman
Lima pertanyaan ini sama dengan pertanyaan di buku. Periksa jawaban di kuis untuk melihat skor dan pembahasan.
- Tipe hasil input() adalah …
- Apa hasil int("12")?
- Apakah "-2".isdecimal() bernilai True?
- Mengapa memakai while saat validasi?
- Kapan sebaiknya konversi dilakukan pada contoh validasi digit?
Latihan Mandiri
Latihan 10-L01 – Sapaan personal
Dasar. Minta nama dan tampilkan Halo, Ayu! ketika masukan Ayu.
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
Nama: Halo, Ayu!
Lihat Petunjuk
input menghasilkan string yang dapat dipakai pada f-string.
Lihat Solusi
nama = input("Nama: ").strip()
print(f"Halo, {nama}!")
Prompt muncul tanpa baris baru sebelum hasil.
Coba Solusi di IDEUnduh SolusiLatihan 10-L02 – Jumlah valid
Penerapan. Terima teks jumlah barang. Jika berisi digit desimal, tampilkan dua kali jumlahnya; selain itu tampilkan Masukan tidak valid. Uji 6.
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
Jumlah: 12
Lihat Petunjuk
Periksa isdecimal sebelum int.
Lihat Solusi
teks = input("Jumlah: ").strip()
if teks.isdecimal():
print(int(teks) * 2)
else:
print("Masukan tidak valid")
Format yang diterima adalah bilangan bulat tanpa tanda.
Coba Solusi di IDEUnduh SolusiLatihan 10-L03 – Nama wajib diisi
Pengembangan. Minta nama sampai tidak kosong setelah strip. Uji masukan kosong lalu Ayu.
Kerjakan di IDE Unduh LatihanHasil yang diharapkan:
Nama: Nama: Halo, Ayu!
Lihat Petunjuk
Kondisi perulangan adalah nama masih kosong.
Lihat Solusi
nama = input("Nama: ").strip()
while nama == "":
nama = input("Nama: ").strip()
print(f"Halo, {nama}!")
Masukan kedua mengakhiri perulangan.
Coba Solusi di IDEUnduh SolusiPengembangan
Kegiatan Tambahan
Tulislah program yang meminta nama dan usia dari pengguna. Jika usia di bawah 18, tampilkan “Halo, [Nama]. Kamu masih muda!” Jika 18 atau lebih, tampilkan “Halo, [Nama]. Selamat datang dewasa.” Pastikan usia yang dimasukkan adalah angka.
Contoh:
Siapa namamu? Rina
Berapa usiamu? 15
Halo, Rina. Kamu masih muda!
Siapa namamu? Budi
Berapa usiamu? duapuluh
Input tidak valid untuk usia. Harap masukkan angka.
Berapa usiamu? 20
Halo, Budi. Selamat datang dewasa.
Solusi (Contoh):
nama = input("Siapa namamu? ").strip()
while True:
usia_str = input("Berapa usiamu? ")
if usia_str.isdecimal():
usia = int(usia_str)
if usia < 18:
print(f"Halo, {nama}. Kamu masih muda!")
else:
print(f"Halo, {nama}. Selamat datang dewasa.")
break
else:
print("Input tidak valid. Masukkan angka bulat positif.")
Kegiatan Tambahan
Berikut adalah beberapa tantangan dan latihan untuk mengasah pemahamanmu tentang input dan validasi dasar.
- Program Kelipatan: Buat program yang meminta
pengguna memasukkan sebuah angka. Program kemudian akan mencetak angka
kelipatan dari angka tersebut dari 1 hingga 10 kali. Contoh: Jika
pengguna memasukkan
3, outputnya adalah3, 6, 9, ..., 30. Pastikan input adalah angka. - Tebak Kata Rahasia: Buat
whileloop yang meminta nama pengguna sampai pengguna mengetik kata rahasia, misalnya “python”. Beri petunjuk jika tebakan salah. - Hitung Mundur Dinamis: Buat program yang meminta pengguna memasukkan sebuah angka (misalnya 5). Program kemudian akan melakukan hitung mundur dari angka tersebut ke 1, lalu mencetak “Selesai!”. Validasi input agar berupa angka.
Kegiatan Tambahan
Berikut adalah soal latihan dengan tingkat kesulitan yang berbeda untuk memperdalam pemahaman kamu.
Mudah
- Sapaan Personal: Buat program yang meminta nama depan dan nama belakang pengguna secara terpisah. Kemudian, gabungkan keduanya dan sapa pengguna dengan nama lengkapnya. Contoh: “Halo, Budi Santoso!”
- Kalkulator Luas Persegi Panjang: Minta pengguna memasukkan panjang dan lebar sebuah persegi panjang. Hitung dan tampilkan luasnya. Pastikan input adalah angka.
Sedang
- Konverter Suhu Sederhana: Buat program yang meminta
pengguna memasukkan suhu dalam Celsius. Konversikan suhu tersebut ke
Fahrenheit dan tampilkan hasilnya. Rumus:
F = (C * 9/5) + 32. Lakukan validasi input. - Pengecek Angka Ganjil/Genap: Minta pengguna memasukkan sebuah bilangan bulat. Tentukan apakah bilangan tersebut ganjil atau genap, lalu tampilkan hasilnya.
Sulit
- Kalkulator Sederhana (Lanjutan): Kembangkan “Studi
Kasus Mini: Kalkulator Sederhana”. Tambahkan pilihan operasi:
penjumlahan (+), pengurangan (-), perkalian (*), dan pembagian (/).
Minta pengguna memilih operasi dan dua angka. Tampilkan hasilnya.
Lakukan validasi untuk semua input, termasuk pembagian dengan nol.
- Tips: kamu bisa meminta input operasi sebagai string (misalnya, “+”, “-”, “*“,”/“).
- Validasi Password Sederhana: Buat program yang
meminta pengguna membuat password. Password dianggap valid jika:
- Panjangnya minimal 8 karakter.
- Mengandung setidaknya satu huruf besar.
- Mengandung setidaknya satu angka. Terus minta input hingga password valid. (Ini adalah penyederhanaan, validasi password di dunia nyata lebih kompleks!)
- Tips: kamu bisa menggunakan loop dan metode string
seperti
isupper(),islower(),isdigit(), dan fungsilen().
Referensi dan Materi Pendamping
- input() di Python: Menerima Ketikan Pengguna
- int() di Python: Konversi ke Bilangan Bulat
- str.isdecimal() di Python: Memeriksa Digit Desimal
Langkah Selanjutnya
Bab 11 membahas Fungsi: Menyusun Bagian Program yang Dapat Digunakan Ulang. Sebelum melanjutkan, pastikan kamu dapat menjelaskan tujuan belajar dan menyelesaikan tiga latihan inti bab ini.
Edisi September 2026. Nomor contoh, pertanyaan, dan latihan digunakan bersama pada buku dan halaman ini.
