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
KOMPUTASI NUMERIK
TIM PENYUSUN:
Penanggung Jawab
Penyusun
Diterbitkan Oleh:
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.
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
KATA PENGANTAR......................................................................................................................... iv
DAFTAR TABEL.................................................................................................................................x
DAFTAR GAMBAR...........................................................................................................................xi
vi
4.7 Penulisan Program ............................................................................................................ 29
4.8 Pengujian Program............................................................................................................ 30
vii
5.8 Berbagai Penyelesaian Masalah dengan Struktur Seleksi ................................................ 95
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
ix
DAFTAR TABEL
Halaman
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 4.2 Contoh penggunaan operator relasional pada data strin .............................................. 69
x
DAFTAR GAMBAR
halaman
Gambar 1.3 Pedoman utk mengonversi bilangan pada sistem biner ke sistem desimal .............. 9
Gambar 4.2 Evaluasi hubung singkat pada kondisit and kondisi 2 ................................................ 77
Gambar 5.2 Kemungkinan penerapan pada struktur seleksi satu alternative .............................. 85
xi
BAB I
SISTEM KOMPUTER
CAPAIAN PEMBELAJARAN
MATERI
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.
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.
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).
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
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.
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)
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
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
17
LATIHAN
18
BAB 2
PEMROGRAMAN KOMPUTER UNTUK PENYELESAIAN MASALAH
CAPAIAN PEMBELAJARAN
MATERI
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.
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.
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.
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
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
LATIHAN
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
MATERI
34
Sebagai contoh, string memiliki banyak metode. Salah satu metodenya bernama upper ().
Nah, objek string dapat dibentuk dengan menuliskan seperti berikut:
nama = 'Fiska’
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.
35
Gambar 3.1 Konsep pemrosesan dalam program
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
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
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.
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.
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
>>>
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.
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).
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.
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.
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)
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
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.
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().
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>
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
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
MATERI
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.
65
Pernyataan 1 salah
Kon
disi
Kond salah
Pernyataan 2 isi?
benar
benar
Pernyataan 3 Pernyataan A Pernyataan B
pernyataan
sekuensial perulangan
seleksi
66
Berkas : truefalse.py
C:\LaPython>python truefalse.py
Nilai True dan False
Nilai True = True
Nilai False = False
C:\Latpython>
67
Hasil benar sekiranya kedua operan tidak
bernilai sama atau
salah untuk keadaan sebaliknya.
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
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
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
69
'A' > 'a' String 'A' lebih besar Salah, Nilai ASCII
daripada string 'a'? 'A' sama dengan
65,
sedangkan nilai
ASCII 'a' adalah 97
Contoh penggunaan operator relasional dapat dilihat pada beberapa persoalan berikut.
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 ;
keadaan – False
Akhir berkas
71
Nilai keadaan pada awal = False
Nilai keadaan melalui not keadaan = True
Nilai keadaan melalui not keadaan = False
C:\LatPython>
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
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
hurufKapital = karakter >= 'A ' and karakter <= ' Z '
hurufKecil= karakter >= 'a' and karakter <= 'z'
angka = karakter >= '0' and karakter <= '9'
• 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>
74
angka = karakter > '0' and karakter < '9';
Akhir Berkas
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.
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'
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
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
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.
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
Akhir berkas
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
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
81
BAB 5
PENYELESAIAN MASALAH DENGAN STRUKTUR SEKUENSIAL DAN SELEKSI
CAPAIAN PEMBELAJARAN
MATERI
Pernyataan 1
Pernyataan 2
Pernyataan 3
82
Usia = int (data)
print ('Usia Anda sebentar lagi menjadi', usia + 1)
Akhir berkas
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
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
# Tampilkan hasilnya
print ('Dolar =', dolar)
Akhir berkas
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
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
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
86
Benar A
Nilai
==1?
salah
Nilai Benar
B
==2?
salah
Nilai == Benar
C
3?
salah
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
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 ('---------------------------------')
# Tampilkan hasilnya
print ('Bilangan terbesar =', terbesar)
Akhir berkas
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>
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
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 = '))
# Tampilkan hasilnya
print ('Bilangan terbesar =', terbesar))
Akhir berkas
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>
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
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>
if kondisi1:
...
else:
if kondisi2:
...
else:
if kondisi3:
...
else :
...
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 ('-------------------------------')
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
95
Perwujudan dalam bentuk skrip adalah seperti berikut:
Berkas : terkecil.py
# Penentuan bilangan terkecil
# di antaratiga bilangan
# Versi 1
Akhir berkas
C: \LatPython>
96
RANGKUMAN
DAFTAR PUSTAKA
LATIHAN
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 !’)
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
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')
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
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.
Berkas : Whileganjil.py
Hitungan = 1
While hitungan <= n:
Print ( * hitungan – 1, end = ‘ ‘ )
102
Hitungan = hitungan + 1
Akhir berkas
C: \LatPyhton>Pyhton whileganjil.py
Deret N bilangan ganjil
= == == = == == = =
N=7
1 3 5 7 9 11 13
C: \LatPyhton>
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.
Berkas : terusberulang.py
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
Bilangan = bilangan – 1
Untuk menghentikan perulangan yang tidak pernah berhenti ketika skrip dijalankan, tombol
Ctrl+C perlu ditekan:
104
File “terusberulang.py, line 5, in <module>
Print (bilangan)
keyboardInterrupt
Berkas : elseWhile.py
# contoh else pada while
Bilangan = 1
While bilangan <= 5:
Print (bilangan)
Bilangan = bilangan + 1
else:
print (‘***’, bilangan,
‘- > pemberhentian perulangan’)
Akhir berkas
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>
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>
Berkas : for5sd1.py
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
Akhir berkas
Hasil pengujian skrip
C: \LatPyhton>Pyhton elsefor.py
B
r
a
v
o
*** o huruf terakhir yang diproses
C: \Latpyhton
Berkas : breakfor.py
# contoh untuk menunjukkan efek break
# pada for
108
if bilangan = = 5 :
Break
Print (bilangan)
else:
print (‘*** Akhir for’ )
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.
109
Skrip berikut menunjukkan continue pada for :
# Skrip untuk menunjukkan efek continue
# pada for
Print (bilangan)
Berkas : kotak.py
# contoh pembuatan kotak
# tampilkan 2 n symbol *
For kolom in range ( 1, 2, * n + 1) :
Print (‘*’, end = ‘’)
110
Print( ‘ * ’ )
# tampilkan 2 n symbol *
For kolom in range (1, 2 * n + 1) :
Print (‘ * ‘, end = ‘ ’ )
Akhir berkas
C: \Latpyhton>python kotak.py
Pembuatan kotak
--- -----------------
n ( lebih besar daripada 2 ) = 7
**************
* *
* *
* *
* *
* *
**********
C: \Latpyhton>
Berkas : prima.py
# penentuan bilangan prima
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
LATIHAN
113
5
55
5 55
5 5 55
55 5 5 5
114
BAB 7
OPERASI STRING
CAPAIAN PEMBELAJARAN
MATERI
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 :
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
>>>
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
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
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
Jumkarakter = len(kalimat)
Teks = kalimat [ : : -1 ]
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
>>>
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
DaftarX = ‘AEIOU’
daftarY = ‘aeiou’
daftarZ = ‘*@’
akhir berkas
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
Akhir berkas
C: \Latpyhton>python karperbaris . py
Penyajian karakter perbaris
…………………………….
125
Masukkan string : Bravo
B
R
A
V
O
C: \Latpyhton>
hasil = ‘ ‘
while len(strBil) > 3:
hasil = hasil + ‘ . ‘ + strBil[-3 ; ]
strBil = strBil [ : -3 ]
hasil = strBil + 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
LATIHAN
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
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().
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.
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 :
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
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)
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:
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.
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 [].
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
135
t = (Agya, 2018, Biru, 1300)
print(t)
(Agya, 2018, Biru, 1300)
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.
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.
137
traceback (most recent call last):
file “<stdin>” line 1, in <module>
NameError : name ‘t1’ is not defined
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
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
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:
Untuk menghindari timbulnya eksepsi KeyError, metode get () bisa digunakan. Contoh:
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 :
Tampak bahwa semula nilai untuk TV-002 berupa 5. Namun, setelah berubah menjadi
Inventori [TV-002] = 4 dieksekusi, nilainya berubah jadi 4.
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.
C:\LatPython>python perolehkunci.py
144
TV-001
TV-002
TV-003
C:\LatPython
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).
145
Blue : biru
Green : hijau
White : putih
Yellow :
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}
146
himpunanKosong = set ()
# Contoh kamus
himpunanWarna('Merah', 'Jingga', Kuning', Hijau', Biru', 'Nila', Ungu' }
147
for warna in himpunanWarna:
print (warna)
C:\LatPython>
h = (1, 2, 3, 4)
print (h)
(1 2, 3, 4)
h.update ( [1, 2, 9, 4])
print (h)
{1, 2, 3, 4, 9}
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()
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]
Contoh:
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.
Hasil ini menyatakan bahwa paketA adalah Subhimpunan paketB, tetapi tidak untuk
sebaliknya.
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.
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>
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’]
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
LATIHAN
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
MATERI
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.
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:
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
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)
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
().
#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.
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.
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.
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:
#Bagian utama
print(‘Hasil pemisahBaris () :’)
pemisahBaris()
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 :
#bagian utama
print ('Rata-rata pertama =',
rerata (10,20,30))
print ('Rata-rata kedua =',
rerata (10,20,30,40,50))
165
dibuat dengan menggunakan kata-kunci lambda. contohnya lambda [arg1 [, arg2,. . . ,argn]]:
ekspresi
Fungsi anonim ini digunakan untuk mendapatkan nilai terbesar dari ketiga argumen (bil1
hingga bil3). Dengan hasil skrip diatas :
Bilangan terbesar : 80
Bilangan terbesar :200
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:
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
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))
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
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
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
>>> 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).
def namaMetode(daftarParameter):
pernyataan_1
...
pernyataan_n
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.
#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 ... ')
#bagian utama
print('skrip dijalankan ...')
#pembuatan objek di bagian utama skrip
tirano = Dinosaurus ('Tiranosaurus')
#panggil fungsi
print()
masaPurba ()
print()
Pada skrip ini destruktor hanya digunakan untuk menjalankan perintah berikut:
176
print(self.jenis, ‘punah’)
Terlihat bahwa destruktor untuk objek ini dijalankan ketika eksekusi skrip berakhir.
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.
class MusikKesukaan:
daftar = [] #senarai kosong
178
self.daftar.append (musik)
#bagian utama
instanX = MusikKesukaan ()
instanY = MusikKesukaan ()
instanX.tambahkan ('Jazz')
instanY.tambahkan ('Rock')
print(instanX.daftar)
print(instanY.daftar)
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:
class Hewan:
def __init__ (self, nama):
self.nama = nama
def info(self):
print('Nama:', self.nama)
#bagian utama
daftarHewan = []
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=[]
def info(self):
print('Nama:', self.nama)
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:
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.
183
'sama dengan 3:',
bil.samadengan(3))
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:
185
Dengan sendirinya dapat digunakan untuk menyatakan tumpukan walau dengan
perspektif yang berbeda dengan gambaran di depan.
Buatlah kelas yang dapat digunakan untuk memvalidasi pasangan tanda kurung dalam
suatu string. Pasangan kurung yang diperiksa adalah:
[]
{}
()
(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.
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
MATERI
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.
191
10) ValueError
Eksepsi terjadi karena pemberian nilai argumen yang salah.
11) ZeroDivisionError
Eksepsi ini terjadi karena terdapat pembagian bilangan dengan nol.
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.
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:
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.
196
Defenisi fungsi faktorial ( ), pernyataan tersebut di gunakan untuk melontarkan eksepsi:
dalam hal ini eksepsi di lontarkan ketika n bernilai kurang dari 0.
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.
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
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