![Input & Output (title)](https://hackmd.io/_uploads/rkqaYTdP-e.png) ### Apa itu Input dan Output? ### **Input :** adalah data yang dimasukkan pengguna ke dalam program saat program berjalan. ![Ilustrasi input](https://hackmd.io/_uploads/BJVzGRdvZx.png) Dalam Python, input berarti: program menerima informasi dari luar (manusia → keyboard). Jika program tidak bisa menerima input: * Nilainya akan terkesan kaku * Tidak fleksibel * Tidak bisa digunakan secara berulang **Output :** adalah hasil yang dikeluarkan program ke pengguna. ![Ilustrasi output](https://hackmd.io/_uploads/rkFQGA_wWl.png) Fungsi yang digunakan : ``` print() ``` Hasil yang dikeluarkan biasanya berupa : * Teks * Angka * Isi variabel * Hasil operasi perhitungan (aritmatika) Tanpa output: * Program bekerja di belakang layar * Pengguna tidak tahu apa yang terjadi dengan program yang sedang berjalan ### Fungsi input() di Python Bentuk Dasar : ``` input() ``` Fungsi input ini hampir tidak pernah digunakan atau berjalan sendirian, karena : * Nilai hasil input tidak disimpan * Hasilnya akan hilang Bentuk yang Benar (Wajib) adalah dengan menggabungkan fungsi input ini dengan fungsi lain semisal dengan variabel agar nilai hasil input dapat ditampung atau disimpan dalam variabel. Contoh : ``` nama = input("Masukkan nama : ") ``` [<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/online-compiler/4cfK2f2dcgFvD) Penjelasan : * "Masukkan nama : " → output string(str) sementara berupa (pertanyaan) * input() → Menerima jawaban pengguna * nama = → Menyimpan jawaban ke variabel ### Tipe Data Hasil Input dan Permasalahannya Ini bagian yang sering bikin error tapi sering diremehkan. :::success **❗ Fakta penting :** input() SELALU menghasilkan data bertipe string(str), walaupun yang dimasukkan angka. ::: Contoh: ``` umur = input("Masukkan umur: ") print(type(umur)) ``` [<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/online-compiler/9puQguWp3YjIO) Hasilnya: ``` <class 'str'> ``` :::info **📃 FYI (For Your Information):** Karena fungsi input() selalu menghasilkan tipe data String(Str), masalah muncul saat menggabungkan hasil input dengan tipe data lain. ::: Misal : ``` umur = input("Masukkan umur: ") hasil = umur + 5 ``` [<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/online-compiler/1wj5Qv5c1Ta7t) :::warning **Kenapa error?** Karena : * Hasil nilai variabel umur → tipe data : string(str) * Nilai 5 → tipe data : integer(int) Python tidak bisa menggabungkan dua tipe data yang berbeda. ::: ### Casting (Konversi Tipe Data) dalam Python Solusi dari masalah dua tipe data yang tidak bisa digabungkan adalah dengan menggunakan fungsi **casting** :::success **Casting = konversi/mengubah tipe data** ::: Fungsi casting umum : * int() → Mengubah tipe data ke bilangan bulat * float() → Mengubah tipe data ke bilangan desimal * str() → Mengubah tipe data ke teks Contoh benar: ``` umur = int(input("Masukkan umur: ")) hasil = umur + 5 print(hasil) ``` [<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/online-compiler/1Uz7m2athZS6r) ### Multiple Argument - Menampilkan Output dengan Tanda Koma (,) :::success **Multiple Argument (,)** : pemisah beberapa argumen dalam print() dengan spasi otomatis. ::: Contoh: ``` nama = "Budi" umur = 16 print("Nama :", nama, "Umur :", umur) ``` [<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/online-compiler/9GwS4WgpFNAUG) Hasil: ``` Nama : Budi Umur : 16 ``` :::info 📌 **Kelebihan koma :** * Bisa menggabungkan dua atau lebih tipe data yang berbeda * Python otomatis akan memberikan spasi dari antar argumen dalam print() ::: ### Output dengan Concatenation (Penggabungan String) :::success **Concetanation** : menggabungkan string(str) menjadi satu ::: Contoh : ``` nama = "Fajar" print("Nama saya" + nama) ``` [<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/online-compiler/7X1bKC7y4QGUb) Semua isi dalam string itu dianggap teks termasuk spasi yang terlihat kosong. Maka ketika ingin menggabungkan lebih dari 1 string dalam print() harus diberi spasi secara manual. Contoh : ``` nama = "Fajar" print("Nama saya " + nama) ``` [<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/online-compiler/7cfK2dVwCg429) ### Perbedaan Penggunaan , dan + dalam Output | Aspek | Koma (,) | Plus (+) | | -------- | -------- | -------- | | Istilah dalam Python | Multiple Argument | Concetanation| | Penggunaan Tipe Data | Bisa semua tipe Data : Integer(Int), float, String(Str), Boolean(Bool)| Hanya String| | Otomatis spasi | ✅ Ya | ❌ Tidak| | Perlu casting | ❌ Tidak |✅ Ya | | Fungsi dalam print() | Untuk memisahkan argumen menggunakan spasi |Menggabungkan argumen menjadi satu kesatuan | ### Alur Logika Input → Proses → Output ![Alur input & output](https://hackmd.io/_uploads/ryQ8fAOPWe.png) Berikut adalah contoh implementasi fungsi input() ke dalam program sederhana untuk menghitung luas persegi panjang : ``` # Input panjang = int(input("Masukkan panjang: ")) lebar = int(input("Masukkan lebar: ")) # Proses luas = panjang * lebar #Output print("Luas persegi panjang adalah", luas) ``` [<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/online-compiler/9etTYne6E8hVr) Strukturnya jelas : * **Input** → ambil data * **Proses** → olah data : menghitung hasil dari panjang dikali lebar * **Output** → Menampilkan hasil proses atau olah data Mini project kasir sederhana menggunakan fungsi input(): ``` # Input data : nama_barang = input("Masukkan nama barang: ") harga = int(input("Masukkan harga barang: ")) # casting tipe data string(str) ke tipe data integer(int) jumlah = int(input("Masukkan jumlah beli: ")) # casting tipe data string(str) ke tipe data integer(int) # Proses data : total = harga * jumlah # Output data (menggunakan concatenation) : print("=== STRUK PEMBELIAN ===") print("Nama Barang : " + nama_barang) print("Harga : Rp " + str(harga)) # casting tipe data integer(int) ke tipe data string(str) print("Jumlah : " + str(jumlah)) # casting tipe data integer(int) ke tipe data string(str) print("Total Bayar : Rp " + str(total)) ``` [<kbd>👉🏻 Klik untuk mempraktekkan>></kbd>](https://www.programiz.com/online-compiler/93eNa0nXpJC8G)