1. Home
  2. Docs
  3. Kelas Privat Python – 01
  4. Materi [Python Dasar]
  5. Input & Error Handling

Input & Error Handling

Input Handling

Pada kesempatan kali ini kita akan mempelajari tentang metode yang kita gunakan untuk memasukkan data ke dalam program python kita. Terdapat 2 Jenis input yang akan kita bahas, yang pertama adalah input data dalam bentuk variabel satuan dan yang kedua adalah input data dalam bentuk file.

Input Variabel

Input melalui metode input()

Cara yang pertama adalah melakukan input dengan menggunakan metode input yang dimiliki oleh python. Input yang dimasukkan dengan menggunakan metode ini akan memiliki tipe data string.

kode yang digunakan secara umum adalah

input(pernyataan)

Pada umumnya kita memasukkan nilai yang diinputkan ke dalam suatu variabel agar dapat digunakan lagi berulang kali. Mari kita coba menggunakan metode ini.

data_input = input()
print("data yang anda input adalah",data_input)

Hasilnya

sanbercode
data yang anda input adalah sanbercode

Kita juga dapat memasukkan sebuah kalimat prolog sebelum memasukkan nilai yang ingin dimasukkan. Ini bertujuan agar metode input kita menjadi lebih intuitif.

data_input = input('masukkan string: ')
print("data yang anda input adalah",data_input)

Hasilnya

masukkan string: Indah
data yang anda input adalah Indah

Input melalui cmd

Input melalui command prompt dapat dilakukan dengan mengambil argument yang ada ketika kita menjalankan file python. Saat kita menjalankan file sebuah file python melalui cmd/terminal kita akan menggunakan query,

python namafile.py

namafile.py merupakan argument pada command prompt. Kita bisa mendapatkan argument tersebut dari dalam file python dengan menggunakan metode argv bawaan dari python.

Untuk mempermudah mengerti konsep ini sekarang mari kita coba praktirkan. Buat sebuah file dengan nama test.py yang berisi kode berikut ini.

import sys

for argument in sys.argv:
    print(argument)

Lalu kita jalankan file tersebut melalui terminal/cmd.

python test.py

hasilnya

test.py

Jika kita tambahkan argument pada command prompt tersebut,

python test.py var_1 var _2

hasilnya

test.py
var_1
var_2

Input by File

Kita juga dapat melakukan input menggunakan file eksternal. Pada kesempatan kali ini kita akan mempelajari pembacaan 3 jenis file sebagai contoh, yaitu txt, csv, dan json. Untuk membaca ketiga file tersebut kita akan menggunakan yang sama untuk membuka filenya.

open("namafile.ekstensionfile")

Kita akan menggunakan file yang disediakan pada link di bawah ini untuk contoh pada sub-bab kali ini.

link_file

File TXT

Untuk membaca file berformat txt kita akan memanfaatkan dua buat metode setelah open, yaitu read() dan readlines().

Metode read() akan membaca keseluruhan isi file dan menyimpannya dalam bentuk string.

namafile = 'file_01.txt'
file = open(namafile)

data = file.read()

print(data)

Hasilnya

Pada kesempatan kali ini kita akan mencoba untuk membaca file teks. 
Pembacaan menggunakan bahasa pemograman python

Metode readlines() akan membaca file perbaris dan memasukkannya ke dalam suatu list.

namafile = 'file_01.txt'
file = open(namafile)

data = file.read()

print(data)

Hasilnya

['Pada kesempatan kali ini kita akan mencoba untuk membaca file teks. \n', 'Pembacaan menggunakan bahasa pemograman python']

File CSV

Untuk melakukan pembacaan pada file csv maka selain metode open() kita juga akan memanfaatkan metode csv.reader. Sebelumnya kita harus mengimport terlebih dahulu library csv.

csv.reader(file, delimiter=",")

delimiter merupakan pembatas yang digunakan pada file csv kita, pembatas yang dimaksud biasanya menggunakan koma atau titik koma. Sekarang mari kita coba baca file csv kita.

import csv


namafile = 'file_02.csv'

file = open(namafile)

data = csv.reader(file, delimiter=",")

print(data)

Hasilnya

<_csv.reader object at 0x0000016DC4806DC0>

Jika kita hanya melakukan print maka akan didapatkan output seperti di atas. Kita hanya akan menampilkan tempat pada memori dimana objek csv kita disimpan. Untuk mengambil data pada csv kita dapat memanfaatan looping. Data yang keluar nanti akan berbentuk list perbaris.

import csv


namafile = 'file_02.csv'

file = open(namafile)

data = csv.reader(file, delimiter=",")

for item in data:
    print(item)

Hasilnya

['NO', 'NAMA', 'NILAI']
['1', 'Budi', '95']

File JSON

Untuk melakukan pembacaan file JSON selain menggunakan metode open, kita akan memanfaatkan fungsi json.load(). Sebelumnya kita harus melakukan import library json.

import json

file =  open('file_03.json')
data = json.load(file)

print(data)

Hasilnya

[{'Country': 'Antarctica', 'Slug': 'antarctica', 'ISO2': 'AQ'}, {'Country': 'Malawi', 'Slug': 'malawi', 'ISO2': 'MW'}]

Hasilnya akan berbentuk list dari dictionary, sehingga kita harus memanfaatkan loop untuk melakukan pembacaan jika data yang kita miliki berada dalam list.

Error Handling

Program yang kita jalankan akan dipaksa untuk berhenti jika program tersebut mengalami error saat dijalankan. Error di python dapat dikelompokkan menjadi dua kelompok utama, pertama adalah syntax error dan kedua Exception.

Syntax error adalah error yang terjadi pada bagian paling fundamental dari program tersebut. Contoh paling mudah adalah saat kita salah saat menempatkan indentasi ataupun titik dua.

for letter in 'aku makan siang'
  print(letter)

Hasilnya


SyntaxError: invalid syntax

Exception

Keadaan dimana saat kode tidak ada kesalahan tapi muncul error lainya, itulah yang dinamakan exception. Beberapa contoh dari exception yang dimiliki oleh python adalah:

  • ZeroDivisionError
  • ValueError
  • AtributeError
a = 10
b = 0
print (a/b)

Hasilnya

ZeroDivisionError: division by zero

Kita juga dapat membuat exception secara manual dengan menggunakan raise.

fofor i in range (10):
  if i > 7:
    raise Exception ("Nilai lebih besar dari 7")
  print ("Nilainya adalah",i)

Hasilnya

Nilainya adalah 0
Nilainya adalah 1
Nilainya adalah 2
Nilainya adalah 3
Nilainya adalah 4
Nilainya adalah 5
Nilainya adalah 6
Nilainya adalah 7

Exception: Nilai lebih besar dari 7

Kita juga bisa menggunakan Assert untuk menguji suatu nilai, jika nilai yang dimasukkan pada metode assert bernilai True maka tidak ada masalah, akan tetapi jika bernilai false maka akan diberhentikan.

for index in range (10):
  assert (index < 7), "Nilai lebih besar dari 7"
  print ("Nilainya adalah",index)

Hasilnya

Nilainya adalah 0
Nilainya adalah 1
Nilainya adalah 2
Nilainya adalah 3
Nilainya adalah 4
Nilainya adalah 5
Nilainya adalah 6

AssertionError: Nilai lebih besar dari 7

Error Handling with Try – Except

Kita dapat mengatur agar program kita tidak menghasilkan pesan error yang tidak disengaja. Kita dapat melakukan pengecekan pada tempat yang kita inginkan dengan Try – Except.

Try:
    kode_kita
Except:
    Kode/Pernyataan yang dijalankan jika kode gagal dijalankan

Try – Except akan coba menjalankan kode kita yang berada di dalam tag try. Jika berhasil dijalankan tidak akan terjadi apa-apa, akan tetapi jika gagal maka akan menjalankan kode yang ada pada tag except.

a = 10
b = 0
try:
  hasil = a/b
  print(hasil)
except:
  print('terjadi kesalahan saat perhitungan')

Hasilnya

terjadi kesalahan saat perhitungan

Multiple Except

Kita dapat memasukkan lebih dari satu except untuk melakukan pengujian lebih dari satu error. Kita akan mencoba untuk menggunakan kode di atas.

a = 10
b = 0
try:
  hasil = a/b
  print(hasil)
except TypeError:
  print('Kesalahan pada unit perhitungan')
except ZeroDivisionError:
  print('Membagi dengan nilai 0')

Hasilnya

Membagi dengan nilai 0

Dengan menggunakan lebih dari satu except maka program kita bisa melakukan pengecekan lebih detail tentang error yang dialami dan kita bisa memberikan pesan yang lebih baik.

Try – Except – Else

Else dijalankan saat program yang kita buat tidak menemui error dan berhasil menjalankan tugasnya.

a = 10
b = 5
try:
  hasil = a/b
  print(hasil)
except TypeError:
  print('Kesalahan pada unit perhitungan')
except ZeroDivisionError:
  print('Membagi dengan nilai 0')
except:
  print('Error yang tidak diketahui')
else:
  print('Sukses')

Hasilnya

2.0
Sukses

Finally!!

Finnaly Digunakan sebagai bagian dari kode yang akan selalu kamu jalankan setelah selesai melakukan pekerjaannya, baik hasilnya lancar atau menemui error.

a = 10
b = 5
try:
  hasil = a/c
  print(hasil)
except TypeError:
  print('Kesalahan pada unit perhitungan')
except ZeroDivisionError:
  print('Membagi dengan nilai 0')
except:
  print("Terjadi Kesalahan")
else:
  print('Sukses')
finally:
  print('program dimatikan')

Hasilnya

Terjadi Kesalahan
program dimatikan dijalankan

https://dbader.org/blog/python-assert-tutorial

https://www.tutorialspoint.com/python3/python_exceptions.htm