Python juga dirancang ulang di Java dan .NET Virtual Machine
Install Python di Linux
Unduh installer Python untuk Unix/Linux di http://www.python.org/download. Kemudian. Unduh
source code Python yang dibungkus oleh zip dan ikuti alur pengunduhannya. Setelah diunduh
kemudian ekstrak installer tersebut. Kemudian masuk kedirektori installer Python. Jika ada
pengaturan khusus yang diinginkan, edit file Modules/Setup pada installer. Jika pengaturan sudah
sesuai jalankan perintah ./configure. Hal ini dilakukan untuk konfigurasi installer Python pada
sistem operasi kita. Setelah konfigurasi beres, jalankan perintah make untuk meng-compile
installer Python. Setelah itu baru jalankan perintah make install untuk memulai proses instalasi.
File ekskeusi Python akan diinstall di /usr/local/bin dan library nya diinstall di
/usr/local/bin/pythonX.X. Kemudian jangan lupa untuk lakukan pengaturan path agar bisa
2dieksekusi di shell. Berikut adalah beberapa pengaturan path pada beberapa shell :
pengaturan path di shell bash : export PATH = “$PATH:/usr/local/bin/python” kemudian
tekan enter
pengaturan path di shell csh : setenv PATH = “$PATH:/usr/local/bin/python” kemudian
tekan enter
pengaturan path di shell ksh : PATH = “$PATH:/usr/local/bin/python” kemudian tekan enter
Selain memakai source code Python dan diinstall secara manual seperti diatas. Anda bisa
menginstall Python melalui packet manager jika sistem operasi yang Anda gunakan mendukung
fitur tersebut seperti Ubuntu, Slackware, dan Fedora.
Di beberapa sistem operasi kadang sudah tertanam di dalamnya dan langsung bisa digunakan
seperti di Ubuntu dan Fedora.
Install Python di Windows
Unduh Python dari http://www.python.org/download. Kemudian unduh installer Python untuk
Windows. Setelah berhasil mengunduh, klik dua kali installer tersebut. Ikuti alurnya sampai selesai.
Setelah berhasil biasanya hasil instalasi Python disimpan di direktori C:/PythonX.X dimana X.X
adalah versi dari Python yang digunakan.
Kemudian agar Python bisa dieksekusi di cmd, akses Control Panel → System → Advanced →
Environment Variables → Klik variabel yang dinamakan PATH di bagian System Variables
kemudian pilih dan edit, tambahkan ;C\PythonX.X tanpa tanda petik. Kemudian tekan OK, dan
siap dijalankan di cmd
32. Cara memakai Python
memakai Python Interpreter Prompt dan Teks Editor
Untuk memakai Python, kita bisa memilih dua cara yang umum digunakan, yaitu lewat Python
Interpreter Prompt dan mengeksekusi file Python dari command line. Anda bisa memakai
interpreter prompt untuk sekedar menulis program kecil, atau menguji coba modul – modul yang
dimiliki Python. Untuk memakai nya jika sistem operasi Anda sudah di-install Python, coba
panggil perintah python melalui command line. Dan jika pengaturan path-nya sudah sesuai, akan
muncul gambar seperti berikut:
<< gambar 2.1 python interpreter prompt >>
Untuk keluar dari mode interpreter prompt, gunakan kombinasi ctrl+d atau ctrl+z kemudian tekan
enter.
Lalu jika ingin memakai Python tanpa melalui interpreter prompt, Anda bisa memakai
text editor yang Anda sering gunakan dan simpan file Python dengan ekstensi file *.py .Kemudian
atur jarak tab pada text editor tersebut sebanyak empat satuan dan isi tab tersebut diganti dengan
spasi atau memilih menu “replace by space”. Berikut adalah beberapa contoh text editor yang bisa
digunakan untuk membuat program Python beserta menu untuk pengaturan tab.
4Tampilan antarmuka Geany dan tempat pengaturan indentasinya :
<< gambar 2.2 Geany dan pengaturan tab-nya>>
Tampilan antarmuka GEdit dan tempat pengaturan indentasinya :
<< gambar 2.3 GEdit dan pengaturan tab-nya>>
5Tampilan antarmuka Komodo Edit dan tempat pengaturan indentasinya :
<< gambar 2.4 KomodoEdit dan pengaturan tab-nya >>
Jika Anda belum pernah belajar pemrograman Anda bisa gunakan GEdit atau Geany untuk
membuat file Python. Jika sudah pernah belajar pemrograman, Anda bisa pilih text editor manapun
sesuai selera.
Mencetak Informasi dengan Function “print”
Output digunakan pada program untuk memberikan feedback dan keadaan sebuah program, misal
hasil perhitungan, pertanyaan, daftar pengguna, dan grafik.. Tapi dalam sebuah program konsol,
output biasanya berupa teks yang dicetak dengan memakai function tertentu pada sebuah
bahasa pemrograman. Di Python untuk mencetak teks ke layar digunakanlah function print.
Function print ini akan mencetak string yang diinginkan. Ada banyak cara dalam memakai
print, berikut adalah contoh penggunaan print dalam sebuah program konsol :
listing : pakai_python_1.py
# mencetak sebuah kalimat
6print "Aku sedang belajar bahasa pemrograman python"
# mencetak angka
print 6666
# mencetak variabel
sebuah_variabel = "Life is never float"
print sebuah_variabel
# mencetak langsung sebuah operasi bilangan
panjang = 10
lebar = 5
print (2 * panjang) + (2 * lebar)
# mencetak sebuah variabel dan string dengan memakai koma
nama = "Mario"
# dicetak diakhir
print "Nama saya adalah ", nama
# dicetak ditengah
print "Saya memainkan game Super ", nama, " bersama adik saya"
# dicetak diawal
print nama, " adalah karakter utama dalam permainan Super ", nama
# mencetak banyak baris
print "Belajar bahasa pemrograman"
print "Python itu mudah sekali"
print "karena sudah mempunyai dokumentasi yang lengkap"
# mencetak banyak baris dalam satu kali print
print "Belajar bahasa pemrograman \nPython itu mudah sekali \nkarena sudah mempunyai
dokumentasi yang lengkap"
# mencetak variabel pada string dengan format string
panjang = 10
lebar = 5
keliling = (2 * panjang) + (2 * lebar)
print "keliling dari (2 * %d) + (2 * %d) adalah %d " % (panjang, lebar, keliling)
Jika kode diatas dieksekusi, akan tampil output seperti berikut :
7<< gambar 2.5 hasil eksekusi pakai_python_1.py >>
Menerima Masukan Data dengan Function “raw_input” dan “input”
Selain output tentu saja dalam membuat sebuah program Anda membutuhkan fitur untuk meminta
input dari user . Fitur tersebut berguna untuk menciptakan interaksi antara user dan program yang
Anda bangun. Di Python, untuk menerima input ada beberapa cara yang biasa digunakan :
raw_input, function ini berguna untuk menerima input dari user yang akan selalu dikonversi
kedalam string. Misal Anda memberikan input berupa “Belajar Python”. Maka data tersebut akan
ditampung sebagai string utuh. Kemudian pada raw_input, terdapat satu parameter yang akan
dijadikan pertanyaan atau perintah tertulis saat meminta input. Jika Anda ingin memberikan input
berupa angka, saat memasukkan angka tersebut tidak boleh lebih dari satu angka. Hal ini
disebabkan karena ketika memakai raw_input, sekalipun yang diberikan adalah angka tetap
akan dianggap string. Apabila Anda memberikan input satu angka kepada raw_input, Anda harus
mengkonversinya dengan function int, float, long, atau beberapa function konversi ke angka
lainnya sesuai dengan kebutuhan yang diinginkan. Coba perhatikan kode dibawah ini :
listing : pakai_python_2.py
nama = raw_input('masukkan nama anda : ')
panjang = raw_input("panjang : ")
lebar = raw_input("y : ")
8print "Nama Anda adalah ", nama
luas = int(panjang) * int(lebar)
print " %d * %d = %d" % (int(panjang), int(lebar), luas)
Jika kode diatas dieksekusi, maka akan muncul output seperti berikut :
<< gambar 2.6 hasil eksekusi pakai_python_2.py >>
input, function ini digunakan untuk menerima input sesuai dengan data yang diberikan oleh user.
Tidak seperti raw_input yang menerima input dan dianggap string. Saat memberikan input kepada
raw_input, Anda tidak perlu memakai aturan penulisan untuk tipe data tertentu. Sedangkan di
input Anda harus mengikuti aturan penulisan untuk memasukkan input dari tipe data tertentu.
Sebagai contoh dibawah terdapat beberapa contoh aturan penulisan saat akan memberikan data
dengan tipe data tertentu kepada input.
listing : pakai_python_3.py
9# meminta input boolean : coba masukkan True
variabel_bool = input('masukkan data boolean : ')
print "isi variabel_bool : ", variabel_bool
# meminta input float : coba masukkan 3.14
variabel_float = input('masukkan data float : ')
print "isi variabel_float : ", variabel_float
# meminta input string : coba masukkan “lagi belajar python”
variabel_string = input('masukkan data string : ')
print "isi variabel_string : ", variabel_string
# meminta input octal : coba masukkan 010
variabel_octal = input('masukkan data octal : ')
print "isi variabel_octal : ", variabel_octal
# meminta input hexa : coba masukkan 0x114
variabel_hexa = input('masukkan data hexa : ')
print "isi variabel_hexa : ", variabel_hexa
# meminta input long : coba masukkan 123456789123456789L
variabel_long = input('masukkan data long : ')
print "isi variabel_long : ", variabel_long
# meminta input dictionary : coba masukkan {'nama':'luffy', 'hobi':'makan', 'asal':'east blue'}
variabel_dict = input('masukkan data dictionary : ')
print "isi variabel_dict : ", variabel_dict
# meminta input list : coba masukkan [1, 2, 3, 4, 5]
variabel_list = input('masukkan data list : ')
print "isi variabel_list : ", variabel_list
# meminta input tuple : coba masukkan (1, 2, 3, 4, 5)
variabel_tuple = input('masukkan data tuple : ')
print "isi variabel_tuple : ", variabel_tuple
Jika kode diatas dieksekusi, akan muncul output seperti berikut :
10
<< gambar 2.7 hasil eksekusi pakai_python_3.py >>
Contoh diatas memperlihatkan sebuah perbedaan penggunaan raw_input dengan input. Data
yang didapat dari raw_input harus dikonversikan dengan built-in function untuk tipe data tertentu.
Sedangkan data yang didapat dari input tidak perlu dikonversikan, tapi saat memasukkan data harus
mengikuti aturan penulisan untuk tipe data tertentu.
Hal Lain yang Harus Diingat dalam Penggunaan Python
Selain itu terdapat beberapa karakter khusus yang dinamakan escape character. Berikut adalah
daftar beberapa escape character yang terdapat di Python :
Escape Character Heksadesimal Keterangan
\a 0x07 bel
\b 0x08 backspace
\f 0x0c formfeed
\e 0x1b escape
\n 0x0a newline
\t 0x09 tab
\v 0x0b Vertical tab
\r 0x0d Carriage return
\nnn Notasi oktal, dimana n
11
Escape Character Heksadesimal Keterangan
merupakan rentang
angka dari 0 sampai 7
\xnn Notasi heksadesimal,
dimana n merupakan
rentang dari 0..9, a..f,
atau A..F
Pada kode diatas listing pakai_python_1.py, terdapat sebuah simbol %d di dalam perintah print.
Simbol tersebut dinamakan string formatter yang berfungsi untuk mencetak data sesuai dengan
format yang diinginkan pada string yang disisipi simbol tersebut. Berikut adalah daftar beberapa
string formatter yang disediakan Python:
Simbol Keterangan
%c Mencetak karakter
%s
Mencetak data dari jenis apapun
menjadi string
%i, %d Mencetak angka desimal bertanda
%u Mencetak angka desimal tak bertanda
%o Mencetak angka oktal
%x, %X
Mencetak angka heksa dengan huruf
kecil, Mencetak angka heksa dengan
huruf besar
%f Mencetak angka real berkoma
%e, %E
Mencetak tanda eksponensial dengan
huruf kecil, mencetak tanda
eksponensial dengan huruf besar
%g, %G
Fungsi hampir sama dengan %f dan
%e hanya saja pencetakan angka di
belakang koma lebih pendek,
pencetakan tanda eksponensial
memakai huruf besar
Kemudian tak lupa kalau di Python sendiri saat sedang memakai interpreter prompt,Anda bisa
memakai function help() untuk melihat struktur sebuah objek atau perintah – perintah di
Python. Misal Anda bisa melihat bantuan tentang perintah print maka Anda harus mengetikkan:
>> help('print')
12
The ``print`` statement
***********************
print_stmt ::= "print" ([expression ("," expression)* [","]]
| ">>" expression [("," expression)+ [","]])
``print`` evaluates each expression in turn and writes the resulting
object to standard output (see below). If an object is not a string,
it is first converted to a string using the rules for string
conversions. The (resulting or original) string is then written. A
space is written before each object is (converted and) written, unless
the output system believes it is positioned at the beginning of a
line. This is the case (1) when no characters have yet been written
to standard output, (2) when the last character written to standard
output is a whitespace character except ``' '``, or (3) when the last
write operation on standard output was not a ``print`` statement. (In
some cases it may be functional to write an empty string to standard
output for this reason.)
Note: Objects which act like file objects but which are not the built-in
file objects often do not properly emulate this aspect of the file
object's behavior, so it is best not to rely on this.
A ``'\n'`` character is written at the end, unless the ``print``
statement ends with a comma. This is the only action if the statement
contains just the keyword ``print``.
Standard output is defined as the file object named ``stdout`` in the
built-in module ``sys``. If no such object exists, or if it does not
have a ``write()`` method, a ``RuntimeError`` exception is raised.
``print`` also has an extended form, defined by the second portion of
the syntax described above. This form is sometimes referred to as
"``print`` chevron." In this form, the first expression after the
``>>`` must evaluate to a "file-like" object, specifically an object
that has a ``write()`` method as described above. With this extended
form, the subsequent expressions are printed to this file object. If
the first expression evaluates to ``None``, then ``sys.stdout`` is
used as the file for output.
(END)
Untuk keluar dari mode bantuan tersebut tekan tombol “q”. Sekarang kita coba lihat bantuan
mengenai struktur data list:
13
>> help('list')
Help on class list in module __builtin__:
class list(object)
| list() -> new empty list
| list(iterable) -> new list initialized from iterable's items
|
| Methods defined here:
|
| __add__(...)
| x.__add__(y) <==> x+y
|
| __contains__(...)
| x.__contains__(y) <==> y in x
|
| __delitem__(...)
| x.__delitem__(y) <==> del x[y]
|
| __delslice__(...)
| x.__delslice__(i, j) <==> del x[i:j]
|
| Use of negative indices is not supported.
|
| __eq__(...)
:[]
Dengan demikian sekalipun tidak ada koneksi internet, Anda tetap bisa terus membuat program
Python dengan dibantu help() yang sudah disediakan oleh Python.
Tipe data yang terdapat pada kode – kode diatas akan dijelaskan lebih lanjut pada bab berikutnya.
14
3. Mengenal Tipe Data dan Operator
Tipe Data di Python
Variabel menyimpan data yang dilakukan selama program dieksekusi dan isinya dapat diubah oleh
operasi – operasi tertentu pada program yang memakai variabel tersebut.
Di dalam Python, terdapat beberapa tipe data yang cukup unik bila dibandingkan dengan bahasa
pemrograman seperti C, Java, dan yang lainnya. Tipe data pada Python adalah sebagai berikut :
Boolean, contoh True and False
Complex, pasangan angka real dan imajiner, misalnya 1 + 5j
Date, bilangan yang dapat dikonversi menjadi format tanggal, misalnya 26-09-2013
Float, bilangan yang mempunyai koma, misalnya 3.14, 6.387
Hexadecimal, bilangan dalam format heksa, misalnya 7b, 4d2
Integer, bilangan bulat, misalnya 10, 20, 30, 15, 37
Long, bilangan bulat yang panjang, misal 123456789123456789L
None, data yang tidak terdefinisi tipe data apapun
String, data yang berisi kalimat. Bisa dibentuk dengan diapit tanda ' dan ', atau diapit “ dan
“, atau diapit “”” dan “”” untuk membentuk paragraf.
List, sebuah data berupa untaian yang menyimpan berbagai tipe data dan isinya bisa diubah.
Lebih lengkapnya akan dibahas di bab 6.
Tuple, sebuah data berupa untaian yang menyimpan berbagai tipe data tapi isinya tidak bisa
diubah. Lebih lengkapnya akan dibahas di bab 6.
Dictionary, sebuah data berupa untaian yang menyimpan berbagai tipe data berupa pasangan
penunjuk dan nilai. Lebih lengkapnya akan dibahas di bab 6.
Objek, sebuah data yang berisi atribut dan method. Lebih lengkapnya akan dibahas di bab
10
Operator – Operator di Python
Selain variabel diatas, terdapat juga beberapa operator untuk pemrosesan data di Python. Agar lebih
memahami seperti apa cara kerja operator dipython, bukalah console python dan coba contoh
disamping penjelasan tiap operator. Berikut operator yang ada di Python :
1. Aritmatika (Arithmetic Operator)
Oper
ator
Penjelasan Contoh
+ Penjumlahan, menambahkan dua buah
operan
a, b = 10, 5
hasil = a + b
15
Oper
ator
Penjelasan Contoh
# hasil akan 15
print “hasil : “, hasil
-
Pengurangan, mengurangka operan
disebelahkiri operator dengan operan di
sebelah kanan operator
a, b = 10, 8
hasil = a – b
# hasil akan 2
print “hasil : “, hasil
*
Perkalian, mengalikan operan di sebelah
kiri dengan operan di sebelah kanan
operator
a, b = 3, 5
hasil = a * b
# hasil akan 15
print “hasil : “, hasil
/
Pembagian, membagi operan di sebelah
kiri dengan operan disebelah kanan
operator
a, b = 4, 2
hasil = a / b
# hasil akan 2
print “hasil : “, hasil
%
Modulus, mendapatkan sisa pembagian
dari operan di sebelah kiri operator ketika
dibagi oleh operan di sebelah kanan
a, b = 11, 2
hasil = a % b
# hasil akan 1
print “hasil : “, hasil
**
Pemangkatan, memangkatkan operan
disebelah kiri operator dengan operan di
sebelah kanan operator
a, b = 11, 2
hasil = a ** b
# hasil akan 121
print “hasil : “, hasil
//
Pembagian bulat, prosesnya sama seperti
pembagian. Hanya saja angka dibelakang
koma dihilangkan
a, b = 11, 2
hasil = a // b
# hasil akan 5
print “hasil : “, hasil
2. Perbandingan (Comparison Operator)
Oper
ator
Penjelasan Contoh
==
Memeriksa apakah kedua nilai (operan)
yang dibandingkan sama atau tidak. Jika
sama akan dikembalikan nilai True jika
tidak sama akan dikembalikan nilai False.
a, b = 10, 10
# hasil akan True
print “hasil : “, a == b
16
Oper
ator
Penjelasan Contoh
!=
Memeriksa apakah kedua nilai yang
dibandingkan sama atau tidak. Jika tidak
sama akan dikembalikan nilai True jika
sama akan dikembalikan nilai False.
a, b,= 10, 8
# hasil akan True
print “hasil : “, a != b
c = 10
# hasil akan False
print “hasil : “, a != c
<>
Fungsinya sama dengan operator != a, b,= 10, 8
# hasil akan True
print “hasil : “, a <> b
c = 10
# hasil akan False
print “hasil : “, a <> c
>
Memeriksa apakah nilai di sebelah kiri
operator lebih besar dari nilai di sebelah
kanan operator
a, b = 4, 2
# hasil akan True
print “hasil : “, a > b
<
Memeriksa apakah nilai di sebelah kiri
operator lebih kecil dari nilai di sebelah
kanan operator
a, b = 2, 4
# hasil akan True
print “hasil : “, a < b
>=
Memeriksa apakah nilai di sebelah kiri
operator lebih besar dari nilai di sebelah
kanan operator atau memiliki nilai yang
sama
a, b = 4, 2
c = 4
# hasil akan True
print “hasil : “, a >= b
# hasil akan True
print “hasil : “, a >=c
# hasil akan False
print “hasil : “, b >= a
<= Memeriksa apakah nilai di sebelah kiri
operator lebih kecil dari nilai di sebelah
kanan operator atau memiliki nilai yang
sama
a, b = 4, 2
c = 4
# hasil akan False
print “hasil : “, a <= b
# hasil akan True
print “hasil : “, a <= c
# hasil akan True
17
Oper
ator
Penjelasan Contoh
print “hasil : “, b <= a
3. Penugasan (Assignment Operator)
Oper
ator
Penjelasan Contoh
=
Mengisikan nilai di sebelah kanan operator
ke nilai di sebelah kiri operator
a = 10
# hasil akan 10
print a
b = 15
# hasil akan 15
print b
+=
Menambahkan operan sebelah kiri
operator dengan operan sebelah kanan
operator kemudian hasilnya diisikan ke
operan sebelah kiri
a, b,= 10, 8
# hasil akan 18 sma dgn a = a + b
a += b
print “hasil : “, a
-=
Mengurangi operan sebelah kiri operator
dengan operan sebelah kanan operator
kemudian hasilnya diisikan ke operan
sebelah kiri
a, b,= 10, 8
# hasil akan 2 sma dgn a = a - b
a -= b
print “hasil : “, a
*=
Mengalikan operan sebelah kiri operator
dengan operan sebelah kanan operator
kemudian hasilnya diisikan ke operan
sebelah kiri
a, b,= 10, 8
# hasil akan 80 sma dgn a = a * b
a *= b
print “hasil : “, a
/=
Membagi operan sebelah kiri operator
dengan operan sebelah kanan operator
kemudian hasilnya diisikan ke operan
sebelah kiri
a, b,= 10, 5
# hasil akan 2 sma dgn a = a / b
a /= b
print “hasil : “, a
%=
Mengambil sisa bagi dari operan sebelah
kiri operator dengan operan sebelah kanan
operator kemudian hasilnya diisikan ke
operan sebelah kiri
a, b,= 10, 4
# hasil akan 2 sma dgn a = a % b
a %= b
print “hasil : “, a
**= Memangkatkan operan sebelah kiri a, b,= 10, 2
18
Oper
ator
Penjelasan Contoh
operator dengan operan sebelah kanan
operator kemudian hasilnya diisikan ke
operan sebelah kiri
# hasil akan 100 sma dgn a = a ** b
a **= b
print “hasil : “, a
//=
Membagi bulat operan sebelah kiri
operator dengan operan sebelah kanan
operator kemudian hasilnya diisikan ke
operan sebelah kiri
a, b,= 10, 4
# hasil akan 2 sma dgn a = a // b
a //= b
print “hasil : “, a
4. Biner (Bitwiser Operator)
Oper
ator
Penjelasan Contoh
&
Operator biner AND, memeriksa apakah
operan di sebelah kiri dan operan sebelah
kanan mempunyai angka biner 1 di setiap
bit. Jika keduanya bernilai 1 maka bit hasil
operasi akan bernilai 1
a, b = 13, 37
# a akan bernilai '0000 1101'
# b akan bernilai '0010 0101'
c = a & b
# c akan bernilai 5 = '0000 0101'
print c
|
Operator biner OR, memeriksa apakah
operan di sebelah kiri dan operan sebelah
kanan mempunyai angka biner 1 di setiap
bit. Jika salah satunya bernilai 1 maka bit
hasil operasi akan bernilai 1
a, b = 13, 37
# a akan bernilai '0000 1101'
# b akan bernilai '0010 0101'
c = a | b
# c akan bernilai 45 = '0010 1101'
print c
^
Operator biner XOR, memeriksa apakah
operan di sebelah kiri dan operan sebelah
kanan mempunyai angka biner 1 di setiap
bit. Jika keduanya bernilai 1 maka bit hasil
operasi akan bernilai 0
a, b = 13, 37
# a akan bernilai '0000 1101'
# b akan bernilai '0010 0101'
c = a ^ b
# c akan bernilai 40 = '0010 1000'
print c
~ Operator biner Negative, membalik nilai
bit. Misal dari 1 menjadi 0, dari 0 menjadi
1
a, b = 13, 37
# a akan bernilai '0000 1101'
19
Oper
ator
Penjelasan Contoh
# b akan bernilai '0010 0101'
<<
Operator penggeser biner ke kiri, deret bit
akan digeser ke kiri sebanyak n kali
a, b = 13, 37
# a akan bernilai '0000 1101'
# b akan bernilai '0010 0101'
# hasil bernilai 52 = ''0011 0100'
print a << 2
# hasil bernilai 148 = '1001 0100'
print b << 2
>>
Operator penggeser biner ke kanan, deret
bit akan digeser ke kanan sebanyak satu
kali
a, b = 13, 37
# a akan bernilai '0000 1101'
# b akan bernilai '0010 0101'
# hasil bernilai 3 = '0000 0011'
print a >> 2
# hasil bernilai 9 = '0000 1001'
print b >> 2
5. Logika (Logical Operator)
Oper
ator
Penjelasan Contoh
and
Jika kedua operan bernilai True, maka
kondisi akan bernilai True. Selain kondisi
tadi maka akan bernilai False
a, b = True, True
# hasil akan True
print a and b
or
Jika salah satu atau kedua operan bernilai
True maka kondisi akan bernilai True. Jika
keduanya False maka kondisi akan bernilai
False
a, b = True, False
# hasil akan True
print a or b
print b or a
print a or a
# hasil akan False
print b or b
not Membalikkan nilai kebeneran pada operan, a, b = True, False
20
Oper
ator
Penjelasan Contoh
misal jika asalnya True akan menjadi False
dan begitupun sebaliknya # hasil akan True
print not a
print not b
6. Keanggotaan (Membership Operator)
Oper
ator
Penjelasan Contoh
in
Memeriksa apakah nilai yang dicari berada
pada list atau struktur data python lainnya.
Jika nilai tersebut ada maka kondisi akan
bernilai True
sebuah_list = [1, 2, 3,4 ,5]
print 5 in sebuah_list
not
in
Memeriksa apakah nilai yang dicari tidak
ada pada list atau struktur data python
lainnya. Jika nilai tersebut tidak ada maka
kondisi akan bernilai True
sebuah_list = [1, 2, 3,4 ,5]
print 10 not in sebuah_list
7. Identitas (Identity Operator)
Oper
ator
Penjelasan Contoh
is
Memeriksa apakah nilai di sebelah kiri
operan memiliki identitas memori yang
sama dengan nilai di sebelah kanan operan.
Jika sama maka kondisi bernilai True
a, b = 10, 10
# hasil akan True
print a is b
is
not
Memeriksa apakah nilai di sebelah kiri
operan memiliki identitas memori yang
berbeda dengan nilai di sebelah kanan
operan. Jika berbeda maka kondisi bernilai
True
a, b = 10, 5
# hasil akan True
print a is not b
Prioritas Eksekusi Operator di Python
Dari sekian banyaknya operator yang telah disebutkan, masing – masing mempunyai prioritas
pemroresan yang dapat dilihat pada tabel berikut. Prioritas tersebut makin ke bawah makin akhir
untuk dieksekusi. Paling atas adalah yang akan didahulukan daripada operator lain, sedangkan
paling bawah adalah operator yang paling terakhir dieksekusi :
21
Operator Keterangan
** Aritmatika
~, +, - Bitwise
*, /, %, // Aritmatika
+, - Aritmatika
>>, << Bitwise
& Bitwise
^, | Bitwise
<=, <, >, >= Perbandingan
<>, ==, != Perbandingan
=, %=, /=, //=,
-=, +=, *=,
**=
Penugasan
is, is not identitas
in, not in membership
not, or, and logika
22
4. Membuat Pemilihan Kondisi
Penggunaan Operator Kondisional dan Logika pada Keyword “if”
Dalam kehidupan sehari – hari pasti Anda menentukan pilihan untuk memulai sebuah aksi di pagi
hari. “Kalau hari ini ga hujan saya akan main tenis”, “Kalau ada ongkos nanti nonton Man of Steel”,
“Kalau ga hujan dan ada ongkos nanti mau pergi makan ramen”. Disadari atau tidak, pengandaian
atau kondisional sudah menjadi bagian dari hidup Anda secara otomatis saat sebelum melakukan
sebuah tugas.
Dalam pemrograman pun demikian ada mekanisme dimana program akan menentukan aksi – aksi
sesuai kondisi dari input atau nilai – nilai yang diproses selama program berjalan langsung.
Pemilihan kondisi ini membutuhkan nilai “True” jika aksi yang diinginkan dibawah kondisi tersebut
dieksekusi. Jika nilainya “False”, maka akan diperiksa kondisi lain yang sesuai atau akan langsung
ke bagian program yang tidak memeriksa kondisi.
Di Python, terdapat beberapa keyword untuk membuat sebuah pemilihan kondisi. Ada if, elif, else.
Tidak memerlukan kurawal atau penutup pada blok if tersebut. Sebuah statement akan dianggap
blok if jika indentasinya lebih satu tab dari jumlah tab if diatasnya. Sebuah if akan diawali tanda
titik dua baru dibawahnya terdapat kode program yang akan dieksekusi jika kondisi terpenuhi.
Dalam membuat pemilihan kondisi Anda juga membutuhkan operator logika (and, not, or) dan
perbandingan (==, <=, >=, >, <, <>, !=) untuk menyusun kondisi yang Anda butuhkan.
Berikut adalah contoh penggunaan if di Python. Contoh berikut memakai beberapa operator
perbandingan untuk melihat hasil perbandingan dua buah angka. Dalam program berikut beberapa
kondisi yang terpenuhi akan dieksekusi.
listing : kondisional_1.py
print "Masukkan dua buah angka.."
print "Dan Anda akan check hubungan kedua angka tersebut"
angka1 = raw_input("Masukkan angka pertama : ")
angka1 = int(angka1)
angka2 = raw_input("Masukkan angka kedua : ")
angka2 = int(angka2)
if angka1 == angka2 :
print "%d sama dengan %d" % (angka1, angka2)
if angka1 != angka2 :
print "%d tidak sama dengan %d" % (angka1, angka2)
23
if angka1 < angka2 :
print "%d kurang dari %d" % (angka1, angka2)
if angka1 > angka2 :
print "%d lebih dari %d" % (angka1, angka2)
if angka1 <= angka2 :
print "%d kurang dari sama dengan %d" % (angka1, angka2)
if angka1 >= angka2 :
print "%d lebih dari sama dengan %d" % (angka1, angka2)
Cobalah berbagai angka sebagai test case dan amati hasilnya. Misal Anda masukkan angka 10 dan 5
Maka hasilnya akan terdapat beberapa kondisi yang dieksekusi :
<< gambar 4.1 hasil eksekusi kondisional_1.py >>
Penggunaan “else” pada “if”
Keyword else digunakan dalam blok if untuk menampung berbagai kondisi yang berlawanan
dengan kondisi pada if sebelumnya. Keyword else ini membutuhkan blok if atau elif diatasnya.
Tanpa kedua keyword tadi, else tidak dapat digunakan. Berikut ini terdapat contoh penggunaan else,
mari kita coba.
listing : kondisional_2.py
24
print "Masukkan dua buah angka.."
print "Dan Anda akan check hubungan kedua angka tersebut"
angka1 = raw_input("Masukkan angka pertama : ")
angka1 = int(angka1)
angka2 = raw_input("Masukkan angka kedua : ")
angka2 = int(angka2)
if angka1 == angka2 :
print "%d sama dengan %d" % (angka1, angka2)
else:
print "%d tidak sama dengan %d" % (angka1, angka2)
cobalah masukkan dua angka berbeda dan amati hasilnya. Misalkan Anda memasukkan angka 10
dan 5 maka akan tampil hasil seperti berikut :
<< gambar 4.2 hasil eksekusi kondisional_2.py >>
Penggunaan “elif” pada “if”
Jika pada kondisional_1.py beberapa blok if akan dieksekusi, karena tidak ada pilihan lain pada
masing – masing blok if. Pada contoh berikutnya beberapa if akan digabung dan membentuk
sebuah blok if yang lebih besar karena adanya elif. Keyword elif ini berfungsi untuk membuat
multi kondisional. Jadi jika kondisi di if paling atas tidak sesuai maka kondisi yang ada dibawahnya
akan diperiksa dan jika cocok akan dieksekusi. Pada contoh berikutnya jika kondisi sudah sesuai
25
pada blok teratas maka blok tersebutlah yang akan dieksekusi, berbeda dengan contoh pada
kondisional_1.py karena terdiri dari beberapa blok if yang dianggap berbeda oleh Python. Untuk
lebih jelasnya mari coba kode berikut
listing : kondisional_3.py
print "Masukkan dua buah angka.."
print "Dan Anda akan check hubungan kedua angka tersebut"
angka1 = raw_input("Masukkan angka pertama : ")
angka1 = int(angka1)
angka2 = raw_input("Masukkan angka kedua : ")
angka2 = int(angka2)
if angka1 == angka2 :
print "%d sama dengan %d" % (angka1, angka2)
elif angka1 != angka2 :
print "%d tidak sama dengan %d" % (angka1, angka2)
elif angka1 < angka2 :
print "%d kurang dari %d" % (angka1, angka2)
elif angka1 > angka2 :
print "%d lebih dari %d" % (angka1, angka2)
elif angka1 <= angka2 :
print "%d kurang dari sama dengan %d" % (angka1, angka2)
elif angka1 >= angka2 :
print "%d lebih dari sama dengan %d" % (angka1, angka2)
Coba masukkan dengan angka 10 dan 20, maka blok if yang dieksekusi hanya blok kedua yang
berisi kondisi angka1 tidak sama dengan angka 2. Jelas berbeda dengan kode yang ada di
kondisional_1.py. Untuk lebih jelasnya coba perhatikan gambar berikut
26
<< gambar 4.3 hasil eksekusi kondisional_3.py >>
Penggunaan “else” pada “if”
Misal ada sebuah kondisi seperti berikut, “Kalau saya punya uang saya akan pergi ke taman
bermain, Lalu kalau uangnya cuma 10.000 cuma bakal naik komedi putar, kalau uangnya 20.000
bakal naik komedi putar dan bom bom car”. Jika Anda perhatikan setelah kondisi pertama ada
kondisi lagi yang masih berada dibawah kondisi pertama. Kondisi semacam ini dapat disebut
dengan kondisi bersarang (nested if).
Di Python, untuk membuat sebuah blok if di dalam if, maka blok if yang ingin disimpan di dalam
sebuah if harus mempunyai satu tab lebih dibanding if sebelumnya. Anda dapat membuat if
bersarang di dalam if bersarang hingga tingkat sedalam yang Anda inginkan.
Agar lebih paham mari Anda coba kode berikut :
listing : kondisional_4.py
username = raw_input("masukkan username : ")
password = raw_input("masukkan password : ")
username_from_db = "user"
password_from_db = "admin"
if username == username_from_db :
if password == password_from_db :
27
print "Username dan password cocok "
else:
print "Password salah "
else:
print "User tidak terdaftar"
Pada contoh diatas, Anda diminta masukan berupa “username” dan “password”. Kemudian ada
sebuah variabel yang diasumsikan mengambil data “username” dan “password” dari database. Blok
if akan memeriksa apakah user sudah sesuai atau belum, jika tidak sesuai maka akan ditampilkan
“User tidak terdaftar”. Jika “username” sesuai maka kondisi selanjutnya adalah memeriksa
“password” jika sesuai maka akan muncul notifikasi “Username dan password cocok”, jika tidak
sesuai maka akan muncul notifikasi “Password salah”. Lebih jelasnya perhatikan gambar berikut :
<< gambar 4.4 hasil eksekusi kondisional_4.py >>
28
5. Menyusun Pengulangan
Mengenal Pengulangan “for” dan “while”
Seperti pada bahasa pemrograman lainnya, Python memiliki mekanisme pengulangan untuk
menjalankan pekerjaan – pekerjaan yang berulang. Pada umumnya pengulangan terdiri dua jenis.
Ada pengulangan yang terbatas dan tidak terbatas. Pengulangan terbatas biasanya dilakukan
pengulangan dari 1 hingga kesekian kali (n kali). Perulangan terbatas memakai for. Sedangkan
pengulangan tidak terbatas memakai while. Dalam pengulangan memakai while
pengulangan akan terus dilakukan selama kondisional dalam perulangan while tetap dalam keadaan
true jika dalam keadaan false maka pengulangan while akan berhenti.
Menyusun Pengulangan dengan “for”
Kita melangkah ke pengulangan yang terbatas dulu yah. Dalam pengulangan for, tidak seperti di
bahasa pemorgraman C atau Java yang memakai nilai incremental untuk melakukan
pengulangan. Di Python, for melakukan pengulangan dengan meng-iterasi elemen dari sebuah list.
List ini dapat berisi kumpulan karakter, kumpulan string, kumpulan angka, atau kumpulan data
jenis lainnya yang disediakan Python. (Untuk lebih lengkapnya di bab berikutnya akan dibahas
lebih jauh tentang List di Python).
Misal disini ada sebuah list yang berisi [1, 2, 3, 4, 5], ( sebuah list diawali oleh tanda '[' dan ditutup
oleh tanda ']' ). Banyaknya elemen pada list tersebut menentukan banyaknya pengulangan yang
akan dilakukan saat melakukan pengulangan. Mari kita lihat implementasinya pada kode dibawah
ini :
listing : kode pengulangan_1.py
# pengulangan sebanyak 5 kali
for i in [1, 2, 3, 4, 5]:
print "Ini pengulangan ke - ", i
Pada contoh diatas, akan dicetak teks “ini pengulangan ke - “ sebanyak 5 kali. Nilai 'i' pada
pengulangan tersebut akan selalu berganti nilainya setiap tahap pengulangan dilakukan. Misal
ketika pengulangan pertama, nilai 'i' akan berisi 1, ketika pengulangan kedua, nilai 'i' akan berisi 2,
begitu seterusnya sampai elemen terakhir. Jika kode diatas dieksekusi akan menampilkan hasil
seperti pada gambar dibawah ini :
29
<< gambar 5.1 hasil eksekusi pengulangan_1.py >>
Selain memakai list yang berisi angka, List yang berisi string dapat digunakan juga untuk
melakukan pengulangan for di Python. Misal terdapat list yang berisi seperti berikut [“Rawon”,
“Nasi Kuning”, “Soto Madura”, “Kupat Tahu”, “Kerak Telor”, “Rendang Batoko”, “Pempek
Selam”, “Ayam Betutu”], dalam list tersebut terdapat elemen sebanyak delapan jenis masakan
nusantara. Dengan demikian ketika pengulangan for memakai list masakan tadi, pengulangan
akan dijalankan sebanyak delapan kali. Mari Anda lihat implementasinya pada kode dibawah ini :
listing : kode pengulangan_2.py
# pengulangan sebanyak 8 kali
for i in ["Rawon", "Nasi Kuning", "Soto Madura", "Kupat Tahu", "Kerak Telor", "Rendang
Batoko", "Pempek Selam", "Ayam Betutu"] :
print i, " adalah masakan khas nusantara …"
Kode diatas jika dieksekusi akan terlihat seperti gambar dibawah ini :
<< gambar 5.2 hasil eksekusi pengulangan_2.py >>
30
Sekarang Anda coba contoh terakhir dengan memakai string. String pada dasarnya merupakan
list karakter. Misal terdapat string seperti berikut “abcde”. Jika string tersebut digunakan pada
pengulangan for, maka akan terjadi pengulangan sebanyak lima kali. Coba lihat kode dibawah ini :
listing : kode pengulangan_3.py
# pengulangan sebanyak 5 kali
for i in "abcde":
print i, " adalah alfabet"
Kode diatas jika dieksekusi akan terlihat seperti gambar dibawah ini :
<< gambar 5.3 hasil eksekusi pengulangan_3.py >>
Memahami Function “range”
Kalau teman – teman memperhatikan list yang dipakai pada pengulangan_1.py, pengulangan
tersebut memakai list angka yang sudah jadi atau di-hardcode. Nah bagaimana nih kalau
ingin membentuk suatu pola atau ingin membuat list incremental agar pengulangan for di Python
ini mirip di Java atau C. Di Python terdapat fungsi yang bernama range. Range ini menghasilkan
deret angka dengan parameter (start, stop, step). Start adalah batasawal dari list, stop adalah batas
akhir dari list, step adalah jarak antar angka yang dihasilkan oleh range. Ada beberapa kasus
penting yang perlu diperhatikan saat memakai range. Coba perhatikan kode dibawah ini :
listing : kode pengulangan_4.py
# pengulangan_4.py
# kasus - 1 : jika step tidak disertakan maka step akan diisi 1 secara default
print range(1, 10)
# kasus - 2 : jika step disertakan maka step akan sesuai dengan angka yang diisikan
31
print range(1, 10, 2)
print range(1, 10, 3)
print range(1, 10, 4)
print range(1, 10, 5)
# kasus - 3 : jika step melebihi stop maka list hanya akan berisi start
print range(1, 10, 11)
# kasus - 4 : jika start lebih besar nilainya daripada stop maka list akan kosong
print range(10, 1)
# kasus - 5 : jika start lebih besar nilainya daripada stop dan
# jika step melebihi stop maka list akan kosong
print range(10, 1, 2)
print range(10, 1, 11)
# kasus - 6 : jika start lebih besar daripada stop dan step bernilai minus
# dan jika start dikurangi step menghasilkan angka positif
# maka list akan berisi deret angka menurun
print range(10, 1, -1)
# kasus - 7 : jika start lebih besar daripada stop dan step bernilai minus
# dan jika start dikurangi step bernilai minus maka list hanya akan berisi start
print range(10, 1, -11)
# kasus - 8 : jika step bernilai 0 maka akan terjadi error
print range(1, 10, 0)
# kasus - 9 : jika start lebih besar daripada stop dan step bernilai 0 maka akan terjadi error
print range(10, 1, 0)
Kode diatas jika dieksekusi akan terlihat seperti gambar dibawah ini :
<< gambar 5.4 hasil eksekusi pengulangan_4.py >>
32
memakai Function “range” pada Pengulangan “for”
Bagaimana dengan pengenalan range diatas ? Mudah kan ? Nah sekarang Anda akan coba
memakai range dalam pengulangan for. Coba perhatikan contoh berikut :
listing : kode pengulangan_5.py
for i in range(1, 10):
print "ini pengulangan ke - ", I
Pada contoh diatas akan terjadi pengulangan sebanyak 10 kali terhadap statement dibawah for.
Dengan memakai range, Anda tidak perlu repot untuk membuat list terlebih dahulu untuk
menentukan banyaknya pengulangan yang akan Anda lakukan terhadap statement.Jika kode diatas
dieksekusi akan terlihat seperti gambar dibawah ini :
<< gambar 5.5 hasil eksekusi pengulangan_5.py >>
Agar lebih memahami lagi pengulangan for, kita coba lagi pelajari dua contoh berikut. Berikut ada
kasus membuat sebuah segitiga yang dibuat dari kumpulan bintang dan membuat baris bilangan
prima. Untuk lebih jelasnya coba perhatikan dua kasus berikut :
listing : kode pengulangan_6.py
# pengulangan_6.py
for i in range(0, 10):
for j in range (0, i+1):
if j == i:
print "x"
33
else:
print "*",
print ""
Kode diatas jika dieksekusi akan tampil seperti berikut :
<< gambar 5.6 hasil eksekusi pengulangan_6.py >>
Kemudian dibawah ini adalah kode program untuk mencari bilangan prima. Bilangan prima adalah
bilangan yang hanya bisa dibagi 1 dan bilangan itu sendiri
listing : kode pengulangan_7.py
# pengulangan_7.py
for i in range(1, 20):
count_zero_remainder = 0
for j in range(1, i+1):
num_remainder = i % j
#print num_remainder,
if num_remainder == 0:
count_zero_remainder = count_zero_remainder + 1
if count_zero_remainder == 2:
print i, " adalah bilangan prima"
else:
print i, " bukanlah bilangan prima"
Kode diatas jika dieksekusi akan tampil seperti berikut :
34
<< gambar 5.7 hasil eksekusi pengulangan_7.py >>
Menyusun Pengulangan dengan “while”
Sekarang kita akan bahas pengulangan yang memakai while. Pengulangan while memiliki cara
kerja selama kondisi tertentu bernilai true maka pengulangan akan diteruskan sampai kondisi
bernilai false. Tentunya dalam kondisi yang dipakai untuk eksekusi while memerlukan operator
logika dan perbandingan seperti yang sudah di jelaskan di bab 3.
sebagai contoh coba lihat kode berikut. Kode berikut dieksekusi apabila variabel “angka” masih
dibawah 10.
listing : kode pengulangan_8.py
angka = 0
while (angka < 10):
print "Aku sudah berjalan sebanyak ", angka, " langkah "
angka += 1
Kode diatas jika dieksekusi akan tampil seperti pada gambar berikut ini :
35
<< gambar 5.8 hasil eksekusi pengulangan_8.py >>
Pada contoh diatas kondisi untuk melakukan pengulangan ditaruh di while. Sekarang Anda coba
taruh kondisi pengulangan di dalam pengulangannya. Coba lihat contoh berikut :
listing : kode pengulangan_9.py
terus_tanya = True
while terus_tanya :
temp = raw_input('masukkan angka kurang dari 10 !! : ')
angka = int(temp)
if angka < 10:
terus_tanya = False
else:
terus_tanya = True
<< gambar 5.9 hasil eksekusi pengulangan_9.py >>
Untuk memahami pengulangan while lebih lanjut, berikut terdapat contoh penjumlahan angka dari
1 sampai 10. Dalam pengulangan ini terdapat sebuah variabel jml_angka yang berfungsi untuk
menampung angka – angka yang akan ditambahkan dengan angka berikutnya di setiap
36
pengulangan. Coba perhatikan kode dibawah ini :
listing : kode pengulangan_10.py
i = 1
jml_angka = 0
while i <= 10:
print 'loop ke - %d : %d + %d' % (i, jml_angka, i)
jml_angka = jml_angka + i
i += 1
print 'total angka yang dijumlahkan : ', jml_angka
kode diatas jika dieksekusi akan tampi seperti pada gambar berikut ini :
<< gambar 5.10 hasil eksekusi pengulangan_10.py >>
37
6. Mengenal Data Struktur Python Tingkat Lanjut
Mengenal List, Dictionary dan Tuple
Data yang kompleks biasanya dapat menampung objek atau entitas yang banyak. Misal ada sebuah
toples yang berisi banyak permen dengan ragam jenisnya. Dalam sebuah toples dapat saja ada
permen rasa asem, permen rasa stroberi, permen rasa nanas, permen rasa asem lagi, dan rasa
lainnya. Tapi bukan hanya menyimpan entitas yang banyak saja, struktur data pun ada yang
menyimpan jaringan sebuah graf, antrian, tumpukan, dan banyak lagi tipe lainnya.
Di Python sendiri, terdapat beberapa tipe struktur data yang dapat digunakan oleh penggunanya.
Tapi tiga tipe data yang umum digunakan, diantaranya list, tuple, dan dictionary. Ketiga tipe data
struktur ini sangat membantu sekali bagi programmer Python yang membutuhkan tipe data banyak.
Ketiga tipe data ini adalah objek Python yang berarti jika Anda mendefinisikan struktur data
tersebut, Anda dapat memakai method – method yang berhubungan dengan pengolahan
struktur data tersebut. Selain itu terdapat pula function untuk mengolah tiga struktur data tadi
seperti mencari nilai max, min, hitung panjang, dan perbandingan isi.
Untuk mendefinisikan sebuah list Anda cukup buat sebuah variabel dengan nama yang diinginkan,
kemudian isi variabel tersebut dengan list yang akan dibuat. List diawali dengan tanda '[' dan
diakhiri dengan tanda ']'. Isinya dapat beragam, dapat string, number, object, bahkan list lagi.
Pemisah antara data yang satu dengan yang lainnya digunakan tanda koma. List dapat ditambah
isinya, dirubah data pada elemennya, hapus elemen, dan hapus seluruh list.
Hampir sama dengan list, tuple diawali dengan tanda '(' dan ')'. Elemen pada tuple tidak dapat
dihapus dan diubah. Maka dari itu tuple disebut immutable sequence. Lebih jelasnya nanti Anda
akan lihat perbedaan tuple dengan list.
Beda halnya antara dengan list dan tuple, pada dictionary setiap data akan memiliki pengenalnya
masing – masing. Pengenal tersebut dinamakan dengan key dan datanya dinamakan dengan value.
Dictionary diawali dengan tanda '{' dan diakhiri dengan tanda '}'. Khusus untuk key pada dictionary,
nilainya harus berupa tipe data yang tidak dapat diganti seperti tuple, string dan number. Tapi
umumnya key berisi number dan string. Karena jika Anda mencoba memasukkan tipe data yang
mutable, akan keluar peringatan 'unhashable type' saat mendefinisikan dictionary yang key-nya
berupa tipe data mutable.
Agar lebih paham mari Anda coba mendefinisikan list, tuple, dan dictionary kedalam sebuah
variabel.
listing : strukdat_1.py
# cara mendefinisikan list
sebuah_list = ['Zorin OS',
38
'Ubuntu',
'FreeBSD',
'NetBSD',
'OpenBSD',
'Backtrack',
'Fedora',
'Slackware']
# cara mendefinisikan tuple
sebuah_tuple = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# cara mendefinisikan dictionary
sebuah_dictionary = {'nama':'Wiro Sableng',
'prodi':'ilmu komputer',
'email':'wirosableng@localhost',
'website':'http://www.sitampanggarang.com'
}
print sebuah_list
print sebuah_tuple
print sebuah_dictionary
Dengan memakai perintah print maka Anda dapat mencetak isi list, tuple, atau dictionary
yang hasil keluarannya berupa string.
<< gambar 6.1 hasil eksekusi strukdat_1.py >>
Cara Akses List, Tuple, dan Dictionary
Setelah Anda mengenal cara membuat ketiga struktur data tersebut, sekarang Anda coba cara
mengakses elemen – elemen pada struktur data tersebut. Ada beberapa cara mengakses elemen pada
struktur data tersebut yang biasa dilakukan misalnya mengakses salah satu elemen dengan
39
memakai indeks, slicing indeks, dan mengakses elemen lewat pengulangan.
Untuk akses elemen lewat indeks elemen Anda panggil nama list kemudian disusul indeks elemen
yang Anda inginkan dengan diapit tanda baca “[“ dan “]”, misal ada sebuah list dengan nama
daftar_barang kemudian ingin mengakses indeks ke – 10, maka pemanggilan indeks pada list
tersebut adalah daftar_barang[9]. Kenapa di pemanggilan indeks nya dari 9 ? karena indeks
tersebut diawali dari 0 sehingga indeks yang diinginkan akan dikurangi 1. Begitupun dengan tuple
cara akses salah satu elemenya sama dengan cara akses salah satu elemen di list. Pada dictionary,
untuk mengakses salah satu elemennya Anda panggil salah satu key-nya untuk mendapatkan data
yang ditunjuk key tersebut.
Slicing indeks merupakan cara untuk mengakses beberapa elemen pada list dan tuple. Cara ini tidak
dapat dilakukan di dictionary. Slicing indeks dilakukan dengan memanggil list atau tuple kemudian
tentukan indeks awal slicing dan batas akhirnya. Kemudian indeks tersebut dipisahkan dengan
tanda “:” dan diapit oleh tanda “[“ dan “]”. Misal ada sebuah list daftar_barang kemudian ingin
mengambil 10 datanya dari indeks ke – 2 maka pemanggilannya adalah daftar_barang[1:11].
Berikutnya cara terakhir yang biasa dilakukan oleh untuk mengakses elemen secara keseleruhan
adalah dengan melalui pengulangan for. Melalui cara tersebut, isi dari list, tuple, dan dictionary
dapat diambil elemennya selama iterasi pada pengulangan for. Pada list dan tuple jika datanya
diambil lewat pengulangan for, setiap elemen akan langsung diekstrak di setiap iterasi dan dapat
digunakan untuk keperluan pemrosesan pada proses di setiap iterasi. Kalau pada dictionary di setiap
iterasi pengulangan bukan elemen yang diektrak tapi key-nya. Jadi saat ingin mengambil datanya
Anda harus memanggil elemen dictionary tersebut dengan key yang didapatkan disetiap iterasi.
Dibawah ini adalah contoh mengakses elemen dari list, tuple dan dictionary dengan tiga cara yang
biasa dipakai programmer python.
listing : strukdat_2.py
# cara mendefinisikan list
sebuah_list = ['Zorin OS',
'Ubuntu',
'FreeBSD',
'NetBSD',
'OpenBSD',
'Backtrack',
'Fedora',
'Slackware']
# cara mendefinisikan tuple
sebuah_tuple = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# cara mendefinisikan dictionary
sebuah_dictionary = {'nama':'Wiro Sableng',
'prodi':'ilmu komputer',
'email':'wirosableng@localhost',
'website':'http://www.sitampanggarang.com'
}
40
# mengakses elemennya
print "mengakses salah satu elemen : "
print "-----------------------------"
print sebuah_list[5]
print sebuah_tuple[8]
print sebuah_dictionary['website']
print "\n\n"
# mengakses beberapa elemen
print "mengakses beberapa elemen : "
print "-----------------------------"
print sebuah_list[2:5]
print sebuah_tuple[3:6]
print "\n\n"
# mengakses elemennya dengan looping
print "mengakses semua elemen dengan looping for : "
print "-----------------------------"
for sebuah in sebuah_list:
print sebuah,
print "\n"
for sebuah in sebuah_tuple:
print sebuah,
print "\n"
for sebuah in sebuah_dictionary:
print sebuah, ':', sebuah_dictionary[sebuah],
Apabila Anda jalankan kode program diatas maka akan muncul output seperti pada gambar berikut
ini :
41
<< gambar 6.2 hasil eksekusi strukdat_2.py >>
Mengubah Isi List, Tuple, dan Dictionary
Ada waktunya Anda ingin mengubah salah satu elemen setelah mendefinisikan stuktur data. Misal
ada sebuah list daftar_barang dan Anda ingin mengubah elemen ke-7 dengan data baru yang
asalnya “kursi” menjadi “meja”. Atau ada sebuah informasi dalam bentuk dictionary dengan key
“nama” yang value asalnya “Son Go Ku” menjadi “Vash De Stampede”. Cara mengubah data salah
satu elemen di struktur data python mudah sekali. Tinggal tentukan indeks mana yang akan diubah,
kemudian masukkan nilai baru kedalam indeks tersebut. Lebih jelasnya coba lihat contoh berikut :
listing : strukdat_3.py
# cara mendefinisikan list
sebuah_list = ['Zorin OS',
'Ubuntu',
'FreeBSD',
'NetBSD',
'OpenBSD',
'Backtrack',
'Fedora',
42
'Slackware']
# cara mendefinisikan tuple
sebuah_tuple = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# cara mendefinisikan dictionary
sebuah_dictionary = {'nama':'Wiro Sableng',
'prodi':'ilmu komputer',
'email':'wirosableng@localhost',
'website':'http://www.sitampanggarang.com'
}
# cara update sebuah elemen :
print "cara update sebuah elemen : "
print "\n"
print sebuah_list
sebuah_list[5] = 'Kali Linux'
print sebuah_list
print "\n"
print sebuah_tuple
# tuple tidak dapat melakukan operasi perubahan elemen :D
#sebuah_tuple[5] = 100
print sebuah_tuple
print "\n"
print sebuah_dictionary
sebuah_dictionary['email'] = 'wiro.sableng@gmail.com'
print sebuah_dictionary
print "\n\n"
Mudah sekali kan ? Dengan mengakses indeks tertentu pada list dan tuple serta mengakses keys
tetentu pada dictionary, Anda dapat mengubah nilai pada indeks atau key tersebut dengan nilai yang
baru.
43
<< gambar 6.3 hasil eksekusi strukdat_3.py >>
Menambahkan Data pada List, Tuple, dan Dictionary
Ketiga struktur data inipun dapat ditambahkan data baru dari data semula. Pada list, digunakan
tanda “+” untuk menambahkan data dari list baru ke list lama. Begitupun dengan tuple, tanda “+”
digunakan untuk menambahkan data dari tuple baru ke tuple lama. Sedangkan pada dictionary
digunakan method update dari dictionary yang ingin ditambahkan data baru. Kemudian dictionary
semula akan memiliki data yang ditambahkan melalui method tersebut. Berikut adalah contoh
menambahkan data baru pada ketiga struktur data tersebut.
listing : strukdat_4.py
# cara mendefinisikan list
sebuah_list = ['Zorin OS',
'Ubuntu',
'FreeBSD',
'NetBSD',
'OpenBSD',
'Backtrack',
'Fedora',
44
'Slackware']
# cara mendefinisikan tuple
sebuah_tuple = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# cara mendefinisikan dictionary
sebuah_dictionary = {'nama':'Wiro Sableng',
'prodi':'ilmu komputer',
'email':'wirosableng@localhost',
'website':'http://www.sitampanggarang.com'
}
# cara menambahkan data baru
print "cara menambahkan data baru : "
print "\n"
print sebuah_list
list_baru = sebuah_list + ['PC Linux OS', 'Blankon', 'IGOS', 'OpenSUSE']
print list_baru
print "\n"
print sebuah_tuple
tuple_baru = sebuah_tuple + (100, 200, 300)
print tuple_baru
print "\n"
print sebuah_dictionary
dictionary_baru = {'telp':'022-12345678', 'alamat':'Bandung, Jabar'}
sebuah_dictionary.update(dictionary_baru)
print sebuah_dictionary
print "\n\n"
Kode diatas jika dieksekusi akan muncul tampilan seperti berikut ini :
45
<< gambar 6.4 hasil eksekusi strukdat_4.py >>
Menghapus Isi List, Tuple, dan Dictionary
Tidak lengkap rasanya bila dalam sebuah informasi ada yang tidak dapat dihapus. Terkadang ada
sebuah data yang tidak Anda butuhkan dan ingin Anda hilangkan dari kumpulan data yang dimiliki.
Misal dalam sebuah list Anda ingin menghapus salah satu elemen. Atau di dictionary, Anda ingin
menghilangkan salah satu key dari dictionary.tersebut. Di python sendiri penghapusan salah satu
elemen dapat dilakukan di list dan dictionary. Sedangkan tuple tidak mendukung penghapusan
elemen. Jika kita lakukan penghapusan pada salah satu elemen di tuple, maka akan muncul pesan
error : “TypeError: 'tuple' object doesn't support item deletion”. Pada list Anda tinggal menunjuk
salah satu elemennya dengan sebuah angka dari 0 sampai panjang list tersebut dikurangi satu
dengan diapit tanda “[“ dan “]”. Sedangkan pada dictionary Anda tunjuk salah satu key yang akan
dihapus dari dictionary. Berikut adalah contoh penghapusan salah satu elemen pada list dan
dictionary.
listing : strukdat_5.py
# cara mendefinisikan list
sebuah_list = ['Zorin OS',
46
'Ubuntu',
'FreeBSD',
'NetBSD',
'OpenBSD',
'Backtrack',
'Fedora',
'Slackware']
# cara mendefinisikan tuple
sebuah_tuple = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# cara mendefinisikan dictionary
sebuah_dictionary = {'nama':'Wiro Sableng',
'prodi':'ilmu komputer',
'email':'wirosableng@localhost',
'website':'http://www.sitampanggarang.com'
}
# cara delete sebuah elemen :
print "cara delete sebuah elemen : "
print "\n"
print sebuah_list
del sebuah_list[0]
print sebuah_list
print "\n"
print sebuah_tuple
# tuple tidak mendukung proses penghapusan elemen :D.(coba hilangkan tanda '#' disampingnya)
#del sebuah_tuple[8]
print sebuah_tuple
print "\n"
print sebuah_dictionary
del sebuah_dictionary['website']
print sebuah_dictionary
print "\n\n"
Kode diatas jika dieksekusi akan muncul tampilan seperti berikut :
47
<< gambar 6.5 hasil eksekusi strukdat_5.py >>
Menghapus List, Tuple, dan Dictionary
Pada contoh sebelumnya Anda hanya menghapus salah satu elemen. Lalu bagaimanakah jika ingin
menghapus keseluruhan struktur data sehingga struktur data tersebut terhapus dari memory
seluruhnya ?. Di Python dengan memakai perintah del pada sebuah struktur data maka struktur
data tersebut akan dihapus sepenuhnya dari memory. Hal ini berlaku juga bagi variabel dan objek
yang didefinisikan oleh programmer. Dengan hilangnya dari memory maka struktur data yang telah
dihapus tidak dapat digunakan lagi oleh program yang Anda bangun.
list : strukdat_6.py
# cara mendefinisikan list
sebuah_list = ['Zorin OS',
'Ubuntu',
'FreeBSD',
'NetBSD',
'OpenBSD',
'Backtrack',
'Fedora',
'Slackware']
# cara mendefinisikan tuple
48
sebuah_tuple = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# cara mendefinisikan dictionary
sebuah_dictionary = {'nama':'Wiro Sableng',
'prodi':'ilmu komputer',
'email':'wirosableng@localhost',
'website':'http://www.sitampanggarang.com'
}
# cara update sebuah elemen :
print "cara delete sebuah elemen : "
print "\n"
print sebuah_list
del sebuah_list
#print sebuah_list
print "\n"
print sebuah_tuple
del sebuah_tuple
#print sebuah_tuple
print "\n"
print sebuah_dictionary
del sebuah_dictionary
#print sebuah_dictionary
print "\n\n"
Cobalah hapus tanda “#” pada baris perintah print di bawah perintah del. Cobalah satu persatu dan
amatilah apa yang terjadi. Jika kita coba pada print sebuah_list yang berada dibawah del
sebuah_list. Maka akan muncul pesan error : “NameError : name 'sebuah_list' is not defined”
<< gambar 6.6 hasil eksekusi strukdat_6.py >>
49
memakai Built-in Function pada List, Tuple, dan Dictionary
Apakah fitur – fitur manipulasi list, tuple, dan dictionary hanya terbatas pada hapus, tambah dan
ubah ?. Python menyediakan beberapa fitur dasar lainnya yang dapat digunakan untuk proses
mencari nilai maksimum dan minimum, menghitung panjang, membandingkan dua buah struktur
data yang sejenis, bahkan mengubah struktur data dari list ke tuple atau sebaliknya.
Untuk mencari nilai maksimum pada list, tuple, atau dictionary digunakan function max(),
sedangkan untuk mencari nilai minimum digunakan function min(). Untuk perbandingan dua buah
struktur data sejenis, misal list dengan list, digunakanlah function cmp(). Function cmp() ini akan
menghasilkan tiga nilai yaitu -1 jika list pertama kurang dari list kedua, 0 jika kedua list sama, dan 1
jika list pertama lebih besar dari list kedua. Kemudian untuk mencari jumlah elemen yang berada
pada struktur data tersebut digunakan function len(). Dan terdapat juga untuk konversi tipe struktur
data. Tapi fitur ini hanya dapat digunakan pada list dan tuple. Dictionary tidak mendukung proses
konversi. Jadi hanya pengubahan dari list ke tuple dan sebaliknya. Untuk pengubahan dari list ke
tuple digunakan function tuple() sedangkan untuk pengubahan dari tuple ke list digunakan function
list().
Agar lebih paham cobalah sedikit source code tentang penggunaan built-in function yang digunakan
untuk manipulasi list, tuple, dan dictionary.
listing : strukdat_7.py
# cara mendefinisikan list
sebuah_list = ['Zorin OS',
'Ubuntu',
'FreeBSD',
'NetBSD',
'OpenBSD',
'Backtrack',
'Fedora',
'Slackware']
# cara mendefinisikan tuple
sebuah_tuple = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# cara mendefinisikan dictionary
sebuah_dictionary = {'nama':'Wiro Sableng',
'prodi':'ilmu komputer',
'email':'wirosableng@localhost',
'website':'http://www.sitampanggarang.com'
}
50
# menambahkan elemen baru
print "menambahkan elemen baru : \n"
print sebuah_list
list_baru = sebuah_list + ['PC Linux OS', 'Blankon', 'IGOS', 'OpenSUSE']
print list_baru
print "\n"
print sebuah_tuple
tuple_baru = sebuah_tuple
print tuple_baru
print "\n"
print sebuah_dictionary
dictionary_baru = {'telp':'022-12345678', 'alamat':'Bandung, Jabar'}
print sebuah_dictionary
print "\n\n"
# membandingkan yang lama dengan yang baru
print "membandingkan yang lama dengan yang baru : \n"
print "sebuah_list banding list_baru : ", cmp(sebuah_list, list_baru)
print "sebuah_tuple banding tuple_baru : ", cmp(sebuah_tuple, tuple_baru)
print "sebuah_dictionary banding dictionary_baru : ", cmp(sebuah_dictionary, dictionary_baru)
print "\n\n"
# mengetahui panjang list, tuple, dan dictionary
print "mengetahui panjang list, tuple, dan dictionary : \n"
print "panjang sebuah_list : ", len(sebuah_list)
print "panjang sebuah_tuple : ", len(sebuah_tuple)
print "panjang sebuah_dictionary : ", len(sebuah_dictionary)
print "\n\n"
# mengubah list, tuple, dictionary menjadi string
print "mengubah list, tuple, dictionary menjadi string : \n"
print str(sebuah_list), ' memiliki panjang karakter : ', len(str(sebuah_list))
print str(sebuah_tuple), ' memiliki panjang karakter : ', len(str(sebuah_tuple))
print str(sebuah_dictionary), ' memiliki panjang karakter : ', len(str(sebuah_dictionary))
# mencari nilai max dan min
print "mencari nilai max dan min : \n"
print "coba periksa sebuah_list :"
print "max : ", max(sebuah_list)
print "min : ", min(sebuah_list)
print "\n"
print "coba periksa sebuah_tuple :"
print "max : ", max(sebuah_tuple)
print "min : ", min(sebuah_tuple)
print "\n"
print "coba periksa sebuah_dictionary :"
51
print "max : ", max(sebuah_dictionary)
print "min : ", min(sebuah_dictionary)
print "\n"
# mengubah list ke tuple dan sebaliknya
print "mengubah list ke tuple : "
print "semula : ", sebuah_list
print "menjadi : ", tuple(sebuah_list)
print "\n"
print "mengubah tuple ke list : "
print "semula : ", sebuah_tuple
print "menjadi : ", list(sebuah_tuple)
Dengan adanya built-in function tersebut pekerjaan Anda sudah dimudahkan oleh Python dalam
memanipulasi struktur data yang telah Anda definisikan sebelumnya. Berikut adalah salah satu
contoh hasil operasi dengan built function dari kode diatas.
<< gambar 6.7 hasil eksekusi strukdat_7.py >>
52
7. Membuat Function
Pengenalan Function Tanpa “return”
Pada saat membuat program terkadang kita menyalin blok kode yang sama di baris berikutnya,
misal untuk mencetak sebuah biodata kita salin kembali kemudian ganti nilai – nilainya untuk
menampilkan biodata tersebut. Apakah harus menyalin blok kode di setiap bagian kode yang
membutuhkan kode tersebut ???. Waktu dulu kuliah Algoritma dan Pemrograman I, ketika
mempelajari pemrograman pertama kalinya, baris kode yang sama dipakai berulang – ulang untuk
mengeluarkan hasil tertentu. Tapi jadi tidak efisien, karena ukuran file program yang ditulis cukup
besar. Oleh karena itu hampir di setiap bahasa pemrograman terdapat fitur yang dinamakan
function. Nama lainnya method, sub routine, atau fungsi. Function ini berguna untuk penggunaan
kembali blok kode yang akan digunakan di baris kode lain. Sekali tulis tinggal panggil.
Function ini jelas beda dengan built-in function yang ada di Python. Built-in function sendiri adalah
function yang telah dibuatkan oleh pengembang bahasa pemrograman Python. Sedangkan function
dibuat oleh programmer yang memakai bahasa pemrograman Python, atau istilah lainnya user-
defined function.
Di Python untuk membuat function digunakan keyword def. Kemudian diikuti nama function yang
diinginkan lalu parameter yang dibutuhkan dengan diawali tanda “(“ dan “)”.Untuk membuka
function dimulai dengan tanda “:”. Tidak seperti di C, Java, atau PHP yang diawali dengan tanda
“{“ dan diakhiri “}” untuk membuka sebuah function. Lalu tutupnya ? Seperti dijelaskan diawal di
Python sendiri digunakan indentasi untuk menentukan apakah baris kode tersebut milik sebuah
function, if, atau pengulangan. Jadi jika Anda ingin menuliskan kode untuk function yang Anda
buat. Harus ada jarak satu indentasi agar kode tersebut dianggap sebagai kode dari function yang
Anda tulis. Kemudian Anda dapat menambahkan keyword return jika function yang Anda tulis
ingin mengembalikan nilai keluaran.
Berikut ada contoh tentang pembuatan function yang memiliki parameter dan tidak memiliki
parameter. Penggunaan return digunakan pada contoh berikutnya :
listing : fungsi_1.py
def fungsi_tanpa_parameter():
for i in range(1, 5):
print "looping ke - ", i
def fungsi_berparameter(batas_akhir):
for i in range(1, batas_akhir):
print "looping ke - ", i
53
print " contoh penggunaan fungsi tanpa parameter : "
print "hasil : ", fungsi_tanpa_parameter()
print "\n\n"
print " contoh penggunaan fungsi berparameter : "
print "hasil : ", fungsi_berparameter(10)
Sebuah function jika dipanggil langsung nilai keluarannya tidak akan dicetak. Tetapi jika dip