1
Python memang sangat sederhana dibandingkan bahasa yang lainnya. Tidak perlu ini dan itu
untuk membuat program Hello World!. Bahkan tagline di websitenya menjelaskan, kalau
python akan membuatmu bekerja lebih cepat dan efektif. Python is a programming
language that lets you work quickly and integrate systems more effectively.
Jadi kenapa belajar Python?
1. Cepat dan efektif;
2. Mudah dipelajari;
3. Banyak digunakan di perusahaan besar;
4. Sekedar ingin tahu saja.
5. …(tambahkan sendiri)
1. Python: Interpreter yang menerjemahkan bahasa python ke bahasa mesin, sehingga
program bisa dijalankan.
2. Teks Editor/IDE: Program yang digunakan untuk menulis kode.
Bagi pengguna Linux, Python tidak perlu diinstal. Karena Sebagian besar distro Linux sudah
menyediakannya secara default.
Untuk mengeceknya, silahkan ketik perintah python ‐‐version di terminal.
$ python --version
Python 2.7.12
Python Versi 2 vs Python Versi 3
Ada dua versi Python yang beredar saat ini, yaitu versi 2 dan 3.
Apa perbedaanya?
Python versi 2 merupakan versi yang banyak digunakan saat ini, baik dilingkungan produksi
dan pengembangan. Sementara Python versi 3 adalah pengembangan lanjutan dari versi 2.
Python 3 memiliki lebih banyak fitur dibandingkan Python 2. Untuk membuka Python 2 kita
2
hanya menggunakan perintah python saja, sedangkan Python 3 menggunakan
perintah python3.
Manakah yang harus saya pilih?
Untuk yang baru belajar saya sarankan menggunakan versi 2. Sementara untuk yang sudah
mahir, bisa mencoba yang versi 3.
untuk keluar dari mode interaktif tekan Ctrl+d atau ketik perintah exit().
Tanda >>>, artinya python siap menerima perintah.
Terdapat juga tanda ... yang berarti secondary prompt atau sub prompt, biasanya muncul
saat membuat blok kode dan menulis perintah tunggal dalam beberapa baris. Mari kita coba
memberikan perintah print, perintah ini berfungsi untuk mencetak teks ke layar. Cobalah
tulis print "Hello World" kemudian tekan Enter.
3
Perintah yang kita tulis langsung dieksekusi dan ditampilkan hasilnya.
Inilah mode interaktif, setiap kode atau perintah yang diketik akan direspon langsung oleh
python.
Kita bisa memanfaatkan mode interaktif ini untuk:
Uji coba suatu fungsi;
Eksperimen modul tertentu;
Kalkulator;
Mencari bantuan tentang fungsi tertentu;
dll.
Hal yang perlu kita coba adalah mencari bantuan tentang fungsi tertentu, karena akan
membantu sekali dalam mempelajari python.
Ada dua fungsi yang digunakan untuk mencari bantuan:
1. fungsi dir() untuk melihat fungsi apa saja yang tersedia pada sebuah modul;
2. fungsi help() untuk membuka dokumentasi suatu fungsi.
Sebagai contoh, kita akan coba mencari tahu tentang penggunaan modul math.
Pertama kita impor dulu modulnya ke mode interaktif:
Setelah itu kita bisa melihat-lihat, fungsi apa saja yang tersedia di modul tersebut.
>>> dir(math)
4
['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh',
'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees',
'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod',
'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma',
'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh',
'sqrt', 'tan', 'tanh', 'trunc']
Lalu, kita bisa cari tahu cara penggunaan fungsi‐fungsi tersebut dengan help(). Misalkan kita
ingin cari tahu cara penggunaan fungsi pow(), maka kita harus memberikan
perintah help(math.pow).
pow(...)
pow(x, y)
Return x**y (x to the power of y).
(END)
Program yang kita tulis dalam mode interaktif tidak akan disimpan. Setelah mode interaktif
ditutup, program akan hilang. Karena itu, kita harus membuat skrip. Silahkan gunakan teks
editor untuk menulis skrip seperti di bawah ini.
6
python nama_skrip.py
1. Membuat skrip python dengan teks editor.
7
2. Skrip python diterjemahkan ke dalam kode biner oleh (intepreter) python, sehingga
komputer dapat mengerti arti perintah tersebut.
3. Komputer mengerjakan perintah tersebut.
Paham…?
Sampai tahap ini, kita sudah tahu cara membuat program Python.
Selanjutnya, kita akan belajar cara membuat program Python menggunakan IDE PyCharm.
8
Setelah itu, ikuti langkah-langkah berikut untuk menginstalnya:
2. Cari File PyCharm yang sudah didownload tadi, kemudian ekstrak ke direktori /opt.
9
3. Buka kembali File Manager sebagai user biasa. Kemudian masuk ke /opt/pycharm‐
community‐2017.1.2/bin dan klik ganda pada file pycharm.sh, lalu pilih run.
4. Tunguglah sebentar, maka akan terbuka jendela baru. Pilih Don not import settings,
kemudian klik OK.
5. Jendela sambutan akan terbuka, silahkan centang “Enable opening file…” agar
perintah charm dikenali di terminal. Setelah itu klik Ok.
10
Masukkan Password bila diminta, setelah itu klik OK. Selesai…
Coba periksa di menu, apakah sudah ada PyCharm atau tidak?
11
Membuat Proyek Python di PyCharm
Untuk membuat proyek baru, kita bisa klik “Create new Project” pada jendela
sambutan (welcome) PyCharm.
Atau bisa juga dilakukan melalui menu File‐>New Project.
Setelah itu, kita akan diminta untuk mengisi nama proyeknya dan memilih versi Python yang
akan digunakan.
Isi saja nama proyeknya dengan hello‐world dan gunakan Python versi 2 (python2.7).
12
Maka kita akan langsung di bawah ke area kerja PyCharm.
Selanjutnya, silahkan tambahkan file python dengan klik kanan pada direktori proyek,
kemudian pilih New‐>Python File.
Setelah itu, berikan nama filenya dengan program‐pertama dan klik Ok.
13
Selanjutnya, silahkan tulis kode program-nya.
14
BAB II
Aturan Penulisan Sintaks Python yang Harus dipatuhi
Mepelajari aturan‐aturan penulisan sintaks Python yang harus dipatuhi.
“Bagaimana kalau tidak dipathui?” RESIKO ERROR
1. Penulisan Statement Python
Statement adalah sebuah intruksi atau kalimat perintah yang akan dieksekusi oleh
komputer.
Contoh:
print("Hello World!")
print("Belajar Python dari Nol")
nama = "Abhiyasa"
Penulisan satu statement tidak diakhiri dengan tanda titik‐koma.
Sedangkan, bila kita ingin menulis lebih dari satu statement dalam satu baris, maka kita
harus memisahnya dengan titik‐koma.
Contoh:
print("Hello"); print("World"); print("Tutorial Python untuk Pemula")
nama_depan = "petani"; nama_belakang = "kode"
Tapi…
Menurut beberapa style guide python, tidak dianjurkan menulis lebih dari satu statement
dalam satu baris. Karena akan sulit dibaca.
2. Penulisan String pada Python
String adalah teks atau kumpulan dari karakter. String dalam pemrograman biasanya ditulis
dengan dibungkus menggunakan tanda petik. Bisa menggunakan tanda petik tunggal
maupun ganda.
15
Contoh:
judul = "Belajar Pemrograman Python sampai Bisa"
penulis = 'Abhiyasa'
Atau kita juga bisa menggunakan triple tanda petik.
Contoh:
judul = """Belajar Python dengan Cepat"""
penulis = '''Abhiyasa'''
3. Penuilsan Case pada Python
Sintak Python bersifat case sensitive, artinya teksini dengan TeksIni dibedakan.
Contoh:
judul = "Belajar Dasa‐dasar Python"
Judul = "Belajar Membuat Program Python"
Antara variabel judul dengan Judul itu dibedakan…
Case Style
Menurut rekomendasi style guide Google, berikut ini contoh penulisan case yang disarankan:
## Snake Case digunakan pada:
module_name, package_name, method_name, function_name, , global_var_name, instance_var_name,
function_parameter_name, local_var_name.
## CamelCase digunakan Pada:
ClassName, ExceptionName
## ALL CAPS digunakan Pada:
GLOBAL_CONSTANT_NAME
4. Penulisan Blok Program Python
Blok program adalah kumpulan dari beberpaa statement yang digabungkan dalam satu blok.
Penulisan blok program harus ditambahkan indentasi (tab atau spasi 2x/4x).
16
Contoh yang benar:
# blok percabangan if
username='Abhiyasa'
if username == 'Abhiyasa':
print("Selamat Datang Admin")
print("Silahkan ambil tempat duduk")
# blok percabangan for
for i in range(10):
print i
Contoh yang salah:
# blok percabangan if
username='Abhiyasa'
if username == 'Abhiyasa':
print("Selamat Datang Admin")
print("Silahkan ambil tempat duduk")
# blok percabangan for
for i in range(10):
print i
17
5. Cara Penulisan Komentar pada Python
Komentar merupakan baris kode yang tidak akan dieksekusi. Komentar digunakan untuk
memberikan informasi tambahan dan untuk menonaktifkan kode. Ada beberapa cara
menulis komentar pada pemrograman Python.
Menggunakan Tanda Pagar (#)
Cara pertama menggunakan tanda pagar (#).
Cara ini paling sering digunakan.
Contohnya:
# ini adalah komentar
# Ini juga komentar
Menggunakan Tanda Petik
Selain untuk mengapit teks (string), tanda petik juga dapat digunakan untuk membuat
komentar.
Contoh:
"Ini adalah komentar dengan tanda petik ganda"
'Ini juga komentar, tapi dengan tanda petik tunggal'
Penulisan komentar dengan tanda petik jarang digunakan, kebanyakan orang lebih memilih
untuk menggunakan tanda pagar. Jadi…tidak direkomendasikan.
Menggunakan Triple Tanda Petik
Sedangkan triple tanda petik, sering digunakan untuk menuliskan dokumentasi.
Contohnya:
class Pagar:
"""kelas pagar untuk membuat objek pagar. Dibuat oleh Abhiyasa sebagai contoh saja."""
def __init__(self, warna, tinggi, bahan):
self.warna = warna
self.tinggi = tinggi
self.bahan = bahan
18
# Mengakses dokumentasi kelas
print Pagar.__doc__
input('\ntekan [enter] untuk melihat bantuan (dokumentasi) kelas: ')
help(Pagar) # untuk melihat dokumentasi kelas_
Hasilnya:
$ python kelas_pagar.py
kelas pagar untuk membuat objek pagar.
dibuat oleh Abhiyasa
sebagai contoh saja.
tekan [enter] untuk melihat bantuan (dokumentasi) kelas:
Setelah Enter ditekan
Help on class Pagar in module main:
class Pagar
| kelas pagar untuk membuat objek pagar.
| dibuat oleh Abhiyasa
| sebagai contoh saja.
|
| Methods defined here:
|
| __init__(self, warna, tinggi, bahan)
(END)
19
BAB III
Mengenal Variabel dan Tipe Data dalam Python
Pada kesempatan ini kita akan mempelajari tentang variabel dan tipe data pada Python.
Pastikan sebelumnya sudah mengetahui cara membuat skrip atau program python.
Pengertian Variabel dan Tipe Data
Variabel merupakan tempat menyimpan data, sedangkan tipe data adalah jenis data yang
terseimpan dalam variabel.
Variabel bersifat mutable, artinya nilainya bisa berubah‐ubah.
Membuat Variabel di Python
Variabel di python dapat dibuat dengan format seperti ini:
nama_variabel = <nilai>
Contoh:
variabel_ku = "ini isi variabel"
variabel2 = 20
Kemudian untuk melihat isi variabel, kita dapat menggunakan fungsi print.
20
print (variabel_ku)
print (variabel2)
ATURAN PENULISAN VARIABLE
1. Nama variabel boleh diawali menggunakan huruf atau garis bawah (_),
contoh: nama, _nama, namaKu, nama_variabel.
2. Karakter selanjutnya dapat berupa huruf, garis bawah (_) atau angka,
contoh: __nama, n2, nilai1.
3. Karakter pada nama variabel bersifat sensitif (case‐sensitif). Artinya huruf besar dan kecil
dibedakan. Misalnya, variabel_Ku dan variabel_ku, keduanya adalah variabel yang berbeda.
4. Nama variabel tidak boleh menggunakan kata kunci yang sudah ada dalam python
seperti if, while, for, dsb.
Menghapus Variabel
Ketika sebuah variabel tidak dibutuhkan lagi, maka kita bisa menghapusnya dengan
fungsi del().
Contoh:
>>> nama = "Abhiyasa"
>>> print (nama)
Abhiyasa
>>> del(nama)
>>> print (nama)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'nama' is not defined
>>>
Pada perintah terakhir, kita akan mandapatkan NameError. Artinya variabel tidak ada di dalam
memori alias sudah dihapus.
Tipe data
Cara mengisi nilai variabel ditentukan dengan jenis datanya, misalkan untuk tipe data
teks (string) maka harus diapit dengan tanda petik ("..."). Sedangkan untuk
angka (integer) dan boolean tidak perlu diapit dengan tanda petik.
21
Contoh:
nama_ku = "Abhiyasa"
umur = 20
tinggi = 183.22
Python akan seara otomatis mengenali jenis data atau tipe data yang tersimpan dalam
sebuah variabel.
Untuk memeriksa tipe data pada suatu variabel, kita bisa menggunakan fungsi type().
Contoh:
>>> usia = 20
>>> type(usia)
<type 'int'>
>>> usia = "20"
>>> type(usia)
<type 'str'>
>>> usia = '20'
>>> type(usia)
<type 'str'>
>>> usia = 20.5
>>> type(usia)
<type 'float'>
>>> usia = true
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>> usia = True
>>> type(usia)
<type 'bool'>
Jenis‐jenis Tipe Data
Secara umum, tipe data primitif dalam python dibagi menjadi tiga jenis:
1. Tipe data angka
2. Tipe data teks
3. Tipe data boolan
22
Mari kita bahas satu per satu…
1. Tipe Data Angka
Tipe data angka dibagi menjadi beberapa jenis lagi:
1. int (Integer): bilangan bulat, contoh 32, 22, 12, 10, dsb.
2. float: bilangan pecahan, contoh 1.3, 4.2, 22.3, dsb.
Contoh:
harga = 12000 #tipe int
berat = 23.12 #float
jarak = 3e3 #float 3000.0, huruf e artinya eksponen 10
2. Tipe Data Teks
Tipe data teks dibagi menjadi dua jenis lagi:
1. Char: Karakter, contoh 'R'.
2. String: Kumpulan karakter, contoh "aku lagi makan".
Penulisan tipe data teks harus diapit dengan tanda petik. Bisa menggunakan petik tunggal
('...'), ganda ("..."), dan tiga ('''...''' atau """...""").
Contoh:
nama = "Ivan"
jenis_kelamin = 'L'
alamat = """
Jl. Suka Karya, No 32. RT Kode,
Kelurahan Mawar, Jakarta
"""
agama = 'islam'
3. Tipe data boolean
Tipe data boolean adalah tipe data yang hanya memiliki dua nilai
yaitu Truedan False atau 0 dan 1.
Penulisan True dan False, huruf pertamnya harus kapital dan tanpa tanda petik.
23
Contoh:
bergerak = True
nyala = 1 #sebenarnya tipenya int, tapi bisa juga menjadi bool
Contoh Program dengan Menggunakan Variabel dan Tipe Data
Berikut ini contoh sederhana penerapan variabel dalam program.
# Program bio data penduduk desa X
# membuat variabel beserta isinya (nilainya)
nama = "Hartono"
alamat = 'Mataram'
umur = 19
tinggi = 170.5
menikah = False
# mencetak isi variabel
print ("Nama : ", nama)
print ("Alamat : ", alamat)
print ("Umur : ", umur)
print ("Tinggi : ", tinggi)
if(menikah):
print "Status: menikah"
else:
print "Status: belum menikah"
Konversi Tipe Data
Meskipun Python telah otomatis mendeteksi tipe data yang tersimpan dalam variabel, tapi
ada kalanya kita perlu melakukan konversi tipe data.
Misalkan, pada contoh berikut ini:
a = 10
b = 3
c = a / b
print (c) #output: 3
Pembagian nilai a dan b menghasilkan 3 (integer). Mengapa demikian?
24
Karena nilai a dan b bertipe integer, maka hasilnya pun berupa integer.
Bagaimana agar hasilnya ada komanya?
Tentu kita harus merubah tipe variabel a dan b menjadi bilangan pecahan (float) dulu, baru
setelah itu dibagi.
a = 10
b = 3
c = float(a) / float(b) #output: 3.3333333333333335
print (c)
Fungsi float() akan mengubah nilai a menjadi 10.0 dan b menjadi 3.0.
Fungsi‐fungsi untuk mengubah tipe data:
1. int() untuk mengubah menjadi integer;
2. long() untuk mengubah menjadi integer panjang;
3. float() untuk mengubah menjadi float;
4. bool() untuk mengubah menjadi boolean;
5. chr() untuk mengubah menjadi karakter;
6. str() untuk mengubah menjadi string.
7. bin() untuk mengubah menjadi bilangan Biner.
8. hex() untuk mengubah menjadi bilangan Heksadesimal.
9. oct() untuk mengubah menjadi bilangan okta.
25
BAB IV
Mengambil Input dan Menampilkan Output
Input adalah masukan yang kita berikan ke program. Program akan memprosesnya dan
menampilkan hasil outputnya. Input, proses, dan output adalah inti dari semua program
komputer.
Cara Mengambil Input dari Keyboard
Python sudah menyediakan fungsi input() dan raw_input() untuk mengambil inputan dari
keyboard.
Cara pakainya:
nama_varabel = input("Sebuah Teks")
Artinya, teks yang kita inputkan dari keyboard akan disimpan ke dalam nama_variabel.
Mari kita coba sebuah contoh…
# Mengambil input
nama = raw_input("Siapa nama kamu: ")
umur = input("Berapa umur kamu: ")
# Menampilkan output
print "Hello",nama,"umur kamu adalah",umur,"tahun"
26
Hasilnya:
Apa perbedaan fungsi input() dengan raw_input()?
Fungsi input() digunakan untuk mengambil data angka. Sedangkan raw_input() untuk
mengambil teks.
Pada Python3 cukup menggunakan fungsi input() saja, karena fungsi raw_input() sudah
digabungkan di sana.
Cara Menampilkan Output
Seperti yang kita sudah ketahui pada contoh‐contoh sebelumnya. Untuk menampilkan
output teks, kita menggunakan fungsi print().
Contoh:
print "Hello World!"
print nama_variabel
print "Gabung dengan", variabel
Menampilkan Variabel dan Teks
Pada contoh di atas kita menggunakan tanda koma (,) untuk menggabungkan teks dan
variabel yang akan ditampilkan.
nama = "Abhiyasa"
print "Hello",nama
Hasil:
Hello Abhiyasa
27
Antara kata Hello dan Abhiyasa terdapat spasi sebagai pemisah, karena kita menggunakan
tanda koma. Hati‐hati… Jangan ditambahkan kurung seperti ini:
nama = "Abhiyasa"
print("Hello",nama)
Karena akan dibaca sebagai Tuple yang akan mengahsilkan output seperti ini:
('Hello', 'Abhiyasa')
Sebaiknya jangan dikurung kalau menggunakan tanda koma.
Jika ingin menggunakan kurung, maka kita harus menggabungkan teks dan variabelnya
dengan tanda plus (+).
Contoh:
nama = "Abhiyasa"
print("Hello " + nama)
Hasilnya:
Hello Abhiyasa
Menggunakan Fungsi format()
Fungsi format() akan menggabungkan isi variabel dengan teks.
Contoh:
nama = raw_input("Nama: ")
print "Hello {} apa kabar?".format(nama)
Tanda {} akan otomatis diganti sesuai dengan nilai yang kita inputkan ke variabel nama.
Contoh lagi:
nama_mu = raw_input("Nama kamu: ")
nama_dia = raw_input("Nama dia: ")
print "{} dengan {} sepertinya pasangan yang serasi :)".format(nama_mu, nama_dia)
28
Menggunakan String Formatting Cara Lama
Penggabungan teks dan variabel cara lama menggunakan simbol persen (%).
Contoh:
nama = raw_input("Inputkan nama: ")
print "Selamat datang %s" % nama
Tanda %s akan otomatis diganti dengan nilai yang kita inputkan ke variabel nama.
Contoh lagi:
nama = raw_input("Inputkan nama: ")
umur = input("Inputkan umur: ")
tinggi = input("Inputkan tinggi badan: ")
print "Hello %s, saat ini usiamu %d tahun dan tinggi badanmu %f cm" % (nama, umur, tinggi)
Tanda %s untuk tipe data teks, %d untuk angka (desimal), dan %f untuk bilangan pecahan.
BAB V
Mengenal 6 Jenis Operator dalam Python
29
Setelah kita mengenal variabel dan tipe data pada Python, selanjutnya kita akan berkenalan
dengan Operator.
Apa itu operator?
Operator merupakan simbol‐simbol yang digunakan untuk melakukan operasi tertentu.
Ada enam jenis operator dalam pemrograman yang wajib diketahui:
1. Operator Aritmatika
2. Operator Pembanding/Relasi
3. Operator Penugasan
4. Opeartor Logika
5. Operator Bitwise
6. Operator Ternary
1. Operator Aritmatika
Opeartor aritmatika termasuk dalam operator yang paling sering digunakan dalam
pemrograman.
Opeartor aritmatika terdiri dari:
Operator Simbol
Penjumlahan +
Pengurangan ‐
Perkalian *
Pembagian /
Sisa Bagi %
Pemangkatan **
Contoh dalam program:
# file: operator_aritmatika.py
# Ambil input untuk mengisi nilai
a = input("Inputkan nilai a: ")
30
b = input("Inputkan nilai b: ")
# Menggunakan operator penjumlahan
c = a + b
print ("Hasil %d + %d = %d" % (a,b,c))
# Operator Pengurangan
c = a ‐ b
print ("Hasil %d ‐ %d = %d" % (a,b,c))
# Operator Perkalian
c = a * b
print ("Hasil %d * %d = %d" % (a,b,c))
# Operator Pembagian
c = a / b
print ("Hasil %d / %d = %d" % (a,b,c))
# Operator Sisa Bagi
c = a % b
print ("Hasil %d %% %d = %d" % (a,b,c))
# Operator Pangkat
c = a ** b
print ("Hasil %d ** %d = %d" % (a,b,c))
Hasilnya:
Pada kode program di atas, kita menggunakan string formatting untuk mencetak hasil dari
masing‐masing opearasi. Operator % selain digunakan untuk string formatting, operator ini
juga digunakan untuk menghitung operasi sisa bagi.
Misal: 5 % 2, maka hasilnya 1. Karena sisa dari hasil bagi antara 5 dengan 2adalah 1.
2. Operator Penugasan
Seperti namanya, operator ini digunakan untuk memberikan tugas pada variabel.
Misalnya:
31
umur = 18
Maka variabel umur telah kita berikan tugas untuk menyimpan angka 18.
Selain menyimpan atau pengisian nilai, ada juga menjumlahkan, mengurangi, perkalian,
pembagian, dsb. Selengkapnya bisa dilihat di tabel berikut.
Operator Simbol
Pengisian =
Penjumlahan +=
Pengurangan ‐=
Perkalian *=
Pembagian /=
Sisa Bagi %=
Pemangkatan **=
Untuk lebih jelasnya, mari kita coba contohnya dalam program.
# file: operator_penugasan.py
# Ambil input untuk mengisi nilai
a = input("Inputkan nilai a: ")
# ^
# | contoh operator penugasan untuk mengisi nilai
print ("Nilai a = %d" % a)
# Coba kita jumlahkan nilai a dengan opertor penugasan
a += 5
# ^
# |
# contoh operator penugasan untuk menjumlahkan
# Setelah nilai a ditambah 5, coba kita lihat isinya
print ("Nilai setelah ditambah 5:")
print ("a = %d" % a)
Hasilnya:
32
Pada awalnya kita mengisi nilai variabel a dengan 4. Kemudian dilakukan penjumlahan atau
ditambah 5.
a += 5
Penjumlahan tersebut sama maksudnya seperti ini:
a = a + 5
Artinya, kita mengisi nilai variabel a dengan nilai a sebelumnya, lalu ditambah 5.
Paham…?
Baiklah, kalau sudah paham silahkan coba lagi untuk operator yang lainnya.
# Ambil input untuk mengisi nilai
a = input("Inputkan nilai a: ")
# tambahkan dengan 2
a += 2
# kurangi 3
a ‐= 3
# kali 10
a *= 10
# bagi dengan 4
a /= 4
# pangkat 10
a **= 10
# Berapakah nilai a sekarang?
print "Nilai a adalah %d" % a
Silahkan coba inputkan nilai variabel a dengan 8 dan berapakah hasil akhirnya?
33
3. Operator Pembanding
Operator ini digunakan untuk membandingkan dua buah nilai. Operator ini juga dikenal
dengan operator relasi dan sering digunakan untuk membuat sebuah logika atau kondisi.
Opertor ini terdiri dari:
Operator Simbol
Lebih Besar >
Lebih Kecil <
Sama Dengan ==
Tidak Sama dengan !=
Lebih Besar Sama dengan >=
Lebih Kecil Sama dengan <=
Contoh:
a = 9
b = 5
c = a < b
Apakah isi dari variabel c?
Isinya adalah False, karena nilai 9 lebih kecil dari 5 (9 < 5) adalah salah (False).
Untuk lebih jelasnya, mari kita coba contonya dalam program.
# file: operator_pembanding.py
a = input("Inputkan nilai a: ")
b = input("Inputkan nilai b: ")
# apakah a sama dengan b?
c = a == b
print "Apakah %d == %d: %r" % (a,b,c)
# apakah a < b?
c = a < b
print "Apakah %d < %d: %r" % (a,b,c)
# apakah a > b?
c = a > b
print "Apakah %d > %d: %r" % (a,b,c)
34
# apakah a <= b?
c = a <= b
print "Apakah %d <= %d: %r" % (a,b,c)
# apakah a >= b?
c = a >= b
print "Apakah %d >= %d: %r" % (a,b,c)
# apakah a != b?
c = a != b
print "Apakah %d != %d: %r" % (a,b,c)
4. Operator Logika
Operator logika digunakan untuk membuat operasi logika, seperti logika AND, OR, dan NOT.
Operator logika terdiri dari:
Nama Simbol di Python
Logika AND and
Logika OR or
Negasi/kebalikan not
Contoh:
a = True
b = False
# Logika AND
c = a and b
print "%r and %r = %r" % (a,b,c)
# Logika OR
c = a or b
print "%r or %r = %r" % (a,b,c)
# Logika Not
c = not a
print "not %r = %r" % (a,c)
Hasilnya:
35
5. Operator Bitwise
Operator Bitwise adalah operator untuk melakukan operasi berdasarkan bit/biner.
Operator ini terdiri dari:
Nama Simbol
AND &
OR |
XOR ^
Negasi/kebalikan ~
Left Shift <<
Right Shift >>
Hasil operasi dari operator ini agak sulit dipahami, kalau kita belum paham operasi bilangan
biner.
Misalnya, kita punya variabel a = 60 dan b = 13.
Bila dibuat dalam bentuk biner, akan menjadi seperti ini:
a = 00111100
b = 00001101
Kemudian, dilakukan operasi bitwise
Operasi AND
a = 00111100
b = 00001101
a & b = 00001100
Operasi OR
a = 00111100
b = 00001101
a | b = 00111101
Operasi XOR
a = 00111100
b = 00001101
36
a ^ b = 00110001
Opearsi NOT (Negasi/kebalikan)
a = 00111100
~a = 11000011
Konsepnya memang hampir sama dengan opeartor Logika. Namun, Bitwise digunakan untuk
biner.
Mari kita coba dalam program…
a = input("Masukan nilai a: ")
b = input("Masukan nilai b: ")
# Operasi AND
c = a & b
print "a & b = %s" % c
# Operasi OR
c = a | b
print "a | b = %s" % c
# Operasi XOR
c = a ^ b
print "a ^ b = %s" % c
# Operasi Not
c = ~a
print "~a = %s" % c
# Operasi shift left (tukar posisi biner)
c = a << b
print "a << b = %s" % c
# Operasi shift right (tukar posisi biner)
c = a >> b
print "a >> b = %s" % c
37
Hasilnya:
6. Operator Ternary
Operator ternary juga dikenal dengan operator kondisi, karena digunakan untuk membuat
sebuah ekspresi kondisi seperti percabgan IF/ELSE.
Operator ternary sebenarnya tidak ada dalam Python, tapi python punya cara lain untuk
menggantikan operator ini. Pada bahasa pemrograman lain operator ternary menggunakan
tanda tanya (?) dan titik dua (:).
kondisi ? <nilai true> : <nilai false>
Contoh:
aku = (umur < 10) ? "bocah" : "dewasa"
Dalam Python bentuknya berbeda, yaitu menggunakann IF/ELSE dalam satu baris.
<Nilai True> if Kondisi else <Nilai False>
38
Contoh:
umur = input("berapa umur kamu? ")
aku = "bocah" if umur < 10 else "dewasa"
print aku
Lebih mudah dibaca bukan?
Hasilnya:
Coba juga untuk mengisi nilai variabel umur dengan nilai di bawah 10 dan perhatikan output‐
nya.
Cara lain untuk membuat operasi ternary juga bisa menggunakan Tuple dan List.
jomblo = True
status = ("Menikah", "Single")[jomblo]
print status
39
BAB VI
Percabangan untuk Membuat Logika Program
Pada flow chart, logika “jika…maka” digambarkan dalam bentuk cabang.
Percabangan akan mampu membuat program berpikir dan menentukan tindakan
sesuai dengan logika/kondisi yang kita berikan.
Struktur Percabangan If
Percabangan If digunakan saat terdapat satu pilihan keputusan.
Misalkan, kalau kita tidak lulus dalam ujian, maka kita ikut remidi. Sedangkan kalau
lulus tidak perlu ikut remidi.
40
Maka kita bisa membuat kode‐nya seperti ini:
if lulus == "tidak":
print("kamu harus ikut remidi")
“Jika lulus == "tidak" maka cetak teks "kamu harus ikut remidi"“
Kita menggunakan operator relasi sama dengan (==) untuk membandingkan isi
variabel lulus. Sedangkan tanda titik‐dua (:) adalah tanda untuk memulai blok kode If.
Penulisan blok If, harus diberikan indentasi tab atau spasi 2x.
Contoh penulisan yang salah:
if lulus == "tidak":
print("Kamu harus ikut remidi")
Contoh penulisan yang benar:
if lulus == "tidak":
print("kamu harus ikut remidi")
Contoh Program:
Buatlah program berikut:
# lulus.py
lulus = raw_input("Apakah kamu lulus? [ya/tidak]: ")
if lulus == "tidak":
print("Kamu harus ikut ujian")
Silahkan dieksekusi, lalu masukan jawaban “ya” atau “tidak”. Perhatikanlah hasil
outputnya.
41
Contoh lagi:
Biar pemahamannya semakin mantap, silahkan coba contoh kasus berikut ini.
# program untuk mengecek bonus dan diskon
# file: bonus.py
total_belanja = input("Total belanja: Rp ")
# jumlah yang harus dibayar adalah berapa total belanjaannya
# tapi kalau dapat diskon akan berkurang
bayar = total_belanja
# jika dia belanja di atas 100rb maka berikan bonus dan diskon
if total_belanja > 100000:
print("Kamu mendapatkan bonus minuman dingin")
print("dan diskon 5%")
# hitung diskonnya
diskon = total_belanja * 5/100 #5%
bayar = total_belanja ‐ diskon
# cetak struk
print("Total yang harus dibayar: Rp %s" % bayar)
print("Terima kasih sudah berbelanja")
print("Datang lagi yaa...")
Hasilnya:
Struktur Percabangan If/Else
Percabangan If/Else digunakan saat terdapat dua pilihan keputusan.
Misalkan, jika umur diatas atau sama dengan 18 tahun boleh membuat SIM.
Sedangkan dibawah itu belum boleh.
42
Maka kita bisa membuatnya dalam program:
# cek_umur.py
umur = input("Berapa umur kamu: ")
if umur >= 18:
print("Kamu boleh membuat SIM")
else:
print("Kamu belum boleh membuat SIM")
Selain blok If, terdapat juga blok Else yang akan dieksekusi apabila kondisi umur >=
18 salah (False). Hasil eksekusi dari kode di atas adalah sebagai berikut:
Struktur Percabangan If/Elif/Else
Percabangan If/Elif/Else digunakan apabila terdapat lebih dari dua pilihan keputusan.
if begini:
maka ini
elif begitu:
maka itu
else:
pokoknya gitu dah!
Kata kunci elif artinya Else if, fungsinya untuk membuat kondisi/logika tambahan
apabila kondisi pertama salah.
Contoh Program: Misalkan kita akan membuat program untuk menentukan grade nilai
dengan flow chart sebagai berikut:
43
Maka kode programnya bisa kita buat seperti ini:
#file grade_nilai.py
nilai = input("Inputkan nilaimu: ")
if nilai >= 90:
grade = "A"
elif nilai >= 80:
grade = "B+"
elif nilai >= 70:
grade = "B"
elif nilai >= 60:
grade = "C+"
elif nilai >= 50:
grade = "C"
elif nilai >= 40:
grade = "D"
else:
grade = "E"
print("Grade: %s" % grade)
44
BAB VII
Perulangan
1. Perulangan for
Bentuk umum:
for indek in range(banyak_perulangan):
# jalankan kode ini
# jalankan juga kode ini
#kode ini tidak akan diulang karena berada di luar for
Contoh program:
# file: perulanganFor.py
ulang = 10
for i in range(ulang):
print "Perulangan ke‐"+str(i)
Pertama kita menentukan banyak perulangannya sebanyak 10x
ulang = 10
45
Variabel i berfungsi untuk menampung indeks, dan fungsi range() berfungsi untuk
membuat list dengan range dari 0‐10. Fungsi str() berfungsi merubah tipe data ineger
ke string.
for i in range(ulang):
print "Perulangan ke‐"+str(i)
Hasil:
abhiyasa@stta:~$ python perulanganFor.py
Perulangan ke‐0
Perulangan ke‐1
Perulangan ke‐2
Perulangan ke‐3
Perulangan ke‐4
Perulangan ke‐5
Perulangan ke‐6
Perulangan ke‐7
Perulangan ke‐8
Perulangan ke‐9
Contoh lain menggunakan senarai (list):
# berkas: perulanganFor.py
item = ['kopi','nasi','teh','jeruk']
for isi in item:
print isi
Hasil:
abhiyasa@stta:~$ python perulanganFor.py
kopi
nasi
teh
jeruk
2. Perulangan while
Bentuk umum:
while(True): # jalankan kode ini # kode ini berada di luar perulangan while
46
Contoh:
# berkas: perulanganWhile.py
jawab = 'ya'
hitung = 0
while(jawab == 'ya'):
hitung += 1
jawab = raw_input("Ulang lagi tidak? ")
print "Total perulagan: " + str(hitung)
Atau bisa juga dengan bentuk yang seperti ini, dengan menggunakan kata kuci break
# berkas: perulanganWhile.py
jawab = 'ya'
hitung = 0
while(True):
hitung += 1
jawab = raw_input("Ulang lagi tidak? ")
if jawab == 'tidak':
break
print "Total perulagan: " + str(hitung)
Pertama menentukan variabel untuk menghitung, dan menentukan kapan perulangan
berhenti. kalau pengguna menjawab tidak maka perulangan akan terhenti.
jawab = 'ya'
hitung = 0
Melakukan perulangan dengan while, kemudian menambah satu variabel hitung setiap
kali mengulang. lalu menanyakan kepada pengguna, apakah mau berhenti mengulang
atau tidak?
while(jawab == 'ya'):
hitung += 1
jawab = raw_input("Ulang lagi tidak? ")
print "Total perulagan: " + str(hitung)
47
Hasil:
abhiyasa@stta:~$ python perulanganWhile.py
Ulang lagi tidak? ya
Ulang lagi tidak? ya
Ulang lagi tidak? ya
Ulang lagi tidak? ya
Ulang lagi tidak? ya
Ulang lagi tidak? ya
Ulang lagi tidak? tidak
Total perulagan: 7
48
BAB VIII
Dictionary pada Python
aku = {
"nama": "Abhiyasa",
"url:" "https://www.Abhiyasa.com"
}
Pada contoh di atas kita membuat sebuah Dictionary bernama aku dengan isi data nama dan
URL. nama dan url adalah kunci (key) yang akan kita gunakan untuk mengakses nilai di
dalamnya.
Inilah perbedaanya dibandingkan list dan tuple. Dictionary memiliki kunci berupa teks—bisa
juga angka—sedangkan list dan tuple menggunakan indeks berupa angka saja untuk
mengakses nilainya.
Dalam bahasa pemrograman lain (seperti PHP), Dictionary juga dikenal dengan
sebutan asosiatif array.
49
2. Membuat Dictionary
Hal yang wajib ada di dalam pembuatan Dictionary adalah:
nama dictionary,
key,
value,
buka dan tutupnya menggunakan kurung kurawal.
Antara key dan value dipisah dengan titik dua (:) dan apabila terdapat lebih dari satu item,
maka dipisah dengan tanda koma (,).
Contoh satu item:
nama_dict = {
"key": "value"
}
Contoh tiga item:
nama_dict = {
"key1": "value",
"key2": "value",
"key3": "value"
}
Isi dari Dictionary dapat berupa:
String
Integer
Objek
List
Tuple
Dictionary
Contoh:
pak_tani = {
"nama": "Abhiyasa",
"umur": 22,
"hobi": ["coding", "membaca", "cocok tanam"],
"menikah": False,
"sosmed": {
"facebook": "Abhiyasa",
"twitter": "@Abhiyasa"
} }
Mari kita lihat isi dari Dictionary di atas:
50
nama berisi string "Abhiyasa"
umur berisi integer 22
hobi berisi list dari string
menikah berisi boolean False
dan sosmed berisi Dictionary
Menggunakan Konstruktor
Selain menggunakan cara di atas, kita juga bisa membaut Dictionary dari
constructor dict() dengan parameter key dan value.
Contoh:
warna_buah = dict(jeruk="orange", apel="merah", pisang="kuning")
Maka akan menghasilkan dictionary seperti ini:
{'jeruk': 'orange', 'pisang': 'kuning', 'apel': 'merah'}
3. Mengakses Nilai Item dari Dictionary
Kita sudah tahu cara membuat Dictionary, sekarang bagaimana cara mengaksesnya?
Cara mengaksesnya sama seperti list. Namaun kunci yang digunakan bukan angka,
melainkan keyword yang sudah kita tentukan di dalam Dictionary‐nya.
Contoh:
# Membuat Dictionary
pak_tani = {
"nama": "Abhiyasa",
"umur": 22,
"hobi": ["coding", "membaca", "cocok tanam"],
"menikah": False,
"sosmed": {
"facebook": "Abhiyasa",
"twitter": "@Abhiyasa"
}
}
# Mengakses isi dictionary
print("Nama saya adalah %s" % pak_tani["nama"])
print("Twitter: %s" % pak_tani["sosmed"]["twitter"])
Maka akan menghasilkan:
51
Nama saya adalah Abhiyasa
Twitter: @Abhiyasa
Selain dengan cara di atas, kita juga bisa mengambil nilai Dictionary dengan method get().
Contoh:
print(pak_tani.get("nama"))
Hasilnya:
Abhiyasa
Menggunakan Perulangan
Untuk mencetak semua isi Dictionary, kita bisa menggunakan perulangan seperti ini:
# Membuat dictionary
web = {
"name": "Abhiyasa",
"url": "https://www.Abhiyasa.com",
"rank": "5"
}
# Mencetak isi dictionary dengan perulangan
for key in web:
print(web[key])
Hasilnya:
Abhiyasa
5
https://www.Abhiyasa.com
Kita juga bisa melakukannya seperti ini:
52
web = {
"name": "Abhiyasa",
"url": "https://www.Abhiyasa.com",
"rank": "5"
}
for key, val in web.items():
print("%s : %s" % (key, val))
Hasilnya:
name : Abhiyasa
rank : 5
url : https://www.Abhiyasa.com
4. Mengubah Nilai Item Dictionary
Dictionary bersifat mutable, artinya nilainya dapat kita ubah‐ubah. Untuk mengubah
nilai Dictionary, kita bisa lakukan seperti ini:
nama_dic["kunci"] = "Nilai Baru"
Contoh:
# membuat dictioanary
skill = {
"utama": "Python",
"lainnya": ["PHP","Java", "HTML"]
}
# Mencetak isi skill utama
print(skill["utama"])
# mengubah isi skill utama
skill["utama"] = "Rust"
# Mencetak isi skill utama
print(skill["utama"])
Maka akan menghasilkan: Python Rust
5. Menghapus Item dari Dictionary
Untuk menghapus nilai Dictionary, kita bisa menggunakan perintah del dan method pop().
53
Method pop() adalah method yang berfungsi untuk mengeluarkan item
daridictionary sedangak fungsi del adalah fungsi untuk menghapus suatu variabel dari
memori.
Contoh menghapus dengan del:
>>> del skill["utama"]
>>> skill
{'lainnya': ['PHP', 'Java', 'HTML']}
Contoh menghapus dengan method pop():
>>> skill.pop("utama")
'Rust'
>>> skill
{'lainnya': ['PHP', 'Java', 'HTML']}
…atau bila kita ingin menghapus semuanya sekaligus, kita bisa menggunakanmethod clear().
Contoh:
skill.clear()
6. Menambahkan Item ke Dictionary
Kita bisa menggunakan method update() untuk menambahkan isi ke Dictionary.
Parameternya berupa Dictionary.
Selain berfungsi untuk menambahkan, method ini juga berfungsi untuk mengubah nilai
dictionary apabila kunci yang dimasukkan sudah ada di dalamnya.
Contoh:
# membuat dictionary user
user = {
"name": "Abhiyasa"
}
# menambahkan password
user.update({"password": "akucintakamu123"})
print(user)
54
# update name
user.update({"name": "peternaklinux"})
print(user)
Hasilnya:
{'name': 'Abhiyasa', 'password': 'akucintakamu123'}
{'name': 'peternaklinux', 'password': 'akucintakamu123'}
7. Mengambil Panjang Dictionary
Untuk mengambil jumlah data atau panjang Dictionary, kita bisa menggunakan fungsi len().
Contoh:
# membuat dictonary
books = {
"python": "Menguasai Python dalam 2028 jam",
"java": "Tutorial Belajar untuk Pemula",
"php": "Membuat aplikasi web dengan PHP"
}
# mencetak jumlah data yang ada di dalam dictionary
print("total buku: %d" % len(books))
Hasilnya:
total buku: 3
BAB IX
Fungsi dan Prosedur pada Python
55
Pada pembuatan program yang kompleks dan memiliki banyak fitur, kita diharuskan
menggunakan fungsi.
Kenapa memangnya kalau tidak menggunakan fungsi?
Bisa jadi kita akan kerepotan menulis kode programnya, karena banyak yang harus ditulis
dan kode akan menjadi sulit dibaca dan dirawat (maintenance). Dengan fungsi, kita dapat
memecah program besar menjadi sub program yang lebih sederhana. Masing‐masing fitur
pada program dapat kita buat dalam satu fungsi. Pada saat kita membutuhkan fitur tersebut,
kita tinggal panggil fungsinya saja. Hal ini akan kita coba pada contoh program yang sudah
saya sediakan di bawah. Namun, terlebih dahulu…
Kita harus memahami teori dasar dan hal apa saja yang harus kita ketahui tentang fungsi di
Python.
Cara Membuat Fungsi pada Python
Fungsi pada Python, dibuat dengan kata kunci def kemudian diikuti dengan nama fungsinya.
Contoh:
def nama_fungsi():
print "Hello ini Fungsi"
Sama seperti blok kode yang lain, kita juga harus memberikan identasi (tab atau spasi 2x)
untuk menuliskan isi fungsi.
Setelah kita buat fungsinya, lalu apa?
Setelah kita buat, kita bisa memanggilnya seperti ini:
56
nama_fungsi()
Sebagai contoh, coba tulis kode program berikut:
# Membuat Fungsi
def salam():
print "Hello, Selamat Pagi"
## Pemanggilan Fungsi
salam()
Hasilnya:
Hello, Selamat Pagi
Coba panggil sebanyak 3x:
# Membuat Fungsi
def salam():
print "Hello, Selamat Pagi"
## Pemanggilan Fungsi
salam()
salam()
salam()
Hasilnya:
Hello, Selamat Pagi
Hello, Selamat Pagi
Hello, Selamat Pagi
Mudah bukan?
Intinya apapun yang ada di dalam fungsi, ketika dipanggil itulah yang akan dilakukan.
FYI: fungsi juga dapat dipanggil pada fungsi lain, bahkan bisa memanggil dirinya sendiri.
Fungsi yang memanggil dirinya sendiri, disebut fungsi rekursif.
Fungsi dengan Parameter
Sekarang, bagaimana kalau kita ingin memberikan input nilai ke dalam fungsi?
Gampang…
Kita bisa manfaatkan parameter.
57
Apa itu parameter?
Parameter adalah variabel yang menampung nilai untuk diproses di dalam fungsi.
Contoh:
def salam(ucapan):
print(ucapan)
Pada contoh diatas, kita membuat fungsi dengan parameter ucapan.
Lalu bagaimana cara memanggilnya?
Cara pemanggilan fungsi yang memiliki parameter adalah seperti ini:
salam("Selamat siang")
"Selamat siang" adalah nilai parameter yang kita berikan.
Lalu bagaimana kalau parameternya lebih dari satu?
Kita bisa menggunakan tanda koma (,) untuk memisahnya.
Contoh:
# Membuat fungsi dengan parameter
def luas_segitiga(alas, tinggi):
luas = (alas * tinggi) / 2
print "Luas segitiga: %f" % luas;
# Pemanggilan fungsi
luas_segitiga(4, 6)
Hasilnya:
58
Luas segitiga: 12.000000
Fungsi yang Mengembalikan Nilai
Fungsi yang tidak mengembalikan nilai biasanya disebut dengan prosedur. Namun, kadang
kita butuh hasil proses dari fungsi untuk digunakan pada proses berikutnya. Maka fungsi
harus mengembalikan nilai dari hasil pemrosesannya. Cara mengembalikan nilai adalah
menggunkan kata kunci return lalu diikuti dengan nilai atau variabel yang akan dikembalikan.
Contoh:
def luas_persegi(sisi):
luas = sisi * sisi
return luas
# pemanggilan fungsi
print "Luas persegi: %d" % luas_persegi(6)
Hasilnya:
Luas persegi: 36
Apa bedanya dengan fungsi luas_segitiga() yang tadi?
Pada fungsi luas_segitiga() kita melakukan print dari hasil pemrosesan secara langsung di
dalam fungsinya.
59
Sedangkan fungsi luas_persegi(), kita melakukan print pada saat pemanggilannya.
Jadi, fungsi luas_persegi() akan bernilai sesuai dengan hasil yang dikembalikan.
Sehingga kita dapat memanfaatkannya untuk pemerosesan berikutnya.
Misalnya seperti ini:
# rumus: sisi x sisi
def luas_persegi(sisi):
luas = sisi * sisi
return luas
# rumus: sisi x sisi x sisi
def volume_persegi(sisi):
volume = luas_persegi(sisi) * sisi
# membuat variabel global
60
nama = "Abhiyasa"
versi = "1.0.0"
def help():
# ini variabel lokal
nama = "Programku"
versi = "1.0.2"
# mengakses variabel lokal
print "Nama: %s" % nama
print "Versi: %s" % versi
# mengakses variabel global
print "Nama: %s" % nama
print "Versi: %s" % versi
# memanggil fungsi help()
help()
Hasilnya:
Nama: Abhiyasa
Versi: 1.0.0
Nama: Programku
Versi: 1.0.2
Perhatikanlah variabel nama yang berada di dalam fungsi help() dan diluar fungsi `help().
Variabel nama yang berada di dalam fungsi help() adalah variabel lokal.
Jadi, saat kita memanggil fungsi help() maka nilai yang akan tampil adalah nilai yang ada di
dalam fungsi help().
Kenapa tidak tampil yang global?
Karena itu tadi…
Python mulai mencari dari lokal, ke global, dan build‐in.
Kalau di tiga tempat itu tidak ditemukan, maka biasanya akan terjadi NameError atau
variabel tidak ditemukan.
Contoh Program dengan Fungsi
Biaklah, sekarang tiba saatnya kita membuat program…
61
Silahkan buat file baru bernama program_fungsi.py.
Lalu kita mulai tulis kodenya.
Pertama kita buat sebuah variabel global berupa list untuk menampung judul‐judul buku.
# Variabel global untuk menyimpan data Buku
buku = []
Nanti program ini akan mampu melakukan operasi CRUD (Create, Read, Update, dan Delete).
Maka kita membutuhkan fungsi‐fungsi berikut:
show_data() untuk menampilkan data dari list buku;
insert_data() untuk menambahkan data ke list buku;
edit_data() untuk mengedit data di list buku;
delete_data() untuk untuk menghapus data dari list buku.
Mari kita buat semuanya.
Dimulai dari fungsi show_data():
# fungsi untuk menampilkan semua data
def show_data():
if len(buku) <= 0:
print "BELUM ADA DATA"
else:
for indeks in range(len(buku)):
print "[%d] %s" % (indeks, buku[indeks])
Fungsi di atas akan mengecek isi dari list buku. Jika isinya kosong (len(buku) <= 0) maka
tampilkan "BELUM ADA DATA".
Namun, apabila ada isinya, maka tampilkan semua isinya dengan perulangan.
Selanjutnya membuat fungsi insert_data():
# fungsi untuk menambah data
def insert_data():
buku_baru = raw_input("Judul Buku: ")
buku.append(buku_baru)
Fungsi di atas akan mengambil input dari user kemudian diisi ke dalam list buku dengan
fungsi append().
Fungsi append() adalah fungsi untuk menambahkan item di akhir list.
62
Selain append() ada juga prepend(). Namun, untuk kasus ini, kita pakai append() saja.
Penjelasan lengkap tentang append() dan prepend() bisa dibaca pada: Mengenal Struktur
Data List pada Python.
Selanjutnya membuat fungsi edit_data():
# fungsi untuk edit data
def edit_data():
show_data()
indeks = input("Inputkan ID buku: ")
if(indeks > len(buku)):
print "ID salah"
else:
judul_baru = raw_input("Judul baru: ")
buku[indeks] = judul_baru
Fungsi di atas akan menampilkan isi dari list buku dengan memanggil fungsishow_data() di
dalamnya.
Setelah itu, kita meminta user untuk menginputkan ID atau nomer indeks buku yang akan
diedit.
Lalu kita lakukan pengecekan, jika ID yang diinputkan melebihi dari isi list buku (indeks >
len(buku)), maka tampilkan pesan "ID salah".
Namun, apabila tidak melebihi dari isi buku, maka ambil input untuk judul baru dan simpan
sesuai ID‐nya.
Selanjutnya membuat fungsi delete_data():
# fungsi untuk menhapus data
def delete_data():
show_data()
indeks = input("Inputkan ID buku: ")
if(indeks > len(buku)):
print "ID salah"
else:
buku.remove(buku[indeks])
Hampir sama dengan fungsi edit_data(). Fungsi delete_data() juga harus menampilkan isi
list buku dan mengambil ID yang akan dihapus.
Kita dapat menghapus item pada list dengan fungsi remove().
Apakah sudah selesai?
63
Belum, masih ada dua fungsi lagi yang kita butuhkan:
1. Fungsi untuk menampilkan menu
2. Fungsi untuk keluar (sudah ada di python: exit())
Ok, mari kita buat:
# fungsi untuk menampilkan menu
def show_menu():
print "\n"
print "‐‐‐‐‐‐‐‐‐‐‐ MENU ‐‐‐‐‐‐‐‐‐‐"
print "[1] Show Data"
print "[2] Insert Data"
print "[3] Edit Data"
print "[4] Delete Data"
print "[5] Exit"
menu = input("PILIH MENU> ")
print "\n"
if menu == 1:
show_data()
elif menu == 2:
insert_data()
elif menu == 3:
edit_data()
elif menu == 4:
delete_data()
elif menu == 5:
exit()
else:
print "Salah pilih!"
Fungsi di atas akan menampilkan menu dari 1–5, lalu memanggil fungsi‐fungsi yang sudah
dibuat berdasarkan menu yang dipilih.
Terakhir, kita harus membuat main loop programnya.
if __name__ == "__main__":
while(True):
show_menu()
Program akan mengulang terus‐menerus sampai fungsi exit() dieksekusi.
64
if __name__ == "__main__": adalah blok main di Python. Sebenarnya tanpa ini, programnya
sudah bisa dijalankan.
Tapi biar cakep, kita tambahkan saja.
Sehingga kode lengkapnya akan seperti ini:
# Variabel global untuk menyimpan data Buku
buku = []
# fungsi untuk menampilkan semua data
def show_data():
if len(buku) <= 0:
print "BELUM ADA DATA"
else:
for indeks in range(len(buku)):
print "[%d] %s" % (indeks, buku[indeks])
# fungsi untuk menambah data
def insert_data():
buku_baru = raw_input("Judul Buku: ")
buku.append(buku_baru)
# fungsi untuk edit data
def edit_data():
show_data()
indeks = input("Inputkan ID buku: ")
if(indeks > len(buku)):
print "ID salah"
else:
judul_baru = raw_input("Judul baru: ")
buku[indeks] = judul_baru
# fungsi untuk menhapus data
def delete_data():
show_data()
indeks = input("Inputkan ID buku: ")
if(indeks > len(buku)):
print "ID salah"
else:
buku.remove(buku[indeks])
# fungsi untuk menampilkan menu
def show_menu():
print "\n"
65
print "‐‐‐‐‐‐‐‐‐‐‐ MENU ‐‐‐‐‐‐‐‐‐‐"
print "[1] Show Data"
print "[2] Insert Data"
print "[3] Edit Data"
print "[4] Delete Data"
print "[5] Exit"
menu = input("PILIH MENU> ")
print "\n"
if menu == 1:
show_data()
elif menu == 2:
insert_data()
elif menu == 3:
edit_data()
elif menu == 4:
delete_data()
elif menu == 5:
exit()
else:
print "Salah pilih!"
if __name__ == "__main__":
while(True):
show_menu()
Cobalah untuk mengeksekusinya dan perhatikan hasilnya.
66
Mantap… programnya keren.
67
BAB X
*args dan **kwargs pada Python?
*args dan **kwargs sebenarnya adalah sebuah variabel. Kadang juga disebut dengan magic
variable, karena kemampuannya yang aneh.
Variabel ini memiliki kemampuan khusus karena ada tanda bintang (*) di depannya.
Kalau tidak ada itu…
…maka akan menjadi variabel yang biasa‐biasa saja.
Lalu bagaimana cara menggunakan dalam program?
Kapan waktu yang tepat menggunakannya?
Apa bedanya *args dan **kwargs?
Mari kita bahas.
Kapan *args dan **kwargs digunakan?
Jika kita mencoba membuat variabel dengan nama *args dan **kwargs, maka akan terjadi
error.
Kenapa bisa begitu?
68
Karena ada simbol bintang (*) di depannya. Sedangkan pada aturan penulisan variabel di
Python, kita tidak dibolehkan menggunakan simbol di depan, kecuali underscore (_).
Lalu di mana penggunaanya?
Variabel *args dan **kwargs digunakan sebagai parameter pada fungsi.
Contoh:
# Pembuatan fungsi
def panggil(*nama):
print "daftar orang yang dipanggil:"
for orang in nama:
print orang
# pemanggilan fungsi
panggil("dian", "deni", "agus")
Catatan: nama *args dan **kwargs bukanlah sesuatu yang baku. Kita juga bisa membuatnya
sesuka hati seperti *nama, **nama, *buku, dsb.
Hasil outputnya:
daftar orang yang dipanggil:
dian
deni
agus
Pada contoh di atas, kita memberikan tiga paramter ke dalam fungsi panggil().
panggil("dian", "deni", "agus")
Sedangkan pada pembuatanya kita hanya menggunakan satu parameter, yaitu: *nama.
Kok bisa?
Inilah ajaibnya.
Saat kita menambahkan tanda bintang (*) di depan parameter, kita bisa memberikan
parameter berapapun yang kita inginkan saat pemanggilan.
69
panggil("dian", "deni", "agus")
panggil("toni", "amir", "dian", "deni", "agus")
panggil("dion", "beni", "heri", "hadi")
Jadi, kapan waktu yang tepat menggunakan *args dan **kwargs?
Waktu yang tepat menggunakan *args dan **kwargs adalah saat kita membuat fungsi dan
jumlah parameternya tidak jelas alias tidak pasti (not fixed).
Biasanya kan kita membuat seperti ini:
def colek(nama1, nama2, nama2):
pass
Fungsi tersebut hanya mampu menerima tiga parameter saja.
colek("eko", "rian", "dwi")
# coba berikan 1 parameter pasti akan error
colek("anto")
Lalu bagaimana kalau ingin lebih dari tiga, kadang juga kita ingin satu saja?
di sanalah kita harus menggunakan *args dan **kwargs.
Apa Perbedaan dari *args dan **kwargs?
Perbedaan yang paling terlihat adalah dari jumlah tanda bintangnya.
*args menggunakan satu tanda bintang, sedangkan **kwargs menggunakan dua tanda
bintang.
Antara tanda bintang satu dan dua, itu memiliki perbedaan:
* artinya akan membuat parameter menjadi tuple.
** artinya akan membuat parameter menjadi dictionary.
Belum tahu tentang apa itu tuple dan dictionary?
Silahkan baca:
Mengenal Struktur data Tuple di Python (coming soon)
Mengenal Struktur data Dictionary di Python (coming soon)
70
Antara *args dan **kwargs, cocoknya dipakai di mana?
Sebenarnya tergantung dari kasusnya.
Saat kita menggunakan **kwargs kita diharuskan membuat keyword atau kata kunci ke
dalam parameternya.
Seperti ini:
panggil(nama="Abhiyasa")
Untuk lebih jelasnya, silahkan perhatikan contoh program berikut:
# membuat fungsi dengan parameter *args
def kirim_sms(*nomer):
print nomer
# membuat fungsi dengan parameter **kwargs
def tulis_sms(**isi):
print isi
# Pemanggilan fungsi *args
kirim_sms(123, 888, 4444)
# pemanggilan fungsi **kwargs
tulis_sms(tujuan=123, pesan="apa kabar")
Hasil outputnya:
(123, 888, 4444)
{'tujuan': 123, 'pesan': 'apa kabar'}
Kita juga bisa memanggil fungsinya seperti ini:
# siapkan parameternya
list_nomer = [123, 888, 4444]
isi_sms = {'tujuan': 4444, 'pesan': 'mau daftar pak'}
71
# pemanggilan fungsi
kirim_sms(*list_nomer)
tulis_sms(**isi_sms)
Hasil ouutputnya juga akan sama.
Contoh Kasus di Dunia Nyata
Bagaimana contoh penggunaan *args dan **kwargs di dunia nyata?
Seperti yang telah kita ketahui, dengan *args dan **kwargs kita bisa membuat parameter
fungsi menjadi dinamis.
Salah satu contoh kasus penerapannya di dunia nyata: Fungsi untuk menghitung nilai rata‐
rata.
Karena data yang akan kita hitung nilai rata‐ratanya bersifat dinamis, maka kita harus
menggunakan *args atau **kwargs.
Contoh programnya:
# membuat fungsi rata‐rata
def rata_rata(*data):
banyak_data = len(data)
jumlah_data = sum(data)
nilai_rata_rata = float(jumlah_data) / float(banyak_data)
return nilai_rata_rata
print rata_rata(2,4,1,2,4,1,2,3,4,5,1,8,2)
Fungsi len() adalah fungsi untuk menghitung banyak data yang terdapat
dalam tuple atau list. Sedangkan fungsi sum() adalah fungsi untuk menjumlahkan semua
data‐nya.
Selanjutnya kita terapkan rumus nilai rata‐rata:
rata_rata = jumlah_data / banyak_data
Hasil outputnya:
72
3.0
73