0% menganggap dokumen ini bermanfaat (0 suara)
38 tayangan156 halaman

E-Book ModulAlgoritmadanPemrograman HusniThamrindkk

Diunggah oleh

Ikhsan Nurazis
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
38 tayangan156 halaman

E-Book ModulAlgoritmadanPemrograman HusniThamrindkk

Diunggah oleh

Ikhsan Nurazis
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 156

©M

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

Husni Thamrin, Ph.D


ya

Fajar Suryawan, Ph.D.


Dr. Heru supriyono, M.Sc.
i

Maryam, S.T.,M.Eng
ad

Riski Agung Putro Laksono


m
am
uh
©M

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

Gedung I Lantai 1 Sayap Utara


Universitas Muhammadiyah Surakarta
am

Jl. A. Yani Tromol Pos 1 Kartasura


Surakarta 57102 Jawa Tengah - Indonesia
Telp : (0271) 717417 ext. 2172
uh

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

dari versi 2 ke versi 3.


ya

Bab-bab dalam buku ini dibagi menjadi dua bagian


besar. Bab pertama berisi cara instalasi dan dasar
i
ad

penggunaan bahasa pemrograman dan tool-nya. Empat


bab berikutnya menggunakan program GvRng sebagai
m

software simulasi yang mempunyai sintaks mirip dengan


Python. Penggunaan software simulasi GvRng diharapkan
am

dapat meng-encourage mahasiswa dalam mempelajari


bahasa pemrograman karena mempunyai tampilan yang
interaktif. Tujuh bab terakhir barulah menggunakan bahasa
uh

Python.
Hal terakhir yang berbeda adalah penggunaan istilah
©M

“modul praktikum” tidak lagi digunakan karena akan rancu


dengan istilah “modul python”. Modul praktikum diganti
dengan instilah Bab atau Buku Petunjuk Praktikum.

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

Kegiatan 6. Membuat / mengedit Dunia robot


ya

Guido............................................................... 7
Lembar Kerja Praktikum 1....................................... 9
i
ad

PRAKTIKUM 2 : MENGENAL GVRNG........................ 11


Tujuan..................................................................... 11
m

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

Kegiatan 2. Menggerakkan robot ke suatu


posisi................................................................ 13
Kegiatan 3. Menapaki jalan.............................. 14
Kegiatan 4. Menandai jalan dengan Beeper.... 15
v
Kegiatan 5. Perjalanan lebih jauh..................... 16
Kegiatan 6. Menelusuri hurufku....................... 17
Lembar Kerja Praktikum 2....................................... 18

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

Kegiatan 5. Lagi, mengerjakan pekerjaan


i ve
Kegiatan 4. Efisien dengan fungsi.................... 30
un
yang sama....................................................... 31
Kegiatan 6. Robot yang berfungsi.................... 32
Lembar Kerja Praktikum 3....................................... 33
h
ya

PRAKTIKUM 4 : PERULANGAN DAN


PENGAMBILAN KEPUTUSAN.................................... 35
i

Tujuan..................................................................... 35
ad

Pendahuluan........................................................... 35
Perulangan....................................................... 35
m

Pengambilan keputusan................................... 37
am

Lebih banyak keputusan.................................. 42


Lebih banyak kondisi dan lebih banyak
keputusan........................................................ 43
uh

Kegiatan Praktikum................................................. 44
Kegiatan 1. Perulangan.................................... 44
©M

Kegiatan 2. Lagi, perulangan........................... 44


Kegiatan 3. Titik api yang acak......................... 45
Kegiatan 4. Harta karun di halaman................. 45
Lembar Kerja Praktikum 4....................................... 47

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

Lembar Kerja Praktikum 6....................................... 79


ad

Kegiatan 2. Akun.............................................. 80
Kegiatan 3. Operator........................................ 81
m

Kegiatan 4. Tipe Data....................................... 81


am

PRAKTIKUM 7 : PERULANGAN DAN


PENGAMBILAN KEPUTUSAN.................................... 83
uh

Tujuan..................................................................... 83
Pendahuluan........................................................... 83
©M

Perulangan dengan jumlah loop tertentu......... 83


Perulangan kondisional (bersyarat).................. 85
Pengambilan keputusan................................... 86
Kegiatan Praktikum................................................. 88

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

PRAKTIKUM 9 : MENGOLAH DATA PADA BERKAS. 101


Tujuan..................................................................... 101
h

Pendahuluan........................................................... 101
ya

Mengolah data pada berkas teks..................... 102


Mode akses...................................................... 103
i

Mengolah data pada berkas biner dengan


ad

teknik Shelve.................................................... 104


Kegiatan Praktikum................................................. 105
m

Kegiatan 1. Menulis berkas teks....................... 105


am

Kegiatan 2. Membaca berkas teks................... 105


Kegiatan 3. Membaca data dari berkas teks
dan menyimpan ke Shelve............................... 106
uh

Kegiatan 4. Membaca Shelve.......................... 106


©M

PRAKTIKUM 10 : TOPIK LANJUT (KOMUNIKASI


JARINGAN)................................................................... 107
Tujuan..................................................................... 107
Pendahuluan........................................................... 107

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

Merespon terhadap berbagai kejadian............. 124


ya

Mengakses tulisan pada widget....................... 124


Daftar widget.................................................... 125
i

Kegiatan Praktikum 11............................................ 126


ad

Kegiatan 1. Menampilkan data diri.................... 126


Kegiatan 2. Membuat kalkulator sederhana..... 127
m

Kegiatan 3. Menghitung luas bangun geometri 127


am

Kegiatan bagi penggemar pemrograman


(tidak dikumpulkan).......................................... 129
Lembar Kerja Praktikum 11..................................... 130
uh

PRAKTIKUM 12 : TOPIK LANJUT (LAYANAN WEB) . 131


©M

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

Python merupakan bahasa pemrograman yang ampuh


(powerful) dan relatif mudah dimengerti.
h

GvRng adalah sebuah program komputer yang


ya

mensimulasikan lingkungan pemrograman sebuah robot


yang bernama Guido. Program ini dapat dijalankan di
i
ad

Windows, Linux dan Macintosh. GvRng mempunyai aturan


penulisan instruksi yang mirip dengan Python. Tampilan
m

robot Guido sangat sederhana.


Tampilan program GvRng ketika baru dijalankan
am

tampak seperti Gambar 1. Terdapat lima tab pada program


tersebut yaitu sebagai berikut:
uh

1. Guido’s World atau Dunia robot Guido. Tab ini berisi


area yang menggambarkan posisi robot Guido dan
©M

tombol-tombol program: Reload, Step, Execute


dan Abort.
2. Language reference. Tab ini berisi keterangan
tentang instruksi yand dikenal oleh robot Guido.
Algoritma dan Pemrograman 1
3. Introduction. Tab ini berisi keternagan singkat
tentang program GvRng.
4. Code Editor. Tab ini berisi area tempat menuliskan
perintah untuk robot Guido.

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

Gambar 1: Tampilan awal dari window GvRng

Terdapat tiga menu utama pada program GvRng, yaitu


uh

sebagai berikut.
1. Menu GvR mempunyai dua submenu: Open
©M

WorldBuilder dan Quit. Open WorldBuilder


digunakan untuk mengedit Dunia robot secara
interaktif.

2 Algoritma dan Pemrograman


2. Menu Setup mempunyai satu submenu: Set Speed.
Sub menu ini digunakan untuk menyetel kecepatan
gerak robot.
3. Menu Help mempunyai tiga submenu: GvR

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

2. Instal program tersebut di komputer saudara.


ya

Buatlah screen shot dari sebuah window saat


proses instalasi dan salin ke lembar kerja. Screen
i
ad

shot dapat dibuat dengan menekan tombol Alt dan


tombol PrtScr secara bersama-sama, lalu mem-
paste isi klipbord ke lembar kerja.
m

3. Setelah instalasi selesai, letakkan sebuah shortcut


am

pada desktop dengan menggunakan ikon seperti


Gambar 2. Buatlah screen shot dari desktop
komputer saudara dan salin ke lembar kerja.
uh
©M

Gambar 2. Ikon dari IDLE

Algoritma dan Pemrograman 3


„„ Kegiatan 2. Instalasi IDLE di GNU/Linux
Python secara otomatis sudah terinstal pada sistem
operasi GNU/Linux. Kegiatan ini dilakukan untuk menginstal
lingkungan pemrograman IDLE. Kegiatan disarankan

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

Anda mungkin akan diminta memasukkan

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

ikon IDLE dan menyeret ikon tersebut ke desktop.


ya

4. Buatlah screen shot dari desktop komputer saudara


dan salin ke lembar kerja.
i
ad

„„ Kegiatan 3. Menjalankan Python melalui


m

terminal Linux
am

Kegiatan ini dilakukan dalam lingkungan sistem operasi


GNU/Linux (disarankan menggunakan Ubuntu).
1. Buka sebuah terminal dan jalankan program
uh

Python dengan mengetikkan perintah “Python”.


Setelah Python berhasil dibuka, pada terminal
©M

akan muncul prompt “>>>” seperti terlihat pada


Gambar 3. Prompt menunjukkan bahwa Python
siap menerima perintah.

4 Algoritma dan Pemrograman


2. Berikan perintah berikut pada terminal Python:
>>> 4 + 5

3. Berikan perintah berikut pada terminal Python:

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

Gambar 3. Window Python saat dijalankan di terminal Ubuntu.


Setelah diberikan perintah Python akan muncul prompt >>> di
bagian paling bawah.

Algoritma dan Pemrograman 5


„„ Kegiatan 4. Menjalankan Python dari IDLE
1. Klik ganda ikon IDLE pada desktop.
2. Berikan perintah berikut pada window IDLE:

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

„„ Kegiatan 5. Instalasi GvRng


ya

GvRng adalah sebuah program komputer yang


i

mensimulasikan lingkungan pemrograman sebuah robot


ad

bernama Guido. Program ini dapat dijalankan di Windows,


Linux dan Macintosh, namun kegiatan praktikum ini diuji
m

dan dilakukan dalam lingkungan GNU/Linux.


am

1. Buka sebuah terminal dan ketikkan perintah


berikut:
uh

sudo apt-get install gvrng

Anda mungkin akan diminta memasukkan


©M

password saudara. Pastikan bahwa koneksi


internet tersedia.

6 Algoritma dan Pemrograman


2. Masih pada terminal yang sama, ketikkan perintah
berikut:
sudo chmod +x /usr/share/GvRng/gvrng.py

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

disimbolkan secara sederhana dengan bentuk


ya

segitiga dengan huruf G di dalamnya.


i

3. Cobalah mengklik lokasi-lokasi di antara titik-titik


ad

yang ada di Dunia robot. Saudara dapat membuat


garis-garis di antara titik-titik tersebut atau
m

menghilangkan garis yang ada.


4. Buatlah garis-garis sehingga membentuk huruf
am

awal (inisial) nama saudara. Kemudian klik tombol


“Abort”. Sebagai contoh mas Xeno telah membuat
uh

garis-garis yang membentuk huruf awal namanya


yaitu X seperti pada Gambar 4.
©M

5. Buatlah screen shot dari window GvRng saudara


dan salin ke lembar kerja.

Algoritma dan Pemrograman 7


Dunia robot Guido dapat disimpan dengan cara berikut:
tutup window GvRng, saudara akan diminta konfirmasi
apakah akan menyimpan isi “World Editor”. Selain itu, isi
“World Editor” dapat dikopi paste ke editor lain dan kemudian

s
disimpan sebagai sebuah file.

es
Pr
ity
rs
i ve
un
h
i ya
ad
m
am

Gambar 4. Contoh bentuk Dunia robot GvRng


uh
©M

8 Algoritma dan Pemrograman


Lembar Kerja Praktikum 1

Setelah kegiatan selesai, lembar kerja (Diisi oleh Asisten)


ini dicetak (di-print) dan dikumpulkan ke Nilai praktek:

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

setelah proses instalasi IDLE pada Ubuntu saya:


ad

Kegiatan 3.
m

Berikut adalah screen shot dari terminal Python setelah


am

langkah 1 – 5 selesai dikerjakan.


uh

Kegiatan 4.
Berikut adalah screen shot dari window IDLE setelah
©M

langkah 1 – 3 selesai dikerjakan.

Algoritma dan Pemrograman 9


Kegiatan 5.
Berikut adalah screen shot dari desktop Ubuntu saya
setelah instalasi GvRng.

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

10 Algoritma dan Pemrograman


PRAKTIKUM 2 :
MENGENAL GVRNG

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 Guido bergerak selangkah demi selangkah.


Posisi robot berada pada koordinat tertentu. Posisi paling
i

kiri bawah adalah koordinat 1 1. Posisi di sebelah kanan dari


ad

koordinat 1 1 adalah koordinat 2 1. Posisi di atas koordinat


1 1 adalah koordinat 1 2.
m

Jika saudara baru menjalankan program GvRng,


am

cobalah memilih menu “GvR” dan submenu “Open


WorldBuilder”. Saudara akan melihat robot Guido di Dunia
robot. Cobalah klik tab “World Editor”, saudara akan melihat
uh

sebuah kode terkait posisi robot, misalnya:


©M

robot 1 1 E 0

Kode di atas berarti bahwa robot berada pada koordinat 1 1.


Cobalah ubah kode tersebut menjadi:

Algoritma dan Pemrograman 11


robot 5 2 E 0

kemudian klik rombol “Reload”, saudara akan melihat posisi


robot akan berubah ke koordinat 5 2. Angka pertama pada
koordinat robot menunjukkan posisi horisontal dan angka

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

Cobalah mengubah kode pada World Editor sehingga


h

terdapat kode berikut:


ya

robot 5 2 N 0
i

kemudian klik rombol “Reload”, saudara akan melihat robot


ad

menghadap ke utara.
m

„„ Beeper (sumber bunyi)


am

Robot Guido mempunyai sebuah tas yang dapat


digunakan membawa Beeper. Beeper merupakan gadget
uh

yang dapat mengeluarkan suara. Jika robot Guido berada di


dekat Beeper, maka robot dapat mendengar suara tersebut.
Guido dapat membawa banyak Beeper di kantongnya.
©M

Angka terakhir pada kode berikut:


robot 5 2 N 4

12 Algoritma dan Pemrograman


berarti bahwa robot Guido menempati koordinat 5 2,
menghadap utara dan membawa empat buah Beeper.

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

3. Klik tombol “Execute”.


i ve
un
4. Pada lembar kerja, tuliskan apa yang terjadi dan
tuliskan koordinat robot sekarang.
5. Buat screen shot dari window GvRng dan salin ke
h

lembar kerja.
ya

„„ Kegiatan 2. Menggerakkan robot ke suatu posisi


i
ad

1. Klik tombol “Reload” dan hapus semua kode


program pada tab “Code Editor”.
m

2. Buatlah program untuk menggerakkan robot ke


koordinat 3 4 dan robot menghadap ke timur.
am

Perhatikan bahwa robot akan menghadap ke


kiri jika diberi perintah turnleft, tapi tidak ada
uh

perintah khusus untuk membuat robot menghadap


ke kanan.
©M

3. Ujilah program saudara dengan mengklik tombol


“Execute”.
4. Buat screen shot dari window GvRng dan salin ke
lembar kerja.
Algoritma dan Pemrograman 13
„„ Kegiatan 3. Menapaki jalan
1. Buatlah Dunia robot dengan bentuk seperti pada
Gambar 6. Caranya adalah dengan mengklik menu
“Open WorldBuilder”, kemudian mengklik ruang di

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

3. Klik tombol “Execute”. Tuliskan pada lembar kerja,


m

apa yang dilakukan robot. Tuiskan juga posisi robot


am

sekarang dan ke mana robot menghadap.


uh
©M

14 Algoritma dan Pemrograman


s
es
Pr
ity
rs
i ve
un
Gambar 6. Dunia robot untuk kegiatan 3 Praktikum 2
h

„„ Kegiatan 4. Menandai jalan dengan Beeper


ya

1. Gunakan Dunia robot dengan bentuk seperti pada


Gambar 6. Kali ini, robot diminta menandai jalan
i

yang dilalui dengan Beeper. Pada saat awal, robot


ad

membawa 4 buah Beeper di kantongnya. Untuk itu,


pada World Editor pastikan terdapat kode berikut:
m

robot 1 3 E 4
am

Kode itu berarti bahwa robot berada pada koordinat


1 3, menghadap ke timur dan membawa 4 buah
uh

Beeper.
2. Tuliskan perintah berikut pada tab “Code Editor”:
©M

move
putbeeper
move

Algoritma dan Pemrograman 15


putbeeper
move
putbeeper
turnleft

s
move

es
putbeeper
move

Pr
turnoff

3. Klik tombol “Execute”. Tuliskan pada lembar kerja,

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

robot masuk ke jalan, menapaki seluruh bagian jalan


sampai keluar. Di setiap sudut jalan, robot harus
ya

meletakkan sebuah Beeper. Gunakan perintah-


perintah move, turnleft, putbeeper dan
i
ad

turnoff.
3. Klik tombol “Execute”.
m

4. Buatlah screen shot dari window GvRng dan salin


ke lembar kerja.
am
uh
©M

16 Algoritma dan Pemrograman


s
es
Pr
ity
rs
i ve
Gambar 7. Dunia robot untuk kegiatan 5 Praktikum 2
un

„„ Kegiatan 6. Menelusuri hurufku


h

1. Buatlah Dunia robot yang berbentuk huruf inisial


ya

nama saudara. Lihat kembali kegiatan 6 Praktikum


1 sebagai rujukan.
i

2. Sebagai posisi awal, letakkan robot di salah satu


ad

sudut di dalam huruf. Jika bentuk huruf tidak


berujung (seperti huruf O), letakkan di sembarang
m

posisi di dalam huruf.


am

3. Buatlah sebuah program agar robot bergerak


menelusuri semua bagian huruf dan kembali ke
posisi semula. Pada seluruh bagian jalan yang
uh

dilalui robot, letakkan sebuah Beeper.


4. Klik tombol “Execute”. Buatlah screen shot dari
©M

window GvRng dan salin ke lembar kerja.

Algoritma dan Pemrograman 17


Lembar Kerja Praktikum 2

Setelah kegiatan selesai, lembar kerja (Diisi oleh Asisten)


ini dicetak (di-print) dan dikumpulkan ke Nilai praktek:

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

Berikut adalah screen shot dari window GvRng setelah


tombol “Execute” ditekan:
i
ad

Kegiatan 3.
m

Yang dilakukan robot setelah tombol “Execute” ditekan:


am

Koordinat robot sekarang:


uh

Kegiatan 4.
Yang dilakukan robot setelah tombol “Execute” ditekan:
©M

Koordinat robot sekarang:

18 Algoritma dan Pemrograman


Kegiatan 5.
Berikut adalah screen shot dari window GvRng setelah
tombol “Execute” ditekan:

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

Algoritma dan Pemrograman 19


©M

20
uh
am
m
ad
iya
h
un
ive

Algoritma dan Pemrograman


rs
ity
Pr
es
s
PRAKTIKUM 3 :
FUNGSI

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

baru berdasarkan instruksi yang ada/dikenal. Cara


ad

penulisannya adalah sebagai berikut:


m

define instruksiBaru:
instruksi
am

instruksi
...
uh

Guido hanya mengenali perintah menghadap ke kiri,


dan tidak mengenal perintah untuk mengahadap ke kanan.
©M

Instruksi define dapat dipakai membuat instruksi baru


untuk Guido agar bisa menghadap ke kanan, sebagai
berikut.

Algoritma dan Pemrograman 21


define turnright:
turnleft
turnleft
turnleft

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

2 instruksi #instruksi ini ditulis


ya

menjorok ke dalam
3 instruksi #instruksi ini ditulis
i

menjorok ke dalam
ad

4 ... #instruksi ini ditulis


menjorok ke dalam
m

Contoh 1
am

Pada Gambar 8 terdapat Dunia robot dan jalan


berbentuk U terbalik dan pada Program 1 terdapat
uh

instruksi agar robot bergerak menelusuri jalan. Setelah


Program 1 dijalankan, Dunia robot akan tampak seperti
©M

Gambar 9.

22 Algoritma dan Pemrograman


s
es
Pr
ity
Gambar 8. Dunia robot untuk contoh 1 Praktikum 3

rs
i ve
un
h
i ya
ad
m
am
uh
©M

Gambar 9. Program dan screen shot GvRng setelah program


dijalankan

Algoritma dan Pemrograman 23


1 define turnright:
2 turnleft
3 turnleft
4 turnleft

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

Program 1: Program untuk contoh 1 Praktikum 3


h

„„ Kegunaan Fungsi
ya

Instruksi define pada program GvRng digunakan


untuk membuat instruksi baru. Baris 1 – 4 pada Program
i
ad

1 disebut sebuah Fungsi (Function). Baris 1 merupakan


bagian deklarasi Fungsi dan baris 2 – 4 merupakan isi dari
m

Fungsi.
Dalam pemrograman, Fungsi dapat digunakan untuk:
am

1. membuat instruksi baru yang belum ada,


2. mengelompokkan beberapa instruksi yang sering
uh

dikerjakan berulang sehingga meringkas jumlah


baris program, atau
©M

3. mengelompokkan beberapa instruksi yang secara


logika mengerjakan satu pekerjaan tertentu
sehingga program menjadi terlihat lebih rapi.

24 Algoritma dan Pemrograman


Program 1 di atas memperlihatkan bagaimana sebuah
Fungsi dibuat sehingga instruksi yang belum ada menjadi
tersedia. Diperlukan 16 baris instruksi untuk membuat
program tersebut. Jika diperhatikan terdapat kumpulan

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

Program 2: Program lain untuk contoh 1 Praktikum 3

Algoritma dan Pemrograman 25


Contoh 2
Kegunaan lain dari Fungsi adalah mengelompokkan
instruksi-instruksi yang mengerjakan satu pekerjaan
logika tertentu. Misalkan mas Xeno adalah alumni Teknik

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

55 baris instruksi, fungsi tulis9 mempunyai 46 baris


ya

instruksi dan fungsi tulis1 dibuat dengan 33 baris


i
ad
m
am
uh
©M

Gambar 10. Screen shot Dunia robot setelah program pada


contoh 2 dijalankan; Program tersebut mempunyai 138 baris
instruksi

26 Algoritma dan Pemrograman


1 ..
2 ..
3 define tulis8:
4 ...

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

Catatan. Setiap bahasa pemrograman mempunyai suatu


h

cara untuk membuat Fungsi. Python menggunakan instruksi


ya

def dengan cara yang mirip dengan program GvRng.


i

Kegiatan Praktikum
ad

„„ Kegiatan 1. Membuat instruksi baru


m

1. Buatlah Dunia robot Guido seperti pada Gambar 11.


am

2. Pada Program 4 terdapat program yang dibuat oleh


mas Xeno agar robot menyusuri dinding dari sisi
kiri.
uh

3. Ubahlah program tersebut agar jumlah instruksi


menjadi lebih sedikit. Gunakan fungsi hadapkanan
©M

seperti pada Program 2 untuk program saudara.


4. Tuliskan kode program saudara pada lembar kerja
(tidak boleh lebih dari 2

Algoritma dan Pemrograman 27


s
es
Pr
ity
rs
i ve
Gambar 11. Dunia robot untuk kegiatan 1 Praktikum 3
un

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

„„ Kegiatan 2. Melakukan pekerjaan yang sama

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

Gambar 12. Dunia robot pada kegiatan 2 Praktikum 3 setelah


program dijalankan

Algoritma dan Pemrograman 29


„„ Kegiatan 3. Mengelompokkan pekerjaan
1. Buatlah program untuk menuliskan tiga digit terakhir
NIM saudara dengan cara yang mirip dengan yang
dilakukan mas Xeno (yang dibahas pada contoh 2

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

3. Mas Xeno membutuhkan 138 baris instruksi


dalam programnya. Jumlah baris instruksi dalam
i

program tersebut dapat dikurangi. Jika mas Xeno


ad

menggunakan fungsi hadapkanan seperti pada


Program 2, jumlah baris program berkurang
m

menjadi 136. Gunakan fungsi hadapkanan pada


program saudara dan tuliskan jumlah baris instruksi
am

program saudara pada lembar kerja.


4. Gunakan fungsi berikut dalam program saudara:
uh

define gerakLetak:
©M

move
putbeeper

30 Algoritma dan Pemrograman


Tuliskan pada lembar kerja jumlah baris instruksi
pada program saudara.
5. Buatlah screen shot dari window GvRng setelah
program dijalankan dan salin ke lembar kerja.

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

sebelum program berjalan, (b) setelah program berjalan

Algoritma dan Pemrograman 31


„„ Kegiatan 6. Robot yang berfungsi
1. Mas Xeno membeli sebuah hotel melati dan
bermaksud mempekerjakan robot Guido sebagai
pengantar sarapan. Sarapan (disimulasikan

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

Gambar 14. Koridor hotel tempat Guido bekerja


uh
©M

32 Algoritma dan Pemrograman


Lembar Kerja Praktikum 3

Setelah kegiatan selesai, lembar kerja (Diisi oleh Asisten)


ini dicetak (di-print) dan dikumpulkan ke Nilai praktek:

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

Jumlah Beeper pada program saya:


ad

Jumlah baris instruksi pada program sesuai template:


m

Berikut adalah screen shot dari window GvRng setelah


program dijalankan:
am

Kegiatan 4.
uh

Jumlah baris instruksi pada program sesuai template:


Jumlah baris instruksi setelah menggunakan fungsi
©M

hadapkanan:
Jumlah baris instruksi setelah menggunakan fungsi
gerakLetak:

Algoritma dan Pemrograman 33


Berikut adalah screen shot dari window GvRng setelah
program dijalankan:

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

34 Algoritma dan Pemrograman


PRAKTIKUM 4:
PERULANGAN DAN
PENGAMBILAN

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

komputasi lainnya terletak pada kemampuan mengulang


ya

pekerjaan dan membuat keputusan secara cepat. Mesin


mampu mengerjakan pekerjaan berulang tanpa merasa
i
ad

bosan. Mesin dapat membuat keputusan sesuai kondisi


yang diberikan oleh pemrogramnya.
m

„„ Perulangan
am

Program yang dibahas pada Praktikum 2 dan Praktikum


3 mempunyai banyak instruksi yang sama yang dikerjakan
uh

berulang-ulang. Simak kembali Program 1 pada Praktikum


3 yang mempunyai beberapa instuksi berulang, misalnya
©M

baris 5 – 7 mengulang perintah move sebanyak 3 kali,


atau perintah move – move – move diulang sebanyak 3
kali, dan perintah move – move – move – turnright
diulang sebanyak 2 kali.

Algoritma dan Pemrograman 35


Program GvRng mengenal instrruksi do untuk mengulangi
istruksi lain. Cara menulisnya adalah:

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

instruksi move akan dikerjakan sebanyak 3 kali, kemudian


m

instruksi putbeeper dikerjakan satu kali.


Program 1 pada Praktikum 3 dapat ditulis ulang menjadi
am

seperti Program 5. Sedangkan Program 2 dapat ditulis ulang


menjadi Program 6.
uh

1 define turnright:
2 turnleft
©M

3 turnleft
4 turlleft
5 do 2:

36 Algoritma dan Pemrograman


6 move
7 move
8 move
9 turnright

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

Program 6: Program lain yang setara


ad

„„ Pengambilan keputusan
m

Kecerdasan dimulai dari kemampuan mengambil


am

keputusan. Mesin disebut cerdas jika mampu mengambil


keputusan sesuai kondisi yang dihadapi. Semakin banyak
kondisi yang bisa dihadapi dan semakin banyak keputusan
uh

yang bisa diambil, maka mesin semakin cerdas.


Robot Guido mengenal 18 kondisi berikut ini.
©M

Kondisi Makna
1. front_is_clear Lokasi di depan robot
tidak ada penghalang

Algoritma dan Pemrograman 37


2. front_is_blocked Lokasi di depan robot ada
penghalang
3. left_is_clear
4. left_is_blocked

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

Untuk membuat keputusan berdasarkan kondisi


tertentu, digunakan perintah if dengan cara penulisan
m

sebagai berikut.
am

if kondisi:
keputusan
uh

Sebagai contoh, perintah berikut:


©M

if front_is_clear:
move

38 Algoritma dan Pemrograman


berarti Robot harus memerika kondisi apakah di depan
tidak ada penghalang, jika tidak ada penghalang maka
robot maju satu langkah. Perintah berikut:

s
if left_is_clear:

es
turnleft
move

Pr
putbeeper

berarti robot harus memerika kondisi apakah di kiri tidak

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

seperti pada Gambar 15.


i ya
ad
m
am
uh
©M

Algoritma dan Pemrograman 39


s
es
Pr
ity
rs
i ve
un
h
ya

Gambar 15. Simulasi robot pemadam api; Beeper dianggap


i

sebagai titik api yang harus dipadamkan kemudian robot


ad

kembali ke posisi semula; Perhatikan pada “World editor”


terdapat kode beepers 3 7 1 yang berarti terdapat 1 buah
m

beeper pada koordinat 3 7


am

Pengujian pertama seperti pada Program 7. Mas Xeno


memastikan bahwa di lorong tepat 6 langkah dari
robot terdapat sebuah titik api. Oleh karena itu, robot
uh

diminta maju 6 langkah (baris 1 – 2), memadamkan api


(baris 3), berputar balik (baris 4 – 5), kemudian maju 6
©M

langkah (baris 6 – 7), dan selesai (baris 8).

40 Algoritma dan Pemrograman


1 do 6:
2 move
3 pickbeeper
4 turnleft

s
5 turnleft

es
6 do 6:
7 move

Pr
8 turnoff

Program 7: Program robot pemadam api versi 1.0

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

Program 8: Program robot pemadam api versi 1.1


i
ad

Pada tahap berikutnya mas Xeno berpikir, robot harus


cukup cerdas. Api akan dipadamkan jika benar-benar
m

ada. Maka dibuatlah versi program yang baru yaitu


Program 8. Baris 1 – 2 pada program memerintahkan
am

robot maju 6 langkah. Baris 3 – 4 pada program berarti


robot harus memeriksa apakah ada api (ada beeper)?
Jika ada api, maka padamkan (ambil beeper).
uh

Kecerdasan robot masih dapat ditingkatkan lagi. Titik


api tidak harus ada di ujung lorong. Bisa di tengah atau
©M

di mana saja di lorong tersebut. Titik api bisa berjumlah


lebih dari satu, bisa 2 atau 3. Untuk itu, program
dimodifikasi menjadi versi 1.2 (lihat Program 9).

Algoritma dan Pemrograman 41


1 do 6:
2 move
3 if next_to_a_beeper:
4 pickbeeper

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

„„ Lebih banyak keputusan


Untuk membuat lebih banyak keputusan berdasarkan
i
ad

kondisi tertentu, digunakan gabungan perintah if – else


dengan cara penulisan sebagai berikut.
m

if kondisi:
am

keputusan
else:
keputusanlain
uh

Sebagai contoh, perintah berikut:


©M

if front_is_blocked:
turnleft

42 Algoritma dan Pemrograman


else:
move

berarti robot harus memerika kondisi apakah di depan ada

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

Program di atas berarti, robot memeriksa apakah


di depan tidak ada penghalang, jika benar maka maju
m

selangkah, jika tidak benar maka diperiksa kondisi lain. Jika


di kiri tidak ada penghalang, maka robot berbelok ke kriri
am

dan maju, jika tidak benar, maka robot dimatikan. Program


berikut mempunyai makna yang sama dengan perintah di
atas.
uh

if front_is_blocked:
©M

if left_is_blocked:
turnoff
else:

Algoritma dan Pemrograman 43


turnleft
move
else:
move

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.

„„ Kegiatan 2. Lagi, perulangan


i ve
un
1. Buatlah Dunia robot seperti pada Gambar 16.
Untuk meletakkan Beeper pada lokasi tertentu,
pilih menu “Open WorldBuilder”, klik kanan pada
h

lokasi tersebut, isikan jumlah Beeper, dan klik Ok.


ya

Pastikan pada “World editor” terdapat kode berikut:


i

robot 2 4 E 0
ad

beepers 3 7 1
beepers 5 7 1
m

beepers 7 7 1
am

2. Buatlah program tidak lebih dari 18 baris untuk


mengambil semua beeper yang ada di lorong.
Setelah selesai bekerja, robot diparkir di koordinat
uh

8 4. Program tersebut mensimulasikan upaya robot


memadamkan api di 3 titik di 3 lorong gedung.
©M

3. Tuliskan program saudara pada lembar kerja.

44 Algoritma dan Pemrograman


s
es
Pr
ity
rs
Gambar 16. Dunia robot untuk kegiatan 2 Praktikum 4

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

harus 1 buah di tiap lorong.


ya

2. Ujilah program saudara.


3. Tuliskan program saudara pada lembar kerja.
i
ad

„„ Kegiatan 4. Harta karun di halaman


m

1. Mas Xeno membaca surat wasiat dari kakeknya


yang menyebutkan bahwa sang kakek
am

meninggalkan beberapa koin emas berharga di


halaman belakang rumah yang berukuran 7 x 5
uh

meter per segi. Surat itu tidak menyebut di titik


mana dan berapa jumlah koin. Untuk mencari koin
©M

emas itu, mas Xeno membuat robot dilengkapi


metal detektor dan penggali koin. Metal detektor itu
dapat mendeteksi emas dalam diameter 1 meter
per segi. Situasi yang dihadapi robot disimulasikan

Algoritma dan Pemrograman 45


pada Gambar 17. Koin disimulasikan dengan
Beeper. Robot dijalankan dari dalam rumah,
menuju halaman belakang dan harus kembali ke
dalam rumah. Buatlah dunia robot seperti Gambar

s
17.

es
Pr
ity
rs
i ve
un
h
ya

Gambar 17. Simulasi dunia robot untuk deteksi koin emas


i
ad

2. Buatlah program agar robot dapat menelusuri


setiap bagian halaman, dan mengambil beeper
m

jika ditemukan. Program tersebut dibangun dengan


mengikuti algoritma berikut:
am

a. Ulangi perintah-perintah berikut ini sebanyak


7 kali
uh

1) maju satu langkah


2) jika menemukan koin, ambil
©M

3) belok kanan
4) ulangi perintah-perintah berikut sebanyak
4 kali

46 Algoritma dan Pemrograman


a) maju satu langkah
b) jika menemukan koin, ambil
5) kembali ke posisi paling kiri, kemudian
belok kanan

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

Setelah kegiatan selesai, lembar kerja (Diisi oleh Asisten)


h

ini dicetak (di-print) dan dikumpulkan ke Nilai praktek:


asisten.
ya

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:

Algoritma dan Pemrograman 47


Kegiatan 3.
Berikut adalah program yang sudah dimodifikasi:

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

48 Algoritma dan Pemrograman


PRAKTIKUM 5 :
PERULANGAN
KONDISIONAL

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

Jika perulangan tidak diketahui jumlahnya, maka


ya

perintah do tidak dapat digunakan. Instruksi yang lebih


tepat digunakan adalah while. Cara penggunaanya adalah:
i
ad

while kondisi:
m

instruksi #instruksi yang akan


dikerjakan berulang-ulang
am

instruksi #instruksi yang akan


dikerjakan berulang-ulang
uh

yang berarti “selalu uji kondisi, selama kondisi benar,


lakukan instruksi”.
©M

Sebagai contoh situasi pada Gambar 18, di mana


robot diperintahkan menyusuri sebuah garis. Jika jumlah
garis sudah ditentukan banyaknya, maka dapat diberikan
perintah perulangan dengan do.
Algoritma dan Pemrograman 49
s
es
1 do 7:
2 move

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

Namun jika garis tidak diketahui panjangnya, bisa lebih


panjang dari 7 atau lebih pendek, maka program pada
h

Gambar 18 tidak berjalan dengan benar. Program yang lebih


ya

baik tertulis pada Program 10. Baris 1 – 2 pada Program


10 berarti bahwa robot diminta terus menerus memeriksa
i

kondisi “apakah sisi kanan ada garis?”, jika benar, maka


ad

robot maju satu langkah. Dengan program ini, berapapun


banyaknya garis, robot akan mampu menelusuri jalan
m

dengan benar.
am

Penggunaan instruksi while membutuhkan ketelitian.


Beberapa langkah berikut dapat digunakan dalam proses
membuat instruksi while.
uh

1. Cermati syarat (kondisi) yang diperlukan agar


perulangan selesai.
©M

2. Pada instruksi while, gunakan kondisi yang


berkebalikan dengan syarat perulangan selesai.

50 Algoritma dan Pemrograman


while kondisi sebaliknya:
... instruksi ...

3. Pastikan instruksi awalan (atau prakondisi) telah

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

Gambar 19. Robot yang membawa sebuah beeper


m

Pada Gambar 19 terdapat dunia robot dengan robot


am

Guido yang membawa sebuah beeper. Jika robot diinginkan


untuk mengitari seluruh dinding, maka Program 11 akan
menyebabkan terjadinya infinite loop, perulangan yang
uh

tidak pernah selesai. Sedangkan Program 12 membuat


robot mengelilingi dinding satu kali dan kembali ke posisi
©M

semula.

1 while right_is_blocked:
2 if front_is_clear:

Algoritma dan Pemrograman 51


3 move
4 else:
5 turnleft
6 turnoff

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

Program 12. Mengitari satu kali dan kembali ke posisi semula


h
ya

Kegiatan Praktikum
i
ad

„„ Kegiatan 1. NIM dengan beeper


1. Mas Xeno membuat sebuah program yang
m

meletakkan beeper pada tiga lokasi sehingga


jumlah beeper pada tiga lokasi itu menunjukkan
am

angka tiga digit terakhir NIMnya. Berikut program


dan bentuk dunia robot setelah program tersebut
uh

dijalankan.
©M

52 Algoritma dan Pemrograman


1 move

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

Buatlah program seperti mas Xeno untuk menulis


un
tiga digit terakhir NIM saudara. Jalankan program,
buat screen shot dari window GvRng dan salin ke
h

lembar kerja.
ya

3. Lanjutkan program yang saudara buat. Setelah


robot selesai menulis tiga digit terakhir NIM, robot
i

berbelok arah dan mengambil kembali semua


ad

beeper yang ada. Tambahan baris instruksi pada


program tidak boleh lebih dari 7 baris. Jalankan
m

program dan buat screen shot dari window GvRng


dan salin pada lembar kerja.
am

„„ Kegiatan 2. Robot Line Follower


uh

1. Robot Line-follower dapat bergerak mengikuti


garis sembarang. Gambar 21 memuat Dunia robot
©M

dengan satu garis dan sebuah program untuk


memerintahkan robot mengikuti garis tersebut.
Cobalah membuat dunia robot tersebut dan
jalankan programnya.
Algoritma dan Pemrograman 53
s
es
1 while right_is_blocked:
2 move

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

Tuliskan program saudara pada lembar kerja.


i ya
ad
m
am
uh

(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

54 Algoritma dan Pemrograman


3. Buatlah sebuah program agar robot dapat mengikuti
garis yang mempunyai belokan ke kiri dan ke
kanan. Robot berhenti jika sudah menemukan
sebuah beeper. Ujilah program saudara pada

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

jendela disimulasikan dengan sisi yang terbuka


ya

(tidak berdinding). Robot berdiri membelakangi


sebuah dinding. Buatlah dunia robot tersebut pada
program GvRng.
i
ad
m
am
uh
©M

(a) (b)
Gambar 23. Robot penutup pintu dan jendela

Algoritma dan Pemrograman 55


2. Buatlah program agar robot menutup semua
pintu dan jendela. Menutup pintu dan jendela
disimulasikan dengan meletakkan sebuah beeper
pada dinding yang terbuka. Setelah program

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

pintu dan jendela. Jalankan program saudara.


ad

Buatlah screen shot dari window GvRng dan salin


ke lembar kerja. Tuliskan juga program saudara di
m

lembar kerja.
am

„„ Kegiatan 4. Robot penjinak bom


1. Sebuah program diterapkan pada sebuah robot
uh

untuk mencari sebuah bom di dalam sebuah


gedung (lihat Program 13). Bom disimulasikan
©M

dengan sebuah beeper, dan gedung disimulasikan


dengan kotak tertutup. Ujilah program tersebut
pada sembarang bentuk ruang di dalam gedung

56 Algoritma dan Pemrograman


dan sembarang posisi bom, misalnya seperti
gambar. Catatan: program tersebut berjalan benar
jika tidak ada ruang yang tidak berdinding.

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

Program 13. Progam mencari bom di gedung


h
i ya
ad
m
am
uh
©M

2. Tuliskan pengertian dari program di atas dalam 5 –


10 baris kalimat (harap ditulis tangan).

Algoritma dan Pemrograman 57


3. Tuliskan algoritma dari robot penjinak bom,
sehingga dapat diterapkan pada berbagai bahasa
pemrograman (harap ditulis tangan).

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

Screen shot dari window GvRng setelah ada instruksi


i

mengambil kembali semua beeper:


ad

Kegiatan 2.
m

Berikut adalah program line follower dengan belokan ke kiri:


am

Berikut adalah program line follower dengan belokan ke kiri


uh

dan ke kanan:
©M

Kegiatan 3.
Berikut adalah program menutup pintu dan jendela versi
saya:

58 Algoritma dan Pemrograman


Screen shot dari window GvRng sebelum program
dijalankan (pada dunia robot versi saya):

Screen shot dari window GvRng setelah program dijalankan:

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

Algoritma dan Pemrograman 59


Contoh soal UTS dan jawaban

1. Buatlah program GvRng agar robot memasuki lorong,

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

60 Algoritma dan Pemrograman


14 turnleft
15 turnleft
16 move
17 turnright

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

Jawab: tiap orang mempunyai cara berbeda dalam


uh

menyelesaikan masalah, berikut dua alternatif:


©M

1 define keliling:
2 do 4:
3 if next_to_a_beeper:
4 pickbeeper

Algoritma dan Pemrograman 61


5 turnleft
6 move
7 if next_to_a_beeper:
8 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

62 Algoritma dan Pemrograman


20 do 7:
21 move
22 turnleft
23 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

Algoritma dan Pemrograman 63


©M

64
uh
am
m
ad
iya
h
un
ive

Algoritma dan Pemrograman


rs
ity
Pr
es
s
PRAKTIKUM 6 :
DATA DAN OPERATOR

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

terkait cara pengolahan yang dapat dilakukan terhadap data.


ya

Pengolahan data dapat dilakukan dengan menggunakan


operator, instruksi atau menggunakan fungsi.
i
ad

„„ TIPE DATA
m

Program Python membedakan data ke dalam berbagai


am

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

tunggal terdiri atas bilangan bulat (integer), bilangan


desimal (floating point), dan huruf/karakter (string). Data
©M

koleksi terdiri atas string, list, tuple, dan dictionary.

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

menyimpan bilangan dengan digit yang lebih banyak


ya

daripada objek dengan tipe data float.


i

3. String
ad

Objek string digunakan untuk menyimpan data


berupa huruf/karakter atau tanda baca. Data bertipe
m

string dapat berisi satu huruf atau lebih dan ditulis


am

menggunakan tanda kutip tunggal, tanda kutip ganda,


atau tiga buah tanda kutip (lihat Program 14).
uh

1 S = ‘Ini adalah sebuah string’


2 P = “String ini ditulis dengan menggunakan
©M

tanda kutip ganda”


3 R = “““Ini adalah tanda baca bahasa
Indonesia: . , “ ”””
4 Q = ‘Tanda kutip ada 2 yaitu tunggal (\’)

66 Algoritma dan Pemrograman


dan ganda (“)’
5 M = “““Pada string, tanda backslash dipakai
utk menulis simbol.
6 Tiga tanda kutip digunakan untuk menulis

s
string yang panjang
7

es
yang terdiri atas berbaris-baris huruf”””

Program 14. Berbagai cara membuat string

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

4 print(‘Huruf ke-9 kalimat tersebut adalah’,


S[8])
i

5
ad

print(S * 2)

Program 15. Operasi terhadap string


m

Baris 2 pada Program 15 menggunakan operator


am

+ untuk menggabungkan beberapa string. Baris 4


merupakan contoh pembacaan huruf-huruf yang ada
uh

pada sebuah string. Dalam kehidupan sehari-hari


kita meyebut huruf yang pertama dari sebuah kalimat
©M

sebagai huruf ke-1. Tapi Python memulai indeks dari


angka 0. Untuk mengakses huruf pertama digunakan
simbol S[0], artinya huruf pada string S dengan indeks
0.

Algoritma dan Pemrograman 67


Untuk membaca beberapa huruf sekaligus dari sebuah
string dapat dilakukan dengan slicing. Misalnya untuk
mengakses huruf dengan indeks 4 hingga indeks 6
digunakan simbol: S[4:7]. Cobalah contoh Program 16

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:]

Program 16. Slicing terhadap string


i
un
4. Tuple
String merupakan deretan huruf. Tuple adalah deretan
h

objek. Tuple ditulis dengan tanda kurung dan tiap


ya

elemen tuple ditulis secara berurutan dengan tanda


koma sebagai pemisah. Seperti string, elemen tuple
i

dapat dibaca dengan menggunakan indeks (dan indeks


ad

dimulai dari 0). Seperti string, beberapa elemen tuple


dapat diambil menggun menggunakan slicing.
m
am

1 A = (2, 7, 19, 11, 5, 13, 3, 17) # sebuah


tuple
2 print(A[4]) # menampilkan elemen tuple
uh

indeks 4
3 C = A[1:4] # slicing, C juga menjadi tuple
4 B = (4, ‘yes’, -21, 44, ‘aduh’) # tuple
©M

berisi angka dan string


5 B[1] = ‘no’ # ERROR

Program 17. Tuple dan akses data pada tuple

68 Algoritma dan Pemrograman


Tuple dapat berisi objek dengan tipe data yang berbeda,
seperti pada contoh di atas pada baris 4. Elemen tuple
dapat dibaca. Tapi elemen tuple tidak dapat diubah.
Pada baris 5 contoh di atas, elemen tuple B pada

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

5 print(N) # menampilkan [4, ‘no’, -21,


44, ‘aduh’]
ya

Program 18. List dan akses datanya


i
ad

6. Dictionary
Dictionary merupakan daftar yang berisi pasangakan
m

kunci (key) dan nilai (value). Dictionary ditulis


am

menggunakan tanda kurung kurawal. Pasangan


kunci-nilai ditulis dengan pemisah titik dua (:). Setiap
pasangan kunci-nilai dipisahkan dengan pasangan
uh

lain dengan tanda koma. Data pada dictionary diakses


dengan menyebut kunci, bukan dengan menyebut
©M

indeks.
Dictionary diterapkan pada aplikasi penerjemahan
bahasa, aplikasi yang membutuhkan enumerasi, dan

Algoritma dan Pemrograman 69


pada pertukaran data melalui internet dengan teknik
yang disebut JSON.

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

Operator merupakan simbol yang menandai


i

pengolahan data dalam sebuah program komputer.


ad

1. Operator Menyimpan (assignment)


m

Data disimpan di harddisk atau flashdisk dalam bentuk


am

berkas (file). Data disimpan sementara di memori


komputer dalam bentuk variabel atau objek. Pada
sebuah program komputer, menyimpan data dilakukan
uh

dengan menggunakan simbol = (sama dengan). Dalam


matematika, simbol = berarti “sama dengan”, tapi pada
©M

program komputer simbol = berarti “menyimpan”.

70 Algoritma dan Pemrograman


Operasi Pengertian
a = 9.5 Menyimpan bilangan 9.5 ke variabel
bernama a
Membuat objek bernama a dan diisi

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

Operator aritmatika digunakan untuk menerapkan


ya

operasi aritmatika pada objek angka. Tabel berikut


berisi beberapa operator aritmatika dan contoh
i

penggunaannya.
ad

Simbol Nama Contoh Hasil


m

+ 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

% Sisa hasil bagi 7%3 1


** Perpangkatan 3 ** 4 81

Perhatikan program Python berikut ini:

Algoritma dan Pemrograman 71


1 >>> A = 9
2 >>> B = 2 * 3
3 >>> print(A)
4 9

s
5 >>> print(A + B)
6

es
15

Program 20. Menggunakan variabel untuk menyimpan data

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

Operator perbandingan digunakan untuk


ya

membandingkan nilai dua objek. Di dalam komputer,


hasil perbandingan mempunyai dua kemungkinan nilai
i
ad

yaitu True atau False. Tabel berikut berisi beberapa


operator perbandingan dan contoh penggunaanya.
m

Simbol Nama Contoh Hasil


am

== kesamaan 7 == 3 False
!= ketidaksamaan 7 != 3 True
> lebih dari 7>3 True
uh

>= lebih dari atau sama 7 >= 3 True


< kurang dari 7<3 False
©M

<= kurang dari atau sama 7 <= 3 False


in anggota dari 3 in [1, 3, 5, 7] True

72 Algoritma dan Pemrograman


Operator perbandingan sering digunakan ketika
mengambil keputusan dan sering muncul bersama
instruksi pengambilan keputusan seperti if dan
while. Operator keanggotaan digunakan untuk menguji

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

Baris 2 Program 21 berarti bahwa jika hasil


perbandingan “nilai objek a lebih dari nol” menghasilkan
ya

True maka perintah baris 3 harus dikerjakan. Jika


hasil perbandingan baris 2 menghasilkan False maka
i
ad

dilakukan operasi perbandingan “nilai objek a sama


dengan nol”. Jika hasil perbandingan baris 4 bernilai
m

True maka baris 5 harus dikerjakan. Baris 6 berarti


bahwa jika semua perbandingan sebelumnya selalu
am

False maka baris 7 harus dikerjakan.

4. Operator Logika
uh

Operator logika digunakan untuk mengolah nilai-nilai


boolean (yaitu nilai True dan False). Tipe data dari nilai
©M

logika disebut tipe boolean (bool). Operator logika


biasanya digunakan dalam pengambilan keputusan
yang membutuhkan banyak perbandingan (dan setiap

Algoritma dan Pemrograman 73


perbandingan merupakan nilai True dan False). Tabel
berikut berisi operator logika dan contoh penggunaanya.

Simbol Nama Contoh Hasil

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

6 if a > 10 or a < -10


7 print(‘Nilai mutlak bilangan tersebut
i

lebih dari 10’)


ad

Program 22. Operasi perbandingan dan operator Boolean


m

Baris 2 pada program di atas merupakan instruksi


am

pengambilan keputusan. Jika seluruh operasi logika


bernilai TRUE maka instruksi baris 3 akan dijalankan.
Operasi logika pada baris 2 menggunakan operator
uh

logika and. Operator logika tersebut mengoperasikan


dua buah logika hasil perbandingan yaitu a > 0 dan
©M

a % 2 == 0. Perbandingan a > 0 dan a % 2 ==


0 menghasilkan nilai TRUE atau FALSE.

74 Algoritma dan Pemrograman


Kegiatan Praktikum
„„ Kegiatan 1. Identitas
1. Buatlah program yang menampilkan identitas

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

1. Buatlah sebuah program yang baris pertama


ya

dan kedua dari program tersebut merupakan


objek Nama dan Tanggal lahir saudara. Berikut
i

contohnya.
ad

1 ## Program Akun
m

2 ## Dibuat oleh David L20000012


3 Nama = ‘David John Bohlam’
am

4 TanggalLahir = ‘15 September 1990’


5 ...
uh

2. Lanjutkan program tersebut sehingga menampilkan


Nama saudara, Tanggal Lahir, dan Nama singkat.
©M

Contoh nama singkat adalah : ‘D. J. Bohlam’ Nama


singkat harus diolah dari objek Nama. Jika nama
saudara hanya terdiri atas satu kata, nama singkat
sama dengan nama lengkap.

Algoritma dan Pemrograman 75


3. Lanjutkan program tersebut sehingga menampilkan
username dari sebuah sistem. Username dibuat
dari inisial, tanggal dan tahun lahir. Contoh
username untuk David Bohlam adalah : ‘D151990’

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

1 >>> Nama = ‘David John Bohlam’ # ganti dg


ya

nama saudara
2 >>> NIM = ‘L200100100 # ganti dengan NIM
saudara
i
ad

3 >>> X = ‘1’ + NIM[7:]


4 >>> a = int(X) # konversi string ke
m

integer
5 >>> b = len(Nama)
am

2. Lanjutkan program di atas dengan menuliskan


perintah-perintah di bawah ini. Setiap kali satu
uh

perintah dikerjakan, tuliskan respon dari Python.


Tuliskan juga komentar pada lembar kerja mengapa
Python memberi respon seperti itu.
©M

6 >>> type(a)
7 >>> type(b)
8 >>> a / b

76 Algoritma dan Pemrograman


9 >>> a // b
10 >>> 10 * (a – 999)
11 >>> b ** 2
12 >>> 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

Python memberi respon seperti itu.


ya

18 >>> c > b
i

19 >>> type(c > b)


ad

20 >>> a > b and b > c


21 >>> a > 1100 or b < 10
m

„„ Kegiatan 4. Tipe Data


am

1. Ketikkan perintah-perintah berikut ini pada mode


interaktif. Pada program tersebut, gantilah NIM
uh

dengan tiga digit terakhir NIM saudara. Catatan:


jika digit ke-8 dari NIM saudara adalah 0 maka
©M

tambahkan satu digit lagi di depannya yaitu angka


1.

Algoritma dan Pemrograman 77


1 >>> Nama = ‘David John Bohlam’ # ganti dg
nama saudara
2 >>> NIM = 127 # tiga digit terakhir NIM
saudara

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

14 >>> Aku[0] = ‘ok’


am

3. Lanjutkan program di atas dengan menuliskan


perintah-perintah di bawah ini. Setiap kali satu
perintah dikerjakan, tuliskan respon dari Python.
uh

Tuliskan juga komentar pada lembar kerja mengapa


Python memberi respon seperti itu.
©M

15 >>> type(Data)
16 >>> type(Data[4])
17 >>> Data[4][5]

78 Algoritma dan Pemrograman


18 >>> Data[4][a:6]
19 >>> Data[0] = ‘ok’; Data
20 >>> Data[-a]
21 >>> range(a)

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

Algoritma dan Pemrograman 79


16
17
18
19

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

80 Algoritma dan Pemrograman


23
24
25

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

„„ Kegiatan 4. Tipe Data


©M

No
8
9
10

Algoritma dan Pemrograman 81


11
12
13
14

s
15

es
16
17

Pr
18
19
20

ity
21

rs
Hasil

Komentar i ve
un
h
yai
ad
m
am
uh
©M

82 Algoritma dan Pemrograman


PRAKTIKUM 7 :
PERULANGAN DAN
PENGAMBILAN

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

Program komputer pada dasarnya mengenal dua


macam perulangan (iterasi), yaitu perulangan dengan
i
ad

jumlah iterasi yang tetap dan perulangan kondisional. Loop


adalah bagian dari program komputer yang ditulis satu kali
m

tapi dkerjakan berulang-ulang.


am

„„ Perulangan dengan jumlah loop tertentu


Seringkali diperlukan agar komputer melakukan
uh

pekerjaan berulang-ulang dengan jumlah iterasi yang tetap.


Sebagai contoh jika program memproses sekumpulan data
©M

satu per satu. Instruksi perulangan yang digunakan adalah


for. Format perintah for adalah:

Algoritma dan Pemrograman 83


for variabel in iterables:
...
loop
...

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

Baris 4 – 6 merupakan sebuah iterasi atau perulangan.


h

Loop pada iterasi tersebut adalah baris 5 – 6, artinya baris


ya

5 – 6 dikerjakan berulang-ulang. Pada saat iterasi pertama


dikerjakan, nilai i sama dengan 3 yaitu elemen pertama
i
ad

dari list L. Pada iterasi berikutnya, nilai i berubah menjadi 7.


Pada iterasi terakhir, nilai i sama dengan 11.
m

Kita dapat membuat iterator dengan perintah range,


lalu menggunakan iterator tersebut pada perintah for,
am

seperti pada contoh berikut ini. Iterator adalah objek yang


membantu dalam melakukan iterasi dengan memberikan
uh

data secara bertahap seperti yang diperlukan dalam


perulangan.
©M

7 # Program menampilkan 10 bilangan cacah


pertama
8 # Oleh: programmer

84 Algoritma dan Pemrograman


9 for i in range(10):
10 print(i, end=’ ‘)

Program 24. Memanfaatkan perintah range pada sebuah iterasi

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

jumlah iterasinya. Perulangan terus terjadi selama suatu


ya

kondisi terpenuhi. Perulangan seperti ini disebut perulangan


kondisional.
i
ad

Perulangan kondisional berguna ketika mengolah data


yang jumlahnya tidak diketahui, atau jumlahnya dapat
m

berubah menyesuaikan situasi dan kondisi. Instruksi Python


untuk perulangan kondisional adalah while. Format dari
am

perintah while adalah:

while <ekspresi boolean>:


uh

...
loop
©M

...

Ekspresi boolean adalah pernyataan yang menghasilkan


nilai boolean (True atau False). Jika ekspresi boolean

Algoritma dan Pemrograman 85


bernilai True, loop dikerjakan. Jika ekspresi boolean bernilai
False, iterasi selesai. Perhatikan contoh berikut:

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

program yang bodoh, tidak interaktif dan tidak menarik.


ya

Pada kenyataannya, pengambilan keputusan membuat


komputer menjadi cerdas dan berguna.
i

Instruksi pengambilan keputusan dalam Python adalah


ad

if dengan segala variasinya. Berikut adalah format


perintah if, dan variasinya.
m

if <kondisi>:
am

instruksi

Jika <kondisi> bernilai True, maka instruksi akan dikerjakan.


uh

if <kondisi>:
©M

instruksi1
else:
instruksi2

86 Algoritma dan Pemrograman


Jika <kondisi> bernilai True, maka instruksi1 akan dikerjakan,
namun jika bernilai False maka instruksi2 yang dikerjakan.

if <kondisi1>:

s
instruksi1
elif <kondisi2>

es
instruksi2
else:

Pr
instruksiterakhir

Jika <kondisi1> bernilai True, maka instruksi1 akan

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

6 print(“Anda memasukkan bilangan


ganjil”)
i

7 else:
ad

8 print(“Anda tidak memasukkan bilangan


bulat”)
m

Program 26. Pengambilan keputusan


am

Catatan:
1. Klausa elif dapat diperbanyak lebih dari
uh

satu sesuai kebutuhan. Artinya saudara dapat


mencantumkan beberapa perintah elif dalam
©M

instruksi if.
2. Perintah while mengandung proses pengambilan
keputusan. Jika ekspresi boolean pada klausa

Algoritma dan Pemrograman 87


while bernilati True maka loop dikerjakan dan
jika tidak maka iterasi selesai.

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

2. Setelah program dapat berjalan, tunjukkan pada


ad

asisten. Perlihatkan bahwa data nama bangun dan


rumus disimpan pada sebuah Dictionary.
m

„„ Kegiatan 2. Password
am

1. Buatlah sebuah program yang menanyakan


password kepada user. Gunakan nama saudara
uh

sebagai password dalam program tersebut. Jika


user memasukkan password yang benar, tampilkan
©M

pesan “Anda berhasil login” lalu program berhenti.


Jika user memasukkan password yang salah,
tampilkan “Maaf, anda salah memasukan password”
lalu program menanyakan lagi password. User

88 Algoritma dan Pemrograman


diberi kesempatan tiga kali untuk memasukkan
password. Jika user telah memasukkan password
salah 3 kali, tampilkan “Akses anda ditolak” lalu
program berhenti. Berikut salah satu skenario

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

„„ Kegiatan 3. Ucapan selamat


h

1. Buatlah sebuah program yang menanyakan


ya

nama dan waktu kepada user. Kemudian


sampaikan ucapan selamat kepada user sesuai
waktu yang diinputkan. Misalnya pada jika waktu
i
ad

yang diinputkan tergolong pagi hari, program


menampilkan “Selamat pagi user”. Nama waktu
m

disimpan dalam program pada sebuah data bertipe


tuple, yaitu: (‘pagi’, ‘siang’, ‘sore’,
am

‘petang’, ‘malam’). Batas jam untuk masing-


masing waktu terserah saudara. Berikut salah satu
uh

skenario jalannya program.

Masukkan nama saudara: Badu


©M

Pukul berapa sekarang? 14.15


Selamat siang Badu.

Algoritma dan Pemrograman 89


2. Setelah program dapat berjalan, tuliskan kode
program pada lembar kerja (dengan tulisan tangan).

„„ Kegiatan untuk penggemar pemrograman

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

90 Algoritma dan Pemrograman


PRAKTIKUM 8 :
FUNGSI

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

program yang berbeda. Dengan fungsi akan diperoleh


ya

instruksi baru dan pengelompokan beberapa instruksi yang


sering dikerjakan berulang.
i
ad

Python mempunyai fungsi-fungsi standar yang


langsung bisa digunakan, seperti print dan input().
m

„„ Pembuatan dan pemanggilan fungsi


am

Pembuatan fungsi dalam Python mengikuti beberapa


aturan berikut.
uh

1. Blok fungsi dimulai dengan kata kunci def dan


diikuti nama fungsi dan tanda kurung.
©M

2. Parameter/argumen fungsi diletakkan di dalam


tanda kurung, dan bersifat opsional. Jumlah
parameter juga opsional, bisa satu, dua, tiga

Algoritma dan Pemrograman 91


atau lebih. Parameter merupakan data input bagi
sebuah fungsi.
3. Setelah tanda tutup kurung terdapat tanda titik dua
(:).

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

“””docstring = string untuk memberi


ya

keterangan “””
...
i
ad

instruksi
...
return hasil
m
am

Berikut contoh pembuatan fungsi dengan satu paramter


dan dengan data kembalian.
uh

def kuadrat(x):
“““menghitung nilai kuadrat dari sebuah
©M

bilangan”””
y = x ** 2
return y

92 Algoritma dan Pemrograman


Kode program di atas merupakan pembuatan fungsi
bernama kuadrat(). Ada satu parameter fungsi yaitu
x dan nilai yang dikembalikan oleh fungsi adalah y.
Setelah fungsi dibuat, fungsi dapat digunakan (atau sering

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

12 print(“Kuadrat dari 9 adalah”, kuadrat(9))


i

Program 27. Membuat fungsi dan memanggil fungsi


ad

„„ Parameter atau argumen fungsi


m

Python mengenal setidaknya tiga mekanisme


am

pemberian nilai parameter saat fungsi dipanggil, yaitu:


• Parameter wajib
• Parameter dengan kunci
uh

• Parameter dengan nilai default


Perhatikan Program 28 di bawah ini.
©M

1 #!/usr/bin/python3
2
3 # Pembuatan fungsi di sini

Algoritma dan Pemrograman 93


4 def luas(alas, tinggi=5):
5 “”” Fungsi dengan dua parameter
6 salah satu parameter default “””
7 L = 0.5 * alas * tinggi

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

Pada program di atas, terdapat satu fungsi dan


3 pemanggilan fungsi dengan 3 cara berbeda. Pada
ya

pembuatan fungsi terdapat parameter yang mengandung


pemberian nilai yaitu tinggi= 5 (lihat baris 4). Jika program
i
ad

dijalankan, pada tiap variabel akan tersimpan data berikut


ini.
m

A = (2, 4, 4.0)
am

b = (4, 6, 12.0)
c = (3, 5, 7.5)
uh

Pada baris 12, fungsi dipanggil secara normal, artinya


hanya menyebut nilai parameter sehingga nilai parameter
©M

yang masuk ke dalam fungsi akan sesuai dengan urutan


parameter yang dibuat. Pada baris 14, fungsi dipanggil
dengan menyebutkan nama parameter dan nilainya,

94 Algoritma dan Pemrograman


sehingga nilai parameter yang masuk tidak harus urut. Pada
baris 16, fungsi dipanggil hanya dengan menyebutkan satu
paramter dan nilainya, dan parameter yang tidak disebut
sudah mempunyai nilai default.

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

variabel global dan lokal.


ya

17 #!/usr/bin/python3
18
i
ad

19 total = 0 # Di sini, total mrpk variabel


global
20 # Membuat fungsi
m

21 def tambahkan(par1, par2):


am

22 “””Menjumlah dua bilangan”””


23 total = par1 + par2; # Di sini, total
mrpk variabel lokal
uh

24 print(“Di dalam fungsi, total = “,


total)
25
©M

return total
26
27 # Memanggil fungsi
28 tambahkan(10, 20)

Algoritma dan Pemrograman 95


29 print(“Di luar fungsi, total = “, total)

Program 29. Variabel global dan lokal

Pada baris 3 program di atas terdapat variabel total

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

saudara membuat banyak fungsi dan ingin agar fungsi-fungsi


ya

tersebut dapat digunakan di banyak program yang berbeda.


Pyhton mempunyai satu cara untuk menghimpun fungsi-
i

fungsi ke dalam satu berkas untuk dapat dipergunakan


ad

pada program lain. Berkas tersebut disebut modul.


Modul adalah berkas yang berisi variabel atau
m

statement dan fungsi Python. Nama berkas tersebut sama


am

dengan nama modul ditambah ekstensi .py. Fungsi dalam


sebuah modul dapat dimpor ke modul lain atau ke program
utama. Semua modul mempunyai variabel khusus untuk
uh

menyimpan nama modul, dan variabel tersebut adalah __


name__.
©M

Misalkan terdapat sebuah program Python seperti di


bawah ini, yang disimpan dengan nama fibo.py. Secara
otomatis, berkas Python tersebut menjadi sebuah modul
bernama fibo.
96 Algoritma dan Pemrograman
1 # Nama berkas: fibo.py
2 def fib(n):
3 “””menulis bilangan Fibonacci hingga
n”””

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

Program 30. Sebuah berkas dengan dua fungsi


h

Modul tersebut dapat digunakan dalam mode interaktif


ya

maupun di dalam skrip program. Berikut contoh penggunaan


modul pada layar interaktif.
i
ad

1 >>> import fibo


m

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

Algoritma dan Pemrograman 97


Kegiatan Praktikum
„„ Kegiatan 1. Membuat modul
1. Buatlah sebuah modul python yang berisi fungsi

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

a) Jika pilihan == ‘b’ (bantuan): tampilkan


daftar pilihan.
i

b) Jka pilihan == ‘k’ (keluar): selesai.


ad

c) Jika pilihan == .‘ ...’ memanggil fungsi di


dalam modul
m

d) Selain itu (pilihan tidak valid), tampilkan


“perintah tidak dikenal”.
am

e) Tanyakan kepada user sebuah pilihan


Berikut contoh tampilan program jika dijalankan.
uh

Pilihan yang tersedia:


©M

b menampilkan bantuan ini


N menampilkan NIM
a menampilkan Nama
A menampilkan Alamat

98 Algoritma dan Pemrograman


K menampilkan Kode pos
x xxx
x xxx
x xxx

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.

3. Jika program saudara sudah berjalan, tunjukkan


h

kepada asisten.
ya

„„ Kegiatan 2. Membuat fungsi


i
ad

1. Buatlah sebuah fungsi bernama


konversiSuhu(). Fungsi ini dapat mengkonversi
m

suhu dari Celcius ke Fahrenheit dan sebaliknya.


Jika fungsi ini dipanggil dalam mode interaktif
am

dengan berbagai cara akan diperoleh keluaran


berbeda sebagaimana tampil di bawah ini.
uh

>>> konversiSuhu(C = 40)


Suhu 40 Celcius setara dengan 104
©M

Fahrenheit
>>> konversiSuhu(F = 95)
Suhu 95 Fahrenheit setara dengan 35
Celcius

Algoritma dan Pemrograman 99


>>> konversiSuhu(30)
Suhu 30 Celcius setara dengan 86
Fahrenheit
>>> konversiSuhu()

s
Suhu 0 Celcius setara dengan 32

es
Fahrenheit

2. Setelah fungsi yang saudara buat dapat berjalan,

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

100 Algoritma dan Pemrograman


PRAKTIKUM 9 :
MENGOLAH DATA PADA
BERKAS

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

dan berkas biner (yaitu berkas yang berisi objek). Berkas


teks dapat dibuka dengan editor teks seperti Notepad,
i

Nano atau GEdit. Berkas biner harus dibuka oleh aplikasi


ad

tertentu yang kompatibel. Jika sebuah berkas tidak bisa


dibuka dengan editor teks, maka berkas tersebut adalah
m

berkas biner. Contoh berkas biner adalah berkas dokumen


Office (misalnya *.doc, *.odt, *.xls, *.ods), berkas gambar
am

(misalnya *.bmp, *.jpg), berkas suara (misalnya *.mp3) dan


berkas video. Untuk mengakses data pada berkas biner,
uh

harus diketahui format atau tata cara penyimpanan datanya.


Sebagian berkas biner sudah mengalami pengolahan
©M

sebelum disimpan sehingga dperlukan algoritma tertentu


untuk mengakses data yang tersimpan.
Pada prinsipnya terdapat dua aktivitas dasar dalam
mengakses berkas, yaitu menulis data ke dalam berkas dan
Algoritma dan Pemrograman 101
membaca data dari berkas. Pengolahan data pada berkas
terdiri atas tiga langkah dasar yaitu:
1. Membuka berkas
2. Menyimpan data ke berkas atau membaca data

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

Program 31. Menulis ke sebuah berkas teks


ya

Setiap akses terhadap berkas teks dimulai dengan


i
ad

membuka berkas dengan instruksi open(), Instruksi


open() menerima dua parameter. Parameter pertama
m

adalah nama berkas (dan nama direktorinya jika perlu) dan


parameter kedua adalah mode akses.
am

Baris 3 program di atas menginstruksikan membuka


berkas bernama “tulis.txt” dan berkas dibuka dengan mode
uh

“w” (write) yaitu untuk menyimpan (menulis) data. Baris 4


dan 5 merupakan instruksi untuk menyimpan (menulis) teks
ke dalam berkas. Baris 6 berisi instruksi untuk menutup
©M

berkas. Berkas yang ditutup tidak dapat dibaca dan ditulisi.


Terdapat lima instruksi dasar dalam mengolah berkas
teks sebagaimana tercantum pada tabel berikut.

102 Algoritma dan Pemrograman


Instruksi Penggunaan
write() Menulis satu kalimat. Parameter berupa satu
string.
writelines() Menulis satu atau banyak kalimat. Parameter

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

Mode akses berkas ada tiga macam, yaitu:


i

1. “w” : berkas diakses untuk menyimpan data. Jika


ad

nama berkas sudah ada, maka berkas lama akan


dihapus.
m

2. “r”: berkas diakses untuk dibaca.


am

3. “a”: berkas diakses untuk menyimpan data. Jika


nama berkas sudah ada, maka data baru akan
ditambahkan (append) di bagian akhir berkas.
uh

Untuk mengakses berkas biner, ditambahkan karakter


“b” pada mode berkas. Jadi untuk membaca data dari
©M

berkas biner, digunakan mode “rb”. Jika pada mode berkas


ditambahkan simbol “+”, maka akses berkas bisa dilakukan
baik untuk proses penyimpanan data dan pembacaan data.

Algoritma dan Pemrograman 103


„„ Mengolah data pada berkas biner dengan
teknik Shelve
Akses data atau objek dengan cara Shelve lebih
fleksibel karena proses pembacaan data tidak harus urut

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

7 F[“merk”] = (‘Buccheri’, ‘Gucci’,


‘Cibaduyut’)
i

8 F[“harga”] = [500000, 250000, 150000]


ad

9 F.close() # menutup berkas


10
m

11 F = shelve.open(“lemari.data”) # membuka
berkas
am

12 print(“Produk:”, F[“produk”]) # membaca data


13 print(“Harga:”, F[“harga”]) # akses data
mirip Dictionary
uh

14 print(“Merk:”, F[“merk”]) # tidak harus


urut
©M

15 produk = F[“produk”] # data dapat dibaca


lagi
16 print(F[“merk”][2])
17 F.close() # menutup berkas

104 Algoritma dan Pemrograman


Pada program di atas, urutan penyimpanan objek
adalah “produk”, “merk” dan “harga”, sedangkan data dibaca
dengan urutan yang berbeda, yaitu “produk”, “harga”, dan
“merk”, bahkan objek “produk” dapat dibaca berulang.

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

c. tuliskan nama lengkap saudara pada baris


ketiga.
i
ad

2. Jalankan program saudara dan perhatikan isi


berkas yang dibuat. Jika program saudara sudah
m

benar, tuliskan kode program dan isi berkas pada


lembar kerja (dengan tulisan tangan).
am

„„ Kegiatan 2. Membaca berkas teks


uh

1. Bukalah berkas teks yang saudara buat pada


kegiatan 1. Ubahlah tanggal lahir sehingga
©M

formatnya menjadi mm/dd/yyy. Tambahkan satu


baris data berisi kota kelahiran saudara.
2. Buatlah sebuah program python yang membaca
berkas teks di atas. Tampilkan data ke layar monitor
Algoritma dan Pemrograman 105
dengan urutan berikut:
a. tampilkan nama lengkap
b. tampilkan kota, tanggal lahir
c. tampilkan NIM

s
es
3. Jalankan program saudara . Jika program saudara
sudah benar, tuliskan kode program dan isi berkas

Pr
pada lembar kerja (dengan tulisan tangan).

„„ Kegiatan 3. Membaca data dari berkas teks dan

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

program tersebut (dengan tulisan tangan) pada


ya

lembar kerja.
i

„„ Kegiatan 4. Membaca Shelve


ad

4. Buatlah sebuah program yang membaca data dari


Shelve yang saudara buat pada kegiatan 2.
m

5. Tampilkan data-data tersebut pada layar monitor.


am

6. Buatlah screen shot dari program saudara dan


screen shot dari layar monitor setelah program
uh

saudara berjalan.
©M

106 Algoritma dan Pemrograman


PRAKTIKUM 10 :
TOPIK LANJUT
(KOMUNIKASI JARINGAN)

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

model 3D, pengolahan data statistik dan numerik, hingga


ya

komunikasi antar komputer.


i
ad

„„ Komunikasi melalui socket


Python menyediakan dua modul komunikasi melalui
m

socket. Pertama menggunakan protokol TCP (Transmission


Control Protocol) dan kedua menggunakan protokol UDP
am

(User Datagram Protocol). Komunikasi dengan TCP


berorientasi “Connection”, artinya pesan yang dikirim oleh
uh

satu mesin ke mesin lain akan dipastikan sampai dan


sesuai dengan urutan paket pengiriman. Komunikasi
melalui UDP bersifat “Connectionless”, artinya client hanya
©M

perlu mengirim dan tidak perlu tahu apakah pesan yang


dikirim sudah sampai atau urutannya sesuai. Sistem yang
memanfaatkan TCP antara lain adalah www, email, ftp dan

Algoritma dan Pemrograman 107


SSH. Sistem yang memanfaatkan UDP antara lain DNS,
IPTV dan VoIP.
Untuk menjalin komunikasi diperlukan dua pihak, satu
sebagai server dan yang lain sebagai client. Server adalah

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

„„ Program di sisi server


ya

Pada Program 32, instruksi dimulai pada baris 5 yaitu


membuat objek socket bernama s. Pada baris 6, dilakukan
i

pembukaan port 50001 dan dikaitkan dengan objek s. Baris


ad

7 menandai bahwa socket s dapat menerima maksimal 5


antrian koneksi.
m
am

1 # nama berkas: p_tcpser.py


2 # TCP Server untuk client p_tcpcli.py
3 import socket
uh

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”

108 Algoritma dan Pemrograman


9 data = ‘’
10
11 while True:
12 komm, addr = s.accept()

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

baris 14. Baris 15 menampilkan data yang diterima di layar


ya

monitor di server. Baris 16 mengirim kembali data yang


diterima setelah data diubah menjadi huruf kapital semua.
i
ad

„„ Program di sisi client.


m

Program di sisi client (Program 33), koneksi ke server


dilakukan di baris 9. Baris 11 – 15 berisi instruksi untuk
am

meminta teks dari user, kemudian teks tersebut dikirim ke


server. Respon dari server diambil dan ditampilkan.
uh

Setelah program selesai ditulis/diketik, jalankan aplikasi


server melalui terminal Linux dengan perintah:
©M

python p_tcpser.py

Setelah itu, buka sebuah terminal lagi dan jalankan aplikasi


client dengan perintah:
Algoritma dan Pemrograman 109
python p_tcpcli.py

Kemudian ketikkan sembarang kalimat di terminal client,


dan tekan <Enter>. Ulangi untuk kalimat-kalimat yang lain.

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

29 while pesan.lower() != ‘q’:


ad

30 pesan = input(‘Kirim: ‘)
31 s.send(pesan)
m

32 if pesan.lower() != ‘q’:
33 response = s.recv(1024)
am

34 print ‘Diterima:’, response


35 s.close()
uh

Program 33. Kode program di sisi client untuk komunikasi


dengan soket
©M

110 Algoritma dan Pemrograman


„„ Aplikasi client-server sebagai mesin penjawab
otomatis
Banyak aplikasi yang dapat diwujudkan menggunakan
teknologi soket. Aplikasi chat sederhana (dan bersifat peer

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

memperkirakan maksud client dan menjawab pertanyaan


ya

sesuai maksud client.


Cobalah dua buah program (lihat Program 34 dan
i

Program 35) berikut ini untuk sisi server dan client. Jalankan
ad

melalui terminal.
m

1 # nama berkas: p_tcpser.py


2 # TCP Server untuk client p_tcpcli.py
am

3 import socket
4 s = socket.socket(socket.AF_INET, socket.
uh

SOCK_STREAM)
5 s.bind((“”, 50003))
6 s.listen(5)
©M

7 print “Server penjawab otomatis sudah siap”


8 data = ‘’
9 kamus = {‘nama’: ‘Apalah artinya sebuah
nama’,

Algoritma dan Pemrograman 111


10 ‘umur’: ‘Saya lebih muda dari anda’,
11 ‘alamat’: ‘Sebuah tempat yang nyaman
di tepi bukit’,
12 ‘motto’: ‘Malu bertanya sesat di

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

Program 34. Kode pada server untuk mesin penjawab otomatis


ya

sederhana
i
ad

1 # nama berkas: p_tcpcli.py


2 # Client TCP untuk server p_tcpser.py
m

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

9 print “Mesin penjawab otomatis sudah siap”


10 while pesan.lower() != ‘q’:
11 pesan = input(‘Pertanyaan: ‘)
12 s.send(pesan)
112 Algoritma dan Pemrograman
13 if pesan.lower() != ‘q’:
14 response = s.recv(1024)
15 print ‘Jawaban:’, response
16 s.close()

s
Program 35. Kode pada client untuk mesin penjawab otomatis

es
sederhana

Pada terminal client, ketikkan ‘nama’ kemudian tekan

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

sebuah perintah, maka perintah tersebut dikirim ke


ya

server. Server kemudian memberi respon.


2. Daftar perintah yang dikenal oleh server adalah:
i
ad

nama, NIM, angkatan, keluar. Jika server menerima


perintah “nama”, “NIM”, “angkatan”, maka server
m

menjawab dengan mengirim data sesuai data diri


saudara. Jika server menerima perintah “keluar”,
am

maka server menjawab “siap!!” dan komunikasi


selesai (program di server dan di client ditutup).
Jika server menerima perintah yang tidak dikenal,
uh

maka server menjawab “Maaf, perintah tidak


dimengerti”
©M

3. Berikut contoh tampilan program di sisi client.


Program komunikasi tentang data diri
Perintah: nama

Algoritma dan Pemrograman 113


Jawab: Hasan Basri Durin
Perintah: NIM
Jawab: L200111000
Perintah: alamat

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

platform. Karena itu pada program server, terdapat


ya

perintah impor modul tersebut yaitu:


i

import platform
ad

Ketika server menerima perintah machine,


misalnya, maka server harus menjalankan fungsi
m

machine(). Salah satu cara merespon perintah


am

adalah dengan perintah if seperti berikut ini.


if perintah.lower() == ‘machine’:
uh

respon = platform.machine()
komm.send(respon)
©M

3. Perintah quit disediakan untuk keluar dari proses


komunikasi. Jika pengguna mengetikkan perintah
ini, maka program di server dan di client ditutup.

114 Algoritma dan Pemrograman


4. Berikut contoh tampilan program di sisi client
Program komunikasi tentang server
Command: machine
Response: x86_64

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

2. Buatlah program python untuk komunikasi melalui


soket. Program pada client menerima nilai
m

parameter dari pengguna program. Nilai paramter


itu dikirim ke server dan disinpan di server.
am

Ketika pengguna mengetikkan perintah hitung,


maka perintah tersebut dikirim ke server dan
server kemudian memberi respon berupa hasil
uh

perhitungan luas bangun geometri.


3. Program pada server menyimpan data parameter
©M

ke suatu variable. Ketika menerima perintah


hitung, program di server menghitung luas bangun
geometri, kemudian mengirim hasilnya ke client.

Algoritma dan Pemrograman 115


4. Berikut contoh tampilan program di sisi client
Menghitung luas lingkaran # sesuaikan
dengan nama bangun
Pesan: parameter 1 = 10 # jumlah

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

komputer ke komputer lain.


i ya
ad
m
am
uh
©M

116 Algoritma dan Pemrograman


Lembar Kerja Praktikum 10

Setelah kegiatan selesai, lembar kerja (Diisi oleh Asisten)


ini dicetak (di-print) dan dikumpulkan ke Nilai praktek:

s
asisten.

es
NIM :
Nama :
Tanda tangan:

Pr
Nama asisten :
Tanggal Praktikum :

ity
rs
Kegiatan 1.
Program pada sisi server:

Program pada sisi client:


i ve
un

Screen shot terminal server:


h
ya

Screen shot terminal client:


i
ad

Kegiatan 2.
Program pada sisi server:
m
am

Program pada sisi client:

Screen shot terminal client:


uh

Kegiatan 3.
©M

Program pada sisi server:

Algoritma dan Pemrograman 117


Program pada sisi client:

Screen shot terminal client:

s
es
Pr
ity
rs
i ve
un
h
i ya
ad
m
am
uh
©M

118 Algoritma dan Pemrograman


PRAKTIKUM 11 :
TOPIK LANJUT
(PROGRAM GUI)

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

model 3D, pengolahan data statistik dan numerik, hingga


komunikasi antar komputer.
ya

„„ Program berbasis GUI


i
ad

GUI merupakan singkatan dari Graphical User


Interface, yang menunjukkan jenis aplikasi komputer
m

yang mempunyai antarmuka grafis. Tandingannya adalah


am

antarmuka berbasis teks. Pada antarmuka berbasis teks,


program menampilkan hasil dalam bentuk tulisan, simbol
dan tanda baca. Pengguna program berinteraksi lebih
uh

banyak menggunakan keyboard, termasuk ketika memilih


menu. Contoh program berbasis teks adalah terminal pada
©M

Unix/Linux atau DOS Command Prompt pada Microsoft


Windows. Ciri yang khas dari program berbasis teks adalah
tulisan menggunakan huruf (font) dengan ukuran dan spasi
seragam (lihat Gambar 24).
Algoritma dan Pemrograman 119
?
Gambar 24. Contoh tampilan program dengan antarmuka
berbasis teks: python melalui terminal

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

Gambar 25. Contoh tampilan program berbasis GUI: calculator


uh

Python mempunyai beberapa modul yang digunakan


untuk membuat program dengan antar muka grafis, misalnya
Tkinter, EasyGUI dan wxPython. Modul yang merupakan
©M

bawaan python adalah Tkinter sehingga dalam petunjuk


praktikum ini digunakan Tkinter.

120 Algoritma dan Pemrograman


„„ Dasar pemrograman dengan Tkinter
Modul Tkinter merupakan kumpulan banyak kelas,
fungsi, variabel dan konstanta terkait dengan pemrograman
GUI. Setiap widget (yaitu komponen GUI) dideklarasikan

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

Program 36. Dasar program GUI dengan python dan Tkinter


m
am
uh
©M

Algoritma dan Pemrograman 121


s
es
Pr
ity
rs
ve
Gambar 26. Window tanpa widget
i
un
Window utama hanya berupa kotak kosong (lihat
Gambar 26). Sebuah aplikasi GUI mempunyai banyak
komponen (atau disebut juga widget) misalnya menu,
h

tombol, kotak edit, pilihan checkbox, pilihan radiobutton,


ya

label, dan gambar. Langkah untuk menambahkan widget


pada window adalah dengan membuat objek dari kelas
i
ad

widget dan menempelkan objek tersebut pada posisi


tertentu di window.
m

Contoh aplikasi GUI dengan widget ditunjukkan pada


Program 37. Baris 2 pada program tersebut menunjukkan
am

penggunaan kelas Tk, Label dan Entry. Baris 3


menunjukkan penggunaan konstanta LEFT dan RIGHT.
uh

Baris 4 berisi perintah membuat objek dari kelas Tk


dengan window bernama ‘Aplikasi dengan label’
yang sekaligus akan menjadi title dari window.
©M

122 Algoritma dan Pemrograman


1

Program 37. Program GUI dengan window yang mengandung


widget

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

Tkinter memiliki 3 cara untuk menempatkan objek pada


window, dua cara di antaranya dengan method pack dan
h

grid. Penempatan objek dapat dibantu dengan kelas


ya

Frame.
Pack digunakan untuk menempatkan objek secara
i
ad

padat/ berdampingan di antara satu objek dengan objek


lain yang mempunyai parent yang sama. Pada Program 37
terdapat contoh penggunaan perintah pack.
m

Grid digunakan untuk menempatkan objek dalam


am

bingkai seperti matriks. Setiap posisi widget mempunyai


nomor kolom dan nomor baris. Pada Program 38 terdapat
contoh penggunaan perintah grid. Perintah di baris 7
uh

menempatkan objek L1 pada grid di baris 0 kolom 0 (yaitu


posisi paling kiri atas). Perintah di baris 9 menempatkan
©M

objek E1 pada grid di baris 0 kolom 1 (yaitu di sebelah


kanan paling atas). Sementara baris 19 berarti objek B
ditempatkan pada grid di baris 2 kolom 1. Hasil penempatan

Algoritma dan Pemrograman 123


objek seperti itu terlihat pada Gambar 27.

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

oleh aplikasi, misalnya pengguna mengklik tombol mouse,


ya

pengguna menggeser mouse, dan printer kehabisan kertas.


Pada Program 38 terdapat sebuah fungsi bernama
i

tampil_pesan, yaitu pada baris 15-16. Fungsi itu jika


ad

dijalankan akan menampilkan sebuah kotak pesan


bertuliskan “Hello World”. Fungsi tersebut telah dikaitkan
m

dengan sebuah kejadian. Perhatikan baris 18 ketika objek


am

Button bernama B dibuat, salah satu parameter berbunyi


“command=tampil_pesan”. Parameter itu bermakna
bahwa penekanan tombol B akan berakibat fungsi tampil_
uh

pesan akan dijalankan.


©M

„„ Mengakses tulisan pada widget


Beberapa widget mengandung informasi berupa string,
misalnya Label dan Entry. Jika informasi tersebut bukan

124 Algoritma dan Pemrograman


hanya informasi statis (tidak berubah selama program
berjalan), dan ingin diakses selama program berjalan, maka
diperlukan objek khusus sebagai pengait. Objek tersebut
adalah StringVar. Perhatikan baris 8 dan baris 13 pada

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

Canvas : sebagai kanvas untuk menggambar


ya

bangun geometri seperti garis, oval, dan


poligon
i

Checkbutton : menampilkan checkbox (pilihan opsional)


ad

Entry : menampilkan kotak agar pengguna dapat


menginputkan satu baris teks
m

Frame : wadah untuk mengorganisasi widget


am

Label : label untuk widget lain


Listbox : menampilkan kotak berisi pilihan
Menubutton : menampilkan menu dalam bentuk tombol
uh

Menu : menampilkan menu dalam bentuk teks,


dan ikon
©M

Message : menampilkan kotak agar pengguna dapat


menginputkan berbaris-baris teks
Radiobutton : menampilkan tombol pilihan
Scale : menampilkan slider
Algoritma dan Pemrograman 125
Scrollbar : menampilkan scrollbar
Text : menampilkan berbaris-baris teks
MessageBox : modul untuk membuat kotak pesan/dialog
yang berisi banyak macam kotak

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

Nama Hasan Basri Durin


NIM L200111000
i
ad

Buku favorit Tenggelamnya Kapal Van der Wijck


Idola di kalangan sahabat Umar bin Khattab
m

Motto Menjaga hati


am

2. Pada tombol “Tutup”, tautkan parameter command


ke sebuah fungsi dan di dalam fungsi tersebut
uh

berikan perintah “my_app.quit()” untuk


menutup aplikasi jika tombol di-klik.
©M

3. Untuk membuat font yang berukuran besar,


ketika membuat Label tambahkan parameter font:
font=(nama_font, ukuran), contoh:

126 Algoritma dan Pemrograman


L = Label(my_app, text=’coba’,
font=(‘Arial’, 24))

4. Jalankan program dan buatlah screenshot dari


aplikasi saudara.

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

„„ Kegiatan 3. Menghitung luas bangun geometri


©M

1. Tema untuk kegiatan 3 bervariasi untuk para


mahasiswa tergantung digit terakhir NIM.

Algoritma dan Pemrograman 127


Digit Digit
terakhir Tema terakhir Tema
NIM NIM
1 Segitiga 6 Jajar genjang

s
2 Segiempat 7 Tabung

es
3 Bola 8 Persegi
4 Persegi 9 Prisma

Pr
5 Piramid 0 Balok

2. Layout dari aplikasi adalah seperti gambar.

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

tombol di-klik, di sebelah kanannya akan tampil


ya

luas bangun geometri sesuai nilai parameter yang


diinputkan di Entry.
i
ad

5. Gambar bersifat opsional, boleh dilewati.


6. Buatlah sebuah screenshot dari aplikasi saudara
m

saat program python dijalankan.


am

Bangun Geometri
Deskripsi tentang bangun geometri, antara lain nama,
uh

dimensi, contoh benda, dan lain-lain.


Parameter 1 :
©M

Parameter 2 :

Luas = 1045

128 Algoritma dan Pemrograman


„„ Kegiatan bagi penggemar pemrograman (tidak
dikumpulkan)
1. Buatlah program kalkulator dengan satu Entry,
tombol angka, tombol operasi aritmatika, dan

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

Algoritma dan Pemrograman 129


Lembar Kerja Praktikum 11

Setelah kegiatan selesai, lembar kerja (Diisi oleh Asisten)


ini dicetak (di-print) dan dikumpulkan ke Nilai praktek:

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

130 Algoritma dan Pemrograman


PRAKTIKUM 12 :
TOPIK LANJUT
(LAYANAN WEB)

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

model 3D, pengolahan data statistik dan numerik, hingga


ya

komunikasi antar komputer.


i
ad

„„ Akses informasi melalui web


Python mempunyai banyak modul yang digunakan
m

mengakses informasi melalui jaringan dan web. Sebagian


modul yang dimaksud adalah urllib, httplib, ftplib, poplib,
am

imaplib, dan http.server. Berbagai modul mempunyai


peruntukan tersendiri. Jadi untuk menggunakan suatu
uh

modul, perlu dikenali fasilitas dan kegunaannya. Ada


beberapa modul yang mempunyai kegunaan sama namun
©M

mempunyai kelebihan dan kekurangan yang berbeda


sehingga perlu dicermati untuk disesuaikan dengan
keperluan kita saat membuat program.

Algoritma dan Pemrograman 131


„„ Modul http.server
Modul ini berisi beberapa class untuk menerapkan
pembuatan web server yang berjalan pada protokol http.
Salahsatu kelas yaitu HTTPServer membuat

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

semua berkas di direktori tersebut dan seluruh direktori di


ya

bawahnya. Berkas yang ditampilkan di web browser adalah


berkas yang berekstensi html. Jika direktori tidak mempunyai
i
ad

berkas html, maka yang ditampilkan di web browser adalah


daftar berkas pada direktori tersebut.
m

Misalkan terdapat berkas teks yang isinya sebagai


berikut.
am

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

132 Algoritma dan Pemrograman


SimpleHTTPRequestHandler. Untuk menjalankan
objek tersebut cukup dilakukan dengan
mengetikkan di terminal:</p>
6 <pre>python -m http.server 8000</pre>

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

Gambar 28. Melayani akses informasi melalui web dengan


am

SimpleHTTPRequestHandler

Port 8000 merupakan nomor port default dari layanan


uh

web dengan SimpleHTTPRequestHandler. Jika diinginkan


layanan menggunakan port lain, misalkan pada port 8020,
©M

maka pada saat menjalankan server digunakan perintah


berikut.
python -m http.server 8020

Algoritma dan Pemrograman 133


„„ Kelas CGIHTTPRequestHandler
Jika objek http.server dijalankan dengan handler dari
kelas ini di sebuah direktori, maka layanan web akan aktif.
Perilaku SimpleHTTPRequestHandler dapat dilakukan

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

Pada direktori “coba”, buatlah sebuah folder dan beri


i

nama “cgi-bin”. Kemudian buatlah sebuah berkas teks.


ad

Beri nama berkas tersebut index.py dan letakkan berkas


pada direktori cgi-bin. Isi dari berkas teks adalah sebagai
m

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

5 <body><h3>Selamat datang di CGI</h3>”””)


6
7 print(“””<p>Anda mengakses informasi

134 Algoritma dan Pemrograman


ini melalui layanan CGI dengan
CGIHTTPRequestHandler.</p>”””)
8 print(“<p>Informasi tentang <a href=’umur.
py’>umur</a> dan <a href=’lingkaran.

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

7 <p>Informasi tentang <a href=’umur.


ya

py’>umur</a> dan <a href=’lingkaran.


py’>lingkaran</a></p>
i

8 </body></html>
ad

Namun kali ini kita tidak akan menjalankan program


m

tersebut melalui python (atau IDLE). Program tersebut akan


am

diakses melalui web browser! Untuk itu, jalankan server


web dengan handler CGIHTTPSRequestHandler pada
direktori di atas cgi-bin (bukan pada direktori cgi-bin)
uh

dengan mengetikkan pada terminal:


python -m http.server --cgi 8080
©M

Setelah itu, bukalah sebuah web browser dan ketikkan


sebagai URL http://localhost:8080/cgi-bin/
index.py. Pada browser akan tampil halaman web seperti
Algoritma dan Pemrograman 135
pada Gambar 29. Pada halaman tersebut terdapat dua tautan
(yaitu tag <a href>), satu tautan merujuk lingkaran.py
dan satu lagi merujuk ke umur.py.

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

7 print(“””<canvas id=”myCanvas” width=”150”


height=”150” style=”border:1px solid
#d3d3d3”>Browser anda tidak mendukung tag
uh

canvas.</canvas>”””)
8
©M

9 jejari = 10
10 from math import pi
11 area = pi * jejari ** 2
12 jejari_px = 5 * jejari

136 Algoritma dan Pemrograman


13
14 print(“<p>Lingkaran berjejari {0} cm”.
format(jejari))
15 print(“mempunyai luas {0} cm2</p>”.

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

3 from datetime import date, datetime


4
5 def hitung_umur(tglahir):
m

6 “fungsi menghitung umur dalam tahun”


am

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

Algoritma dan Pemrograman 137


15 print(“””<html>
16 <head><title>Akses melalui CGIHTTPServer</
title></head>
17 <body><h3>Selamat datang di CGI</h3>”””)

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>”)

Catatan. Teknologi python-web yang dicoba pada praktikum


h

ini masih bersifat sederhana. Server web baru bersifat


ya

melayani permintaan GET, belum bisa merespon terhadap


permintaan POST. Untuk bisa melayani POST, perlu
i
ad

dibuat kelas turunan dari kelas CGIHTTPRequestHandler


(atau bisa juga turunan BaseHTTPRequestHandler), dan
menggunakannya saat mengaktifkan server web.
m

Implementasi nyata dari program python untuk aplikasi


am

web diwujudkan dalam pemrograman berbasis framework


seperti misalnya Django dan web2py. Silakan telusuri di
internet mengenai kedua framework tersebut, dan pelajari.
uh
©M

138 Algoritma dan Pemrograman


Kegiatan Praktikum
„„ Kegiatan 1. Membuat server web dengan
SimpleHTTPRequestHandler

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

Tempat, tanggal lahir :


ya

Tempat wisata favorit :


Motto :
i
ad

3. Bukalah sebuah terminal linux, kemudian pergi


menuju folder yang saudara buat pada kegiatan
m

nomor 1 di atas. Jalankan server web dengan


am

SimpleHTTPRequestHandler menggunakan
nomor port 8123.
4. Bukalah sebuah browser internet, ketikkan
uh

sebagai url: localhost:8123/. Perhatikan apa


yang ditampilkan di browser dan cek apakah
©M

layout sudah sesuai. Jika sudah, buatlah sebuah


screenshot dari yang ditampilkan browser.

Algoritma dan Pemrograman 139


„„ Kegiatan 2. Membuat halaman web dengan
CGIHTTPRequestHandler
1. Pada folder yang saudara buat pada kegiatan 1 di
atas, buatlah folder baru dan beri nama cgi-bin.

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

4. Bukalah sebuah browser internet, ketikkan sebagai


ya

url: localhost:8456/cgi-bin/index.py.
Perhatikan apa yang ditampilkan di browser dan cek
i

apakah layout sudah sesuai. Jika sudah, buatlah


ad

sebuah screenshot dari yang ditampilkan browser.


Kemudian, program python dan screenshot-nya
m

dituliskan pada lembar kerja.


am

„„ Kegiatan 3. Aplikasi web dengan CGI


1. Tema untuk kegiatan 3 bervariasi untuk para
uh

mahasiswa tergantung digit terakhir NIM.


©M

140 Algoritma dan Pemrograman


Digit Digit
terakhir Tema terakhir Tema
NIM NIM
1 Segitiga 6 Jajar genjang

s
2 Segiempat 7 Tabung

es
3 Bola 8 Persegi
4 Persegi 9 Prisma

Pr
5 Piramid 0 Balok

2. Pada folder cgi-bin, buatlah sebuah program

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

parameter yaitu jari-jari sehingga di halaman web


ya

cukup ditulis Jari-jari : 10. Untuk balok, misalnya,


terdapat tiga parameter yaitu Panjang, Lebar dan
i

Tinggi.
ad

4. Data tentang luas ditulis sesuai hasil perhitungan


fungsi yang menghitung luas.
m
am

Bangun Geometri
Nama bangun:
uh

Dimensi (2D/3D):
Rumus luas :
©M

Parameter 1 :
Parameter 2 :
Luas :

Algoritma dan Pemrograman 141


5. Program python yang dibuat mempunyai template
sebagai berikut.

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

6. Bukalah sebuah browser internet, ketikkan


sebagai url: localhost:8456/cgi-bin/nama_
h

bangun.py. Perhatikan apa yang ditampilkan


ya

di browser dan cek apakah layout sudah sesuai.


Jika sudah, buatlah sebuah screenshot dari yang
i
ad

ditampilkan browser. Kemudian, program python


dan screenshot-nya dituliskan pada lembar kerja.
m

„„ Kegiatan bagi penggemar pemrograman (tidak


am

dikumpulkan)
1. Cobalah menggunakan CSS pada program
uh

halaman web saudara, misalnya dengan bootstrap.


2. Cobalah membuat aplikasi yang mengakses
©M

berkas teks dan menampilkan sebagian data dari


berkas tersebut sebagai halaman web.
3. Lakukan eksplorasi agar web saudara dapat
mengolah perintah POST.

142 Algoritma dan Pemrograman


Lembar Kerja Praktikum 12

Setelah kegiatan selesai, lembar kerja (Diisi oleh Asisten)


ini dicetak (di-print) dan dikumpulkan ke Nilai praktek:

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

Screenshot dari halaman web


ya

Kegiatan 3.
i
ad

Source code dari program python.


m

Screenshot dari halaman web


am
uh
©M

Algoritma dan Pemrograman 143


s
es
Pr
ity
rs
i ve
un
h
iya
ad
m
am
uh
©M

144 Algoritma dan Pemrograman


©M
uh
am
m
ad
iya
h
un
ive
rs
ity
Pr
es
s

Anda mungkin juga menyukai