---
# System prepended metadata

title: P5 Python - Input & Output

---

![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)
