Oleh: Deo Valiandro. M valiandrod@gmail.com - H131 16 306
Python adalah salah satu bahasa pemrograman tingkat tinggi dengan aplikasi pada banyak area, mulai dari pada pemrograman web, data mining, keamanan, sampai pada mikrocontroller.
Python digunakan juga di banyak perusahaan seperti Google, NASA, CIA dan sebagainya.
Python dijalankan menggunakan interpreter, yang artinya tidak perlu di compile untuk menjalankannya!
Pada saat tulisan ini dibuat, Python sudah mencapai versi 3.9.
Untuk menginstal Python, pertama-tama dengan mendownload file installernya di website resmi dari Python.
Atau jika menggunakan sistem operasi Linux, maka Python sudah menjadi bawaannya.
Untuk menggunakannya, dapat dengan membuka cmd atau terminal, lalu
mengetikkan python atau python3.
Seperti pada setiap pemrograman, hal pertama yang dilakukan adalah menjalankan
Hello World
Untuk menjalankan program pertama, buka terminal atau cmd, ketikkan python,
lalu masuk kan:
>>> print("Hello World")Lalu, tekan Enter
Hello WorldYey, berhasil...!!! :D
Python dapat digunakan sebagai kalkulator sederhana. Coba lakukan operasi sederhana, misalnya:
>>> 2 + 2
4
>>> 3 * 2 + 10
15Untuk operasi aritmetika, Python menggunakan beberapa simbol:
+ untuk operasi penjumlahan
- untuk operasi pengurangan
/ untuk operasi pembagian
* untuk operasi perkalian
// untuk pembagian dengan pembulatan ke bawah
% untuk operasi modulo
Membagi dengan angka 0 (nol) akan dianggap error dalam Python:
>>> 11 / 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zeroTipe data float adalah tipe data yang berisi bilangan desimal. Misalnya:
>>> 4.0 + 2.0
6.0Pada Python, membagi dua int akan menghasilkan float,
>>> 8 / 2
4.0atau melakukan operasi aritmetika dengan 2 buah float, atau salah satunya adalah float,
>>> 6 * 5.0
30.0
>>> 2.0 + 3.0
5.0Pada Python, pangkat dilakukan dengan menggunakan simbol **:
>>> 2 ** 2
4
>>> 9 ** (1/2)
3.0Untuk menggunakan teks, maka kita menggunakan tipe data string.
String dibuat dengan menggunakan tanda kutip satu ('), atau kutip dua ("). Contohnya:
>>> "Hello"
'Hello'
>>> print("Hello..!!!")
HelloAda beberapa karakter yang tidak dapat langsung di ketik pada string, misalnya tanda ' , untuk mengatasinya, digunakan tanda \, contohnya:
"Ini tanda petik \"."contoh lain adalah tanda \n (newline) untuk membuat baris baru dan karakter
\ (backslash) itu sendiri.
Menggunakan karakter tiga petik (""") pada string, akan membuat teks di print mengikuti penulisannya. Misalnya:
>>> print("""Halo, nama saya Deo""") Halo, nama saya Deo
Output pada Python menggunakan perintah print(). Contohnya:
>>> print(2)
2
>>> print("Halo dunia")
Halo duniaInput pada Python menggunakan perintah input(). Contohnya:
>>> input("Masukkan angka sembarangan: ")
Masukkan angka sembarangan: 2Seperti pada int dan float, string juga dapat ditambah dan dikali.
Operasi pada string disebut concatenation
contohnya:
>>> "halo" + "dunia"
halodunia
>>> print("halo" + " " + "dunia")
halo duniawalaupun ada string yang berbentuk int, lalu dijumlahkan, maka tetap akan berbentuk string, lain halnya jika int dijumlahkan dengan string, maka akan menghasilkan error.
>>> "2" + "3"
23
>>> "1" + 2 + "3"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'string juga bisa di kali dengan int. Hasilnya adalah string tersebut yang diulang-ulang. Urutan perkaliannya tidak berpengaruh, tetapi biasanya string yang ada di urutan pertama.
Mengalikan string dengan 0 (nol) akan menghasilkan string kosong
string tidak bisa dikalikan dengan string lain dan tidak bisa juga dikalikan dengan float. Contohnya:
>>> "halo"*3
halohalohalo
>> 2*"3"
33
>>> '17' * '87'
TypeError: can't multiply sequence by non-int of type 'str'
>>> "halo" * 2.0
TypeError: can't multiply sequence by non-int of type 'float'Untuk mengubah tipe data dari, misalnya dari string ke int, dapat dilakukan:
>>> int("12") + int("3")
15cara lain adalah dengan menggunakan tipe data pada input, misalnya:
>>> int(input("Masukkan angka: "))
Masukkan angka: 2Variabel berguna untuk menyimpan nilai dengan suatu nama. Variabel dapat digunakan berkali-kali. Misalnya:
>>> x = 12
>>> print(x)
12
>>> x = 6
>>> print(x)
6Penamaan variabel pada Python dapat menggunakan angka, huruf dan underscore. Namun, tidak dapat dimulai dengan angka. Contohnya:
>>> ini_adalah_variabel = 1
>>> 123hahaha = 12
SyntaxError: invalid syntax
>>> 123 hahaha = 12
SyntaxError: invalid syntaxMemanggil variabel yang tidak ada akan menyebabkan error. Variabel juga dapat dihapus, caranya:
>>> bar
NameError: name 'bar' is not defined
>>> foo = 12
>>> print(foo)
12
>>> del foo
>>> foo
NameError: name 'foo' is not definedVariabel foo dan bar adalah variabel metasyntactic, maksudnya adalah nama yang sering dijadikan alat untuk demonstrasi program
Operator increment memungkinkan kita menulis code lebih singkat, misalnya
x = x+2 menjadi x+=2. Hal ini juga dapat digunakan pada operasi
-, *, /, dan %. Contohnya:
>>> x = 2
>>> print(x)
2
>>> x += 2
>>> print(x)
4
>>> x = "b0zz"
>>> print(x)
b0zz
>>> x *= 2
>>> print(x)
b0zzb0zzUntuk memberi komentar pada program, digunakan perintah tanda # pada komentar dan hanya bisa pada 1 baris, misalnya:
x = 365
y = 7
# this is a comment
print(x % y) # find the remainder
# print (x // y)
# another commentHasilnya:
1Docstrings (documentation strings) adalah tanda yang mirip komentar, tetapi digunakan untuk menjelaskan kode yang ada, dan dapat lebih dari 1 baris. Contohnya:
def shout(word):
"""
Print a word with an
exclamation mark following it.
"""
print(word + "!")
shout("spam")Dan hasilnya:
spam!Boolean adalah tipe data yang memiliki dua nilai, yaitu TRUE dan FALSE.
Boolean dapat dibuat dengan membandingkan variabel dengan menggunakan simbol:
- == untuk sama dengan
- != untuk tidak sama dengan
- > untuk lebih besar (untuk int dan float)
- < untuk lebih kecil (untuk int dan float)
- >= untuk lebih besar atau sama dengan (untuk int dan float)
- <= untuk lebih kecil atau sama dengan (untuk int dan float)
>>> my_bool = True
True
>>> 1 == 2
False
>>> "foo" == "foo"
TrueIf digunakan untuk melakukan perintah ketika suatu kondisi bernilai benar. If bisa memiliki if lagi di dalamnya. Contohnya:
foo = 2
if foo > 0:
print(0)Hasilnya:
0if foo > 0:
print(0)
if foo > 1:
print(1)
if foo == 2
print(2)0
1
2else digunakan untuk sebagai alternatif jika kondisi if tidak terpenuhi, selain
else, dapat juga digunakan multi if atau else if yang disingkat elif dalam
Python. Contohnya:
foo = 12
if foo/2 == 2:
print(2)
else:
print(4)Hasilnya:
4Contoh lain yang menggunakan else if menggabungkan else:
foo = 12
if foo/2 == 2:
print(2)
elif foo/2 == 4:
print(4)
elif foo/2 == 6
print(6)
else:
print("Tidak ada")Hasilnya:
6Logika boolean yaitu and, or dan not.
andakan bernilai benar jika kedua pernyataan benar,orakan bernilai benar jika salah satu pernyataan benar atau keduanya benar,notakan memberikan nilai balikan.
Contohnya:
if 3 > 2 and 5 >= 4:
print(True)
else:
print(False)Hasilnya:
TrueContoh lainnya:
>>> 1 == 1 and 2 == 2
True
>>> 1 == 1 and 2 == 3
False
>>> 1 != 1 or 2 == 2
True
>>> 2 < 1 or 3 > 6
False
>>> not 1 == 1
FalseDi dalam Python, urutan pengerjaan suatu proses adalah sebagai berikut:
Contohnya:
>>> False == False or True
True
>>> False == (False or True)
False
>>> (False == False) or True
TrueOperator while bekerja seperti operator if, namun pada operator if hanya bisa berjalan sekali, sedangkan pada operator while, bisa dijalankan terus menerus selama kondisi yang diberikan terpenuhi. Contohnya:
i = 1
while i <=5:
print(i)
i = i + 1
print("Finished!")Hasilnya:
1
2
3
4
5
Finished!salah satu manfaat dari operator while adalah infinity loop,
while 1==1:
print("In the loop")Program infinity loop dapat dihentikan dengan mengetikkan CTRL + C atau dengan menutup program
untuk menghentikan while tanpa mengikuti semua kemungkinan maka digunakan
break. Contohnya:
i = 0
while 1==1:
print(i)
i = i + 1
if i >= 5:
print("Breaking")
break
print("Finished")Hasilnya:
0
1
2
3
4
Breaking
FinishedMenggunakan perintah break di luar operasi perulangan seperti while akan menyebabkan error
continue digunakan untuk melompati suatu while ketika terdapat kondisi tertentu. Contohnya:
i = 0
while True:
i = i +1
if i == 2:
print("Skipping 2")
continue
if i == 5:
print("Breaking")
break
print(i)
print("Finished")Hasilnya:
1
Skipping 2
3
4
Breaking
FinishedMenggunakan perintah continue di luar operasi perulangan seperti while akan menyebabkan error
List adalah tipe data dalam Python yang berfungsi untuk menapung data dalam
bentuk indeks. List dibuat dengan menggunakan tanda kurung kotak ([]) dan
setiap item dipisahkan dengan tanda koma (,).
Indeks list dimulai dari angka 0 (nol)
Contohnya:
countrys = ["Indonesia", "Malaysia", "Singapura", "Thailanf"]
print(countrys[0])
print(countrys[1])
print(countrys[2])Hasilnya:
Indonesia
Malaysia
SingapuraList kosong dapat dibuat dengan menggunakan:
empty_list = []
print(empty_list)Hasilnya:
[]List dapat menampung berbagai tipe data, misalnya int, string dan float dalam satu list.
List dapat menampung list lainnya
Contohnya:
number = 3
things = ["string", 0, [1, 2, number], 4.56]
print(things[1])
print(things[2])
print(things[2][2])Hasilnya:
0
[1, 2, 3]
3Membuat indeks di luar batas jumlah indeks akan menyebabkan error
Beberapa tipe data seperti string dapat dijadikan list, yang isinya adalah
setiap karakter dalam string. Namun untuk int dan float, akan menyebabkan
TypeError. Contohnya:
str = "Hello world!"
print(str[6])Hasilnya:
wItem di dalam indeks list dapat di ubah. Misalnya:
nums = [7, 7, 7, 7, 7]
nums[2] = 5
print(nums)Hasilnya:
[7, 7, 5, 7, 7]List juga dapat ditambah atau dikalikan:
nums = [1, 2, 3]
print(nums + [4, 5, 6])
print(nums * 3)Hasilnya:
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 1, 2, 3, 1, 2, 3]Untuk mengecek suatu item di dalam suatu list, digunakan perintah in dan
hasilnya True jika tidak ada dan False jika tidak ada. Contohnya:
foo = ["Aku", "Kamu", "Dia", "Mereka"]
print("Kamu" in foo)
print("Deo" in foo)Hasilnya:
True
FalseUntuk mengecek apakah suatu item tidak ada dalam list, maka digunakan not.
Misalnya:
foo = ["Aku", "Kamu", "Dia", "Mereka"]
print("Kamu" not in foo)
print(not "Deo" in foo)Hasilnya:
False
TrueUntuk menghitung jumlah indeks dalam list, digunakan perintah len().
Contohnya:
nums = [1, 3, 5, 2, 4]
print(len(nums))
Hasilnya:
5Untuk mencari indeks suatu item di dalam list, dapat digunakan .index().
Contohnya:
letters = ['p', 'q', 'r', 's', 'p', 'u']
print(letters.index('r'))
print(letters.index('p'))
print(letters.index('z'))Hasilnya:
2
0
ValueError: 'z' is not in listMencari indeks item yang tidak ada dalam list akan menyebabkan error
Untuk menambahkan item ke dalam list, maka kita dapat menggunakan perintah:
perintah append digunakan untuk menambahkan item ke indeks terakhir. Misalnya:
nums = [1, 2, 3]
nums.append(4)
print(nums)Hasilnya:
[1, 2, 3, 4]append menggunakan
.(dot) karena merupakan method
perintah insert digunakan untuk menambahkan item ke indeks yang ditentukan.
Misalnya:
words = ["Python", "fun"]
index = 1
words.insert(index, "is")
print(words)Hasilnya:
['Python', 'is', 'fun']Range digunakan untuk menyatakan angka dalam suatu batas tertentu. Misalnya untuk membuat list dengan isi angka 0 - 9, maka kita dapat menggunakan range sebagai berikut:
numbers = list(range(10))
print(numbers)Maka hasilnya sebagai berikut:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]range juga dapat menggunakan 2 parameter, yaitu parameter awal dan akhir. Misalnya:
numbers = list(range(4,10))
print(numbers)Hasilnya:
[4, 5, 6,7, 8, 9]range juga dapat menggunakan 3 parameter, di mana 2 parameter awal adalah parameter awal dan akhir sedangkan parameter ke-3 adalah interval/ lompatan.
Parameter ketiga haruslah integer
Contohnya:
numbers = list(range(5, 20, 2))
print(numbers)Hasilnya:
[5, 7, 9, 11, 13, 15, 17, 19]Perulangan adalah fungsi untuk melakukan sesuatu secara berulang-ulang atau iterasi. Perulangan bisa menggunakan while , seperti telah dijelaskan sebelumnya.
Selain while, dapat juga digunakan for, dengan menggunakan range.
For mirip dengan foreach dalam bahasa pemrograman lainnya
Contohnya:
words = ["hello", "world", "spam", "eggs"]
for word in words:
print(word + "!")Hasilnya:
hello!
world!
spam!
eggs!Contoh lainnya dengan menggunakan range:
for i in range(5):
print("hello!")Hasilnya:
hello!
hello!
hello!
hello!
hello!Kode yang baik adalah kode yang mudah dipahami dan gampang di ubah. Salah satu prinsip yang dikenal dalam dunia pemrograman adalah DRY atau Don't Repeat Yourself, maksudnya apa?
Maksudnya adalah untuk satu tugas tertentu, jangan tulis ulang-ulang kodenya, cukup sekali saja dengan menggunakan perulangan.
Kebalikan dari prinsip DRY adalah WET atau Write Everything Twice, atau We Enjoy Typing
Fungsi adalah suatu struktur program yang dapat melakukan tugas tertentu secara berulang, tergantung pada berapa banyak fungsi itu dipanggil.
Kita telah menggunakan banyak fungsi sebelumnya. Contohnya:
print("Hello world!")
range(2, 20)
str(12)
range(10, 20, 3)perintah print, range, str dan sebagainya sebenarnya adalah fungsi.
kata di depan parameter disebut fungsi, misalnya
hello world.
Fungsi dapat kita definisi kan dengan menggunakan perintah def. Contohnya:
def my_func():
print("spam")
my_func()Hasilnya:
spamFungsi harus di buat sebelum dipanggil, jika tidak, maka akan menyebabkan error. Misalnya:
hello()
def hello():
print("Hello world!")Hasilnya akan menyebabkan error seperti berikut:
NameError: name 'hello' is not definedFungsi bisa menerima argumen, contoh berikut adalah fungsi dengan argumen:
def print_with_exclamation(word):
print(word + "!")
print_with_exclamation("spam")
print_with_exclamation("eggs")
print_with_exclamation("python")Hasilnya:
spam!
eggs!
python!Fungsi juga bisa menerima banyak argumen, misalnya:
def print_sum_twice(x, y):
print(x + y)
print(x + y)
print_sum_twice(5, 8)Hasinya:
13
13Argumen fungsi hanya bisa digunakan di dalam fungsi itu sendiri, jika digunakan di luar maka akan menyebabkan error, contohnya:
def function(variable):
variable += 1
print(variable)
function(7)
print(variable)Hasilnya:
8
NameError: name 'variable' is not definedSebuah fungsi dapat mengembalikan nilai. Untuk mengembalikan nilai, digunakan
perintah return. Contohnya:
def max(x, y):
if x >=y:
return x
else:
return y
print(max(4, 7))
z = max(8, 5)
print(z)Hasilnya:
7
8Sekali kita menggunakan perintah return, maka perintah dibawanya tidak akan dijalankan lagi. Misalnya:
def add_numbers(x, y):
total = x + y
return total
print("This won't be printed")
print(add_numbers(4, 5))Hasilnya:
9Fungsi dapat di assign kan dengan suatu variabel maupun di reassign. Contohnya:
def multiply(x, y):
return x * y
a = 4
b = 7
operation = multiply
print(operation(a, b))Hasilnya:
28Suatu fungsi juga bisa dijadikan sebagai argumen untuk fungsi lain. Misalnya:
def add(x, y):
return x + y
def do_twice(func, x, y):
return func(func(x, y), func(x, y))
a = 5
b = 10
print(do_twice(add, a, b))Hasilnya:
30Modul atau module adalah kode yang sudah ditulis dengan tugas tertentu, misalnya membuat angka random, operasi matematika dan fungsi lainnya.
Untuk menggunakan module, dapat digunakan perintah import nama_modul. Dan
untuk menggunakan module yang telah dipanggil, digunakan perintah
nama_modul.variabel. Contohnya:
import random
for i in range(5):
value = random.randint(1, 6)
print(value)Hasilnya:
5
3
2
5
1Jika hanya dibutuhkan fungsi tertentu dari sebuah module, maka dapat digunakan
from nama_modul import var. Dan var dapat digunakan untuk melaksanakan tugas
tertentu. Contohnya, misalnya untuk memanggil pi dari module math.
from math import pi
print(pi)Hasilnya:
3.141592653589793Untuk memanggil beberapa fungsi tertentu dari module, dapat menggunakan tanda
koma (,). Misalnya:
from math import pi, sqrtMenggunakan tanda aterik (*) dapat memanggil semua fungsi dari sebuah module, misalnya:
from math import *
Mengimpor modul yang tidak ada akan menyebabkan error, misalnya:
import some_modulehasilnya:
ImportError: No module named 'some_module'
Fungsi yang di import dapat di beri nama lain dari nama fungsinya, misalnya:
from math import sqrt as square_root
print(square_root(100))Hasilnya:
10.0Ada tiga jenis module di Python yaitu modul yang anda bisa tulis sendiri, modul yang diinstall dari sumber eksternal dan modul bawaan (pustaka standar).
Beberapa pustaka standar adalah: string, re, datetime, math, random, os, multiprocessing, subprocess, socket, email, json, doctest, unittest, pdb, argparse dan sys.
Pustaka standar adalah salah satu kekuatan dari Python.
Beberapa standar pustaka ditulis dalam bahasa Python sendiri dan beberapa ditulis dalam bahasa C.
Banyak modul eksternal Python yang disimpan di Python Package Index (PyPI).
Untuk menggunakannya harus diinstall (membutuhkan download).
Untuk menginstallnya, dapat digunakan perintah pada cmd dan terminal:
pip install nama_pustakaException adalah informasi yang ditampilkan ketika terdapat error pada sebuah program. Misalnya error karena membagi bilangan dengan nol (0), atau error karena nama variabel yang dipanggil tidak ada. Contohnya:
num1 = 7
num2 = 0
print(num1/num2)Akan menghasilkan:
ZeroDivisionError: division by zeroUntuk menangkap sebuah error, kita dapat menggunakan perintah try/except.
Perintah try akan dijalankan dan akan langsung pindah ke perintah except
ketika terdapat sebuah error. Jika tidak ada error, maka except tidak akan
dijalankan. Contohnya:
try:
num1 = 7
num2 = 0
print (num1 / num2)
print("Done calculation")
except ZeroDivisionError:
print("An error occurred")
print("due to zero division")Hasilnya:
An error occurred
due to zero divisiontry dapat menggunakan multi except atau satu except dengan banyak
parameter. Contohnya:
try:
variable = 10
print(variable + "hello")
print(variable / 2)
except ZeroDivisionError:
print("Divided by zero")
except (ValueError, TypeError):
print("Error occurred")Hasilnya:
Error occurredSedangkan try tanpa parameter pada except akan menangkap semua error yang
masuk ke except, misalnya:
try:
word = "spam"
print(word / 0)
except:
print("An error occurred")Hasilnya:
An error occurredfinally digunakan untuk menjalankan perintah tidak peduli terdapat error atau
tidak. Perintah finally diletakkan di bawah try/except.
Kode yang ada pada
finallyakan selalu dijalankan.
Contohnya:
try:
print("Hello")
print(1 / 0)
except ZeroDivisionError:
print("Divided by zero")
finally:
print("This code will run no matter what")Hasilnya:
Hello
Divided by zero
This code will run no matter whatKode di dalam finally akan di jalankan terlebih dahulu walaupun terdapat error
yang tidak ditangkap oleh perintah except. Misalnya:
try:
print(1)
print(10 / 0)
except ZeroDivisionError:
print(unknown_var)
finally:
print("This is executed last")Hasilnya:
1
This is executed last
ZeroDivisionError: division by zero
During handling of the above exception, another exception occurred:
NameError: name 'unknown_var' is not definedexception juga bisa dimunculkan dengan menggunakan perintah raise namun
harus jelas error yang akan dimunculkan. Contohnya:
print(1)
raise ValueError
print(2)Hasilnya:
1
ValueErroratau contoh lain:
raise NameError("Invalid name!")Hasilnya:
NameError: Invalid name!Di dalam except,raise bisa digunakan tanpa memanggil error yang dimaksud.
Contohnya:
try:
num = 5 / 0
except:
print("An error occurred")
raiseHasilnya:
An error occurred
ZeroDivisionError: division by zeroAssertion adalah salah satu cara mengecek error yang akan dimunculkan ketika
program selesai dijalankan. Jika testing yang diberikan bernilai false maka
akan exception-nya akan muncul. Contohnya:
print(1)
assert 2 + 2 == 4
print(2)
assert 1 + 1 == 3
print(3)Hasilnya:
1
2
AssertionErrorAssertion biasanya digunakan pada pengecekan input dan output sebuah fungsi.
Assertion juga bisa menerima parameter kedua yaitu output yang akan ditampilkan ketika error terjadi. Contohnya:
temp = -10
assert (temp >= 0), "Colder than absolute zero!"Hasilnya:
AssertionError: Colder than absolute zero!Python dapat membuka dan mengedit file. Namun sebelum bisa di edit, file tersebut harus dibuka terlebih dahulu.
untuk membuka file, kita menggunakan perintah open, contohnya:
myfile = open("filename.txt")filename.txt adalah nama file atau path tempat file tersebut disimpan
Untuk membuka file, juga dapat menerima argumen kedua yang mana berfungsi untuk
permision file.
Ada beberapa kode, yaitu:
rberfungsi untukread mode,wuntukwrite, berarti untuk menulis ulang ke dalam file,auntukappendyaitu akan menambah sesuatu di akhir file,buntuk modebinary, digunakan untuk membuka file non-teks seperti gambar, suara, video dan berbagai format lain.
Contohnya:
# write mode
open("filename.txt", "w")
# read mode
open("filename.txt", "r")
open("filename.txt")
# binary write mode
open("filename.txt", "wb")Dapat digunakan tanda
+untuk menambah ekstra akses, misalnyar+untuk modereaddanwritebersamaan.
Kita dapat menampilkan isi file dengan perintah:
file = open("filename.txt", "r")
cont = file.read()
print(cont)
file.close()atau, kita membatasi jumlah byte yang dibaca,
file = open("filename.txt", "r")
print(file.read(16))
print(file.read(4))
print(file.read(4))
print(file.read())
file.close()Jika
file.read()tidak diberikan nilai atau negatif, maka file akan dibaca semua.
Setelah semua file di read, maka jika di read ulang, akan menghasilkan string
kosong. Hal ini disebabkan program sudah mencapai end of file.
Untuk membaca file baris per baris, kita dapat menggunakan perintah
readline(), contohnya jika terdapat file dengan isi:
Halo semua,
nama saya
Deo Valiandro. Mlalu dibaca baris per baris,
file = open("filename.txt", "r")
print(file.readlines())
file.close()maka akan menghasilkan:
['Halo semua,\n', 'nama saya\n', 'Deo Valiandro. M']dapat juga digunakan perintah for:
file = open("filename.txt", "r")
for line in file:
print(line)
file.close()hasilnya:
Halo semua,
nama saya
Deo Valiandro. MDi output, baris dipisahkan oleh baris kosong, karena fungsi print secara otomatis menambahkan baris baru di akhir outputnya.
untuk menulis string ke dalam file:
file = open("newfile.txt", "w")
file.write("This has been written to a file")
file.close()
file = open("newfile.txt", "r")
print(file.read())
file.close()Hasilnya:
This has been written to a fileParameter
wakan otomatis membuat file baru jika file yang dituju tidak ada
File yang sementara terbuka, isinya akan kosong. Buktinya:
file = open("newfile.txt", "r")
print("Reading initial contents")
print(file.read())
print("Finished")
file.close()
file = open("newfile.txt", "w")
file.write("Some new text")
file.close()
file = open("newfile.txt", "r")
print("Reading new contents")
print(file.read())
print("Finished")
file.close()Hasilnya:
Reading initial contents
some initial text
Finished
Reading new contents
Some new text
FinishedMethod write akan meng-return jumlah byte yang ditulis ke dalam file.
msg = "Hello world!"
file = open("newfile.txt", "w")
amount_written = file.write(msg)
print(amount_written)
file.close()Hasilnya:
12Untuk menulis tipe data selain string, maka data tersebut harus di convert ke string.
Untuk bekerja lebih interaktif pada file, maka digunakan try/finally.
Contohnya:
try:
f = open("filename.txt")
print(f.read())
finally:
f.close()ini akan menyebabkan file tersebut terbuka terus menerus kecuali terdapat error.
Alternatif lain adalah menggunakan perintah with. Contohnya:
with open("filename.txt") as f:
print(f.read())dengan cara tersebut, maka akan membuat variabel sementara (variabel f). File
akan otomatis tertutup ketika perintah with selesai.
setiap file yang terbuka, harus ditutup kembali setelah digunakan. Untuk melakukannya, dapat dilakukan:
file = open("filename.txt", "w")
# do stuff to the file
file.close()None adalah tidak adanya nilai. None mirip dengan null pada pemrograman lain.
None bernilai false ketika di konversi ke boolean. Contohnya:
>>> None == None
True
>>> None
>>> print(None)
NoneNone juga adalah kembalian fungsi yang tidak memiliki nilai return:
def some_func():
print("Hi!")
var = some_func()
print(var)Hasilnya:
Hi!
NoneDictionary adalah tipe data yang berfungsi memasangkan suatu data dengan kunci tertentu. Kunci yang digunakan adalah suatu integer. Dictionary ditulis dalam tanda kurung kurawal ({}). Dictionary dapat menampung tipe data apa saja sebagai nilai. Contohnya:
ages = {"Dave": 24, "Mary": 42, "John": 58}
print(ages["Dave"])
print(ages["Mary"])Hasilnya:
24
42Representasi dari setiap elemen dictionary adalah pasangan
kunci:nilai.
Memanggil kunci yang tidak ada dalam dictionary akan menyebabkan error. Misalnya:
primary = {
"red": [255, 0, 0],
"green": [0, 255, 0],
"blue": [0, 0, 255],
}
print(primary["red"])
print(primary["yellow"])Hasilnya:
[255, 0, 0]
KeyError: 'yellow'Dictionary kosong dibuat dengan menggunakan
{}
Kunci yang digunakan haruslah objek yang immutable atau tidak dapat diubah, sehingga objek-objke mutable seperti list dan dictionary tidak dapat digunakan sebagai kunci (error jika digunakan). Contohnya:
bad_dict = {
[1, 2, 3]: "one two three",
}Hasilnya:
TypeError: unhashable type: 'list'Seperti list, kunci pada sebuah dictionary juga bisa di ubah nilainya. Namun tidak seperti list, pada dictionary bisa dibuat key baru dengan nilainya langsung. Misalnya:
squares = {1: 1, 2: 4, 3: "error", 4: 16,}
squares[8] = 64
squares[3] = 9
print(squares)Hasilnya:
{1: 1, 2: 4, 3: 9, 4: 16, 8: 64}Untuk mengecek sebuah kunci di dalam dictionary, dapat digunakan in atau
not in. Misalnya:
nums = {
1: "one",
2: "two",
3: "three",
}
print(1 in nums)
print("three" in nums)
print(4 not in nums)Hasilnya:
True
False
TrueSebuah method yang berguna pada dictionary adalah get yang berguna untuk
mengecek nilai seperti cara pemanggilan biasa, namun bedanya jika tidak
ditemukan nilainya, maka return value-nya dapat di kustom. Contohnya:
pairs = {
1: "apple",
"orange": [2, 3, 4],
True: False,
None: "True",
}
print(pairs.get("orange"))
print(pairs.get(7))
print(pairs.get(12345, "not in dictionary"))Hasilnya:
[2, 3, 4]
None
not in dictionaryTuples adalah tipe data yang mirip dengan list, namun bedanya tuples immutable (tidak dapat diubah). Tuples dibuat dengan kurung biasa, contohnya:
angka = ("satu", "dua", "tiga")Untuk mengaksesnya bisa dengan memanggil indeksnya:
print(ankga[0])Hasilnya:
'satu'Jika mencoba menambah data ke sebuah tuples, maka akan menyebabkan error. Misalnya:
angka[3] = "empat"Hasilnya:
TypeError: 'tuple' object does not support item assignmentTuples juga bisa dibuat tanpa kurung:
my_tuple = "one", "two", "three"
print(my_tuple[0])Hasilnya:
oneatau jika ingin membuat tuple kosong:
tpl = ()Tuple lebih cepat dari list, namun nilainya tidak bisa diubah
Untuk menampilkan data dari list dengan lebih "advance", dapat digunakan list
slice. Misalnya dengan menggunakan titik dua, [a:b] yang mana akan menampilkan
data >= a dan < b (range). Misalnya:
squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(squares[2:6])
print(squares[3:8])
print(squares[0:1])Hasilnya:
[4, 9, 16, 25]
[9, 16, 25, 36, 49]
[0]Jika nilai awal atau nilai akhir tidak diberikan, maka akan mengambil data dari awal tau sampai akhir. Misalnya:
squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(squares[:7])
print(squares[7:])Hasilnya:
[0, 1, 4, 9, 16, 25, 36]
[49, 64, 81]
[:](slice) juga dapat digunakan pada tuples
Slice juga dapat menggunakan dua titik dua [a:b:c], yang mana 'c' adalah nilai
lompat. Misalnya:
squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(squares[::2])
print(squares[2:8:3])Terlihat nilai [2:8:3], berarti akan mengambil nilai mulai dari indeks 2
sampai indeks 8-1, dengan melompat-lompat setiap 3 angka, dimulai dari indeks 2,
lompat 3 kali ke indeks 5.
Hasilnya:
[0, 4, 16, 36, 64]
[4, 25]Nilai slice yang bernilai negatif, maka nilai akan dimulai dari belakang ke depan. Contohnya:
squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
print(squares[1:-1])Hasilnya:
[1, 4, 9, 16, 25, 36, 49, 64]List dapat dibuat dengan menggunakan aturan sederhana yang diinspirasi dari notasi matematika. Misalnya menggunakan aturan for:
cubes = [i**3 for i in range(5)]
print(cubes)Hasilnya:
[0, 1, 8, 27, 64]Contoh lain dengan menggunakan if:
evens=[i**2 for i in range(10) if i**2 % 2 == 0]
print(evens)Hasilnya:
[0, 4, 16, 36, 64]Membuat list yang "terlalu besar" akan menyebabkan error MemoryError. Misalnya:
even = [2*i for i in range(10**100)]akan menyebabkan error:
MemoryErrorCara klasik jika ingin mengkombinasikan string dan non-string adalah dengan mengconvert ke string terlebih dahulu sebelum disatukan dengan string.
Cara lain yang lebih powerfull yang bisa menggabungkan string dengan non-string adalah dengan menggunakan format string. Cara kerjanya adalah substitusi ke dalam string. Contohnya:
nums = [4, 5, 6]
msg = "Numbers: {0} {1} {2}".format(nums[0], nums[1], nums[2])
print(msg)Hasilnya:
Numbers: 4 5 6Setiap argumen yang ada di dalam tanda kurung kurawal akan diganti dengan nilai dari format string.
Selain itu, nilai pada format string juga berbentuk argumen. Contohnya:
a = "{x}, {y}".format(x=5, y=12)
print(a)Hasilnya:
5, 12Python mempunyai banyak fungsi bawaan yang berguna, misalnya:
join→ untuk menggabungkan list stringreplace→ untuk mengganti string dengan string lainstartswithdanendswith→ untuk mengecek sub-string yang ada di awal atau akhir sebuah stringlowerdanupper→ untuk mengubah jadi huruf kecil atau huruf besarsplit→ untuk memisahkan string
Contohnya:
print(", ".join(["spam", "eggs", "ham"]))
#prints "spam, eggs, ham"
print("Hello ME".replace("ME", "world"))
#prints "Hello world"
print("This is a sentence.".startswith("This"))
# prints "True"
print("This is a sentence.".endswith("sentence."))
# prints "True"
print("This is a sentence.".upper())
# prints "THIS IS A SENTENCE."
print("AN ALL CAPS SENTENCE".lower())
#prints "an all caps sentence"
print("spam, eggs, ham".split(", "))
#prints "['spam', 'eggs', 'ham']"Untuk fungsi yang berguna pada perhitungan numerik,
min→ mencari nilai maksimummax→ mencari nilai minimumabs→ mencari nilai absolutsum→ penjumlahan sejumlah angka
print(min(1, 2, 3, 4, 0, 2, 1))
print(max([1, 4, 9, 2, 5, 6, 8]))
print(abs(-99))
print(abs(42))
print(sum([1, 2, 3, 4, 5]))Hasilnya:
0
9
99
42
15Sebuah list dapat digunakan dalam pengkondisian dengan menggunakan all atau
any. enumerate juga dapat digunakan untuk menampilkan list dan posisinya.
Contohnya:
nums = [55, 44, 33, 22, 11]
if all([i > 5 for i in nums]):
print("All larger than 5")
if any([i % 2 == 0 for i in nums]):
print("At least one is even")
for v in enumerate(nums):
print(v)Hasilnya:
All larger than 5
At least one is even
(0, 55)
(1, 44)
(2, 33)
(3, 22)
(4, 11)Misalnya kita mempunyai file txt dengan nama anu.txt:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.Lalu teks dibaca:
filename = input("Enter a filename: ")
with open(filename) as f:
text = f.read()
print(text)Lalu dibuat fungsi untuk mengecek jumlah karakter yang diberikan.
def count_char(text, char):
count = 0
for c in text:
if c == char:
count += 1
return countDengan memanggil fungsi, misalnya diberikan karakter a:
filename = input("Enter a filename: ")
with open(filename) as f:
text = f.read()
print(count_char(text, "a"))Hasilnya:
Enter a filename: anu.txt
22Terlihat jumlah karakter 'a' adalah 22.
Dengan menambahkan perintah untuk menghitung persentase setiap karakter:
for char in "abcdefghijklmnopqrstuvwxyz":
perc = 100 * count_char(text, char) / len(text)
print("{0} - {1}%".format(char, round(perc, 2)))Maka akan berbentuk:
def count_char(text, char):
count = 0
for c in text:
if c == char:
count += 1
return count
filename = input("Enter a filename: ")
with open(filename) as f:
text = f.read()
for char in "abcdefghijklmnopqrstuvwxyz":
perc = 100 * count_char(text, char) / len(text)
print("{0} - {1}%".format(char, round(perc, 2)))Akan menghasilkan:
a - 6.52%
b - 0.67%
c - 3.6%
d - 4.04%
e - 8.31%
...
...
...
z - 0.0%