E-Book ModulAlgoritmadanPemrograman HusniThamrindkk
E-Book ModulAlgoritmadanPemrograman HusniThamrindkk
uh
am
m
ad
iya
h
un
ive
rs
ity
Pr
es
s
s
ALGORITMA DAN
es
Pr
PEMROGRAMAN
ity
PETUNJUK PRAKTIKUM
rs
BERDASARKAN KURIKULUM 2015
i ve
un
h
Maryam, S.T.,M.Eng
ad
2019
ALGORITMA DAN PEMROGRAMAN
PETUNJUK PRAKTIKUM
BERDASARKAN KURIKULUM 2015
s
es
Penulis
Husni Thamrin, Ph.D
Pr
Fajar Suryawan, Ph.D.
Dr. Heru supriyono, M.Sc.
ity
Maryam, S.T.,M.Eng
Riski Agung Putro Laksono
rs
Layout & Desain Cover
ve
Ali Himawan
i
un
ISBN: 978-602-361-234-5
Cet. I, September 2019
h
ya
Copyright©2019
Hak Cipta pada penulis dan dilindungi Undang-Undang
i
ad
Penerbit
Muhammadiyah University Press
m
Email : [email protected]
©M
KATA PENGANTAR
s
Alhamdulillah, puji dan syukur disampaikan ke hadirat
es
Allah swt yang telah memberi kelonggaran dan kesempatan
kepada penulis untuk menyusun buku “Petunjuk Praktikum
Pr
Algoritma dan Pemrograman” ini. Buku petunjuk disusun
berdasarkan kurikulum 2015 yang diberlakukan mulai
semester gasal 2016/2017.
ity
Buku petunjuk praktikum ini mengalami beberapa
pengembangan sejak versi pertama tahun 2013 ketika
rs
Python dijadikan bahasa pemrograman yang digunakan
ve
dalam matakuliah “Algoritma dan Pemrograman”. Petunjuk
praktikum ini mengalami perbaikan di sana-sini terkait
kesalahan ketik dan update pengetahuan. Pada tahun
i
un
2016, ditambahkan dua bab baru yang bersifat opsional
untuk praktikum terakhir. Pada tahun 2018 dilakukan
pemutakhiran karena versi Python yang digunakan beralih
h
Python.
Hal terakhir yang berbeda adalah penggunaan istilah
©M
iii
Penulis berharap buku ini bermanfaat dan dapat
digunakan secara maksimal dalam memahamkan mahasiswa
tentang logika pemrograman dan penyelesaian masalah
dengan program. Tak lupa pula penulis mengucapkan
s
terima kasih kepada berbagai pihak yang membantu dalam
es
penyelesaian buku ini, mulai dari pimpinan Program Studi
Informatika, sejawat dosen terutama yang pengajar paralel
Pr
matakuliah “Algoritma dan Pemrograman”, asisten dan staf.
Kritik dan saran sangat diharapkan demi penyempuranaan
konten maupun layout buku petunjuk praktikum ini.
ity
Semoga Allah swt memberkati kita semua.
rs
Surakarta, Januari 2019
i ve Penulis
un
h
i ya
ad
m
am
uh
©M
iv
DAFTAR ISI
s
KATA PENGANTAR....................................................... iii
es
DAFTAR ISI .................................................................. v
Pr
PRAKTIKUM 1 : INSTALASI DAN DASAR
PROGRAM.................................................................... 1
Tujuan..................................................................... 1
ity
Pendahuluan........................................................... 1
Kegiatan Praktikum................................................. 3
rs
Kegiatan 1. Instalasi Python dan IDLE di
ve
Windows.......................................................... 3
Kegiatan 2. Instalasi IDLE di GNU/Linux ......... 4
Kegiatan 3. Menjalankan Python melalui
i
un
terminal Linux................................................... 4
Kegiatan 4. Menjalankan Python dari IDLE...... 6
Kegiatan 5. Instalasi GvRng............................. 6
h
Guido............................................................... 7
Lembar Kerja Praktikum 1....................................... 9
i
ad
Pendahuluan........................................................... 11
am
Koordinat robot................................................. 11
Arah menghadap robot.................................... 12
Beeper (sumber bunyi).................................... 12
uh
Kegiatan Praktikum................................................. 13
Kegiatan 1. Menggerakkan robot ke depan...... 13
©M
s
PRAKTIKUM 3 : FUNGSI............................................. 21
es
Tujuan..................................................................... 21
Pendahuluan........................................................... 21
Pr
Instruksi define.............................................. 21
Indentasi dan blok............................................ 22
Kegunaan Fungsi............................................. 24
ity
Kegiatan Praktikum................................................. 27
Kegiatan 1. Membuat instruksi baru................. 27
rs
Kegiatan 2. Melakukan pekerjaan yang sama . 29
Kegiatan 3. Mengelompokkan pekerjaan......... 30
Tujuan..................................................................... 35
ad
Pendahuluan........................................................... 35
Perulangan....................................................... 35
m
Pengambilan keputusan................................... 37
am
Kegiatan Praktikum................................................. 44
Kegiatan 1. Perulangan.................................... 44
©M
vi
PRAKTIKUM 5 : PERULANGAN KONDISIONAL........ 49
Tujuan..................................................................... 49
Pendahuluan........................................................... 49
Kegiatan Praktikum................................................. 52
s
Kegiatan 1. NIM dengan beeper....................... 52
es
Kegiatan 2. Robot Line Follower...................... 53
Kegiatan 3. Menutup semua pintu dan jendela. 55
Pr
Kegiatan 4. Robot penjinak bom...................... 56
Lembar Kerja Praktikum 5....................................... 58
ity
Contoh soal UTS dan jawaban................................... 60
rs
PRAKTIKUM 6 : DATA DAN OPERATOR.................... 65
Tujuan..................................................................... 65
ve
Pendahuluan...........................................................
TIPE DATA.......................................................
i 65
65
un
OPERATOR..................................................... 70
Kegiatan Praktikum................................................. 75
Kegiatan 1. Identitas......................................... 75
h
Kegiatan 2. Akun.............................................. 75
ya
Kegiatan 3. Operator........................................ 76
Kegiatan 4. Tipe Data....................................... 77
i
Kegiatan 2. Akun.............................................. 80
Kegiatan 3. Operator........................................ 81
m
Tujuan..................................................................... 83
Pendahuluan........................................................... 83
©M
vii
Kegiatan 1. Perulangan.................................... 88
Kegiatan 2. Password....................................... 88
Kegiatan 3. Ucapan selamat............................ 89
Kegiatan untuk penggemar pemrograman
s
(tidak dikumpulkan).......................................... 90
es
PRAKTIKUM 8 : FUNGSI............................................. 91
Pr
Tujuan..................................................................... 91
Pendahuluan........................................................... 91
Pembuatan dan pemanggilan fungsi................ 91
ity
Parameter atau argumen fungsi....................... 93
Scope dari variabel.......................................... 95
rs
Modul............................................................... 96
Kegiatan Praktikum................................................. 98
ve
Kegiatan 1. Membuat modul.............................
Kegiatan 2. Membuat fungsi.............................
i 98
99
un
Pendahuluan........................................................... 101
ya
viii
Komunikasi melalui socket............................... 107
Program di sisi server...................................... 108
Program di sisi client........................................ 109
Aplikasi client-server sebagai mesin
s
penjawab otomatis........................................... 111
es
Kegiatan Praktikum................................................. 113
Kegiatan 1. Data diri dari server....................... 113
Pr
Kegiatan 2. Informasi tentang server............... 114
Kegiatan 3. Menghitung luas bangun geometri 115
Kegiatan bagi penggemar pemrograman
ity
(tidak dikumpulkan).......................................... 116
Lembar Kerja Praktikum 10..................................... 117
rs
PRAKTIKUM 11 : TOPIK LANJUT (PROGRAM GUI) . 119
ve
Tujuan..................................................................... 119
Pendahuluan........................................................... 119
i
un
Program berbasis GUI..................................... 119
Dasar pemrograman dengan Tkinter............... 121
Penempatan objek pada window..................... 123
h
Tujuan..................................................................... 131
Pendahuluan........................................................... 131
Akses informasi melalui web............................ 131
Modul http.server............................................. 132
ix
Kelas SimpleHTTPRequestHandler................. 132
Kelas CGIHTTPRequestHandler..................... 134
Kegiatan Praktikum................................................. 139
Kegiatan 1. Membuat server web dengan
s
SimpleHTTPRequestHandler........................... 139
es
Kegiatan 2. Membuat halaman web dengan
CGIHTTPRequestHandler............................... 140
Pr
Kegiatan 3. Aplikasi web dengan CGI.............. 140
Kegiatan bagi penggemar pemrograman
(tidak dikumpulkan).......................................... 142
ity
Lembar Kerja Praktikum 12..................................... 143
rs
i ve
un
h
i ya
ad
m
am
uh
©M
x
PRAKTIKUM 1 :
INSTALASI DAN DASAR
PROGRAM
s
es
Pr
Tujuan
ity
Memahami cara menginstal, menjalankan dan menutup
rs
Python dan GvRng dan memahami dasar penggunaan
software.
Pendahuluan
i ve
un
s
5. World Editor. Tab ini berisi area tempat menulis
es
atau mengedit Dunia robot Guido Sn mengedit
posisi awal robot.
Pr
ity
rs
i ve
un
h
i ya
ad
m
am
sebagai berikut.
1. Menu GvR mempunyai dua submenu: Open
©M
s
Lessons, GvR WorldBuilder dan About.
es
Kegiatan Praktikum
Pr
Kegiatan 1. Instalasi Python dan IDLE di
ity
Windows
Kegiatan ini dilakukan pada sistem operasi Microsoft
rs
Windows. Jika sistem operasi Windows tidak tersedia,
asisten dapat membatalkan Kegiatan 1 ini.
ve
1. Unduh installer program Python dari website www.
Python.org, atau salin dari asisten atau temanmu.
i
un
Pastikan saudara mengunduh versi terbaru
dan menggunakan IDLE sebagai lingkungan
pemrograman.
h
s
agar dilakukan pada sistem operasi GNU/Linux dengan
es
menggunakan distro Ubuntu. Sebelum melakukan kegiatan
ini, pastikan terdapat koneksi internet atau koneksi ke
Pr
server repositori.
1. Bukalah sebuah terminal.
ity
2. Pada terminal tersebut, berikan perintah berikut:
rs
sudo apt-get install idle
3.
password saudara. i ve
Buat sebuah launcher ke program IDLE pada
un
desktop Ubuntu saudara. Pada Ubuntu dengan
desktop Unity, ikon pada desktop dapat dibuat
dengan mengklik ikon “Dash Home”, lalu mencari
h
terminal Linux
am
s
es
>>> print(“Nama saya nnn”) # ganti nnn
dengan nama lengkapmu
Pr
4. Berikan perintah berikut pada terminal Python:
>>> print(“NIM: nnn”) # ganti nnn dengan
ity
NIM saudara
rs
5. Berikan perintah berikut pada terminal Python:
>>> quit()
6. ve
Buatlah screen shot dari terminal Python setelah
i
printah 1 – 5 selesai dikerjakan dan salin ke lembar
un
kerja.
h
i ya
ad
m
am
uh
©M
s
>>> A = 2 + 3
es
3. Berikan perintah-perintah berikut pada window
Pr
IDLE:
>>> B = 7+1; # di akhir perintah ada titik
ity
koma
>>> N = NIM3; # ganti NIM3 dengan tiga
rs
digit terakhir NIM
>>> L = N + 100;
>>> print(L);
4.
ve
Buatlah screen shot dari window IDLE setelah
i
un
perintah 1 – 3 selesai dikerjakan dan salin ke lembar
kerja. Setelah itu, window IDLE dapat ditutup.
h
s
3. Letakkan sebuah launcher pada desktop komputer
es
saudara.
4. Buatlah screen shot dari desktop saudara dan
Pr
salin ke lembar kerja.
ity
Kegiatan 6. Membuat / mengedit Dunia robot
Guido
rs
1. Klik ganda ikon GvRng yang terdapat pada
ve
desktop atau ketik “gvrng” pada sebuah terminal
GNU/Linux. Jika instalasi benar, maka akan tampil
i
window seperti pada Gambar 1.
un
2. Carilah menu “GvR” dan klik, kemudian klik
submenu “Open WorldBuilder”. Window GvRng
akan menampilkan Dunia bagi robot Guido. Robot
h
s
disimpan sebagai sebuah file.
es
Pr
ity
rs
i ve
un
h
i ya
ad
m
am
s
asisten.
es
NIM :
Nama :
Tanda tangan:
Pr
Nama asisten :
Tanggal Praktikum :
ity
rs
Kegiatan 1.
Berikut adalah screen shot dari window pada saat saya
melakukan instalasi: i ve
un
Berikut adalah screen shot dari desktop komputer saya
setelah proses instalasi selesai:
h
ya
Kegiatan 2.
Berikut adalah screen shot dari desktop komputer saya
i
Kegiatan 3.
m
Kegiatan 4.
Berikut adalah screen shot dari window IDLE setelah
©M
s
Kegiatan 6.
es
Berikut adalah screen shot dari window GvRng setelah
Pr
langkah 1 – 4 selesai dikerjakan.
ity
rs
i ve
un
h
i ya
ad
m
am
uh
©M
s
es
Pr
Tujuan
Memahami cara memprogram robot, menggunakan
ity
instruksi-instruksi gerakan dan menapaki jalan.
rs
Pendahuluan
i ve
Sebelum membuat program untuk robot Guido pada
program GvRng, perlu diketahui beberapa istilah yang
un
dikenal dalam program tersebut.
h
Koordinat robot
ya
robot 1 1 E 0
s
kedua menunjukkan posisi vertikal.
es
Arah menghadap robot
Pr
Robot Guido dapat disetel menghadap ke utara (North),
ity
timur (East), selatan (South) atau barat (West). Keempat
arah tersebut sesuai dengan posisi mata angin pada peta
standar dan masing-masing posisi disimbolkan dengan
rs
huruf N, E, S dan W.
i ve
Gambar 5. Simbol arah menghadap robot
un
robot 5 2 N 0
i
menghadap ke utara.
m
Kegiatan Praktikum
s
es
Kegiatan 1. Menggerakkan robot ke depan
1. Jalankan program GvRng. Pada saat program baru
Pr
dijalankan, robot berada pada koordinat 1 1 dan
menghadap ke timur.
ity
2. Ketikkan perintah berikut pada tab “Code Editor”:
move
rs
move
turnoff
lembar kerja.
ya
s
antara titk-titik sehingga membentuk garis. Setelah
es
itu klik tab “World Editor”. Pastikan pada baris
pertama terdapat kode:
Pr
robot 1 3 E 0
ity
Kode itu berarti bahwa robot diletakkan di koordinat
1 3, menghadap ke timur (East) dan tidak membawa
rs
Beeper.
2. Klik tab “Code Editor” dan tuliskan perihtah berikut:
move
move
i ve
un
move
turnleft
h
move
move
ya
turnleft
turnleft
i
ad
turnoff
robot 1 3 E 4
am
Beeper.
2. Tuliskan perintah berikut pada tab “Code Editor”:
©M
move
putbeeper
move
s
move
es
putbeeper
move
Pr
turnoff
ity
apa yang dilakukan robot. Tuliskan juga posisi robot
sekarang dan ke mana robot menghadap.
rs
Kegiatan 5. Perjalanan lebih jauh
1. ve
Buatlah Dunia robot seperti terlihat pada Gambar
i
7. Pastikan robot menghadap ke arah jalan masuk
un
dan membawa 3 buah Beeper di kantongnya.
2. Pada “Code Editor” ketiklah sebuah program agar
h
turnoff.
3. Klik tombol “Execute”.
m
s
asisten.
es
NIM :
Nama :
Tanda tangan:
Pr
Nama asisten :
Tanggal Praktikum :
ity
rs
Kegiatan 1.
Yang terjadi setelah tombol “Execute” ditekan:
Koordinat robot sekarang: i ve
Berikut adalah screen shot dari window GvRng setelah
un
tombol “Execute” ditekan:
h
Kegiatan 2.
ya
Kegiatan 3.
m
Kegiatan 4.
Yang dilakukan robot setelah tombol “Execute” ditekan:
©M
s
Kegiatan 6.
es
Berikut adalah screen shot dari window GvRng setelah
Pr
tombol “Execute” ditekan:
ity
rs
i ve
un
h
i ya
ad
m
am
uh
©M
20
uh
am
m
ad
iya
h
un
ive
s
es
Pr
Tujuan
Memahami cara membuat instruksi baru (dalam bentuk
ity
fungsi)
rs
Pendahuluan
i ve
Robot Guido mengenali sebuah syntax (yaitu instruksi dan
aturan penulisannya) yang dapat digunakan untuk membuat
un
instruksi baru atau mengelompokkan instruksi-instruksi
menjadi satu instruksi baru.
h
ya
Instruksi define
Instruksi define digunakan untuk membuat instruksi
i
define instruksiBaru:
instruksi
am
instruksi
...
uh
s
es
Guido akan menghadap ke kanan, jika diperintah untuk
menghadap ke kri tiga kali!
Pr
Indentasi dan blok
ity
Program pada GvRng menggunakan indentasi untuk
mengelompokkan perintah-perintah. Kelompok perintah
rs
dalam program disebut juga blok. Misalnya pada instruksi
define turnright: di atas, tiga buah perintah turnleft
ve
dibuat menjorok ke dalam (indentasi) sebagai tanda bahwa
ketiga instruksi tersebut merupakan satu kelompok atau
i
un
satu blok.
1 define instruksiBaru:
h
menjorok ke dalam
3 instruksi #instruksi ini ditulis
i
menjorok ke dalam
ad
Contoh 1
am
Gambar 9.
rs
i ve
un
h
i ya
ad
m
am
uh
©M
s
5 move
es
6 move
7 move
Pr
8 turnright
9 move
10 move
ity
11 move
12 turnright
rs
13 move
14 move
15
16
move
turnoff
i ve
un
Kegunaan Fungsi
ya
Fungsi.
Dalam pemrograman, Fungsi dapat digunakan untuk:
am
s
instruksi berulang, misalnya baris 5 – 7, baris 9 – 11 dan
es
baris 13 – 15. Kumpulan instruksi yang berulang dapat
dikelompokkan menjadi sebuah Fungsi.
Pr
Program 2 di bawah ini melakukan pekerjaan yang
sama dengan Program 1. Program 2 mempunyai dua
ity
buah Fungsi. Fungsi hadapkanan (baris 1 – 4) dibuat
sebagai instruksi baru karena robot tidak mempunyai
instruksi khusus untuk melakukan pekerjaan menghadap
rs
ke kanan. Fungsi gerak3langkah (baris 5 – 8) berguna
ve
untuk mengelompokkan baris-baris instruksi yang sering
dijalankan, yaitu 3 buah instruksi move. Program 2
i
mempunyai instruksi yang lebih sedikit dibanding Program 1.
un
1 define hadapkanan:
h
2 turnleft
3 turnleft
ya
4 turnleft
5 define gerak3langkah:
i
ad
6 move
7 move
m
8 move
9 gerak3langkah
am
10 hadapkanan
11 gerak3langkah
12 hadapkanan
uh
13 gerak3langkah
14 turnoff
©M
s
Informatika UMS dan mempunyai NIM L200070819.
es
mas Xeno mencoba membuat sebuah program agar
robot menuliskan tiga digit terakhir NIM-nya dengan
Pr
menggunakan 38 buah Beeper. Berikut pada Gambar
10 adalah screen shot Dunia robot setelah program
ity
dijalankan, sedangkan Program 3 merupakan template
dari program yang dibuat mas Xeno.
rs
Pekerjaan menulis angka dilakukan dengan fungsi
yang berbeda-beda. Ada fungsi untuk menulis angka 8,
ve
fungsi untuk menulis angka 1 dan fungsi untuk menulis
angka 9. Pengelompokan instruksi tersebut menjadikan
i
program mudah dicermati dan diuji. Satu per satu
un
fungsi dapat dibuat secara bertahap, kemudian diuji,
lalu ditambahkan fungsi lain, lalu diuji dan seterusnya.
Pada program mas Xeno, fungsi tulis8 terdiri atas
h
s
5 ...
es
6 define tulis9:
7 ...
Pr
8 ...
9 define tulis1:
10 ...
ity
11 ...
12 tulis8
rs
13 tulis1
14 tulis9
15 turnoff i ve
un
Program 3: Template program untuk contoh 2 Praktikum 3
Kegiatan Praktikum
ad
1 move
2 move
h
3 move
ya
4 move
5 turnleft
i
ad
6 turnleft
7 turnleft
m
8 move
9 move
am
10 move
11 turnleft
12 turnleft
uh
13 turnleft
14 move
©M
15 move
16 turnleft
17 turnleft
18 turnleft
28 Algoritma dan Pemrograman
19 move
20 turnleft
21 turnleft
22 turnleft
s
23 move
es
24 turnoff
Pr
Program 4. keg 1
ity
1. Menggunakan Dunia robot seperti pada Gambar
11, buatlah program agar robot meletakkan sebuah
rs
Beeper pada setiap sudut. Setelah program
ve
dijalankan, Dunia robot akan tampak seperti
Gambar 12. Program saudara tidak boleh lebih dari
19 baris.
i
un
2. Tuliskan program saudara pada lembar kerja.
h
i ya
ad
m
am
uh
©M
s
penjelasan praktikum ini).
es
2. Tuliskan jumlah Beeper yang saudara butuhkan
dan jumlah baris program saudara.
Pr
3. Buatlah screen shot dari window GvRng setelah
program dijalankan dan salin ke lembar kerja.
ity
Kegiatan 4. Efisien dengan fungsi
rs
1. Buatlah program menggunakan template pada
ve
Program 3 (yang dibahas pada contoh 2). Program
tersebut mempunyai tiga buah Fungsi, dan menulis
i
angka 819 menggunakan 38 buah Beeper.
un
2. Tuliskan pada lembar kerja, jumlah baris program
yang saudara butuhkan untuk menyelesaikan
h
pekerjaan tersebut.
ya
define gerakLetak:
©M
move
putbeeper
s
es
Kegiatan 5. Lagi, mengerjakan pekerjaan yang
sama
Pr
1. Buatlah program agar robot memasuki area
kotak seperti pada Gambar 13, dan meletakkan
ity
sebuah beeper pada setiap sudut kotak. Sebelum
program berjalan, robot menghadap ke utara dan
rs
membawa 4 beeper. Setelah program berjalan,
robot menghadap ke selatan.
2.
ve
Tuliskan program saudara pada lembar kerja.
Catatan: program dapat dibuat dengan 16 instruksi.
i
un
Saudara diperkenankan membuat program dengan
maksimal 20 instruksi.
h
i ya
ad
m
am
uh
(a) (b)
Gambar 13. Dunia robot untuk kegiatan 5 Praktikum 3: (a)
©M
s
dengan Beeper) harus diletakkan di meja di depan
es
kamar hotel. Hotel mempunyai 6 buah kamar dan
jalur yang harus dilalui Guido tampak seperti
Pr
Gambar 14. Meja kamar terletak di koordinat 4 2, 7
2, 10 2, 4 5, 7 5 dan 7 10. Buatlah program untuk
ity
robot tersebut agar sarapan dapat diantarkan ke
tiap meja dan Guido kembali ke posisi semula.
rs
2. Tuliskan program saudara di lembar kerja. Catatan:
mas Xeno dapat membuat program dengan 33
baris instruksi. i ve
un
h
i ya
ad
m
am
s
asisten.
es
NIM :
Nama :
Tanda tangan:
Pr
Nama asisten :
Tanggal Praktikum :
ity
rs
Kegiatan 1.
Berikut adalah program (tidak lebih dari 20 baris) yang saya
buat: i ve
un
Kegiatan 2.
Berikut adalah program (tidak lebih dari 19 baris) yang saya
h
buat:
ya
Kegiatan 3.
i
Kegiatan 4.
uh
hadapkanan:
Jumlah baris instruksi setelah menggunakan fungsi
gerakLetak:
Kegiatan 5.
s
Jumlah baris instruksi pada program saya:
es
Berikut adalah program (maksimal 20 baris) yang saya buat:
Pr
Kegiatan 6.
ity
Jumlah baris instruksi pada program saya:
Berikut adalah program yang saya buat:
rs
i ve
un
h
i ya
ad
m
am
uh
©M
s
es
KEPUTUSAN
Pr
ity
Tujuan
rs
Memahami konsep perulangan dan konsep pengambilan
keputusan oleh mesin i ve
un
Pendahuluan
Di antara kekuatan sebuah komputer dan mesin
h
Perulangan
am
do jumlahPerulangan:
s
instruksi1 #instruksi yang diulang
es
instruksi2 #instruksi yang diulang
Pr
Perhatikan penggunaan indentasi (penulisan menjorok
ke dalam) sebagai penanda bahwa instruksi1 dan instruksi2
merupakan satu kesatuan (satu blok). Sebagai contoh,
ity
pada program berikut:
rs
do 3:
move
putbeeper i ve
un
instruksi move dan putbeeper akan dikerjakan sebanyak
3 kali. Pada program berikut:
h
do 3:
ya
move
putbeeper
i
ad
1 define turnright:
2 turnleft
©M
3 turnleft
4 turlleft
5 do 2:
s
10 do 3:
es
11 move
12 turnoff
Pr
Program 5: Program dengan perulangan
ity
1 define hadapkanan:
2 do 3:
rs
3 turnleft
4 define gerak3langkah:
5
6
do 3:
move
i ve
un
7 do 2:
8 gerak3langkah
9 hadapkanan
h
10 gerak3langkah
ya
11 turnoff
i
Pengambilan keputusan
m
Kondisi Makna
1. front_is_clear Lokasi di depan robot
tidak ada penghalang
s
5. right_is_clear
es
6. right_is_blocked
7. next_to_a_beeper Robot berada pada
Pr
posisi yang sama dengan
Beeper (pada koordinat
yang sama)
ity
8. not_next_to_a_beeper Robot tidak berada pada
posisi dekat Beeper
rs
9. any_beepers_in_beeper_bag Kantong beeper berisi
10. no_beepers_in_beeper_bag Kantong beeper kosong
11. facing_north
12. not_facing_north
13. facing_south
ve
Menghadap utara
Tidak menghadap utara
i
un
14. not_facing_south
15. facing_east
h
16. not_facing_east
17. facing_west
ya
18. not_facing_west
i
ad
sebagai berikut.
am
if kondisi:
keputusan
uh
if front_is_clear:
move
s
if left_is_clear:
es
turnleft
move
Pr
putbeeper
ity
ada penghalang, jika tidak ada penghalang maka robot
berbelok ke kiri, maju satu langkah dan meletakkan beeper.
rs
Contoh 1
ve
Mas Xeno sedang mencoba mengembangkan Guido
i
menjadi robot pemadam api. Mas Xeno mensimulasikan
un
sebuah lorong gedung di mana terdapat sebuah titik
api yang harus dipadamkan oleh robot dalam bentuk
h
s
5 turnleft
es
6 do 6:
7 move
Pr
8 turnoff
ity
1 do 6:
rs
2 move
3 if next_to_a_beeper:
4
5
pickbeeper
turnleft
i ve
un
6 turnleft
7 do 6:
8 move
h
9 turnoff
ya
s
5 turnleft
es
6 turnleft
7 do 6:
Pr
8 move
9 turnoff
ity
Program 9: Program robot pemadam api versi 1.2
rs
Baris 1 – 4 pada Program 9 berarti, robot harus
mengulangi perintah baris 2 – 4 sebanyak 6 kali. Perintah
ve
baris 2 berarti bergerak satu langkah dan perintah
baris 3 – 4 berarti memeriksa apakah ada titik api, dan
i
jika ada, maka padamkan. Cobalah meletakkan 3 titik
un
api pada tempat yang berbeda di lorong dan jalankan
program tersebut.
h
ya
if kondisi:
am
keputusan
else:
keputusanlain
uh
if front_is_blocked:
turnleft
s
penghalang, jika ada penghalang maka robot menghadap
es
ke kiri dan jika tidak ada penghalang maka robot maju satu
langkah.
Pr
Lebih banyak kondisi dan lebih banyak
keputusan
ity
Lebih banyak kondisi dapat diperiksa dengan
rs
menggunakan perintah if yang banyak atau gabungan
perintah if – elif – else. Perhatikan contoh berikut.
if front_is_clear:
move
i ve
un
elif left_is_clear:
turnleft
h
move
ya
else:
turnoff
i
ad
if front_is_blocked:
©M
if left_is_blocked:
turnoff
else:
s
es
Kegiatan Praktikum
Pr
Kegiatan 1. Perulangan
1. Kerjakan kembali kegiatan 5 Praktikum 3. Kali ini,
ity
gunakan perintah perulangan. Program saudara
tidak boleh lebih dari 16 baris.
rs
2. Tuliskan program yang saudara buat pada lembar
kerja.
robot 2 4 E 0
ad
beepers 3 7 1
beepers 5 7 1
m
beepers 7 7 1
am
ve
Kegiatan 3. Titik api yang acak
i
un
1. Modifikasi program pada kegiatan 2 di atas agar
titik api yang dipadamkan tidak harus berada di
ujung lorong dan jumlahnya bisa bervariasi, tidak
h
s
17.
es
Pr
ity
rs
i ve
un
h
ya
3) belok kanan
4) ulangi perintah-perintah berikut sebanyak
4 kali
s
b. berbalik, dan kembali ke rumah
es
c. Selesai
Pr
3. Ujilah program saudara beberapa kali dengan
meletakkan beeper pada posisi yang berbeda-
beda. Buatlah 2 buah screen shot, yaitu sebelum
ity
dan sesudah program dijalankan. Salin keduanya
ke lembar kerja.
rs
4. Tuliskan program yang saudara buat di lembar
ve
kerja.
i
Lembar Kerja Praktikum 4
un
NIM :
Nama :
i
Tanda tangan:
ad
Nama asisten :
Tanggal Praktikum :
m
am
Kegiatan 1.
Berikut adalah program (tidak lebih dari 20 baris) yang saya
uh
buat:
©M
Kegiatan 2.
Berikut adalah program (tidak lebih dari 19 baris) yang saya
buat:
Kegiatan 4.
s
es
Berikut adalah screen shot window GvRng, sebelum
program dijalankan (setelah klik tombol Reload)
Pr
Berikut adalah screen shot window GvRng, setelah program
dijalankan (setelah klik tombol Execute)
ity
rs
Listing program adalah sebagai berikut:
i ve
un
h
i ya
ad
m
am
uh
©M
s
es
Pr
Tujuan
ity
Memahami konsep perulangan kondisional
rs
Pendahuluan
ve
Perintah do melakukan perulangan dengan jumlah
i
un
yang pasti. Pada simulasi pencarian koin (Praktikum 4) pada
area seluas 7 x 5, robot melakukan perulangan dengan
jumlah yang pasti.
h
while kondisi:
m
Pr
3 turnoff
ity
Gambar 18. Robot line follower
rs
while right_is_blocked:
2 move
3 turnoff
ve
Program 10: Program robot line follower sederhana
i
un
dengan benar.
am
s
dikerjakan sebelum perulangan dimulai
es
4. Pastikan setiap kali iterasi (perulangan) dikerjakan,
ada progres ke arah penyelesaian perulangan.
Pr
5. Pastikan kondisi yang diuji akan menjadi bernilai
FALSE sehingga perulangan selesai
ity
Perintah while dapat menyebabkan program menjadi
“hang” jika perulangan tidak pernah selesai (infinite loop).
rs
i ve
un
h
i ya
ad
semula.
1 while right_is_blocked:
2 if front_is_clear:
s
es
Program 11. Infinite loop pada baris 1 – 5. Tidak pernah sampai
ke baris 6
Pr
1 putbeeper
2 move
ity
3 while not_next_to_a_beeper:
4 if front_is_clear:
rs
5 move
6 else:
7
8
9
turnleft
turnleft
pickbeeper
i ve
un
10 turnoff
Kegiatan Praktikum
i
ad
dijalankan.
©M
s
2 do 8:
es
3 putbeeper
4 move
Pr
5 putbeeper
6 move
7
ity
do 9:
8 putbeeper
9 move
rs
10 turnoff
2.
i ve
Gambar 20. Program menulis NIM dengan tumpukan beeper
lembar kerja.
ya
Pr
3 turnoff
ity
Gambar 21. Program robot line follower sederhana; jika di sisi
kanan robot ada garis, maka robot akan bergerak maju, jika
tidak maka robot dimatikan
rs
2. Program pada Gambar 21 berjalan baik hanya pada
ve
garis lurus. Modifikasi program tersebut agar robot
dapat mengikuti garis yang mempunyai belokan
i
un
ke kiri tapi tidak mempunyai belokan ke kanan.
Ujilah program saudara pada berbagai bentuk
garis, termasuk Dunia robot seperti Gambar 22.a.
h
(a) (b)
©M
Gambar 22. Dunia robot untuk pengujian robot line follower: (a)
garis mempunyai belokan ke kiri, (b) garis mempunyai belokan
ke kiri dan ke kanan
s
berbagai bentuk garis, termasuk Dunia robot
es
seperti Gambar 22.b. Tuliskan program saudara
pada lembar kerja. Petunjuk: robot bergerak maju
Pr
jika di kanan ada dinding/garis dan di depan tidak
ada penghalang; jika di depan ada penghalang,
robot menghadap ke kiri; jika di kanan tidak ada
ity
dinding/garis, robot menghadap ke kanan dan
maju satu langkah.
rs
Kegiatan 3. Menutup semua pintu dan jendela
1. ve
Sebuah robot penjaga gedung diminta menutup
i
semua pintu dan jendela jika hari sudah sore.
un
Dunia robot pada Gambar 23.(a) mensimulasikan
situasi salah satu ruang berukuran 7 x 5. Pintu dan
h
(a) (b)
Gambar 23. Robot penutup pintu dan jendela
s
dijalankan, dunia robot akan tampak seperti
es
Gambar 23.(b). Petunjuk: berikut adalah salah satu
algoritma yang bisa saudara gunakan (saudara
Pr
boleh menggunakan cara lain jika menginginkan):
a. Letakkan beeper
ity
b. Hadap kanan
c. Maju satu langkah
rs
d. Selama robot tidak dekat beeper, lakukan
perintah berikut:
ve
1) cek dinding kanan, jika lowong maka
letakkan beeper
i
un
2) cek dinding depan, jika lowong maka
maju, jika tidak maka hadap kiri dan maju
e. Ambil beeper dan hadap kiri
h
ya
f. Selesai
3. Modifikasi dunia robot dengan mengubah posisi
i
lembar kerja.
am
s
1 while not_next_to_a_beeper:
es
2 if right_is_blocked:
3 if front_is_clear:
Pr
4 move
5 else:
6 turnleft
ity
7 else:
8 turnleft
rs
9 turnleft
10
ve
turnleft
11 move
12 pickbeeper
i
un
13 turnoff
s
Lembar Kerja Praktikum 5
es
Setelah kegiatan selesai, lembar kerja (Diisi oleh Asisten)
Pr
ini dicetak (di-print) dan dikumpulkan ke Nilai praktek:
asisten.
ity
NIM :
Nama :
Tanda tangan:
rs
Nama asisten :
Tanggal Praktikum :
i ve
un
Kegiatan 1.
Screen shot dari window GvRng setelah program menulis 3
digit terakhir NIM saya:
h
ya
Kegiatan 2.
m
dan ke kanan:
©M
Kegiatan 3.
Berikut adalah program menutup pintu dan jendela versi
saya:
s
es
Kegiatan 4
Pr
Pengertian dari program (5 – 10 baris kalimat dan ditulis
tangan):
ity
Algoritma versi saya (ditulis tangan):
rs
i ve
un
h
i ya
ad
m
am
uh
©M
s
mengambil semua beeper, dan meletakkan semua
es
beeper di ujung lorong yang lain. Dunia robot tampak
seperti gambar. Program saudara tidak boleh lebih dari
Pr
30 baris!
ity
rs
i ve
un
h
ya
Jawab:
i
ad
1 define langkah3:
2 do 3:
m
3 move
4 define turnright:
am
5 do 3:
6 turnleft
7 define ambil:
uh
8 langkah3
9 turnleft
©M
10 langkah3
11 turnleft
12 move
13 pickbeeper
s
18 move
19
es
move
20 turnleft
21 do 3:
Pr
22 ambil
23 move
ity
24 do 3:
25 putbeeper
26 turnoff
rs
2.
ve
Buatlah program maksimal 30 baris agar robot
mengelilingi semua kotak yang ada kemudian robot
i
kembali ke posisi semula. Jika robot menemukan
un
beeper, maka beeper harus diambil. Posisi beeper bisa
diubah-ubah tapi selalu dekat dengan kotak.
h
i ya
ad
m
am
1 define keliling:
2 do 4:
3 if next_to_a_beeper:
4 pickbeeper
s
9 move
10
es
do 3:
11 do 3:
12 move
Pr
13 keliling
14 turnleft
ity
15 turnleft
16 do 9:
17 move
rs
18 turnleft
19
ve
turnleft
20 turnoff i
un
1 define keliling:
2 do 4:
h
3 if next_to_a_beeper:
ya
4 pickbeeper
5 move
i
6 if next_to_a_beeper:
ad
7 pickbeeper
8 move
m
9 turnleft
10 move
am
11 keliling
12 do 3:
uh
13 move
14 keliling
15 do 3:
©M
16 move
17 keliling
18 turnleft
19 turnleft
s
24 turnoff
es
Catatan: Program pertama lebih sedikit jumlah
Pr
instuksinya, yaitu 20 baris. Pada program kedua robot
melakukan lebih sedikit instruksi move, yaitu 22 kali
sedangkan pada program pertama robot melakukan
ity
26 instruksi move. Program kedua lebih hemat energi
robot!!
rs
i ve
un
h
i ya
ad
m
am
uh
©M
64
uh
am
m
ad
iya
h
un
ive
s
es
Pr
Tujuan
Memahami berbagai macam tipe data dan operator pada
ity
bahasa pemrogrman Python
rs
Pendahuluan
i ve
Data secara permanen disimpan di harddisk, flash disk
dan media penyimpanan sekunder lainnya. Data diolah oleh
un
sebuah program komputer. Ketika mengolah data, program
komputer meletakkan data ke memori komputer dalam
bentuk “objek”. Objek tidak hanya terkait data, namun juga
h
TIPE DATA
m
jenis yang disebut dengan tipe data. Tipe data pada python
dibagi dalam dua kelompok besar, yaitu data primitif (data
tunggal) dan data koleksi (atau iterables). Data primitif/
uh
1. Bilangan bulat
Tipe data bilangan bulat (integer) digunakan untuk
Algoritma dan Pemrograman 65
menyimpan bilangan bulat dan tidak mempunyai titik
desimal (dan angka di belakang koma desimal) dan
bukan merupakan angka pecahan. Ada 2 tipe data
integer dalam Python yaitu int dan long. Tipe
s
data int hanya dapat digunakan menyimpan angka
es
10 digit, sedangkan tipe data long dapat digunakan
menyimpan angka yang lebih besar dengan digit yang
Pr
lebih banyak.
Contoh: angka 75000 dapat disimpan dengan objek
ity
bertipe int, sedangkan angka 123456789099123
harus disimpan dalam objek bertipe long.
rs
2. Bilangan desimal
ve
Bilangan desimal atau bilangan pecahan merupakan
bilangan yang ditulis menggunakan titik desimal
i
(program Python menggunakan titik untuk menandai
un
desimal, bukan koma). Ada 2 tipe data bilangan desimal
yang dikenal Python yaitu float dan double.
Objek dengan tipe data double dapat digunakan
h
3. String
ad
s
string yang panjang
7
es
yang terdiri atas berbaris-baris huruf”””
Pr
String hanya mengenal dua operator aritmatika, yaitu
ity
operator + yang bermakna penggabungan string, dan
operator * yang bermakna mengulangi penggabungan
rs
string. Pengolahan string tidak dapat menggunakan
operator - atau /. Sebuah program dapat membaca
ve
huruf-huruf yang ada dalam string dengan menyebut
nama objek string dan indeksnya.
i
un
1 S = ‘Namaku Hiroko’
2 P = ‘Pada kalimat “’ + S + ‘” terdapat ‘ +
str(len(S))+ ‘ huruf’
h
3 print(P)
ya
5
ad
print(S * 2)
s
pada komputer.
es
1 S = ‘Aku biasa dipanggil Hiroko’
Pr
2 print(S[4:19]) # slicing dari indeks 4
hingga indeks 18
3 print(S[21:]) # slicing dari indeks 7
ity
hingga selesai
4 print(S[:3]) # slicing dari awal hingga
rs
indeks 2
5
ve
print(S[:4]) + S[10:]
indeks 4
3 C = A[1:4] # slicing, C juga menjadi tuple
4 B = (4, ‘yes’, -21, 44, ‘aduh’) # tuple
©M
s
indeks 1 ingin diubah menjadi ‘no’, dan proses ini gagal.
es
5. List
Pr
List sepenuhnya sama dengan tuple. Namun ada
dua perbedaan. Elemen sebuah list dapat diubah,
sedangkan elemen tuple tidak dapat diubah. List ditulis
ity
dengan tanda kurung siku, sedangkan tuple ditulis
dengan tanda kurung biasa.
rs
1 M = [3, 7, 7, 10] # sebuah list
2
ve
print(M[1]) # menampilkan elemen list
indeks 1
i
un
3 N = [4, ‘yes’, -21, 44, ‘aduh’] # list
berisi angka dan string
4 N[1] = ‘no’ # isi list dapat diubah
h
6. Dictionary
Dictionary merupakan daftar yang berisi pasangakan
m
indeks.
Dictionary diterapkan pada aplikasi penerjemahan
bahasa, aplikasi yang membutuhkan enumerasi, dan
1 D = {‘I’:’Aku’, ‘love’:’cinta’,
s
‘hate’:’benci’, ‘you’:’kamu’}
es
2 print(D[‘I’], D[‘love’], D[‘you’])
3 H = {1:’Min’, 2:’Sen’, 3:’Sel’, 4:’Rab’,
Pr
5:’Kam’, 6:’Jum’}
4 print(‘Hari ketiga dalam sepekan adalah’,
H[3])
ity
Program 19. Data bertipe dictionary
rs
7. Boolean
ve
Data bertipe Boolean mempunyai dua kemungkinan
nilai, yaitu True atau False, atau benar dan salah. Data
i
bertipe Boolean digunakan terutama pada proses
un
pengambilan keputusan. Hasil perbandingan antara
dua objek menghasilkan nilai boolean.
h
OPERATOR
ya
s
bilangan 9.5
es
berat = 50 Menyimpan bilangan 50 ke variabel
bernama berat
Pr
Membuat objek bernama berat dan
diisi bilangan 50
kode = ‘rahasia’ Menyimpan string ‘rahasia’ ke variabel
ity
bernama kode
Membuat objek bernama kode dan
rs
diisi string ‘rahasia’
M = [3, 7] Membuat objek bernama M berwujud
ve
list yang terdiri atas bilangan 3 dan 7
T = (2, 7, 19) Membuat objek bernama T berwujud
i
tuple yang terdiri atas bilangan 2, 7 dan
un
19
2. Operator Aritmatika
h
penggunaannya.
ad
+ Penjumlahan 7+3 9
am
- Pengurangan 7–3 4
/ Pembagian 7/3 2.33333333
// Pembagian dengan 7 // 3 2
uh
pembulatan
* Perkalian 7*3 21
©M
s
5 >>> print(A + B)
6
es
15
Pr
Baris pertama program tersebut adalah perintah
ity
membuat sebuah objek angka 9 dan diberi nama A.
Baris kedua adalah perintah membuat objek bernama
B yang diisi hasil perkalian 2 dan 3. Baris ketiga
rs
pada program itu adalah perintah bagi Python untuk
ve
menampilkan objek bernama A, hasilnya adalah angka
9 tampil di layar. Baris kelima adalah perintah bagi
i
Python untuk menampilkan objek hasil penjumlahan A
un
dan B.
3. Operator Perbandingan
h
== kesamaan 7 == 3 False
!= ketidaksamaan 7 != 3 True
> lebih dari 7>3 True
uh
s
apakah sebuah objek bertipe koleksi mempunyai
es
anggota yang bernilai sama dengan sebuah nilai (atau
data tunggal) tertentu.
Pr
Perhatikan program Python berikut ini.
ity
a = int(input(‘Masukkan sebuang angka’))
2 if a > 0:
3 print(‘Anda memasukkan angka positif’)
rs
4 elif a == 0:
5 print(‘Anda memasukkan nilai nol’)
6
7
else:
ve
print(‘Anda memasukkan angka negatif’)
i
un
Program 21. Menggunakan operator perbandingan
h
4. Operator Logika
uh
s
not Negasi not True False
es
not False True
and Logika DAN True and True True
Pr
True and False False
or Logika ATAU True or False True
False or False False
ity
Perhatikan program Python berikut ini.
rs
1 a = float(input(‘Masukkan sebuah angka: ‘))
2
3
if a > 0 and a % 2 == 0:
ve
print(‘Anda memasukkan angka positif
i
un
yang habis dibagi 2’)
4 if not a // 1 == a / 1:
5 print(‘Anda memasukkan bilangan
h
desimal’)
ya
s
saudara, mulai dari Nama, Alamat, umur, dan-lain-
es
lain hingga minimal 10 data diri. Pada program,
setiap data harus disimpan dalam sebuah objek
Pr
yang mempunyai nama. Berikut adalah contoh
bagian awal program.
ity
1 ## Program Identitas diri. Dibuat oleh
David L20000012
rs
2 Nama = ‘David Bohlam’
3 Alamat = ...
4 ...
2.
ve
Setelah program dapat berjalan, tunjukkan pada
i
un
asisten.
Kegiatan 2. Akun
h
contohnya.
ad
1 ## Program Akun
m
s
karena lahir pada tanggal 15 tahun 1990. Username
es
harus diolah dari objek Nama dan TanggalLahir.
4. Lanjutkan program tersebut untuk membuat dan
Pr
menampilkan password sementara. Password
dibuat dengan mengambil 3 huruf pertama dari
ity
Nama ditambah 3 angka acak. Misalnya password
sementara untuk David Bohlam adalah Dav594.
rs
5. Setelah program berjalan, tunjukkan pada asisten.
Kegiatan 3. Operator
1.
ve
Ketikkan perintah-perintah berikut ini pada mode
i
un
interaktif. Pada program tersebut, gantilah data
untuk Nama dan NIM sesuai identitas saudara.
h
nama saudara
2 >>> NIM = ‘L200100100 # ganti dengan NIM
saudara
i
ad
integer
5 >>> b = len(Nama)
am
6 >>> type(a)
7 >>> type(b)
8 >>> a / b
s
3. Lanjutkan program di atas dengan menuliskan
es
perintah-perintah di bawah ini. Setiap kali satu
perintah dikerjakan, tuliskan respon dari Python.
Pr
Tuliskan juga komentar pada lembar kerja mengapa
Python memberi respon seperti itu.
ity
13 >>> c = 12.5
14 >>> type(c)
rs
15 >>> a / c
16 >>> a // c
17 >>>
4.
a % c
ve
Lanjutkan program di atas dengan menuliskan
i
un
perintah-perintah di bawah ini. Setiap kali satu
perintah dikerjakan, tuliskan respon dari Python.
Tuliskan juga komentar pada lembar kerja mengapa
h
18 >>> c > b
i
s
3 >>> Tinggi = 1.71 # tinggi saudara dalam
es
satuan meter
4 >>> Berat = 65 # ganti dg berat badan
saudara
Pr
5 >>> TahunLahir = 1990 # ganti dg tahun
lahir saudara
ity
6 >>> Aku = (TahunLahir, Berat, Tinggi, NIM,
Nama)
7 >>> Data = [TahunLahir, Berat, Tinggi, NIM,
rs
Nama]
2.
ve
Lanjutkan program di atas dengan menuliskan
perintah-perintah di bawah ini. Setiap kali satu
i
un
perintah dikerjakan, tuliskan respon dari Python.
Tuliskan juga komentar pada lembar kerja mengapa
Python memberi respon seperti itu.
h
8 >>> type(Aku)
ya
9 >>> Aku[0]
10 >>> a = NIM % 4; Aku[a]
i
11 >>> type(Aku[a])
ad
12 >>> Aku[a:4]
13 >>> type(Aku[4])
m
15 >>> type(Data)
16 >>> type(Data[4])
17 >>> Data[4][5]
s
es
Lembar Kerja Praktikum 6
Pr
Hasil kegiatan 1 boleh diketik. Hasil (Diisi oleh Asisten)
praktikum kegiatan 2 – 4 harus ditulis
ity
Nilai praktek:
tangan.
NIM :
rs
Nama :
Tanda tangan:
ve
Nama asisten :
Tanggal Praktikum : i
un
Kegiatan 1. Identitas
h
1
ya
2
3
i
ad
4
5
m
6
7
am
8
9
10
uh
11
12
©M
13
14
15
s
20
es
21
22
Pr
23
24
25
ity
Kegiatan 2. Akun
rs
1
2
3
i ve
un
4
5
6
h
7
ya
8
9
i
10
ad
11
12
m
13
am
14
15
16
uh
17
18
©M
19
20
21
22
s
Kegiatan 3. Operator
es
No
Pr
6
7
8
ity
9
10
rs
11
12
13
14
i ve
un
15
16
17
h
18
ya
19
20
i
21
ad
Hasil
m
am
Komentar
uh
No
8
9
10
s
15
es
16
17
Pr
18
19
20
ity
21
rs
Hasil
Komentar i ve
un
h
yai
ad
m
am
uh
©M
s
es
KEPUTUSAN
Pr
ity
Tujuan
rs
Memahami konsep perulangan dan cara mewujudkan
perulangan di Python i ve
Memahami konsep pengambilan keputusan dan cara
un
mewujudkannya di Python
Pendahuluan
h
ya
s
es
Pada format di atas, variabel bertipe data tunggal,
iterables bertipe koleksi (yaitu tuple, list, atau string),
Pr
dan loop ditulis menjorok beberapa spasi ke dalam.
Perhatikan Program 23 berikut ini.
ity
1 # Program menampilkan isi list
2 # Oleh: programmer
rs
3 L = [3, 7, 11]
4 for x in L:
5
6
y = x**2 - 2*x + 1
print(x, y)
i ve
un
Program 23. Perulangan dengan for
s
Pada baris 3 program di atas, perintah range(10)
es
digunakan untuk membuat objek iterator dengan 10 nilai yaitu
mulai dari 0 hingga 9. Instruksi pada baris 4 menampilkan
Pr
nilai i. Artinya iterasi baris 3 – 4 akan menampilkan nilai 0
hingga 9.
ity
Instruksi yang menjadi bagian dari sebuah loop harus
ditulis menjorok ke dalam (indentasi). Jika loop terdiri atas
rs
beberapa baris, semua instruksi harus menjorok dengan
jumlah spasi yang seragam. Selain digunakan bersama
dan string.
i ve
list, perintah for dapat pula digunakan bersama tuple
un
Perulangan kondisional (bersyarat)
Perulangan seringkali harus dilakukan tanpa diketahui
h
...
loop
©M
...
11 j = 1
s
12 while j<100:
es
13 print(j, end=’ ‘)
14 j = 2 * j
Pr
Program 25. Perulangan kondisional
ity
Baris 3 – 4 pada Program 25 merupakan loop, yang
dikerjakan berulang-ulang selama kondisi pada baris 2
rs
bernilai True. Program di atas menampilkan nilai pangkat
dari angka 2 yang lebih kecil dari 100.
Pengambilan keputusan
i ve
un
Salah satu kegunaan komputer adalah membantu
mengambil keputusan. Sebuah program yang tidak
mengandung instruksi pengambilan keputusan adalah
h
if <kondisi>:
am
instruksi
if <kondisi>:
©M
instruksi1
else:
instruksi2
if <kondisi1>:
s
instruksi1
elif <kondisi2>
es
instruksi2
else:
Pr
instruksiterakhir
ity
dikerjakan, sedangkan jika <kondisi2> bernilai True maka
instruksi2 yang dikerjakan, selain itu maka instruksiterakhir
rs
yang dikerjakan.
1
2
i ve
## Program untuk mengambil keputusan
x = float(input(“Masukkan sebuah bilangan:
un
”))
3 if x%2 == 0:
4 print(“Anda memasukkan bilangan genap”)
h
5 elif x%2 == 1:
ya
7 else:
ad
Catatan:
1. Klausa elif dapat diperbanyak lebih dari
uh
instruksi if.
2. Perintah while mengandung proses pengambilan
keputusan. Jika ekspresi boolean pada klausa
Kegiatan Praktikum
s
es
Kegiatan 1. Perulangan
1. Buatlah sebuah program yang menampilkan tabel
Pr
yang berisi daftar nama bangun datar dan rumus
perhitungan luas dari bangun tersebut. Nama
ity
bangun dan rumus harus dimasukkan dalam
sebuah data bertipe Dictionary. Berikut adalah
rs
contoh tampilan layar jika program dijalankan.
No | Nama bangun
ve
| Rumus Luas
----|-----------------|-----------------
i
un
1 | Segitiga | L = 0.5 * a * t
2 | Persegi | L = s ** 2
3 | Persegi panjang | L = p * l
h
4 | Lingkaran | L = pi * r ** 2
ya
5 | Jajaran genjang | L = a * t
i
Kegiatan 2. Password
am
s
jalannya program.
es
Masukkan password: Badu
Pr
Maaf, anda salah memasukan password.
Masukkan password: Budi
Maaf, anda salah memasukan password.
ity
Masukkan password: Beda
Anda telah mencoba 3 kali. Akses anda
rs
ditolak.
2. ve
Setelah program dapat berjalan, tuliskan kode
program pada lembar kerja (dengan tulisan tangan).
i
un
s
(tidak dikumpulkan)
es
Buatlah program yang menampilkan waktu dari jam
komputer, detik demi detik. Setelah angka detik
Pr
menunjukkan angka 0, maka program menampilkan
sebuah pesan dan berhenti. Berikut salah satu skenario
ity
jalannya program.
rs
Program menampilkan waktu komputer.
6:12:56
6:12:57
6:12:58
i ve
un
6:12:59
6:13:00
Jam praktikum sudah habis. Silakan pulang.
h
i ya
ad
m
am
uh
©M
s
es
Pr
Tujuan
Memahami konsep fungsi dan implementasinya dalam
ity
Python.
rs
Pendahuluan
i ve
Fungsi merupakan sebuah blok yang berisi instruksi
yang tertata yang digunakan untuk melakukan satu kegiatan
un
tertentu. Fungsi bermanfaat untuk membuat program secara
modular (menggunakan modul-modul) dan memungkinkan
kumpulan instruksi dapat digunakan dalam berbagai
h
s
4. Baris berikutnya adalah docstring, yaitu string yang
es
digunakan sebagai dokumentasi atau keterangan
tentang fungsi. Docstring bersifat opsional.
Pr
5. Blok instruksi ditulis menjorok ke dalam (indented).
6. Klausa return hasil menyebabkan fungsi
ity
selesai dijalankan dan mengembalikan hasil
kepada program yang memanggil fungsi. Nilai
rs
kembalian merupakan output dari fungsi. Jika
fungsi tidak mempunyai nilai kembalian, dapat
ditulis return None. i ve
Format pembuatan fungsi dalam Python adalah
un
sebagai berikut.
def nama_fungsi(parameter):
h
keterangan “””
...
i
ad
instruksi
...
return hasil
m
am
def kuadrat(x):
“““menghitung nilai kuadrat dari sebuah
©M
bilangan”””
y = x ** 2
return y
s
diistilahkan “dipanggil”) di bagian lain program dengan
es
menyebut nama fungsi (lihat Program 27).
Pr
1 #!/usr/bin/python3
2 # Membuat fungsi
3 def kuadrat(x):
ity
4 “menghitung nilai kuadrat dari sebuah
bilangan”
rs
5 y = x ** 2
6 return y
7
8
9
# Pemanggilan fungsi
i ve
f = kuadrat(3) # memasukkan angka sebagai
un
parameter
10 a = 15
11 g = kuadrat(a) # memasukkan variabel
h
sebagai parameter
ya
1 #!/usr/bin/python3
2
3 # Pembuatan fungsi di sini
s
8 return (alas, tinggi, L)
9
es
10 # Pemanggilan fungsi
11 # parameter sesuai urutan pada definisi
Pr
(def)
12 a = luas(2, 4)
ity
13 # parameter sesuai kunci atau nama
parameter
14 b = luas(tinggi=6, alas=4)
rs
15 # nilai parameter umur sama dengan default
ve
(yaitu 35)
16 c = luas(alas=3) i
un
Program 28. Membuat fungsi dengan nilai default dan
memanggil fungsi dengan menyebut nama parameter
h
A = (2, 4, 4.0)
am
b = (4, 6, 12.0)
c = (3, 5, 7.5)
uh
s
es
Scope dari variabel
Tidak semua variabel dalam program dapat diakses
Pr
dari semua lokasi pada program. Akses tergantung lokasi
variabel itu dibuat. Wilayah di mana variabel dapat diakses
ity
disebut scope dari variabel tersebut. Terdapat dua scope
dari variabel:
rs
1. Variabel global. Variabel ini dapat diakses dari
semua lokasi program dan oleh semua fungsi yang
ada pada program.
ve
2. Variabel lokal. Variabel ini hanya dapat diakses di
i
un
area terbatas, yaitu pada fungsi tertentu saja.
Berikut adalah contoh yang mendemonstrasikan
h
17 #!/usr/bin/python3
18
i
ad
return total
26
27 # Memanggil fungsi
28 tambahkan(10, 20)
s
yang merupakan variabel global. Variabel ini dapat diakses
es
dari berbagai lokasi pada program. Pada baris 7 terdapat
variabel total yang merupakan variabel lokal, yang
Pr
dapat diakses hanya di dalam fungsi tambahkan(). Jika
program di atas dikerjakan, akan ditampilkan teks berikut.
ity
Di dalam fungsi, total = 30
rs
Di luar fungsi, total = 0
Modul
ve
Ketika program bertambah panjang (beberapa ratus
i
un
hingga ribuan baris), program akan lebih mudah dibaca dan
dirawat jika disimpan ke dalam beberapa berkas. Setiap
berkas berisi satu kelompok fungsi. Ada kalanya juga
h
s
4 a, b = 0, 1
5
es
while b < n:
6 print(b, end=’ ‘)
7 a, b = b, a+b
Pr
8
9 def fib2(n):
ity
10 “””mengembalikan bilangan Fibonacci
hingga n”””
11 hasil = []
rs
12 a, b = 0, 1
13
ve
while b < n:
14 hasil.append(b)
15 a, b = b, a+b
i
un
16 return hasil
2 >>> fibo.fib(1000)
3 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
am
987
4 >>> fibo.fib2(100)
5 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
uh
6 >>> fibo.__name__
7 ‘fibo’
©M
s
dan statement berikut:
es
a. Sebuah statement dengan tipe data Dictionary
berisi kunci ‘NIM’, ‘Nama’, ‘Alamat’, ... sampai
Pr
7 kunci beserta data sesuai dengan data diri
saudara.
ity
b. Beberapa fungsi untuk menampilkan data diri
(NIM, Nama, Alamat, ...), masing-masing 1
rs
fungsi untuk setiap data.
2. Buatlah sebuah program yang berjalan mengikuti
algoritma berikut.
ve
1) Tampilkan daftar pilihan
i
un
2) Tanyakan kepada user sebuah pilihan (sebuah
huruf diikuti <Enter>)
3) Ulangi selama pilihan bukan ‘k’:
h
ya
s
k keluar
es
Pilihan saudara: a
Nama: Al Banjari
Pr
Pilihan saudara: K
ity
Kode pos: 47484
Pilihan saudara: A
rs
Alamat: Banjar Baru D2 Nomor 15
ve
Banjarmasin
Pilihan saudara: k
i
un
Terima kasih.
kepada asisten.
ya
Fahrenheit
>>> konversiSuhu(F = 95)
Suhu 95 Fahrenheit setara dengan 35
Celcius
s
Suhu 0 Celcius setara dengan 32
es
Fahrenheit
Pr
tuliskan fungsi tersebut pada lembar kerja (dengan
tulisan tangan).
ity
3. Pada lembar kerja, berikan keterangan/penjelasan
bagaimana fungsi itu bekerja.
rs
i ve
un
h
i ya
ad
m
am
uh
©M
s
es
Pr
Tujuan
ity
Memahami konsep pengolahan data dan informasi pada
rs
berkas (file) dan implementasinya dengan python
Pendahuluan i ve
un
Berkas dalam sebuah komputer digunakan untuk
menyimpan data, program aplikasi atau paket program.
Berkas data pada umumnya dibagi menjadi dua macam
h
yaitu berkas teks (yaitu berkas yang berisi tulisan dan huruf)
ya
s
dari berkas
es
3. Menutup berkas
Pr
Mengolah data pada berkas teks
Perhatikan program python berikut.
ity
8 #!/usr/bin/python3
rs
9 # Menulis data ke dalam berkas
10 berkas = open(“tulis.txt”, “w”)
11
ve
berkas.write(“Data ini tersimpan di berkas.
“)
i
un
12 berkas.write(“Kalimat ini juga tersimpan di
berkas.”)
13 berkas.close()
h
s
berupa deretan string atau list.
es
read() Membaca karakter/huruf dari berkas.
Jika diberi parameter angka, parameter
Pr
menunjukkan jumlah maksimal karakter
yang dibaca. Tanpa parameter, yang dibaca
adalah seluruh karakter di dalam berkas.
ity
Perhatikan bahwa simbol ganti baris dihitung
sebagai karakter.
rs
readline() Membaca satu baris teks. Jika diberi
parameter angka, parameter menunjukkan
ve
jumlah maksimal karakter yang dibaca.
readlines() Membaca banyak baris teks sekaligus dan
i
data kembaliannya berupa list. Jika diberi
un
parameter angka, parameter menunjukkan
jumlah maksimal karakter yang dibaca.
h
Mode akses
ya
s
sesuai urutan penulisan data (tidak mengenal kursor). Akses
es
dilakukan dengan cara yang mirip dengan mengakses data
pada sebuah variabel bertipe Dictionary. Akses data atau
Pr
objek dilakukan dengan menyebut kata kuncinya.
Berikut ini contoh program menyimpan dan membaca
ity
data dengan Shelve.
rs
1 #!/usr/bin/python3
2 # Mengakses data/objek biner pada berkas
3
4
dengan Shelve
import shelve
i ve
un
5 F = shelve.open(“lemari.data”) # membuka
berkas
6 F[“produk”] = [‘sepatu’, ‘tas’, ‘dompet’] #
h
menyimpan data
ya
11 F = shelve.open(“lemari.data”) # membuka
berkas
am
s
es
Kegiatan Praktikum
Pr
Kegiatan 1. Menulis berkas teks
1. Buatlah sebuah program python yang membuat
ity
sebuah berkas teks. Berkas diberi nama sama
dengan NIM saudara. Misalnya NIM Badu adalah
rs
‘L200100100’ maka nama file yang dibuat oleh
Badu adalah ‘L200100100’ tanpa ekstensi apapun.
ve
Pada berkas teks tersebut:
a. tuliskan NIM saudara pada baris pertama
i
un
b. tuliskan tanggal lahir saudara pada baris
kedua dengan format dd-mm-yyyy, misalnya
Badu yang lahir 1 Agustus 1990 akan menulis
h
01-08-1990
ya
s
es
3. Jalankan program saudara . Jika program saudara
sudah benar, tuliskan kode program dan isi berkas
Pr
pada lembar kerja (dengan tulisan tangan).
ity
menyimpan ke Shelve
1. Buatlah sebuah program yang membaca data dari
rs
berkas teks yang saudara buat pada kegiatan 1.
2.
ve
Kemudian simpanlah data-data tersebut pada
sebuah berkas yang namanya sama dengan
i
nama panggilan sudara. Cara penyimpanan data
un
menggunakan Shelve.
3. Setelah program saudara berjalan, tuliskan
h
lembar kerja.
i
saudara berjalan.
©M
s
es
Pr
Tujuan
ity
Mengenal beberapa modul python yang terkait aktivitas
rs
dengan jaringan lokal dan internet.
Pendahuluan i ve
un
Python mempunyai modul-modul yang sangat
bervariasi dan ekstensif sehingga dapat digunakan untuk
berbagai keperluan dari pembuatan game, pengolahan
h
s
pihak yang melayani, dan merupakan pihak yang terlebih
es
dahulu aktif dan siap. Client adalah pihak yang meminta
layanan, atau yang menghubungi server. Berikut adalah
Pr
contoh program untuk server dan client yang berkomunikasi
melalui TCP.
ity
Marilah kita cermati program python untuk komunikasi
sederhana menggunakan teknologi soket. Pada sisi server
rs
dibuat program untuk menerima pesan berupa string (lihat
Program 32), dan string yang diterima dijadikan huruf besar
ve
semua, kemudian langsung dikirim kembali ke client. Pada
sisi client dibuat program untuk mengirim pesan berupa
i
string (lihat Program 33). Pesan tersebut berasal dari user
un
dengan mengetikkan teks melalui keyboard.
h
4
5 s = socket.socket(socket.AF_INET, socket.
SOCK_STREAM)
©M
6 s.bind((“”, 50001))
7 s.listen(5)
8 print “TCP server sudah siap”
s
13 while data != ‘Q’ and data != ‘q’:
14
es
data = komm.recv(1024)
15 print ‘Diterima:’, data
16 komm.send(data.upper()) # data
Pr
dikirim balik
17 s.close()
ity
18 if data == ‘Q’ or data == ‘q’:
19 break
rs
Program 32. Kode pada server untuk komunikasi dengan soket
i ve
Baris 11 menandai sebuah infinite loop, perulangan
yang tak pernah berakhir. Tapi perulangan ini dapat di-break
un
jika kondisi baris 19 benar (yaitu client mengirim karakter ‘Q’
atau ‘q’). Baris 12 menandai bahwa socket s siap menerima
koneksi. Jika terjadi permintaan layanan, data diambil di
h
python p_tcpser.py
s
Program p_tcpser.py dan p_tcpcli.py dapat dijalankan
es
di terminal Linux yang berbeda pada komputer yang sama.
Satu terminal menjalankan server, dan satu terminal lagi
menjalankan client. Jika diinginkan client dan server berada
Pr
pada mesin yang berbeda, maka baris 5 program client
dapat dimodifikasi dengan mengganti hostname dari
ity
localhost menjadi nama komputer server, atau alamat IP
server, atau alamat URL server.
rs
20 # nama berkas: p_tcpcli.py
21
22
23
import socket
i ve
# Client TCP untuk server p_tcpser.py
un
24 hostname = ‘localhost’
25 pesan = ‘’
26
h
27 s = socket.socket(socket.AF_INET, socket.
ya
SOCK_STREAM)
28 s.connect((hostname, 50001))
i
30 pesan = input(‘Kirim: ‘)
31 s.send(pesan)
m
32 if pesan.lower() != ‘q’:
33 response = s.recv(1024)
am
s
to peer) dapat diwujudkan di mana satu pihak bertindak
es
sebagai server dan pihak lain bertindak sebagai client.
Bisa juga dibuat aplikasi chat untuk komunikasi banyak
Pr
client di mana server berfungsi sebagai pengatur lalu lintas
informasi dan mengelola akun client.
ity
Salah satu aplikasi yang berguna adalah mesin
penjawab otomatis. Program pada server dapat dirancang
rs
untuk memberi jawaban terhadap pertanyaan yang diajukan
oleh client. Server tentu saja harus mempunyai kumpulan
ve
pertanyaan dan jawaban dalam jumlah besar. Sedangkan
client akan mendapat jawaban jika pertanyaan yang
i
diajukan sudah dikenal oleh server. Catatan: pada sistem
un
cerdas, client tidak harus memberi pertanyaan persis
seperti yang ada di basis data milik server. Server mampu
h
Program 35) berikut ini untuk sisi server dan client. Jalankan
ad
melalui terminal.
m
3 import socket
4 s = socket.socket(socket.AF_INET, socket.
uh
SOCK_STREAM)
5 s.bind((“”, 50003))
6 s.listen(5)
©M
s
jalan’,
13
es
‘kuliah’: ‘Program Studi Informatika
UMS’}
14 while data.lower() != ‘q’:
Pr
15 komm, addr = s.accept()
16 while data.lower() != ‘q’:
ity
17 data = komm.recv(1024)
18 if data.lower() == ‘q’:
19 s.close()
rs
20 break
21
ve
print ‘Pertanyaan:’, data
22 if kamus.has_key(data):
23 komm.send(kamus[data])
i
un
24 else:
25 komm.send(‘pertanyaan anda
tidak relevan’)
h
sederhana
i
ad
3 import socket
4
am
5 hostname = ‘localhost’
6 pesan = ‘’
7 s = socket.socket(socket.AF_INET, socket.
uh
SOCK_STREAM)
8 s.connect((hostname, 50003))
©M
s
Program 35. Kode pada client untuk mesin penjawab otomatis
es
sederhana
Pr
<Enter>. Cobalah lagi dengan mengetikkan kata-kata
yang lain seperti umur, alamat, motto, dan kata-kata
ity
sembarang lainnya. Perhatikan jawaban yang ditampilkan.
Perhatikan juga tampilan pada terminal server.
rs
Kegiatan Praktikum
ve
Kegiatan 1. Data diri dari server
i
un
1. Buatlah program python untuk komunikasi melalui
soket. Program pada client menerima perintah dari
pengguna program. Ketika pengguna mengetikkan
h
s
Jawab: Maaf, perintah tidak dimengerti
es
Perintah: keluar
Jawab: siap!!
Pr
Kegiatan 2. Informasi tentang server
1. Buatlah program python untuk komunikasi melalui
ity
soket. Program pada client menerima perintah dari
pengguna program. Ketika pengguna mengetikkan
rs
sebuah perintah, maka perintah tersebut dikirim ke
server. Server kemudian memberi respon.
2. ve
Daftar perintah yang dikenal oleh server adalah:
machine, release, system, version, node, dan quit.
i
un
Empat perintah pertama (perintah selain quit), akan
mengambil informasi tentang komputer server.
Perintah-perintah tersebut terdapat di dalam modul
h
import platform
ad
respon = platform.machine()
komm.send(respon)
©M
s
Command: system
es
Response: Linux
Command: password
Pr
Response: unknown command
Command: quit
ity
Kegiatan 3. Menghitung luas bangun geometri
rs
1. Tema untuk kegiatan 3 bervariasi untuk para
mahasiswa tergantung digit terakhir NIM.
Digit
terakhir Tema
i ve Digit
terakhir Tema
un
NIM NIM
1 Segitiga 6 Jajar genjang
2 Segiempat 7 Tabung
h
3 Bola 8 Persegi
ya
4 Persegi 9 Prisma
5 Piramid 0 Balok
i
ad
s
parameter harap disesuaikan
es
Respon: parameter dicatat
Pesan: hitung
Pr
Respon: Luas lingkaran berjari-jari 10
adalah 314
Pesan: keluar
ity
Respon: -
rs
Kegiatan bagi penggemar pemrograman (tidak
dikumpulkan)
1. ve
Buatlah program chat. Server hanya berfungsi
i
sebagai pengatur lalu lintas. Komunikasi terjadi di
un
antara dua client atau lebih.
2. Buatlah program untuk mengirim berkas dari satu
h
s
asisten.
es
NIM :
Nama :
Tanda tangan:
Pr
Nama asisten :
Tanggal Praktikum :
ity
rs
Kegiatan 1.
Program pada sisi server:
Kegiatan 2.
Program pada sisi server:
m
am
Kegiatan 3.
©M
s
es
Pr
ity
rs
i ve
un
h
i ya
ad
m
am
uh
©M
s
es
Pr
Tujuan
ity
Mengenal beberapa modul python yang terkait kegiatan
rs
yang biasa dilakukan sehari-hari
Pendahuluan i ve
Python mempunyai modul-modul yang sangat
un
bervariasi dan ekstensif sehingga dapat digunakan untuk
berbagai keperluan dari pembuatan game, pengolahan
h
s
Program dengan antarmuka grafis menampilkan hasil
es
dalam berbagai format mulai dari tulisan, gambar, animasi,
video dan/atau gabungannya (multimedia) (lihat Gambar
Pr
25). Pengguna program berinteraksi menggunakan
berbagai perangkat seperti keyboard dan mouse. Tulisan
pada program dengan antarmuka grafis pada umumnya
ity
bersifat proporsional. Kebanyakan program dan aplikasi
sekarang berbasis GUI, baik untuk aplikasi desktop maupun
rs
aplikasi mobile (untuk gadget). Aplikasi berbasis teks saat
ini umumnya digunakan terbatas pada aplikasi administrasi
sebuah aplikasi.
i ve
jaringan, pada proses pengujian aplikasi, atau instalasi
un
h
i ya
ad
m
am
s
sebagai sebuah kelas.
es
Sebuah program GUI terdiri atas window utama
dengan tombol ‘close’, ‘minimize, dan ‘maximize’. Lokasi
Pr
dan gambar ikon ketiga tombol itu bervariasi tergantung
sistem operasi dan window manager. Pembuatan window
ity
utama pada Tkinter dilakukan dengan menggunakan kelas
Tk. Contoh program Tkinter yang hanya membuat window
rs
utama terdapat pada Program 36. Baris 1 pada program
tersebut menunjukkan penggunaan kelas Tk dan baris
ve
2 menyatakan pembuatan objek Tk yang diberi nama
my_app. Setelah objek dibuat, dipanggillah method
i
mainloop() pada baris 3 untuk menampilkan window
un
dan menjalankan aplikasi GUI. Ketika method mainloop()
dipanggil, program akan terus berjalan sampai window
h
ditutup.
ya
1
i
ad
s
Selanjutnya baris 6 – 9 berisi perintah-perintah
es
membuat objek widget dan menempatkannya di posisi
tertentu. Baris 6 berisi pembuatan objek Label dengan
Pr
nama L1 yang mempunyai parent berupa window my_app,
dan label tersebut berisi tulisan “Nama mahasiswa”. Baris 7
ity
menunjukkan bahwa label L1 ditempatkan secara padat di
sisi kiri dari objek parent. Baris 8 menunjukkan pembuatan
rs
objek Entry dengan nama E1, dengan parent berupa
window my_app. Baris 9 menunjukkan penempatan objek
ve
E1 di sisi kanan dari objek parent.
i
Penempatan objek pada window
un
Frame.
Pack digunakan untuk menempatkan objek secara
i
ad
s
Program 38. Program dengan pengaturan widget menggunakan
es
grid, dan mempunyai respon terhadap sebuah kejadian
Pr
ity
rs
Gambar 27. Window dengan beberapa widget yang diatur
dengan grid
ve
Merespon terhadap berbagai kejadian
i
un
Untuk merespon terhadap sebuah kejadian, diperlukan
sebuah fungsi. Fungsi kemudian dikaitkan dengan kejadian
tertentu. Terdapat banyak kejadian yang dapat direspon
h
s
Program 39 yang membuat objek StringVar. Pada
es
baris 9, ketika objek Entry E1 dibuat, terdapat parameter
“textvariabel=str1” yang artinya mengaitkan tulisan
Pr
pada Entry E1 dengan objek str1. Selanjutnya, akses
terhadap tulisan pada Entry E1 dilakukan melalui objek
str1. Lihat baris 20 dan baris 25, di mana data teks pada
ity
Entry E1 dibaca dan ditulis.
rs
1
widget
i ve
Program 39. Program dengan akses terhadap tulisan pada
un
Daftar widget
Button : menampilkan tombol pada aplikasi
h
s
es
Sumber belajar:
1. Tutorial points (http://www.tutorialspoint.com/python/
Pr
python_gui_programming.htm)
2. Sebsauvage (http://sebsauvage.net/python/gui/)
ity
Kegiatan Praktikum 11
rs
Kegiatan 1. Menampilkan data diri
1. ve
Buatlah sebuah program python dengan Tkinter
i
untuk membuat program GUI sesuai layout pada
un
gambar berikut. Isilah data sesuai kondisi saudara.
h
Data diri
ya
s
es
Kegiatan 2. Membuat kalkulator sederhana
Pr
1. Buatlalh sebuah program python dengan Tkinter
untuk membuat aplikasi GUI kalkulator sederhana.
ity
2. Layout dari aplikasi tampak seperti gambar. Pada
aplikasi terdapat empat Label, dua Entry, dan
empat Button.
rs
3. Button berisi simbol +, -, x, dan :. Jika tombol
ve
diklik, terjadi operasi penjumlahan, pengurangan,
perkalian atau pembagian. Hasilnya tampil di
bagian bawah.
i
un
4. Buatlah sebuah screenshot dari aplikasi saudara.
h
i ya
ad
m
am
uh
s
2 Segiempat 7 Tabung
es
3 Bola 8 Persegi
4 Persegi 9 Prisma
Pr
5 Piramid 0 Balok
ity
3. Pada aplikasi terdapat Entry untuk mengisi
parameter. Jumlah Entry sesuai dengan jumlah
rs
parameter bangun geometri. Sertakan Label yang
sesuai. Misalnya untuk objek Lingkaran, perlu satu
ve
parameter dengan label Jari-jari. Untuk bangun
Balok, perlu tiga parameter yaitu Panjang, Lebar
i
un
dan Tinggi. Sesuaikan jumlah parameter dan
labelnya.
4. Pada aplikasi terdapat tombol “Hitung luas”. Jika
h
Bangun Geometri
Deskripsi tentang bangun geometri, antara lain nama,
uh
Parameter 2 :
Luas = 1045
s
tombol sama-dengan.
es
2. Buatlah program python dengan Tkinter yang dapat
memainkan musik.
Pr
ity
rs
i ve
un
h
i ya
ad
m
am
uh
©M
s
asisten.
es
NIM :
Nama :
Tanda tangan:
Pr
Nama asisten :
Tanggal Praktikum :
ity
rs
Kegiatan 1.
Screenshot dari aplikasi Data Diri adalah sebagai berikut.
i ve
un
Kegiatan 2.
Screenshot dari kalkulator sederhana adalah sebagai
h
berikut.
i ya
ad
Kegiatan 3.
Screenshot dari aplikasi Bangun Geometri adalah sebagai
m
berikut.
am
uh
©M
s
es
Pr
Tujuan
ity
Mengenal beberapa modul python yang terkait kegiatan
rs
yang biasa dilakukan sehari-hari
Pendahuluan
i ve
un
Python mempunyai modul-modul yang sangat
bervariasi dan ekstensif sehingga dapat digunakan untuk
berbagai keperluan dari pembuatan game, pengolahan
h
s
sebuah objek soket dan mendeteksi koneksi HTTP,
es
dan mengirimkan permintaan (request) tersebut ke
sebuah objek yang menangani (handler). Kelas ini
Pr
membutuhkan dua parameter yaitu alamat server (terdiri
atas alamat IP dan port), dan sebuah instance dari
ity
kelas handler. Terdapat tiga jenis kelas handler, yaitu
BaseHTTPRequestHandler, SimpleHTTPRequestHandler,
rs
dan CGIHTTPRequestHandler
Kelas SimpleHTTPRequestHandler
i ve
Kelas ini melayani akses berkas pada direktori aktif
un
dan direktori di bawahnya. Jika objek http.server dijalankan
dengan handler dari kelas ini di sebuah direktori, maka
layanan web akan aktif dan menyediakan akses terhadap
h
1 <html>
2 <head><title>Akses dengan
uh
SimpleHTTPRequestHandler</title></head>
3 <body>
©M
4 <h3>Selamat datang</h3>
5 <p>Anda mengakses informasi ini
melalui program python. Python
menjalankan modul http.server dan kelas
s
7 </body></html>
es
Berkas teks tersebut disimpan di direktori “coba” dengan
nama index.html. Kemudian kita membuka sebuah
Pr
terminal dan menuju direktori tersebut lalu menjalankan
perintah:
ity
python3 -m http.server 8000
rs
Kemudian kita membuka sebuah web browser (misalnya
Firefox atau Chrome) dan mengetikkan http://localhost:8000
ve
maka akan terlihat tampilan seperti pada Gambar 28.
i
un
h
i ya
ad
m
SimpleHTTPRequestHandler
s
oleh CGIHTTPRequestHandler. Sebagai tambahan fitur,
es
CGIHTTPRequestHandler dapat menjalankan program
python. Tentu saja program python tersebut harus
Pr
mengeluarkan teks html jika kerja program ingin ditampilkan
di sebuah web browser. Selain itu, program python yang
ity
akan dijalankan harus ditempatkan pada direktori khusus
yaitu direktori bernama “cgi-bin“ atau “htbin” dan harus
rs
executable.
i ve
Membuat berkas menjadi executable di linux
Buka terminal dan pergi ke direktori tempat berkas
un
berada. Jalankan perintah berikut:
chmod +x namaberkas.py
h
ya
berikut.
am
1 #!/usr/bin/env python3
2 print(“<!DOCTYPE html>\n”)
uh
3 print(“””<html>
4 <head><title>Akses melalui CGI</title></
head>
©M
s
py’>lingkaran</a></p>”)
es
9 print(“</body></html>”)
Pr
Program di atas mempunyai perintah print. Jika
dijalankan dari python, maka program di atas akan
menampilkan teks seperti di bawah ini.
ity
1 <!DOCTYPE html>
rs
2
3 <html>
4
ve
<head><title>Akses melalui CGIHTTPServer</
title></head>
i
un
5 <body><h3>Selamat datang di CGI</h3>
6 <p>Anda mengakses informasi ini melalui
layanan CGI dengan modul CGIHTTPServer.</p>
h
8 </body></html>
ad
s
es
Pr
ity
rs
Gambar 29. Melayani informasi melalui web dengan
ve
CGIHTTPRequestHandler
i
un
Ketikkan program berikut ini, simpan ke berkas bernama
lingkaran.py dan letakkan berkas pada direktori cgi-
bin.
h
ya
1 #!/usr/bin/env python3
2
i
3 print(“<!DOCTYPE html>\n”)
ad
4 print(“””<html><head><title>Akses melalui
CGIHTTPServer</title>
m
5 </head><body><h3>Lingkaran</h3>”””)
6
am
canvas.</canvas>”””)
8
©M
9 jejari = 10
10 from math import pi
11 area = pi * jejari ** 2
12 jejari_px = 5 * jejari
s
format(area))
16 print(“””<script>var c = document.
es
getElementById(“myCanvas”);
17 var ctx = c.getContext(“2d”);
Pr
18 ctx.beginPath();
19 ctx.arc(100, 75, {0}, 0, 2 * Math.PI);
ity
20 ctx.fillStyle=”blue”;
21 ctx.fill();
22 ctx.stroke();
rs
23 </script>
24 </body></html>”””.format(jejari_px))
ve
Ketikkan program berikut ini, simpan ke berkas bernama
i
un
umur.py dan letakkan berkas pada direktori cgi-bin.
Kemudian cobalah mengklik tautan pada halaman web
index.py.
h
ya
1 #!/usr/bin/env python3
2
i
ad
7 today = date.today()
8 hasil = today.year – tglahir.year
9 if ((today.month,today.day)<(tglahir.
uh
month,tglahir.day)):
10 hasil -= 1
©M
11 return hasil
12
13 print(“<!DOCTYPE html>\n”)
14
s
18
es
19 print(“<p>Akses informasi ini melalui
layanan CGI.</p>”)
Pr
20 tanggal = ‘2-1-2000’
21 tgl = datetime.strptime(tanggal, ‘%d-%m-
%Y’)
ity
22 umur = hitung_umur(tgl)
23
rs
24 print(“<p>Jika dia lahir pada tanggal {0}”.
format(tanggal) )
format(umur))
i ve
25 print(“maka umurnya adalah {0} tahun”.
un
26 print(“</body></html>”)
s
1. Buatlah sebuah folder/direktori dan beri nama
es
seperti nomor induk saudara (NIM).
2. Buatlah sebuah berkas html, beri nama index.
Pr
html dan simpan berkas itu pada folder yang
dibuat pada kegiatan nomor 1 di atas. Pada
ity
berkas html tersebut, isikan data diri saudara. Saat
diakses melalui browser internet, halaman web
rs
harus tampak sesuai layout pada gambar berikut.
Perhatikan bahwa di bagian kiri halaman web
ve
harus ditampilkan foto saudara.
i
Data diri
un
Nama :
Alamat tinggal:
h
SimpleHTTPRequestHandler menggunakan
nomor port 8123.
4. Bukalah sebuah browser internet, ketikkan
uh
s
2. Pada folder cgi-bin, buatlah sebuah program
es
python yang menghasilkan teks html seperti
yang saudara buat untuk menjawab kegiatan 1.
Pr
Artinya program python itu mempunyai beberapa
perintah print. Beri nama program python itu
ity
dengan nama index.py. Perhatikan bahwa baris
pertama berkas html sebaiknya mengandung tag
rs
<!DOCTYPE html>, dan diikuti baris kosong.
Setelah program dibuat, permission dari berkas
3. ve
python harus disetel menjadi executable.
Jalankan CGIHTTPRequestHandler pada folder
i
un
yang saudara buat dengan nama NIM saudara
dengan memberi perintah: python -m http.
server --cgi 8456.
h
url: localhost:8456/cgi-bin/index.py.
Perhatikan apa yang ditampilkan di browser dan cek
i
s
2 Segiempat 7 Tabung
es
3 Bola 8 Persegi
4 Persegi 9 Prisma
Pr
5 Piramid 0 Balok
ity
python yang mampu menghasilkan teks html.
Program python mempunyai sebuah fungsi untuk
rs
menghitung luas bangun geometri (sesuai tema).
Simpan berkas berisi program python dengan nama
py.
i ve
sesuai bangun geometri, misalnya lingkaran.
un
3. Bentuk halaman web harus sesuai dengan layout
berikut ini. Data parameter disesuaikan dengan
bangun geometri. Untuk lingkaran, terdapat satu
h
Tinggi.
ad
Bangun Geometri
Nama bangun:
uh
Dimensi (2D/3D):
Rumus luas :
©M
Parameter 1 :
Parameter 2 :
Luas :
1 #!/usr/bin/env python3
s
2
es
3 def hitung_luas(argumen):
4 “fungsi menghitung luas dari ...”
5
Pr
. . . . instruksi . . . .
6 return hasil
7
ity
8 print(“<!DOCTYPE html>\n”)
9 print(“””<html> . . . . “””)
rs
10 . . . .
11 print(“. . . .”)
12
13
14
print(hitung_luas(. . . .))
. . . .
print(“</html>”)
i ve
un
dikumpulkan)
1. Cobalah menggunakan CSS pada program
uh
s
asisten.
es
NIM :
Nama :
Tanda tangan:
Pr
Nama asisten :
Tanggal Praktikum :
ity
rs
Kegiatan 1.
Screenshot dari halaman web adalah sebagai berikut.
Kegiatan 2.
i ve
un
Source code dari program python.
h
Kegiatan 3.
i
ad