Data Loading...

Python Flipbook PDF

Python


128 Views
32 Downloads
FLIP PDF 624.16KB

DOWNLOAD FLIP

REPORT DMCA

Python

[email protected]

Copyright © 2003 IlmuKomputer.Com

IlmuKomputer.Com

Hendri

Serial Cepat Mahir

C e p at M ah i r

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Cepat Mahir Python Hendri [email protected]

Editor: Romi Satria Wahono [email protected] http://romisatriawahono.net

Lisensi Dokumen: Copyright © 2003 IlmuKomputer.Com Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.

-1- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Biografi Penulis Hendri. Saat ini sedang melanjutkan kuliah jenjang S1 di Universitas Bina Nusantara, Jakarta - Indonesia, Jurusan Tehnik Informatika. Sambil bekerja sebagai Application developer di PT Aspri Indonesia (menangani administrasi aplikasi Backoffice, dan membangun beberapa aplikasi dengan PHP, VB6 serta menggunakan DBMS Oracle dan Sun sollaris sebagai Platformnya). Pernah sebagai Developer Python PostgreSQL di PT Rab Indonesia, ikut serta membangun Interface Installer dalam Proyek BPPT kerjasama dengan PT Trustix. Saat ini juga sebagai penulis lepas dan Research and Development untuk Indolinux Magazine, Instruktur Freelance Korporat di beberapa perusahaan swasta. Di samping itu juga pernah mendevelop Aplikasi Pemerintahan untuk Kepegawaian (SIMPEG, Sistem Informasi Manajemen Kepegawaian) di Kabupaten Tulungagung. Aktif dalam organisasi IT diantaranya adalah INTIP(Information for Innovative Project) Informasi lebih lanjut tentang penulis ini bisa didapat melalui: Email: [email protected]

-2- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Daftar Isi Bab 1 Pengantar Python ........................................................ 9 1.1 Alur Eksekusi Program

____________________________________________ 13

1.2 Bagian program Python

____________________________________________ 13

1.3 Menggunakan Interpreter

____________________________________________ 14

1.4 Program singkat Hello Indonesia! ________________________________________ 15 1.5 Membuat script di Python

____________________________________________ 16

1.6 Struktur Identasi

____________________________________________ 17

1.7 Kecepatan Python

____________________________________________ 17

1.8 Python semi-compiled

____________________________________________ 18

Bab 2 Variabel dan Jenis Tipe Data ..........................................19 2.1 Nilai dan Tipe data

____________________________________________ 19

2.2 Variabel

____________________________________________ 20

2.3 Nama variabel dan kata kunci ___________________________________________ 21 2.4 Mengevaluasi ekspresi

____________________________________________ 22

2.5 Operator dan Operand

____________________________________________ 23

2.6 Operator Logika

____________________________________________ 24

2.7 Operator Modulus

____________________________________________ 25

2.8 Aturan pada operasi

____________________________________________ 26

2.10 Lists

____________________________________________ 28

2.10.1 Fungsi del .................................................................................................................................. 34

2.11 String

____________________________________________ 35

2.12 Tuples

____________________________________________ 36

2.13 Dictionaries

____________________________________________ 36

2.13.1 Mengakses dictionary .............................................................................................................. 37 2.13.2 Operasi pada dictionary.......................................................................................................... 37 2.13.3 Metode pada Dictionary.......................................................................................................... 38 2.13.4 Alias dan penggandaan ........................................................................................................... 39

-3- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Bab 3 Percabangan dan perulangan ...........................................41 3.1 Ekspresi Boolean

____________________________________________ 41

3.2 Perintah if

____________________________________________ 43

3.3 Perulangan for

____________________________________________ 47

3.4 Perulangan while

____________________________________________ 47

3.5 Fungsi range()

____________________________________________ 48

3.2.1 Perintah if berantai ................................................................................................................... 44 3.2.2 Kondisi bersarang....................................................................................................................... 46

3.6 Perintah break, continue dan else _______________________________________ 50 3.7 Perintah return

____________________________________________ 51

3.8 Rekursif

____________________________________________ 51

3.9 Rekursif tanpa batas

____________________________________________ 53

Bab 4 Fungsi ...................................................................55 4.1 Pemanggilan fungsi

____________________________________________ 55

4.2 Peubah tipe data

____________________________________________ 55

4.3 Membuat Fungsi baru

____________________________________________ 57

4.4 Alur eksekusi program

____________________________________________ 59

4.5 Argumen parameter

____________________________________________ 59

4.6 Variabel lokal dalam Fungsi 60

Bab 5 Modul ....................................................................62 Bab 6 Input/ Output dan Operasi File .........................................65 6.1 Input dari Keyboard

____________________________________________ 65

6.2 Membuka File

____________________________________________ 66

Bab 7 Konsep OOP Pada Python ...............................................73 7.1 Class

____________________________________________ 73

7.2 Inheritance (Turunan)

____________________________________________ 74

7.3 Constructor

____________________________________________ 76

Bab 8 Pesan Kesalahan (errors and exceptions) ..............................78 8.1 Penelusuran program

____________________________________________ 78

8.1.1 Kesalahan sintaks....................................................................................................................... 78 8.1.2 Runtime errors ........................................................................................................................... 79

-4- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

8.1.3 Kesalahan Algoritma.................................................................................................................. 79 8.1.4 Penulusuran kembali ................................................................................................................. 79 8.1.5 Penulisan Komentar................................................................................................................... 80 8.2 Pengecualian (exceptions)........................................................................................................... 80

8.3 Menangani pengecualian (Handling exceptions)____________________________ 81

Bab 9 Konektivitas Database ..................................................84 9.1 Instalasi PostgreSQL

____________________________________________ 84

9.2 Menambahkan user dan database ________________________________________ 84 9.4.1 Modul pg pada PygreSQL........................................................................................................... 86 9.4.2 pgobject ...................................................................................................................................... 87

Referensi .......................................................................92

-5- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Daftar Tabel 1. Operator pembanding

Daftar Gambar 1. Python 2. Uler kekek 3. Interpreter 4. Kompiler 5. Aplikasi Installer WinBI 1 6. Aplikasi Installer WinBI 2 7. Aplikasi XAlsakonfig 8. Flowchart-Umar 9. if-else 10.Kondisi berantai

-6- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Kata Pengantar Modul ini disediakan bagi pemula yang belum mengenal dan ingin mengetahui seluk-beluk pemograman di Linux. Ditujukan untuk pembaca tingkat awal sampai menengah. Penulis menunjuk bahasa pemograman Python sebagai interface bahasa pemograman yang akan di gunakan. Python selain dapat dengan mudah di pelajari, juga dapat digunakan untuk mengembangkan perangkat lunak secara cepat (RAD) Rapid Application Development.Aplikasi.

Aplikasi

yang

menggunakan

Python

integritasnya, seperti pembuatan WebServer stand-alone

1

juga

terjaga

atau Embedded

WebServer Zope (http://www.zope.org)), installer distribusi Linux RedHat, yang dikenal dengan Anaconda Installer (www.redhat.com) dan digunakan juga pada distribusi

Linux

Pemerintah

Indonesia

yang

bernama

WinBI

(http://www.software-ri.or.id/winbi). Perusahaan swasta di Indonesia juga telah mengembangkan

aplikasi

kasir

dan

rumah

sakit

di

Indonesia

(http://www.rab.co.id) dengan menggunakan python ini. Karena Python di open source khan, maka pendukung programmer Python banyak tersebar di dunia dan membuat modul - modul library tambahan sesuai dengan kebutuhan, juga tersedia modul - modul interface ke Relational Database Management System, seperti MySQL, PostgreSQL, Berkeley-DB dan lainnnya.Sintaks - sintaks yang mudah dipelajari, pemogramannya berorientasi objek dan mudah dibaca pengembang aplikasi, membuat Python banyak digunakan sebagai Aplikasi 1

Yang berarti dapat berjalan dengan WebServer Lainnya, misalnya Apache

-7- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Database, interface konsep CGI(Common Gateway Interface)2 untuk menggantikan bahasa pemograman Perl. Dengan keunggulan - keunggulan diatas, penulis menunjuk bahasa pemograman Python sebagai Interface bahasa pemograman yang paling mudah untuk dipelajari untuk pemula dalam pemograman sampai tingkat menengah.Akhir kata semua meteri yang terkandung dalam buku ini jauh dari sempurna, maka dari itu diminta partisipasi pembaca atas komentar, saran dan permintaan penyediaan modul yang belom ada di buku ini, agar bisa di lengkapi lebih lanjut dan untuk kemajuan kita bersama.. Terima kasih atas dukungannya,

Penulis, Hendri

2

Aplikasi yang berjalan di sisi Server

-8- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Bab 1 Pengantar Python Dalam bab ini akan dijelaskan konsep - konsep bahasa pemograman pada umumnya, untuk mengetahui dasar - dasar dari pemograman sebelum melangkah ke bahasa pemograman tingkat tinggi Python. Menjelaskan bagaimana sebuah program dapat ditulisi atau dieksekusi dan bagaimana proses yang berjalan di dalam program tersebut. Untuk menulisi suatu kode program dikenal dengan 2 jenis aplikasi, yaitu Interpreter dan Compiler. Dalam bab ini akan dijelaskan maksud dari aplikasi tersebut termasuk keuntungan dan kerugiannya.

Gambar: Python

Gambar: Uler kekek

-9- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Bahasa Pemograman yang akan Anda pelajari adalah Python, Python termasuk dari jajaran bahasa pemograman tingkat tinggi, lainnya Anda mungkin mengenal bahasa pemograman C, C++, Java, Perl dan Pascal. Bilamana terdapat bahasa pemograman tingkat tinggi, juga dikenal bahasa pemograman tingkat rendah, yang dikenal sebagai bahasa mesin yaitu bahasa pemograman Assembly, Kenyataannya Komputer hanya dapat mengeksekusi bahasa tingkat rendah, jadi bahasa pemograman tingkat tinggi harus melewati beberapa proses untuk diubah ke bahasa pemograman tingkat rendah, hal tersebut merupakan kelemahan yang tidak berarti bagi bahasa pemograman tingkat tinggi. Tetapi kekurangan tersebut tidak sebanding dengan kelebihannya. Pertama, lebih mudah memprogram sebuah aplikasi dengan bahasa tingkat tinggi. Lebih cepat, lebih mudah dimengerti menulis program komputer dengan bahasa tingkat tinggi, dan juga kesalahan dalam penulisan program cenderung tidak mengalami kesalahan yang berarti. Kedua bahasa pemograman tingkat tinggi lebih portable dalam arti bisa digunakan untuk menulis di berbagai jenis arsitektur komputer (seperti Intel 386, 486, 586, SPARC, RISC/6000) yang berlainan dengan sedikit modifikasi ataupun tidak memerlukan modifikasi sama sekali. Bahasa pemograman tingkat rendah hanya dapat berjalan di satu jenis arsitektur komputer dan harus ditulis ulang untuk menjalankannya di lain mesin, hal ini dikarenakan karena perbedaan urutan register dan services - servicesnya. Dengan keuntungan keuntungan tersebut, kebanyakan aplikasi - aplikasi komputer di tulis dengan bahasa pemograman tingkat tinggi. Penggunaan bahasa pemograman tingkat rendah hanya digunakan di aplikasi - aplikasi tertentu. Terdapat 2 jenis aplikasi untuk memproses bahasa tingkat tinggi ke bahasa tingkat rendah, yaitu : compiler dan interpreter. Sebuah interpreter membaca sebuah program yang ditulis dengan bahasa tingkat tinggi dan langsung menjalankannya per baris, memakan waktu sedikit. Gambar: Interpreter SOURCE CODE

INTERPRETER

OUTPUT

Sebuah kompiler menerjemahkan keseluruhan kode program sebelum menjalankan program tersebut. Dalam kasus ini kode tersebut disebut sebagai source code dan program yang diterjemahkan disebut dengan object code atau executable. Sekali program tersebut di kompilasikan, Anda dapat mengeksekusinya berulang kali tanpa menerjemahkannya lagi kedalam object code. -10- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Gambar: Kompiler SOURCE CODE

COMPILER

OBJECT CODE

EXECUTOR

OUTPUT

Bekerja pada modus baris perintah sangat baik untuk membuat program dan untuk mencoba - coba algoritma, karena Anda dapat langsung menjalankan perintah tersebut dan melihat hasilnya. Tetapi pada saat Anda ingin membuat program atau aplikasi yang real, Anda seharusnya menyimpan ke dalam bentuk script, jadi dapat Anda jalankan dan dimodifikasi untuk pengembangan program selanjutnya. Contoh aplikasi Python yang dapat kita temui adalah konfigurator - konfigurator dalam suatu distribusi, seperti Xconfigurator dan Installer Distribusi RedHat (Anaconda). Selain untuk melakukan konfigurasi - konfigurasi untuk sistem Linux, Python juga dapat membuat WebServer yang cukup terkenal yaitu Zope(Dapat dilihat di [ http://www.zope.org ]) dan pada aplikasi database suatu perusahaan swasta di Indonesia telah mengimplementasikan Python dengan PostgreSQL (Sistem Inventori, Rumah Sakit dan Kasir), Billing Warnet dalam bentuk OSCA juga dibuat dengan bahasa pemograman Python([ http://www.jakarta.linux.or.id ]), Updater RPM Version (swuf) yang dikeluarkan oleh Trustix dan XAlsaKonfigurator yang terdapat pada distribusi buatan Pemerintah Indonesia (WinBi). Gambar: Aplikasi Installer WinBI 1

-11- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Gambar: Aplikasi Installer WinBI 2

Gambar: Aplikasi XAlsakonfig

-12- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

1.1 Alur Eksekusi Program Sebuah program adalah sejumlah instruksi yang berisi perintah - perintah dalam bahasa pemograman komputer untuk menyelesaikan masalah dengan bantuan komputer. Masalah - masalah komputasi tersebut mungkin seperti permasalahan matematika, seperti menyelesaikan sebuah fungsi eksponen, rumus - rumus dalam matematika, tetapi dapat juga berupa mencari dan menggantikan teks, menyusun teks dalam dokumen, dan sebagainya. Beberapa komponen pada bahasa pemograman komputer mungkin berbeda - beda, tetapi beberapa instruksi umumnya sama di semua bahasa pemograman komputer. 1. input : Masukan dari keyboard, file, atau beberapa device. 2. ouput : Hasil / keluaran program ke monitor display, file, atau beberapa device. 3. math : Perhitungan matematika atau kalkulasi matematika seperti pengurangan, penjumlahan, perkalian, pembagian dan sebagainya. 4. kondisi : Memeriksa beberapa kondisi dan mengeksekusi beberapa perintah tertentu, sesuai dengan kondisi yang telah diperiksa. 5. Perulangan : Menjalankan beberapa perintah secara berulang - ulang kali, biasanya dengan beberapa variasi. Semua program yang Anda pernah pakai, betapapun rumitnya program tersebut dibuat dengan beberapa instruksi yang telah disebutkan di atas, walaupun kelihatannya sebuah program di bagi - bagi ke modul yang lebih kecil dan dari modul - modul tersebut dibagi - bagi lagi menjadi sub modul - sub modul untuk mengerjakan fungsi - fungsi dasar program tersebut. Ini yang kemudian di kenal dengan Algoritma, akan kita bahas selanjutnya. 1.2 Bagian program Python Python dikenal sebagai bahasa pemograman interpreter, karena Python dieksekusi dengan sebuah interpreter. Terdapat dua cara untuk menggunakan Interpreter,yaitu dengan mode baris perintah dan modus script. Pada mode baris perintah, Anda memanggil program Python dan sebuah interpreter langsung menampilkan hasilnya : > python Python 2.1.1 (#1, Sep 24 2001, 05:28:47)

-13- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

[GCC 2.95.3 20010315 (SuSE)] on linux2 Type "copyright", "credits" or "license" for more information. >>> print 1 + 1 2 Pada baris pertama pada contoh di atas, perintah python tersebut memanggil program interpreter Python, baris kedua dan selanjutnya menampilkan pesan dan versi dari Interpreter tersebut. baris kelima dengan tanda ">>>", adalah prompt dimana interpreter mengindikasikan bahwa interpreter telah siap untuk diberi perintah. Ketika kita ketikkan print 1 + 1, interpreter langsung meresponnya dengan tampilan output 2. Cara lain dari modus baris perintah adalah dengan menyimpan perintah - perintah python dalam satu file, yang disebut selanjutnya sebagai script. Contohnya kita mengetikkan perintah-perintah python dengan menggunakan text editor seperti vi, kwrite, emacs, dan lainnya. Pada umumnya file yang berisi script tersebut di simpan dengan extension / akhiran ".py".Misalnya, print 1 + 1 perintah tersebut kita simpan dengan nama file "contoh1.py", kemudian untuk mengeksekusinya kita panggil program interpreter python dengan cara : > python contoh1.py 2 maka interpreter mengeksekusi script tersebut dengan hasil 2. 1.3 Menggunakan Interpreter Interpreter Python biasanya di tempatkan di Lingkungan Linux "usr/bin/python". Tergantung di environment PATH nya, bisa dilihat dengan perintah env . PATH=/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/lib/java/bin:/usr/game s/bin:/usr/games:/opt/gnome/bin:/opt/kde2/bin:/opt/kde/bin:.:/opt/gnome/b in Pada Unix biasanya berada di /usr/local/bin, sedangkan untuk Linux biasanya di directory /usr/bin. Untuk keluar dari Interpreter Anda dapat menekan tombol kunci [Ctrl][d] . Jika tidak dapat keluar juga, Anda dapat mengetikkan perintah berikut :

-14- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

import sys sys.exit() 1.4 Program singkat Hello Indonesia! Biasanya, dalam mempelajari sebuah bahasa pemograman komputer, selalu diawali dengan program yang terkenal dengan program "Hello World!". Dalam Python, program tersebut dapat langsung dijalankan sebagai berikut: print "Hello Indonesia!" Hasilnya akan menampilkan string "Hello World!" sebagai berikut : Hello Indonesia! Bandingkan dengan Kedua bahasa pemograman di bawah ini :

Java :

class helloindonesia { public static void main(String argsp[]) { System.out.println(“Hello Indonesia”); } }

C/C++ :

# Untuk C #include int main() { printf(“Hello Indonesia!”); return 0; } #Untuk C++ #include int main() { cout >> print 4 4 Bila Anda tidak yakin dengan tipe data yang Anda sebutkan, interpreter dapat memberitahu Anda yaitu dengan menggunakan fungsi built_in type() yang ada bersama interpreter. >>> type ("Hello World!")

>>> type 5

Lebih lanjut, angka desimal dengan tanda (.) dibelakang angka dikenal dengan bilangan pecahan atau float karena angka tersebut merepresentasikan suatu bentuk dengan nama floating point. >>> type (6.5)

Bagaimana dengan nilai "17.5" dan "5"? Mereka seperti angka - angka, tetapi mereka berada di dalam tanda kutip ("), nah! berarti mereka adalah string. >>> type ("17.5")

-19- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

>>> type ("5")

Pada saat Anda ingin menuliskan nilai integer yang besar, Anda mungkin menggunakan koma diantara 3 kelompok digit, seperti 1,000,000. Angka tersebut bukan integer yang baik di Python, tetapi itu bisa dilakukan di Python: >>> print 1,000,000 1 0 0 Itu bukan tampilan yang kita harapkan bukan? contoh di atas menunjukan bahwa 1,000,000 adalah sebuah tuple (larik / baris), kita akan membahas hal tersebut di bab selanjutnya, jadi sekarang jangan lupa untuk tidak menempatkan koma pada integer - integer Anda. 2.2 Variabel Fitur yang paling kuat dalam sebuah bahasa pemograman komputer adalah kemampuan untuk memanipulasi variabel - variabel. Sebuah variabel adalah sebuah nama yang mempunyai sebuah nilai. Pengdeklarasian kalimat membuat sebuah variabel - variabel baru dan memberinya nilai. >>> pesan = "nasi goreng satu!" >>> banyak = 4 >>> phi = 3.14159 Pada contoh di atas, pendeklarasian tersebut menciptakan 3 variabel baru. Pendeklarasian pertama, menunjukkan string "nasi goreng satu!" ke sebuah variabel yang bernama pesan. Kedua, variabel banyak diberi nilai 4 sebagai integer. Dan yang terakhir variabel phi diberi nilai 3.14159 sebagai nilai pecahan. Cara yang umum untuk pemberian nama variabel adalah dengan tanda panah menunjuk ke nilai variabel tersebut. Jenis ini dinamai dengan state diagram karena menunjukkan nilai - nilai yang merupakan nilai dari variabel - variabel tersebut, contohnya : pesan

=> "nasi goreng satu!"

banyak => 4

-20- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

phi

=> 3.14159

perintah print juga berlaku untuk kalimat di atas. >>> print pesan nasi goreng satu! >>> print banyak 4 >>> print phi 3.14159 Dalam kasus ini, hasilnya adalah nilai dari masing - masing variabel yang disebutkan, kita dapat meminta interpreter untuk memeriksanya. >>> type pesan

>>> type banyak

>>> type phi

Tipe dari variabel tersebut adalah tipe data dari nilai yang ada di variabel tersebut. 2.3 Nama variabel dan kata kunci Pada umumnya, programmer memakai nama variabel sesuai dengan keterangan isi dari variabel tersebut. Nama variabel dapat berupa acak atau bisa apa saja. Dapat berupa angka atau huruf, tetapi harus diawali dengan huruf. Dapat berupa huruf Kapital juga, tetapi harus diingat di Python merupakan case-sensitive, nama Kapital dengan kapital adalah variabel yang berlainan. Tanda garis bawah (_) dapat muncul di sebuah nama variabel. tanda garis bawah tersebut biasanya digunakan untuk kata - kata yang lebih dari satu, seperti nama_saya, nama_kamu, harga_komputer_di_dusit. Jika Anda memberikan nama variabel yang sama, Anda mendapatkan sebuah kesalahan sintaks: -21- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

>>> 123satu = "angka" SyntaxError: invalid syntax >>> lebih$ = 50000 SyntaxError: invalid syntax >>> class = "Pemograman dengan Python" SyntaxError: invalid syntax variabel 123satu adalah penamaan variabel tidak benar karena diawali dengan sebuah angka, lebih$ juga tidak benar karena terdapat karakter yang tidak semestinya ada dalam penamaan variabel, lalu bagaimana dengan class ? class adalah salah satu kata kunci di bahasa pemograman Python. Kata kunci mendefinisikan aturan -aturan dan struktur bahasa, dan mereka tidak dapat digunakan sebagai nama variabel. Python mempunyai 28 kata kunci: and

continue

else

for

import

not

raise

assert

def

except

from

in

or

return

break

del

exec

global is

pass

try

class

elif

finally

if

print

while

lambda

Anda mungkin ingin menyimpan daftar - daftar ini, pada saat interpreter mengeluarkan kesalahan sintaks dari salah satu nama variabel Anda dan Anda tidak mengetahui penyebabnya, lihat mereka pada daftar ini. 2.4 Mengevaluasi ekspresi Sebuah ekspresi adalah kombinasi dari nilai - nilai, variabel - variabel dan operator - operator. Jika Anda mengetikkan sebuah ekspresi pada modus baris perintah, interpreter langsung mengevaluasinya dan menampilkan hasilnya: >>> 1 + 1 2 Sebuah nilai juga dikenal sebagai sebuah ekspresi, begitu juga dengan variabel.

-22- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

>>> 65 65 >>> x 8 Tetapi ingat !, mengevaluasi sebuah ekspresi tidak sama dengan mencetak sebuah nilai. >>> pesan = "nasi goreng satu!" >>> pesan "nasi goreng satu!" >>> print pesan nasi goreng satu! Pada saat Python menampilkan nilai dari sebuah ekspresi, format yang sama juga akan digunakan untuk mengambil sebuah nilai. Contoh kasus pada strings, yang berarti tanda kutip 2 (") juga di tampilkan pada saat mengevaluasi sebuah nilai. Tetapi pada saat mengeksekusi perintah print, print menampilkan nilai dari string tersebut (tanpa tanda kutip 2(")). Pada sebuah script, sebuah ekspresi dapat pula berupa kalimat perintah yang benar, tetapi tidak akan menghasilkan nilai dan tampilan hasil apapun. Contohnya: 17 3.2 "Hello World!" 1 + 1 tidak menghasilkan nilai apapun sama sekali. 2.5 Operator dan Operand operator adalah simbol-simbol khusus yang merepresentasikan komputasi seperti penambahan dan perkalian. Nilai yang digunakan oleh operator, kemudian disebut sebagai operand.

-23- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Berikut adalah ekspresi - ekspresi yang benar dalam Python. 20+3

hour-1

hour*60+minute

minute/60 5**2 (5+9)*(15-7)

Simbol-simbol +, -, *,/ dan kurung buka dan kurung tutup adalah ekspresi matematika sehari - hari dan dapat berlaku di Python, tanda asteriks (*) berarti perkalian dan tanda asteriks 2(**) berarti tanda eksponen (pangkat). Pada saat variabel ditempatkan sebagai operand, maka variabel tersebut digantikan dengan nilai dari variabel sebelum perintah tersebut dijalankan. Anda mungkin akan terheran - heran dengan pembagian, operasi berikut menghasilkan hasil yang tidak kita inginkan. >>> minute = 66 >>> minute / 60 1 nilai yang seharusnya muncul adalah 1.1 bukan 1. Hal ini dikarenakan Python melakukan pembagian integer. Karena integer di bagi integer akan menghasilkan nilai integer, maka kita harus melakukan pembagian pecahan dengan cara membuat salah satu operand menjadi float. >>> minute = 66.0 >>> minute / 60 1.1000000000000001 2.6 Operator Logika Terdapat 3 operator logika, yaitu and, or, dan not . Arti ketiga operator logika tersebut sama halnya dengan arti yang sebenarnya dalam bahasa inggris, Misalnya x > 8 and x < 20 adalah benar jika kedua kondisi tersebut terpenuhi keduanya dalam arti jika x lebih besar dari 8 dan lebih kecil dari 20 . x % 2 == 0 or x % 3 == 0 menghasilkan nilai true jika salah satu di antara kedua kondisi tersebut benar, dan nilai itu akan benar jika nilai x dapat dibagi dengan 2 atau 3. operator not me-negasikan sebuah ekspresi boolean, jadi not (x > y) mempunyai nilai true, jika if (x > y) mempunyai nilai false . Operan - operan dalam operator logika harus dalam bentuk ekspresi boolean, -24- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

tetapi Python tidak terlalu menegaskan hal tersebut. Semua angka yang bukan merupakan bilangan nol (0) di interpretasikan sebagai kondisi true (benar) atau mempunyai nilai 1(satu). Misalnya : >>> x = 5 >>> x and 1 1 >>> y = 0 >>> y and 1 0 2.7 Operator Modulus Operator modulus bekerja pada bilangan integer (dan ekspresi integer) yang berarti bahwa menghasilkan nilai sisa hasil operan pertama dibagi dengan operan kedua. Di Python, operator modulus di wakili simbol persentase (%). Sintaksnya sama dengan operator - operator lain pada umumnya. >>> pembagian = 5 / 3 >>> print pembagian 1

>>> sisa = 5 / 3 print sisa 2 Jadi 5 dibagi 3 hasilnya adalah 1 sisa 2, Modulus operator memiliki kegunaan yang menarik yakni untuk memeriksa suatu angka dapat dibagi dengan angka yang lainnya, Jika x % y menghasilkan nilai 0 maka x dapat dibagi dengan y, contoh fungsi genap : def genap (bil): for i in range(bil): if (i % 2) == 0 :

-25- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

if i != 0 : print i fungsi tersebut akan menampilkan angka - angka genap. Perulangan for akan di bahas pada bab selanjutnya, lalu bagaimana dengan fungsi prima? def prima (bil): for i in range (2, bil +1): for a in range (2, a + 1): if (i % a) == 0

:

break if i == a: print i 2.8 Aturan pada operasi Jika terdapat lebih dari satu operator dalam sebuah ekspresi, maka aturan pada operasi tergantung dari aturan presedansi. Python mengikuti aturan presedansi dari presedansi matematika pada umumnya : 1. Operasi yang berada di dalam kurung memiliki nilai presedensi yang tinggi, dan operasi yang di dalam kurung tersebut di proses terlebih dahulu. Misalnya 4 * (5+4) maka hasilnya sama dengan 36, ditambahkan terlebih dahulu 5 dan 4, kemudian baru dikalikan dengan 4. 2. Kemudian nilai presedensi yang tinggi setelah dalam kurung, adalah tanda pangkat, misalnya 3**2 + 8 adalah 17 bukan 13. dan 3 *1**4 hasilnya sama dengan 3 bukan 12. 3. Pembagian dan perkalian memiliki nilai presedansi yang sama, didahulukan terlebih dahulu dibandingkan dengan penambahan dan pengurangan, misalnya 1 + 3 * 2 hasilnya adalah 7 bukan 8.Penambahan dan pengurangan juga memiliki nilai presedensi yang sama. 4. Apabila terdapat satu atau lebih operator yang memiliki presedensi yang sama, maka yang diproses terlebih dahulu adalah bagian sebelah kiri sampai ke kanan, dalam kata lain di evaluasi dari kiri ke kanan, misalnya 4 + 5 - 2 hasilnya adalah 7, 4 *3 / 2 hasilnya adalah 6.

-26- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

2.10 Operasi pada String Pada umumnya, Anda tidak dapat melakukan operasi matematika pada string, walaupun string tersebut berupa angka. Berikut adalah contoh - contoh yang salah. "nasi goreng satu!" + 1 pesan * 5 "7" + 2 Tetapi operator tambah (+) dapat berlaku sesama string, walaupun tidak seperti yang dilakukan pada operasi matematika. Pada operator tambah (+) dalam operasi string, operator tambah (+) dapat diasumsikan sebagai penggabungan antara dua string atau lebih. Contohnya : >>> pesan = "nasi goreng satu!" >>> banyak = "5" >>> print "pesan" + pesan + banyak pesannasi goreng satu!5 Bisa kita lihat dalam penggabungan tersebut, antara string dengan string yang lainnya langsung digabungkan tanpa tanda pemisah, seperti spasi atau [tab]. Operator perkalian (*) juga berlaku dalam operasi string, tetapi tidak dapat melakukan perkalian string antar string, melainkan string dengan integer. Operator perkalian ini di analogikan dengan penggandaan string, Misalnya : >>> "ulang" * 3 'ulangulangulang' Masuk diakal juga bila penggabungan dan penggandaan string di analogikan dengan penambahan dan perkalian, seperti yang Anda lihat 4*3 sama dengan 4+4+4, sama halnya seperti ulang*3 dengan ulang+ulang+ulang.Tanda koma (,) dalam operasi string sebagai tanda pemisah (spasi) di antara string.Misalnya : >>> print "ulang", 3, 4, 5 ulang 3 4 5 Tipe data sekuensial Tipe data sekuensial adalah tipe data yang didalamnya dapat terdapat satu atau lebih jumlah elemen anggota, yang dapat diurutkan menurut indeks.

-27- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

2.10 Lists Python dapat mengelompokan beberapa tipe data yang berbeda menjadi satu kelompok, yang kemudian dikenal sebagai List , dapat didefinisikan dengan pemisah tanda koma ",". >>> a = ["satu", 2, 3.0, "empat"] >>> print a ['satu', 2, 3.0, 'empat'] Lists bisa dianalogikan sebagai array dan urutan pengaksesannya dimulai dari 0. >>> a[0] 'satu' >>> a[1] 2 >>> a[-2] 3.0 >>> a[3] 'empat' pengaksesan List pada urutan terakhir dengan nilai -1 . =============================== |'satu' | | a[0]

2

| 3.0

|'empat'|

| a[1] | a[2] | a[3]

|'satu' |

2

| 3.0

|

|'empat'|

| a[-4] | a[-3]| a[-2]| a[-1] | =============================== List juga dapat dipisah - pisahkan dan dapat digabungkan, ditambahkan dan lainnya. >>> a[0:2]

-28- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

['satu', 2] >>> a[-4:-1] ['satu', 2, 3.0] Tanda titik dua ":" mempunyai argumen [:], berarti dimulai dari indeks sampai indeks ke -n (batas indeks-n, tidak ditampilkan). Di tambahkan, Misalnya : >>> a + ['lima', 'enam'] ['satu', 2, 3.0, 'empat', 'lima', 'enam'] Penambahannya hanya dapat dilakukan antar lists. Begitupun operasi penggandaan suatu lists, sebagian anggota list ataupun salah satu anggota list. >>> 3*a[:3] + ['tujuh'] ['satu', 2, 3.0, 'satu', 2, 3.0, 'satu', 2, 3.0, 'tujuh'] >>> [a[3]] + [a[2]] + ['delapan'] ['empat', 3.0, 'delapan'] >>> print a[3] 'empat' Untuk melakukan perubahan terhadap satu anggota atau sebagian anggota list , kita hanya meng-assignkan nilainya, Misalnya : >>> a[2] 3.0 >>> a[2] = a[1] + 5

>>> a ['satu', 2, 7, 'empat'] yang berarti nilai a[2] digantikan menjadi nilai a[1] = 2 ditambahkan dengan 5, maka nilai a[2] menjadi 7. Untuk menggantikan sebagian anggota list secara berurutan juga diperbolehkan. Misalnya :

-29- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

>>> a[0:2] = [1,'dua'] #Menggantikan elemen a[0], a[1] #Menjadi a[0] = 1, a[1] = 'dua' >>> print a [1, 'dua', 7, 'empat'] Menghilangkan beberapa elemen anggota. >>> a[0:2] = [] >>> print a [7, 'empat'] Menyisipkan suatu nilai. >>> a[0:-1] = ['satu'] >>> a ['satu', 'empat'] Contoh diatas, berarti menempatkan elemen di antara 0,1 sampai -1. Untuk mengetahui jumlah elemen anggota List, digunakan fungsi built-in len yang berlaku juga untuk menghitung character suatu string. >>> len(a) 2 Untuk menambahkan anggota elemen list digunakan metode append yang berlaku pada list. Misalnya : >>> a.append('lima') >>> a.append('enam') >>> a ['satu', 'empat', 'lima', 'enam'] List di dalam List. >>> b = ['tujuh']

-30- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

>>> a.append(b) >>> a ['satu', 'empat', 'lima', 'enam', ['tujuh']] Berikut metode - metode yang dapat dilakukan dengan object List : append (x) Menambahkan satu elemen anggota dan diletakkan di bagian indeks akhir pada segment LIST extend (L) Menggantikan seluruh anggota elemen pada List menjadi seluruh elemen list L insert(i, x) Menyisipkan satu elemen anggota List pada posisi tertentu remove(x) Menghilangkan satu anggota list pop([i]) Menghilangkan salah satu anggota tertentu yang telah ditentukan posisinya index(x) Mengembalikan nilai indeks suatu anggota list count(x) Memeriksa jumlah x di dalam List sort() Mensorting list atau mengurutkan anggota list reverse() Kebalikan dari fungsi sort() Suatu script dari Josh Cogliati [email protected],

-31- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

menu_item = 0 list = [] while menu_item != 9: print "--------------------" print "1. Print the list" print "2. Add a name to the list" print "3. Remove a name from the list" print "4. Change an item in the list" print "9. Quit" menu_item = input("Pick an item from the menu: ") if menu_item == 1: current = 0 if len(list) > 0: while current < len(list): print

current,".

",list[current] current = current + 1 else: print "List is empty"

elif menu_item == 2: name = raw_input("Type in a name to add: ") list.append(name)

elif menu_item == 3: del_name = raw_input("What name would you like

-32- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

to remove: ") if del_name in list: item_number = list.index(del_name) del list[item_number] clr else: print del_name," was not found"

elif menu_item == 4: old_name = raw_input("What name would you like to change: ") if old_name in list: item_number = list.index(old_name) new_name = raw_input("What is the new name: ") list[item_number] = new_name

else: print old_name," was not found"

print "Goodbye"

Latihan Buatlah program kalender bulan, dengan tampilan sebagai berikut : Bulan apa [1-12]? 7

-33- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Bulan yang Anda pilih ? Juli Petunjuk : Menggunakan List sebagai daftar nama bulan. Jawabannya : #!/usr/bin/env python

Bulan = ['Januari', 'Febuari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September',\ 'Oktober', 'Nopember', 'Desember'] Pilih = input ("Bulan apa [1-12]? ") if 1 > a = ["satu", 2, 3.0, "empat"] >>> del a[1] >>> a ['satu', 3.0, 'empat'] >>> del a[0:2] # atau dengan del a[0:(len(a)-1)] >>> a ['empat'] >>> del a # Menghapus list a >>> a Traceback (most recent call last): File "", line 1, in ?

-34- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

NameError: name 'a' is not defined

2.11 String String dalam pemograman bahasa C dianggap sebagai array of character , hal ini juga berlaku di pemograman bahasa Python.Misalnya : >>> kata = "kata" >>> kata[0] 'k' >>> kata[1] 'a' >>> kata[2] 't' Tidak seperti List, elemen anggota karakter dalam string tidak dapat digantikan, >>> kata[2] = 'p' Traceback (most recent call last): File "", line 1, in ? TypeError: object doesn't support item assignment Akan tetapi untuk melakukan penambahan karakter pada string dapat dilakukan dengan operator tambah (+). Misalnya: >>> 'per' + kata[0:] 'perkata' Juga terdapat pemenggalan-pemenggalan karakter dalam string. >>> kata[0:2] 'kat' >>> kata[1:3]

-35- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

'ata' 2.12 Tuples Kita telah lihat bahwa string dan list mempunyai banyak kesamaan dalam operasi, pengindeksan dan pemenggalan. Di Python juga terdapat tipe data baru yang dinamakan Tuples yang terdiri atas nilai - nilai angka dan string. Operasi pada tuples hampir sama dengan lists tetapi sifat dari tuples lebih condong ke string, karena beberapa elemen anggotanya tidak dapat langsung di ubah - ubah. Contoh penggunaan tuples : >>> c = 123, 345, 567, 'hello' >>> c (123, 345, 567, 'hello') >>> c[3] 'hello' >>> len(c) 4 Seperti yang kita lihat di atas, tuples menggunakan tanda kurung"()" untuk menyatakan anggota elemen - elemen di dalamnya. Tuple memiliki banyak kegunaan, sebagai fungsi koordinat (x, y) 2.13 Dictionaries Tipe data lain yang sangat berguna yang terdapat di Python adalah dictionary . Dictionaries pada beberapa bahasa pemograman komputer lain dikenal sebagai "associative memories" atau "associative arrays". Tidak seperti data sekuensial yang diurutkan menurut urutan indeks, dictionary di indeks dengan keys dari dictionary itu sendiri, dimana suatu key dapat berupa angka - angka, bilangan pecahan atau string. Dapat dikatakan dictionary adalah sekumpulan key yang tidak teratur, yang memerlukan suatu key yang unik. Untuk membuat sebuah dictionary hanya memerlukan sepasang tanda kurung kurawal "{}". Seperti arti sebenarnya dalam bahasa inggris, dictionary dapat kita analogikan sebagai kamus. Contoh : >>> indkeing = {} >>> indkeing['satu'] = 'one' >>> indkeing['dua'] = 'two' -36- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

>>> print indkeing {'dua': 'two', 'satu': 'one'} Seperti yang kita lihat, masing - masing anggota elemen dictionary dipisahkan dengan tanda koma "," dan susunan antara key dan nilainya adalah {key:nilai}. Tampilan antara satu elemen dan elemen anggota lainnya tidaklah berurutan, hal ini dikarenakan dictionary bukanlah tipe data sekuensial yang pendataannya berdasarkan indeks, Dictionary metode pendataannya berdasarkan keys jadi tidak perlu menyusun elemen anggota - anggota baru dibuat atau sudah lama ada. Dalam contoh diatas elemen dengan key 'satu' adalah elemen yang pertama kali dibuat tetapi dalam urutannya bukan yang pertama. 2.13.1 Mengakses dictionary Untuk mengakses suatu nilai dalam dictionary, hal pertama yang harus kita lakukan adalah mengetahui keynya terlebih dahulu. Contoh : >>> print indkeing['satu'] 'one' >>> print indkeing['dua'] 'two' >>> print indkeing['one'] #Operasi ini tidak dapat dilakukan Traceback (most recent call last): File "", line 1, in ? KeyError: one >>> #Karena menimbulkan pesan kesalahan kunci. Karena didalam >>> #dictionary indkeing tidak mempunyai key 'one' 2.13.2 Operasi pada dictionary Perintah del juga berlaku pada dictionary, Misalnya di sebuah toko buah, yang menyediakan berbagai macam buah, dengan stock barang sebagai berikut : >>> stock = {'apel':1, 'jeruk':2, 'manggis':3, 'pepaya':4} >>> print stock

-37- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

{'manggis': 3, 'apel': 1, 'jeruk': 2, 'pepaya': 4} Jika seseorang membeli semua jeruk yang ada di persediaan gudang, maka dalam stock yang ada dalam gudang tersebut habis. >>> del stock['jeruk'] >>> print stock {'manggis': 3, 'apel': 1, 'pepaya': 4} Atau jika kita menginginkannya lagi atau meminta supplier, kita dapat membuat jumlah jeruk menjadi 0. >>> stock['jeruk']=0 >>> print stock {'manggis': 3, 'apel': 1, 'jeruk': 0, 'pepaya': 4} Fungsi len juga berlaku di dictionary, yang berarti menghitung jumlah anggota suatu dictionary. >>> len(stock) 4 2.13.3 Metode pada Dictionary Sebuah metode dapat diartikan sebagai sebuah fungsi, meminta argumen parameter dan mengembalikan suatu nilai. Contohnya metode keys , menghasilkan semua keys yang ada dalam sebuah dictionary, dan mengembalikan nilainya dalam bentuk list. Contohnya : >>> stock.keys() ['manggis', 'apel', 'jeruk', 'pepaya'] tanda titik "." setelah stock adalah metode / fungsi yang berlaku pada objek tersebut. Pembahasan objek lebih jelasnya akan dijelaskan pada Konsep bahasa pemograman berorientasi objek. Penggunaan metode values sama halnya dengan penggunaan metode keys. Contohnya : >>> stock.values() [3, 1, 0, 4]

-38- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Sedangkan metode items menghasilkan kedua nilai, key dan value dan dikembalikan kedalam bentuk list dengan sejumlah tupples. >>> stock.items() [('manggis', 3), ('apel', 1), ('jeruk', 0), ('pepaya', 4)] Untuk memeriksa keadaan suatu key dalam dictionary, kita dapat menggunakan metode has_key(). Contohnya : >>> stock.has_key('manggis') 1 >>> stock.has_key('lengkeng') 0 Yang menghasilkan nilai 1 jika key yang dicari ada, dan nilai 0 jika key tersebut tidak ada. 2.13.4 Alias dan penggandaan Dictionary adalah tipe data yang elemen anggotanya dapat di ubah - ubah setiap waktu, karena hal inilah Anda harus berhati - hati dalam aliassing, yang berarti 2 objek dengan nama yang berbeda merujuk ke satu objek yang sama, dapat memberikan dampak satu sama lain. Jika Anda ingin memodifikasi sebuah dictionary dan menyimpan dictionary yang aslinya untuk tidak diubah - ubah, Anda dapat menggunakan metode copy. Contohnya : >>> stock = {'apel':1, 'jeruk':2, 'manggis':3, 'pepaya':4} >>> stock_hsl_trans = stock.copy() >>> stock_hsl_trans['apel'] = (stock_hsl_trans['apel'] - 1) >>> stock_hsl_trans {'manggis': 3, 'apel': 0, 'jeruk': 0, 'pepaya': 4} >>> stock {'manggis': 3, 'apel': 1, 'jeruk': 0, 'pepaya': 4} Dapat kita lihat dari contoh diatas, dictionary stock dan stock_hsl_trans tidak mempengaruhi satu sama lain. Sedangkan aliassing keduanya saling mempengaruhi, Misalnya :

-39- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

>>> inventory = stock >>> inventory {'manggis': 3, 'apel': 1, 'jeruk': 0, 'pepaya': 4} >>> inventory['apel'] = 2 >>> stock {'manggis': 3, 'apel': 2, 'jeruk': 0, 'pepaya': 4} Pengaksesan kedua objek saling mempengaruhi satu sama lain.

-40- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Bab 3 Percabangan dan perulangan 3.1 Ekspresi Boolean Ekspresi boolean adalah ekspresi yang menghasilkan nilai benar atau salah. Di Python ekspresi yang salah di representasikan sebagai nilai 0(Nol) dan ekspresi yang benar sebagai nilai 1(Satu). Operator == membandingkan 2 nilai dan menghasilkan sebuah ekpresi boolean : >>> 8 == 8 1 >>> 8 == 4 0 pada kalimat di atas, 2 operan mempunyai nilai yang sama dan dibandingkan dengan operator boolean == yang menghasilkan nilai 1 (Benar); pada kalimat kedua, 8 tidak sama dengan 4, maka menghasilkan nilai 0 (Salah). Operator == adalah salah satu dari operator pembanding, yang lainnya adalah :

Table: Operator pembanding x != y x tidak sama dengan y x > y

x lebih besar dari y

x < y

x lebih kecil dari y

x >= y

x lebih besar sama dengan y

x = (lebih besar sama dengan) dan y : print x, "lebih besar dari", y else : print x, y, "mempunyai nilai yang sama!"

-44- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Gambar: Kondisi berantai

elif adalah singkatan dari else if, yang berarti jika kondisi if dilaksanakan maka kondisi berikutnya akan di uji juga, tidak ada batasan mengenai penggunaan kondisi elif, akan tetapi seharusnya dalam akhir kondisi diperlukan adanya kondisi else, sebagai jalan alternatif jika semua kondisi tidak terpenuhi. Sebagai latihan dari bagian bab ini, coba Anda buat suatu kondisi menu. number = 78 tebak = 0

while tebak != number : #Selama tebak tidak sama dengan number tebak = input ("Tebak suatu angka: ")

if tebak > number : print "Terlalu tinggi"

elif tebak < number : print "Terlalu rendah"

print "Yap ! Anda benar!!!!"

-45- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

3.2.2 Kondisi bersarang Kondisi bersarang adalah suatu kondisi di dalam kondisi tertentu, Jika terdapat 2 cabang kondisi maka di dalam salah satu cabang kondisi tersebut dapat pula di isi suatu kondisi tertentu.Misalnya : if x == y: print x, y "mempunyai nilai yang sama" else : if x > y : print x, "lebih besar dari", y if x < y : print x, "lebih kecil dari", y Kondisi pertama mempunyai 2 pilihan kondisi, kondisi pertama mempunyai perintah baris yang sederhana, sedangkan kondisi kedua mempunyai 2 pilihan kondisi lagi didalamnya. Walaupun pengidentasian dalam Python sangat mudah untuk di baca, akan tetapi akan lebih sulit untuk membacanya secara cepat. Pada umumnya, lebih baik menghindari kondisi bersarang seperti ini. Operator logika menyediakan suatu cara untuk menyederhanakan kondisi bersarang. Misalnya kita dapat menjalankan perintah berikut dengan menggunakan satu kondisi : if 0 < x : if x < 10 : print x, "bilangan positif yang terdiri dari satu digit" perintah print akan dijalankan jika kedua kondisi di atas terpenuhi, jadi kita dapat menulisnya dengan cara menggunakan operator logika and : if 0 < x and x < 10 : print x, "bilangan positif yang terdiri dari satu digit" Python juga menyediakan struktur kalimat matematika pada umumnya, seperti : if 0 < x < 10 :

-46- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

print x, "bilangan positif yang terdiri dari satu digit" contoh diatas sama artinya dengan contoh - contoh sebelumnya yang menggunakan kondisi berantai dan operator logika. 3.3 Perulangan for Perintah for dalam python mempunyai ciri khas tersendiri dibandingkan dengan perulangan for pada bahasa pemograman C ataupun Pascal. Tidak hanya mengulang bilangan - bilangan sebuah ekspresi aritmatik(dalam Pascal), atau memberikan keleluasaan si user untuk mendefinisikan perulangan iterasi dan menghentikan perulangan pada saat kondisi tertentu (dalam C). Dalam Python mengulang berbagai macam tipe data sekuensial seperti list, string, dan tuple. Contohnya: >>> a = ['satu', 'dua', 'tiga', 'empat'] >>> for i in a : ...

print i

... satu dua tiga empat Contoh diatas berarti fungsi for in :. 3.4 Perulangan while Perulangan while akan mengulang didalam ruang lingkup while, selama suatu kondisi terpenuhi. Misalnya : >>> n = 9 >>> while n < 20 : ...

print n

...

n = n + 1

-47- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

... 9 10 11 12 13 14 15 16 17 18 19 Pada contoh diatas, nilai variabel n akan ditambahkan 1 secara terus menerus sampai kondisi n lebih kecil dari 20. 3.5 Fungsi range() Jika Anda ingin melakukan perulangan sejumlah yang diinginkan, fungsi built-in range sangat membantu. Fungsi tersebut menghasilkan sejumlah indeks dari nilai yang telah ditentukan. Contohnya : >>> range(15) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] Ataupun sebagian angka yang diinginkan. Contohnya : >>> range (8, 15) [8, 9, 10, 11, 12, 13, 14] >>> range(0,9,3) [0, 3, 6] >>> range(0, 20, 3)

-48- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

[0, 3, 6, 9, 12, 15, 18] Contoh diatas menunjukan kelipatan dari suatu interval bilangan yang mempunyai sintaks range(, , ). Selanjutnya adalah Contoh perulangan for dengan range() : >>> for i in range(10): ...

print i

... 0 1 2 3 4 5 6 7 8 9 Mengulang perulangan for sejumlah anggota elemen suatu tipe data sekuensial. Contohnya : >>> a ['satu', 'dua', 'tiga', 'empat'] >>> for i in range(len(a)): ...

print i

... 0 1 2

-49- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

3 3.6 Perintah break, continue dan else Perintah break seperti dalam bahasa C, berarti keluar dari ruang lingkup yang terkecil dari kondisi for atau while. Perintah continue sama halnya dengan di C, yang berfungsi melanjutkan kalimat perintah berikutnya dalam kondisi perulangan. Pada kondisi perulangan juga diperbolehkan untuk menggunakan kalimat perintah else, yang dijalankan pada saat kondisi perulangan for tidak menemui suatu kondisi atau jika suatu kondisi tersebut mengalami kesalahan / false (dengan while), tetapi bukan pada saat kondisi perulangan dihentikan dengan perintah break. Berikut adalah contohnya : for n in range(2, 10): for x in range(2, n): if n % x == 0: print n, 'sama dengan', x, '*', n/x break else: print n, 'adalah bilangan prima' 2 adalah bilangan prima 3 adalah bilangan prima 4 sama dengan 2 * 2 5 adalah bilangan prima 6 sama dengan 2 * 3 7 adalah bilangan prima 8 sama dengan 2 * 4 9 sama dengan 3 * 3

-50- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Penjelasannya adalah apabila suatu kondisi dalam perulangan for x in range(2, n) tidak ada yang terpenuhi maka alur perulangannya akan lari ke ruang lingkup perintah else. 3.7 Perintah return Perintah return dapat menghentikan suatu proses dari fungsi sebelum mengakhiri fungsi tersebut. Alasan Anda menggunakan perintah return adalah jika Anda menemui sebuah kesalahan kondisi, yang berarti nilai suatu fungsi tersebut mengembalikan nilai null (kosong) : import math

def print_log (x): if x >> type ("54")

Nama fungsi tersebut adalah type dan fungsinya untuk menampilkan tipe data suatu nilai atau suatu variabel. Nilai atau variabel sebagai argumen parameter pada fungsi, harus diletakkan di dalam tanda kurung. Biasanya suatu fungsi mengambil satu atau beberapa argumen dan menampilkan hasil dari fungsi tersebut yang dinamakan nilai hasil. Walaupun suatu nama variabel tersebut merupakan suatu fungsi, akan tetap menghasilkan nilai dari fungsi tersebut. Misalnya, >>> fungsi = type ("satu") >>> print fungsi

Sebagai contoh lain adalah fungsi id, yang mengambil suatu nilai atau variabel dan mengembalikan suatu nilai integer yang mewakili identitas dari suatu nilai atau variabel tersebut.Misalnya : >>> id (9) 135109956 >>> angka = 9 >>> id (angka) 135109956 Dapat kita lihat bahwa id suatu variabel merupakan id dari nilai variabel tersebut, setiap nilai mempunyai sebuah nomor id , yang unik atau berbeda satu sama lain dan angka tersebut disimpan pada memori komputer. 4.2 Peubah tipe data

-55- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Python menyediakan fungsi - fungsi built-in yang dapat mengubah suatu nilai dari suatu tipe data ke tipe data lainnya. Fungsi int mengambil suatu nilai yang mungkin ke tipe data integer, atau menimbulkan pesan kesalahan nilai, Misalnya : >>> int ("30.5")#Ingat segala sesuatu yang di apit dalam #tanda kutip adalah tipe data string 30 >>> int ("Hello World!") Traceback (most recent call last): File "", line 1, in ? ValueError: invalid literal for int(): Hello World! fungsi int juga dapat digunakan untuk mengubah tipe data float menjadi tipe data int, akan tetapi nilai yang berada di belakang nol akan di hilangkan, Misalnya : >>> int (3.14) 3 >>> int (-7.5) -7 sedangkan fungsi float dapat mengubah nilai integer dan string menjadi nilai float. Misalnya : >>> float (43) 43.0 >>> float ("123") 123.0 dari sini terlihat bahwa nilai 43 dalam integer dan nilai 43 dalam float mempunyai nilai matematik yang sama, tetapi berbeda tipe data. Perbedaan tipe data ini terjadi di dalam memori komputer. Yang terakhir adalah fungsi pengubah nilai string, fungsi str akan mengubah nilai integer dan nilai float menjadi tipe data string. Misalnya >>> str (23)

-56- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

'23' >>> str (45.9) '45.9' Dalam Python juga terdapat fitur pengubah nilai secara otomatis, yang akan mengubah nilai hasil jika salah satu operandnya mempunyai tipe data yang berbeda, pada contohnya pembagian nilai dengan tipe data integer dengan nilai dengan tipe data float akan menghasilkan nilai dengan tipe data float. >>> 60 / 4.5 13.333333333333334 nilai 60 adalah nilai dari tipe data integer, sedangkan 4.5 adalah nilai dari tipe data float, pada python perbedaan tipe data ini akan secara otomatis dirubah hasilnya menjadi nilai yang sesuai. 4.3 Membuat Fungsi baru Sejauh ini kita hanya menggunakan fungsi - fungsi yang tersedia di Python, kita juga dapat membuat sebuah fungsi baru untuk menyelesaikan masalah yang spesifik. Dalam konteks pemograman, sebuah fungsi adalah sebuah himpunan dari beberapa instruksi untuk menyelesaikan suatu masalah spesifik yang diinginkan. Sebelum membuat fungsi kita harus terlebih dahulu menspesifikasikan pendefinisian fungsi itu. Sintaks Pendefinisian fungsi adalah : def NAMA_FUNGSI ( DAFTAR PARAMETER): PERINTAH - PERINTAH DALAM FUNGSI Anda dapat menggunakan nama fungsi apa saja sesuai keinginan dan yang menunjukkan kegunaan fungsi tersebut, tetapi Anda tidak dapat menggunakan kata kunci dalam Python sebagai nama fungsi. DAFTAR PARAMETER merupakan parameter - parameter apa saja yang ingin di proses oleh fungsi tersebut, Anda juga diperbolehkan untuk tidak meletakan parameter fungsi tersebut jika tidak ada data yang diproses oleh fungsi tersebut. Perintah - perintah dalam fungsi dapat di letakkan di bawah pendefinisian fungsi dengan kata kunci def yang diletakkan setelah identasi dari kiri di atas, dalam contoh di atas dipergunakan identasi sebanyak 2 spasi.

-57- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Contoh fungsi pertama yang tidak mempergunakan parameter : def baris_baru (): print Fungsi diatas mempunyai nama baris_baru dan tidak mempunyai parameter di dalam tanda kurung (tempat dimana parameter diletakkan)mempunyai satu baris perintah yang menghasilkan baris kosong yang baru (ini terjadi jika anda menggunakan perintah print dengan tidak meletakan argumen-argumennya). Penggunaan fungsi diatas adalah : print "Contoh fungsi baris baru" baris_baru () print "Dibawah baris baru yang kosong" Tampilan dari perintah di atas adalah : Contoh fungsi baris baru

Dibawah baris baru yang kosong Perhatikan baris kosong diatas, jika kita menginginkan baris kosong lebih dari satu, kita dapat langsung memanggil fungsi baris_baru berulang kali atau membuat fungsi baru yang isi perintahnya terdapat fungsi baris_baru, Misalnya : def tiga_baris (): baris_baru () baris_baru () baris_baru ()

print "Contoh fungsi baris baru" tiga_baris () print "Dibawah baris baru yang kosong" Fungsi

tiga_baris

mempunyai

3

baris

perintah

yang

memanggil

fungsi

-58- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

baris_baru(). Jadi dapat kita simpulkan bahwa : 1. Kita dapat memanggil suatu fungsi berulangkali. 2. Kita dapat membuat fungsi yang dapat memanggil fungsi lain. 3. Membuat suatu fungsi memudahkan Anda membuat suatu kelompok kecil untuk menyederhanakan penyelesaian masalah yang kompleks. 4. Kegunaan suatu fungsi adalah membuat program lebih kecil, karena dapat merepresentasikan penggunaan kode yang berulang - ulang. 4.4 Alur eksekusi program Untuk memastikan bahwa suatu fungsi telah didefinisikan sebelum fungsi itu digunakan, Anda harus mengetahui perintah yang mana yang sekarang Anda jalankan, ini yang di sebut sebagai Alur eksekusi program. Pada saat program dijalankan selalu dimulai dari perintah pertama dalam program. Perintah - perintah tersebut dijalankan satu kali, dari atas sampai bawah. Dalam pendefinisian suatu fungsi kita dapat menggunakan fungsi di dalam suatu fungsi, yang berarti kita harus memanggil fungsi yang di atas untuk menjalankan fungsi yang di bawah. Pemanggilan suatu fungsi bisa juga merupakan pengubah alternatif pembacaan alur eksekusi program, karena pemanggilan fungsi di dalam fungsi harus memperhatikan fungsi yang ada diatasnya untuk mendapatkan hasil dari fungsi didalam fungsi tersebut. Jadi intinya Ketika Anda melihat suatu program jangan melihat program tersebut dari atas ke bawah, melainkan perhatikanlah alur jalannya program tersebut. 4.5 Argumen parameter Beberapa fungsi built-in yang telah Anda gunakan memerlukan beberapa argumen parameter, nilai yang di proses dalam suatu fungsi. Contohnya pada saat menggunakan fungsi built-in type yang memerlukan nilai untuk menentukan tipe data dari nilai tersebut. Beberapa fungsi juga memerlukan argumen lebih dari satu, misalnya fungsi pow yang memerlukan 2 argumen, nilai dasar dan nilai pangkat. Contohnya : >>> pow (3, 1) 3 fungsi pow digunakan untuk memperoleh nilai dari eksponen suatu nilai. Jika fungsi pow diisi dengan satu argumen, maka akan timbul pesan kesalahan. -59- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

>>> pow (3) Traceback (most recent call last): File "", line 1, in ? TypeError: pow() takes at least 2 arguments (1 given) Berikut contoh fungsi yang menggunakan suatu argumen. def cetak (kata): print "Fungsi ini mencetak=>",kata Fungsi cetak ini memerlukan satu argumen parameter yang bernama "kata", nilai parameter ini dapat kita tentukan untuk menjalankan fungsi ini. cetak ("Hello Fungsi") Fungsi ini mencetak=> Hello Fungsi cetak (54321) Funsi ini mencetak=> 54321 Pada pemanggilan fungsi di atas, nilai argumen pertama bertipe data string, yang kedua bertipe data integer. Jika kita jalankan fungsi cetak tanpa argumen akan menghasilkan pesan kesalahan : >>> cetak () Traceback (most recent call last): File "", line 1, in ? TypeError: cetak() takes exactly 1 argument (0 given) Yang menjelaskan bahwa fungsi cetak, memerlukan 1 argumen parameter. 4.6 Variabel lokal dalam Fungsi Ketika Anda membuat variabel lokal pada suatu fungsi, variabel tersebut hanya dapat dikenali dalam fungsi itu saja, dan Anda tidak dapat menggunakannya di luar dari fungsi itu. Misalnya : def cetak_lokal (kata): -60- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

lokal = kata + " tambah lokal" print lokal

>>> cetak_lokal ("apa saja") apa saja tambah lokal

>>> print lokal Traceback (most recent call last): File "", line 1, in ? NameError: name 'lokal' is not defined

>>> print kata Traceback (most recent call last): File "", line 1, in ? NameError: name 'kata' is not defined perhatikan! bahwa fungsi diatas memerlukan argumen parameter yang bertipe data string, karena pada variabel lokal terdapat operator tambah (+) yang berarti penggabungan antar string. Dan tidak diperbolehkan untuk menampilkan variabel lokal yang terdapat di dalam fungsi cetak_lokal. Parameter suatu fungsi juga bersifat lokal pada fungsi tersebut.

-61- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Bab 5 Modul Jika Anda bekerja dalam lingkungan interpreter, semua modul atau fungsi yang Anda buat akan hilang pada saat Anda keluar dan masuk ke interpreter lagi. Jadi jika Anda ingin membuat aplikasi sebaiknya disimpan dalam sebuah file yang diberi nama script yang telah dijelaskan pada bab sebelumnya. Sebuah modul adalah sebuah file yang berisi sekumpulan fungsi - fungsi dan instruksi - instruksi program python. Modul tersebut disimpan dengan ekstension .py, pemanggilan modul dijalankan dengan perintah import. Contohnya pada modul luas.py berikut: #Contoh Modul untuk menghitung Luas #Pendeklarasian VARIABEL PHI = 3.14 ########################

def L_lingk(radius): return PHI * (radius*radius)

def K_lingk(radius): return PHI * (radius*2)

def L_SegiEmpat(sisi): return sisi*sisi

def K_SegiEmpat(sisi): print 4 * sisi

def usage():

-62- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

print "Usage : %s [-options] [nilai]" %PROG_NAME print """options : -k kelilingS4=sisi

Menghitung

keliling segi empat -L Luaslingkaran=radius

Membaca satu

baris dari isi file -K

--kelilinglingkaran=r

Menentukan

nama file -h help

Menampilkan help

ini """ sys.exit(2)

def main(): if len(sys.argv[1:]) == 0 : usage() try : 'k:L:K:h', 'help'])

optlist, args = getopt.getopt(sys.argv[1:], ['kelilingS4=','Luaslingkaran','kelilinglingk',

except getopt.GetoptError : usage()

for o, arg in optlist : if o in ['-k', '--kelilingS4='] :

-63- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

K_SegiEmpat (float(arg)) if o in ['-L', '--Luaslingkaran'] : L_lingk(float(arg))

if o in ['-K', '--kelilinglingk'] : K_lingk(float(arg))

if o in ['-h', '--help'] : usage()

if __name__ == '__main__' : main()

-64- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Bab 6 Input/ Output dan Operasi File 6.1 Input dari Keyboard Program yang selama ini kita buat, nilainya telah ditentukan sebelumnya, program - program tersebut tidak mendapatkan input dari user. Program - program tersebut hanya melakukan hal yang sama setiap waktu. Python menyediakan fungsi built-in yang mengambil nilai langsung dari input keyboard. Fungsi yang paling sederhana dinamakan raw_input . Ketika fungsi ini dipanggil, program dihentikan dan menunggu masukan dari user untuk mengetikkan sesuatu. Pada saat user menekan tombol [Enter>> input = raw_input() >>> silahkan ketik disini >>> print input silahkan ketik disini Sebelum memanggil fungsi raw_input , sebaiknya kita memasukkan parameter argumen sebagai prompt pada raw_input : >>> nama = raw_input ("Siapa nama anda?") Siapa nama anda?andriani >>> print nama andriani Jika kita mengharapkan input yang akan dimasukan bertipe data integer, kita dapat menggunakan fungsi input : >>> prompt = "Siapa nama anda?" >>> input (prompt) Traceback (most recent call last): File "", line 1, in ? TypeError: object of type 'string' is not callable -65- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Tetapi jika yang dimasukan adalah digit angka atau bilangan maka secara otomatis akan dirubah menjadi tipe data integer, pada contoh di atas yang menjadi parameter dari input bukan berupa bilangan atau integer, maka program akan terhenti dan menampilkan pesan kesalahan. Untuk menghindarinya, sangat disarankan untuk menggunakan fungsi raw_input untuk mengambil nilai dengan tipe data string, kemudian menggunakan fungsi peubah tipe data untuk diubah menjadi tipe data lain yang diinginkan. Pada saat suatu program berjalan, data tersimpan dalam memori. Kemudian pada saat program berhenti, atau komputer dimatikan, semua data yang tersimpan di memori akan hilang. Untuk menyimpan sebuah data secara permanen, Anda harus meletakan file tersebut ke dalam media penyimpanan, seperti Hard-Drive, CD-ROM, atau floppy disk. Ketika file - file mencapai jumlah yang banyak, biasanya file - file tersebut dipisah - pisah dan di simpan ke dalam direktori - direktori. Masing - masing file teridentifikasi dengan nomor yang unik, atau dengan kombinasi nama dan tempat direktori file masing-masing. Mengoperasikan file sama halnya dengan mengoperasikan sebuah buku. Untuk membaca buku, Anda harus membukanya terlebih dahulu. Dan jika Anda selesai dengan buku tersebut Anda harus menutupnya kembali. Ketika suatu buku dalam keadaan terbuka, buku dapat ditulisi dan di baca. Operasi tersebut berlaku juga pada file. 6.2 Membuka File Membuka sebuah file sama halnya dengan membuat sebuah objek file. Contoh berikut variabel f adalah objek file. >>> f = open ("bulan.py", "r") >>> type(f)

>>> print f

fungsi open, memerlukan 2 argumen parameter. argumen pertama adalah nama file yang akan dibuka, dan kedua adalah mode pembukaan file, contoh diatas file bulan.py dibuka dengan metode r yang berarti hanya dapat dibaca dan tidak bisa ditulisi. Dan jika kita membuka file yang tidak ada, akan muncul pesan kesalahan,

-66- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

seperti berikut : >>> f = open ("test", "r") Traceback (most recent call last): File "", line 1, in ? IOError: [Errno 2] No such file or directory: 'test' 1. metode r, hanya dapat ditulisi jika file tidak ada, akan muncul pesan kesalahan seperti contoh di atas 2. metode w, membuat suatu file baru hanya untuk di tulisi, jika terdapat nama file yang sama dalam suatu direktori maka file yang baru akan menimpa file yang lama. 3. metode a, ditambah dan setiap data yang akan ditulis akan diletakkan pada akhir file. 4. metode r+, dapat dibaca dan ditulisi. 6.3 Metode pada objek File Untuk mengetahui lebih jelasnya tentang metode - metode yang dapat digunakan pada suatu objek file, kita dapat menggunakan fungsi dir(). Contohnya : >>> dir(f) ['close', 'closed', 'fileno', 'flush', 'isatty', 'mode', 'name', 'read', 'readinto', 'readline', 'readlines', 'seek', 'softspace', 'tell', 'truncate', 'write', 'writelines', 'xreadlines'] * metode read(), menampilkan seluruh isi suatu file dengan tipe data string. Misalnya : >>> f.read() '#!/usr/bin/env python\n\nBulan = [\'Januari\', \'Febuari\', \'Maret\', \'April\', \'Mei\', \'Juni\', \'Juli\',\'Agustus\', \'September\', \\\n \'Oktober\', \'Nopember\', \'Desember\']\n

-67- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Pilih = input ("Bulan apa [1-12]? ")\n if 1 >> 40 / 0 Traceback (most recent call last):

-80- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

File "", line 1, in ? ZeroDivisionError: integer division or modulo by zero Juga untuk pengaksesan yang bukan elemen anggota dari suatu list. >>> a = [] >>> a[5] Traceback (most recent call last): File "", line 1, in ? IndexError: list index out of range Atau mengakses sebuah key yang tidak ada pada suatu dictionary. >>> c = {} >>> print c['polo'] Traceback (most recent call last): File "", line 1, in ? KeyError: polo Pada setiap kasus, pesan kesalahan dibagi menjadi dua bagian: Jenis kesalahan sebelum titik dua, dan menjelaskan secara spesifik tentang kesalahan tersebut dibagian setelah titik dua. Pada umumnya, interpreter Python juga menampilkan sebuah penulusuran kembali dimana kesalahan pada program tersebut, yang dapat kita lihat sebelumnya. 8.3 Menangani pengecualian (Handling exceptions) Kadang - kadang kita ingin menjalankan sebuah operasi yang dapat menyebabkan kesalahan pada runtime, tetapi kita tidak mau program tersebut berhenti total. Kita dapat mengatasinya dengan perintah try dan except. Contohnya, Kita memberikan prompt pada user untuk menentukan nama file yang akan dibuka. Jika file tersebut tidak ada, kita tidak menginginkan program tersebut berhenti total yang dikarenakan tidak adanya file tersebut, kita menginginkan untuk mengendalikan kesalahan tersebut, dengan : namafile = raw_input("Masukan nama file: ")

-81- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

try : f = open (namafile, "r") except : print "Nama file tidak ditemukan!" Perintah try menjalankan perintah pada blok pertama. Jika tidak ada kesalahan yang terjadi, perintah except akan diabaikan. Tetapi jika terjadi kesalahan apapun jenisnya, program akan menjalankan perintah - perintah pada ruang lingkup except dan kemudian program tersebut berlanjut. Kita dapat menyatukannya dan menjadikannya suatu fungsi, yaitu fungsi exist. fungsi ini akan mengambil argumen parameter sebuah nama file dan mengembalikan nilai true, jika file tersebut ada dan mengembalikan nilai false, jika file tersebut tidak ada. Contohnya : def exist(namafile): try : f = open (namafile) f.close() return 1 except : return 0 Anda dapat menggunakan kalimat perintah beberapa blok except (lebih dari satu) untuk menangani beberapa jenis kesalahan, detailnya Anda dapat lihat di Python Refference Manual. Jika pada program Anda mendeteksi adanya kesalahan, Anda dapat membuatnya sebagai sebuah pengecualian (exception). Pada contoh ini kita akan membuat suatu fungsi yang mengecheck umur seseorang. def check(): umur = input("Masukan umur anda? ") if umur logfile 2>&1 & /usr/local/pgsql/bin/createdb test /usr/local/pgsql/bin/psql test * Install dari Paket RPM Anda tinggal mengetikan perintah rpm -ivh pada console linux, dimana : - i Æ Intall, - v Æ Verbose, - h Æ Hash. 9.2 Menambahkan user dan database Untuk menambahkan user, anda harus login ke Superusernya PostgreSQL, yaitu postgres. Kemudian anda login ke database dengan menjalankan perintah psql pada console.

-84- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

psql Welcome to psql, the PostgreSQL interactive terminal.

Type:

\copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query

\q to quit postgres=# Untuk membuat user baru, anda jalankan perintah create user, dengan Sintaks sebagai berikut : CREATE USER username [ WITH [ SYSID uid ] [ PASSWORD 'password' ] ] [ CREATEDB

| NOCREATEDB ] [ CREATEUSER | NOCREATEUSER ]

[ IN GROUP

groupname [, ...] ]

[ VALID UNTIL

'abstime' ]

9.3 PygreSQL Untuk melakukan interfacing dengan Python, kita harus mempunyai modul PyGreSQL yang dapat menggunakan fitur - fitur unggulan pada PostgreSQL. PyGreSQL dikembangkan dan sudah diujicobakan pada platform NetBSD. 9.4 Penginstalasian PygreSQL Jika anda menginstall PostgreSQL dari source codenya, anda tinggal menambahkan option --with-python pada saat menjalankan perintah configure. Tetapi jika mesin anda berjalan dengan arsitektur i386, anda bisa download RPM ftp://ftp.druid.net/pub/distrib/pygresql.i386.rpm .

nya

-85- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Distribusi RPM tersebut terdiri atas : README Keterangan

- file

Announce - Pengumuman rilis ChangeLog - Perubahan yang terjadi pada paket pgmodule.c - Modul C untuk Python pg.py - PyGreSQL DB class. pgdb.py - DB-SIG DB-API 2.0 compliant API wrapper for PygreSQL tutorial/ - direktori demo Terdiri dari : basics.py, syscat.py, advanced.py, func.py and pgtools.py. yang berisi tentang demo menggunakan Python sebagai interface dari PostgreSQL. 9.4.1 Modul pg pada PygreSQL Untuk mengkoneksi ke database, kita gunakan modul connect. Yang memerlukan beberapa argumen parameter. Sintaksnya sebagai berikut : connect(dbname, host, port, opt, tty, user, passwd) * dbname => Nama database (dapat berupa string atau tidak diisi (None)) * host => Nama dari host server (dapat berupa string atau tidak diisi (None))

-86- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

* port => Port yang digunakan oleh Server Database (berupa tipe data integer / -1) * opt => Option pada koneksi (dapat berupa string atau tidak diisi (None)) * tty => Terminal untuk mendebug (dapat berupa string atau tidak diisi (None)) * user => Nama user PostgreSQL (dapat berupa string atau tidak diisi (None)) * passwd => Password user (dapat berupa string atau tidak diisi (None)) Mengembalikan nilai berupa objek, yaitu pgobject yang berfungsi untuk menangani koneksi database. Kesalahan - kesalahan yang mungkin terjadi : * TypeError => kebanyakan argumen, atau kesalahan pada argumen. * SyntaxError => pendefinisian argumen secara ganda * pg.error => Beberapa kesalahan yang terjadi pada saat pendefinisian koneksi ke database. 9.4.2 pgobject Objek ini menangani sebuah koneksi ke database PostgreSQL dan mempunyai beberapa metode: query metode query berfungsi untuk menjalankan perintah - perintah dasar SQL. Sintaksnya adalah sebagai berikut : query() Yang memerlukan parameter berupa perintah - perintah SQL dengan tipe data string. Tidak mengembalikan nilai, kesalahan yang mungkin terjadi adalah : * TypeError => kesalahan pada penulisan argumen

-87- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

* ValueError => tidak adanya perintah SQL * pg.error => kesalahan pada saat memproses suatu query, atau koneksi yang salah. getresult Mengembalikan hasil dari suatu query. sintaksnya : getresult() Mengembalikan nilai bertipe data LIST. Kesalahan yang mungkin terjadi : * SyntaxError => Terlalu banyak parameter([footnote] metode getresult, tidak memerlukan parameter apapun) * pg.error => Kesalahan pada hasil sebelumnya dictresult Sama seperti metode getresult, tetapi metode ini mengembalikan nilai dengan tipe data dictionary. listfields Metode ini menampilkan seluruh daftar - daftar nama fields, hasil dari query sebelumnya. sintaksnya : listfields() Mengembalikan nilai bertipe data LIST yang berupa daftar nama - nama fields. fieldname Metode ini berguna untuk mencari sebuah nama field dari urutan angkanya.

-88- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

Sintaksnya : fieldname() Memerlukan parameter bertipe data integer yang berarti urutan nomor suatu field. Mengembalikan nilai berupa string yang menunjukkan nama dari field tersebut. fieldnum Metode ini untuk mengetahui urutan nomor dari suatu field yang memerlukan parameter bertipe data integer. Sintaksnya : fieldnum() Mengembalikan nilai berupa urutan nomor field, bertipe data integer. reset Metode ini untuk mereset koneksi ke database. Sintaksnya : reset() Tidak memerlukan argumen apapun, dan tidak mengembalikan nilai apapun. close Berfungsi untuk memputuskan koneksi ke database, Sintaksnya : close() Berikut contoh sebuah aplikasi untuk koneksi ke server dan menjalankan perintah - perintah SQL. #!/usr/bin/env python

-89- of -92-

Kuliah Umum IlmuKomputer.Com Copyright © 2003 IlmuKomputer.Com

import pg

TRY = 0 while TRY