Fungsi input() pada Python

Waktu pertama belajar python, salah satu hal yang bikin saya seneng banget adalah ternyata programnya bisa “ngobrol”. Kita ketik sesuatu, program langsung merespons. Nah, jurus utamanya ada di fungsi input().
input() adalah fungsi bawaan (built-in) python yang tugasnya menerima masukan dari pengguna melalui keyboard. Begitu dipanggil, program akan berhenti sebentar, menunggu kalian mengetik sesuatu lalu menekan enter. Setelah itu nilai yang barusan kalian ketik bisa disimpan ke variabel dan dipakai di mana saja dalam program.
Cara kerja fungsi input()
Bentuk paling sederhananya begini:
nama = input()
print("Halo,", nama)
Kalau dijalankan, layar cuma diam saja tanpa petunjuk apa pun, lalu kalian bebas ngetik. Setelah enter ditekan, barulah pesan halo-nya muncul. Program berhenti di baris input() dan tidak lanjut ke baris berikutnya sampai kalian selesai mengetik.
Di dunia nyata hampir selalu kita kasih petunjuk supaya pengguna tahu mau ngetik apa. Petunjuk ini disebut prompt, dan cukup ditulis sebagai argumen di dalam kurung:
nama = input("Siapa nama kamu? ")
Teks "Siapa nama kamu? " akan tampil di layar, kursor berhenti tepat di belakangnya, dan baru deh program menunggu jawaban.
Contoh penggunaan fungsi input()
1. Menyapa pengguna
nama = input("Siapa nama kamu? ")
print("Halo,", nama, "! Selamat datang!")
Contoh jalannya program di terminal:
Siapa nama kamu? Sigit
Halo, Sigit ! Selamat datang!
2. Input yang hasilnya selalu string
Nah ini bagian yang sering bikin pemula bingung, termasuk saya dulu 🙂 Coba jalankan kode ini:
angka = input("Masukkan angka: ")
print(angka * 3)
Kalau kalian ketik 10, yang keluar bukan 30, tapi 101010. Kok bisa?
Karena input() selalu mengembalikan string, apa pun yang diketik penggunanya. Angka 10 yang masuk sebenarnya teks "10", dan di python mengalikan string dengan 3 artinya teks itu diulang tiga kali. Jadi kalau niatnya mau dihitung, wajib dikonversi dulu.
3. Mengubah input menjadi angka
Solusinya tinggal dibungkus pakai int() untuk bilangan bulat, atau float() kalau butuh desimal:
from datetime import date
umur = int(input("Berapa umur kamu? "))
tahun_lahir = date.today().year - umur
print("Kira-kira kamu lahir tahun", tahun_lahir)
Saya pakai date.today().year biar kode ini tetap benar walau dibaca bertahun-tahun lagi, nggak usah ganti-ganti angka tahun secara manual. Kalau mau versi simpelnya juga bisa, misal tahun_lahir = 2026 - umur.
Untuk bilangan pecahan seperti tinggi badan, ganti saja konversinya:
tinggi = float(input("Tinggi badan kamu berapa cm? "))
print("Setara", tinggi / 100, "meter")
4. Validasi input biar program nggak crash
Masalahnya begini: kalau pengunjung iseng mengetik huruf padahal diminta angka, int() langsung melempar error ValueError dan program mati di tempat. Ada dua cara mengatasinya.
Cara pertama, cek dulu pakai isdigit():
data = input("Masukkan sebuah angka: ")
if data.isdigit():
angka = int(data)
print("Kuadratnya:", angka ** 2)
else:
print("Eits, itu bukan angka bulat!")
Cara kedua, biarkan python mencoba lalu tangkap errornya pakai try/except:
try:
angka = int(input("Masukkan angka: "))
print("Angkanya valid:", angka)
except ValueError:
print("Input harus berupa angka!")
Menurut saya try/except lebih fleksibel karena bisa menangkap semua bentuk input aneh, termasuk angka negatif yang tidak lolos isdigit().
5. Menerima beberapa nilai dalam satu baris
Bonus yang sering kepakai di soal-soal latihan: minta dua nilai sekaligus lalu dipisahkan spasi.
a, b = input("Masukkan dua angka (dipisah spasi): ").split()
a = int(a)
b = int(b)
print("Jumlahnya:", a + b)
Method split() memecah teks berdasarkan spasi, hasilnya dua potongan yang masuk ke a dan b.
Hal yang perlu diperhatikan
Beberapa catatan penting saat memakai input():
- Selalu string. Apapun yang diketik user,
input()balikin string. Konversi sendiri keint,float, atau tipe lain sesuai kebutuhan. - Konversi tanpa validasi itu berbahaya.
int("abc")bikin program error. Biasakan pakaiisdigit()atautry/exceptkalau input-nya datang dari manusia, bukan dari kode sendiri. - Enter ikut “ditelan”. Tidak usah khawatir soal karakter enter di akhir ketikan,
input()sudah membersihkannya otomatis, beda dengan membaca file. - Prompt sebaiknya jelas. Tuliskan instruksi singkat di dalam
input("...")supaya pengguna tahu format yang diharapkan, misalnya “masukkan dua angka dipisah spasi”.
- Cek Tipe Data Python: Cara Mengidentifikasi Tipe Data Objek
- Float pada Python: Mengubah String ke Float
- Variabel Python: Deklarasi Variabel dan Cara Membuatnya
- Macam-macam Tipe Data pada Python
Kesimpulan
Fungsi input() adalah pintu masuk bagi data dari luar program, yaitu ketikan pengguna lewat keyboard. Poin-poinnya cuma tiga: input() menghentikan program sampai user menekan enter, hasilnya selalu berupa string sehingga harus dikonversi pakai int() atau float() kalau mau dihitung, dan input dari manusia sebaiknya divalidasi dulu pakai isdigit() atau try/except supaya program tidak tiba-tiba error. Dari kombinasi sederhana ini saja sudah bisa dibuat kuis interaktif, kalkulator, sampai form sederhana di terminal.
Pertanyaan yang Sering Diajukan
Apa fungsi input() pada Python?
input() adalah fungsi bawaan Python untuk menerima masukan dari pengguna melalui keyboard. Program akan berhenti dan menunggu sampai pengguna mengetik sesuatu lalu menekan enter, kemudian nilai tersebut dikembalikan sebagai string.
Kenapa hasil input() di Python tidak bisa dijumlahkan?
Karena input() selalu mengembalikan tipe data string, bukan angka. Jika ditambah dengan + maka teksnya digabung, misalnya 10 + 5 menjadi 105. Solusinya, ubah dulu dengan int() atau float().
Bagaimana cara meminta input berupa angka di Python?
Bungkus input() dengan fungsi konversi, contohnya int(input("Masukkan angka: ")) untuk bilangan bulat atau float(input(...)) untuk bilangan desimal.
Apa yang terjadi jika user memasukkan huruf saat diminta angka?
Program akan error ValueError karena huruf tidak bisa dikonversi ke integer. Untuk mengatasinya, validasi dulu input menggunakan isdigit() atau tangkap errornya dengan blok try/except.
Bisakah input() menerima beberapa nilai sekaligus?
Bisa. Gabungkan dengan method split(), contohnya a, b = input().split(" ") untuk menerima dua nilai yang dipisah spasi dalam satu baris.

