Anda di halaman 1dari 212

DIKTAT

LOGIKA INFORMATIKA DAN ALGORITMA

UNIVERSITAS PUTERA BATAM


TAHUN 2021
l(ode : Dikt.TlF.04
DIKTAT LOGIKA
Tanggal : 15 Agustus 2021
,'i',kWW INFORMATIKA DAN
Revisi
ALGORITMA
X|*iY*r*h*t' f *\*r* Y,xtrxwu Tanggal Berlaku :)t AgUt,tu! 1o'll\,

DIKTAT LOGIKA INFORMAT!KA DAN ALGORITMA

Penanggung jawab
Proses Tanggal
Nama Jabatan Tanda tangan
1.. Perumusan Andi Maslan, S.T., Ketua Program
M.SI. StudiTeknil2-z
lnformatik*-: G-Pguttu, ,ou
2. Pemeriksaan Welly Sugianto, Dekan Fal<ultas
d
S.T., M.M. Teknik dan
komputer tB $guttus rotr
3. Persetujuan Ronald, B.AF., Plh. Wakil Rektor
M.Com. Bidang Akademik \9 Agurtr-r ror:u

4. Penetapan Dr. Nur Elfi Husda, Rektor


S.Kom., M.Sl.
)o huttr tow

5. Pengendalian Dr. Realize, l(epala Lembaga


S.Kom., M.Sl. .Jaminan Mutu u4^A',
<-*' -+--"' [r' frgultur 1op
DIKTAT

KOMPUTASI NUMERIK

TIM PENYUSUN:

Penanggung Jawab

Andi Maslan, S.T., M.SI.

Penyusun

Koko Handoko, S.Kom., M.Kom

Diterbitkan Oleh:

Universitas Putera Batam

iii
KATA PENGANTAR

Puji syukur kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga diktat
Logika Informatika dan Pemprograman ini tepat pada waktunya. Adapun tujuan dari penulisan
dari diktat ini adalah untuk menyediakan bahan ajar bagi mahasiswa yang sesuai dengan RPS dan
untuk mendukung pencapaian CPL Prodi Teknik Informatika. Penulis mengucapkan terima kasih
kepada semua pihak yang telah membagi sebagian pengetahuannya sehingga diktat ini dapat
diselesaikan dengan baik dan tepat waktu. Penulis menyadari, bahwa diktat ini masih jauh dari
kata sempurna. Oleh karena itu, mohon kritik dan saran yang membangun demi kesempurnaan
diktat ini.

Batam,23 Agustus 2021

Penyusun

iv
DESKRIPSI MATA KULIAH

Mata kuliah ini merupakan dasar pemprograman komputer yang disusun khususnya yang
menggunakan Bahasa pemprograman Python. Materi ditunjukkan untuk yang ingin mempelajari
Bahasa pemprograman computer terutama pada aspek logika untuk menyelesaikan berbagai
masalah. Oleh karena itu, banyak sekali persoalan yang diberikan beserta solusi masing-masing.
Dalam pembahasan yang dibuat materi dibuat secara berurutan dari satu bab ke bab lain. Itulah
sebabnya, disarankan agar mahasiswa mengikuti langkah-langkah ini agar dapat mendapatkan
manfaat yang optimal.

v
DAFTAR ISI
Halaman

HALAMAN SAMPUL....................................................................................................................... iv

LEMBAR PENGESAHAN.................................................................................................................. iv

DESKRIPSI MATA KULIAH .............................................................................................................. iv

KATA PENGANTAR......................................................................................................................... iv

DESKRIPSI MATA KULIAH ............................................................................................................... v

DAFTAR ISI ..................................................................................................................................... vi

DAFTAR TABEL.................................................................................................................................x

DAFTAR GAMBAR...........................................................................................................................xi

BAB I SISTEM KOMPUTER .............................................................................................................. 1


1.1 Pengantar Komputer ........................................................................................................... 1
1.2 Jenis Komputer.................................................................................................................... 2
1.3 Konsep Dasar Komputer: Masukan, Proses, dan Keluaran................................................. 2
1.4 Pengenalan Sistem Komputer ............................................................................................. 4
1.5 Perangkat Keras .................................................................................................................. 5
1.6 Dasar Bit .............................................................................................................................. 5
1.7 Pengenalan Satuan Data ..................................................................................................... 6
1.8 Sistem Pengkodean Karakter .............................................................................................. 7

BAB 2 PEMROGRAMAN KOMPUTER UNTUK PENYELESAIAN MASALAH ................................... 19


2.1 Program, Pemrograman, dan Pemrogram ....................................................................... 19
2.2 Bahasa Pemrograman ....................................................................................................... 19
4.3 Interpreter dan Kompiler .................................................................................................. 22
4.4 Penyelesaian Masalah....................................................................................................... 23
4.5 Algoritma........................................................................................................................... 24
2.6 Diagram Alir ...................................................................................................................... 27
4.6 Perancangan Program....................................................................................................... 29

vi
4.7 Penulisan Program ............................................................................................................ 29
4.8 Pengujian Program............................................................................................................ 30

BAB 3 DASAR PYTHON ................................................................................................................. 34


3.1 Python Sebagai Bahasa Pemrograman Berorientasi Objek .............................................. 34
3.2 Pernyataan pada Python................................................................................................... 35
3.3 Konsep Pemrosesan dalam Program ................................................................................ 35
3.4 Tipe Data ........................................................................................................................... 36
3.5 Konstanta .......................................................................................................................... 38
3.6 Variabel ............................................................................................................................. 44
3.7 Fungsi ................................................................................................................................ 48
3.8 Ekspresi, Operator, dan Operan ....................................................................................... 49
3.9 Komentar .......................................................................................................................... 54
3.10 Gaya Penulisan Skrip dan kekangan ............................................................................. 55

BAB 4 TIPE LOGIKA DALAM PEMROGRAMAN............................................................................. 64


4.1 Pemrograman Terstruktur ................................................................................................ 64
4.2 Struktur Logika .................................................................................................................. 65
4.3 Peranan Tipe Logika .......................................................................................................... 66
4.4 Operator Relasional .......................................................................................................... 67
4.5 Operator Logika ................................................................................................................ 71
4.6 Evaluasi Hubung Singkat ................................................................................................... 76
4.7 Cara Mengubah Nilai Logika Menjadi Informasi............................................................... 78
4.8 Penyelesaian Masalah dengan Tipe Logika....................................................................... 79

BAB 5 PENYELESAIAN MASALAH DENGAN STRUKTUR SEKUENSIAL DAN SELEKSI.................... 82


5.1 Konsep Dasar pada Struktur Sekuensial ........................................................................... 82
5.2 Contoh Penyelesaian Masalah dengan Hanya Struktur Sekuensial ................................. 83
5.3 Konsep Dasar pada Struktur Seleksi ................................................................................. 84
5.4 Struktur Seleksi Satu Alternatif dengan Pernyataan if ..................................................... 87
5.5 Struktur Seleksi Dua Alternatif dengan Pernyataan if ...................................................... 90
5.6 Struktur Seleksi Dua Alternatif dengan Ekspresi if..else ................................................... 92
5.7 Struktur Seleksi Banyak Alternatif dengan Pernyataan if..elif.......................................... 93

vii
5.8 Berbagai Penyelesaian Masalah dengan Struktur Seleksi ................................................ 95

BAB 6 PENYELESAIAN MASALAH DENGAN STRUKTUR PERULANGAN....................................... 99


6.1 Peranan Perulangan.......................................................................................................... 99
6.2 Pernyataan While............................................................................................................ 100
6.3 Pernyataan For ................................................................................................................ 106
6.4 Pernyataan Break............................................................................................................ 108
6.5 Pernyataan Continue ...................................................................................................... 109
6.6 Penyelesaian Masalah dengan Perulangan .................................................................... 110

BAB 7 OPERASI STRING .............................................................................................................. 115


7.1 Pengenalan string pada python ...................................................................................... 115
7.2 Cara mendapatkan jumlah karakter dalam string .......................................................... 115
7.3 Pengaksesan string.......................................................................................................... 115
7.4 Operasi + untuk penggabungan string............................................................................ 118
7.5 Operasi Relasional pada String ....................................................................................... 120
7.6 Metode Bawaan String ................................................................................................... 120
7.7 Penyelesaian Masalah dengan String ............................................................................. 125

BAB 8 PENGGUNAAN STRUKTUR DATA .................................................................................... 129


8.1 Pengenalan Struktur Data ............................................................................................... 129
8.2 Senarai............................................................................................................................. 129
8.3 Tupel................................................................................................................................ 135

BAB 9 PENGGUNAAN STRUKTUR DATA .................................................................................... 141


9.1 Kamus .............................................................................................................................. 141
9.2 Himpunan........................................................................................................................ 146
9.3 Penanganan Baris Perintah ............................................................................................. 152
9.4 Penyelesaian Masalah Dengan Struktur Data................................................................. 153

BAB 10 PEMBUATAN FUNGSI .................................................................................................... 157


10.1 Peranan Fungsi dalam Skrip........................................................................................ 157
10.2 Pembuatan fungsi ....................................................................................................... 158
10.3 Lingkup Variabel.......................................................................................................... 160
10.4 Pengubahan Nilai Argumen di dalam Fungsi .............................................................. 162

viii
10.5 Kata-Kunci Parameter ................................................................................................. 162
10.6 Parameter Bawaan...................................................................................................... 163
10.7 Argumen yang Bersifat Variabel ................................................................................. 165
10.8 Fungsi Anonim............................................................................................................. 165
10.9 Fungsi Rekursif ............................................................................................................ 166
10.10 Penyelesaian Masalah dengan Fungsi ........................................................................ 167

BAB 11 PEMBENTUKKAN KELAS DAN OBJEK............................................................................. 172


11.1 Pembuatan Kelas dan Objek ....................................................................................... 172
11.2 Inisialisasi Objek .......................................................................................................... 175
11.3 Pengenalan Destruktor ............................................................................................... 175
11.4 Variabel Kelas dan Variabel Instan.............................................................................. 177
11.4 Objek Sebagai Parameter Fungsi .................................................................................. 179
11.5 Senarai Objek .............................................................................................................. 180
11.6 Objek Sebagai Nilai Balik Fungsi.................................................................................. 181
11.7 Penghapus Objek ........................................................................................................ 182
11.8 Penyelesaian Masalah Menggunakan Kelas dan Objek.............................................. 182

BAB 12 EKSPRESI DAN PENANGANANNYA................................................................................ 190


12.1 Pengantar Eksepsi ....................................................................................................... 190
12.2 Jenis Eksepsi .................................................................................................................... 191
12.3 Penanganan Eksepsi.................................................................................................... 192
12.4 Penggunaan pass pada except .................................................................................... 194
12.5 Pernyataan try..finally................................................................................................. 195
12.6 Pelontaran Eksepsi ...................................................................................................... 196
12.7 Penggunaan AssertionError ........................................................................................ 197
12.8 Penyelesaian Masalah Menggunakan Penanganan Eksepsi....................................... 197

ix
DAFTAR TABEL

Halaman

Tabel 1.1 Daftar satuan data .......................................................................................................... 6

Tabel 1.2 ASCII Code ....................................................................................................................... 8

Tabel 2.1 Penjelasan simbol-simbol pada diagram alir ................................................................. 23

Tabel 3.1 Bahasa manusia dan pernyataan pada Python yang setara........................................... 31

Tabel 3.2 Menunjukkan berbagai tipe data dasar pada python ..................................................... 33

Tabel 3.3 Pemilihan tipe data yang paling tepat digunakan .......................................................... 33

Tabel 3.4 Konstanta bilangan bulat dalam sistem heksadesimal, oktal, dan ................................. 35

Tabel 3.5 Mencantumkan daftar karakter deret escape................................................................ 39


Tabel 3.6 Fungsi-fungsi matematika pada modul math ................................................................. 45

Tabel 3.7 Mencantumkan seluruh operator aritmetika pada Python ............................................ 47

Tabel 3.8 Persamaan matematis dan penerjemahan masing-masing ........................................... 51

Tabel 3.9 Operator majemuk yang ditujukan untuk operasi aritmetika........................................ 52

Tabel 4.1 Daftar operator relasional ............................................................................................. 67

Tabel 4.2 Contoh penggunaan operator relasional pada data strin .............................................. 69

Tabel 4.3 Tabel kebenaran operasi dengan and............................................................................. 72

Tabel 4.4 Ekspresi penentuan huruf kapital ................................................................................ 73

Tabel 4.5 Tabel kebenaran operasi dengan or ............................................................................... 76

Tabel 8.1 pembuatan tupel............................................................................................................. 139

x
DAFTAR GAMBAR

halaman

Gambar 1.1 Jenis-jenis komputer ................................................................................................... 2

Gambar 1.2 Bagan Konsep Dasar Operasi Komputer ..................................................................... 3

Gambar 1.3 Pedoman utk mengonversi bilangan pada sistem biner ke sistem desimal .............. 9

Gambar 2.1 Menampilkan keliling lingkaran ................................................................................. 24

Gambar 3.1 Konsep pemrosesan dalam program ......................................................................... 32

Gambar 4.1 Tiga jenis struktur kontrol penyusun program........................................................... 41

Gambar 4.2 Evaluasi hubung singkat pada kondisit and kondisi 2 ................................................ 77

Gambar 5.1 Struktur sekuensial ..................................................................................................... 82

Gambar 5.2 Kemungkinan penerapan pada struktur seleksi satu alternative .............................. 85

Gambar 5.3 Struktur seleksi dua alternative.................................................................................. 86

Gambar 5.4 Struktur seleksi banyak alternative .......................................................................... 86

Gambar 5.5 Struktur seleksi banyak alternatif model kedua ........................................................ 87

Gambar 5.6 Diagram alir pernyataan if sederhana ....................................................................... 88

Gambar 5.7 Pernyataan if.else ....................................................................................................... 90

Gambar 10.1 Jumlah skrip dan pemeliharan skrip ......................................................................... 165

Gambar 10.2 Berbagai istilah dalam definisi fungsi ...................................................................... 166

Gambar 10.3 Nilai bawaan dalam definisi fungsi .......................................................................... 171

Gambar 10.4 Proses rekursif pada perhitungan 5.......................................................................... 174

Gambar 11.1 Memberikan penjelasan visual mengenai kelas ..................................................... 181

Gambar 11.2 Nama yang sama harus dibedakan .......................................................................... 182

xi
BAB I
SISTEM KOMPUTER

CAPAIAN PEMBELAJARAN

• Mahasiswa mampu menerangkan dan memperluas pengetahuan tentang sistem


komputer.
• Mahasiswa mampu menghitung dan menguraikan konversi perhitungan bilangan di
komputer.

MATERI

1.1 Pengantar Komputer


Saat ini, komputer merupakan peralatan elektronik yang umum dijumpai di mana saja dan
bahkan dalam bentuk apa saja Komputer tidak selalu berbentuk PC maupun notebook, tetapi
bisa melekat dalam perangkat mikrogelombang pembuat kopi, maupun mesin pencuci.
Komputer (computer) berasal dari kata "compute" yang berarti "menghitung". Awalnya,
komputer memang ditujukan sebagai kalkulator atau mesin penghitung yang sangat cepat. ENIAC
(Electrinic Numerical Integrator and Computer) merupakan komputer elektronik pertama yang
diciptakan di Universitas Pennsylvania pada tahun 1946 yang mampu melakukan beban
komputas numerisme pemrograman.
Pada masa ini, yang dinamakan komputer adalah perangkat elektronik yang dirancang agar
dapat diprogram untuk melakukan berbagai operasi aritmatika dan logika secara otomatis
berdasarkan suatu masukan dan menghasilkan suatu keluaran. Operasi aritmatika dan logika
yang dilakukan oleh komputer dapat diwujudkan untuk melakukan berbagai tugas seperti
membuat dokumen, merancang bangunan, menyortir barang, memeriksa sidik jari untuk
keperluan presensi, bahkan untuk melacak plat mobil.

1
1.2 Jenis Komputer
Komputer dapat dibedakan menjadi dua kelompok, yakni komputer untuk tujuan umum dan
komputer tujuan khusus Komputer untuk tujuan umum berwujud seperti PC atau notebook.
Komputer untuk tujuan umum dapat digunakan untuk kepentingan apa saja. Dengan
penambahan program yang sesuai, komputer jenis ini dapat beradaptasi dengan kebutuhan
pemakai. Sebagai contoh, dengan menambahkan program Microsoft Word, pemakai dapat
memanfaatkan komputer membuat dokumen. Dengan menambahkan program permainan
tertentu, pemakai dapat menggunakan komputer sebagai teman bermain Ditinjau dari
kemampuan komputer yang dapat dilihat dari sisi kecepatan pemrosesan, kapasitas
penyimpanan, ataupun aspek komputer untuk tujuan umum dapat berupa PC, notebook,
workstation, minikomputer, mainframe, dan superkomputer.
Komputer untuk tujuan khusus biasa dinamakan sistem melekat, karena unsur komputernya
berada pada perangkat lain. Pada komputer tujuan khusus, komputer sudah diprogram agar
hanya menjalankan suatu tugas yang spesifik.

Gambar 1.1 jenis-jenis komputer

1.3 Konsep Dasar Komputer: Masukan, Proses, dan Keluaran


Secara umum, komputer menangani tiga hal yang dinamakan masukan (input), proses,
keluaran (output).

2
Masukan adalah data yang diperlukan oleh komputer untuk proses. Data bisa berupa
bilangan dan deretan karakter yang dimasukkan dari papan ketik, gambar dan video yang diambil
dari kamera, suara yang di tangkap melalui mikrofon, atau bahkan isyarat analog lain, seperti
suhu dan kelembaban udara yang ditangkap sensor khusus.
Proses adalah bagian yang mengolah masukan menjadi keluaran Mo itangan lobi program
atau yang terkadang dinamakan perang lunak.
Keluaran menyatakan hasil akhir pemrosesan oleh komputer. Keluaran ini dapat diwujudkan
dalam bentuk tampilan di layar monitor.cetakan melalui printer, suara pada pengeras suara,
ataupun rekaman dalam media penyimpanan.
Secara fungsional, suatu komputer sebenarnya melaksanakan lima aktivitas utama, berupa
hal-hal berikut ini:
1) menerima masukan berupa data ataupun instruksi;
2) menyimpan data dan instruksi;
3) memproses data berdasarkan instruksi;
4) mengontrol semua operasi di dalam computer;
5) memberikan hasil dalam bentuk keluaran.
Langkah nomor 2 hingga 4 adalah bagian dari proses.

Gambar 1.2 Bagan Konsep Dasar Operasi Komputer

3
1.4 Pengenalan Sistem Komputer
Sistem komputer menyatakan satu kesatuan sistem yang berhubungan dengan komputer
yang dirancang untuk menghasilkan informasi yang bermanfaat untuk suatu kepentingan. Sistem
komputer melibatkan komponen berupa perangkat lunak (software), perangkat keras
(Hardware), dan perangkat akal (brainware/liveware/humanware).
Perangkat keras berhubungan dengan semua perangkat komputer yang terlihat secara fisik.
Hal ini menyangkut perangkat perangkat yang digunakan untuk kepentingan-kepentingan
berikut:
• Masukan (keyboard, scanner, mouse, pembaca barcode, dan lain-lain);
• Pemrosesan (CPU);
• Penyimpanan (hard disk, RAM, dan lain-lain:
• Keluaran (monitor, printer, dan lain-lain;
• Komunikasi (kartu LAN, penerima WIFI, dan lain-lain).
Perangkat komunikasi hanya tersedia jika komputer ditujukan untuk berkomunikasi dengan
komputer lain.
Perangkat lunak menyatakan program atau aplikasi Program adalah kumpulan instruksi yang
ditulis oleh orang dan ditujukan untuk komputer agar komputer melaksanakan tugas sesuai
dengan instruksi yang diberikan. Perangkat lunak sendiri dibagi menjadi dua jenis, yakni
perangkat lunak sistem dan perangkat lunak aplikasi. Perangkat lunak sistem adalah perangkat
lunak yang lebih ditujukan pada pengelolaan perangkat keras. Sistem operasi seperti Windows
dan Linux tergolong sebagai perangkat lunak system. Adapun perangkat lunak aplikasi atau biasa
disebut aplikasi saja adalah perangkat lunak yang ditujukan untuk membantu pekerjaan pemakai
Sebagai contoh, seorang sekretaris menggunakan aplikasi Microsoft Word untuk menangani
pembuat surat dan seorang perancang web menggunakan GIMP atau A PhotoShop untuk
mendesain gambar.
Perangkat akal berhubungan dengan orang-orang yang menjadi bagian dalam suatu sistem
berbasis komputer. Termasuk dalam hal ini adalah pemakai (pengguna sistem) dan pemrogram
(pembuat program).

4
1.5 Perangkat Keras
Perangkat keras yang mendasari suatu sistem komputer dapat disajikan dalam bentuk
diagram blok. Unit masukan menangani pemasukan data maupun program oleh pemakai.
Biasanya data berasal dari papan-ketik keyboard. Namun masukan bisa saja data berasal dari
media penyimpanan eksternal ataupun sensor.
Unit penyimpanan digunakan untuk menyimpan data maupun program, baik sebelum
maupun sesudah pemrosesan Unit penyimpan dapat berupa penyimpanan eksternal (hard disk,
flas disk, dan lain-lain). Maupun penyimpanan internal (misalnya RAM dan ROM). RAM (Random
Access Memory) adalah jenis penyimpanan internal yang hanya dapat menyimpan data atau
program ketika terdapat aliran listrik, sedangkan ROM (Read Only Memory adalah penyimpan
internal yang digunakan untuk menyimpan data atau program secara permanen.
CPU (Central Processing Unit) atau sering disebut prosesor merupakan bagian pemroses. Dua
bagian penting pada unit ini dinamakan unit pengontrol dan unit aritmatika dan logika. Unit
pengontrol berfungsi mengendalikan seluruh peranti pada komputer, seperti layaknya otak
manusia yang mengontrol seluruh saraf dalam tubuh sehingga seluruh anggota tubuh dapat
digerakkan atau dikendalikan. Pengendalian yang dilaksanakan oleh unit ini didasarkan pada
instruksi-Instruksi yang terdapat pada program komputer. Adapun unit aritmatika dan logika
berperan dalam melaksanakan operasi-operasi perhitungan (aritmetika), seperti pengurangan,
penjumlahan, dan perkalian maupun operasi pembandingan (logika).

1.6 Dasar Bit


Sistem biner telah menjadi dasar kerja sistem komputer. Termasuk komputer ENIAC Sistem
biner adalah sistem bilangan yang hanya menggunakan dua angka berupa 0 dan 1 Keadaan ini
dibayangkan sebagai posisi saklar. Saklar "hidup” menyatakan 1 dan saklar “mati” menyatakan
0. Dalam terminologi komputer, satu angka 0 dan 1 disebut satu bit. Bit sendiri berasal dari
"binary digit".
Dalam dunia pemrograman, satu simbol seperti atau * atau +, satu angka seperti 0 atau 7,
dan juga huruf seperti A atau b dinamakan satu karakter. Nah, satu karakter dapat dinyatakan
dengan 8 bit ataupun 16 bit. Penggunaan 8 bit untuk menyatakan satu karakter hanya berlaku

5
untuk komputer yang melibatkan huruf latin saja. Penggunaan 16 bit untuk menyatakan satu
karakter memungkinkan komputer menangani karakter dalam bahasa Arab, seperti ‫ ݜ‬maupun
berbagai karakter dalam bahasa lain.
1.7 Pengenalan Satuan Data
Bit merupakan satuan data terkecil dalam sistem komputer Satuan yang lebih besar daripada bit
berupa byte, megabyte, gigabyte, terabyte, dan petabyte Tabel 1.1 mencantumkan hubungan
antara satu satuan dengan satuan lain.
Tabel 1.1 Daftar satuan data
Satuan Keterangan

Byte 8 bit

Kilobyte 1024 byte

Megabyte 1024 kilobyte

Gigabyte 1024 megabyte

Terabyte 1024 gigabyte

Petabyte 1024 abyte

1. Byte
Byte merupakan satuan yang digunakan untuk menyatakan atau karakter. Sebagai contoh,
satu karakter pada sistem ASCII dinyatakan dengan satu byte. Satu byte tersutun atas delapan
bit.
2. Kilobyte
Satu kilobyte menyatakan satuan data yang ekuivalen dengan 1024 byte. Satuan ini seringkali
disingkat menjadi KB. Ukuran berkas gambar yang berukuran kecil biasanya berukuran dalam
orde kilobyte.

6
3. Megabyte
Satu megabyte identik dengan 1024 Kilobyte atau sama dengan 1.048.576 byte. Satuan ini
awalnya biasa digunakan untuk menyatakan kapasitas RAM dalam PC Satuan ini seringkali
disingkat menjadi MB. Namun, saat ini ukuran RAM untuk PC sudah mencapai orde gigabyte.
4. Gigabyte
Satu gigabyte identik dengan 1024 megabyte atau sama dengan 1.073.741.824 byte. Satuan
ini biasa digunakan untuk kapasitas hardisk. Satuan ini sering kali disingkat menjadi GB.
5. Terabyte
Satu terabyte sama dengan 1024 gigabyte atau 1.009.511.627.776 byte. Satuan ini bisa
digunakan untuk menyatakan kapasitas hardisk dalam mainframe dan tahun sekarang untuk
PC Satuan ini serinya disingkat menjadi TB
6. Petabyte
Satu petabyte identik dengan 1024 terabyte. Satuan ini biasa disingkat menjadi PB.

1.8 Sistem Pengkodean Karakter


Tiga sistem pengkodean karakter yang umum dipakai adalah ASCII, EBOOK dan Unicode
Ketiga sistem ini dijelaskan secara singkat berikut ini.

a. ASCII
ASCII (American Standard Code for Information Interchange). dikembangkan oleh ANSI
(American National Standards Institute). pada awalnya, standar ini menggunakan tujuh bit
untuk menyatakan satu karakter. Dengan menggunakan tujuh bit, karakter yang tersedia
meliputi karakter kontrol, huruf (A sampai dengan Z dan a dengan z). digit (0 sampai dengan
9), dan sejumlah simbol seperti + Belakangan, ASCII dikembangkan dengan menggunakan
delapan bit dengan tambahan sejumlah simbol Yunani dan karakter grafis. Berikut
merupakan table ASCII.

7
Tabel. 1.2 ASCII Code
Nilai ANSI ASCII Nilai Unicode Karakter Keterangan
(Desimal) (Heksa Desimal)

0 0000 NUL Null (tidak terlihat)


1 0001 SOH Start of heading (tidak terlihat)
2 0002 STX Start of text (tidak terlihat)
3 0003 ETX End of text (tidak terlihat)
4 0004 EOT End of transmission (tidak terlihat)
5 0005 ENQ Enquiry (tidak terlihat)
6 0006 ACK Acknowledge (tidak terlihat)
7 0007 BEL Bell (tidak terlihat)
8 0008 BS Backspace
9 0009 HT Horizontal tabulation
10 000A LF Pergantian baris (Line feed)
11 000B VT Tabulasi vertikal
12 000C FF Pergantian baris (Form feed)
13 000D CR Pergantian baris (carriage return)
14 000E SO Shift out (tidak terlihat)
15 000F SI Shift in (tidak terlihat)
16 0010 DLE Data link escape (tidak terlihat)
17 0011 DC1 Device control 1 (tidak terlihat)
18 0012 DC2 Device control 2 (tidak terlihat)
19 0013 DC3 Device control 3 (tidak terlihat)
20 0014 DC4 Device control 4 (tidak terlihat)
21 0015 NAK Negative acknowledge (tidak terlihat)
22 0016 SYN Synchronous idle (tidak terlihat)
23 0017 ETB End of transmission block
(tidak terlihat)
24 0018 CAN Cancel (tidak terlihat)
25 0019 EM End of medium (tidak terlihat)
26 001A SUB Substitute (tidak terlihat)
27 001B ESC Escape (tidak terlihat)
28 001C FS File separator
29 001D GS Group separator
30 001E RS Record separator
31 001F US Unit separator
32 0020 spasi Spasi
33 0021 ! Tanda seru (exclamation)

8
34 0022 “ Tanda kuti dua
35 0023 # Tanda pagar (kres)
36 0024 $ Tanda mata uang dolar
37 0025 % Tanda persen
38 0026 & Karakter ampersand (&)
39 0027 ‘ Karakter Apostrof
40 0028 ( Tanda kurung buka
41 0029 ) Tanda kurung tutup
42 002A * Karakter asterisk (bintang)
43 002B + Tanda tambah (plus)
44 002C , Karakter koma
45 002D - Karakter hyphen (strip)
46 002E . Tanda titik
47 002F / Garis miring (slash)
48 0030 0 Angka nol
49 0031 1 Angka satu
50 0032 2 Angka dua
51 0033 3 Angka tiga
52 0034 4 Angka empat
53 0035 5 Angka lima
54 0036 6 Angka enam
55 0037 7 Angka tujuh
56 0038 8 Angka delapan
57 0039 9 Angka sembilan
58 003A : Tanda titik dua
59 003B ; Tanda titik koma
60 003C < Tanda lebih kecil
61 003D = Tanda sama dengan
62 003E > Tanda lebih besar
63 003F ? Tanda tanya
64 0040 @ A keong (@)
65 0041 A Huruf latin A kapital
66 0042 B Huruf latin B kapital
67 0043 C Huruf latin C kapital
68 0044 D Huruf latin D kapital
69 0045 E Huruf latin E kapital
70 0046 F Huruf latin F kapital
71 0047 G Huruf latin G kapital
72 0048 H Huruf latin H kapital
73 0049 I Huruf latin I kapital

9
74 004A J Huruf latin J kapital
75 004B K Huruf latin K kapital
76 004C L Huruf latin L kapital
77 004D M Huruf latin M kapital
78 004E N Huruf latin N kapital
79 004F O Huruf latin O kapital
80 0050 P Huruf latin P kapital
81 0051 Q Huruf latin Q kapital
82 0052 R Huruf latin R kapital
83 0053 S Huruf latin S kapital
84 0054 T Huruf latin T kapital
85 0055 U Huruf latin U kapital
86 0056 V Huruf latin V kapital
87 0057 W Huruf latin W kapital
88 0058 X Huruf latin X kapital
89 0059 Y Huruf latin Y kapital
90 005A Z Huruf latin Z kapital
91 005B [ Kurung siku kiri
92 005C / Garis miring terbalik (backslash)
93 005D ] Kurung sikur kanan
94 005E ^ Tanda pangkat
95 005F _ Garis bawah (underscore)
96 0060 ` Tanda petik satu
97 0061 a Huruf latin a kecil
98 0062 b Huruf latin b kecil
99 0063 c Huruf latin c kecil
100 0064 d Huruf latin d kecil
101 0065 e Huruf latin e kecil
102 0066 f Huruf latin f kecil
103 0067 g Huruf latin g kecil
104 0068 h Huruf latin h kecil
105 0069 i Huruf latin i kecil
106 006A j Huruf latin j kecil
107 006B k Huruf latin k kecil
108 006C l Huruf latin l kecil
109 006D m Huruf latin m kecil
110 006E n Huruf latin n kecil
111 006F o Huruf latin o kecil
112 0070 p Huruf latin p kecil
113 0071 q Huruf latin q kecil

10
114 0072 r Huruf latin r kecil
115 0073 s Huruf latin s kecil
116 0074 t Huruf latin t kecil
117 0075 u Huruf latin u kecil
118 0076 v Huruf latin v kecil
119 0077 w Huruf latin w kecil
120 0078 x Huruf latin x kecil
121 0079 y Huruf latin y kecil
122 007A z Huruf latin z kecil
123 007B { Kurung kurawal buka
124 007C | Garis vertikal (pipa)
125 007D } Kurung kurawal tutup
126 007E ~ Karakter gelombang (tilde)
127 007F DEL Delete
128 0080 € Euro sign
129 0081
130 0082 ‚ Single low-9 quotation mark
131 0083 ƒ Latin small letter f with hook
132 0084 „ Double low-9 quotation mark
133 0085 … Horizontal ellipsis
134 0086 † Dagger
135 0087 ‡ Double dagger
136 0088 ˆ Modifier letter circumflex accent
137 0089 ‰ Per mille sign
138 008A Š Latin capital letter S with caron
139 008B ‹ Single left-pointing angle quotation
140 008C ΠLatin capital ligature OE
141 008D
142 008E Ž Latin captial letter Z with caron
143 008F
144 0090
145 0091 ‘ Left single quotation mark
146 0092 ’ Right single quotation mark
147 0093 “ Left double quotation mark
148 0094 ” Right double quotation mark
149 0095 • Bullet
150 0096 – En dash
151 0097 — Em dash
152 0098 ˜ Small tilde
153 0099 ™ Trade mark sign

11
154 009A š Latin small letter S with caron
155 009B › Single right-pointing angle quotation
mark
156 009C œ Latin small ligature oe
157 009D
158 009E ž Latin small letter z with caron
159 009F Ÿ Latin capital letter Y with diaeresis
160 00A0 Spasi yang bukan pemisah kata
161 00A1 ¡ Tanda seru terbalik
162 00A2 ¢ Tanda sen (Cent)
163 00A3 £ Tanda Poundsterling
164 00A4 ¤ Tanda mata uang (Currency)
165 00A5 ¥ Tanda Yen
166 00A6 ¦ Garis tegak putus-putus
167 00A7 § Section sign
168 00A8 ¨ Spacing diaeresis - umlaut
169 00A9 © Tanda hak cipta (Copyright)
170 00AA ª Feminine ordinal indicator
171 00AB « Left double angle quotes
172 00AC ¬ Not sign
173 00AD Tanda strip (hyphen)
174 00AE ® Tanda merk terdaftar
175 00AF ¯ Spacing Macron (Macron)
176 00B0 ° Tanda derajat
177 00B1 ± Tanda kurang lebih (plus-minus)
178 00B2 ² Tanda kuadrat (pangkat dua)
179 00B3 ³ Tanda kubik (pangkat tiga)
180 00B4 ´ Acute accent
181 00B5 µ Micro sign
182 00B6 ¶ Pilcrow sign
183 00B7 · Middle dot
184 00B8 ¸ Spacing cedilla
185 00B9 ¹ Superscript one
186 00BA º Masculine ordinal indicator
187 00BB » Right double angle quotes
188 00BC ¼ Fraction one quarter
189 00BD ½ Fraction one half
190 00BE ¾ Fraction three quarters
191 00BF ¿ Inverted question mark
192 00C0 À Latin capital letter A with grave

12
193 00C1 Á Latin capital letter A with acute
194 00C2 Â Latin capital letter A with circumflex
195 00C3 Ã Latin capital letter A with tilde
196 00C4 Ä Latin capital letter A with diaeresis
197 00C5 Å Latin capital letter A with ring above
198 00C6 Æ Latin capital letter AE
199 00C7 Ç Latin capital letter C with cedilla
200 00C8 È Latin capital letter E with grave
201 00C9 É Latin capital letter E with acute
202 00CA Ê Latin capital letter E with circumflex
203 00CB Ë Latin capital letter E with diaeresis
204 00CC Ì Latin capital letter I with grave
205 00CD Í Latin capital letter I with acute
206 00CE Î Latin capital letter I with circumflex
207 00CF Ï Latin capital letter I with diaeresis
208 00D0 Ð Latin capital letter ETH
209 00D1 Ñ Latin capital letter N with tilde
210 00D2 Ò Latin capital letter O with grave
211 00D3 Ó Latin capital letter O with acute
212 00D4 Ô Latin capital letter O with circumflex
213 00D5 Õ Latin capital letter O with tilde
214 00D6 Ö Latin capital letter O with diaeresis
215 00D7 × Multiplication sign
216 00D8 Ø Latin capital letter O with slash
217 00D9 Ù Latin capital letter U with grave
218 00DA Ú Latin capital letter U with acute
219 00DB Û Latin capital letter U with circumflex
220 00DC Ü Latin capital letter U with diaeresis
221 00DD Ý Latin capital letter Y with acute
222 00DE Þ Latin capital letter THORN
223 00DF ß Latin small letter sharp s - ess-zed
224 00E0 à Latin small letter a with grave
225 00E1 á Latin small letter a with acute
226 00E2 â Latin small letter a with circumflex
227 00E3 ã Latin small letter a with tilde
228 00E4 ä Latin small letter a with diaeresis
229 00E5 å Latin small letter a with ring above
230 00E6 æ Latin small letter ae
231 00E7 ç Latin small letter c with cedilla
232 00E8 è Latin small letter e with grave

13
233 00E9 é Latin small letter e with acute
234 00EA ê Latin small letter e with circumflex
235 00EB ë Latin small letter e with diaeresis
236 00EC ì Latin small letter i with grave
237 00ED í Latin small letter i with acute
238 00EE î Latin small letter i with circumflex
239 00EF ï Latin small letter i with diaeresis
240 00F0 ð Latin small letter eth
241 00F0 ñ Latin small letter n with tilde
242 00F0 ò Latin small letter o with grave
243 00F0 ó Latin small letter o with acute
244 00F0 ô Latin small letter o with circumflex
245 00F0 õ Latin small letter o with tilde
246 00F0 ö Latin small letter o with diaeresis
247 00F0 ÷ Division sign
248 00F0 ø Latin small letter o with slash
249 00F0 ù Latin small letter u with grave
250 00F0 ú Latin small letter u with acute
251 00F0 û Latin small letter u with circumflex
252 00F0 ü Latin small letter u with diaeresis
253 00F0 ý Latin small letter y with acute
254 00F0 þ Latin small letter thorn
255 00F0 ÿ Latin small letter y with diaeresis

b. EBCDIC
EBCDIC (Extended Binary Coded Decimal Interchange Code) merupakan standar yang dibuat
oleh IBM pada tahun 1950-an dan menggunakan delapan bit untuk setiap kode. Kode ini
pertama kali digunakan pada IBM System/360. Standar ini diterapkan pada berbagai
komputer mainframe.

c. Unicode
Selain EBCDIC dan ASCII, terdapat standar yang lebih baru yang dinamakan Unicode. Pada
standar ini, setiap karakter dinyatakan dengan16 bit.. Alhasil, standar ini dapat mencakup
65.536 karakter. Dengan cara seperti ini, berbagai simbol dalam bahasa seperti Arab dan cina
bisa ditampung.

14
d. Konversi Sistem Biner dan Sistem Desimal
Sebagaimana telah diketahui bahwa komputer menggunakan biner, sedangkan manusia
terbiasa menggunakan sistem decimal. Mengingat hal seperti ini adakalanya diperlukan untuk
mengetahui cara melakukan konversi antara kedua sistem bilangan tersebut.
i. Konversi dari Sistem Biner ke Sistem Desimal
Konversi dari sistem biner ke sistem desimal dapat dilakukan dengan mudah Sebagai
contoh, terdapat bilangan 01001011 dalam sistem biner. Berapakah nilainya dalam sistem
decimal? untuk memecahkan persoalan ini, pedoman sebagaimana diperlihatkan pada
Gambar dapat digunakan.

Gambar 1.3 Pedoman utk mengonversi bilangan pada sistem biner ke sistem desimal

Jadi, 01001011 biner identik dengan 75 desimal.

ii. Konversi dari Sistem Desimal ke Sistem Biner


Cara mengkonversi dari sistem desimal ke sistem biner dapat dipelajar melalui contoh yang
diperlihatkan pada Gambar. Datam hal ini, sisa pembagian antara bilangan dengan 2
menjadi nilai bit.
Jika bilangan-bilangan sisa pembagian disusun dari bawah ke atas dan dituliskan dari kiri ke
kanan akan diperoleh susunan seperti berikut:
1001011

15
Adaan menjadi delapan bit, Anda bisa menambahkan 0 di bagian kiri sehingga menjadi
seperti berikut:
01001011
Bilangan itulah yang identic dengan 75 desimal.

16
RANGKUMAN

1. Komputer adalah perangkat elektronik yang dirancang agar dapat diprogram untuk
melakukan berbagai operasi aritmatika dan logika secara otomatis berdasarkan suatu
masukan dan menghasilkan suatu keluaran.
2. Komputer untuk tujuan umum dapat digunakan untuk kepentingan apa saja. Dengan
penambahan program yang sesuai, komputer jenis ini dapat beradaptasi dengan kebutuhan
pemakai.
3. Komputer menangani tiga hal yang dinamakan masukan (input), proses, keluaran (output).
4. Sistem komputer menyatakan satu kesatuan sistem yang berhubungan dengan komputer
yang dirancang untuk menghasilkan informasi yang bermanfaat untuk suatu kepentingan.
Sistem komputer melibatkan komponen berupa perangkat lunak (software), perangkat keras
(Hardware), dan perangkat akal (brainware/liveware/humanware).
5. CPU (Central Processing Unit) atau sering disebut prosesor merupakan bagian pemroses. Dua
bagian penting pada unit ini dinamakan unit pengontrol dan unit aritmatika dan logika.

DAFTAR PUSTAKA

1. Kadir, A. (2019).Logika Pemprograman PYTHON. Jakarta: Gramedia


2. Kadir, A. (2014) Pengenalan system Informasi Edisi Revisi, Yogyakarta: Penerbit Andi
3. Kadir, A. dan Triwahyuni, T. C. (2018) Pengantar Teknologi Informasi Edisi Revisi, Yogyakarta:
Penerbit Andi.

17
LATIHAN

1. Sebutkan dan jelaskan cara melakukan konfigurasi pada system Komputer?


2. Jelaskan apa yang dimaksud peralatan masukan dan berikan 3 contoh beserta fungsinya
(sertakan dalam bentuk gambar)?
3. Jelaskan apa yang dimaksud peralatan keluaran berikan 3 contoh beserta fungsinya
(sertakan dalam bentuk gambar)?
4. Sebutkan fungsi dari Sistem Operasi, dan praktekkan cara instalasi Sistem Operasi Bersama
Teman kelompok, min 3 orang.
5. Berapakah konversi bilangan ini:
a. 456(10) = …(2)
b. 11000101(2) = …(10)

18
BAB 2
PEMROGRAMAN KOMPUTER UNTUK PENYELESAIAN MASALAH

CAPAIAN PEMBELAJARAN

• Mahasiswa mampu menjelaskan dan menguraikan berbagai jenis bahasa pemprograman


komputer.
• Mahasiswa mampu mendigramkan diagram algoritma dan diagam alir.

MATERI

2.1 Program, Pemrograman, dan Pemrogram


Dalam praktik, pembuatan program yang kompleks akan melibatkan banyak orang dengan
berbagai keahlian. Sebagai contoh, analis system bertanggung jawab dalam men8gali kebutuhan
dari para calon pemakai program. Sang pakar inilah yang kemudian menuangkan kebutuhan
kebutuhan yang didapat dalam bentuk dokumen analisis, Lalu, berdasarkan dokumen analisis
tersebut, pakar lain yang dinamakan pendesain sistem, membuat rancangan teknis dalam bentuk
basis data dan antarmuka pemakai. Rancangan-rancangan inilah yang dipaka pemrogram untuk
membuat program.
Namun, dalam kenyataan seorang pemrogram seringkali harus bertanggung jawab dalam
menganalisis kebutuhan pemakai hingga pada perawatan program. Istilah pemrograman
menyatakan seluruh aktivitas yang berhubungan dengan perancangan dan pembuatan program.
Pengujian program dan juga pencarian kesalahan dalam program merupakan bagian dari
pemrograman.

2.2 Bahasa Pemrograman


Sebagaimana telah disinggung pada Bab 1, komputer menggunakan bilangan biner untuk
melakukan tugas apapun yang diembannya, baik operasi aritmetika maupun operasi logika
dikerjakan dalam bentuk bilangan biner.
Untuk mempermudah pemrogram dalam membuat program, bahasa pemrograman
diciptakan. Bahasa pemrograman adalah bahasa yang digunakan untuk membuat program. Pada

19
awalnya, bahasa pemrograman yang digunakan adalah bahasa mesin. Tentu saja, bahasa ini
berorientasi pada mesin, yang menggunakan kode dalam bentuk bilangan biner dan sangat
bergantung pada jenis komputer yang digunakan.
Mengingat bahasa mesin dirasakan sulit dan sangat menjemukan, bahasa yang lebih mudah
diciptakan dengan nama bahasa rakitan. Ketimbang menggunakan kode dalam bentuk biner,
bahasa rakitan menggunakan kode-kode singkat yang mudah dingat. Sebagai contoh, CMP
digunakan untuk menyatakan operasi pembandingan dan JMP untuk menyatakan lompatan.
Walaupun begitu, bahasa rakitan tetap berorientasi pada mesin sehingga dirasakan tetap sulit
bagi pemrogram terutama pemula.
Oleh karena itu, bahasa-bahasa yang berorientasi pada manusia, dengan menggunakan kata-kata
yang biasa digunakan manusia bahasa Inggris, mulai diciptakan. Tidaklah dalam terutama
mengherankan jika hingga saat ini kata seperti IF digunakan untuk menyatakan pengandaian dan
WHILE digunakan untuk melakukan perulangan. Dalam terminologi pemrograman, bahasa
pemrograman yang berorientasi pada manusia dinamakan bahasa beraras tinggi dan yang
berorientasi pada mesin dinamakan bahas beraras rendah. Beberapa contoh nama bahasa
pemrograman untuk kedua aras tersebut:
1. Bahasa Beraras Tinggi yaitu, (C++, C#, Java, Python, Ruby, dil)
2. Bahasa Tingkat Menengah (VB, Pascal, Fotran)
3. Bahasa Beraras Rendah yaitu, (Bahasa Mesin dan Bahasa Rakitan)
4. Bahasa Beroritansi Objek (VBNet, C#)
Tampak bahwa penggunaan perintah dalam berbagai bahasa pemrograman beraras tinggi
jauh lebih mudah dipahami daripada perintah dengan fungsi yang sama pada bahasa mesin. Pada
masa sekarang, banyak sekali bahasa pemrograman yang bisa digunakan untuk membuat
program. C++, Java, dan Python merupakan bahasa pemrograman yang sangat populer.
Walaupun memiliki sejumlah kesamaan, ketiga bahasa ini juga mempunyai perbedaan yang
cukup signifikan. Oleh karena itu, ketiga bahasa pemrograman ini diperkenalkan lebih lanjut.

20
2.2.1 Bahasa C++
C++ merupakan bahasa pemrograman yang dikembangkan berdasarkan bahasa C dengan
memasukkan unsur pemrograman berorientasi objek. Bahasa ini diciptakan oleh Bjarne
Stroustrup. Nama C++ disematkan pada tahun 1983. Simbol ++ menyatakan operator pada C++
yang digunakan untuk menaikkan nilai dalam variabel. Pada tahun 1985, Bjarne Stroustrup
merilis referensi bahasa C++ dengan judul "The C++ Programming Language".
C++ bersifat portabel dalam kode sumber. Kode sumber dapat dikompilasi pada berbagai
platform seperti Windows, Mac OS, dan Linux.

2.2.2 Bahasa Java


Java merupakan bahasa pemrograman berorientasi objek yang diciptakan oleh James Gosling
dan kawan-kawannya di Sun Microsystem. Bahasa ini mengadopsi perintah-perintah pada C++.
Pengembangan awalnya dilakukan pada tahun 1991 dengan nama "Oak". Rilis Java untuk publik
dilakukan pada tahun 1995.
Berbeda dengan C++, Java menerapkan konsep "Write Once, Run Anywhere". Kode Java yang
telah dikompilasi dalam bentuk bytecode dapat dijalankan pada berbagai platform. Kelebihan
lain Java adalah pada kemampuan pengumpulan sampah. Metode ini memungkinkan
pemrogram tidak perlu menyediakan perintah yang secara eksplisit digunakan untuk
membebaskan memori suatu objek yang sudah tidak digunakan lagi. Semua objek yang tidak
digunakan dengan sendirinya akan dibebaskan.

2.2.3 Bahasa Python


Python merupakan bahasa pemrograman serbaguna yang diciptakan oleh Guido van Rossum
pada tahun 1991. Bahasa ini dirancang agar kode mudah untuk dibaca oleh orang. Sebagai
perwujudannya, penggunaan spasi untuk mengatur indentasi kode sangat signifikan. Dengan
demikian, penambahan spasi pada kode tidak dapat dilakukan sembarangan. Seperti halnya C++,
Python bersifat portabel dalam kode sumber. Kode sumber dapat digunakan pada berbagai
platform seperti Windows, Mac OS, dan Linux. Python menyediakan manajemen memori yang
bertindak seperti metode pengumpulan sampah pada Java. 2.2.3 Bahasa Python Python

21
merupakan bahasa pemrograman serbaguna yang diciptakan oleh Guido van Rossum pada tahun
1991. Bahasa ini dirancang agar kode mudah untuk dibaca oleh orang. Sebagai perwujudannya,
penggunaan spasi untuk mengatur indentasi kode sangat signifikan. Dengan demikian,
penambahan spasi pada kode tidak dapat dilakukan sembarangan. Seperti halnya C++, Python
bersifat portabel dalam kode sumber. Kode sumber dapat digunakan pada berbagai platform
seperti Windows, Mac OS, dan Linux. Python menyediakan manajemen memori yang bertindak
seperti metode pengumpulan sampah pada Java.

2.3 Interpreter dan Kompiler


Kode sumber (source code) yang ditulis oleh pemrogram perlu diterjemahkan ke dalam kode
biner yang dipahami oleh komputer mengingat komputer hanya mengenali kode biner. Dalam
hal ini perangkat lunak bernama kompiler atau interpreter berperan dalam melaksanakan
penerjemahan. Interpreter menerjemahkan instruksi pada saat program diminta untuk
dieksekusi Penerjemah ini memerlukan kode sumber untuk diproses. Setiap kali suatu baris
instruksi dapat dipahami oleh komputer, instruksi tersebut dijalankan. Selanjutnya, baris
berikutnya dalam kode sumber akan diproses oleh interpreter. Model penerjemahan seperti ini
terdapat pada Python. Pada masa sekarang, bahasa pemrograman yang menggunakan
interpreter biasa disebut bahasa skrip (scripting language). Adapun kode sumber pada bahasa
skrip biasa disebut skrip.
Berbeda dengan interpreter, kompiler menerjemahkan instruksi ke dalam kode objek secara
keseluruhan (untuk semua instruksi). Kode objek ini disimpan dalam bentuk file. Proses
penerjemahan kode sumber ke kode objek disebut kompilasi. Kompilasi biasanya digabungkan
dengan proses linking, yaitu proses untuk menggabungkan kode objek dan pustaka pustaka yang
disediakan oleh bahasa pemrograman menjadi kode yang bersifat dapat dieksekusi se langsung
oleh komputer Bahasa seperti Java dan C++ tergolong sebe C++ tergolong sebagai bahasa yang
menggunakan kompiler. Namun, khusus untuk Java, untuk Java, hasil kompilasi berupa bytecode
Hasil kompilasi ini dapat dijalankan pao sembarang platform sepanjang JRE (Java Runtime
Environment) terpasang.

22
2.4 Penyelesaian Masalah
Penyelesaian masalah merupakan bagian dalam tahapan analisis masalah. Hal ini
dilaksanakan dengan memulai untuk menggali keluaran program yang diharapkan dan
menemukan masukan-masukan yang diperlukan tanpa perlu memikirkan proses yang mengubah
masukan menjadi keluaran Dengan perkataan lain, proses dapat dianggap sebagai kotak hitam
terlebih dahulu. Sebagai contoh, diberikan suatu persoalan sederhana untuk membuat program
yang digunakan untuk menghitung keliling lingkaran. Pertama tama, luas lingkar an dijabarkan
terlebih dahulu untuk memastikan pengertian keliling lingkaran.
Sebagaimana telah dijelaskan di depan, langkah awal yang perlu pikirkan adalah
mendapatkan keluaran dan masukan yang diperlukan. Hasil yang didapat adalah seperti berikut:
• masukan: jari-jari lingkaran;
• keluaran: keliling lingkaran.
Setelah masukan dan keluaran didapatkan proses perlu dipikirkan. Proses yang dimaksud di
sini adalah untuk menghubungkan keluaran dan masukan. Jika dirumuskan, hasilnya seperti
berikut:
keliling = jari-jari
Nah, untuk mengisi bagian kotak tersebut terkadang tidak mudah karena barangkali
memang kita tidak tahu hubungan tersebut. Oleh karena itu, perlu diupayakan untuk mencari
tahu hubungan tersebut.
Selain melalui pengetahuan yang sudah dimiliki, cara-cara berikut bisa digunakan untuk
mencari hubungan antara keluaran dan masukan:
• bertanya pada orang lain;
• membaca buku yang terkait dengan persoalan;
• mencari informasi di Internet mengenai hubungan tersebut,
• memodifikasi dari contoh penyelesaian serupa;
• membuat penyelesaian sendiri.
Cara terakhir ini tentu saja tidak mudah. Namun, adakalanya hal seperti ini terpaksa harus
dilakukan. Inilah jalan orang-orang yang menemukan algoritma baru.
kembali ke persoalan di depan, keliling lingkaran dihitung melalui rumus:

23
keliling = 2 x n x jari-jari
Dalam hal ini, n = 13,4.
Adapun penuangan penyelesaian masalah dapat ditulis menjadi seperti berikut:
Tujuan: Menghitung keliling lingkaran
Masukan: radius (jari-jari lingkaran)
Keluaran: keliling (keliling lingkaran)
Algoritma:
1. Baca radius.
2. Hitung keliling = 2 * 3,14 * radius.
3. Tampilkan keliling.

2.5 Algoritma
Algoritma dibuat pada tahapan perancangan program. Algoritma inilah yang memiliki peran
penting untuk menghubungkan antara keluaran yang dikehendaki dan masukan-masukan yang
tersedia. Algoritma adalah sekumpulan langkah yang rinci yang ditujukan untuk komputer dalam
menyelesaikan suatu masalah. Langkah-langkah yang dimaksud adalah agar bisa dituangkan ke
dalam program sehingga bisa dieksekusi oleh komputer. Walaupun demikian, untuk algoritma
yang sederhana, langkah-langkah yang terdapat di algoritma dapat diuji secara manual.
Algoritma untuk menghitung keliling lingkaran merupakan contoh algoritma yang dapat diuji
secara manual.
Algoritma seperti di depan dapat disederhanakan dalam bentuk pseudocode atau kode yang
lebih ringkas daripada kalimat yang digunakan manusia. Pseudocode sering dikatakan sebagai
salah satu metode untuk menyatakan algoritma. Pseudocode sendiri agak mengarah ke bahasa
pemrograman, walaupun sesungguhnya tidak bergantung kepada suatu bahasa pemrograman.
Oleh karena itu, pseudocode tidak dapat dieksekusi oleh komputer.
Contoh pseudocode untuk mewujudkan algoritma di depan:
Masukkan radius
keliling <- 2* 3,14* radius
Tampilkan keliling

24
Agar algoritma (atau pseudokode) bisa dituangkan ke dalam program, ada tiga hal yang perlu
diperhatikan, yaitu tidak ambigu, dapat dieksekusi, dan berurutan (Brown, 2012). Berikut
penjelasan untuk masing-masing.
• "Tidak ambigu" berarti bahwa setiap instruksi hanya mempunyai satu interpretasi.
• "Dapat dieksekusi" berarti bahwa setiap instruksi dapat dieksekusi oleh orang atau
komputer tanpa memerlukan informasi tambahan.
• "Berurutan" berarti bahwa instruksi-instruksi di dalam algoritma telah tersusun urut
sehingga dapat digunakan untuk melaksanakan tugas dengan tepat.
Menurut Knuth (1973) dan juga Horowitz, dkk. (1999), terdapat lima cirii-ciri penting yang
harus dimiliki oleh suatu algoritma, yaitu berupa keberhinggaan, kepastian, masukan, keluaran,
dan efektivitas.
1. Keberhinggaan
Keberhinggaan di sini menyatakan bahwa suatu algoritma harus berakhir untuk semua
kondisi setelah memproses sejumlah langkah.
2. Kepastian
Kepastian menyatakan bahwa setiap langkah harus dinyatakan dengan jelas (tidak rancu
atau mendua-arti).
3. Masukan
Suatu algoritma bisa tidak memiliki masukan, tetapi umumnya mempunyai satu atau
beberapa masukan. Masukan merupakan suatu besaran yang diberikan di awal sebelum
algoritma diproses.
4. Keluaran
Setiap algoritma memiliki keluaran, entah hanya sebuah keluaran atau banyak keluaran.
Keluaran merupakan besaran yang mempunyai kaitan atau hubungan dengan masukan.
5. Efektivitas
Setiap algoritma diharapkan bersifat efektif, dalam arti semua operasi yang dilaksanakan
oleh algoritma haruslah sederhana dan dapat dikerjakan dalam waktu yang singkat.

25
Sebagaimana telah disinggung, algoritma itu tidak bergantung pada suatu bahasa
pemrograman. Oleh karena itu, sangat mudah untuk menuangkan algoritma ke dalam berbagai
bahasa pemrograman. Sebagai contoh, terdapat algoritma seperti berikut:
Tujuan: Menampilkan 1, 2, 3, …, 9
Masukan: Tidak ada
Keluaran: 1, 2, 3, …, 9
Algoritma:
1. Berikan nilai 1 ke variabel bilangan.
2. ULANG selama bilangan bernilai kurang dari 10:
a) Tampilkan bilangan.
b) Naikkan isi bilangan sebesar 1.

Algoritma ini dapat diterjemahkan menjadi program C++, Java, dan Python seperti :

Dalam praktik, kadangkala dijumpai bahwa suatu masalah dan diselesaikan dengan lebih dari
satu algoritma. Sebagai contoh dikehendaki untuk menukarkan isi dua variabel x dan y. Dua
contoh penyelesaian ditunjukkan di sini.
Penyelesaian 1:
Penyelesaian pertama dilakukan dengan menggunakan algoritma berikut:

26
Algoritma:
1. Berikan nilai x – y ke variabel x.
2. Berikan nilai y + x ke variabel y.
3. Berikan nilai y – x ke x.
Sebagai contoh, mula-mula x bernilai 47 dan y bernilai 23. Berdasarkan langkah pertama
dalam algoritma, nilai x menjadi 24 (hasil 47 - 23). Setelah langkah kedua diproses, nilai y menjadi
47 (hasil 23 + 24) Setelah langkah ketiga berakhir, nilai x berisi 23 (hasil 47 - 24).
Penyelesaian 2:
Penyelesaian kedua dilakukan dengan menggunakan algoritma berikut:
Algoritma:
1. Berikan nilai x ke variabel z.
2. Berikan nilai y ke variabel x.
3. Berikan nilai z ke y.
Sebagai contoh, mula-mula x bernilai 47 dan y bernilai 23. Berdasarkan langkah pertama
dalam algoritma, nilai z menjadi 47. Setelah langkah kedua diproses, nilai y menjadi 47. Setelah
langkah ketiga berakhir, nilai x berisi 47 mengingat z bernilai 47.
Seandainya terdapat lebih dari satu penyelesaian, cara yang paling efisien yang perlu dipilih.
Sebagai contoh, Big O dapat dijadikan sebagai pedoman untuk memilih waktu komputasi yang
lebih efisien. Namun, jika kedua cara memberikan waktu komputasi yang sama, sembarang cara
bisa dipilih secara bebas.

2.6 Diagram Alir


Diagram alir (flowchart) adalah suatu diagram yang menggambarkan suatu proses. Diagram
ini merupakan alternatif lain untuk menggantikan algoritma maupun pseudokode. Hal yang
menarik, saat ini terdapat perangkat lunak yang memungkinkan untuk membuat diagram alir dan
sekaligus dapat dipakai untuk menguji diagram alir. Salah satu contoh perangkat lunak seperti ini
yakni Flowgorithm, yang dapat diunduh melalui http://www.flowgorithm.org/.

27
Diagram alir dapat dikelompokkan ke dalam dua kategori, yaitu diagram alir sistem (system
flowchart) dan diagram alir program (program flowchart). Perbedaan kedua jenis diagram alir ini
adalah seperti berikut.
• Diagram alir sistem biasa digunakan oleh analis sistem untuk menggambarkan aliran data
atau struktur berkas di dalam surat, sistem. Diagram alir seperti ini di luar pembahasan
buku ini.
• Diagram alir program biasa dipakai oleh pemrogram untuk menjelaskan langkah-langkah
di dalam suatu program.
Tabel 2.1 Penjelasan simbol-simbol pada diagram alir :

Contoh diagram alir diperlihatkan pada Gambar 2.1. Perhatikan bahwa diagram alir diawali
dengan terminator bertuliskan "Mulai" dan diakhiri dengan terminator bertuliskan "Selesai".

28
Gambar 2.1. Menampilkan keliling lingkaran

2.7 Perancangan Program


Sebelum program dibuat, beberapa aspek teknis perlu dirancang Sebagai contoh, jika
program melibatkan basis data, tabel-tabel yang terkait dengan data yang diperlukan perlu
ditentukan juga. Selain itu, antarmuka pemakai juga perlu dirancang. Sebagai gambaran, di dalam
diagram alir tidak disebutkan secara rinci tampilan yang dihadapi pemakai ketika pemakai perlu
memasukkan data jari-jari lingkaran dari keyboard. Pada perancangan program, keterangan yang
disajikan di layar supaya pemakai tahu data apa yang harus dimasukkan perlu ditamba hkan.
Disamping itu, pada saat menampilkan keliling lingkaran, terdapat tambahan keterangan yang
mendahului nilai keliling lingkaran.

2.8 Penulisan Program


Berdasarkan perancangan program dan algoritma yang telah dibuat, program mulai disusun.
Program inilah yang disebut kode sumber. Penulisan program dapat dilakukan dengan
menggunakan sembarang editor teks. Namun, apabila perangkat pengembangan program
berbentuk IDE (Integrated Development Environment) tersedia, editor untuk menulis program
sudah melekat pada perangkat tersebut.

29
2.9 Pengujian Program
Program yang telah dibuat perlu diuji. Pada bahasa pemrograman yang menggunakan
kompiler, proses kompilasi dan kemungkinan juga diikuti dengan proses lainnya (linking) perlu
dilakukan terlebih dahulu untuk membentuk kode objek yang selanjutnya dapat dijalankan oleh
komputer. Pengujian dilakukan dengan tujuan untuk memastikan program sudah sesuai dengan
rancangan yang dikehendaki atau belum. Pada pengujian Pemrogram harus memastikan bahwa
program bebas dari kesalahan. Dalam terminologi pemrograman, istilah kutu (bug) sering muncul
pada program. Suatu program dikatakan mengandung kutu kalau terdapat perilaku aneh yang
tidak sesuai rancangan. Sebagai contoh, kutu terjadi ketika hasil perhitungan yang diberikan oleh
komputer tidak benar.
Berkaitan dengan bug, terdapat istilah debugging. Debugging adalah suatu aktivitas yang
ditujukan untuk menemukan penyebab kesalahan dalam program. Beberapa perangkat
pengembangan program menyediakan debugger. Perangkat ini dapat membantu pemrograman
untuk menemukan penyebab kesalahan dalam program.
Setiap bahasa pemrograman mempunyai aturan tersendiri. Aturan aturan yang melekat di
suatu bahasa pemrograman dinamakan sintaks. Sintaks di dalam bahasa pemrograman dapat
dibayangkan seperti sintaks pada bahasa yang digunakan manusia (bahasa alami). Oleh karena
itu, untuk dapat membuat program, sintaks bahasa pemrograman yang digunakan perlu
dipahami. Kesalahan pada program bisa dibagi menjadi tiga kelompok, yaitu kesalahan sintaksis,
kesalahan logika, dan kesalahan sewaktu program dieksekusi. Ketiga jenis kesalahan ini akan
dibahas satu per satu.
Kesalahan sintaks adalah kesalahan yang terjadi ketika aturan yang berlaku pada bahasa
pemrograman tidak terpenuhi. Kesalahan inilah yang sering dialami para pemula dalam
menyusun program. Sebagai contoh, cout adalah perintah yang digunakan pada C++ untuk
menampilkan informasi ke monitor. Ketika cout ditulis menjadi cot karena lupa mengetikkan u,
maka kesalahan akan dimunculkan Ketika program dikompilasi. Kesalahan satu huruf saja dalam
suatu perintah program dikompil n membuat kompiler menghentikan tugasnya untuk
membentuk kode objek dan akibatnya program tidak dapat dieksekusi.

30
Sebagai pemula, tidak perlu khawatir dengan kesalahan sintaksis. Semua pemrogram pernah
mengalaminya. Bahkan, pemrogram tingkat langit pun masih sering berkecimpung dengan
kesalahan jenis ini. Selain itu, penerjemah (kompiler atau interpreter) akan memberikan pesan
Kesalahan jika menemukan kesalahan sintaks saat pemrograman mengeksekusi program. Pesan
yang diberikan akan sangat membantu pemrograman dalam memperbaiki kesalahan. Oleh
karena itu, memahami pesan-pesan kesalahan yang muncul dapat membantu untuk
mempercepat cara menanganinya.
Kesalahan logika adalah kesalahan yang terjadi karena terdapat sesuatu kesalahan di dalam
program yang bukan diakibatkan kesalahan sintaks melainkan disebabkan oleh logika atau
perhitungan aritmatika yang tidak benar. Sebagai contoh, rumus keliling lingkaran adalah
keliling = 2 x 3,14 x radius,
Ketika dituangkan di dalam program, yang ditulis pemrogram adalah
keliling = 2 * 3.14 * radius;
Pada keadaan seperti itu, kompiler atau interpreter tidak akan memberitahukan kesalahan
ini pada pemakai mengingat penulisan seperti itu secara kaidah sudah benar, tetapi secara logika
salah. Kesalahan hanya terdeteksi ketika dirasakan hasilnya tidak benar. Kesalahan logika
memang memerlukan tantangan tersendiri. Pada kode yang panjang, mencapai ratusan hingga
ribuan baris, menemukan kesalahan logika bukanlah pekerjaan yang mudah. Namun, seiring
dengan perjalanan waktu, pengalaman akan sangat membantu untuk mempercepat pencarian
kesalahan ini.
Kesalahan terakhir, yaitu kesalahan sewaktu program dieksekusi menyebabkan program
berhenti tidak normal. Kesalahan ini misalnya terjadi pada saat terjadi pembagian suatu bilangan
dengan nol. Pada keadaan seperti ini, eksekusi program akan terhenti dan muncul kesalahan
semacam:
Zerodivisionerror: division by zero
Kesalahan seperti ini dapat diantisipasi dengan penanganan eksepsi atau dengan menggunakan
metode lain. Penanganan eksepsi tersedia pada bahasa pemrograman, seperti C++, Java, dan
Python.

31
RANGKUMAN

(Diketik dengan tipe huruf calibri, ukuran 12, justify, spasi 1,5)
1. Bahasa pemrograman adalah bahasa yang digunakan untuk membuat program. Pada awalnya,
bahasa pemrograman yang digunakan adalah bahasa mesin.
2. Pada masa sekarang, banyak sekali bahasa pemrograman yang bisa digunakan untuk
membuat program. C++, Java, dan Python merupakan bahasa pemrograman yang sangat
populer.
3. Python merupakan bahasa pemrograman serbaguna yang diciptakan oleh Guido van Rossum
pada tahun 1991. Bahasa ini dirancang agar kode mudah untuk dibaca oleh orang. Sebagai
perwujudannya, penggunaan spasi untuk mengatur indentasi kode sangat signifikan.
4. Algoritma adalah sekumpulan langkah yang rinci yang ditujukan untuk komputer dalam
menyelesaikan suatu masalah. Langkah-langkah yang dimaksud adalah agar bisa dituangkan
ke dalam program sehingga bisa dieksekusi oleh komputer.
5. Diagram ini merupakan alternatif lain untuk menggantikan algoritma maupun pseudokode.

DAFTAR PUSTAKA

1. Kadir, A. (2019).Logika Pemprograman PYTHON. Jakarta: Gramedia


2. Kadir, A. (2014) Pengenalan system Informasi Edisi Revisi, Yogyakarta: Penerbit Andi
3. Kadir, A. (2017) Dasar Logika Pemprograman Komputer Panduan Berbasis Flowchart
menggunakan Flogorithms, Jakarta: Elex Media Komputindo.
4. Kadir, A. dan Triwahyuni, T. C. (2014) Pengantar Teknologi Informasi Edisi Revisi, Yogyakarta:
Penerbit Andi.

LATIHAN

1. Apa yang dimaksud dengan Bahasa skrip?


2. Bahasa Java merupakan konsep “Write Once, Run Aniwhere”. Apa maksudnya?
3. Buatlah algoritma yang digunakan untuk menampilkan 50 tulisan “Selamat Belajar”?

32
4. Diskusikan dengan teman kelompok cara kerja system informasi Indomart, lalu buatkan
diagram alirnya secara lengkap?
5. Cari suatu proyek program, lalu diskusikan dengan teman kelompok tentang langkah-langkah
penyelesaian masalah dengan algoritma dan tuangkan dalam Bahasa pemrograman?

33
BAB 3
DASAR PYTHON

CAPAIAN PEMBELAJARAN

• Mahasiswa dapat menerapkan dan melengkapi berbagai property pemrograman python


mempraktekkan perintah-perintah dalam program python.
• Mahasiswa dapat menganalisis dasar dari perintah-perintah dalam pemprograman.

MATERI

3.1 Python Sebagai Bahasa Pemrograman Berorientasi Objek


Python adalah bahasa pemrograman yang berorientasi objek (PBO) Pemrograman
berorientasi objek merupakan suatu paradigma pemrograman yang menggabungkan properti
dan perilaku dalam suatu objek. Hal ini berbeda dengan paradigma pemrograman yang
dinamakan pemrograman terstruktur yang memisahkan antara property dan perilaku. Sebagai
contoh, objek orang mempunyai properti (atau terkadang dinamakan atribut) seperti usia, nama,
dan kartu identitas. Adapun perilaku yang dimaksud di sini antara lain berbicara, berjal an, dan
bercanda. Dalam PBO, perilaku biasanya digunakan untuk mengakses properti. Sebagai contoh
objek mobil mempunyai properti berupa tipe, nomor rangka, dan warna. Oleh sebab itu, perilaku
bernama cetakInfoMobil () digunakan untuk mengakses informasi mobil yang sumbernya berada
pada properti-properti mobil.
Berbicara mengenai objek tidak bisa terlepas dari kelas. Oleh karena itu, kedua istilah ini perlu
dibahas terlebih dahulu secara lebih khusus. Sebagai pedoman, suatu kelas adalah seperti suatu
cetakan. Sebagai contoh, dengan menggunakan satu cetakan kue, sejumlah kue bisa dibuat.
Begitu halnya dengan kelas. Satu kelas dapat digunakan untuk menciptakan banyak objek. Dalam
terminologi pemrograman berorientasi objek, objek adalah instan kelas.Suatu objek di Python
dapat memiliki properti dan fungsi yang bertindak sebagai perilaku yang berguna untuk
mengakses properti dan diberi nama metode. Pemanggilan metode melekat pada objek,
sedangkan properti dapat dibuat tersembunyi dari pihak luar Objek

34
Sebagai contoh, string memiliki banyak metode. Salah satu metodenya bernama upper ().
Nah, objek string dapat dibentuk dengan menuliskan seperti berikut:
nama = 'Fiska’

Maka, metode tersebut dapat dipanggil dengan cara seperti berikut:


nama.upper ()

Pemanggilan metode ini akan membuat nilai balik berupa 'FISKA mengingat upper () menyalin
string dalam objek dan memberikan nilai balik berupa string dengan semua huruf kecil
dikonversi menjadi huruf kapital.

3.2 Pernyataan pada Python


Pada Python, istilah pernyataan berarti instruksi yang dapat dieksekusi oleh interpreter
Python. Contohnya sebagai berikut:
print ('Tes..tes..123')
Contoh di atas merupakan pernyataan untuk menampilkan string ‘Tes..tes..123'. Bahkan, 1 +
2 pun dapat berkedudukan sebagai pernyataan mengingat interpreter dapat mengeksekusinya.
Tabel 3.1 menunjukkan contoh beberapa perintah dalam Bahasa manusia dan pernyataan
pada Python yang setara.
Kalimat dalam bahasa manusia Pernyataan pada Python
Tampilkan nilai pada skor. print(skor)
Hitunglah e = mc2. e = m*c*c
Bacalah data skor. skor = input

3.3 Konsep Pemrosesan dalam Program


Secara umum, operasi yang terjadi pada program berupa masukan, proses, dan keluaran.
Supaya komputer dapat memberikan solusi, komputer memerlukan data. Data berkedudukan
sebagai masukan. Selanjutnya, data diproses dan keluarannya berupa informasi, yang tidak lain
adalah solusi. Gambar 3.1 merangkum ketiga hal ini beserta dua contoh aplikasinya.

35
Gambar 3.1 Konsep pemrosesan dalam program

3.4 Tipe Data


Setiap nilai di Python mempunyai tipe data. Mengingat setiap nilai pada dasarnya adalah
objek maka setiap tipe data menyatakan suatu kelas.
Tipe data dasar pada Python dapat dikelompokkan menjadi data numerik, data alfanumerik,
dan data logika. Penjelasan masing-masing adalah seperti berikut.
• Data numerik berupa bilangan. Umumnya, data numerik digunakan untuk dikenai operasi
aritmatika, seperti penjumlahan dan perkalian atau dikenai operasi matematika seperti
sinus dan kosinus. Data numerik dapat dibagi menjadi tiga kelompok, yaitu data bilangan
bulat, data bilangan real (atau biasa juga disebut bilangan titik mengambang), dan
bilangan kompleks.
• Data alfanumerik dinamakan string karakter atau sering pula disingkat menjadi string
adalah data yang bisa mengandung sederetan karakter apa saja. Karakter yang dimaksud
di sini dapat berupa huruf seperti A dan a, angka seperti 1 dan 3, serta simbol seperti dan
+.
• Data logika adalah data yang mengandung dua keadaan saja Sebagai contoh, Python
mendukung nilai True untuk menyatakan nilai benar dan False untuk nilai salah.

36
Tabel 3.2 menunjukkan berbagai tipe data dasar (atau terkadang dinamakan tipe dasar
primitif) pada Python.
Tipe Data Keterangan
int Tipe data ini menyatakan bilangan bulat.
float Tipe data ini menyatakan bilangan real.
bool Tipe data ini menyatakan tipe data Boolean,
dengan kemungkinan nilai berupa True atau
False.
str Tipe data ini menyimpan deretan karakter.

Tabel 3.3 mencantumkan beberapa data dan cara untuk menentukan tipe data. Besaran data
berpengaruh pada pemilihan tipe data yang paling tepat digunakan.
Data Analisis Data Keterangan
Harga barang: Data Numerik: Mengingat harga barang dapat
27,5 bilangan real mengandung pecahan, tipe yang dapat
100,5 dipilih dapat berupa float atau double. Jika
tingkat presisi dikehendaki, double yang
dipilih.
Harga barang: Numerik: Sekiranya data harga barang tidak
5000, 12000000 bilangan bulat mengandung pecahan, tipe bilangan bulat
diperlukan.
Kode pos: String Sekalipun kode pos mengandung angka
55222 seluruhnya, kode tersebut tidak
dimaksudkan untuk dikenai operasi
aritmatika. Oleh karena itu, tipe yang
paling tepat adalah string,
Skor matakuliah: Satu karakter Karena skor matakuliah hanya
A, B, C, D, E mengandung satu karakter, tipe char
digunakan.
Jender: Dua keadaan saja Tipe data bool bisa digunakan untuk
Pria, Wanita menyatakan gender. Sebagai contoh, True
untuk menyatakan pria dan False untuk
menyatakan wanita.
Tanggal: Numerik: Waktu yang dinyatakan dengan bilangan
204534, 189094 Bilangan bulat bulat sejak tanggal tertentu.
Tanggal: String Tanggal dengan format yyyy/mm/dd
2009/08/05 dengan yyyy menyatakan tahun, mm
2017/12/31 menyatakan kode bulan, dan dd
menyatakan tanggal.

37
3.5 Konstanta
Data yang digunakan pada pemrosesan komputer dapat berupa konstanta atau variabel.
Kedua hal ini perlu dipahami dengan baik karena menjadi dasar semua skrip. Hampir semua skrip
melibatkan konstanta dan variabel. Fokus pada subbab ini hanya pada konstanta.

3.5.1 Konstanta
Bilangan Bulat Konstanta bilangan bulat berupa deretan angka tanpa tanda pecahan Di
bagian kiri boleh mengandung tanda + atau. Contoh:
• 573
• -124
• +45890
Contoh-contoh di atas adalah konstanta bilangan bulat dalam sistem desimal (sistem
berbasis 10). Namun, sesungguhnya Python memperkenankan penulisan konstanta bilangan
bulat dalam bentuk sistem heksadesimal, oktal, dan biner. Tabel 3.4 mencantumkan aturan dan
contoh konstanta dalam ketiga sistem bilangan tersebut.
Tabel 3.4 Konstanta bilangan bulat dalam sistem heksadesimal, oktal, dan biner
Sistem Bilangan Penulisan Konstanta

Sistem Konstanta bilangan ditulis dengan awalan 0x (nol dan x) atau 0X (nol
heksadesimal dan X). Simbol yang bisa digunakan adalah angka 0 sampai dengan
9, huruf A hingga F, atau huruf a hingga f. Contoh:
• OXFF (identik dengan 255 desimal)
• OxAO (identik dengan 171 desimal)
• 0X2E (identik dengan 46 desimal)
Sistem octal Konstanta bilangan ditulis dengan awalan Oo (nol dan huruf o kecil)
atau 00 (nol dan huruf O kapital). Angka yang bisa digunakan berupa
angka 0 sampai dengan 7. Contoh:
• 0o71 (identik dengan 57 desimal)
• Oo12 (identik dengan 10 desimal)
• 0O66 (identik dengan 54 desimal)
Sistem biner Konstanta bilangan ditulis dengan awalan Ob (nol dan b) atau OB
(nol dan B). Angka yang bisa digunakan berupa 0 atau 1. Contoh:
• OB101011 (identik dengan 43 desimal)
• Ob0011 (identik dengan 3 desimal)
• OB11010101 identik dengan 213 desimal)

38
Script berikut memberikan contoh penulisan konstanta bilangan bulat dalam berbagai
sistem bilangan:
Berkas : konstan.py
print('0x2B =', Ox2B)
print('023 =', 0o23)
print('0b11010 =', 011010)
print('23 =', 23)
Akhir berkas
Hasil skrip ini seperti berikut:
C: \LatPython>python konstan.py
0x2B = 43
023 = 19
0bl1010 = 26
23 = 23
C:\Lat Python

3.5.2 Konstanta Bilangan Real


Konstanta bilangan real boleh mengandung tanda pecahan. Tanda + atau - bisa diletakkan
pada bagian terkiri. Tanda pecahan harus berupa titik. Contoh:
• -123.4
• 4.68001
• +78.16
• 5 (identik dengan 0.5)
Konstanta bilangan real dapat ditulis dalam notasi sains atau eksponensial. Contoh:
• 1230000000000,0 = 1,23 x 1012. Maka, konstanta dalam bentuk eksponensial
berupa salah satu berikut:
o 1.23e12
o 1.23e+12
o 1.23E12
o 1.23E+12
o 1.23e+012
o 1.23E+012

39
• 0,0021 = 2.1/103 . Maka, konstanta dalam bentuk eksponensial berupa salah satu
berikut:
o 2.1e-3
o 2.1E-3
o 2.1e-03
o 2.1E-03
Skrip berikut memberikan contoh penulisan konstanta bilangan real dalam berbagai
sistem bilangan:
Berkas : real.py
print (0.000023)
print (2.3E-05)
print (2.3e-5)
Akhir berkas
Hasil eksekusi skrip ini seperti berikut:
C: LatPython python real.py
2.3e-05
2.3-05
2.3e-05
C:\Lat Python

3.5.3 Konstanta Bilangan Kompleks


Konstanta bilangan kompleks ditulis dengan bentuk seperti berikut:
a + bj
a – bj
Contoh berikut menunjukkan perintah untuk menampilkan bilangan kompleks:
>>> print (2 + 5j)
(2+5j)
>>> print (2 + lj)
(2+1j)

3.5.4 Konstanta Logika


Python menyediakan konstanta bernama True dan False untuk menyatakan konstanta
logika. Dalam hal ini, True berarti benar dan False berarti salah.

40
Contoh penulisan konstanta True dan False:
>>> print (True)
True
>>> print (False)
false
>>> print (false)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'false' is not defined
>>>

Terlihat bahwa True dan False ditulis dengan awalan huruf kapital. Jika tidak, tidak akan
dikenal.

3.5.5 Konstanta String


Konstanta string menyatakan nol, satu, atau lebih dari satu karakter yang ditulis dengan
awalan dan akhiran berupa tanda petik. Tanda petik dapat berupa petik tunggal (') atau petik
ganda. Namun, tanda petik yang sama harus digunakan pada awalan dan akhiran string. Contoh:
• 'a' (identik dengan "a")
• 'Bravo' (identik dengan "Bravo")
• " atau "" (disebut string kosong)
• 'Jl.Rakadipura Raya 23C'
Apabila dikehendaki untuk menuliskan konstanta berupa petik tunggal pada string
yang ditulis dengan awalan dan akhiran petik tunggal, cara berikut bisa digunakan: '/''
Tampak bahwa di dalam pasangan tanda petik terdapat V. Simbol inilah yang
menyatakan karakter petik tunggal. Contoh:
>>> print("Tanda petik tunggal (') ...')
File "<stdin>", line 1
print(''Tanda petik tunggal (') ... ')
SyntaxError: invalid syntax
>>> print('Tanda petik tunggal (\') ...')
Tanda petik tunggal (') …
>>>

41
Tampak bahwa pada contoh pertama penulisan petik tunggal tanpa didahului karakter \
menyebabkan kesalahan secara sintaksis. Adapun penambahan karakter pada contoh
kedua memperlihatkan bahwa tanda petik tunggal bisa ditampilkan.

Karakter yang ditulis dengan awalan dinamakan karakter deret escape.


Tabel 3.5 mencantumkan daftar karakter deret escape.
Karakter Keterangan

\0 Karakter ber-ASCII nol (karakter null)


\a Karakter bel
\ь Karakter backspace
\f Karakter formfeed (ganti halaman)
\n Karakter newline (pindah baris)
\r Karakter carriage return (ke awal baris)
\t Karakter tab horizontal
\v Karakter tab vertikal
\\ Karakter /
\’ Karakter ‘
\” Karakter “
\? Karakter ?
\ooo Karakter yang nilai oktalnya adalah ooo (tiga digit oktal)
\xhh Karakter yang nilai heksadesimalnya adalah hh (dua digit
heksadesimal)

Konstanta string bisa ditulis dengan awalan r atau R yang menandak bahwa string tidak
mengandung karakter yang bermakna khusus. Contoh:
>>> print('Satu\nDua\tTiga')
Satu
Dua Tiga
>>> print (r'Satu\nDua\tTiga')
Satu\nDua\tTiga
>>> print (R'Satu\nDua\tTiga')
Satu\nDua\tTiga
>>>
Pada perintah berikut \n dan \t bermakna khusus:
print('Satu\nDua\tTiga')
Dalam hal ini, \n berarti pindah baris dan \t berarti karakter tab. Akan tetapi, ada
dua perintah berikut, \n dan \t tidak diperlakukan sebagai karakter bermakna khusus:

42
print (r'Satu\nDua\tTiga')
print (R'Satu\nDua\tTiga')
String yang panjang dapat ditulis pada lebih dari satu baris. Syaratnya, string yang
belum berakhir dan hendak dilanjutkan pada baris berikutnya perlu ditandai dengan
penulisan \ di akhir baris.
Penulisan string pada beberapa baris juga bisa dilakukan dengan menggunakan
awalan dan akhiran berupa tiga tanda petik. Contoh:
>>> print('Satu\nDua\tTiga')
>>> print(' ' 'Satu
. . . Dua
. . . Tiga' ' ')
Satu
Dua
Tiga
>>> print ("""Satu
. . . Dua
. . . Tiga""")
Satu
Dua
Tiga
>>>

3.5.6 Konstanta Bernama


Konstanta bernama adalah konstanta yang di beri nama. Secara prinsip pemberian
nama sama seperti pada variabel (lihat subbab 3.6). Perbedaanya, nama konstanta biasa
ditulis dengan huruf kapital. Contoh dapat dilihat berikut ini:
>>> GRAVITASI = 9.8
>>> print(GRAVITASI)
9.8
>>>

Pada contoh ini, GRAVITASI berkedudukan sebagai konstanta bernama.


Konstanta bernama biasa disimpan pada berkas kalau sering digunakan di
sejumlah skrip. Sebagai contoh, skrip berikut berisi dua konstanta bernama:
Berkas : konstanta.py

43
GRAVITASI = 9.8
KECEPATAN_SUARA = 343
Akhir berkas
Dua konstanta tersebut dapat digunakan dengan cara seperti berikut:
>>> import konstanta
>>> print(konstanta.GRAVITASI)
9.8
>>> print(konstanta.KECEPATAN.SUARA)
343
>>>

3.6 Variabel
Variabel adalah suatu nama yang mewakili suatu nilai dan nilai yang alwakilinya dapat
berubah sewaktu-waktu ketika skrip dieksekusi. Pada python, variabel merujuk ke suatu objek
Pada setiap saat, variabel dapat diubah untuk merujuk ke objek lain. Jadi, konsep variabel di
Python berbeda dengan variabel pada bahasa lain, misalnya CH. Pada Python, dua variabel atau
bahkan lebih dapat merujuk ke objek yang sama.
Keperluan Keterangan
Penampung data yang Ketika skrip di buat, pemrograman tentu saja tidak tahu
berasal dari pemakai data yang bakal di masukkan oleh pemakai. Oleh karena
itu, perlu variabel yang di gunakan untuk mencatat data
tersebut
Sebagai pencacah Pencacah seringkali digunakan pada perulangan sebagai
contoh, mula-mula variabel diisi dengan 1. Pada iterasi
berikutnya, isi variabel dinaikkan sebesar 1 sehingga
menjadi 2. Pada iterasi berikutnya, isi variabel dinaikkan
sebesar 1 sehingga menjadi 3, dan seterusnya.
Pencatat status logika Variabel digunakan untuk mencatat data logika sebagai
contoh, variabel diisi dengan false untuk menyatakan
bahwa data belum ditemukan. Nah, setelah melakukan
pencocokan berkali-kali, variabel tersebut bernilai true
untuk menyatakan data yang dicari sudah ditemukan atau
tetap saja bernilai false kalua yang di cari tidak di temukan.
Sebagai pencatat Variabel diperlukan sebagai tempat untuk pencatatan
sementara sementara. Pada kasus penukaran data yang di bahas pada
subbab 2.6, penukaran data x dan y memerlukan variabel
x

44
3.6.1 Penamaan Variabel
Hal pertama yang perlu diperhatikan sebelum menggunakan variabel adalah pada cara
memberi nama variabel. Secara umum, nama variabel hendaknya menyatakan nilai yang
diwakilinya. Sebagai contoh, variabel yang digunakan untuk menyimpan jumlah penduduk dapat
berupa:
• jumPenduduk
• jum_penduduk
• jumlahPenduduk
• jumlah_penduduk
Penggunaan variabel j untuk menyatakan jumlah penduduk sah-sah saja tetapi tidak
disarankan. penulisan nama variabel sebaiknya dilakukan secara konsisten. Sebagai contoh,
jika nama variabel melibatkan lebih dari satu kata, antarkata bisa dipisahkan dengan tanda.
Contoh:
• jumlah penduduk
• nama barang
• penjualan semester pertama
Secara konvensional, nama variabel ditulis dengan menggunakan huruf kecil. Namun,
sebagai alternatif, nama variabel dapat menggunakan notasi punuk unta. Disebut notasi
punuk unta karena terkesan seperti terdapat bagian naik dan terdapat bagian turun, mirip
punuk unta. Pada notasi ini, semua bagian ditulis dengan huruf kecil kecuali pada awal setiap
kata dimulai pada kata kedua, yang ditulis dengan huruf kapital.
Berikut adalah contoh penulisan nama-nama variabel yang menggunakan notasi
punuk unta:
• jumlah Penduduk
• nama Barang
• penjualanSemesterPertama

45
Secara teknis, aturan yang berlaku dalam memberikan nama variabel (dan sebenarnya
juga berlaku untuk komponen lain seperti nama fungsi dan nama struktur) adalah seperti
berikut.
1. Nama diawali dengan atau huruf.
2. Karakter berikutnya boleh berupa _, huruf, ataupun angka.
3. Huruf kecil dan huruf kapital dibedakan. Jadi, nama seperti jumlah dan Jumlah
menyatakan dua nama yang berbeda.
4. kata-kunci (keyword) seperti for dan True yang sudah digunakan secara khusus oleh
Python tidak diperkenankan untuk digunakan sebagai nama variabel.

3.6.2 Deklarasi dan Penugasan Variabel


Di Python, tidak ada perintah yang secara khusus digunakan untuk mendeklarasikan
variabel. Dalam bahasa pemrograman lain, deklarasi variabel dimaksudkan untuk
mengalokasikan memori untuk variabel berdasarkan tipe datanya. Pada Python, deklarasi
variabel secara otomatis dilakukan ketika terdapat penugasan nilai ke variabel. Pada saat itulah
tipe untuk variabel ditentukan.
Penugasan nilai variabel berarti membuat variabel menunjuk ke objek nilai dan
berbentuk seperti berikut:
variabel = nilai
Contoh berikut menunjukkan penugasan variabel untuk merujuk ke nilai 23 dan
sekaligus memperlihatkan cara untuk melihat tipe variabel:
>>> bilangan 500
>>> type (bilangan)
<class 'int'>
>>>
Tampak bahwa tipe bilangan berupa int (bilangan bulat).
Hal yang menarik, tipe dan nilai yang dirujuk variabel bisa diubah. Contoh berikut
didasarkan contoh sebelum ini:
>>> harga = 500.25
>>> type (harga)
<class 'float'>
>>>

46
Pada contoh ini, nilai yang dirujuk variabel diubah dan tipe datanya juga berbeda.
Hasil akhir menunjukkan bahwa tipe data sekarang adalah float (bilangan real).

3.6.3 Dua Variabel Merujuk ke Objek yang Sama


Apabila suatu variabel ditugaskan ke variabel lain, kedua variabel akan merujuk ke objek
yang sama. Pertanyaan yang muncul, "Bagaimana kita bisa tahu bahwa kedua variabel tersebut
merujuk ke objek yang sama?" Jawabannya adalah gunakan fungsi id) untuk mengetahui
identitas Objek yang ditunjuk kedua variabel. Perlu diketahui, setiap objek mempunyai identitas
yang unik (tidak kembar).

Sekarang, marilah kita praktikkan perintah-perintah berikut:


>>> mobil = "Honda Jazz"
>>> mobilku = "Honda Jazz"
>>> id (mobilmu)
47235984
>>> id (mobilku)
47236064
>>> mobilmu = mobilku.
>>> id (mobilmu)
47236064
>>>
Pada contoh di atas, mula-mula mobilmu dan mobilku merujuk ke objek yang
berbeda walaupun string yang dirujuknya sama. Hal ini dapat dilihat melalui id (). Nilai
yang berbeda menyatakan bahwa objek yang dirujuk oleh kedua variabel tersebut
berbeda. Nah, sekarang perhatikan pada pernyataan:
mobilmu = mobilku
Pernyataan ini akan membuat mobilmu menunjuk ke objek yang dirujuk oleh
mobilku. Dengan perkataan lain, kedua variabel tersebut merujuk ke objek yang sama.
Dua perintah id() berikutnya menunjukkan bahwa identitas yang ditunjuk oleh kedua
variabel tersebut sama.

47
3.7 Fungsi
Fungsi di Python juga berupa objek. Fungsi berupa suatu nama yang sekumpulan pernyataan
yang ditujukan untuk melaksanakan tugas tertentu dan memberikan nilai balik ketika dipanggil.
Bentuk pemanggilan fungsi adalah seperti berikut:
namaFungsi(argumen1, argumen2, ..., argumenN)
Dalam hal ini, argumen hingga argumen menyatakan data yang dilewatkan ke fungsi.
Oleh karena fungsi memberikan nilai balik, pemanggilan fungsi dapat ditulis dalam bentuk
seperti berikut:
Variabel = namaFungsi(argumen1, argumen 2, ..., argumenN)
Dengan demikian, nilai balik fungsi akan tersimpan di variabel.
Python menyediakan banyak sekali fungsi. Tabel 3.6 mencantumkan fungsi-fungsi yang
berhubungan dengan matematika, yang terdapat pada modul math. Tampak bahwa dengan
menggunakan fungsi-fungsi yang tersedia, operasi seperti menghitung akar kuadrat, menghitung
logaritma suatu bilangan, dan mendapatkan sinus suatu sudut dapat dilakukan dengan mudah.
Anda tidak perlu memikirkan sendiri bagaimana cara melakukan operasi-operasi seperti itu.
Tabel 3.6 Fungsi-fungsi matematika pada modul math
Fungsi Keterangan
Fungsi math.abs(x) Fungsi ini memberikan nilai balik berupa nilai mutlak
argumen x.
math.ceil(x) Fungsi ini memberikan nilai balik berupa bilangan bulat
terkecil yang tidak kurang dari nilai argumen x.
math.floor(x) Fungsi ini memberikan nilai balik berupa bilangan bulat
terbesar yang tidak lebih besar daripada argumen x.
math.trunc(x) Fungsi ini memberikan nilai balik berupa bagian bulat
argumen x tetapi dengan nilai balik bertipe float.
math.pow(x, y) Fungsi ini memberikan nilai balik berupa xy.
math.sqrt() Fungsi ini memberikan nilai balik berupa akar kuadrat
argument x (yakni, √ 𝑥)
math.fmod(x,y) Fungsi ini memberikan nilai balik berapa bilang real yang
menyatakan sisa pembagian x dengan y.
math.exp(x) Fungsi ini memberikan nilai balik berupa 𝑒 𝑥
math.log(x) Fungsi ini memberikan nilai balik berupa logaritma alami
argument x (yakni, elog 𝑥 atau ln x)
math.log10(x) Fungsi ini memberikan nilai balik berupa logaritma
argumen x (yakni, 10 log x).

48
math.log2(x) Fungsi ini memberikan nilai balik berupa logaritma biner
argumen x (yakni, 2log x)
math.copysign(x,y) Fungsi ini memberikan nilai balik berupa bilangan real yang
merupakan nilai absolut x, tetapi menggunakan tanda +
atau - mengikuti nilai y
math.cos(x) Fungsi ini memberikan nilai balik berupa kosinus argumen
x. Dalam hal ini, x harus dalam satuan radian.
math.sin(x) Fungsi ini memberikan nilai balik berupa sinus argumen x.
Dalam hal ini, x harus dalam satuan radian.
math.tan(x) Fungsi ini memberikan nilai balik berupa tangen argumen
x. Dalam hal ini, x harus dalam satuan radian.
math.acos(x) Fungsi ini memberikan nilai balik berupa arc cosine
argumen x dalam satuan radian.
math.asin(x) Fungsi ini memberikan nilai balik berupa are sine argumen
x dalam satuan radian.
math.atan(x) Fungsi ini memberikan nilai balik berupa arc tangent
argumen x dalam satuan radian.
math.atan2(y,x) Fungsi ini memberikan nilai balik berupa arc tangent
argumen y/x dalam satuan radian.
math.sinh(x) Fungsi memberikan nilai balik berupa sinus hiperbolik x
𝑒( − ) 𝑒 −2
(yakni, ).
2
math.cosh(x) Fungsi memberikan nilai balik berupa kosinus hiperbolik x
𝑒( + ) 𝑒−2
( ).
2
math.tanh(x) Fungsi memberikan nilai balik berupa tangen hiperbolik x
(identik dengan sinh(x)/cosh(x)).
math.degrees(x) Fungsi ini berguna untuk mengonversi nilai radian x ke
derajat.
math.radians(x) Fungsi ini berguna untuk mengonversi nilai radian x ke
derajat.

3.8 Ekspresi, Operator, dan Operan


Ekspresi adalah suatu bentuk penulisan perintah yang dimaksudkan untuk menghasilkan
suatu nilai. Ekspresi melibatkan operator dan operan. Operator adalah simbol yang mewakili
suatu operasi. Sebagai contoh, + menyatakan operasi penjumlahan dan perkalian. Adapun
operan adalah bagian yang dikenai operasi operator.

49
3.8.1 Operator Aritmetika
Operator aritmetika adalah operator yang digunakan untuk melaksanakan perhitungan
aritmetika. Tabel 3.7 mencantumkan seluruh operator aritmetika pada Python.
Operator Keterangan Prioritas Contoh
** Pangkat 1 2**3→8
* Perkalian 2 4*2→ 8
4*2.0→8.0
/ Pembagian pecahan 2 9/2→4.5
9/2.0→4.5
// Pembagian bulat 2 9/2→4
9/2.0→4.0
% Sisa 2 7%2→1
pembagian(modulus) 8%3→2
8%3.0→2.0
8%3.5→1.0
+ Penjumlahan 3 4+3→7
4+3.0→7.0
- Pengurangan 3 5-4→1
5.0-4→1

Tabel 3.7 mengungkapkan bahwa hasil operasi aritmatika (kecuali yang melibatkan /)
berupa bilangan real jika terdapat operan berupa bilangan real. Operator % dapat digunakan
untuk bilangan bulat maupun bilangan real.
Operator ini menghasilkan sisa pembagian. Secara umum, hubungan antara operan
dan hasil adalah seperti berikut:
a % b→ c
a/b → d
Maka, c = a - b * d. Sebagai contoh, jika a 8 dan b = 3. Nilai d akan berupa 2 (hasil 8/3)
dan nilai c= 8-3* 2 = 2.
Catatan: Tahukah Anda bahwa operator % dapat dipakai untuk penentuan suatu
bilangan bulat sebagai bilangan genap atau ganjil? Hal ini didasarkan kenyataan bahwa sisa
pembagian suatu bilangan dengan 2 berupa 0 untuk bilangan genap atau 1 untuk bilangan
ganjil.

50
3.8.2 Prioritas Operator
Tidak semua operator mempunyai prioritas yang sama. Sebagai contoh Tabel 3.8
memperlihatkan bahwa prioritas * lebih tinggi daripada Oleh karena itu, ekspresi 3+72 akan
menghasilkan 17.
Prioritas dalam mengevaluasi ekspresi dapat diatur melalui penggunaan tanda kurung.
Sebagai contoh, penulisan (3 + 7) * 2 akan menghasilkan disebabkan penggunaan kurung
pada (3 + 7) membuat 3 +7 20.
3.8.3 Konversi Data Secara Implisit
Apabila dijumpai suatu ekspresi yang melibatkan tipe berbeda, dengan sendirinya
Python akan mengonversi dari suatu tipe data ke tipe data lain. Sebagai contoh, dalam suatu
operasi penjumlahan a b, a bertipe int dan b bertipe float. Pada saat mengevaluasi a + b, a
akan dikonversi dengan sendirinya ke tipe float sehingga kedua operan bertipe sama.
Hasilnya, sudah tentu bertipe float.
Konsep yang digunakan untuk melakukan konversi secara eksplisit ini didasarkan urutan
seperti berikut:
1) bilangan real;
2) bilangan bulat;
3) karakter atau logika.
Tipe bilangan real yang tertinggi dan tipe karakter atau logika adalah yang terendah.
Konversi tipe selalu berpedoman pada tipe pada kedudukan yang rendah akan dibawa
kepada yang berkedudukan tinggi. Itulah sebabnya, pada contoh di depan, a yang bertipe int
(bilangan bulat) akan dikonversi ke yang berkedudukan lebih tinggi, yaitu ke float mengingat
pasangannya dalam ekspresi bertipe float.

3.8.3 Konversi Data Secara Eksplisit


Kadangkala, diperlukan untuk melakukan konversi dari suatu tipe data ke tipe data lain
secara eksplisit. Hal ini dapat dilakukan melalui tv cast. Bentuknya seperti berikut:
(tipe Data) (data)

51
Hasil ekspresi ini berupa nilai berdasarkan data yang sesuai dengan tipeData. Contohnya
seperti berikut:
(int) (30.5)
Contoh di atas memberikan nilai balik berupa 30. Cara lain untuk melakukan konversi tipe
data dilakukan dengan menggunakan bentuk seperti berikut:
tipe Data(data)
Contoh:
int(30.5)
Contoh di atas memberikan nilai balik berupa 30.
Contoh berikut menunjukkan tipe data hasil penggunaan int():
Berkas : eksplisit.py
bIlA = 45.5
print ('Tipe data bilA:', type (bilA))
bilB = int(bilA)
print ('Tipe data bilB:', type (bilB))
bilC = 1234
string = '56'
hasil = 1234 + int(string)

print('hasil =', hasil)


print('Tipe hasil :', type(hasil))
Akhir berkas
C:/LatPython>python eksplisit.py
Tipe data bilA: <class 'float'>
Tipe data bilB: <class 'int'>
Hasil = 1290
Tipe hasil: <class 'int'>
C:/LatPython>

52
3.8.4 Ekspresi dan Penugasan
Sebagaimana telah dijelaskan di depan, ekspresi digunakan untuk memperoleh satu nilai.
Nilai yang dihasilkan hanya bersifat sementara dan tidak disimpan dalam memori komputer.
Itulah sebabnya, menuliskan ekspresi sebagai pernyataan semacam berikut di skrip tidak
memberikan hasil apapun:
5+7
Secara sintaksis, pernyataan seperti itu sudah memenuhi syarat, ter menjadi tidak
berguna. Jika perintah tersebut dilakukan di interpreter Python, tentu saja ada hasilnya.
Agar hasil ekspresi disimpan pada memori komputer, nilai hasil ekspresi perlu
ditugaskan ke variabel sehingga membentuk suatu penugasan Contoh:
x =5+3
Pernyataan ini membuat hasil ekspresi 5+ 3 dirujuk oleh variabel x. Hal yang perlu
diperhatikan, penugasan harus memenuhi kaidah penulisan seperti berikut:
variabel = ekspresi
Tabel 3.8 mencantumkan sejumlah persamaan matematis dan penerjemahan masing-
masing dalam bentuk pernyataan Python.
Persamaan Matematis Pernyataan Python
e = mc e=m*c*c
y = ax*+bx+c y= a*x*x+b*x+c atau y=a*x** 2+b*x+c
y b+2 y = math.sqrt(b+2)
5+ a y = math.pow(c, 1.0/3)
1-a b (5+ a)/(1-a)
y = a(1+r) y = a math.pow(1 +r, x)
a = b𝑒 𝑘𝑡 a = b* math.exp(k*t)
1 luas = 0.5 * a*b* sin(c)
luas = 2 a.b.Sin(C)

Pada Python, suatu persamaan dengan bentuk semacam berikut sering dijumpai:
x =x +1
Model ini tidak dikenal pada persamaan matematis karena tidak akan pernah ada nilai
x yang sama dengan x + 1. Pada Python, x + 1 adalah pernyataan untuk menaikkan nilai
yang dirujuk x sebesar 1.

53
3.8.5 Operator Majemuk untuk Operasi Aritmetika
Untuk menyatakan operasi semacam berikut:
x= x+n

Python menyediakan operator += untuk menyederhanakan penulisan pernyataan


tersebut. Operator ini digolongkan sebagai operator majemuk. Dengan menggunakan +=,
pernyataan di atas dapat ditulis menjadi:
x+ =n

Tabel 3.9 mencantumkan keseluruhan operator majemuk yang ditujukan untuk


operasi aritmetika.
Operator Penggunaan Keterangan
+= x += n kependekan dari x = x+n
-= x -= n kependekan dari x = x-n
*= x *= n kependekan dari x = x*n
** x ** n kependekan dari x = x**n
/= x/=n kependekan dari x = x/n
//= x//=n kependekan dari x = x//n
%= x%=n kependekan dari x = x%n

3.9 Komentar
Dalam bahasa pemrograman, komentar biasa disertakan dengan tujuan untuk memberikan
penjelasan pada kode sumber atau untuk tujuan dokumentasi Jadi komentar itu hanya ditujukan
untuk orang yang hendak membaca kode sumber. Pada saat dieksekusi, komentar akan diabaikan
oleh komputer. Jadi, tidak ada kaitan dengan keluaran.
Komentar pada Python dapat ditulis dengan menggunakan simbol // Dengan sendirinya,
seluruh karakter dimulai dari simbol tersebut hingga akhir baris akan dijadikan sebagai komentar.
Contoh:

54
1 // Perhitungan statistika pada citra
2 print() // Pindah baris
Pada contoh pertama, komentar diletakkan pada satu baris tersendiri. Bentuk seperti ini
biasa digunakan untuk memberikan komentar sebelum sederetan pernyataan dengan tujuan
agar pembaca skrip mendapatkan gambaran mengenai tujuan perintah-perintah tersebut. Pada
pembuatan skrip, komentar juga dapat dimanfaatkan untuk mematikan pernyataan- pernyataan
tertentu dalam skrip selama pengujian. Lihat contoh berikut:
print("Mawar")
#print ("Melati")
print("Kenanga")

Pada contoh ini, print("Melati") pernyataan untuk menampilkan string "Melati". tidak
berfungsi sebagai.

3.10 Gaya Penulisan Skrip dan kekangan


Dalam menuliskan skrip, pemrograman mempunyai kebebasan sepenuhnya termasuk
dalam hal cara menyusun pernyataan. Sebagai contoh, satu pernyataan boleh ditulis dalam
beberapa baris. Dengan demikian, pernyataan seperti berikut:
print('Jerapah', 'Zebra', 'Kuda', sep = '/n')
Boleh ditulis menjadi:
print('Jerapah', 'Zebra',
Kuda', sep = '\n')

Bahkan, satu baris pun boleh ditempati lebih dari satu pernyataan, asalkan antara
pernyataan dipisahkan dengan titik-koma. Dengan demikian, penulisan semacam berikut yang
mengandung tiga pernyataan dalam satu baris diperkenankan.
a = 10; b = 20; c = 30
Hal terpenting yang perlu diperhatikan dengan penulisan skrip adalah susunannya harus
mudah dibaca oleh pembuat skrip maupun oleh orang lain. Bisa dibayangkan sendiri apa yang
terjadi seandainya skrip masukan.py ditulis menjadi seperti berikut:
data=input('Berapa usia Anda? ') ;usia=int(data);print('Usia Anda sebentar lagi menjadi',
usia+1)

55
Seperti benang kusut! Begitulah pengibaratannya. Oleh karena i aturan pertama dan utama
yang perlu dibiasakan adalah "skrip perl ditulis supaya mudah dibaca oleh orang". Aturan kedua
yang pe dipegang adalah konsisten dalam menerapkan cara penulisan skrip.
Beberapa pedoman yang bisa diikuti untuk membuat skrip yang muda dibaca oleh orang
adalah seperti berikut.
• Setiap baris perlu diusahakan hanya mengandung satu pernyataan. Tambahan komentar
dalam satu baris yang berisi pernyataan dimungkinkan dengan tujuan untuk memperjelas
kegunaan pernyataan tersebut. Contoh:
print () # Pindah baris
• Penggunaan spasi sebelum dan sesudah operator biner (operator yang melibatkan dua
operan) lebih baik digunakan.
Penulisan seperti berikut:
X + 2 + (y - 0.5)
lebih baik daripada berikut:
x+2* (y-0.5)
Selanjutnya, penulisan seperti berikut:
print('Jerapah', 'Zebra', 'Kuda', sep = '\n')
lebih baik daripada berikut:
print("Jerapah', 'Zebra', 'Kuda', sep = '\n')
• Baris kosong biasa diberikan untuk memisahkan dua kelompok yang berbeda secara
fungsional. Sebagai contoh seperti berikut:
jam = 8
menit = 9
detik = 2
Dan
print('%d : %d : %d' % (jam, menit, detik))
print('%2d : %2d : %2d' % (jam, ,menit, detik))
print ('%02d : %02d : %02d' % (jam, menit, detik))
ditulis dengan dipisahkan oleh baris kosong.

56
• Pada pernyataan yang panjang, yang ditulis lebih dari satu baris, penjorokan pada baris
kedua dan seterusnya lebih baik dilakukan. Sebagai contoh, penulisan berikut:
print('Jerapah', 'Zebra',
'Kuda', sep = '\n')
lebih baik daripada berikut:
print('Jerapah', 'Zebra',
'Kuda', sep = '\n')

Berlawanan dengan kebebasan yang telah diutarakan, Python juga menerapkan kekangan
yang harus dipatuhi oleh pembuat skrip. Dua butir penting dibahas di sini.
Pertama, pernyataan-pernyataan yang mempunyai kedudukan setara harus ditulis
dimulai dari kolom yang sama. Sebagai contoh, terdapat tiga pernyataan seperti berikut:
a = 10
b = 20
c = 30
Ketiga pernyataan tersebut harus ditulis dengan awalan pernyataan pada kolom yang
sama. Penulisan seperti berikut tidak diperkenankan:
a = 10
b = 20
c = 30
Kedua, satu perintah bisa ditulis dengan mencakup lebih satu baris. Hai seperti ini perlu
dilakukan agar isi suatu baris tidak terlalu panjane sehingga mudah dibaca oleh orang hanya
dengan satu kali pandang Akan tetapi, kadangkala, tanda perlu diletakkan di akhir baris untuk
menyatakan bahwa masih ada kelanjutan perintah pada baris ini di baris berikutnya. Sebagai
contoh, perintah berikut:
1+2+3+4+5+6
dapat ditulis menjadi:
1 +2 +3 +/
4 +5 +6

57
Contoh pengujiannya seperti berikut:
>>> 1 + 2 + 3 +
... 4 + 5+ 6
21
>>>
Pada contoh ini, setelah tanda diberikan dan tombol Enter ditekan, Python akan
menampilkan tanda "...", yang menyatakan bahwa interpreter Python menunggu kelanjutan
perintah yang belum berakhir. Begitu 4 + 5 + 6 diberikan dan tombol Enter ditekan, Python
mengetahui bahwa perintah telah berakhir dan perintah yang diberikan segera dieksekusi.
Tidak semua perintah yang ditulis lebih satu baris perlu menggunakan tanda untuk
menyatakan bahwa perintah masin berlanjut. Ciri-ciri perintah yang masuk kategori ini adalah
seperti berikut.
1. Terdapat ekspresi dalam tanda kurung, kurung siku, atau kurung kurawal. Pemenggalan
pada bagian yang terletak di dalam tanda kurung tidak memerlukan tanda sebagai
penanda bahwa pemerintah masih berlanjut. Sebagai contoh, perhatikan pernyataan
berikut:
print("Harga barang per unit", 2000)
dapat ditulis menjadi:
print("Harga barang per unit",
2000)
2. Karakter pindah baris (newline) terdapat pada string yang ditulis dalam tiga tanda petik.
Contoh dapat dilihat berikut ini.
>>>teks = ' ' 'Nama-nama kota:
. . . Semarang
. . . Yogyakarta
. . . Medan
. . . Padang
. . . Ambon
. . . Merauke ' ' '
>>> print(teks)
Nama-nama kota:

58
Semarang
Yogyakarta
Medan
Padang
Ambon
Merauke
>>>

Pada contoh ini, teks diisi dengan string yang mengandung sejumlah karakter newline
atau karakter pindah baris ("\n") tetapi tidak ditulis secara eksplisit. Hal ini bisa dilakukan dengan
menggunakan awalan dan akhiran "' (tiga tanda petik-tunggal). Pada keadaan seperti ini, setiap
kali tombol Enter ditekan, interpreter Python mengetahui bahwa perintah belum berakhir dan
aka menambahkan karakter pindah baris pada string. Kemunculan tanda ... menyatakan bahwa
kelanjutan string masih ditunggu.
• Penyelesaian Masalah
Subbab ini membahas tiga contoh masalah dasar dan penyelesaian masing-masing.
Contoh 1 - Penyelesaian persamaan matematika
Suatu persamaan matematika berupa:
5X (Y 1) = Z 4
Bagaimana cara menghitung Z berdasarkan X dan Y kalau dinyatakan dengan pernyataan
C++?
Solusi:
Persamaan 5X (Y + 1) = Z+4 bisa ditulis menjadi:
Z + 4 = 5X (Y + 1)
Z+4 -4 = 5X (Y 1) – 4
Z = 5X (Y+1)-4
Nah, persamaan terakhir ini dapat dikonversi ke pernyataan Python seperti berikut:
z = 5 * x + (y + 1) – 4

59
Contoh 2 - Perhitungan yang melibatkan akar
Amri bermaksud membuat skrip untuk menghitung solusi persamaan kuadrat: a𝑥 2 + bx + c =
0 dengan nilai a, b, dan c dimasukkan dari papan ketik. Nah nilai x yang memenuhi persamaan
tersebut dihitung melalui:
-6+ b 4ac 2a
-6-6² - 4ac 2a
namun, ketika menuliskan skrip, ia mengalami kebuntuan untuk akar di Python. Bagaimana
ia seharusnya menghitung menyelesaikannya?
Solusi:
Akar suatu bilangan dapat dihitung dengan dua cara. Cara pertama adalah dengan
menggunakan operator **. Akar x sebenarnya dapat dihitung melalui x ** 0.5. Cara kedua adalah
dengan menggunakan:
fungsi math.sqrt().

Berikut adalah skrip yang menggunakan operator **:


Berkas : akar.py
# Perhitungan akar dengan **
# untuk menghitung penyelesaian
# persamaan ax^2 + bx + c = 0
a = float (input('a = '))
b = float (input('b = '))
c = float (input('c = '))
xl = (-b + (b * b - 4 * a + c) ** 0.5) / (2 + a)
x2 = (-b - (b * b - 4 * a * c) ** 0.5) / (2 * a)
print ()
print("x1 =", x1)
print("x2 =", x2)

Akhir berkas
contoh hasil pengujian terdapat di halaman
C:\LatPython>python akar.py
a=1
b = -1
c = -2

60
xl = 2.0
x2 = -1.0
C:\Lat Python>

Contoh ini digunakan untuk mencari penyelesaian persamaan 𝑥 2 - x – 2 = 0, yang


menghasilkan x1 dan x2, berupa bilangan real yang berbeda, yaitu 2 dan -1. Hal ini ditandai
dengan nilai b * b – 4 * a * c yang disebut diskriminan, yang nilainya lebih besar daripada
nol.
Kadang dijumpai persamaan kuadrat yang menghasilkan x1 dan x2 bernilai sama. Hal ini
ditandai dengan nilai diskriminan berupa nol.
Contoh persamaan kuadrat seperti ini, yaitu sebagai berikut:

x²+2x+1=0
Perhatikan hasil pengujiannya.
C:\LatPython>python akar.py
a=1
b=2
c=1
x1 = -1.0
x2 = -1.0
C:\LatPython>
Namun, jika diskriminan bernilai kurang dari 0, akan diperoleh x1 dan x2 yang berupa
bilangan kompleks. Hasil seperti ini terdapat pada persamaan
2x +2x+1=0
Berikut adalah hasil pengujiannya:
c: \LatPython>python akar.py
a=2
b=2
c=1
x1 = (-0.49999999999999994+0.5j)
x2 = (-0.5-0.5j)
C: Lat Python>
Berikut adalah skrip yang menggunakan fungsi math.sqrt:
Berkas : akar2.py
# Perhitungan akar dengan math.sqrt()
# untuk menghitung penyelesaian

61
# persamaan ax^2 + bx + c = 0
import math
a = float (input('a = '))
b = float (input('b = '))
c = float (input('c = '))
x1 = (-b + math.sort (b* b - 4 * a *c) ) / (2 * a)
x2 = (-b - math.sqrt (b * b - 4 * a *c) / (2 * a)
print()
print("x1 =", xl)
print("x2 =", x2)
Akhir berkas

Fungsi math.sqrt() tidak dapat menghitung argumen yang bernilai negatif. Oleh karena itu,
skrip akar2.py tidak dapat digunakan untuk menyelesaikan persamaan 2x +2x + 1 = 0.

RANGKUMAN

(Diketik dengan tipe huruf calibri, ukuran 12, justify, spasi 1,5)
1. Python adalah bahasa pemrograman yang berorientasi objek (PBO) Pemrograman
berorientasi objek merupakan suatu paradigma pemrograman yang menggabungkan properti
dan perilaku dalam suatu objek.
2. Tipe data dasar pada Python dapat dikelompokkan menjadi data numerik, data alfanumerik,
dan data logika.
3. Data yang digunakan pada pemrosesan komputer dapat berupa konstanta atau variabel.
Kedua hal ini perlu dipahami dengan baik karena menjadi dasar semua skrip. Hampir semua
skrip melibatkan konstanta dan variabel. Fokus pada subbab ini hanya pada konstanta.
4. Variabel adalah suatu nama yang mewakili suatu nilai dan nilai yang alwakilinya dapat berubah
sewaktu-waktu ketika skrip dieksekusi. Pada python, variabel merujuk ke suatu objek Pada
setiap saat, variabel dapat diubah untuk merujuk ke objek lain.

DAFTAR PUSTAKA

1.Kadir, A. (2019).Logika Pemprograman PYTHON. Jakarta: Gramedia

62
2. Halterman, L.R (2011) Learning to Program with Python, [Online]
3. Heinold, B.(2012) A Practial Introduction to Python Programing, Dapertament of
Mathematics and Computer Science, Mount St. Mary’s University.
4. Hetland, M.L. (2008) Beginning Python: From Novice to Prefessional, Barkeley: Apress.
5. Horowitz, E., Seni, S., Rajasekaran, S. (2018) Fundamentals of Computer Algorithms. New Delhi:
Galgotia Publications.
6. Kadir, A. (2016) C++ Programing A Practical Hansd-On for Self Learning, Malacca:Utem Press.
7. Kadir, A. (2018) Dasar Pemprograman Python 3, Yogyakarta: Penerbit Andi.

LATIHAN
1. Buatlah skrip yang membaca bilangan bulat dari papan ketik. Sebagai contoh, bilangan yang
dimasukkan adalag 203. Maka tampilannya berupa?
******203
Jika bilangan yang dimasukkan 12345, tampilannya berupa:
******12345
2. Jelaskan perbedaan 2 konstanta berikut?
a. 010
b. 0x10
3. Buatlah program sederhana berkaitan dengan nilai konstanta?
4. Buatlah program sederhana tentang fungsi?
5. Buatlah program yang mengimplementasikan operator logika, lalu pada setiap operator logika
dibandingkan hasilnya?

63
BAB 4
TIPE LOGIKA DALAM PEMROGRAMAN

CAPAIAN PEMBELAJARAN

• Mahasiswa mampu menguraikan dan menerapkan tentang perbedaan antara


pemprograman struktur, struktur logika, peranan tipe logika, operator relational dan
operator logika dalam membuat program.

MATERI

4.1 Pemrograman Terstruktur


Pemrograman terstruktur atau kadang dinamakan pemrograman modular adalah nama
metode yang pertama kali digagas oleh Corrado bohm and Guiseppe Jacopini. Metode ini biasa
digunakan untuk membuat program sebelum konsep pemrograman berorientasi objek
diperkenalkan. Namun, walaupun sekarang pemrograman berorientasi objek telah dikenal luas,
prinsip-prinsip pada pemrograman terstruktur tetap digunakan bersama prinsip-prinsip baru di
luar pemrograman terstruktur.
Tujuan penggunaan metode pemrograman terstruktur adalah untuk memungkinkan
perancangan dan penyusunan program dengan cara yang sistematis dan terorganisasi sehingga
akan meningkatkan kejelasan dan kualitas memperbaiki waktu pengembangan program. Selain
itu, program harus mudah dijalankan Program serta oleh pemakai. Prinsip-prinsip yang
terkandung pada pemrograman terstruktur antara lain berupa penggunaan siklus
pengembangan program, penerapan struktur logika, perancangan atas bawah dengan modul dan
blok.
Untuk mewujudkan program yang baik dari sisi penulisan kode, pedoman yang lebih umum
diberikan di sini yang diadaptasi dari Venit dan Drake(2007).
• Program perlu disusun secara modular. Hal ini sangat bermanfaat untuk program yang
kompleks.Pengenalan pemrograman modular diterangkan pada bab terutama tersendiri.
• Nama variabel sebaiknya bersifat deskriptif. Nama variabel yang deskriptif akan
membuat kode sumber mudah dibaca oleh pembuat program maupun orang lain.

64
• Pesan yang menyatakan data yang perlu dimasukkan pemakai perlu diberikan. Pesan
seperti ini dinamakan prompt. Hal ini dimaksudkan agar pemakai mengerti dengan baik
data yang harus dimasukkan.
• Keluaran perlu diperjelas. Program yang ditujukan kepada pemakai perlu menjelaskan
keluaran. Tidak boleh mengasumsikan sendiri bahwa pemakai pasti tahu maksud
keluaran program. Sebagai contoh, jika ingin menampilkan suatu bilangan, perlu ada
keterangan tentang bilangan tersebut walaupun singkat. Keluaran
Suhu (derajat Celcius) = 25
jauh bermakna daripada sekadar keluaran berupa
25
• Komentar disertakan pada program untuk keperluan dokumentasi. Komentar
bermanfaat untuk memberikan dokumentasi secara internal pada program. Hal ini
berguna tidak hanya untuk orang lain, tetapi juga untuk pembuat program di suatu saat
nanti.

4.2 Struktur Logika


Untuk membantu pembuatan program yang terstruktur dengan baik,setiap modul perlu
disusun atas sejumlah grup pernyataan yang dinamakan struktur logika atau struktur kontrol.
Secara prinsip, struktur kontrol yang dimaksud ini terdiri atas tiga bagian berikut:
• Struktur sekuensial;
• Struktur seleksi;
• Struktur perulangan.
Struktur sekuensial menyatakan deretan pernyataan yang dijalankan secara berurutan.
Struktur seleksi bermanfaat untuk melakukan pengambilan keputusan. Struktur perulangan
berguna untuk mengulang suatu tindakan beberapa kali. Gambar 4.2 memberikan ilustrasi
terhadap semua struktur kontrol tersebut dalam bentuk diagram alir.

65
Pernyataan 1 salah
Kon
disi
Kond salah
Pernyataan 2 isi?
benar

benar
Pernyataan 3 Pernyataan A Pernyataan B
pernyataan

sekuensial perulangan

seleksi

Gambar 4.1 Tiga jenis struktur kontrol penyusun program

4.3 Peranan Tipe Logika


Pada struktur seleksi dan perulangan (Gambar 4.2) terdapat kondisi yang dinyatakan dalam
simbol belah ketupat. Kondisi seperti ini melibatkan ekspresi bertipe logika (Boolean) yang
menghasilkan nilai benar ( True ) atau salah (False ). Nilai yang dihasilkan ini menentukan alur
eksekusi pernyataan-pernyataan. Pada struktur seleksi, hasil ekspresi Boolean menentukan suatu
pernyataan dieksekusi atau tidak.Pada struktur perulangan, ekspresi tersebut menentukan suatu
pernyataan akan diulang atau tidak. Oleh karena itu, pemahaman yang kuat terhadap tipe logika
sangat banyak membantu dalam mempermudah penyelesaian suatu masalah.
Nilai True jika ditampilkan melalui print() akan berupa True dan nilai False ditampilkan melalui
print() akan berupa False . Hal ini ditunjukkan pada skrip berikut:

66
Berkas : truefalse.py

# Penyajian nilai True dan False

print ('Nilai True dan False')


print (‘--------------------------‘)

print ('Nilai True = ‘, True)


print ('Nilai False = ‘, False)
Akhir berkas

Hasil eksekusi skrip ini adalah seperti berikut:

C:\LaPython>python truefalse.py
Nilai True dan False
Nilai True = True
Nilai False = False
C:\Latpython>

4.4 Operator Relasional


Operator relasional atau operator pembanding adalah opera berguna untuk melakukan
pembandingan dan hasilnya berupa benar atau salah. Tabel 4.1 mencantumkan keseluruhan
operator relasional pada Python.
Tabel 4.1 Daftar operator relasional
Operator Keterangan Contoh Hasil

== Operator ini dinamakan operator 5== 4 Salah


kesamaan. 4== 4 Benar
Pemakaiannya seperti berikut:
a= =b
Hasil benar sekiranya kedua operan
bernilai sama atau salah untuk keadaan
sebaliknya.

!= Operator ini dinamakan operator 5 != 4 Benar


ketidaksamaan. 4 != 4 Salah
Pemakaian seperti berikut:
a != b

67
Hasil benar sekiranya kedua operan tidak
bernilai sama atau
salah untuk keadaan sebaliknya.

> Operator ini dinamakan operator lebih 3> 4 Salah


dari. 5>4 benar
Pemakaian seperti berikut:
a>b
Hasil benar sekiranya a bernilai lebih
besar daripada b atau salah untuk
keadaan sebaliknya.

< Operator ini dinamakan operator kurang 5< 4 Salah


dari.Pemakaian seperti berikut: 3< 4 benar
a<b
Hasil benar sekiranya a bernilai
lebih kecil daripada b atau salah
untuk keadaan sebaliknya.

>= Operator ini dinamakan operator lebih 5>= 4 Benar


dari atau sama dengan.Pemakaian 4>= 4 Benar
seperti berikut: 3>= 4 Salah
a >= b
Hasil benar sekiranya a bernilai lebih
besar daripada atau sama dengan b atau
salah untuk keadaan sebaliknya.
Operator inilah yang digunakan untuk
menyatakan simbol ≥pada Matematika.

<= Operator ini dinamakan operator kurang 5 <= 4 Salah


dari atau sama dengan.Pemakaian 4 <= 4 Benar
seperti berikut: 3 <= 4 Benar
a <= b
Hasil benar sekiranya a bernilai lebih
kecil daripada b atau salah untuk
keadaan sebaliknya. Operator inilah yang
digunakan untuk menyatakan simbol ≤
pada Matematika.

Pengujian hasil ekspresi yang menggunakan operator relasional dapat dilakukan melalui
print(). Ekspresi yang melibatkan operator relasional perlu ditulis dalam tanda kurung. Contoh
ditunjukkan pada skrip berikut:

68
Berkas : relasional.py

# Pengujian ekspresi relasional


print ('Pengujian ekspresi relasional')
print ('-----------------------------------')

a = 25; b = 23
print (a, ' > ', b, ' ? ', a > b)
print (a,' == ' , b + 2, ' ? ', a == b + 2)
print (a, ' != ' , b, ' ? ', a != b)
print (a, ' <= ', b, ' ? ', a <= b)
Akhir berkas

Hasil eksekusi skrip adalah seperti berikut:

C:\LatPython>python relasional.py
Pengujian ekspresi relasional
25 > 23 ? True
25 = = 25 ? True
25 != 23 ? True
25 <= 23 ? False
C:\LatPython>

Operator relasional juga bisa diterapkan pada string. Dasar digunakan untuk pembandingan
adalah nilai ASCII setiap karakter yang menyusun string (lihat Tabel 1.2). Tabel 4.2 menunjukkan
beberapa contoh penggunaan operator relasional pada string.
Tabel 4.2 Contoh penggunaan operator relasional pada data string
Makna Ekspresi Hasil

a'== 'A' String 'a' sama dengan Salah


string 'A' ?

A'!= 'a' String 'A' tidak sama Benar


dengan string 'a'?

69
'A' > 'a' String 'A' lebih besar Salah, Nilai ASCII
daripada string 'a'? 'A' sama dengan
65,
sedangkan nilai
ASCII 'a' adalah 97

A'< 'a' String 'A' lebih kecil Benar


daripada 'a'?

M' <= 'Z' String 'M' kurang dari Benar


atau sama dengan 'Z?

'm' <= 'Z' String 'm' kurang dari Salah


atau sama dengan 'Z'?

'C' >= 'A' String 'C' lebih besar Benar


daripada atau sama
dengan 'A'?

String AB' kurang dari Benar.


'AB' < 'Ab' atau sama dengan 'Ab'? Pembandingan
dilakukan pada
huruf kedua pada
string masing-
masing mengingat
huruf pertama
sama

Contoh penggunaan operator relasional dapat dilihat pada beberapa persoalan berikut.

Kasus - Syarat pengambilan uang di ATM

Syarat pengambilan uang yang diperkenankan di ATM adalah


kalau saldo tidak kurang dari 50.000 setelah uang diambil. Pada
kasus in, ekspresi pembandingan yang diperlukan akan berupa:

(saldo-besarPengambilan) >= 50000

Dalam hal ini, saldo menyatakan saldo sebelum uang diambil


besarPengambilan menyatakan uang yang mau diambil.

70
4.5 Operator Logika
Operator logika "bukan" digunakan dengan bentuk seperti berikut:

not operan

Dalam hal ini, operan dapat berupa apa saja yang bernilai benar atau salah. Hasilnya
berupa:
• True kalau operan bernilai False ;

• False kalau operan bernilai True .


Contoh berikut menunjukkan efek penggunaan not di depan variabel bertipe bool:
Berkas : bukan.py

# Penggunaan operator not

print ('Operator not')


print ('---------------')

keadaan – False

print ('Nilai keadaan pada awal = ', keadaan)


keadaan = not keadaan
print ('Nilai keadaan melalui not keadaan = ', keadaan)

keadaan = not keadaan


print ('Nilai keadaan melalu1 not keadaan = ', keadaan)

Akhir berkas

Pada skrip ini, perhatikan pernyataan berikut:


keadaan = not keadaan
Pernyataan di atas digunakan untuk membalik nilai logika pada keadaan. Jika semula keadaan
bernilai True , maka keadaan sekarang bernilai False . Namun, jika semula keadaan bernilai False,
maka keadaan sekarang bernilai True .
Hasil eksekusi skrip ditunjukkan berikut ini:
C:\LatPython>python bukan.py
Operator not

71
Nilai keadaan pada awal = False
Nilai keadaan melalui not keadaan = True
Nilai keadaan melalui not keadaan = False
C:\LatPython>

4.5.1 Operator Logika Dan


Operator logika "dan" digunakan dengan bentuk seperti berikut:

operan1 and operan2

Dalam hal ini, baik operan1 maupun operan2 dapat berupa apa saja yang bernilai True
atau False . Hasilnya berupa True hanya kalau kedua operan bernilai True . Tabel kebenaran untuk
semua kemungkinan nilai operan dan nilai yang dihasilkan oleh operasi logika "dan" dapat
dilihat pada Tabel 4,3.
Tabel 4.3 Tabel kebenaran operasi dengan and

Operan1 Operan2 Operan1 and Operan2

False False False


False True False
True False False
True True True

Contoh penggunaan operator logika "dan" dapat dilihat pada persoalan berikut.
Contoh - Penentuan huruf kapital
Suatu huruf dapat diputuskan sebagai huruf kapital atau bukan dengan menggunakan
ekspresi seperti berikut:
karakter > 'A' and karakter <'Z'
Tabel 4.4 memperlihatkan empat contoh pasangan kedua variabel tersebut dan hasil ekspresi
yang didapat.
Tabel 4.4 Ekspresi penentuan huruf kapital
Karakter karakter >='A' karakter >='Z' karakter >='A' and
karakter >='Z'
'a' Salah Benar Salah
'M' Benar Benar Benar

72
'8' Salah Benar Salah
'*' Salah Benar salah

Contoh berikut menunjukkan skrip yang dapat digunakan untuk mengindikasikan jenis
karakter:
Berkas : identifikasi.py

# pengujian jenis karakter

print ('Pengujian jenis karakter')


print ('-----------------------------')

karakter = input ('Karakter = ' )

hurufKapital = karakter >= 'A ' and karakter <= ' Z '
hurufKecil= karakter >= 'a' and karakter <= 'z'
angka = karakter >= '0' and karakter <= '9'

print ('huruf kapital? ' , hurufKapital)


print (' hurufKecil? ', hurufKecil)
print (' Angka? ', angka)

Gunakanlah pernyataan berikut:


hurufKapital = karakter >= 'A ' and karakter <= ' Z '
hurufKecil= karakter >= 'a' and karakter <= 'z'
angka = karakter >= '0' and karakter <= '9'

Hasilnya akan menjadi seperti berikut:


• hurufKapital akan bernilai true hanya kalau karakter berisi huruf kapital,

• hurufKecil akan bernilai true hanya kalau karakter berisi huruf kecil,

• angka akan bernilai true hanya kalau karakter berisi huruf angka.
Empat contoh hasil pengujian skrip identifikasi.py diperlihatkan berikut ini.
C:\LatPython>python identifikasi.py
Pengujian jenis karakter
Karakter = A
Huruf kapital? True
Huruf kecil? False

73
Angka? False
C:\LatPython>

C: \LatPython>python identifikasi.py
Pengujian jenis karakter
Karakter = b
Huruf kapital? False
Huruf kecil? True
Angka? False
C: \LatPython>

C:\Latpython>python identifikasi.py
Pengujian jenis karakter
Karakter = 8
Huruf kapital? False
Huruf kecil? False
Angka? True
C:\Lat Pyhon>

C:\LatPython>python identifikasi.py
pengujian jenis karakter
Karakter = +
Huruf kapital? False
Huruf kecil ? False
Angka? False
C: \LatPython>

Sekadar sebagai informasi, perhatikan pernyataan ini:


hurufKapital = karakter >= 'A' and karakter <= 'Z';

Pernyataan di atas dapat diganti dengan pernyataan berikut:


hurufKapital = karakter.isupper ()

Dengan cara serupa, pernyataan berikut:


hurufKecil = karakter >= 'a' and karakter <= 'z';

Dapat diganti menjadi pernyatan berikut:


hurufKecil = karakter.islower ()

Kemudian, pernyataan di bawah ini:

74
angka = karakter > '0' and karakter < '9';

Dapat diganti menjadi pernyataan berikut:


Angka = karakter.isdigit ()
Penggunaan isupper(),islower(),dan isdigit() ditunjukkan pada skrip berikut:
Berkas : identifikasi2.py
#Pengujian jenis karakter
# Versi 2
Print ('Pengujian jenis karakter')
print ('------------------------')
karakter = input ('Karakter = ')
hurufKapital = karakter.isupper ()
hurufKecil = karakter. islower ()
angka = karakter.isdigit ()

print ('Huruf kapital? ', hurufKapital)


print ('Huruf kecil? ', hurufKecil)
print ('Angka? ', angka)

Akhir Berkas

4.5.2 Operator Logika "Atau"


Operator logika "atau" digunakan dengan bentuk seperti berikut:

operan1 or operan2

Dalam hal ini, baik operan1 maupun operan2 dapat berupa apa saja yang bernilai True atau
False, Hasilnya berupa True kalau terdapat operan bernilai True. Dengan perkataan lain,
hasilnya hanya False kalau kedua operan bernilai False. Tabel kebenaran untuk semua
kemungkinan nilai operan dan nilai yang dihasilkan oleh operasi logika atau" dapat dilihat pada
Tabel 4.5.

Tabel 4.5 Tabel kebenaran operasi dengan or


Operan1 Operan2 Operan1 and Operan2
False False False
False True True
True False True
True True True

75
Contoh penggunaan operator logika "atau" dapat dilihat pada persoalan berikut.
Contoh - Validasi pilihan
Pilihan yang valid dalam suatu menu ditunjukkan seperti berikut.
Menu Pilihan
[K] Soto Kudus
[P] Nasi Pecel
[R] Nasi Rawon
[Q] Keluar

Ekspresi berikut menunjukkan cara untuk mengetahui pilihan yang diberikan valid atau
tidak:
pilihan == 'K' or pilihan == 'P' or \
pilihan == 'R' or pilihan 'Q'
Tanda \ sesudah or menyatakan bahwa baris ini masih mempunyai
kelanjutan pada baris berikutnya.
Ekspresi ini menghasilkan benar hanya kalau pilihan berisi 'K', 'P', 'R', atau 'Q'

4.6 Evaluasi Hubung Singkat


Evaluasi hubung singkat dilakukan Python pada ekspresi yang mengandung and ataupun or.
Pada pengujian ekspresi yang mengandung and, apabila ekspresi yang berada di kiri and bernilai
False , Python tidak akan mengevaluasi ekspresi yang berada di kanan and. Dengan mengetahui

nilai salah di bagian kiri and, hasil and pasti bernilai False sehingga Python tidak perlu menguji
ekspresi di kanan and Gambar 4.2 menunjukkan evaluasi hubung singkat pada and.

76
Kondisi1
dievaluasi

benar benar
Kond Kondisi2 Kond
isi1? di isi2?
evaluasi
salah salah

Hasil:
Hasil : benar
salah

Gambar 4.2 Evaluasi hubung singkat pada kondisit and kondisi 2

Hal serupa berlaku untuk or. Jika bagian kiri or bernilai True , sudah dipastikan bahwa ekspresi
dengan or menghasilkan True . Oleh karena itu, Python tidak perlu mengevaluasi kondisi di kanan
or. Informasi hubung singkat pada evaluasi and dan or perlu dipaham dengan baik agar tidak

terjadi salah persepsi. Contoh diperlihatkan pada skrip berikut:


Berkas : hubungsingkat.py

#Contoh untuk memperlihatkan efek hubung singkat


def bilPositif(y):
print ('bilPositif() dijalankan')
return y < O
print('Efek hubung singkat')
print ('------------------------')
# --- Tes pertama
x =5
y=1
print ('\nx =', x, ', y =', y)
logika = (x = = 4) and bilPositif (y)
print ('logika = ', logika)
# --- Tes kedua
x =5
y = -1

77
print ('\nx =', x, ', y =', y)
logika = (x = = 5) and bilPositif (y)
print ('logika = ', logika)

Akhir berkas

Hasil eksekusi skrip apat dilihat pada halaman selanjutnya seperti berikut:
C:\LatPython>python hubungsingkat.py
efek hubung singkat
x=5,y=1
logika = False
x = 5, y = -1
bilPositif () dijalankan
logika = True
C:\Lat Python>

Hasil di atas menunjukkan perbedaan ketika logika bernilai True dan False. Perhatikan bahwa
hanya pada saat logika bernilai True , terdapat tulisan "bilpositif() dijalankan". Hal ini disebabkan
pada saat ekspresi x = = 4 dieksekusi, hasilnya False . Akibatnya,bilpositif() yang terletak di kanan
and tidak dijalankan.

4.7 Cara Mengubah Nilai Logika Menjadi Informasi


Nilai logika, walaupun hanya berupa benar atau salah, menjadi dasar untuk penyajian
informasi yang berguna bagi manusia. Supaya lebih informatif, diperlukan mekanisme untuk
mengubah nilai logika menjadi keterangan yang mudah dipahami oleh manusia. Untuk keperluan
itu, Python menyediakan pernyataan if dan switch yang dikenal sebagai pernyataan seleksi. Kedua
pernyataan ini dibahas pada Bab 5. Sebagai alternatif dari kedua pernyataan tersebut, terdapat
operator berkondisi. Operator ini dapat digunakan untuk mengubah nilai True atau False menjadi
keterangan yang lebih informatif. Penggunaanya seperti berikut:

eksprA if kondisi else eksprB

Pada contoh ini, hasil ekspresi berupa eksprA sekiranya kondisi bernilai True . Sekiranya
kondisi bernilai False , hasil ekspresi berupa eksprB.

78
4.8 Penyelesaian Masalah dengan Tipe Logika
Contoh permasalahan yang memerlukan tipe logika dibahas berikut ini.
Contoh - Penentuan bilangan genap atau ganjil
Buatlah skrip yang menentukan suatu bilangan bulat yang dimasukkan dari papan-ketik
sebagai bilangan ganjil atau bukan. Dalam hal ini, tampilkan
Ganjil? True
untuk bilangan ganjil atau
Ganjil? False

Solusi:
Penentuan bilangan ganjil didasarkan fakta bahwa bilangan tidak habis dibagi dengan 2. Hal
ini dapat diwujudkan dengan menggunakan operator modulus (%). Jika bilangan yang akan diuji
bernama bilangan, ekspresi
Bilangan % 2
menghasilkan 1 kalau bilangan adalah bilangan ganjil.
Berdasarkan hal ini, dapat dibuat skrip seperti berikut:
Berkas : ujiganjil.py

#Pengujian bilangan sebagai genap atau ganjil


# dinyatakan dengan nilai logika

print ("Penentuan bilangan ganjil atau bukan")


bilangan = int (input('Bilangan bulat = '))
ganjil = (bilangan % 2) == 1
print ('Ganjil? ', ganjil)

Akhir berkas

Dua contoh hasil pengujian skrip dapat dilihat berikut ini:

C:\LatPython>python ujiganjil.py
Penentuan bilangan ganjil atau bukan
Bilangan bulat = 5

79
Ganjil? True

C:\LatPython>

C: \LatPython>python ujiganjil.py
Penentuan bilangan ganjil atau bukan
Bilangan bulat = 4
Ganjil? False

C:\LatPython>

RANGKUMAN

1. Tujuan penggunaan metode pemrograman terstruktur adalah untuk memungkinkan


perancangan dan penyusunan program dengan cara yang sistematis dan terorganisasi
sehingga akan meningkatkan kejelasan dan kualitas memperbaiki waktu pengembangan
program.
2. Untuk membantu pembuatan program yang terstruktur dengan baik,setiap modul perlu
disusun atas sejumlah grup pernyataan yang dinamakan struktur logika atau struktur
kontrol.Secara prinsip.struktur kontrol yang dimaksud ini terdiri atas tiga bagian berikut:
Struktur sekuensial, Struktur seleksi, Struktur perulangan.
3. Nilai yang dihasilkan ini menentukan alur eksekusi pernyataan-pernyataan. Pada struktur
seleksi, hasil ekspresi Boolean menentukan suatu pernyataan dieksekusi atau tidak. Pada
struktur perulangan, ekspresi tersebut menentukan suatu pernyataan akan diulang atau tidak.
Oleh karena itu, pemahaman yang kuat terhadap tipe logika sangat banyak membantu dalam
mempermudah penyelesaian suatu masalah.
4. Operator relasional atau operator pembanding adalah opera berguna untuk melakukan
pembandingan dan hasilnya berupa benar atau salah.

DAFTAR PUSTAKA

1. Hubbar, J. R. (1998) Theory and Problems of Fundamentals of Computing whit c++, New York:
The McGrau-Hill Companies, Ins.

80
2. Kadir, A. (2016) C++ Programing A Practical Hansd-On for Self Learning, Malacca:Utem Press.
3. Kadir, A. (2017) Dasar Logika Pemprograman Komputer Panduan Berbasis Flowchart
menggunakan Flogorithms, Jakarta : Elex Media Komputindo.
4. Knuth, D. E. (2018) The Art of Computer Programming. Addison-Wesley Published Company.
5. Venit, S., and Drake, E. (2007) Extended Prolide to Programming Comcepts & Design, Boston:
Pearson Education, Inc.

LATIHAN

1. Ubahlah ekspresi matematika berikut kedalam ekspresi python : 70 ≤ nilai < 80 ?


2. Untuk membantu pembuatan program yang terstruktur dengan baik, setiap modul perlu
disusun atas sejumlah grup pernyataan yang dinamakan struktur logika atau struktur kontrol.
Secara prinsip, struktur kontrol yang dimaksud ini terdiri dari struktur sekuensial, seleksi dan
perulangan, buatlah program yang isinya menampilkan struktur sekuensial, struktur seleksi
dan struktur perulangan
3. Dari soal nomor 3 diatas, diskusikan perbedaan struktur logika tersebut dilihat dari alur
program pada saat di implementasikan.

81
BAB 5
PENYELESAIAN MASALAH DENGAN STRUKTUR SEKUENSIAL DAN SELEKSI

CAPAIAN PEMBELAJARAN

• Mahasiswa mampu membuat suatu pernyataan dalam menyelesaikan masalah dengan


struktur sekuensial dan seleksi.
• Mahasiswa mampu mengimplementasikan pernyataan struktur sekuensial dan seleksi
dalam Bahasa pemrograman python.
• Mahasiswa mampu menganalisis diagram alir pada struktur sekuensial dan seleksi, lalu
mengimplementasikan keberbagai bahasa pemrograman.

MATERI

5.1 Konsep Dasar pada Struktur Sekuensial


Struktur sekuensial menyatakan beberapa pernyataan yang dikerjakan secara berurutan.
Gambar 5.1 menunjukkan contoh struktur sekuensial yang mengandung tiga pernyataan.
Perintah 1 dikerjakan terlebih dahulu. Setelah selesai, Pernyataan 2 dieksekusi. Terakhir,
Pernyataan 3 diproses.

Pernyataan 1

Pernyataan 2

Pernyataan 3

Gambar 5.1 Struktur sekuensial

Berikut ini adalah contoh menggunakan struktur sekuensial:


Berkas : masukan.py
Data = input ('Berapa usia Anda? ')

82
Usia = int (data)
print ('Usia Anda sebentar lagi menjadi', usia + 1)
Akhir berkas

Berikut menyatakan urutan eksekusi pernyataan-pernyataan pada skrip di atas:


1. data = Input( ' Berapa Usia Anda? ' )
2. usia = Int (Data)
3. print( ' Usia Anda Sebentar Lagi Menjadi' , Usia + 1)

Pernyataan pertama digunakan untuk memasukkan data dari papan-ketik. Pernyataan kedua
digunakan untuk mengonversi data string di data menjadi data bilangan di usia. Setelah itu,
pernyataan ketiga dijalankan. Pernyataan ketiga ini digunakan untuk menyajikan hasil ekspresi
usia + 1.
Urutan pernyataan-pernyataan pada struktur sekuensial di depan tidak boleh dipertukarkan.
Penukaran urutan akan membuat kegunaan skrip menjadi tidak seperti semestinya.
Akan tetapi, pada kasus tertentu, urutan pernyataan dalam struktur sekuensial boleh
dipertukarkan. Sebagai contoh, perhatikan deretan pernyataan berikut:
a =5
b=6
c=1
d = math.sqrt ( (b * b - 4 * a * c) / (2 * a))
Pada contoh ini, urutan ketiga pernyataan pertama bersifat bebas.Penulisan seperti berikut
boleh saja karena tidak akan mengubah hasil pada d:
b=6
a =5
c=1

5.2 Contoh Penyelesaian Masalah dengan Hanya Struktur Sekuensial


Beberapa persoalan yang cukup diselesaikan menggunakan sekuensial dibahas berikut ini.
Contoh - Konversi mata uang
Seringkali, diperlukan untuk mengonversi dari suatu mata uang ke mata uang lain. Buatlah
skrip yang dapat digunakan untuk memasukkan nilai mata uang dalam rupiah dan menghasilkan
keluaran jumlah dalam dolar Amerika Serikat.

83
Solusi:
Pertama-tama, perlu dicari hubungan antara nilai dalam rupiah ke dolar. Sebagai contoh, $1
= 14.500 rupiah. Jika jumlah rupiah adalah rp dan dolar adalah nilai dalam dolar Amerika Serikat,
hubungannya seperti berikut:
dolar = rp/14500

Setelah rumus ini diketahui, skrip dapat ditulis seperti berikut:


Berkas : dolar.py
# Konversi rupiah ke dolar US

print ('Konversi rupiah ke dolar US')


print ('--------------------------------- ')
rp = int (input ('Rupiah = '))
# Rupiah ke dolar
dolar = rp/ 14500

# Tampilkan hasilnya
print ('Dolar =', dolar)
Akhir berkas

Contoh pengujian skrip dapat dilihat berikut ini:


C:\LatPython>python dolar.py
Konversi rupiah ke dolar US
Rupiah = 1000000
Dolar = 68.96551724137932
C:\LatPython>

5.3 Konsep Dasar pada Struktur Seleksi


Struktur seleksi atau kadang dinamakan struktur keputusan, struktur berkondisi, atau
struktur pengambilan keputusan adalah struktur logika dalam skrip yang menentukan suatu
perintah dieksekusi atau tidak bergantung pada suatu kondisi atau memilih satu perintah dari
sejumlah perintah berdasarkan suatu kondisi. Secara prinsip, struktur ini dapat dibagi menjadi
tiga jenis, yaitu strukturseleksi satu alternatif, struktur seleksi dua alternatif, dan struktur seleksi
banyak alternatif.

84
Struktur seleksi satu alternatif terdiri atas satu bagian yang akan dieksekusi hanya kalau
kondisi penentu keputusan terpenuhi. Dua kemungkinan pada struktur seleksi satu alternatif
diperlihatkan pada Gambar 5.2. Gambar sebelah kiri menyatakan pengeksekusi pada suatu
bagian perintah hanya dilakukan kalau kondisi penentu keputusan bernilai benar. Adapun
gambar sebelah kanan menyatakan pengeksekusian pada suatu bagian perintah hanya dilakukan
justru kalau kondisi penentu keputusan bernilai salah.

Kon
benar Kon benar
disi disi?
?

salah
salah

Gambar 5.2 Kemungkinan penerapan pada struktur seleksi satu alternative

Struktur seleksi dua alternatif terdiri atas dua bagian, tetapi hanya satu bagian yang akan
dieksekusi, bergantung pada kondisi penentu keputusan. Contoh struktur seperti ini ditunjukkan
pada Gambar 5.5. Pada contoh ini, A dijalankan hanya kalau kondisi bernilai benar. Sebaliknya,
ketika kondisi bernilai salah, B yang akan dijalankan.

85
salah
Kondisi?

Benar
A B

Gambar 5.3 Struktur seleksi dua alternative

Struktur seleksi banyak alternatif melibatkan lebih dari dua alternatif,Struktur seperti ini
terkadang dinyatakan dalam bentuk seperti terlihat pada Gambar 5.6. Namun, umumnya bentuk
ini dinyatakan dalam bentut struktur seleksi dua alternatif yang bertingkat, seperti Gambar 5.7

Nilai ?

1 2 3

A B C

Gambar 5.4 Struktur seleksi banyak alternative

86
Benar A
Nilai
==1?

salah

Nilai Benar
B
==2?

salah

Nilai == Benar
C
3?

salah

Gambar 5.5 Struktur seleksi banyak alternatif model kedua

5.4 Struktur Seleksi Satu Alternatif dengan Pernyataan if


Struktur seleksi satu alternatif dapat dipecahkan dengan menggunakan pernyataan if.
Susunannya seperti berikut:

If kondisi :
Pernyataan

Atau

If kondisi :
Pernyataan1
Pernyataan2
...
PernyataanN

87
Dalam hal ini,
• Kondisi digunakan untuk menentukan pengambilan keputusan;
• Bagian pernyataan atau pernyataan1 hingga pernyataanN dijalankan hanya kalau kondisi
bernilai benar.
Diagram alir pernyataan if dapat dilihat pada Gambar 5.8.

Kondisi? salah

Benar
Pernyataan

Gambar 5.6 Diagram alir pernyataan if sederhana

Dua hal penting yang perlu diperhatikan ketika menggunakan if adalah indentasi (penjorokan
ke kanan). Indentasi terhadap merupakan suatu pernyataan yang bergantung pada if keharusan.
Indentasi biasanya dilakukan dengan menggunakan empat karakter spasi. Berikut ini contoh
penggunaan if dengan struktur seperti yang diperlihatkan pada Gambar 5.8 dijelaskan di sini.
Contoh - Bilangan terbesar di antara dua bilangan
Dua bilangan dinyatakan dengan bilanganX dan bilanganY.Bagaimana cara mendapatkan
bilangan terbesar di antara kedua bilangan tersebut?
Solusi:
Bilangan terbesar di antara kedua bilangan tersebut dapat diperoleh dengan menggunakan
psedukode berikut:
Terbesar bilanganX
JIKA bilanganY > terbesar
terbesar bilanganY
AKHIR-JIKA

88
Sebagai contoh, bilanganX berisi 6 dan bilanganY berisi 8. Mula-mula, terbesar diisi dengan 6.
Kemudian, pernyataan JIKA membuat kondisi bilanganY > terbesar bernilai benar. Akibatnya,
terbesar diisi dengan 8. Terbukti bahwa terbesar berisi bilangan terbesar antara 6 dan 8.
Bagaimana halnya kalau bilanganX berisi 8 dan bilanganY berisi 6? Mula-mula, terbesar diisi
dengan 8. Lalu, kondisi bilanganY > terbesar pada pernyataan JIKA bernilai salah. Akibatnya,
terbesar bilanganY tidak pernah dieksekusi. Namun, terlihat bahwa terbesar berisi bilangan
terbesar antara 6 dan 8.
Penyelesaian untuk mendapatkan bilangan terbesar di antara dua bilangan dapat dituangkan
ke dalam skrip Python seperti berikut:
Berkas : terbesar.py
# Penentuan bilangan terbesar
# di antara dua bilangan
ptint ('Penentuan bilangan terbesar')
print ('di antara dua bilangan')
Print ('---------------------------------')

BilanganX = int (input ('Bllangan pertama = '))


bilanganY = int (input ('Bilangan kedua = '))

# Penentuan bilangan terbesar


Terbesar = bilanganX
if bilanganY > terbesar:
terbesar = bilanganY

# Tampilkan hasilnya
print ('Bilangan terbesar =', terbesar)
Akhir berkas

Dua contoh hasil pengujian skrip dapat dilihat berikut ini:


C:\LatPython>python terbesar.py
Penentuan bilangan terbesar di antara dua bilangan
Bilangan pertama = 76
Bilangan kedua = 43
Bilangan terbesar = 76

C\LatPython>

C:\LatPython>python terbesar.py
Penentuan bilangan terbesar di antara dua bilangan

89
Bilangan pertama = 43
Bilangan kedua = 78
Bilangan terbesar = 76

C\LatPython>

5.5 Struktur Seleksi Dua Alternatif dengan Pernyataan if


Bentuk if untuk menangani seleksi dua alternatif berupa:

If kondisi :
Pernyataan_1
Else :
Pernyataan_2

Pada bentuk ini, pernyataan_1 dijalankan kalau kondisi bernilai benar. Adapun pernyataan_2
hanya dieksekusi untuk keadaan sebaliknya,yaitu saat kondisi bernilai salah. Diagram alir
pernyataan if..else ditunjukkan pada Gambar 5.7.

salah
Kondisi?

Benar

Pernyataan_1 Pernyataan _2

Gambar 5.7 Pernyataan if.else

Bagian pada if maupun else dapat berupa satu pernyataan atau lebih. Beberapa contoh
penggunaan if..else dijelaskan di sini.

90
Contoh -Bilangan terbesar di antara dua bilangan
Contoh ini merupakan cara menyelesaikan penentuan bilangan terbesar diantara dua
bilangan dengan menggunakan if..else.
Berkas : terbesar2.py
# Penentuan bilangan terbesar
# di antara dua bilangan
# menggunakan if-else
print ('Penentuan bilangan terbesar')
print ('di antara dua bilangan')
print ('---------------------------')
bilanganX = int (input ('Bilangan pertama = '))
bilanganY = int (input ('Bilangan kedua = '))

# Penentuan bilangan terbesar


if bilanganX > bilanganY:
terbesar = bilanganX
else
terbesar =bilanganY

# Tampilkan hasilnya
print ('Bilangan terbesar =', terbesar))

Akhir berkas

Pada skrip ini,


if bilanganX > bilanganY:
terbesar = bilanganX
else
terbesar =bilanganY

Akan membuat terbesar diisi dengan bilanganX sekiranya bilanganX bernilai lebih besar
daripada bilanganY. Untuk keadaan sebaliknya, bilanganY berarti lebih besar daripada bilanganX,
tetapi juga bisa sama. Pada keadaan seperti ini, terbesar diisi dengan bilanganY.
Dua contoh hasil pengujian skrip dapat dilihat berikut ini:

C:\LatPython>python terbesar.py
Penentuan bilangan terbesar di antara dua bilangan
Bilangan pertama = 76

91
Bilangan kedua = 43
Bilangan terbesar = 76

C\LatPython>

C:\LatPython>python terbesar.py
Penentuan bilangan terbesar di antara dua bilangan
Bilangan pertama = 43
Bilangan kedua = 78
Bilangan terbesar = 76

C\LatPython>

5.6 Struktur Seleksi Dua Alternatif dengan Ekspresi if..else


Python menyediakan ekspresi if..else dengan bentuk seperti berikut:

Nilai_1 if kondisi else nilai_2

Pada penggunaan ekspresi ini, kondisi berupa ekspresi Boolean. Adapun


hasil ekspresi ini berupa:
nilai_1 sekiranya kondisi bernilai benar;
nilai_2 sekiranya kondisi bernilai salah.

Skrip berikut menunjukkan contoh penggunaan ekspresi if..else untuk menentukan suatu
bilangan bulat berupa bilangan genap atau bilangan ganjil:
Berkas : genap3.py
# Penentuan bilangan genap atau ganjil
# menggunakan ekspresi if-else

Print (' Penentuan bilangan genap/ganjil ')


print('-----------------------------------------')
bilangan = int (input ('bilangan = '))
# Penentuan bilangan genap atau ganjil
Kategori = 'bilangan genap' if bilangan 2 % == 0 \
else 'bilangan ganjil'
print ('Bilangan', bilangan, 'merupakan', kategori)
Akhir berkas

92
Dua contoh hasil pengujian skrip dapat dilihat berikut ini:
C:\LatPython > python genap3. py
Penentuan bilangan genap/ganjil
Bilangan = 24
Bilangan 24 merapakan bilangan genap

C:\LatPython>

C:\LatPython > python genap3. py


Penentuan bilangan genap/ganjil
Bilangan = 23
Bilangan 24 merapakan bilangan ganjil

C:\LatPython>

5.7 Struktur Seleksi Banyak Alternatif dengan Pernyataan if..elif


Struktur seleksi banyak alternatif dapat diselesaikan menggunakan pernyataan if bertingkat.
Susunannya seperti berikut:

if kondisi1:
...
else:
if kondisi2:
...
else:
if kondisi3:
...
else :
...

Sebagai alternatif, pernyataan if..elif bisa digunakan. Bentuknya seperti berikut:

if kondisi1:
...
elif kondisi2:
...
elif kondisi3:
...
else :
...

93
Contoh -Penentuan nama hari
Di komputer, nama hari biasa dikodekan dengan angka 0 hingga 6. Buatlah skrip yang
meminta kode hari dimasukkan dari papan-ketik dan kemudian menampilkan nama hari sesuai
dengan kode tersebut.Berikan pesan "Kode salah" sekiranya angka yang dimasukkan tidak
berupa angka 0 hingga 6. Bantuan: 0 = Minggu, 1 = Senin, 2 = Selasa, dst.
Solusi:
Penyelesaiannya dilakukan dengan menggunakan if bertingkat seperti berikut:
Berkas : hari.py
# penentuan nama hari
print ('Penentuan nama hari')
print (' 0 = Minggu 1 = Senin ')
print (' 2 = Selasa 3 = Rabu ')
print (' 4 = Kamis 5 = Jumat ')
print (' 6 = Sabtu')

print ('-------------------------------')

kodeHari =int (input ('Kode hari = '))

# Penentuan nama hari


if kodeHari = = 0:
print ('Minggu')
elif kodeHari = =1:
print ('Senin')
elif kodeHari = = 2:
print ('Selasa')
elif kodelari = = 3:
print ('Rabu' ).
elif kodeHari = = 4:
print ('Kamis')
elif kodeHari = = 5:
print ('Jumat')
elif kodeHari = = 6:
print ('Sabtu )
else:
print ('Kode salah')

Akhir berkas

94
Dua contoh hasil pengujian skrip dapat dilihat berikut ini:
C:\LatPython>python hari.py
Penentuan nama hari
0 = minggu 1 = senin
2 = selasa 3 = rabu
4 = kamis 5 = jum’at
6 = sabtu
Kode hari = 4
Kamis
C:\Latpython>
C:\LatPython>python hari.py
Penentuan nama hari
0 = minggu 1 = senin
2 = selasa 3 = rabu
4 = kamis 5 = jum’at
6 = sabtu
Kode hari = 0
Minggu
C:\Latpython

5.8 Berbagai Penyelesaian Masalah dengan Struktur Seleksi


Contoh permasalahan yang memerlukan struktur seleksi dibahas di sini.
Contoh - Penentuan bilangan terkecil di antara tiga bilangan
Terdapat tiga data yang dimasukkan melalui papan-ketik. Bagaimana cara mendapatkan
bilangan terkecil di antara tiga bilangan tersebut?
Solusi:
Terdapat dua cara yang bisa digunakan untuk mendapatkan bilangan terkecil di antara tiga
bilangan. Pertama-tama, bilangan tersebut. dinyatakan dengan bilX, bilY, dan billZ.
Cara pertama:
Pseudokode berikut menjelaskan caranya.
terkecil  bilX
JIKA bilY < terkecil
terkecil  bilY
AKHIR-JIKA
JIKA bilz < terkecil
terkecil  billZ
AKHIR-JIKA

95
Perwujudan dalam bentuk skrip adalah seperti berikut:
Berkas : terkecil.py
# Penentuan bilangan terkecil
# di antaratiga bilangan
# Versi 1

print('Penentuan bilangan terkecil')


print ('di antara tiga bilangan)
print ('---------------------------------')
bilX = int (input ('Bilangan pertama = '))
bilY = int(input ('Bilangan kedua = '))
bil2 = int(input ('Bilangan ketiga = '))

# Penentuan bilangan terkecil


terkecil = bilX
if bilY < terkecil :
terkecil = bilY

if bilZ < terkecil:


terkecil = bilZ
# Tampilkan hasilnya
print ('Bilangan terkecil = ', terkecíl)

Akhir berkas

Contoh hasil pengujian skrip dapat dilihat berikut ini:


C :\LatPython>Python terkecil.py
Penentuan bilangan terkecil di antara tiga bilangan
Bilangan pertama = 45
Bilangan kedua = 77
Bilangan ketiga = 33
Bilangan terkecil = 33

C: \LatPython>

96
RANGKUMAN

1. Struktur sekuensial menyatakan beberapa pernyataan yang dikerjakan secara berurutan.


Contoh struktur sekuensial yang mengandung tiga pernyataan. Perintah 1 dikerjakan terlebih
dahulu. Setelah selesai, Pernyataan 2 dieksekusi. Terakhir, Pernyataan 3 diproses.
2. Struktur seleksi atau kadang dinamakan struktur keputusan, struktur berkondisi, atau struktur
pengambilan keputusan adalah struktur logika dalam skrip yang menentukan suatu perintah
dieksekusi atau tidak bergantung pada suatu kondisi atau memilih satu perintah dari sejumlah
perintah berdasarkan suatu kondisi. Secara prinsip, struktur ini dapat dibagi menjadi tiga jenis,
yaitu strukturseleksi satu alternatif, struktur seleksi dua alternatif, dan struktur seleksi banyak
alternatif.

DAFTAR PUSTAKA

1. Kadir, A. (2019).Logika Pemprograman PYTHON. Jakarta: Gramedia


2. Halterman, L.R (2011) Learning to Program with Python, [Online]
3. Kadir, A. (2017) Dasar Logika Pemprograman Komputer Panduan Berbasis Flowchart
menggunakan Flogorithms, Jakarta : Elex Media Komputindo.
4. Kadir, A. (2018) Dasar Pemprograman Python 3, Yogyakarta: Penerbit Andi.
5. Kadir, A. dan Triwahyuni, T. C. (2014) Pengantar Teknologi Informasi Edisi Revisi, Yogyakarta:
Penerbit Andi.

LATIHAN

1. Apa keluaran deretan perintah berikut jika bil merujuk ke bilangan 5?


if bila <7:

97
print ‘Alfa’
print ‘Romeo’

print ‘Bravo’
2. Ubahlah kode berikut dengan menggunakan if…else:
Lulus = False
If nilai >= 60:
Lulus = True
3. Buatlah skrip yang meminta 3 bilangan bulat yang berbedadimasukkan. Kemudian, skrip
memastikan bahwa ketiga bilangan yang dimasukkan tidak sama, kalua ada yang sama , skrip
melaporkan bahwa ada bilangan yang bernilai sama?
4. Perhatikan kode beriku:
If kodeHari == 0 or kodeHari == 1:
Print(‘Hore, Libur’)
Elif kodeHari == 2:
Print (Rasanya malas memulai kegiatan…’)
Print (‘Semangat !’
Elif kodeHari < 5:
Print (‘Semangat terus !’)
Elif kodeHari < 7:
Print (‘Siap-siap liburan !’)

Sebutkan kode tersebut untuk nilai kodeHari seperti kode 2 dan 6?


5. Buatlah skrip yang meminta sebuah karakter dimasukkan dalam papan ketik dan kemudian
dapat dilaporkan jenis karakter tersebut berupa hurup kecil; hurup capital; angka; bukan
hurup maupun angka. Sebagai contoh jika A dimasukkan, skrip memberi pesan berupa “A
dalah hurup capital”. Skrip untuk penyelesaian masalah ini adalah seperti berikut?

98
BAB 6
PENYELESAIAN MASALAH DENGAN STRUKTUR PERULANGAN

CAPAIAN PEMBELAJARAN

• Mahasiswa dapat membangun cara membuat struktur perulangan pernyataan while, for,
dan break dalam Bahasa pemrograman.
• Mahasiswa mampu menjelaskan cara kerja perulangan pernyataan while, for, dan break
dalam Bahasa pemrograman dalam pemrograman python.

MATERI

6.1 Peranan Perulangan


Tiga struktur kontol skrip telah diperkenalkan, yaitu struktur sekuensial seleksi, dan
perulangan. Terkait dengan perulangan, terdapat beberapa istilah yang perly dibahas di sini, yaitu
kalang (loop), kalang berhingga, dan kalang tidak berhingga. Istilah kalang berarti perulangan
atau suatu struktur yang memungkinkan suatu blok pernyataan diulang beberapa kali. Setiap kali
blok pernyataan dieksekusi dihitung sebagai satu iterasi. Analogi dengan hal ini, satu putaran
pada kincir ria menyatakan satu iterasi. Blok pernyataan yang diulang dalam suatu perulangan
dinamakan tubuh kalang. Perulangan ditentukan oleh ekspresi Boolean. Jika ekspresi ini bernilai
benar, tubuh kalang akan diproses. Sebaliknya, nilai salah membuat kalang berhenti. Kalang
berhingga berarti perulangan yang membuat bagian yang diulang berlangsung dalam jumlah
terbatas. Kalang tidak berhingga menyatakan perulangan yang tidak pernah berhenti. Keadaan
seperti ini terjadi karena sesuatu kesalahan yang membuat kondisi penghenti perulangan tidak
pernah tercapai. Dalam membuat skrip, keadaan seperti ini harus dihindari. Dalam beberapa
permasalahan, struktur perulangan diperlukan. Sebagai contoh, dikehendaki untuk menuliskan
100 tulisan "Python".

Tanpa menggunakan perulangan, pernyataan seperti berikut harus ditulis 100 kali:
print ('Python")
print (' Python')

99
print (' Fython')
print (' Python")
Tentu saja, cara seperti ini tidak praktis. Dengan menggunakan salah satu perulangan, yaitu
pernyataan for penulisan perintah menjadi sangat sederhana. Perintahnya berupa:
for nomor in range (0, 100)
Print ('Python')

Selain for, Python mendukung pernyataan penyusun perulangan berupa while.

6.2 Pernyataan While


Pernyataan whiledisediakan python untuk menangani perulangan dengan kondisi pengujian
dilakukan di depan. Bentuk penggunaannya seperti berikut:
While kondisi:
Pernyataan_1
Pernyataan_2
...
Pernyataan_N

Pada struktur ini, pengulangan terhadap bagian pernyataan_1 hingga pernyataan_N


dilakukan selama kondisi di While bernilai benar (true).
Contoh penerapan while 1
Berkas : while 1sd5.py
# penyajian angka 1
# menggunakan while

Bilangan = 1
While bilangan <= 5:
Print (bilangan)
Bilangan = bilangan + 1

Akhir berkas
C:\LatPyhton>Pyhton while1sd5.py
1
2
3
4
5

100
C: \LatPhyton>

Skrip ini melibatkan satu variabel yang berkedudukan sebagai variabel pencacah, yaitu
bilangan. Disebut variabel pencacah karena digunakan untuk mencacah satu, dua, tiga, dan
seterusnya. Pencacah tidak harus bernilai naik untuk setiap iterasi (satu pemrosesan di dalam
struktur perulangan), tetapi bisa menurun seperti 8, 7,6,5, dan seterusnya. 3 kunci utama pada
setiap perulangan yang menggunakan pencacah berupa bagian inisialisasi pencacah, bagian
pengujian batas pencacah, dan bagian naik pencacah. Pada script di depan bagian inisialisasi
pencacah berupa pernyataan yang digunakan untuk memberikan nilai awal bagi pencacah. Dalam
hal ini, pernyataannya berupa:

Bilangan = 1

Bagian pengujian batas pencacah dilakukan untuk menentukan perulangan segera diakhiri
atau tidak titik pada sekrup di depan, bagian ini berupa:
Bilangan <= 5

Bagian penaik pencacah dilakukan untuk mengubah nilai pencacah pada sekrup di depan
bagian ini berupa pernyataan:
Bilangan = bilangan + 1

Pernyataan ini menaikkan isi variabel bilangan sebesar 1.


Proses perulangan yang terjadi dijabarkan sebagai berikut
1. Mula-mula, bilangan bernilai 1.
2. Pernyataan print ( bilangan ) dijalankan. Hasil di layar:1.
3. Pernyataan bilangan sama dengan bilangan + 1 dijalankan titik maka bilangan berisi 2.
4. Kondisi bilangan <=5 diuji. mengingat bilangan berisi dua, hasilnya benar titik maka,
perulangan tetap berlangsung.
5. Pernyataan print (bilangan) dijalankan titik hasil di layar: 2.

101
6. Pernyataan bilangan = bilangan + 1 di jalankan titik maka, bilangan berisi 3.
7. Kondisi bilangan <=5 di uji titik mengingat bilangan berisi 3, hasilnya benar titik maka,
perulangan tetap berlangsung.
8. Pernyataan print (bilangan) dijalankan hasil di layar:2.
9. Pernyataan bilangan sama dengan bilangan + 1 dijalankan titik maka, bilangan berisi 4.
10. Kondisi <=5 di uji titik mengingat bilangan berisi 4, hasilnya benar titik maka,
perulangan tetap berlangsung.
11. Pernyataan print (bilangan) dijalankan hasil di layar: 4.
12. Pernyataan bilangan sama dengan bilangan + 1 dijalankan titik maka, bilangan berisi 5.
13. Kondisi bilangan <=5 di uji titik mengingat bilangan berisi 5, hasilnya benar titik maka,
perulangan tetap berlangsung.
14. Pernyataan print bilangan dijalankan. Hasil di layar: 5.
15. Pernyataan bilangan sama dengan bilangan + 1 dijalankan titik maka, bilangan berisi 6.
16. Kondisi bilangan <=5 di uji titik mengingat bilangan berisi enam, hasilnya salah titik
maka, perulangan berakhir.

Berdasarkan langkah-langkah di atas, nilai yang ditampilkan di layar berupa 1, 2, 3, 4, dan


5.

a. Contoh penerapan while 2

Berkas : Whileganjil.py

# penyajian deret n bilangan ganjil


# menggunakan while

Print (‘ Deret N bilangan ganjil ‘)


Print (‘ ================= ‘)

Hitungan = 1
While hitungan <= n:
Print ( * hitungan – 1, end = ‘ ‘ )

102
Hitungan = hitungan + 1

Print () # pindah baris

Akhir berkas

Pada skrip ini perhatian pernyataan berikut:


Print (2 * hitungan – 1, end = ‘ ‘)

Pernyataaan di atas digunakan untuk menampilkan hasil ekspresi 2 * hitungan – 1. Adapun


argument end yang diisi dengan karakter spasi digunakan agar setelah print ( ) menampikan
argument pertama, karakter spasi ditambahkan sebagai pengganti pindah baris. Sebagiaman
diketahui, secara bawaan karakter pindah baris akan ditambahkan oleh print ( ) setelah
menampilkan semua argument.

Contoh hasil pengujian skrip berikut ;

C: \LatPyhton>Pyhton whileganjil.py
Deret N bilangan ganjil
= == == = == == = =
N=7
1 3 5 7 9 11 13

C: \LatPyhton>

Cara lain dilakukan dengan melalui pendekatan seperti berikut:

Masukkan n
Bilangan 1
ULANG SELAMA bilangan ≤ 2n – 1
Tampilkan bilangan
Bilangan bilangan + 2
AKHIR-ULANG.

103
b. perulangan yang tidak pernah berhenti
problem yang sering terjadi pada pernyataan while adalah perulangan yang tidak pernah
berhenti (infinite loop). hal-hal seperti ini disebabkan kondisi yang digunakan untuk
menghentikan perulangan selalu bernilai benar titik untuk mencegah kejadian seperti ini harus
dipastikan bahwa di dalam tubuh perulangan terdapat perintah yang membuat kondisi pada
perulangan bernilai false pada suatu saat.

Contoh skrip yang membuat perulangan yang tidak pernah berhenti.

Berkas : terusberulang.py

# contoh perulangan yang tidak pernah berhenti

Bilangan = 5
While bilangan >= 1:
Print (bilangan)

Bilangan = bilangan + 1

Akhir berkas

Penyebab perulangan yang tidak pernah berhenti pada skrip ini terletak pada kekeliruan
logika pada pernyatan berikut;

Bilangan = bilangan + 1

Pernyataan ini seharusnya ditulis menjadi:

Bilangan = bilangan – 1

Untuk menghentikan perulangan yang tidak pernah berhenti ketika skrip dijalankan, tombol
Ctrl+C perlu ditekan:

Traceback (most recent call last) :

104
File “terusberulang.py, line 5, in <module>
Print (bilangan)
keyboardInterrupt

c. pernyataan else pada while


pernyataan while dapat dilengkapi dengan pernyataan else yang diletakkan sesudah
pernyataan while. Dalam hal ini, pernyataan else dijalankan ketika kondisi bernilai false.
Contoh:

Berkas : elseWhile.py
# contoh else pada while

Bilangan = 1
While bilangan <= 5:
Print (bilangan)

Bilangan = bilangan + 1
else:
print (‘***’, bilangan,
‘- > pemberhentian perulangan’)

Akhir berkas

Perhatikan pernyataan berikiut pada skrip ini :


else:
print (‘***’, bilangan,
‘-> pemberhenti perulangan’)

Pernyataan yang terletak sesudah while digunakan untuk mengatur pernyataan print () ketika
kondisi bilangan <= 5 benilai false.
Hasil eksekusi skrip elsewhile.py
C: \LatPyhton>Pyhton elsewhile.py
1
2
3
4
5

105
*** 6 -> pemberhenti perulangan

C: \LatPyhton>

6.3 Pernyataan For


Pernyataan for juga bermanfaat untuk menangani perulangan titik bentuk pemakaiannya
seperti berikut:

For variable in senarai:


Pernyataan_1
...
Pernyataan_n

Dalam hal ini,


Variabel merupakan pernyataan variabel yang bertindak sebagai variabel penerima satu
nilai di senarai iterasi;
Senarai bertindak sebagai daftar nilai dengan setiap nilai akan diproses 1 per 1 per iterasi.

Umumnya, reng ( ) digunakan untuk membentuk nilai yang urut.

a. contoh penerapan for

Contoh 1 penampilan bilangan 1 hingga 5


Berkas : for1sd5.py
# penyajian angka 1 hingga 5
# menggunakan for

For bilangan in range (1, 6) :


Print (bilangan)

Akhir berkas

106
Pada skrip ini, range (1, 6) akan membentuk senarai yang berisi [ 1, 2, 3, 4, 5 ]. Perhatikan
bahwa 6 tidak termasuk. Pada iterasi pertama, bilangan bernilai 1. Pada iterasi kedua, bilangan
bernilai 2, dan seterusnya.
Berikut contoh hasil pengujian skrip ini:

C: \LatPyhton>python for1sd5.py
1
2
3
4
5

C: \LatPython>

Contoh 2 penampilan bilangan 5 hingga 1

Berkas : for5sd1.py

# penyajian angka 5 hingaa 1


# menggunakan for
For bilangan in range ( 5, 0, -1 ) :
Print ( bilangan )

Pasa skrip ini, range ( 5, 0, -1 ) adalah untuk membentuk senarai [ 5, 4, 3, 2, 1 ]. Seperti


contoh sebelumnya, pada contoh ini 0 tidak disertakan. Adapun -1 menyatakan angka penentu
penurunan nilai pada senarai.
Berikut adalah contoh hasil pengujian skrip ini:

C: \LatPyhton for5sd1 .py


5
4
3
2
1
C: \LatPyhton>

107
b. pernyataan else pada for
Pernyataan for dapat dilengkapi dengan pernyataan yang diletakkan sesudah pernyataan for.
Dalam hal ini pernyataan else dijalankan ketika kondisi for bernilai false.
Contoh:

Berkas ;:elsefor.py

# penggunaan for pada senarai

For huruf in [ ‘B’, ‘r’, ‘a’, ‘v’, ‘o’ ] :


Print ( huruf)
Else:
Print (’***’, huruf,
‘huruf terakhir yang diproses’)

Akhir berkas
Hasil pengujian skrip
C: \LatPyhton>Pyhton elsefor.py
B
r
a
v
o
*** o huruf terakhir yang diproses

C: \Latpyhton

6.4 Pernyataan Break


Pernyataan break berguna untuk mengakhiri perulangan.
Contoh break pada for:

Berkas : breakfor.py
# contoh untuk menunjukkan efek break
# pada for

For bilangan in range ( 1, 9 ) :

108
if bilangan = = 5 :
Break

Print (bilangan)
else:
print (‘*** Akhir for’ )

print( ‘*** selesai’ )


C: \Latpyhton>python breakfor .py
1
2
3
4
--- selesai

C: \Latpyhton>

Tampak bahwa bilangan terakhir yang tampilkan adalah 4. Hal ini disebabkan pada saat
bilangan bernilai 5, ekspresi bilangan == 5 pada pernyataan :

if bilangan == 5 :
break

Pernyataan tersebut bernilai benar. Akibatnya, perintah break dijalankan. Perintah inilah
yang membuat eksekusi terhadap for dihentikan. Dengan demikian, nilai 5 tidak pernah
ditampilkan. Hal yang menarik pula diperhatikan adalah bahwa pernyataan else pada for tidak
dijalankan akibat eksekusi pernyataan break.

6.5 Pernyataan Continue


Pernyataan kontinue digunakan untuk membuat kondisi perulangan dievaluasi kembali dan
mengabaikan perintah perintah yang terletak sesudahnya. Efek perintah ini pada for dan while
adalah seperti berikut.
• Pada for, pernyataan ini membuat ekspresi ke-3 akan dijalankan dan kemudian ekspresi
kedua diuji lagi.
• Pada while, pengujian terhadap kondisi pada while dilakukan kembali.

109
Skrip berikut menunjukkan continue pada for :
# Skrip untuk menunjukkan efek continue
# pada for

For bilangan in range (1, 9);


If bilangan === 5:
Print(‘continue dijalankan’)
Continue

Print (bilangan)

6.6 Penyelesaian Masalah dengan Perulangan


Sejumlah contoh permasalahan yang memerlukan struktur seleksi dibahas disini:

Contoh 1 skrip pembuatan kotak

Berkas : kotak.py
# contoh pembuatan kotak

Print ( ‘pembuatan kotak’ )


Print ( ‘---------------------‘ )

n = int (input(‘n (lebih besar daripada 2) = ‘))

# tampilkan 2 n symbol *
For kolom in range ( 1, 2, * n + 1) :
Print (‘*’, end = ‘’)

Print () # pindah baris

# tampilkan satu symbol *


# diikuti dengan sejumlah spasi
# dan ssatu symbol *
For indeks in range (1, n – 1) :
Print (‘*’, end = ‘’)

For kolom in range (1, 2, * n – 1 ) :


Print(‘ ‘, end = ‘’) # karakter spasi

110
Print( ‘ * ’ )

# tampilkan 2 n symbol *
For kolom in range (1, 2 * n + 1) :
Print (‘ * ‘, end = ‘ ’ )

Print () # pindah baris

Akhir berkas
C: \Latpyhton>python kotak.py
Pembuatan kotak
--- -----------------
n ( lebih besar daripada 2 ) = 7
**************
* *
* *
* *
* *
* *
**********

C: \Latpyhton>

Contoh 2 bilangan prima

Berkas : prima.py
# penentuan bilangan prima

Print (‘penentuan bilangan prima ‘)


Print ( ‘…………………………’ )

n = int (input(‘bilangan = ‘ ))

prima = true
for bil in range (2,, n // 2 + 1 ) :
if n % bil == 0 :
prima = false
break

if prima :

111
print (n, ‘adalah bilangan prima’)
else:
print (n, ‘bukan bilangan prima’ )

akhir berkas
Dua contoh hasil pengujian skrip beikut

C: \Latpyhton>python prima . py
Penentuan bilangan prima
…………………………..
Bilangan = 7
7 adalh bilanan prima

C:\Latpyhton>
_______________________________
C: \Latpyhton prima . py
Penentuan bilangan prima
………………………….
Bilangan = 4
7 bukan bilangan prima

C: \Latpyhton

RANGKUMAN

1. Tiga struktur kontol skrip telah diperkenalkan, yaitu struktur sekuensial seleksi, dan
perulangan. Terkait dengan perulangan, terdapat beberapa istilah yang perly dibahas di sini,
yaitu kalang (loop), kalang berhingga, dan kalang tidak berhingga. Istilah kalang berarti
perulangan atau suatu struktur yang memungkinkan suatu blok pernyataan diulang
beberapa kali.
2. Pernyataan whiledisediakan python untuk menangani perulangan dengan kondisi pengujian
dilakukan di depan
3. Pernyataan kontinue digunakan untuk membuat kondisi perulangan dievaluasi kembali dan
mengabaikan perintah perintah yang terletak sesudahnya.

112
DAFTAR PUSTAKA

1. Kadir, A. (2019).Logika Pemprograman PYTHON. Jakarta: Gramedia


2. Knuth, D. E. (2018) The Art of Computer Programming. Addison-Wesley Published Company.
3. Mattesh, E. (2015) Python Crash Course : a hans-on, Project-based Introdution to Programming,
San Fransisco : No Starch Press.
4. Venit, S., and Drake, E. (2017) Extended Prolide to Programming Comcepts & Design, Boston:
Pearson Education, Inc.

LATIHAN

1. Apakah keluaran perintah berikut:


for j in range (0, 5) :
print(j)
2. Apakah keluaran kode berikut:
x=2
while x > 1:
print(‘Python’)
d += 3
3. Apakah keluaran pernyataan berikut:
for b in range (1, 4);
for k in range (1, 3);
print (b * k, end = ‘ ‘)
print()
4. Buatlah skrip program untuk menjumlahkan kuadrat semua bilangan genap antara 2 dan 30
dengan menggunakan perintah for?
5. Buatlah skrip yang meminta bilangan n antara 3 dan 9 dan kemudian menampilkan segitiga
semacam berikut untuk n = 5:

113
5
55
5 55
5 5 55
55 5 5 5

114
BAB 7
OPERASI STRING

CAPAIAN PEMBELAJARAN

• Mahasaiswa mampu menentukan dan menyeleksi operasi string sehingga mendapatkan


jumlah karakter dalam string, pengaksesan string, operator + untuk menggabungkan
string smpai penyelesaian masalah dengan string.

MATERI

7.1 Pengenalan string pada python


String adlah deretan karakter. Jumlah karatkter yang terkandung didalam nya dapat berupa
0, 1, atau banyak. String yang tidak memiliki karakter sama sekali dinamakan string kosong.
Pembuatan string sangat mudah, dengan menugaskan suatu konstanta string ke variable.
Contonya :
>>> kota = ‘paris’
>>>

7.2 Cara mendapatkan jumlah karakter dalam string


Jumlah karakter yang terdapat pada string dapat diperoleh melalui fungsi len () . contoh:
>>> data mobil = [ ‘Agya’, 2018, ‘Biru’, 1300]
>>> len (datamobil)
4
>>>

7.3 Pengaksesan string


Pengaksesan penanggalan string (substring) dalam suatu string dapat dilakukan dengan
mudah, dengan menggunakan notai []. Sebagai contoh, jika kota merujuk ‘paris’, penulisn berikut
akan menghasilkan huruf pertama pada kota tersebut ‘p’.
Kota [ 0 ]
Indeks 0 menyatakan karakter pertama.

115
Pengambilan substring dalam suatu string juga dapat dilakukan melalui notasi seperti
berikut:
Variable[m : n]

Dalam hal ini indeks m menyatakan indeks di variable yang menjadi awal substring dan n
menyatakan indeks yang mengindikasikan bahwa akhir substring terletak pada indeks n-1.
Contoh :

>>> kalimat = ‘awan merah diujung senja’


>>> kalimat[5 : 9]
‘mera’
>>>

Pada notasi variable[m : n], m bias ditiadakan. Pada keadaan seperti ini, substring yang
dihasilkan dimulai dari indeks 0 pada variable hingga yang karakter sebelum indeks n.
contoh :
>>> kalimat = ‘awan merah di ujung semja’
>>> kalimat[:6]
‘awan m’
>>>

Pada notasi[m : n] n bias ditiadakan. Pada keadaan seperti ini, substring yang dihasilkan
mulai dari indeks m adalah pada variable hingga karakter yang terakhir. Contoh :
>>> kalimat = ‘awan merah di ujung senja’
>>> kalimat[5 : ]
‘merah di ujung senja’
>>>

Indeks pada string dapat bernilai negatif. Pada keadaan ini, -1 menyatakan indeks untuk
karakter terakhir, -2 menyatakan indeks untuk karakter kedua dari yang terakhir, dan
seterusnya. Contoh :
>>> kota = ‘paris’
>>> print( kota [ -1 ] )
s

116
>>> print( kota [ -2 ] )
i
>>> print( kota [ -3 ] )
r
>>>

pada contoh berikut cara untuk memdapatkan 3 karakter terakhir pada string kota:
>>> kota = ‘paris’
>>> print( kota [ -3 ] )
ris
>>>

Pengambilan substring juga dapat dibuat dengan melompat-lompat dengan selang


tertentu. Contoh ;
>>> teks = ‘selama-lamanya’
>>> print( teks[0 : 10 : 2] )
Slm-a
>>>

Pada contoh ini, teks [ 0 : 10 : 2 ] bearti substring dari indeks 0 hingga 9 dengan melompat-
lompat sebesar 2. Tanpa : 2 diperoleh hasil berupa ‘selama-lam’
Contoh cara membalikkan string:
>>> teks = ‘selama-lamanya’
>>> print ( teks [ : : -1 ] )
Aynama1-amaleS
>>>

String bersifat immutable. Artinya, bagian yang berada didalamnya tidak dapat diubah.
Hal ini berbeda dengan string pada Bahasa lain seperti CCT+/ contoh :
>>> kata = ‘Baris’
>>> kata [ 0 ] = ‘G’
Traceback (most recent call last) :
File “<stdin>”, line 1, in <module>
typeError : ‘str’ object does not support item
assignment
>>>

117
7.4 Operasi + untuk penggabungan string
Operator +, dapat digunakan untuk menggabungkan dua string sepanjang dikenakan pada
string contoh
Kalimat = ‘dian’ + ‘ ‘ + ‘pergi’
Pernyataan ini membentuk string ‘dian pergi’ pada kalimat. Karena sifatnya demikian,
operasi yang seperti beeikut dimungkinkan:
Teks = teks + ‘D’
Perintah ini membut teks berisi nilai sebelumnya dan ditambahi “D” di akhirnya. Sebagai
contoh jika semula teks merujuk ke ‘ABC’, teks akan berganti merujuk ke ‘ABCD’ sesudah
pernyataan didepan dieksekusi.

Berkas : kebalikan.py
# pembalikan string

Kalimat = ‘daun pun berguguran’


Teks = ‘’
Jumkarakter = len (kalimat)
For j in range ( 0, jumkarakter ) :
Teks = teks + kalimat [ jumkarakter – j - 1 ]

Print(‘asal :’, kalimat)


Print(‘kebalikan :‘, teks)

Akhir berkas
Pembalikan string dilakukan melalui for. Dalam hal ini variable j akan bernilai dari 0 hingga
panjang kalimat dikurangi 1. Selanjutnya, pernyataan berikut menambahkan karakter
pada indeks jumkarakter - j - 1 ke akhir string di teks;
Teks = teks + kalimat [jumkarakter - j - 1]
Sebagaimana diketahui, pada keadaan awal sebelum for diperoses, teks berisi string
kosong. Pada iterasi pertama, setelah teks = teks + kalimat [jumkarakter j - 1]
dijalankan, teks berisi karakter terakhir pada kalimat, yaitu “n” . pada iterassi kedua, teks
berisi “na”. pada iterasi ketiga, teks berisi “nar” dan seterusnya. Alhasil, diakhir
pernyataan for, teks berisi string yang merupakan kebalikan string pada kalimat.

118
Hasil pengujian skrip

C: \Latpyhton>python kebalikan.py
Asal : daun pun berguguran
Kebalikan : narugugreb nup nuaD

C: \Latpy

Berkas kebalikan2.py
# pembalikan string
# versi 2

Kalimat = ‘daun pun berguguran’


Teks = ‘ ‘
Jumkarakter = len(kalimat)
For j in range (jumkarakter - 1, -1, -1 :
Teks = teks + kalimat [j]

Print (‘asal :’, kalimat)


Print (‘kebalikan :’, teks)

Akhir berkas
Pada contoh ini, j begerak dari jumlah karakter -1 menuju ke 0.
Namun, cara yang tersingkat untuk membalik string adalha seperti berikut:

Berkas : kebalikan3.py
# pembalikan string
# versi 3

Kalimat = ‘daun pun berguguran’

Jumkarakter = len(kalimat)
Teks = kalimat [ : : -1 ]

Print( ‘asal’ :’, kalimat)


Print(‘kebalikan :;, teks)

119
7.5 Operasi Relasional pada String
Semua operator relasional (==, !=, <, <=, >, dan >=) yang berlaku untuk bilangan dapat
digunakan untuk pembandingan dua string. Acuan pembandingan adalah nilai ACSII karakter
yang dibandingkan.

Contoh :
>>> strA = “ABCD”
>>> asrB = “abcd”
>>> strA > strB
False
>>> strA < strB
True
>>> strA == strB
False
>>> strA != strB
True
>>>

7.6 Metode Bawaan String


Metode string sebagai berikut:

1. Capitalize(): metode ini menggunakan objek setring sebagai sumber untuk pemrosesan
dengan nilai balik berupa string yang hanya huruf pertamanya diubah menjadi huruf
kapital.
2. Center (lebar, pengisi) : metode ini menggunakan objek string sebagai sumber untuk
pemrosesan dengan nilai balik berupa string dengan jumlah karakter sesuai dengan nilai
lebar dan string yang berasal dari objek di tengah kan. dalam hal ini, pengisi berupa
karakter yang digunakan untuk mengisi di bagian kiri dan kanan.

120
3. Count (str, beg = 0, end = Len(string)) : metode ini berguna untuk mendapatkan jumlah
kemunculan setring STR di objek sering. Parameter beg menentukan lokasi awal untuk
pencarian dan end menentukan lokasi akhir pencarian.
4. Endswith(akhiran): metode ini memberikan nilai balik sekiranya string objek berakhir
dengan akhiran atau fals untuk keadaan sebaliknya.
5. Expandtabs(tabsize=8): metode ini memberikan nilai balik berupa string yang setiap
karakter pada string object diganti dengan 8 karakter spasi. Jika dikehendaki bukan 8
karakter spasi, nilainya disebutkan pada parameter tab size.
6. Find(str) : fungsi ini berguna untuk mendapatkan posisi sekring STR pada string object.
Nilai balik berupa posisi pertama ditemukan STR pada string object.pencarian string dapat
dimulai dari posisi manapun titik hal ini bisa disebutkan dengan menyertakan parameter
beg. Jika parameter ini tidak disebutkan, pencarian dimulai dari posisi 0..parameter n juga
bisa digunakan untuk menentukan indeks terakhir untuk pencarian. Jika string yang dicari
tidak ditemukan, nilai baliknya berupa-1.
7. Usalnum() : metode ini memberikan nilai balik berupa true sekiranya string object paling
tidak mengandung 1 karakter dan seluruh karakter berupa alfanumerik. Untuk keadaan
lainnya, nilai balik berupa false.
8. Isalpha(): metode ini memberikan nilai balik berupa true sekiranya setting objek paling
tidak mengandung satu karakter dan seluruh karakter berupa alfabet. Untuk keadaan
lainnya, nilai balik berupa false.
9. Isdigit(): metode ini mem berikan nilai balik berupa true sekiranya string object paling
tidak mengandung 1 karakter dan seluruh karakter berupa angka titik untuk keadaan
lainnya, nilai balik berupa false.
10. Islower(): metode ini memberikan nilai balik berupa true sekiranya setrika objek paling
tidak mengandung 1 karakter dan seluruh karakter berupa huruf kecil. Untuk keadaan
lainnya nilai balik berupa false.
11. Isspace() : metode ini memberikan nilai balik berupa true sekiranya Satrio objek hanya
berupa karakter karakter spasi putih. Untuk keadaan lainnya nilai balik berupa false.

121
12. Istitle(): metode ini memberikan nilai balik berupa true sekiranya objek menyatakan
judul titik untuk keadaan lainnya, nilai balik berupa false. Disebut string judul apabila
setiap awal kata berupa huruf kapital.
13. Isupper(): metode ini memberikan nilai balik berupa true sekiranya setring objek paling
tidak mengandung 1 karakter dan seluruh karakter berupa huruf kapital.
14. Untuk keadaan lainnya, nilai balik berupa false.
15. Joint(sekuen) : metode ini memberikan nilai balik berupa string yang merupakan
gabungan elemen-elemen dalam sekuen (misalnya berupa senarai, string, tupel, kamus,
dan himpunan)
16. Ijust(lebar,pengisi): metode ini berguna untuk mendapatkan string dengan string object
diatur rapat di kiri pada area yang lebarnya ditentukan melalui lebar. Sisa karakter di
kanan diisi dengan karakter pengisi.
17. Lower(): metode ini memberikan nilai balik berdasarkan string objek dengan setiap
huruf kapital di Converse! Menjadi huruf kecil.
18. Istrip(): metode ini memberikan nilai balik berupa string objek dengan semua karakter
spasi putih di bagian kiri dibuang.
19. Replace(lama, baru, [jumlah]) : metode ini memberikan nilai balik berupa salinan dari
objek dengan substring lama diganti dengan baru. Jika jumlah disertakan, jumlah
penggantian maksimum sebanyak jumlah.
20. Rfind(str): kegunaan serupa pada find(), tetapi pencarian dimulai dari kanan.
21. Rjust(lebar, pengisi) : metode ini untuk mendapatkan string dengan objek diatur rapat
di kanan pada area yang lebarnya ditentukan melalui lebar titik sisa karakter di kiri diisi
dengan karakter pengisi.
22. Rstrip (): metode ini memberikan nilai balik berupa objek dengan semua karakter spasi
putih di bagian kanan dibuang.
23. Split(pemisah, Jum) : metode ini berguna untuk mendapatkan senarai yang berisi
bagian-bagian disetting objek yang dipisahkan oleh pemisah dan sebanyak nilai jam + 1.
24. Splitkines(): metode ini untuk mendapatkan sinar a yang berisi baris-baris pada objek
string dengan newline(karakter pindah baris) dihilangkan.

122
25. Starswith(awalan): metode ini memberikan nilai balik sekiranya string object berawalan
dengan awalan atau false untuk keadaan sebaliknya.
26. Strip(): metode ini memberikan nilai balik berdasarkan string objek dengan karakter -
karakter spasi putih didepan dan dibelakang dihilangkan.
27. Swapcase(): metode ini memberikan nilai balik berupa string berdasarkan string objek
dengan huruf kecil dan kapital dipertukarkan.
28. Turtle(): metode ini memberikan nilai balik berupa string berdasarkan objek, dengan
setiap awal kata dikapitalkan dan yang lain diubah menjadi huruf kecil.
29. Upper(): metode ini memberikan nilai balik berdasarkan objek dengan setiap huruf kecil
dikonversi menjadi huruf kapital.
30. Zfill (lebar) : metode ini memberikan nilai balik berupa string dengan jumlah karakter
sebanyak lebar dan di bagian kiri akan ditambahi dengan angka-angka 0 titik serta tanda
negatif jika ada.
31. Str.maketrans(x[,y[,z]]): fungsi ini digunakan untuk menciptakan tabel translasi
(pengubahan satu karakter dengan karakter yang lain) yang digunakan pada metode
translate (). jika hanya X yang disediakan, X harus berupa kamus yang menyatakan peta
penerjemahan. jika y disediakan, X dan y berupa string dengan panjang yang sama titik
dalam hal ini karakter pada X akan diganti dengan karakter pada y yang berposisi sama.
Jika z disertakan, karakter-karakter dalam z tidak diterjemahkan.
32. Translate (tabel) : metode ini menghasilkan string berdasarkan objek string yang telah
ditranslasikan berdasarkan tabel titik dalam hal ini, tabel adalah hasil bentukan
Maketrans().

Contoh 1
Konversi huruf
Berkas : konversihuruf.py

# konversi huruf
Kalimat = ‘DAUN pun BERGUGURAN’
Print (‘upper () :’, kalimat . upper () )

123
Print (‘lower () :’, kalimat . lower () )
Print (‘capitalize () :’, kalimat . capitalize () )
Print (‘title () :’, kalimat . title () )
Print (‘swapcase () :’, kalimat . swapcase () )
Print (‘Asal :’, kalimat . kalimat )

Akhir berkas
C: \Latpyhton>python konversihuruf . py
Upper () : DAUN PUN BERGUGURAN
Lower () : daun pun berguguran
Capitalize () : Daun Pun Berguguran
Title () : Daun pun Berguguran
Swapcase () : daun PUN berguguran
Asal : DAUN pun BERGUGURAN

C: \Latpyhton>

Contoh 2
Pengubahan sejumlah karakter
Berkas : ubahkar . py
# konversi sejumlah huruf

Teks = ‘KUEKU INI ENAK, LOH! ****@@@****’

DaftarX = ‘AEIOU’
daftarY = ‘aeiou’
daftarZ = ‘*@’

table = str . maketrans (daftarX, daftarY, daftarZ)

print(‘Asal :’, teks)


print(‘Hasil :’, teks . translate (table))

akhir berkas

pada skrip ini,


daftarX = ‘AEIOU’
daftarY = ‘aeiou’

124
menyatakan bahwa A hendak dipetakan menjadi a, E menjadi e, dan seterusnya. Adpun
terlihat pernyataan ini :
daftarZ = ‘*@’
pernyataan diatas digunakan untuk menyatakan symbol-simbol yang mau dibuang. Ketiga
variable tersebut dijadikan sebagai table pemetaan melalui yang akan digunakan oleh
translate () :
table = str . maketrans (daftarX, daftarY, daftarZ)
selanjutnya, penerjemahan terhadap pemetaan dilakukan melalui:
teks . translate (tabel)
hasil pengujian skrip
C: \Latpyhton>python ubahkar . py
Asal : KUEKU INI ENAK, LOH! ****@@@****
Hasil : KueKu iNi eNaK, LHo!

C: \Latpyhton

7.7 Penyelesaian Masalah dengan String


Sejumlah contoh permasalahan yang memerlukan string dibahas disini.

Contoh 1 Satu karakter per baris


Berkas : karperbaris . py
# penyajian karakter-karakter pada string
# pada baris tersendiri

Print (‘penyajian karakter perbaris’)


Print (‘…………………………….’)

Teks = input (‘masukkan string: ‘)


For indeks in range ( 0, len (teks) ) :
Print (teks [indeks])

Akhir berkas
C: \Latpyhton>python karperbaris . py
Penyajian karakter perbaris
…………………………….

125
Masukkan string : Bravo
B
R
A
V
O

C: \Latpyhton>

Contoh 2 penyajian bilangan dengan pemisah ribuan berupa titik


Berkas ; pemisah ribuan.py
# pemisah ribuan
Bilangan = int (input(‘bilangan bulat : ‘)
# konversi balik ke string
strBil = str (bilangan)

hasil = ‘ ‘
while len(strBil) > 3:
hasil = hasil + ‘ . ‘ + strBil[-3 ; ]
strBil = strBil [ : -3 ]
hasil = strBil + hasil

print (‘hasil ;’, hasil )

akhir berkas
C: \Latpyhton>python pemisahribuan . py
Bilangan bulat : 25000011
Hasil : 25. 011.000

C: \Latpyhton>
__________________________________
C: \Latpyhton>python pemisahribuan . py
Bilangan bulat : 2500
Hasil : 2.500

C: \Latpyhton>
__________________________________
C: \Latpyhton>python pemisahribuan . py
Bilangan bulat : 250
Hasil : 250

C: \Latpyhton>

126
RANGKUMAN

1. String adlah deretan karakter. Jumlah karatkter yang terkandung didalam nya dapat berupa
0, 1, atau banyak. String yang tidak memiliki karakter sama sekali dinamakan string kosong.
2. Pengaksesan penanggalan string (substring) dalam suatu string dapat dilakukan dengan
mudah, dengan menggunakan notai []. Sebagai contoh, jika kota merujuk ‘paris’, penulisn
berikut akan menghasilkan huruf pertama pada kota tersebut ‘p’.
3. Operator +, dapat digunakan untuk menggabungkan dua string sepanjang dikenakan pada
string
4. Semua operator relasional (==, !=, <, <=, >, dan >=) yang berlaku untuk bilangan dapat
digunakan untuk pembandingan dua string. Acuan pembandingan adalah nilai ACSII karakter
yang dibandingkan.

DAFTAR PUSTAKA

1. Kadir, A. (2019).Logika Pemprograman PYTHON. Jakarta: Gramedia


2. Knuth, D. E. (2018) The Art of Computer Programming. Addison-Wesley Published Company.
3. Mattesh, E. (2015) Python Crash Course : a hans-on, Project-based Introdution to Programming,
San Fransisco : No Starch Press.
4.mVenit, S., and Drake, E. (2017) Extended Prolide to Programming Comcepts & Design, Boston:
Pearson Education, Inc.

LATIHAN

1. Apa keluaran pernyataan-pernyataan berikut:


kota = ‘Medan’
for j in range (len(kota) – 1, -1, -1));
print(kota[ j )
2. Buatlah script yang meminta suatu string dimasukkan dari papan ketik. Kemudian, script
menghasilkan string dengan setiap karakter pada indeks ganjil diganti dengan *?
Contoh:

127
Masukkan : papaya manis
Keluaran : PEPAYa manis
3. Terdapat penugasan seperti berikut:
burung = ‘Garuda’
pemanggilan burung.find [‘RU’] memberikan nilai balik berupa __________?
4. Didalam perintah string, skrip menghasilkan string dengan setiap karakter pada indeks ganjil
dengan *.
Contoh:
- Masukan: semua indah
- Keluaran: s*e*m*u*a*i*n*d*a*h
5. String yang diminta dapat dibentuk dengan menggunakan operator +, praktekkan cara
membentuk string berisi abjad A hingga Z melalui perulangan dalam pemrograman Python?

128
BAB 8
PENGGUNAAN STRUKTUR DATA

CAPAIAN PEMBELAJARAN
• Mahasiswa mampu memecahkan menggunakan senarai dan tupel dimana senarai akan
menjelaskan pengaksesan elemen-elemen, dasar operasi, penambahan, penghapusan
dan metode dalam senarai dan tupel.
• Mahasiswa mampu menyimpulkan penggunaan senarai dan tupel dalam pemrograman
python.

MATERI

8.1 Pengenalan Struktur Data


Struktur data pada dasarnya adalah suatu struktur yang dapat digunakan untuk menyimpan
sejumlah data di memori komputer. Python menyediakan empat jenis struktur data, yaitu
senarai, tupel, kamus, dan himpunan.
8.2 Senarai
Senarai (list) adalah struktur data yang digunakan untuk menyimpan sejumlah data dengan
tipe yang dapat berlainan. Sebagai contoh, hasil ujian sepuluh siswa bisa disimpan dalam satu
senarai. Senarai digunakan untuk menyimpan sejumlah nama barang.

8.2.1 Penulisan Senarai


Senarai ditulis dengan tanda [] dan didalamnya diisi dengan elemen-elemen senarai
yang dipisahkan oleh koma. Contoh :

hasilTes = [56, 78,65, 99, 85]


cabang = [‘Medan’, ‘Denpasar’, ‘Solo’]
skor = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’]
print(hasilTes)
[56, 78, 65, 99, 85]

129
Print(cabang)
[‘Medan’, ‘Denpasar’, ‘Solo’]
Print(skor)
[‘A’, ‘B’, ‘C’, ‘D’, ‘E’]

Pada contoh diatas, hasil tes berisi lima elemen bertipe int, cabang berisi tiga elemen
string, dan skor berisi lima elemen string. Elemen senarai masing – masing dapat
ditampilkan dengan menggunakan print().

8.2.2 Cara Mendapatkan Jumlah Elemen


Jumlah elemen yang terdapat pada senarai dapat diperoleh melalui fungsi len().
Contoh :

dataMobil = [Arya, 2018, Biru, 1300]


len(dataMobil)
4
daftar = []
len(daftar)
0

Pada contoh pertama, len(kota) menghasilkan 5 mengingat kota yang berisi ‘paris’
mengandung 5 karakter. Pada contoh kedua, mengingat daftar berisi senarai kosong,
len(daftar) memberikan nilai balik berupa 0, yang berarti tidak ada elemen sama sekali.

8.2.3 Pengaksesan Elemen-Elemen Senarai


Pengaksesan elemen senarai dilakukan dengan menggunakan notasi []. Sebagai
contoh, jika daftarBunga merujuk ke [], penulisan berikut akan menghasilkan elemen
pertama pada senarai tersebut :

daftarBunga [0]
Indeks 0 menyatakan elemen pertama. Beberapa contoh pengaksesan elemen di
senarai daftarBunga :

130
daftarBunga = [‘Melati’, ‘Mawar’, ‘Anyelir’, ‘Kenanga’]
daftarBunga[0]
Melati
daftarBunga[1]
Mawar
daftarBunga[3]
Kenanga

Pengambilan beberapa elemen dalam suatu senarai dapat dilakukan melalui notasi
seperti berikut:

senarai[m:n]

Hasilnya berupa senarai.Dalam hal ini, indeks m menyatakan indeks senarai yang
menjadi elemen pertama yang hendak didapat dan menyatakan indeks sesduah
elemen terakhir yang didapat. Contoh dapat dilihat berikut ini :

daftarBunga = [ ‘Melati’, ‘Mawar’, ‘Anyelir’, ‘Kenanga’]


daftarBunga[1:3]
[Mawar, Anyelir]

8.2.4 Dasar Operasi Senarai


Daftar Operator untuk senarai berikut ini.
Operator Keterangan Contoh
+ Bermanfaat untuk menggabungkan >>>[1,2,3] + [3,4,5]
elemen-elemen kedua senarai [1,2,3,3,4,5]
* Berfungsi untuk mengulang elemen-elemen >>>['e', 's']*3
suatu senarai ['e', 's', 'e', 's', 'e', 's']
!= Digunakan untuk melakukan pembandingan >>> x = [1,2,3]
ketidaksamaan elemen-elemen pada dua >>> y = [2,1,3]
senarai. Hasil True jika pembandingan pada >>> x!= y
semua elemen pada posisi yang sama TRUE
menghasilkan nilai True

131
== Perbandingan sama dengan. >>> [1,2] == [2,1]
Hasil True jika pembandingan pada FALSE
semua elemen pada posisi yang sama >>> [1,2] == [1,2]
menghasilkan nilai True TRUE
in Menyatakan anggota ("terdapat dalam") >>> 'a' in['f', 'a', 'x']
TRUE
>>> 'A' in['f', 'a', 'x']
FALSE

Senarai dapat dimanfaatkan untuk menyimpan karakter-karakter unik (tidak kembar)


yang menyusun suatu string.
Contoh :

# Pemrosesan untuk mendapatkan


# karakter-karakter unik
# pada suatu string

strMasukan = input(‘String: ‘)

daftar = []
for indeks in range (0, len(strMasukan)) :
kar = strMasukan[indeks]
if kar not in daftar:
daftar = daftar + [kar]
print(‘Hasil:’, daftar)

Contoh hasil pengujian skrip dapat dilihat berikut ini:

C:\LatPython>python karakterunik.py
String : pepaya
Hasil : [p, e, p, a, y, a]
C:\LatPython>

132
8.2.5 Penambahan Elemen Senarai
Elemen baru dapat ambahkan ke senarai dengan cara yang telah dibahas pada Bagian
8.2.4, yakni pada skrip karakter unik, dengan menggunakan operator. Cara lain dapat
dilakukan dengan menggunakan metode append () milik objek senarai. Dengan
menggunakan metode tersebut, perhatikan pernyataan berikut:
daftar =daftar + [kar]
Pernyataan di atas dapat diganti menjadi:
daftar.append (kar)
Penambahan elemen pada senarai tidak harus diletakkan di akhir senarai. Elemen baru
dapat disisipkan di posisi mana saja dengan menggunakan metode insert () . Contoh
dapat dilihat berikut ini:

hewan =['Kuda' Sapi', Unta']


hewan. insert (2 , 'Pinguin')
print (hewan)

['Kuda', Sapi', 'Pinguin', 'Unta']


Pada contoh ini, 'Pinguin' diletakkan pada indeks 2.

8.2.6 Penghapusan Elemen Senarai


Penghapusan satu elemen atau beberapa elemen pada senarai dapat dilakukan
dengan menggunakan fungsi del(). Contoh berikut Menunjukkan penghapusan satu
elemen pada senarai:

bilangan= [10, 11, 12, 13, 14, 15, 16, 17, 18]
del (bilangan [2])
print (bilangan)
[10, 11, 13, 14, 15, 16, 17, 18]

Pada contoh di atas, elemen dengan indeks 2 dihapus (yang bernilai 12). Itulah
sebabnya, setelah del (), bilangan tidak mengandung 12.

133
Adapun contoh berikut menunjukkan contoh penghapusan empat elemen pada
bilangan:
bilangan = [10, 11, 12, 13, 14, 15, 16, 17, 18]
del (bilangan [2 : 6])
print (bilangan)
[10, 11, 16, 17, 18)

Pada contoh di atas, elemen dengan indeks 2 hingga 5 dihapus (yang bernilai 12, 13,
14, dan 15). Itulah sebabnya, setelah del() bilangan tidak mengandung 12, 13, 14, dan
15.

8.2.7 Metode Pada Senarai


Senarai mempunyai sejumlah metode yang berguna untuk melakukan berbagai
operasi, berikut ini penjabarannya.
Metode Keterangan
berguna untuk menghitung frekuensi elemen x pada senarai. Contoh
count(x)
:
>>> z = ['A', 'B', 'A', 'D', 'A']
>>> z.count('A')
3
berfungsi untuk menambahkan elemen - elemen dalam senarai d ke
extend(d)
akhir
senarai. Contoh :
>>> x = [1,2,3]
>>> z = [88, 89]
>>> z.extend('x')
>>> print(z)
[88, 89, 1, 2, 3]
index(x) untuk mendapatkan indeks dari nilai x yang pertama kali dijumpai
pada senarai. Contoh :
>>> z = ['A', 'B', 'A', 'D', 'A']
>>> z.index('B')
remove(x) menghapus elemen x yang dijumpai pertama kali pada senarai.
reverse() berguna untuk membalik urutan senarai.
sort() untuk mengurutkan elemen - elemen dalam senarai.

134
8.2.8 Fungsi-Fungsi Yang Terkait Dengan Senarai
Berikut ini adalah fungsi-fungsi yang ada pada senarai.
Fungsi Keterangan
untuk mendapatkan senarai yang mengandung deretan nilai yang
range()
urut.
berguna untuk menapis suatu senarai dengan menggunakan suatu
filter()
fungsi.
map() untuk mendapatkan senarai dari suatu senarai dengan setiap elemen
senarai asal dikenal suatu fungsi.
sum() penjumlahan nilai semua elemen dari suatu senarai,
max() menghasilkan nilai terbesar pada suatu senarai
min() menghasilkan nilai terkecil pada suatu senarai

8.3 Tupel
Tupel adalah kumpulan objek yang tidak dapat diubah. Secara prinsip, tupel menyerupai
senarai, tetapi elemen-elemennya tidak dapatdiubah. Perbedaan yang lain, tupel
menggunakan tanda (), sedangkansenarai menggunakan [].

8.3.1 Penulisan Tupel


Tupel ditulis dengan tanda () dan di dalamnya diisi dengan elemen-elemen tupel yang
dipisahkan oleh koma. Beberapa contoh pembuatan tupel dapat dilihat pada Tabel di
bawah ini.

Penugasan Keterangan
t = () Tupel kosong (belum memiliki elemen sama sekali)
t = ('X', 'Y') Tupel yang mengandung dua elemen string
Tupel dengan 3 elemen bilangan. Tanda kurung boleh
t = 1, 2, 3
tidak disertakan.
t = 1, Tupel dengan satu elemen
t = (1,)
t = (1, 2, (3, 4)) Tupel dengan elemen terkhir berupa tupel
t = ('Agya', 2018, 'Biru', 1300) Tupel dengan elemen - elemen berbeda tipe

Seperti halnya pada senarai, elemen-elemen tupel dapat ditampilkan dengan


menggunakan print ().Contoh:

135
t = (Agya, 2018, Biru, 1300)
print(t)
(Agya, 2018, Biru, 1300)

8.3.2 Cara Mendapatkan Jumlah Elemen Tupel


Jumlah elemen yang terdapat pada senarai dapat diperolehmelalui fungsi 1en ().
Contoh:

dataMobil = (‘Agya’, ‘2018’, ‘Biru’, ‘1300’]


len(dataMobil)
4
daftar = []
len(daftar)
0

Pada contoh pertama, len (dataMobil) menghasilkan 4 mengingat terdapat 4 data. Pada
contoh kedua, mengingat daftar berisi tupelkosong, 1en (daftar) memberikan nilai balik
berupa 0, yang berarti tidak ada elemen sama sekali.

8.3.3 Pengaksesan Elemen-Elemen Tupel


Secara prinsip, semua pengaksesan yang dilakukan untuk mendapatkan satuatau
beberapa elemen pada senarai dapat diterapkan pada tupel. Contoh:

tupelBilangan = (10,20,30.40.50,60,70)
print(tupelBilangan[0])
10
print(tupelBilangan[2:5])
(30, 40, 50)
print(tupelBilangan[:5])
(10, 20, 30, 40, 50)
print(tupelBilangan[3:])
( 40, 50, 60, 70)
print(tupelBilangan[ : : - 1])
(70, 60, 50, 40, 30, 20, 10)

136
Satu-satunya yang berbeda dengan senarai, elemen-elemen padatupeltidak dapat
diubah karena tupel bersifat immutable. Contohnya berikut:

tupelBilangan = (10,20,30,40,50,60,70)
tupelBilangan[0] = 90
traceback (most recent call last):
file “<stdin>” line 1, in <module>
TyprError: ‘tuple’ object does not support item assignment

Tampak bahwa usaha untuk mengubah elemen pertama dengan 90 ditolak karena
emang tupel tidak menyediakan mekanisme seperti itu.

8.3.4 Dasar Operasi Tupel


Semua operator yang diterapkan pada senarai (Bagian 8.2.4) dapat diterapkan pada
tupel.Contohnya seperti berikut ini:
t1 = (1, 2, 3)
t2 = (1, 2, 4)
t3 = (1, 2, 3)
t1 +t2
(1, 2, 3, 1, 2, 4)
t1 * 2
(1, 2, 3, 1, 2, 3)
t1 != t2
True
t1 !=t3
False
2 in t1
True

8.3.5 Penghapusan Tupel


Penghapusan elemen-elemen tupel tidak dimungkinkan kecuali melalui penugasan dan
penggunaan operator. Artinya, akan terbentuktupelbaru Namun, jika dikehendaki
untuk menghapus tupe, fungsi del() bisa digunakan. Contoh:
t1 = (1,2,3)
del(t1)
Print(t1)

137
traceback (most recent call last):
file “<stdin>” line 1, in <module>
NameError : name ‘t1’ is not defined

Tampak bahwa t1 tidak dikenal setelah del(t1) dieksekusi

8.3.6 Metode Dan Fungsi Pada Tupel


Dua metode yang terdapat pada tupel berupa count (0 dan index ().
• count () berguna untuk mendapatkan cacah elemen yangdisebutkañ dalam
argumen pada tupel;
• Index () berguna untuk mendapatkan indeks pertama kali argumen ditemukan
pada tupel.
Contoh penggunaan kedua metode tersebut dapat dilihat pada skrip berikut:
# Penggunaan index () dan Count()
# pada tupe
Data = (‘cacah data 6 :’, data.cpunt(6))
Print(‘indeks pertama untuk data 6: ‘,
Data.index(6))

Contoh hasil pengujian skrip dapat dilihat berikut ini:


C:\LatPython>python index.py
Cacah data 6: 3
Indeks pertama untuk data 6: 1
C:\LatPython

8.3.7 Konversi Tupel Ke Senarai Dan Sebaliknya


Suatu tupel dapat diubah ke senarai dengan menggunakan fungsi list ().Untuk
sebaliknya, fungsi tuple () bisa digunakan. Contoh tersebut dapat dilihat pada halaman
berikutnya:
t = (44, 55, 66)
List(t)
[44, 55, 66]
S= [‘A’, ‘B’, ‘C’, ‘D’]
Tuple(s)
(‘A’, ‘B’, ‘C’, ‘D’)

138
Pada contoh diatas, list(t) menghasilkan senarai berdasarkan tupel t. adapun tuple (s)
merupakan contoh untuk mengonversi senarai s ke tupel.

RANGKUMAN

1. Senarai (list) adalah struktur data yang digunakan untuk menyimpan sejumlah data dengan
tipe yang dapat berlainan. Sebagai contoh, hasil ujian sepuluh siswa bisa disimpan dalam satu
senarai. Senarai digunakan untuk menyimpan sejumlah nama barang.
2. Tupel adalah kumpulan objek yang tidak dapat diubah. Secara prinsip, tupel menyerupai
senarai, tetapi elemen-elemennya tidak dapatdiubah. Perbedaan yang lain, tupel
menggunakan tanda (), sedangkansenarai menggunakan [].

DAFTAR PUSTAKA

1. Kadir, A. (2019).Logika Pemprograman PYTHON. Jakarta: Gramedia


2. Kadir, A. (2018) Dasar Pemprograman Python 3, Yogyakarta: Penerbit Andi.
3. Kadir, A. dan Triwahyuni, T. C. (2014) Pengantar Teknologi Informasi Edisi Revisi, Yogyakarta:
Penerbit Andi.

LATIHAN

1. Meode pada senarai yang digunakan untuk menghitung cacah kemunculan suatu nilai yaitu?
2. Buatlah program senarai sederhana?
3. Buatlah contoh program tupel?
4. Terdapat penugasan seperti berikut:
Kumpulan = {5, 6, 8, 1}
Pernyataan untuk memperoleh jumlah elemen pada kumpulan berupa ____________?
5. 10 data bilangan bulat dari papan ketik dan disimpan dalam senarai. Kemudian proseslah agar
susunan senarai menjadi terbalik; misalnya 1 2 3 4 5 6 7 8 9 10 akan menjadi 10 9 8 7 6 5 4 3

139
2 1. Untuk menyelesaikan persoalan ini, senarai lain tidak boleh digunakan. Selain itu, metode
reverse () tidak boleh digunakan. Tampilan isi senarai untuk memastikan pembalikan susunan
elemen berfungsi dengan benar.
Sebagai bantuan, pseudocode berikut bisa dipakai:
UNTUK < 0 hingga 4
Tukarlah elemen data[j] dan data [9-j]
AKHIR-UNTUK

140
BAB 9
PENGGUNAAN STRUKTUR DATA

CAPAIAN PEMBELAJARAN

• Mahasiswa mampu menganalisis penggunaan struktur data dalam membuat program


kamus.
• Mahasiswa mampu memecahkan berbagai format variable dalam membuat kamus di
Bahasa pemrograman Python.

MATERI

9.1 Kamus
Kamus (dictionary) adalah struktur data yang menyerupai kamus dalam kehidupan kita
sehari-hari. Sebagai contoh dalam kamus Bahasa Inggris Indonesia, kita bisa mencari arti kata 'car
atau butterfly. Nah pada keadaan seperti itu, çar atau butterfly berkedudukan sebagai kata kunci.
Dengan memasukkan kata kunci, kita bisa mendapatkan artinya. Pada kamus di Python, kata
kunci yang disinggung di depan dinamakan kunci. Setiap kunci memiliki pasangan yang disebut
nilai. Satu kamu dapat mengandung banyak pasangan kunci dan nilai.
9.1.1 Penulisan Kamus
Kamus dibentuk dengan format seperti berikut:
variabel = {kunci: nilai, kunci: nilai, ...}
Kamus ditulis dengan awalan { dan akhiran ). Pasangan nilai dan kunci dipisahkan oleh
tanda: dan antar pasangan kunci dan nilai dipisah oleh koma.
Setiap kunci dan nilai pada kamus nengikuti aturan berikut:
• Kunci dapat berupa tipe data immutable (misainya string atau bilangan)
• nilai dapat berupa tipe apa saja.
Contoh berikut menunjukkan pembentukan kamus dengan nama buah;
Buah = {‘apel’, : ‘apple’, ‘nanas’ : ‘pineapple’, ‘pisang’ : ‘banana’}
Print(buah)
{‘apel’, : ‘apple’, ‘nanas’ : ‘pineapple’, ‘pisang’ : ‘banana’}

141
9.1.2 Cara Mendapatkan Jumlah Pasangan Kunci Dan Nilai
Jumlah elemen yang terdapat pada kamus (berupa pasangan kunci dan nilai) dapat
diperoleh melalui fungsi len().Contoh:

Buah = {‘apel’, : ‘apple’, ‘nanas’ : ‘pineapple’, ‘pisang’ : ‘banana’}


Len(buah)
3
Hewan = {}
Len(hewan)
0

Pada contoh pertama, len (buah) menghasilkan 3 mengingat menghasilkan 3 mengingat


terdapat 3 pasangan kunci dan nilal pada buah. Pada contoh kedua, kunci dan nilai pada
buah. Pada contoh kedua, len (buah) mengingat hewan berisi kamus kosong, len
(hewan) memberikan nilai balik berupa 0, yang berarti tidak ada elemen sama sekali.

9.1.3 Pengaksesan Elemen-Elemen Pada Kamus


Pengaksesan nilai suatu kunci dilakukan melalui:
namaKamus[kunci]

Untuk menghindari timbulnya eksepsi KeyError, metode get () bisa digunakan. Contoh:

Buah = {‘apel’, : ‘apple’, ‘nanas’ : ‘pineapple’, ‘pisang’ : ‘banana’}


Primt(buah.get(nanas))
Pineapple
Print(buah.get(alpukat))
None

Tampak bahwa print () menghasilkan None untuk kunci yang tidak tersedia pada kamus.
Nilai yang dihasilkan oleh get 0 sekiranya kunci tidak tersedia pada kamus dapat diatur
melalui argumen kedua.

142
9.1.4 Pemutakhiran Data Pada Kamus
Untuk memutakhirkan nilai suatu kunci, pernyataan yang diperlukan berbentuk:
namakamus[kunci] = nilai
Contoh :

Inventori = {‘TV-001’ : 1, ‘TV-002’ : 5, ‘TV-003’ :3}


Inventori [TV-002] = 4
Print(inventori)
{‘TV-001’ : 1, ‘TV-002’ : 4, ‘TV-003’ :3}

Tampak bahwa semula nilai untuk TV-002 berupa 5. Namun, setelah berubah menjadi
Inventori [TV-002] = 4 dieksekusi, nilainya berubah jadi 4.

9.1.5 Penghapusan Data Pada Kamus


Untuk menghapus satu pasangan kunci dan nilai dalam kamus, sungsi del () bisa
digunakan. Penggunaannya seperti berikut:
Del(namaKamus[kunci])
Adapun penghapusan seluruh pasangan kunci dan nilai yang terdapat di Lamis dilakukan
dengan menggunakan metode clear (). Sementara itu, penghapusan kamus dilakukan
dengan menggunakan fungsi del (). Bentuk pemakaian masing-masing seperti berikut:
del(namaKamus)
namaKamus.clear0

Contoh :
Inventori = {‘TV-001’ : 1, ‘TV-002’ : 5, ‘TV-003’ :3}
Del(Inventori [TV-002)
Print(inventori)
(‘TV-001’ : 1, ‘TV-003’ : 3}
Inventori.clear()
Print(inventori)
{}

143
Tampak bahwa setelah del (inventori [ 'TV-002'1) di Dieksekusi ntori tinggal dua. jumlah
pasangan kunci dan nilai pada kamus inventori tina Dalam hal ini, yang terhapus adalah
yang kuncinya berupa berupa TV Kemudian, sesudah inventori.clear () dieksekusi,
kamuenembuat dieksekusi,kamus tidak memiliki elemen sama sekali. Adapun del
(inventori) me kamus inventori dihapus. Itulah sebabnya, print (invenentori) yang
terakhir kali menyebabkan kesalahan mengingat inventori sudah tidak ada lagi.

9.1.6 Penambahan Data Pada Kamus


Penambahan data pada kamus dilakukan melalui pernyataan:
namaKamus[kuncí] = nilai
Hal yang terpenting, kunci yang diberikan memang belum tersedia pada kamus. Contoh:
Inventori = = {‘TV-001’ : 1, ‘TV-002’ : 5, ‘TV-003’ :3}
inventori [RD-001) = 2
Print(inventori)
(‘TV-001’ : 1, ‘TV-002’, ‘TV-003’ : 3, ‘RD-001: 2)

9.1.7 Pemrosesan Elemen Melalui Perulangan


Contoh skrip isi kamus. py pada Bagian 8.4.3 telah menunjukkan cara untuk mengakses
seluruh elemen pada kamus. Cara lain yang lebih enisien diperlihatkan berikut ini.
Contoh pertama menunjukkan cara nendapatkan kunci di kamus melalui for. Skripnya
seperti berikut:

# Contoh untuk mengakses semua kunci pada kamus

Inventori = = {‘TV-001’ : 1, ‘TV-002’ : 5, ‘TV-003’ :3}

For kunci in inventori:


Print(kunci)

Contoh hasil pengujian skrip dapat dilihat berikut ini:

C:\LatPython>python perolehkunci.py

144
TV-001
TV-002
TV-003

C:\LatPython

9.1.8 Pengurutan Data


Kamus tidak mendukung metode sort (). Oleh karena itu, untuk mengurutkan data yang
berada di kamus, kita bisa memanfaatkan berikut menunjukkan pengurutan data
menurut kunci:

# Pengurutan pada kamus menurut kunci


Warna {‘red’: ‘merah’, ‘blue’ : ‘biru’, ‘green’: ‘hijau’, ‘white’ : ‘putih’, ‘yellow’ :
‘kuning’}
Print (sebelum diurutkan menurut kunci:’)
For kunci in warna:
Print (‘%-6s: %-s’ % (kunci, warna[kunci]))
Print()
Print(‘Sesudah diurutkan menurut kunci:’)
daftarKunci = warna.keys()
for kunci in sorted(daftarKunci):
Print (‘%-6s: %-s’ % (kunci, warna[kunci]))

Akhir berkas dilakukan pengurutan Sebelum dapatkan daftar kunci pada kamus, yang
dilakukan oleh:

Jadi, langkah pertama sebelum pengurutan dilakukan adalah mendapatkan daftar kunci
pada kamus, yang dilakukan oleh:
daftarKunci = warna. keys0
kemudian, pengurutan dilakukan melalu sorted(daftarKunci).

Contoh hasil pengujian skrip dapat dilihat berikut ini:


C\:LatPython>python urutkunci.py
Sebelum diurutkan menurut kunci:
Red : merah

145
Blue : biru
Green : hijau
White : putih
Yellow :

Sesudah diurutkan menurut kunci:


Blue : biru
Green : hijau
Red : merah
White : putih
Yellow : kuning
C:\LatPython>

Bagaimana halnya kalau mau mengurutkan data menurut nilai pada kamus? Pertama-
tama, yang diperlukan adalah warna.items (), yang akan menghasilkan daftar pasangan
kunci dan nilai. Nah, hasil inilah yang perlu dikenai operasi sorted () dengan tambahan
argumen berupa berikut ini:
Key = lamda x : x[1]
Dalam hal ini, x[1] menyatakan nilai dalam pasangan kunci dan nilai. Jadi, kunci
pengurutannya berupa nilai. Perlu diketahui, x[0] konteks ini berarti nilai kunci.

9.2 Himpunan
Himpunan adalah struktur data yang menyimpan sejumlahlah nilai yang tidak kembar dan
urutan data yang disimpan tidak pentingBerbetadengan senarai maupun tupel, himpunan tidak
mengenal indeks.
9.2.1 Penulisan Himpunan
Himpunan ditulis dalam tanda t. Urutan anggota himpunantidak penting. Dengan
demikian, berikut menyatakan himpunan yang sama:
{1,2, 3}
{2, 1, 3}

Berikut adalah beberapa contoh pembentukan himpunan:


warna ={'Merah', 'Hijau', 'Biru'}
bilangan ={1, 2, 3)

146
himpunanKosong = set ()

Pada contoh pertama, semua elemen berupa string. Pada contoh


Kedua, semua elemen berupa bilangan. Contoh ketiga menununjukkan
pembentukanhimpunan kosong. Contoh berikut memperlihatkan pembentukan
himpunan dan caramenampilkan himpunan melalui print ().
warna = { 'Merah', 'Hijau ', 'Biru'}¢
print (warna)
{Hijau 'Biru', 'Merah'}

9.2.2 Cara Mendapatkan Jumlah Elemen Pada Himpunan


Jumlah elemen yang terdapat pada himpunan dapat diperoleh melalui fungsi len().
Contoh:
peserta =('Amir ', 'Dita', Eni', Berda')
len (peserta)
4
undurdiri = set ()
len (undurdiri)
0

Pada contoh pertama, len (peserta) menghasilkan 4, mengingat terdapat 4 elemen


pada peserta. Pada contoh kedua, mengingatundrudiri berupa himpunan kosong, len
(undurdiri)memberikan nilai balik berupa 0, yang berarti tidak ada elemen sama sekali

9.2.3 Pengaksesan Elemen-Elemen Pada Himpunan


Pada himpunan, elemen tidak dapat diakses secara individual mengingat himpunan tidak
mengenal indeks. Pengaksesan elemen-elemen pada himpunan hanya dapat diakSes
sekaligus melaluiperulangan for.
Contoh diperlihatkan berikut ini:

# Contoh kamus
himpunanWarna('Merah', 'Jingga', Kuning', Hijau', Biru', 'Nila', Ungu' }

147
for warna in himpunanWarna:
print (warna)

Contoh hasil pengujian skrip dapat dilihat berikut ini:


C:\LatPython>python himpunan.py
Jingga
Biru
Nila
Ungu
Kuning
Hijau
Merah

C:\LatPython>

9.2.4 Pemutakhiran Data Pada Himpunan


Elemen pada himpunan data tidak bisa diganti. Untuk mengganti suatu elemen, harus
ditempuh melalui pembentukan himpunan baru atau melalui metode update () milik
himpunan. Namun, penambahanelemen ke himpunan dimungkinkan. Hal ini dibahas
pada
Berikut menunjukkan operasi perubahan himpunan dengan update ():

h = (1, 2, 3, 4)
print (h)
(1 2, 3, 4)
h.update ( [1, 2, 9, 4])
print (h)
{1, 2, 3, 4, 9}

9.2.5 Penghapusan Data Pada Himpunan


Untuk menghapus satu elemen dalam himpunan, metode pada impunan bernama
discard () maupun remove () bisa digunakan.
Penggunaannya seperti berikut:
namakamus.discardfelemen)
namakamus.remove(elemen)

148
Perbedaan kedua metode:
• discard () tidak mengubah apapun pada himpunansekiranya elemen yang
dihapus tidak tersedia;
• remove () menimbulkan eksepsi sekiranya elemen yangdihapus tidak tersedia.
Adapun penghapusan seluruh elemen di himpunan dilakukan dengan menggunakan
metode clear (). Sementara itu, penghapusan kamus dilakukan dengan menggunakan
fungsi del (). Bentuk pemakaianmasing-masing seperti berikut:
del(namaHimpunan)
namaHimpunan.clear()

Contoh:
peserta = (‘Amir’, ‘Dita’, ‘Eni’, ‘Berda’}
peserta.discard(‘Dita’)
print(peserta)
{ ‘Eni’, ‘Amir’, ‘Berda’}
peserta.clear()
print(peserta)
set()

Tampak bahwa setelah peserta.dicard ( Dita') dieksekekusi,jumlah elemen pada


peserta berkurang satu. Dalam hal ini.Yangterhapus adalah 'Dita'. Kemudian, sesudah
peserta.clear ()dieksekusi, himpunan tidak memiliki elemen sama sekali. Dalam hal ini
perintah print () menghasilkan set (), yang berarti himpunankosong. Adapun del
(peserta) membuat himpunan pesertamembuat himpunan pesertadihapus. Itulah
sebabnya, print (peserta)
yang terakhir kali menyebabkan kesalahan mengingat peserta sudah tidak ada lagi

9.2.6 Konversi Data Senarai Ke Himpunan Dan Sebaliknya


Data pada senarai dapat dikonversi ke himpunan dengan menggunakan
set (). Contoh:
senarai = [ 1, 5, 2, 1, 5, 7]
set (senarai)

149
(1, 2, 5, 7)

Contoh ini menunjukkan bahwa hasilnya berupa sederetan elemen yang bersifat unik.
Nilai 5 dan 1 pada senarai yang berjumlah lebih dari satuhanya muncul sekali pada hasil
himpunan.himpunan dapat dikonversi ke senarai dengan menggunakan list).
Contohnya seperti berikut:

himpunan 1, 2, 3, 4)
list (himpunan)
[1, 2, 3, 4]

9.2.7 Penambahan Data Pada Himpunan


Penambahan data pada himpunan dilakukan dengan menggunakan metode milik
himpunan bernama add (). Bentuk penggunaannya seperti berikut :
namaHimpunan.add(nilai)

Contoh:

peserta ={ Amir, 'Dita', Eni', Berda' }


peserta.add ( "Narto')
print (peserta)
{'Dita', 'Eni', 'Amir', 'Narto', 'Berda'}
peserta. add ( 'Amir')
print (peserta)
{Dita', Eni''Amir', 'Narto', 'Berda')

Terlihat bahwa setelah peserta .add ("Narto ') dieksekusi, 'Narto' ditambahkan peserta.
Namun, penambahan "Amir tidak mengubah isi peserta mengingat nama ini telah
berada di himpunan.

150
9.2.8 Pengertian Subhimpunan
Subhimpunan adalah suatu himpunan yang keseluruhan anggotanya yang keseluruhan
anggotanya terdapat pada himpunan lain. Sebagal contoh, terdapat dua
himpunanSeperti berikut:
• paketA ('apel',anggur'}
• paketB{'anggur',kelengkeng', anggur', "melon "}

Jadi, PaketA adalah subhimpunan dari paketB karena kedua anggotanya terdapat pada
paketB.

Suatu himpunan merupakan subhimnpunan atau tidak bisa diperiksa dengan


menggunakan metode bernama issubset(). Metode ini, mengembalikan nilai True
sekiranya suatu himpunan adalah Subhimpunan. Contohnya seperti di bawah ini:

paketA. issubset (paketB)


True
pake tB. issubset (pake tA)
False

Hasil ini menyatakan bahwa paketA adalah Subhimpunan paketB, tetapi tidak untuk
sebaliknya.

9.2.9 Operasi Himpunan


Union, interseksi, dan selisih adalah operasi yang biasa dikenakan pada himpunan.Union
adalah penggabungan elemen-elemen dari duahimpunan. Hasilnya, elemen yang kembar
hanya akan disertakan satukali sehingga elemen-elemen dalam himpunan tidak ada yang
kembar.
Operasi union dapat dilakukan dengan menggunakan operatorataupun melalui
metode union (). Contoh:
setA = {‘hijau’, ‘biru’, ‘ungu’, ‘merah’)
setB = {‘merah’, kuning, putih, hijau, hitam}

151
setC = setA | setB
setC
{kuning, putih, hitam, biru, hijau, ungu, merah}
setC = setA.union(setB)
setC
{kuning, putih, hitam, biru, hijau, ungu, merah}
setC = setB.union(setA)
setC
{kuning, putih, hitam, biru, hijau, ungu, merah}

Tampak bahwa hasil setA | setB, setA.union (setB) , dan setB.union (setA) adalah
gabungan elemen-elemen di setA dansetB.

Operasi interseksi digunakan untuk mendapatkan hanya elemen-elemen yang muncul


di kedua himpunan. Hal ini dapat diperolehmenggunakan metode intersection ()
ataupun operator&.

9.3 Penanganan Baris Perintah


Argumen baris perintah biasa digunakan kalau skrip dijalankan di shellpada sistem operasi
Linux atau Command Prompt pada Windows. Sebagai contoh, kita bisa memanggil skrip sembari
memberikanbeberapa argumen semacam berikut ini:
C:\ Lat Python>python brsperintah dua tambah dua=4
Argumen baris perintah yang didapat berupa:
1) dua;
2) tambah;
3) dua=4.
Dalam hal ini, lihatlah skrip berikut:
Sys.argv[0] menyatakan nama skrip;
S.argv [ 1] menyatakan string argumen pertama,
sys.argv[2] menyatakan string argument argumen kedua;
dan seterusnya.

152
Skrip di atas menunjukkan contoh untuk mendapatkannama skrip danseluruh argumen baris
perintah:
# Contoh penanganan baris perintaan
import sys
print (' Nama skrip: ', sys.argv [0])
print ('Jumlah argumen: len (sys.argv) )
1en (sys . argv) )
For indeks in range(1, 1en (sys . argv)) :
Print(Argumen[‘, indeks, ‘] :’, sys,argv[indeks])

Skrip ini memerlukan modul sys.Nama skrip diperoleh melaluisys.argv [0].Jumlah argumen
diperoleh melalui len (sys .argv).Dengan melibatkan for, argumen masing-masing didapatkan.
Berikut adalah contoh pengujian skrip brsperintah.Py:
C;\LatPython> python brsperintah.py dua tambah dua=4
Nama skrip: brsperintah.py
Jumlah argument: 4
Argumen[1] : dua
Argument[2] : tambah
Argumen[1] : dua=4

C;\LatPython>

9.4 Penyelesaian Masalah Dengan Struktur Data


Berikut ini, contoh permasalahan yang memerlukan struktur data dibahas disini.
Contoh 1-Penentuan nama bulan
Kode bulan disimpan dengan bilangan bulat antara 1 dan 12.Dalam hal ini, 1 adalah Januari,
2 adalah February, 3 adalah Maret, dan seterusnya. Buatlah skrip yang meminta kode bulan
dimasukkan dari papan-ketikdan kemudian menampilkan nama bulan. Gunakan struktur untuk
mencatat nama-nama bulan. Sekiranya kode bulan tidak berada antara1 dan 12, berikan pesan
"Kode bulan harus antara 1 dan 12".
Solusi:
Hal ini bisa diselesaikan dengan membuat senarai, tupel, atau kamusvang berisi nama-nama
bulan.Karena indeks senarai berawal 0,sedangkan kode bulan berawal 1, maka kode bulan

153
dipetakan ke indeks dengan mengurangi 1. Perwujudan yang menggunakan senarai adalah
seperti berikut:
# Penyajian nama bulan
# menggunakan senarai
namaBulan = [
‘Januari’, Februari, maret, april, mei, juni, juli, agustus, September, November,
desember’]

Print(‘Penentuan nama bulan’)


Print(‘----------------------------‘)

kodeBulan = int(input(‘kode bulan (1..12): ‘))


if kodeBulan < 1 or kodeBulan > 12:
print(‘Kode bulan harus antara 1 dan 12’)
else:
print(‘Bulan’, namaBulan[kodeBulan – 11)

Contoh hasil pengujian skrip dapat dilihat berikut ini:

C:\LatPython>python namabulan.py
Penentuan nama bulan
Kode bulan (1..12) : 2
Bulan Februari

C:\LatPython>
C:\LatPython>python namabulan.py
Penentuan nama bulan
Kode bulan (1..12) : 12
Bulan Desember

C:\LatPython>

RANGKUMAN

1. Kamus (dictionary) adalah struktur data yang menyerupai kamus dalam kehidupan kita sehari-
hari. Sebagai contoh dalam kamus Bahasa Inggris Indonesia, kita bisa mencari arti kata 'car

154
atau butterfly. Nah pada keadaan seperti itu, çar atau butterfly berkedudukan sebagai kata
kunci.
2. Himpunan adalah struktur data yang menyimpan sejumlahlah nilai yang tidak kembar dan
urutan data yang disimpan tidak pentingBerbetadengan senarai maupun tupel, himpunan
tidak mengenal indeks.
3. Argumen baris perintah biasa digunakan kalau skrip dijalankan di shellpada sistem operasi
Linux atau Command Prompt pada Windows.

DAFTAR PUSTAKA

1. Kadir, A. (2019).Logika Pemprograman PYTHON. Jakarta: Gramedia


2. Kadir, A. dan Triwahyuni, T. C. (2014) Pengantar Teknologi Informasi Edisi Revisi, Yogyakarta:
Penerbit Andi.

LATIHAN

1. Buatlah program kamus menurut pemikiran anda?


2. Buatlah program Himpunan menurut pemikiran anda?
3. Buatlah program penenganan baris perintah menurut pemikiran anda?
4. Buatlah skrip bernama balikarg.py yang ditunjukkan untuk membalik argument baris
perintah masing-masing. Sebagai contoh diberikan perintah sebagai berikut:
Python balikarg helo bola bola
Maka, hasilnya berupa:
Oleh
Abol
alob
5. Untuk menghapus satu elemen dalam himpunan, metode pada himpunan bernama discard
() maupun remove () bisa digunakan. Adapun penghapusan seluruh elemen dihimpunan

155
dilakukan dengan menggunakan metode clear (). Sementara itu, penghapusan kamus
dilakukan dengan menggunakan fungsi del ().
Del(namaHimpunan)
namaHimpunan.clear()
buatlah program dari penghapusan data pada himpunan?

156
BAB 10
PEMBUATAN FUNGSI

CAPAIAN PEMBELAJARAN

• Mahasiswa mampu menentukan dan membandingkan proses pembuatan fungsi yang


berkaitan dengan nilai argument , kata kunci parameter, parameter bawaan, fungsi
anonym dan fungsi rekursif.

MATERI

10.1 Peranan Fungsi dalam Skrip


Sebenarnya peranan fungsi dalam skrip memudahkan dalam menyusun skrip mengingat
sejumlah fungsi telah disediakan. Sebagai contoh, untuk menghitung akar kuadrat cukup
memanggil fungsi math.sqrt (). Pengambilan jumlah data pada senarai ataupun tupel dapat
dilakukan dengan cukup memanggil fungsi len ().
Fungsi biasa disusun dalam skrip dalam rangka untuk memudahkan pembuatan skrip. Skrip
dapat dibagi menjadi sejumlah fungsi berdasarkan fungsionalnya. Sebagai contoh, suatu skrip
melibatkan masukan, proses, dan keluaran. Oleh karena itu, skrip dapat dibagi menjadi tiga fungsi
utama tersebut. Pada pengembangan awal skrip, kita bisa menuliskan secara kasar fungsi-fungsi.
Deretan kode berikut digunakan untuk mendefinisikan tiga fungsi :
def masukan () :
Pass
def proses () :
pass
def keluaran () :
pass

Untuk memanggil ketiga fungsi tersebut, dibagian utama terdapat pemanggilan:


masukan()
proses()
keluaran()
Dengan demikian, ketika skrip dijalankan ketiga fungsi tersebut akan dieksekusi.

157
Pengembangan skrip menggunakan cara yang membagi-bagi kode sejumlah fungsi ditujukan
untuk memudahkan dalam pengembangan skrip terutama yang digunakan untuk menangani
masalah yang kompleks yang melibatkan ribuan baris kode. Selain itu, pencarian kesalahan juga
lebih mudah dilakukan jika skrip dibagi menjadi sejumlah fungsi. Suatu fungsi juga dapat disusun
atas sejumlah fungsi yang lain.

Gambar 10.1 Jumlah skrip dan pemeliharan skrip


Dengan cara seperti ini, penggunaan memori di komputer dapat dihemat.

10.2 Pembuatan fungsi


Definisi fungsi diawali dengan def dan diikuti dengan nama fungsi. Nama fungsi harus
memenuhi persyaratan nama pengenal. Secara prinsip, aturannya adalah sama dengan aturan
pemberian nama variabel. Di dalam tanda kurung bisa terdapat sejumlah parameter. Istilah
parameter digunakan dalam definisi fungsi, namun dalam pemanggilan fungsi nilai yang
dilewatkan ke dalam fungsi biasa disebut argumen. Di dalam fungsi yang ditandai dengan
penulisan pernyataan yang ditulis menjorok ke kanan terhadap tulisan def. Baris pertama pada
tubuh fungsi berupa dokumentasi string, baris ini bersifat opsional. Salah satu pernyataan yang
sering dilibatkan pada tubuh fungsi adalah: Return nilai. Pernyataan ini bisa tidak ada kalau fungsi
tidak memberikan nilai balik. Adapaun kegunaan return adalah untuk menyebutkan nilai balik
fungsi.

158
Gambar 10.2 Berbagai istilah dalam definisi fungsi

Gambar diatas memberikan ringkasan berbagai istilah yang muncul dalam definisi fungsi.
Contoh fungsi untuk memberikan nilai balik berupa jumlah huruf pada string argumennya.
Fungsi ditujukan untuk memberikan nilai balik, fungsi ini mengandung pernyataan return.
Fungsi melibatkan satu parameter bernama st:

def perolehJumlahHuruf (st) :


jumlahHuruf = 0
for j in range (0, len (st)) :
if st[j].isalpha() :
jumlahHuruf += 1
return jumlahHuruf

Perhitungan huruf dilakukan dengan mula-mula membentuk variabel pencacah bernama


jumlahHuruf, yang diberi nilai awal 0. Melalui for, setiap karakter pada string st diseleksi. Jika
karakter berupa huruf , yang diuji melalui st[j].isalpha (),nilai pada jumlahHuruf dinaikkan sebesar
1. Skrip yang digunakan untuk menguji fungsi berikut:

159
#contoh fungsi yang memberikan nilai balik
# berupa jumlah huruf pada string
# argumennya
def perolehJumlahHuruf (st) :
jumlahHuruf = 0
for j in range (0, len(st)) :
if st[j].isalpha ():
jumlahHuruf += 1
return jumlahHuruf
#Bagian utama
print(‘Jumlah huruf =’, perolehJumlahHuruf(‘Tes. . .tes 123!’))

Pada bagian utama, string yang diuji berupa ‘Tes. . .tes 123!’ hasil pengujian skrip dapat dilihat
berikut:

jumlah huruf = 6

10.3 Lingkup Variabel


Lingkup variabel menyatakan cakupan area tempat variabel dapat diakses. Terdapat
suatu variabel yang hanya dapat diakses di dalam skrip tetapi terdapat pula variabel yang dapat
diakses di mana aja. Terdapat istilah variabel global dan variabel lokal.
10.3.1 Variabel Lokal
Variabel lokal adalah variabel yang dideklarasikan di dalam suatu fungsi atau dalam suatu
blok tertentu. Perhatikan pernyataan berikut:
For j in range (0, len(st)):

Variabel j dideklarasikan pada pernyataan for maka j hanya dikenal pada pernyataan for
tersebut yaitu pada semua bagian yang ditulis menjorok ke kanan terhadap tulisan for.
Untuk memahami hal ini, perhatikan skrip berikut :
#Contoh variabel lokal
def gantiWarna () :
warna = ‘Merah’
print(‘Isi warna digantiWarna():’, warna)
#Bagian utama
Warna = ‘Perak’

160
Print(‘Isi warna semula :’, warna)
gantiWarna()
print(‘Isi warna sekarang:’, warna)

hasil dari skrip tersebut :

Isi warna semula : Perak


Isi warna di gantiWarna () : Merah
Isi warna sekarang : Perak

Tampak bahwa nilai warna yang semula berupa ‘Perak’ tidak berubah. Hal ini terjadi
karena warna pada fungsi gantiWarna () dan di luar fungsi menyatakan dua variabel yang
berbeda. Pada fungsi gantiWarna(), warna pada perintah berikut:
Warna= ‘Merah’
Perintah diatas menyatakan variabel lokal, sedangkan yang berada di luar fungsi adalah
variabel global. Oleh karena itu, warna ‘Merah’ hanya dikenal di dalam fungsi gantiWarna
().

10.3.2 Variabel Global


Variabel global adalah variabel yang dideklarasikan di luar fungsi mana pun. Variabel
seperti ini bisa diakses di fungsi mana saja asalkan variabel ini disebutkan sebagai variabel
global di fungsi. Hal ini dilakukan dengan menggunakan pernyataan global. Sebagai
contoh perhatikan skrip berikut:

#contoh pengaksesan variabel global


# di dalam fungsi
def gantiWarna () :
global warna
warna = ‘Merah’
print(‘Isi warna di gantiWarna ():’, warna)

#Bagian utama
Warna = ‘Perak’
print(‘Isi warna semula :’, warna)
gantiWarna()
print(‘Isi warna sekarang:’, warna)

161
10.4 Pengubahan Nilai Argumen di dalam Fungsi
Nilai argumen fungsi bisa diubah atau tidak bergantung pada jenis objek yang
dilewatkannya. Jika objek yang dilewatkan bertipe seperti int, float, bool, str, dan tuple, nilai
argumen tidak bisa diubah dari dalam fungsi. Argumen bertipe set, list, dan dict, dapat diubah
didalam fungsi.

#pengubah nilai argumen


def ubah(bunga) :
bunga=’Melati’
print(‘isi bunga di ubah() :’, bunga)
return (bunga)
#bagian utama
Bunga =’Mawar’
Print (‘Isi bunga semula :’, bunga)
Ubah(bunga)
Print(‘Isi bunga sekarang:’, bunga)

Pada definisi fungsi ubah(), perintah berikut digunakan untuk mengubah nilai argumen bunga:
Bunga=’Melati’
Tampak bahwa variabel bunga di fungsi dan sesudah pemanggilan fungsi bernilai sama.

10.5 Kata-Kunci Parameter


Pada pemanggilan fungsi, nama parameter fungsi dapat disertakan dengan bentuk
seperti berikut :
Parameter=nilai
Dengan menggunakan kata-kunci arameter, urutan argumen tidak lagi harus sama
dengan urutan parameter dalam definisi fungsi:

#menyertakan nama parameter


def infoMobil (plat, pemilik) :
print(‘Plat :’, plat)
print(‘Pemilik :’, pemilik)
print()

162
#bagian utama
#pemanggilan tanpa nama parameter
infoMobil (‘D13KA’, ‘Dika Putranto’)
#pemanggilan dengan menyebutkan nama parameter
infoMobil (pemilik = ‘aditia Raka’,
plat = ‘AD1714RA’)

Pada pemanggilan fungsi infoMobil() yang pertama, argumen pertama pertama berupa nomor
plat dan argumen kedua menyatakan pemilik mobil.

10.6 Parameter Bawaan


Parameter bawaan adalah parameter yang bersifat opsional. Artinya ketika fungsi
dipanggil, argumen untuk parameter ini bisa disertakan ataupun tidak disertakan. Kalau argumen
tersebut tidak disebutkan dalam pemanggilan fungsi, suatu nilai bawaan yang telah di tetapkan
dalam definisi fungsi akan digunakan dalam fungsi. Berikut adalah contoh definisi fungsi yang
melibatkan parameter bawaan:

def pemisahBaris (pemisah = ‘=’, n = 10 ) :


for j in range (0, n) :
print (pemisah, end =’’)
print ()# Pindah baris

Perhatikan setelah pemisah terdapat = ‘=’ dan setelah n terdapat =20. Hal ini yang
membuat parameter pemisah dan n dikatakan berkedudukan sebagai parameter bawaan.
Dengan menuliskan definisi fungsi seperti ini, argumen pertama dan kedua pada pemisahBaris()
boleh disebutkan ataupun tidak.

163
Gambar 10.3 Nilai bawaan dalam definisi fungsi
Berikut contoh skrip parameter bawaan:

#Contoh parameter bawaan


def pemisahBaris (pemisah = ‘=’, n=10):
for j in range (0, n) :
print () #Pindah baris

#Bagian utama
print(‘Hasil pemisahBaris () :’)
pemisahBaris()

Print(‘Hasil pemisahBaris (\’*\’):’)


pemisahBaris ()

print(‘Hasil pemisahBaris (\’*--\’, 5):’)


pemisahBaris (‘*--‘,10)

hasil pengujian skrip dapat dilihat berikut ini:

Hasil pemisahBaris () :
========
Hasil pemisahBaris (‘*’):
**********
Hasil pemisahBaris (‘*--‘, 5):
*--*--**--*--**--*--**--*--*

164
10.7 Argumen yang Bersifat Variabel
Python mendukung fungsi dengan jumlah argumen yang bersifat variabel. Definisi fungsi
ditulis dengan bentuk seperti berikut:
def namaFungsi ([param,] *param_var):
“dokumentasi fungsi”
...
Pernyataan_N
Return (nilai)

Param yang merupakan parameter tetap (tidak bersifat variabel) bersifat opsional. Parameter
yang bersifat variabel ditulis dengan awalan *.
Contoh pada skrip berikut menunjukan definisi fungsi bernama rerata yang dapat digunakan
untuk menghitung nilai rata-rata dari berapa pun argumen yang diberikan ketika fungsi diambil :

#contoh fungsi dengan parameter bersifat variabel


def rerata (*paramVar):
total = 0
jumParam = len (paramVar)
for var in paramVar:
total = total + var

return total / jumParam

#bagian utama
print ('Rata-rata pertama =',
rerata (10,20,30))
print ('Rata-rata kedua =',
rerata (10,20,30,40,50))

hasil pengujian skrip dapat dilihat berikut ini :


Rata-rata pertama = 20.0
Rata-rata kedua = 30.0
10.8 Fungsi Anonim
Suatu fungsi disebut anonim karena tidak didefinisikan melalui def, fungsi anonim
mempunyai keterbatasan. Fungsi ini hanya dapat mengandung satu ekspresi. fungsi anonim

165
dibuat dengan menggunakan kata-kunci lambda. contohnya lambda [arg1 [, arg2,. . . ,argn]]:
ekspresi

#contoh fungsi anonim


terbesar = lambda bil1, bil2, bil3: max(bil1, bil2, bil3)
#bagian utama
Print(‘Bilangan terbesar:’, terbesar (56, 3, 80))
Print(‘Bilangan terbesar:’, terbesar (100,200,80))

Fungsi anonim ini digunakan untuk mendapatkan nilai terbesar dari ketiga argumen (bil1
hingga bil3). Dengan hasil skrip diatas :

Bilangan terbesar : 80
Bilangan terbesar :200

10.9 Fungsi Rekursif


Fungsi rekursif adalah fungsi yang di dalamnya terdapat pemanggilan terhadap dirinya
sendiri. Biasa digunakan pada persoalan tertentu yang dapat dikerjakan dengan car a rekursif.
Sebagai contoh, perhitungan 𝑋 2 untuk n berupa bilangan bulat positif dapat dilakukan secara
rekursif seperti berikut :

JIKA n = 1 MAKA xn = x
SELAIN ITU: xn = x * xn-1

Kondisi pertama digunakan sebagai pengakhir proses rekursif. Kondisi kedua menyatakan
proses rekursif karena di dalam menghitung x n terdapat xn-1. Kedua kondisi tersebut dapat
diwujudkan dalam bentuk fungsi rekursif seperti berikut:

def pangkat (x, n)


if n == 1:
return x
else:
return x * pangkat (x, n-1)
Perhatikan bahwa di dalam tubuh fungsi pangkat() terdapat pemanggilan pangkat().

166
Gambar 10.4 Proses rekursif pada perhitungan 5

Gambar 10.5 menunjukan contoh proses rekursif pada perhitungan 5 3. Urutan pada gambar
tersebut menyatakan urutan proses untuk mendapatkan hasil 53 secara rekursif.
Skrip berikut menunjukkan contoh pengujian fungsi rekursif yang digunakan untuk
menghitung xn.
#Contoh penyelesaian x pangkat n
# menggunakan pendekatan rekursif
def pangkat (x, n) :
if n == 1:
return x
else:
return x * pangkat (x, n-1)
#Bagian utama
Print(‘5^2 =’, pangkat (5,2))
Print (‘2^8=’, pangkat (2,8))
Dengan hasil penguji skrip dapat dilihat :
5^2 = 25
2^8 =256

10.10 Penyelesaian Masalah dengan Fungsi


Sejumlah contoh permasalahan yang memerlukan fungsi:

Contoh 1 Perhitungan n Faktorial

167
Skrip yang mewujudkan perhitungan n faktorial (n!) dalam bentuk fungsi. Perlu diketahui
n berupa bilangan bulat positif. Perhitungannya seperti berikut :

0! = 1
N! = n x (n-1) x (n-2) x ... x 3 x 2 x 1
Solusinya :
Perhitungan n! dapat disajikan dalam bentuk pseudokode seperti berikut:
Hasil 1
UNTUK bil 1 HINGGA n
` hasil hasil *bil
AKHIR-ULANG
Pseudokode di atas secara implisit sudah mengantisipasi nilai n = 0. Pada saat n bernilai 0,
tubuh perulangan UNTUK tidak dijalankan sehingga hasil tetap bernilai 1. Contoh skripnya
sebagai berikut :
#pembuatan fungsi untuk menghitung n!
def faktorial (n) :
hasil = 1
for bil in range (1, n):
hasil= hasil * bil
return hasil
#bagian utama
print(‘4! =’, faktorial(4))
print(‘6! =’, faktorial(6))

Dengan hasil skrip dapat dilihat seperti berikut :


4! = 6
6!= 120

Contoh 2 Penentuan Bilangan Prima


Buatlah sebuah fungsi yang dapat digunakan untuk suatu bilangan bulat positif berupa
bilangan prima atau tidak. Nilai balik fungsi berupa true kalau argumennya adalah bilangan Prima
atau false kalau bukan bilangan Prima.

168
Berikut skrip untuk menguji beberapa bilangan sebagai bilangan prima atau tidak:
#fungsi untuk menentukan bilangan
# termasuk bilangan prima atau tidak
def prima (bilX):
prima = True
for bil in range (2, bilX // 2 + 1):
if bilX % bil == 0:
prima = False
break
return prima

def ujiBilanganPrima (bilX):


if prima (bilX):
print(bilX, 'adalah bilangan prima')
else:
print(bilX, 'bukan bilangan prima')
#bagian utama
ujiBilanganPrima(3)
ujiBilanganPrima(7)
ujiBilanganPrima(9)
ujiBilanganPrima(10)

Hasil dari penguji skrip diatas :


3 bukan bilangan prima
7 adalah bilangan prima
9 adalah bilangan prima
10 bukan bilangan prima

RANGKUMAN

1. Sebenarnya peranan fungsi dalam skrip memudahkan dalam menyusun skrip mengingat
sejumlah fungsi telah disediakan.
2. Definisi fungsi diawali dengan def dan diikuti dengan nama fungsi. Nama fungsi harus
memenuhi persyaratan nama pengenal. Secara prinsip, aturannya adalah sama dengan
aturan pemberian nama variabel.

169
3. Lingkup variabel menyatakan cakupan area tempat variabel dapat diakses. Terdapat suatu
variabel yang hanya dapat diakses di dalam skrip tetapi terdapat pula variabel yang dapat
diakses di mana aja. Terdapat istilah variabel global dan variabel lokal.
4. Nilai argumen fungsi bisa diubah atau tidak bergantung pada jenis objek yang
dilewatkannya. Jika objek yang dilewatkan bertipe seperti int, float, bool, str, dan tuple, nilai
argumen tidak bisa diubah dari dalam fungsi. Argumen bertipe set, list, dan dict, dapat
diubah didalam fungsi.
5. Parameter bawaan adalah parameter yang bersifat opsional. Artinya ketika fungsi dipanggil,
argumen untuk parameter ini bisa disertakan ataupun tidak disertakan.

DAFTAR PUSTAKA

1. Kadir, A. (2019).Logika Pemprograman PYTHON. Jakarta: Gramedia


2. Kadir, A. (2018) Dasar Pemprograman Python 3, Yogyakarta: Penerbit Andi.
3. Kadir, A. dan Triwahyuni, T. C. (2014) Pengantar Teknologi Informasi Edisi Revisi, Yogyakarta:
Penerbit Andi.

LATIHAN

1. Buatlah fungsi yang digunakan untuk memberikan nilai balik berupa jumlah hurup kecil dalam
string argumennya?
2. Buatlah contoh program fungsi menurut pemikiran anda?

170
3. Amir hendak menuliskan fungsi yang digunakan untuk memberikan nilai balik perkalian kedua
parameter seperti berikut:
Def perkalian (a; b)
C= a– b
Return c
Terdapat dua kesalahan yang terjadi pada kode tersebut. Carilah kesalahan terletak dimana
jaja?
4. Buatlah fungsi bernama penjumlahan yang dapat digunakan untuk menghitung penjumlahan
semua nilai argument yang diberikan. Dalam hal ini, jumlah argument bisa berapa saja?
5. Buatlah fungsi dengan nama tampilkanDenganPemisah(). Dua contoh cara pemanggilan fungsi
ini berupa hasilnya yaitu:
tampilkanDenganPemisah (“ABCDE”) = “A B C D E”
tampilkanDenganPemisah (“ABCDE”, ‘ - ‘ = “A-B-C-D-E”

171
BAB 11
PEMBENTUKKAN KELAS DAN OBJEK

CAPAIAN PEMBELAJARAN

• Mahasiswa mampu menyusun dan membangun pembuatan kelas dan objek dalam
program python sehingga inisialisasi, senarai objek, objek sebagai farameter fungsi,
senarai objek dan menyelesaiakan masalah menggunakan kelas dan objek.

MATERI

11.1 Pembuatan Kelas dan Objek


Pada pemrograman berorientasi objek, kelas menjadi dasar pembentukan objek. Satu kelas
dapat dipakai untuk membentuk sejumlah objek atau kadang disebut instan kelas.
Berikut adalah contoh pembuatan kelas yang sangat sederhana:

>>> class Kelasku:


. .. bunga = ‘Melati’
. ..
>>>
Dengan cara seperti itu, kelas bernama kelasku terbentuk. Perlu diketahui, nama kelas
biasa ditulis dengan awalan huruf kapital.
Dengan mengenakan print() terhadap kelas, akan diperoleh informasi mengenai kelas
tersebut, contohnya :

>>> print(Kelasku)
<class ‘__main__.Kelasku’>
>>>
Kelas bernama kelasku dapat digunakan untuk membuat objek.
Contoh dapat dilihat berikut ini:
>>> objekku = Kelasku()
>>> print(objekku)

172
<class __.main__.Kelasku object at 0x009A90>>
>>>

Pada contoh diatas, merupakan perintah untuk membuat objek bernama objekku.
Pernyataan print(objekku) hanya menampilkan informasi bahwa objekku adalah objek berkelas
kelasku.
Secara umum, definisi kelas berbentuk seperti berikut :

Class NamaKelas:
[‘’’dokumentasi kelas’’’]
pernyataan_1
pernyataan_2
...
pernyataan_n

NamaKelas menyatakan nama kelas dan secara konvesional ditulis dengan awalan huruf
kapital. Baris pertama biasanya berisi dokumentasi. Namun hal ini bersifat opsional. Pernyataan-
pernyataan yang terdapat pada kelas digunakaan untuk menentukan properti kadang dinamakan
atribut dan definisi metode. Sebagaimana diketahui metode adalah fungsi yang melekat pada
suatu objek.
Berikut adalah contoh pembuatan kelas bernama Mobil :

class Mobil:
def aturNoPolisi(self, noPolisi):
'''Untuk mengubah nomor polisi'''
self.noPolisi = noPolisi
def perolehNoPolisi (self) :
'''Untuk mendapatkan nomor polisi'''
return noPolisi
def aturModel (self, model) :
'''Untuk mengubah model'''
self.model
def perolehModel (self):
'''Untuk mendapatkan model'''
return self.model
def aturTahunProduksi (self, tahunProduksi):
'''Untuk mengubah tahun produksi'''

173
self.tahunProduksi = tahunProduksi
def perolahTahunProduksi (self):
'''Untuk mendapatkan tahun produksi'''
return self.tahunProduksi
def info(self):
'''Untuk menampilkan informasi mobil'''
print()
print('Nomor Polisi :', self.noPolisi)
print('Model mobil :', self.model)
print('Tahun produksi :', self.tahunProduksi)
print('=======================')

Pada kelas Mobil , terdapat tiga properti, yaitu noPolisi (menyatakan nomor polisi), model
(menyatakan model mobil), dan tahunProduksi (menyatakan tahun ketika mobil diproduksi).

Gambar 11.1 Memberikan penjelasan visual mengenai kelas


Secara prinsip definisi metode pada kelas menyerupai definisi fungsi biasa. Bentuk umum
definisi metode di kelas seperti berikut:

def namaMetode(daftarParameter):
pernyataan_1
...
pernyataan_n

Sebagai contoh perhatikan definisi berikut:

174
def aturNoPolisi (self, noPolisi):
'''Untuk mengubah nomor polisi'''
self.noPolisi = noPolisi

Perhatikan bahwa argumen pertama berupa self, yang menyatakan objek tempat metode
berada. Pada contoh ini self.noPolisi menyatakan milik objek berkelas Mobil.

Gambar 11.2 Nama yang sama harus dibedakan

11.2 Inisialisasi Objek


Pada saat objek diciptakan, nilai untuk semua properti belum ditentukan secara eksplisit.
Secara implisit, string kosong dan nilai nol digunakan sebagai nilai bawaan. Pemberian nilai pada
properti baru dilakukan saat metode aturNoPolisi(), aturModel(), aturTahunProduksi () dipanggil.
Namun sebenarnya pemberian nilai pada properti-properti objek dapat dilakukan saat objek
diciptakan atau yang dikenal dengan istilah inisialisai objek. Dapat dilakukan dengan
menyediakan metode khusus yang dinamakan konstruktur. Namanya _init_().

11.3 Pengenalan Destruktor


Destruktor adalah metode khusus yang akan dijalankan ketika objek akan sirna. Bentuk
destruktor seperti berikut:
def__del__():
‘ ‘ ‘dokumentasi destruktor’ ‘ ‘
pernyataan_1
...
pernyataan_n
175
Skrip berikut menunjukan contoh destruktor dan efeknya :

#contoh destruktor
#pembuatan kelas dengan destruktor

class Dinosaurus :
jenis = ''

#konstruktor
def __init__(self, jenis):
self.jenis = jenis
print(jenis, 'tercipta')

#destruktor
def __del__ (self):
print(self.jenis, 'punah')

#definisi fungsi =
def masaPurba ():
print('Fungsi masaPurba () dipanggil ... ')

#Pembuatan objek di masaPurba ()


spino = Dinosaurus ('Spinosaurus')
print('Fungsi masapurba () mau berakhir ... ')

#bagian utama
print('skrip dijalankan ...')
#pembuatan objek di bagian utama skrip
tirano = Dinosaurus ('Tiranosaurus')
#panggil fungsi
print()
masaPurba ()
print()

print('Skrip mau berakhir ...')

Pada skrip ini destruktor hanya digunakan untuk menjalankan perintah berikut:

176
print(self.jenis, ‘punah’)

hasil dari pengujian skrip dapat dilihat berikut ini:

Terlihat bahwa destruktor untuk objek ini dijalankan ketika eksekusi skrip berakhir.

11.4 Variabel Kelas dan Variabel Instan


Variabel atau properti di kelas dapat dibedakan menjadi variabel kelas dan variabel instan.
Variabel kelas adalah variabel yang bersifat menjadi milik bersama untuk semua instan. Sebagai
contoh, variabel bunga pada contoh berikut merupakan variabel kelas:

Class kelasku:
bunga=’Melati’

Pada data yang bersifat immutable (misal string), perubahan pada variabel kelas pada suatu
instan memang tidak akan mempengaruhi instan lain. Berikut adalah gambarannya:

177
Tampak bahwa perubahan bunga pada instanA tidak berpengaruh terhadap instanB.
#contoh variabel kelas

class MusikKesukaan:
daftar = [] #senarai kosong
def tambahkan(self, musik):
self.daftar.append(musik)
#bagian utama

instanX = MusikKesukaan ()
instanY = MusikKesukaan ()

instanX.tambahkan ('Jazz')
instanY.tambahkan ('Rock')

print(instanX.daftar)
print(instanY.daftar)

Pada contoh ini, daftar adalah variabel kelas yang berupa senarai. Nilai awalnya adalah
kosong. Metode tambahkan() dimaksudkan untuk menambahkan argumen ke senarai tersebut.
contoh hasil pengujian skrip dapat dilihat berikut ini:

Variabel instan adalah variabel yang bersifat unik pada objek bersangkutan. Perubahan nilai
pada variabel instan pada suatu instan bersifat independen terhadap variabel dengan nama sama
pada instan lain.

#contoh variabel instan

class MusikKesukaan:
daftar = [] #senarai kosong

def __init__ (self):


self.daftar = []

def tambahkan (self, musik):

178
self.daftar.append (musik)
#bagian utama

instanX = MusikKesukaan ()
instanY = MusikKesukaan ()

instanX.tambahkan ('Jazz')
instanY.tambahkan ('Rock')

print(instanX.daftar)
print(instanY.daftar)

Perbedaan dengan contoh sebelum ini anya terletak pada:

def __init__ (self):


self.daftar = []

Contoh hasil pengujian skrip dapat dilihat berikut ini:

Tampak bahwa data untuk masing-masing instan (objek) bersifat independen.

11.4 Objek Sebagai Parameter Fungsi


Objek pun dapat dilewatkan ke fungsi. Contoh dapat dilihat pada skrip berikut:
#contoh objek sebagai parameter fungsi

class Hewan:
def __init__ (self, nama):
self.nama = nama

def info(self):
print('Nama:', self.nama)

179
def lewatkanObjek (obj):
obj.info()

#bagian utama
pet = Hewan ('Kelinci')
lewatkanObjek(pet)

Pada skrip ini, fungsi lewatkanObjek () mengandung parameter berupa objek. Contoh hasil
pengujian skrip dapat dilihat berikut ini:

11.5 Senarai Objek


Senarai tidak hanya dapat berisi tipe sederhana seperti bilangan dan string tetapi juga bisa
berupa objek. Skrip berikut memberikan contoh senarai objek:

#contoh objek sebagai parameter fungsi

class Hewan:
def __init__ (self, nama):
self.nama = nama

def info(self):
print('Nama:', self.nama)

#bagian utama
daftarHewan = []

#tambahkan lima objek hewan


daftarHewan.append(Hewan('Kelinci'))
daftarHewan.append(Hewan('Kucing'))
daftarHewan.append(Hewan('Kuda'))
daftarHewan.append(Hewan('Kijang'))
daftarHewan.append(Hewan('Kalkun'))

180
#tampilkan isi larik
for indeks in range (0, len(daftarHewan)):
daftarHewan[indeks].info()

Pada skrip ini, perintah berikut digunakan untuk membuat senarai kosong bernama
daftarHewan:

daftarHewan=[]

Contoh hasil pengujian skrip dapat dilihat berikut ini:

11.6 Objek Sebagai Nilai Balik Fungsi


Objek dapat dijadikan sebagai nilai balik fungsi. Contoh mengenai hal ini dapat dilihat pada
skrip berikut:

#contoh nilai balik fungsi berupa objek


class Hewan :
def __init__ (self, nama):
self.nama = nama

def info(self):
print('Nama:', self.nama)

def buatObjekHewan (nama):


"""Fungsi dengan nilai balik berupa objek"""
hewan = Hewan (nama)
return hewan
#bagian utama
pet = buatObjekHewan ('Kelinci')
pet.info ()

181
pet = buatObjekHewan ('Kucing')
pet.info ()

Pada fungsi ini, return hewan merupakan perintah untuk memberikan nilai balik berupa
objek berkelas hewan. Contoh hasil pengujian skrip dapat dilihat berikut ini:

11.7 Penghapus Objek


Suatu objek dapat dihapus dengan menggunakan fungsi del(). Contoh dapat dilihat berikut:

Setelah del(objekMusik) dieksekusi objek ini sudah tidak ada lagi.


11.8 Penyelesaian Masalah Menggunakan Kelas dan Objek
Beberapa contoh permasalahan yang memerlukan kelas dan objek dibahas di sini.
Contoh 1 Kelas Bilangan Bulat
Buatlah kelas bernama BilanganBulat konstruktornya dapat digunakan untuk
memberikan nilai awal berupa bilangan bulat. Kelas memiliki metode-metode seperti
berikut:

182
• ganjil(): memberikan nilai balik berupa True untuk bilangan ganjil atau False untuk
bilangan genap.
• lebihKecilDaripada (x): memberikan nilai True kalau bilangan lebih kecil atau False
untuk sebaliknya.
• lebihBesarDaripada (x): memberikan nilai True kalau bilangan lebih besar atau
False untuk keadaan sebaliknya.
• samaDengan(x): memberikan nilai True kalau bilangan sama dengan x atau False
untuk sebaliknya
• perolehBilangan(): memberikan nilai balik berupa nilai bilangan bulat yang
disipman pada objek.

Perwujudan kelas ini dapat dilihat pada skrip berikut :


#contoh pembuatan kelas Bilangan Bulat
class BilanganBulat :
def __init__ (self, bilangan):
self.bilangan = bilangan
def ganjil(self):
return self.bilangan % 2 == 1
def lebihBesarDaripada(self, bilangan):
return self.bilangan > bilangan
def lebihKecilDaripada(self, bilangan):
return self.bilangan < bilangan
def samaDengan (self, bilangan):
return self.bilangan == bilangan
#bagian utama
bil = BilanganBulat (2)
print(bil.perolehBilangan (),
'adalah bilangan ganjil:',
bil.ganjil())
print(bil.perolehBilangan (),
'lebih Besar Daripada 3:',
bil.lebihBesarDaripada(3))
print(bil.perolehBilangan (),
'lebih Kecil Daripada 3',
bil.lebihKecilDaripada(3))
print(bil.perolehBilangan (),

183
'sama dengan 3:',
bil.samadengan(3))

Contoh hasil pengujian skrip dapat dilihat berikut ini:

Contoh 2 Pembuatan Tumpukan


Tumpukan adalah struktur data yang dapat diwujudkan dengan menggunakan
senarai.pada struktur ini, penambahan dan pengambilan data hanya bisa dilakukan dari
satu ujung. Tiga metode utama berupa:
• Tumpukan() untuk menambahkan data diatas tumpukan;
• Ambil() untuk mengambil data paa puncak tumpukan;
• Kosong()untuk mengetahui tumpukan dalam keaddan kosong atau tidak.

Berikut adalah gambar tumpukan:

Gambar 11.3 Nama yang sama harus dibedakan

184
Ujilah skrip dengan memasukan sejumlah data dan kemudian mengambil keseluruhan
data. Tumpukan bisa diwujudkan dengan menggunakan senarai. Perwujudannya dapat dilihat
pada skrip berikut ini:

#contoh struktur data tumpukan


class Tumpukan :
def __init__n(self):
self.senarai = []
def kosong (self):
if len (self.senarai) == 0:
return True
else:
return False
def tumpuk (self, data):
self.senarai.insert(0, data)
def ambil (self):
if self.kosong ():
return ''
else:
data = self.senarai[0]
self.senarai.pop(0)
return data
#bagian utama
tumpukan = Tumpukan ()
tumpukan.tumpuk('Amsterdam')
tumpukan.tumpuk('Berlin')
tumpukan.tumpuk('Charlotte')
tumpukan.tumpuk('Da Nang')
tumpukan.tumpuk('Edinburgh')

#ambil isi tumpukan


print('Isi tumpukan dari paling atas',
'hingga paling bawah:')
while not tumpukan.kosong():
data = tumpukan.ambil()
print(data)

Contoh hasil pengujian skrip dapat dilihat berikut ini:

185
Dengan sendirinya dapat digunakan untuk menyatakan tumpukan walau dengan
perspektif yang berbeda dengan gambaran di depan.

Contoh 3 Validasi tanda kurung

Buatlah kelas yang dapat digunakan untuk memvalidasi pasangan tanda kurung dalam
suatu string. Pasangan kurung yang diperiksa adalah:
[]
{}
()

Penulisan seperti berikut valid :


b = {(a+1) * s[2]}
namun , penulisan berikut tidak valid:

(x+y[3}+x{0])

Solusi : permasalahan ini dapat diterapkan dengan memasukan tanda {, (, dan [ setiap
dijumpai, karakter ini ke dalam senarai. Karakter selain ketiga jenis kurung penutup ditemukan,
satu karakter di tumpukan diambil dan dibandingkan dengan pasangan karakter tersebut. Jika
kedua karakter sudah pasti bahwa string tidak valid.

Perwujudannya dapat dilihat pada skrip berikut ini:


#deteksi keabsahan kurung
class TandaKurung:

186
def absah (self, strX):
tumpukan = []
kamusKurungBuka = {'(': ')', "{": "}", "[": "]"}
dafKurungTutup = [')', '}', ']']
for kar in strX:
if kar in kamusKurungBuka:
tumpukan.append(kar)
elif kar not in dafKurungTutup:
pass
elif len(tumpukan) == 0 or \
kamusKurungBuka [tumpukan.pop()] != kar:
return False
return len (tumpukan) == 0
#bagian utama
kurung = TandaKurung ()
print(kurung.absah('() {} []'))
print(kurung.absah('() {} [)'))
print(kurung.absah('(())'))
print(kurung.absah('x = (a+b[1])*2,s={2, 3}'))

Berbagai pengujian string yang mengandung pasangan ketiga jenis kurung diberikan.
Contoh hasil pengujian skrip dapat dilihat berikut ini:

187
RANGKUMAN

1. Pada pemrograman berorientasi objek, kelas menjadi dasar pembentukan objek. Satu kelas
dapat dipakai untuk membentuk sejumlah objek atau kadang disebut instan kelas.
2. Pada saat objek diciptakan, nilai untuk semua properti belum ditentukan secara eksplisit.
Secara implisit, string kosong dan nilai nol digunakan sebagai nilai bawaan. Pemberian nilai
pada properti baru dilakukan saat metode aturNoPolisi(), aturModel(), aturTahunProduksi ()
dipanggil.
3. Variabel atau properti di kelas dapat dibedakan menjadi variabel kelas dan variabel instan.
Variabel kelas adalah variabel yang bersifat menjadi milik bersama untuk semua instan.
4. Senarai tidak hanya dapat berisi tipe sederhana seperti bilangan dan string tetapi juga bisa
berupa objek.

DAFTAR PUSTAKA

1. Kadir, A. (2014) Pengenalan system Informasi Edisi Revisi, Yogyakarta: Penerbit Andi
2. Kadir, A. dan Triwahyuni, T. C. (2014) Pengantar Teknologi Informasi Edisi Revisi, Yogyakarta:
Penerbit Andi.

LATIHAN

1. Kembangkan skrip tumpukan.py sehingga bisa digunakan untuk membaik string yang
dimasukkan dari papan-ketik.
Contoh:
String: abcdefghij
Hasil: jihgfedcba
2. Buatlah contoh program membentuk kelas dan objek?

188
3. Buatlah kelas bernama lingkaran yang memungkinkan jari-jari lingkaran dimasukkan ketika
objek digunakan. Kelas memiliki metode yang masing-masing digunakan untuk memperoleh
jari-jari lingkaran, buatlah kelas berikut?
4. Buatlah kelas temperatur. Kelas ini mempunyai metode yang digunakan untuk
mengonversikan nilai suhu dalam Celcius ke Fahrenheit dan juga metode untuk
mengkonversikan nilai suhu dan Fahrenheit ke Celcius?
5. Kembangkan skrip tumpukan.py sehingga bisa digunakan untuk membalik string yang
dimasukkan dari papan ketik?
Contoh:
String: abcdefghij
Hasil: jihgfedcba

189
BAB 12
EKSPRESI DAN PENANGANANNYA

CAPAIAN PEMBELAJARAN

• Mahasiswa mampu merancang, mengkode dan mengembangkan ekspresi dan


penaganan untuk jenis ekspresi, penggunaan pass pada excepsi dan pelontaran dalam
ekspresi.

MATERI

12.1 Pengantar Eksepsi


Ketika suatu kesalahan terjadi suatu peryataan dieksekusi, phython segera menghentikan
eksekusi dan menampilkan pesan kesalahan,Perhatikan peryataan di bawah ini :
Print (alamat); print(‘-------------‘)
Print (alamat) dan print (‘-----------‘).

Mengingat variabel alamat tidak tersedia, pernyataan print(alamat), python melontarkan


eksepsi sehingga muncul pesan seperti di depan. Pada keadaan seperti ini, eksekusi segera
dihentikan dan pernyataan berikutnya, yaitu print (‘-----------------‘) tidak dijalankan.
Sesungguhnya, eksepsi berarti kesalahan yang gerjadi ketika suatu pernyataan di eksekusi.
Keadaan seperti ini bisa terjadi kapan saja ketika suatu perintah dieksekusi oleh interpreter
python.Penyebabnya bisa bervariasi seperti yang di jabarkan pada poin-poin berikut:
• Objek yang dilibatkan dalam suatu erintah tidak ada;
• Terjadi pembagian dengan bilangan nol;
• konversi kebilangan bulat tidak dapat dilakukan karena string yang dikonversi tidak
menyatakan bilangan.

Pada saat eksepsi terjadi, python menampilkan nama eksepsi beserta pesan penjelasanya.
NameError pada contoh di depan merupakan nama eksepsi yang terjadi:
Name ‘alamat’ is not defined

190
Dalam praktik, eksepsi yang menghentikan eksekusi, terutama dalam skrip, terkadang tidak
dikehendaki. Oleh karenanya diperlukan penanganan eksepsi yang dapat di gunakan untuk
mengontrol eksekusi perintah.

12.2 Jenis Eksepsi


Daftar eksepsi pada python dapat di ketahui dengan menuliskan perintah dir
(___builtin___). Nama-nama eksepsi umumnya ditandai dengan kata error, misalnya IOError dan
KeyError. Berikut nama eksepsi dan keterangannya:
1) AtributeError
Hal ini terjadi sekiranya terdapat penyebutan atribut yang sebenarnya tidak dimiliki oleh
objek yang disebut.
2) ModuleNotFoundError
Eksepsi ini timbul karena modul yang di impor tidak ada.
3) IndexError
Ekseps ini terjadi kalau indeks di luar jangkauan yang tersedia disebut.
4) IOError
Eksepsi ini terjadi kalau terdapat operasi masukan atau keluaran yang mengalami
kegagalan.
5) KeyboardInterrupt
Eksepsi ini muncul kalau terdapat interupsi dari pemakai yang menekan tombol Ctrl+C.
6) KeyError
Eksepsi ini muncul kalau kunci yang digunakan tidak tersedia pada kamus.
7) NameError
Eksepsi ini muncul kalau terdapat penyebutan nama objek yang tidak di kenal.
8) SyntaxError
Eksepsi ini muncul kalau terdapat kesalahan secara sintaksis.
9) TypeError
Eksepsi ini terjadi kalau terjadi suatu operasi terhadap objek yang sebenarnya tidak di
dukung.

191
10) ValueError
Eksepsi terjadi karena pemberian nilai argumen yang salah.
11) ZeroDivisionError
Eksepsi ini terjadi karena terdapat pembagian bilangan dengan nol.

12.3 Penanganan Eksepsi


Penanganan eksepsi di maksudkan untuk menangani keadaan ketika suatu eksepsi
terlontar. Hal ini di laksanakan dengan menggunakan pernyataan try...catch. gambar berikut
bentuk pernyataannya:
try:
Pernyataan_a1
...
Pernyataan_a1
except [nama_ekspresi];
Pernyataan_b1
...
Pernyataan_bn
[else;
Pernyataan_c1
...
Pernyataan_cn
]

Bagian [] menyatakan opsional. Artinya, bagian ini bisa ada ataupun tidak ada. Ketika
suatu eksepsi terjadi saat pernyataan_a1 hingga pernyataan_an di eksekusi, eksekusi akan di
lanjutkan ke except. Dalam hal ini, jika eksepsi yang terjadi sama dengan nama _eksepsi,
pernyataan_b1 hingga pernyataan _bn dijalankan. Adapun bagian else (pernyataan_c1 hingga
pernyataan_c2) di jalankan hanya kalau pernyataan_a1 hingga pernyataan_an tidak mengalami
eksepsi.
Perhatikan bahwa pada pemasukan data yang pertama tidak bermasalah karena yang di
masukkan adalah bilangan. Namun, pada contoh kedua yang di masukkan adalah bilangan .
namun, pada contoh kedua, string yang dimasukkan. Hal ini membuat, int ( ) menimbulkan
eksepsi karena tidak berhasil mengonversi string menjadi bilangan bulat.

192
Pada kasus pemasukan data seperti ini, akan lebih baik jika eksepsi bisa dikendalikan
sehingga pemakai diberi kesempatan untuk memasukkan data yang bener. Ketika terjadi eksepsi
pada keadaan seperti itu, skrip dapat diatur upaya menampilkan pesan kesalahan dan kemudian
meminta pemakai memasukkan kembali data dari papan ketik.
Berikut contog programnya

Dengan menuliskan except ValueError as e: maka pesan eksepsi dapat di peroleh melalui
str(e). Berikut adalah hasil pengujian skrip pesanbawaan.py:

193
12.4 Penggunaan pass pada except
Terkadang di jumpai pernyataan pass pada bagian except. Pernyataan ini di sertakan
apabila tidak di kehendaki untuk melakukan tindakan apa-apa sewaktu suatu eksepsi terjadi.
Berikut betuk programnya.

Hasil dari program tersebut adalah sebagai berikut :

194
Mekanisme perhitungan jumlah elemen pada senarai infomobil di lakukan seperti
berikut. Pernyataan try..except di gunakan untuk menangani eksepsi pada int (). Sekiranya tidak
ada eksepsi pada int (). Sekiranya tidak ada eksepsi, pernyataan jumlah = jumlah + 1 akan
dijalankan. Hal ini akan membuat nilai jumlah naik sebesar 1. Sekiranya terjadi eksepsi, misalnya
ketika mengonversi int (‘Avanza’), pernyataan pass pada bagian except di jalankan, yang
sebenarnya tidak menjalankan apa-apa. Hal tersebut akan di ulang untuk semua elemen di
senarai info, yang di atur melalui: for nilai in infoMobil:

12.5 Pernyataan try..finally


Selain bentuk try yang telah di bahas di depan, terdapat pula try yang di sertai dengan
finally. Seperti gambar brikut ini :
try:
Pernyataan_a1
...
Pernyataan_an
[except nama_ekspresi:
Pernyataan_b1
...
Pernyataan_bn]
[else:
Pernyataan_c1
...
Pernyataan_cn
]
Finally:
Pernyataan_d1
...
Pernyataan_dn

Tanda [ ] pada bagian except menyatakan bahwa bagian except bersifat opsional. Adapun
bagian finally berisi pernyataan-pernyataan yang akan selalu di ekseskusi pada pernyataan_a1
hingga pernyataan_an ataupun tidak. Berikut contoh program nya.

195
Bagian try di gunakan untuk membuka berkas yang di nyatakan dalam berkas dan
menampilkan isinya. Pembukaan berkas ditangani oleh:
Pegangan = open (berkas, ‘r’)
Objek pegangan berhubungan dengan berkas yang dibuka. Argumen ‘r’ menyatakan bahwa
berkas yang digunakan hanya untuk operasi pembacaan data. Isi seluruh berkas yang terbuka di
baca melalui:
Konten = pegangan.read( )
Dengan demikian, konten berisi seluruh data berkas yang terkait dengan objek pegangan.

12.6 Pelontaran Eksepsi


Adakalanya di perlukan untuk melontarkan eksepsi jika terdapat keadaan yang tidak valid.
Hal seperti ini diperlukan ketika kita membuat sebuah fungsi.
Pelontaran eksepsi di lakukan dengan menggunakan pernyataan raise. Berikut contoh
programnya.

196
Defenisi fungsi faktorial ( ), pernyataan tersebut di gunakan untuk melontarkan eksepsi:
dalam hal ini eksepsi di lontarkan ketika n bernilai kurang dari 0.

12.7 Penggunaan AssertionError


Eksepsi bernama AssertionError dapat di manfaatkan untuk menghentikan eksekusi skri
jika kondidi tertentu di jumpai. Eksepsi ini dapat di bangkitkan melalui pernyataan assert( ).
Penggunaan perintah ini seperti berikut:
Assert(kondisi), ‘string eksepsi’
Dalam hal ini, jika kondisi bernilai false, ‘string’ aka menjadi string pada AssertionError.
Jika kondisi bernilai true, tidak akan terjadi apa-apa.

12.8 Penyelesaian Masalah Menggunakan Penanganan Eksepsi


Contoh 1 Pemeriksaan argumen baris perintah valid atau tidak.
Sebagai contoh buatlah skrip yang dapat menerima dua argumen baris perintah dengan
argumen pertama berupa bilangan pecahan dan argumen kedua berupa bilangan bulat. Jika tidak
memenuhi syarat, berikan pesan yang sesuai. Jika sudah sesuai, tampilkan argumen pertama
sebanyak nilai argumen kedua.

197
Untuk solusi pada persoalan ini dapat di pecahkan dengan menangani eksepsi ValueError
pada saat menngunakan float( ) dan int( ) untuk melakukan konversi argumen baris perintah.

Penanganan kesalahan pada perhitungan resistor paralel


Memberikan perwujudan sederhana untuk menghitung pengganti tiga resistor yang di
pasang secara paralel. Ketiga resistor tersebut sebenarnya dapat diwakili dengan satu resistor.
Permasalahan ini dapat ditangani dengan menangani eksepsi ZeroDivisionError,
VallueError, dan Exception.

Fungsi untuk membaca bilangan positif


Buatlah fungsi yang dapat di gunakan untuk membaca bilangan positif melalui input ( ).
Jika data yang di masukkan tidak positif, fungsi akan membangkitkan eksepsi dengan pesan
“bilangan harus positif”. Jika bukan bilangan yang di masukkan, eksepsi dengan pesan “harus
berupa bilangan” di bangkitkan. Gunakan fungsi tersebut dalam skrip hingga suatu bilangan yang
valid di berikan dan kemudian bilangan tersebut di tampilakan. Berikut program nya.

198
RANGKUMAN

1. Ketika suatu kesalahan terjadi suatu peryataan dieksekusi, phython segera menghentikan
eksekusi dan menampilkan pesan kesalahan
2. Nama-nama eksepsi umumnya ditandai dengan kata error, misalnya IOError dan KeyError.
3. Penanganan eksepsi di maksudkan untuk menangani keadaan ketika suatu eksepsi terlontar.
Hal ini di laksanakan dengan menggunakan pernyataan try...catch.
4. Terkadang di jumpai pernyataan pass pada bagian except. Pernyataan ini di sertakan apabila
tidak di kehendaki untuk melakukan tindakan apa-apa sewaktu suatu eksepsi terjadi.

DAFTAR PUSTAKA

1. Kadir, A. (2019).Logika Pemprograman PYTHON. Jakarta: Gramedia


2. Halterman, L.R (2011) Learning to Program with Python, [Online]
3. Hetland, M.L. (2008) Beginning Python: From Novice to Prefessional, Barkeley: Apress.

LATIHAN

1. Buatlah fungsi bernama adalahGelap () yang memberikan nilai balik berupa True sekiranya
argumennya berupa bilangan genap atau False juka argumennya berupa bilangan ganjil.
Fungsi ini membangkitkan ekspresi berupa ‘Argumen harus berupa bilangan bulat’ sekiranya
argumen bukan berupa bilangan bulat. Ujilah fungsi berikut?
2. Buatlah fungsi bernama adalahReal () yang dapat digunakan untuk memeriksa suatu string
argumennya berupa bilangan real atau tidak. Hasilnya True atau False?
3. Buatlah 3 skrip menurut anda dan buat perbedaan untuk ekspresi dan penanganannya?

199
Lampiran Lembar Penilaian Peer Reviewer

200
201

Anda mungkin juga menyukai