Anda di halaman 1dari 123

ALGORITMA PEMOGRAMAN

Pendekatan Praktis Menggunakan


Python
ALGORITMA PEMOGRAMAN
Pendekatan Praktis Menggunakan Python

Husni
Aeri Rachmad
ALGORITMA PEMOGRAMAN
Pendekatan Praktis Menggunakan Python

Penulis:
Husni
Aeri Rachmad

Editor:
Erik Santoso

Layouter :
Tim Kreatif PRCI

Cover:
Rusli

Cetakan Pertama : Desember 2021

Hak Cipta 2021, pada Penulis. Diterbitkan pertama kali oleh:


Perkumpulan Rumah Cemerlang Indonesia
ANGGOTA IKAPI JAWA BARAT
Pondok Karisma Residence Jalan Raflesia VI D.151
Panglayungan, Cipedes Tasikmalaya – 085223186009

Website : www.rcipress.rcipublisher.org
E-mail : rumahcemerlangindonesia@gmail.com

Copyright © 2021 by Perkumpulan Rumah Cemerlang Indonesia


All Right Reserved

- Cet. I – : Perkumpulan Rumah Cemerlang Indonesia, 2021


; 18 x 25 cm
ISBN : 978-623-5847-34-4

Hak cipta dilindungi undang-undang


Dilarang memperbanyak buku ini dalam bentuk dan dengan
cara apapun tanpa izin tertulis dari penulis dan penerbit

Undang-undang No.19 Tahun 2002 Tentang


Hak Cipta Pasal 72
Undang-undang No.19 Tahun 2002 Tentang Hak Cipta
Pasal 72

Barang siapa dengan sengaja melanggar dan tanpa hak melakukan perbuatan sebagaimana
dimaksud dalam pasal ayat (1) atau pasal 49 ayat (1) dan ayat (2) dipidana dengan pidana
penjara masing-masing paling sedikit 1 (satu) bulan dan/atau denda paling sedikit
Rp.1.000.000,00 (satu juta rupiah), atau pidana penjara paling lama 7 (tujuh) tahun dan/atau
denda paling banyak Rp.5.000.000.000,00 (lima miliar rupiah).

Barang siapa dengan sengaja menyiarkan, memamerkan, mengedarkan, atau menjual kepada
umum suatu ciptaan atau barang hasil pelanggaran hak cipta terkait sebagai dimaksud pada ayat
(1) dipidana dengan pidana penjara paling lama 5 (lima) tahun dan/atau denda paling banyak
Rp.500.000.000,00 (lima ratus juta rupiah)
KATA PENGANTAR

Alhamdulillah, buku Algoritma Pemrograman Pendekatan Praktis


menggunakan Python ini akhirnya rampung penulisannya dan hadir di hadapan
para pembaca. Sesuai judulnya, buku ini memang membahas dasar algoritma
dan pemrograman dengan salah satu bahasa pemrograman yang populer saat
ini: Python.

Buku ini terbagi dalam 10 Bab. Tiga bab pertama fokus pada
penyelesaian masalah (problem solving) yang di dalamnya membahas
algoritma, flowchart, pseudocode dan tentu saja mengenalkan pemrograman
Python. Mungkin pembaca sedikit dibuat bingung oleh kode Python pada
bagian awal buku ini. Jangan khawatir, pada Bab 4 dan seterusnya Pembaca
dapat mengetahui apa itu Python dan bagaimana memanfaatkannya untuk
membuat program komputer yang berkualitas, bagaimana agar algoritma yang
telah dirancang terwujud menjadi aplikasi berjalan dan dapat dilihat hasilnya.

Pembaca pemula, biasanya mahasiswa semester 1 di Jurusan


Informatika atau siapa pun yang baru mempelajari pemrograman, sangat
direkomendasikan membaca buku secara runtut, dari Bab 1 s.d 10. Jika
mengalami kesulitan pada Bab 3, Pembaca dapat melompat sebentar ke Bab 4
dan 5, kemudian kembali lagi ke Bab 3. Bab 3 ini sengaja langsung
menunjukkan bagaimana kode Python mewujudkan Algoritma, bahkan
sebagian telah melibatkan fungsi yang merupakan bahasan akhir dari buku ini.
Pepatah mengatakan “Bingung pertanda mulai memahami”.

Kami haturkan terima kasih kepada banyak pihak yang telah membantu
penulisan buku ini. Pak Aeri, sebagai co-author telah melakukan pekerjaan
yang sempurna untuk menjadikan buku ini lebih santai. Sejujurnya, cikal bakal
buku ini adalah Diktat Kuliah. Sentuhan beberapa orang telah membuatnya
layak menjadi buku Ajar. Walaupun harus diakui masih memerlukan banyak
perbaikan.

Terima kasih kepada Penerbit Rumah Cemerlang Indonesia (RCI) yang


telah bersedia menerbitkan buku ini dalam ketergesaan namun tetap
profesional, termasuk mendesain cover dan melakukan layout yang membuat

Husni & Aeri Rachmad | i


buku ini semakin nyaman bagi Pembaca. Terima kasih juga untuk Mas Doni A.
Fatah yang telah susah payah membantu komunikasi intensif dengan Penerbit
RCI. Semoga kerjasama ini terus berlanjut sehingga Penulis dapat menghasilkan
karya-karya berikutnya dan menjadi sumbangan pengetahuan bagi masyarakat
Indonesia, terutama pelajar, mahasiswa dan praktisi di bidang Teknologi
Informasi.

Bangkalan, Nopember 2021

ii | Algoritma Pemograman Pendekatan Praktis Menggunan Python


DAFTAR ISI

KATA PENGANTAR ...................................................................................................................... I

DAFTAR ISI ................................................................................................................................ III

1. PENYELESAIAN MASALAH ...................................................................................................... 1


1.1 Teknik Penyelesaian Masalah ............................................................................................. 1
1.2 Algoritma ........................................................................................................................... 1
1.3 Pernyataan ........................................................................................................................ 2
1.4 Kondisi ............................................................................................................................... 2
1.5 Aliran Kendali ..................................................................................................................... 3
1.6 Fungsi ................................................................................................................................ 4
1.7 Flowchart ........................................................................................................................... 5
1.8 Pseudocode ....................................................................................................................... 7
1.9 Bahasa Pemrograman ...................................................................................................... 10

2. PENYELESAIAN MASALAH SECARA ALGORITMIK ................................................................... 16


2.1 Memahami Masalah (problem understanding)................................................................. 16
2.2 Memutuskan Hal-hal Terkait Komputasi .......................................................................... 17
2.3 Merancang Algoritma ...................................................................................................... 17
2.4 Membuktikan Kebenaran Algoritma ................................................................................ 18
2.5 Menganalisis Algoritma .................................................................................................... 18
2.6 Mengkodekan Algoritma (coding) .................................................................................... 19
2.7 Iterasi............................................................................................................................... 19
2.8 Rekursi ............................................................................................................................. 20
2.9 Contoh 3 Bentuk Algoritma .............................................................................................. 22

3. PROGRAM DAN SOAL LATIHAN I .......................................................................................... 36


3.1 Contoh Program Python Sangat Sederhana ...................................................................... 36
3.2 Program dengan Perulangan for ...................................................................................... 37
3.3 Program dengan Perulangan while .................................................................................. 38
3.4 Soal-soal Bagian 1 ............................................................................................................ 41
3.5 Soal-soal Bagian 2 ............................................................................................................ 42

4. BAHASA PEMROGRAMAN PYTHON ...................................................................................... 43


4.1 Keunggulan Python .......................................................................................................... 43
4.2 Aplikasi ............................................................................................................................ 44

Husni & Aeri Rachmad | iii


4.3 Interpreter Python .......................................................................................................... 44
4.4 Mode Interpreter Python ................................................................................................ 45
4.5 Numerik .......................................................................................................................... 48
4.6 Sequence: String, List, Tuple ............................................................................................ 49
String .............................................................................................................................. 49
List 51
Tuple .............................................................................................................................. 52
4.7 Mapping: Dictionary ........................................................................................................ 53

5. VARIABEL, EKSPRESI, PERNYATAAN, INPUT-OUTPUT ............................................................55


5.1 Variabel ........................................................................................................................... 55
5.2 Kata Kunci ....................................................................................................................... 55
5.3 Pengenal (Identifier) ........................................................................................................ 57
5.4 Pernyataan dan Ekspresi ................................................................................................. 57
Pernyataan ..................................................................................................................... 57
Ekspresi .......................................................................................................................... 58
5.5 Input dan Output ............................................................................................................. 58
5.6 Komentar ........................................................................................................................ 59
5.7 Docstring ......................................................................................................................... 59
5.8 Baris dan Indentasi .......................................................................................................... 60
5.9 Tanda Petik ..................................................................................................................... 60
5.10 Tuple Assignment .......................................................................................................... 61

6. OPERATOR ............................................................................................................................63
6.1 Operator Aritmatika ........................................................................................................ 63
6.2 Operator Relasi ............................................................................................................... 64
6.3 Operator Assignment ...................................................................................................... 65
6.4 Operator Logika ............................................................................................................... 66
6.5 Operator Bitwise ............................................................................................................. 67
6.6 Operator keanggotaan .................................................................................................... 67
6.7 Operator Identitas. .......................................................................................................... 68
6.8 Presedensi Operator........................................................................................................ 68
6.9 Contoh Program .............................................................................................................. 70

7. SELEKSI KONDISI ...................................................................................................................71


7.1 if ...................................................................................................................................... 71
7.2 if-else .............................................................................................................................. 72
7.3 if-elif-else ........................................................................................................................ 74
7.4 Kondisi Bersarang ............................................................................................................ 76

8. KENDALI PERULANGAN .........................................................................................................79


8.1 Perulangan while ............................................................................................................. 79

iv | Algoritma Pemograman Pendekatan Praktis Menggunan Python


8.2 Perulangan For................................................................................................................. 82
for menggunakan range .................................................................................................. 82
for dalam Sequence ........................................................................................................ 84
8.3 Break, Continue, dan Pass ................................................................................................ 87
8.4 else dalam Perulangan for dan while ............................................................................... 90

9. FUNGSI, STRING DAN LARIK ................................................................................................. 91


9.1 Membuat Fungsi .............................................................................................................. 91
Parameter Posisi ............................................................................................................. 93
Parameter Kata Kunci ...................................................................................................... 93
Parameter Default........................................................................................................... 93
Parameter dengan Panjag Variatif ................................................................................... 94
9.2 String ............................................................................................................................... 97
Slice String ...................................................................................................................... 99
Immutabilitas .................................................................................................................. 99
Fungsi dan Metode String Bawaan .................................................................................. 99
Modul String ................................................................................................................. 101
Karakter Escape ............................................................................................................ 102
9.3 List sebagai Larik ............................................................................................................ 102
Membuat Array ............................................................................................................. 103
Konversi List ke dalam Array ......................................................................................... 103
Metode di dalam Array ................................................................................................. 104

10. PROGRAM DAN SOAL LATIHAN II ..................................................................................... 106


10.1 Contoh Program ........................................................................................................... 106
10.2 Soal-Soal Bagian 1 ........................................................................................................ 107
10.3 Soal-Soal Bagian 2 ........................................................................................................ 109

Husni & Aeri Rachmad | v


1. Penyelesaian Masalah

Pemecahan masalah atau problem solving adalah pendekatan sistematis untuk


mendefinisikan masalah dan mengkreasikan sejumlah solusi. Proses penyelesaian
masalah dimulai dengan pembuatan spesifikasi dari masalah dan diakhiri dengan
pembuatan program yang benar sesuai dengan spesifikasi tersebut.

1.1 Teknik Penyelesaian Masalah


Teknik penyelesaian masalah adalah seperangkat teknik yang membantu dalam
memberikan logika untuk memecahkan masalah. Penyelesaian masalah dapat
dinyatakan dalam bentuk teknik berikut:

1. Algoritma.
2. Diagram alir (flowchart).
3. Kode palsu (pseudocode).
4. Kode program

1.2 Algoritma
Algoritma didefinisikan sebagai urutan instruksi yang mendeskripsikan metode
atau cara untuk menyelesaikan suatu masalah. Secara sederhana, dapat dikatakan
bahwa Algoritma adalah prosedur langkah demi langkah untuk memecahkan
masalah.

Properti atau karakteristik dari Algoritma:

 Harus ditulis dalam bahasa Inggris atau bahasa nasional kita, namun
sederhana dan rinci (detail)
 Setiap instruksi harus tepat dan tidak ambigu.
 Instruksi dalam suatu algoritma tidak boleh diulang tanpa batas, harus
terbatas.
 Algoritma harus tuntas setelah sejumlah langkah yang terbatas.
 Harus memiliki titik akhir
 Hasil akhir harus diperoleh hanya setelah algoritma berakhir.

Husni & Aeri Rachmad | 1


Kualitas algoritma yang baik:

Berikut ini adalah faktor utama yang sering digunakan untuk menilai kualitas dari
suatu algoritma:

 Waktu (time) – Untuk menjalankan suatu program, sistem komputer


membutuhkan waktu tertentu. Semakin kecil waktu yang dibutuhkan,
semakin baik algoritmanya.
 Memori – Untuk menjalankan suatu program, sistem komputer
membutuhkan sejumlah ruang memori. Semakin sedikit memori yang
dibutuhkan, semakin baik algoritmanya.
 Akurasi – Beberapa algoritma dapat menghadirkan solusi yang sesuai atau
benar untuk masalah yang diberikan, beberapa di antaranya mungkin
memberikan hasil yang lebih akurat daripada algoritma lain yang mungkin
juga cocok sebagai solusi.

Contoh:

Tuliskan suatu algoritma untuk mencetak “Selamat Pagi”

Langkah 1: Mulai (Start)


Langkah 2: Cetak ‚Selamat Pagi‛
Langkah 3: Berhenti (Stop)

Algoritma dapat dibangun dari blok bangunan dasar bernama urutan (sequence)
pernyataan, seleksi kondisi dan iterasi (perulangan).

1.3 Pernyataan
Pernyataan (statement) adalah satu tindakan (single action) di dalam komputer.
Dalam pernyataan komputer mungkin mencakup beberapa tindakan berikut:

 Input (masukan): data-informasi yang diberikan ke program


 Proses: memproses data atau melakukan operasi terhadap input yang
diberikan
 Output: keluaran data hasil olahan (processing)

1.4 Kondisi
Transisi dari satu proses ke proses lain dalam kondisi tertentu dengan waktu
tertentu disebut keadaan/kondisi atau state.

2 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


1.5 Aliran Kendali
Proses eksekusi terhadap setiap pernyataan dalam urutan tertentu disebut aliran
kontrol.
Kontrol dapat dijalankan dengan tiga cara:
1. urutan
2. seleksi
3. iterasi

Urutan (sequence): Semua instruksi dieksekusi satu demi satu disebut eksekusi
berurutan.

Contoh: Menambahkan dua angka

Langkah 1: Mulai
Langkah 2: dapatkan a, b
Langkah 3: hitung c = a + b
Langkah 4: Tampilkan c
Langkah 5: Berhenti

Seleksi (memilih pilihan): Pernyataan “pemilihan” menyebabkan kontrol program


dipindah-kan ke bagian tertentu dari program berdasarkan kondisi. Jika hasil uji
kondisi dinilai benar (True) maka satu bagian dari program akan dieksekusi, jika
tidak maka akan mengeksekusi bagian lain dari program (Gambar 1.1).

Gambar 1.1 Proses seleksi kondisi pada sutau algoritma

Husni & Aeri Rachmad | 3


Contoh: Tuliskan algoritma untuk memeriksa apakah seseorang memenuhi syarat
untuk memilih?

Langkah 1: Mulai
Langkah 2: Dapatkan usia
Langkah 3: jika usia >= 18, cetak ‚Memenuhi syarat untuk memilih‛
Langkah 4: jika tidak, cetak ‚Tidak memenuhi syarat untuk memilih‛
Langkah 6: Berhenti

Pengulangan (Iterasi): Dalam beberapa program, serangkaian pernyataan


tertentu dieksekusi berulang kali berdasarkan uji kondisional. Jenis eksekusi
demikian disebut iterasi.

Contoh: Tuliskan algoritma untuk mencetak semua bilangan asli hingga n

Langkah 1: Mulai
Langkah 2: dapatkan nilai n.
Langkah 3: inisialisasi i=1
Langkah 4: jika (i<=n) lanjutkan ke langkah 5, jika tidak
lanjutkan ke langkah 7
Langkah 5: Cetak nilai i dan tambahkan nilai i sebesar 1
Langkah 6: Lanjutkan ke langkah 4
Langkah 7: Berhenti

1.6 Fungsi
Fungsi adalah sub program yang terdiri dari blok kode (himpunan instruksi) yang
melakukan tugas tertentu. Untuk suatu masalah kompleks, masalah dapat dibagi
menjadi tugas-tugas yang lebih kecil dan lebih sederhana selama desain algoritma.

Manfaat Menggunakan Fungsi:

 Pengurangan baris kode


 penggunaan kembali kode
 Keterbacaan yang lebih baik
 Penyembunyian informasi
 Mudah di-debug dan diuji
 Peningkatan pemeliharaan

Contoh: Algoritma penjumlahan dua bilangan menggunakan fungsi (flowchart


dapat dilihat pada Gambar 1.2)

Fungsi utama()
Langkah 1: Mulai

4 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Langkah 2: Panggil fungsi add()
Langkah 3: Berhenti

Sub fungsi add()


Langkah 1: Fungsi mulai
Langkah 2: Dapatkan Nilai a, b
Langkah 3: Tambahkan c = a + b
Langkah 4: Cetak c
Langkah 5: Kembali

Gambar 1.2 Flowchart dari algoritma penjumlahan dua bilangan menggunakan


fungsi
1.7 Flowchart
Diagram alir (flowchart) didefinisikan sebagai representasi grafis dari logika
pemecahan masalah. Tujuan dari flowchart adalah membuat logika program
menjadi jelas dalam representasi visual. Simbol yang sering digunakan dalam
pembuatan flowchart dapat dilihat pada Gambar 1.3. Sebelumnya, pada Gambar
1.2 kita telah melihat flowchart dari algoritma penjumlahan dua bilangan
menggunakan fungsi.

Aturan untuk menggambar diagram alir:

1. Flowchart harus jelas, rapi dan mudah diikuti.


2. Flowchart harus memiliki awal dan akhir yang logis.
3. Hanya satu garis aliran (flow line) yang keluar dari simbol proses.

Husni & Aeri Rachmad | 5


4. Hanya satu garis aliran yang harus memasuki simbol keputusan. Namun,
dua atau tiga garis aliran dapat meninggalkan simbol keputusan.

5. Hanya satu garis aliran yang digunakan dengan simbol terminal.

6. Dalam simbol standar, tulislah secara singkat dan tepat.


7. Persimpangan (interseksi) garis aliran harus dihindari.

Keuntungan penggunaan flowchart:

1. Komunikatif: Flowchart adalah cara yang lebih baik untuk


mengkomunikasikan logika dari suatu sistem kepada semua pihak.
2. Analisis yang efektif: Dengan bantuan flowchart, masalah dapat dianalisis
dengan cara yang lebih efektif.
3. Dokumentasi yang tepat: Diagram alir program berfungsi sebagai
dokumentasi program yang baik, dapat digunakan untuk berbagai tujuan.
4. Pengodean yang Efisien: Diagram alir bertindak sebagai panduan atau
cetak biru selama fase analisis sistem dan pengembangan program.

6 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Gambar 1.3 Simbol flowchart yang paling sering digunakan

5. Debugging yang Tepat: Flowchart membantu dalam proses debugging.


6. Pemeliharaan Program yang Efisien: Pemeliharaan program selama
operasional menjadi mudah dengan bantuan diagram alir. Ini membantu
programmer untuk melakukan upaya lebih efisien pada bagian itu.

Kekurangan diagram alir:

1. Logika kompleks: Terkadang, logika program cukup rumit. Dalam hal ini,
flowchart menjadi kompleks dan kaku.
2. Perubahan dan Modifikasi: Jika diperlukan perubahan, diagram alir
mungkin perlu digambar ulang sepenuhnya.
3. Reproduksi: Karena simbol flowchart tidak dapat diketik, reproduksi
flowchart sedikit menjadi masalah.
4. Biaya: Untuk aplikasi besar waktu dan biaya menggambar flowchart
menjadi mahal.

1.8 Pseudocode
 Kode semu atau pseudocode terdiri dari bahasa Inggris yang pendek,
mudah dibaca, dan bergaya formal yang digunakan untuk menjelaskan
suatu algoritma.
 Itu tidak termasuk detail seperti deklarasi variabel, subrutin.
 Programer maupun non programmer lebih mudah memahami cara kerja
program secara umum, karena tidak didasarkan pada bahasa
pemrograman apa pun.

Husni & Aeri Rachmad | 7


 Ini memberi kita sketsa program sebelum pengkodean (coding) yang
sebenarnya.
 Ini tidak dapat dibaca oleh mesin (komputer)
 Kode semu tidak dapat dikompilasi dan dieksekusi.
 Tidak ada sintaks standar untuk kode semu. Jadi boleh saja menggunakan
sintaks yang lebih mirip bahasa Pascal sebagaimana banyak berlaku selama
30 tahun terakhir atau mendekati dengan sintaks Python yang sudah
semakin populer.

Pedoman penulisan kode semu:

 Tulis satu pernyataan per baris


 Kapitalisasi kata kunci (keyword) inisial
 Indentasi menunjukkan hierarki
 Akhiri struktur banyak baris (multiline)
 Jaga agar pernyataan tetap independen terhadap bahasa pemrograman.

Kata Kunci Umum dalam Pseudocode

Berikut ini adalah kata kunci umum yang digunakan dalam penulisan pseudocode:

1. //: Kata kunci ini digunakan untuk merepresentasikan suatu komentar.


2. BEGIN,END: Begin adalah pernyataan pertama dan end adalah pernyataan
terakhir di dalam suatu blok pernyataan banyak baris.
3. INPUT, GET, READ : Kata kunci yang digunakan untuk meminta data input.
4. COMPUTE, CALCULATE: digunakan untuk menghitung hasil dari ekspresi
yang diberikan.
5. ADD, SUBTRACT, INITIALIZE digunakan untuk penjumlahan, pengurangan
dan inisialisasi.
6. OUTPUT, PRINT, DISPLAY : Digunakan untuk menampilkan keluaran
(output) program.
7. IF, ELSE, ENDIF : digunakan untuk mengambil keputusan (percabangan dan
seleksi kondisi).
8. WHILE, ENDWHILE: digunakan untuk pernyataan iteratif (perulangan,
loop).
9. FOR, ENDFOR: Iteratif lain yang bertambah/berkurang-nya diuji secara
otomatis.

8 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Sintaks if else: Contoh: Terbesar dari dua bilangan
IF (condition)THEN BEGIN
statement READ a,b
... IF (a>b) THEN
ELSE DISPLAY a is greater
statement ELSE
... DISPLAY b is greater
ENDIF END IF
END
Sintaks for: Contoh: Mencetak n bilangan asli
FOR( start-value to end-value) BEGIN
DO GET n
statement INITIALIZE i=1
... FOR (i<=n) DO
ENDFOR PRINT i
i=i+1
ENDFOR
END
Sintaks while: Contoh: Mencetak n bilangan asli
WHILE (condition) DO BEGIN
statement GET n
... INITIALIZE i=1
ENDWHILE WHILE(i<=n) DO
PRINT i
i=i+1
ENDWHILE
END

Keuntungan:

 Pseudo tidak tergantung pada bahasa apa pun; dapat digunakan oleh
sebagian besar programmer.
 Sangat mudah untuk menerjemahkan kode semu ke dalam bahasa
pemrograman.
 Dapat dengan mudah dimodifikasi dibandingkan dengan diagram alur.
 Mengubah kode semu ke bahasa pemrograman sangat mudah
dibandingkan dengan mengubah diagram alir ke bahasa pemrograman.

Husni & Aeri Rachmad | 9


Kekurangan:

 Tidak memberikan representasi visual dari logika program (atau


algoritma).
 Tidak ada standar yang disepakati untuk menulis kode semu.
 Tidak dapat dikompilasi atau dieksekusi.
 Bagi pemula, lebih sulit untuk mengikuti logika atau menulis kode semu
dibandingkan dengan diagram alir.

Contoh: Penambahan dua bilangan

BEGIN
GET a, b
ADD c = a + b
PRINT c
END

Algoritma Flowchart Pseudocode


Algoritma adalah urutan Representasi grafis dari Rerepresentasi bahasa
instruksi yang digunakan algoritma dari algoritma.
untuk memecahkan
masalah
Pengguna membutuhkan Tidak perlu Tidak perlu pengetahuan
pengetahuan untuk pengetahuan program bahasa program untuk
menulis algoritma. untuk menggam-bar memahami atau menulis
atau memahami kode semu.
diagram alur

1.9 Bahasa Pemrograman


Bahasa pemrograman adalah seperangkat simbol dan aturan untuk
menginstruksikan komputer melakukan tugas-tugas tertentu. Pemrogram
(programmer) harus mengikuti semua aturan yang ditentukan (dalam bahasa)
sebelum menulis program menggunakan bahasa pemrograman tersebut.
Pengguna harus berkomunikasi dengan komputer menggunakan bahasa yang
dapat dimengerti.

Jenis-jenis bahasa pemrograman:

1. Bahasa mesin
2. Bahasa Assembly
3. Bahasa tingkat tinggi

10 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Bahasa mesin: Komputer hanya dapat memahami bahasa mesin yang
menggunakan 0 dan 1. Dalam bahasa mesin, instruksi yang berbeda dibentuk
dengan mengambil kombinasi 0 dan 1 yang berbeda.

Keuntungan Bahasa Mesin:

 Terjemahan bebas: Bahasa mesin adalah satu-satunya bahasa yang


dimengerti komputer. Untuk menjalankan program apa pun yang ditulis
dalam bahasa pemrograman apa pun, konversi ke bahasa mesin
diperlukan. Program yang ditulis dalam bahasa mesin dapat dieksekusi
langsung di komputer. Dalam hal ini proses konversi tidak diperlukan.

 Kecepatan tinggi: Program bahasa mesin bebas terjemahan. Karena waktu


konversi dihemat, eksekusi program bahasa mesin menjadi sangat cepat.

Kerugian Bahasa Mesin:

 Sulit untuk menemukan kesalahan dalam program yang ditulis dalam


bahasa mesin.
 Menulis Program dalam bahasa mesin merupakan proses yang memakan
waktu.
 Ketergantungan pada mesin: harus sesuai dengan arsitektur yang
digunakan. Beda komputer sangat mungkin berbeda sintaks. Bahasa mesin
berbeda pada satu jenis komputer dengan jenis lainnya. Jadi program yang
dikembangkan untuk jenis komputer tertentu mungkin tidak berjalan di
komputer jenis lain.

Bahasa Assembly:

 Untuk mengatasi masalah dalam bahasa pemrograman dan


mempermudah proses pemrograman, dikembangkan bahasa assembly
yang secara logika setara dengan bahasa mesin tetapi lebih mudah dibaca,
ditulis, dan dipahami orang.
 Bahasa assembly adalah representasi simbolis dari bahasa mesin. Bahasa
assembly adalah bahasa pemrograman simbolik yang menggunakan notasi
simbolik untuk mewakili instruksi bahasa mesin. Disebut bahasa tingkat
rendah karena baris-baris kodenya sangat erat kaitannya dengan mesin.

Contoh: ADD a, b

Assember: Assembler adalah program yang menerjemahkan instruksi bahasa


assembly ke bahasa mesin.
Husni & Aeri Rachmad | 11
Keuntungan:

 Mudah dipahami dan digunakan.


 Lebih mudah untuk menemukan dan memperbaiki kesalahan.

Kerugian:

 Tergantung mesin: Program bahasa rakitan yang dapat dijalankan pada


mesin tergantung pada arsitektur komputer tersebut.
 Masih cukup sulit untuk dipelajari: Ini bergantung pada mesin, jadi
programmer harus memiliki pengetahuan perangkat keras untuk membuat
aplikasi menggunakan bahasa assembly.
 Kurang efisien: Waktu eksekusi program bahasa assembly lebih lama dari
pada program bahasa mesin. Ini Karena assembler diperlukan untuk
mengkonversi dari bahasa assembly ke bahasa mesin.
Bahasa tingkat tinggi: Bahasa tingkat tinggi berisi kata-kata dan simbol bahasa
Inggris (atau bahasa lain sesuai ketetapan dari pembuatnya). Aturan yang
ditentukan harus diikuti oleh programmer saat menulis program dalam bahasa
tingkat tinggi. Interpreter atau compiler digunakan untuk mengonversi program
ini ke dalam bentuk yang dapat dibaca oleh mesin.

Menerjemahkan bahasa tingkat tinggi ke bahasa mesin

Program yang menerjemahkan bahasa tingkat tinggi ke bahasa mesin disebut


interpreter atau compiler.

Compiler: Compiler adalah program yang menerjemahkan kode sumber (source


code) yang ditulis dalam bahasa tingkat tinggi ke dalam kode objek yang ada
dalam program bahasa mesin. Compiler membaca seluruh program yang ditulis
dalam bahasa tingkat tinggi dan menerjemahkannya ke bahasa mesin. Jika ada
kesalahan yang ditemukan maka akan ditampilkan pesan kesalahan.

Interpreter: Interpreter menerjemahkan program bahasa tingkat tinggi secara


baris demi baris. Interpreter menerjemahkan pernyataan bahasa tingkat tinggi
dalam program sumber ke kode mesin dan mengeksekusinya segera sebelum
menerjemahkan pernyataan berikutnya. Ketika kesalahan ditemukan, eksekusi
program dihentikan dan pesan kesalahan ditampilkan di layar.

12 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Keuntungan:

 Keterbacaan: Bahasa tingkat tinggi lebih dekat dengan bahasa alami


sehingga lebih mudah dipelajari dan dipahami
 Mesin independen: Program bahasa tingkat tinggi biasanya lebih portabel
antar mesin, misalnya kode yang ditulis di platform Windows dapat dijalan
dengan tanpa perubahan di Platform Linux atau Mac.
 Debugging lebih mudah: Mudah untuk menemukan dan memperbaiki
kesalahan dalam bahasa tingkat tinggi

Kekurangan:

 Kurang efisien: Proses translasi meningkatkan waktu eksekusi dari


program. Program dalam bahasa tingkat tinggi membutuhkan lebih banyak
memori dan membutuhkan lebih banyak waktu eksekusi.

Bahasa pemrograman dibagi ke dalam kategori berikut:

1. Bahasa pemrograman yang ditafsirkan (Interpreted)


2. Bahasa pemrograman fungsional
3. Bahasa pemrograman yang dikompilasi (compiled)
4. Bahasa pemrograman prosedural
5. Bahasa pemrograman skrip (scripting)
6. Bahasa pemrograman markup
7. Bahasa pemrograman bersamaan (concurrent)
8. Bahasa pemrograman berorientasi objek

Bahasa pemrograman Interpreted: Bahasa yang ditafsirkan adalah bahasa


pemrograman yang sebagian besar implementasinya mengeksekusi instruksi
secara langsung, tanpa sebelumnya mengkompilasi program ke dalam instruksi
bahasa mesin. Interpreter mengeksekusi program secara langsung dengan
menerjemahkan setiap pernyataan ke dalam rangkaian satu atau lebih subrutin
yang sudah dikompilasi ke dalam kode mesin.

Contoh:

 Pascal
 Python

Bahasa pemrograman fungsional: Bahasa pemrograman fungsional


mendefinisikan setiap komputasi sebagai evaluasi matematis. Jenis ini fokus pada
bahasa pemrograman yang terikat pada perhitungan matematika
Husni & Aeri Rachmad | 13
Contoh:

 Clean
 Haskell

Bahasa Pemrograman Compiled: Pemrograman terkompilasi adalah bahasa


pemrograman yang implementasinya biasanya menggunakan compiler dan bukan
interpreter. Proses kompilasi menghasilkan kode mesin dari kode sumber bahasa
tingkat tinggi.

Contoh:

 C
 C++
 C#
 Java

Bahasa pemrograman prosedural: Pemrograman prosedural (imperatif)


menyiratkan penentuan langkah-langkah yang harus diambil oleh program untuk
mencapai keadaan yang diinginkan.
 Prosedur adalah sekelompok pernyataan yang dapat dirujuk melalui
pemanggilan prosedur.
 Prosedur membantu dalam penggunaan kembali kode (reuse of code).
Pemrograman prosedural membuat program menjadi terstruktur dan
mudah dilacak alirannya.

Contoh:

 Hyper Talk
 MATLAB
Bahasa Scripting: Bahasa scripting adalah bahasa pemrograman yang mengontrol
suatu aplikasi khusus. Meeskipun begitu, skrip dapat saja dijalankan secara
independen dari aplikasi lain. Skrip ini sebagian besar tertanam dalam aplikasi
yang harus dikontrol dan digunakan untuk mengotomatisasi tugas yang sering
dijalankan seperti berkomunikasi dengan program eksternal.

Contoh:

 Skrip Apple
 Skrip VB di Microsoft Office

14 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Bahasa markup: Bahasa markup adalah bahasa artificial yang menggunakan
anotasi terhadap teks yang mendefinisikan bagaimana teks akan ditampilkan.

Contoh:

 HTML
 XML

Bahasa pemrograman concurrent: Concurrent programming adalah teknik


pemrograman komputer yang menyediakan eksekusi operasi secara bersamaan,
baik di dalam satu komputer atau di sejumlah sistem tersebar.

Contoh:

 Joule
 limbo

Bahasa pemrograman berorientasi objek: Pemrograman berorientasi objek


adalah paradigma pemrograman yang didasarkan pada konsep objek yang dapat
terdiri dari data (atribut, variabel) dan fungsi (atau prosedur) yang sering dikenal
sebagai metode.

Contoh:

 Lava
 Moto

Husni & Aeri Rachmad | 15


2. Penyelesaian Masalah Secara Algoritmik

Algorithmic Problem Solving adalah penyelesaian masalah yang membutuhkan


rumusan algoritma untuk solusinya. Proses penyelesaian masalah yang algoritmik
ini diperlihatkan pada Gambar 2.1.

Gambar 2.1 Proses Analisis dan Perancangan Algoritma

2.1 Memahami Masalah (problem understanding)


 Merupakan proses menemukan input dari masalah yang akan dipecahkan
oleh algoritma.
 Sangat penting untuk menentukan dengan tepat (eksak) himpunan input
yang perlu ditangani oleh algoritma tersebut.
 Algoritma yang benar bukanlah yang bekerja hampir sepanjang waktu,
tetapi yang bekerja secara benar untuk semua input yang sah (legitimate).

16 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


2.2 Memutuskan Hal-hal Terkait Komputasi
Memilih bagaimana komputasi dilakukan, terurut atau paralel:

 Jika instruksi dieksekusi satu demi satu, itu disebut algoritma sekuensial.
 Jika beberapa instruksi dieksekusi secara bersamaan, itu disebut algoritma
paralel.

Memilih antara Penyelesaian Masalah Tepat (Eksak) dan Perkiraan


(Aproksimasi):

 Keputusan utama berikutnya adalah memilih antara menyelesaikan


masalah secara tepat atau menyelesaikannya secara kira-kira.
 Berdasarkan hal ini, algoritma diklasifikasikan sebagai algoritma eksak dan
algoritma aproksimasi.

Menentukan struktur data:

 Struktur data memainkan peran penting dalam merancang dan


menganalisis algoritma.
 Beberapa teknik desain algoritma juga bergantung pada penstrukturan
data yang menspesifikasikan instan dari masalah
 Algoritma+ Struktur data=program.

Teknik Desain Algoritma:

 Teknik (atau "strategi", "paradigma") desain algoritma adalah pendekatan


umum untuk memecahkan masalah secara algoritmik yang dapat
diterapkan (applicable) terhadap berbagai masalah dari berbagai bidang
komputasi.
 Mempelajari teknik-teknik ini sangat penting karena alasan berikut:
o Pertama, teknik ini memberikan panduan untuk merancang
algoritma untuk masalah baru,
o Kedua, algoritma adalah landasan Informatika (ilmu komputer)

2.3 Merancang Algoritma


Sebagaimana telah dijelaskan, ada beberapa pendekatan dalam pembuatan
algoritma:

 Pseudocode adalah campuran bahasa alami dan konstruksi seperti bahasa


pemrograman. Pseudocode biasanya lebih tepat daripada bahasa alami,

Husni & Aeri Rachmad | 17


dan penggunaannya sering menghasilkan deskripsi algoritma yang lebih
ringkas.
 Pada masa awal komputasi, kendaraan dominan untuk menentukan
algoritma adalah diagram alir (flowchart) , metode untuk mengekspresikan
algoritma dengan kumpulan bentuk geometris terhubung yang berisi
deskripsi langkah-langkah algoritma.
 Bahasa pemrograman dapat dimasukkan ke dalam komputer elektronik
secara langsung. Sebaliknya algortima harus ditransformasi menjadi
program komputer yang ditulis dalam bahasa komputer tertentu. Kita
dapat melihat program seperti itu sebagai cara lain untuk menentukan
algoritma, meskipun lebih baik menganggapnya sebagai implementasi
algoritma.

2.4 Membuktikan Kebenaran Algoritma


 Setelah algoritma dirancang, kita harus membuktikan kebenarannya.
Artinya, kita harus membuktikan bahwa algoritma tersebut mampu
memberikan hasil yang diperlukan untuk setiap input yang sah dalam
waktu yang terbatas.
 Teknik umum untuk membuktikan kebenaran adalah dengan
menggunakan induksi matematika karena iterasi suatu algoritma
memberikan urutan langkah alami yang diperlukan untuk pembuktian
tersebut.
 Mungkin perlu disebutkan bahwa meskipun menelusuri kinerja algoritma
untuk beberapa input tertentu dapat menjadi aktivitas yang sangat
bermanfaat, itu tidak dapat membuktikan kebenaran algoritma secara
meyakinkan. Tetapi untuk menunjukkan bahwa suatu algoritma salah, kita
hanya perlu satu contoh inputnya yang menyebabkan algoritma itu gagal.

2.5 Menganalisis Algoritma


1. Efisiensi.
 Efisiensi waktu, menunjukkan seberapa cepat algoritma berjalan,
 Efisiensi ruang, menunjukkan berapa banyak memori ekstra yang
digunakannya.
2. Kesederhanaan.
 Suatu algoritma harus tepat didefinisikan dan diselidiki (investigasi)
dengan ekspresi matematika.
 Algoritma yang lebih sederhana lebih mudah dipahami dan lebih
mudah diprogram.
 Algoritma sederhana biasanya mengandung lebih sedikit bug.

18 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


2.6 Mengkodekan Algoritma (coding)
 Kebanyakan algoritma ditakdirkan untuk akhirnya diimplementasikan
sebagai program komputer. Pemrograman algoritma menghadirkan
bahaya dan peluang.
 Program yang bekerja memberikan peluang tambahan yang
memungkinkan analisis empiris dari algoritma yang mendasarinya. Analisis
semacam itu didasarkan pada pengaturan waktu dari program pada
beberapa input dan kemudian menganalisis hasil yang diperoleh.

2.7 Iterasi
Serangkaian pernyataan yang dijalankan sampai kondisi tertentu bernilai True
(benar) disebut iterasi (Gambar 2.2). Ada dua pendekatan iterasi yang dapat
dipilih yaitu:

1. perulangan for
2. perulangan while

Sintaks for Contoh: Mencetak n bilangan asli


FOR(start-value to end-value) DO BEGIN
statement GET n
... INITIALIZE i=1
ENDFOR FOR (i<=n) DO
PRINT i
i=i+1
ENDFOR
END
Sintaks while Contoh: Mencetak n bilangan asli
WHILE (condition) DO BEGIN
statement GET n
... INITIALIZE i=1
ENDWHILE WHILE(i<=n) DO
PRINT i
i=i+1
ENDWHILE
END

Husni & Aeri Rachmad | 19


Gambar 2.2 Perulangan atau Iterasi

2.8 Rekursi
 Suatu fungsi yang memanggil dirinya sendiri dikenal sebagai rekursi
 Rekursi adalah proses dimana suatu fungsi memanggil dirinya sendiri secra
berulang sampai beberapa kondisi tertentu dipenuhi.

Algoritma untuk faktorial dari n bilangan menggunakan rekursi (flowchart lihat


Gambar 2.3):

Fungsi utama:
Langkah 1: Start
Langkah 2: Get n
Langkah 3: call factorial(n)
Langkah 4: print fact
Langkah 5: Stop

Sub fungsi factorial(n):


Langkah 1: if(n==1) then fact=1 return fact
Langkah 2: else fact=n*factorial(n-1) and return fact

20 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Gambar 2.3 Flowchart dari faktorial menggunakan rekursi

Sedangkan pseudocode untuk faktorial menggunakan rekursi di atas adalah

Fungsi utama:
BEGIN
GET n
CALL factorial(n)
PRINT fact
BIN

Sub fungsi factorial(n):


IF(n==1) THEN
fact=1
RETURN fact
ELSE
RETURN fact=n*factorial(n-1)

Husni & Aeri Rachmad | 21


2.9 Contoh 3 Bentuk Algoritma
Tuliskan algoritma untuk mencari luas dari suatu Persegipanjang
Langkah 1: Start BEGIN
Langkah 2: get l, b READ l,b
values CALCULATE A=l*b
Langkah 3: Calculate DISPLAY A
A=l*b END
Langkah 4: Display A
Langkah 5: Stop

Tuliskan algoritma untuk menghitung luas dan keliling suatu lingkran


Langkah 1: Start BEGIN
Langkah 2: get r READ r
value CALCULATE A and C
Langkah 3: Calculate A=3.14*r*r
A=3.14*r*r C=2*3.14*r
Langkah 4: Calculate DISPLAY A
C=2.3.14*r END
Langkah 5: Display
A,C
Langkah 6: Stop

22 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Tuliskan algoritma untuk menghitung simple interest
Langkah 1: Start BEGIN
Langkah 2: get P, n, READ P, n, r
r value CALCULATE S
Langkah3:Calculate SI=(p*n*r)/100
SI=(p*n*r)/100 DISPLAY SI
Langkah 4: Display S END
Langkah 5: Stop

Tuliskan algoritma untuk menghitung engineering cutoff


Langkah 1: Start BEGIN
Langkah2: get P,C,M READ P,C,M
value CALCULATE
Langkah3:calculate Cutoff=
Cutoff= (P/4+C/4+M/2)
(P/4+C/4+M/2) DISPLAY Cutoff
Langkah 4: Display END
Cutoff
Langkah 5: Stop

Algoritma untuk memeriksa nilai terbesar dari dua bilangan

Langkah 1: Start
Langkah 2: get a,b value
Langkah 3: check if(a>b) print a is greater
Langkah 4: else b is greater
Langkah 5: Stop

Husni & Aeri Rachmad | 23


BEGIN
READ a,b
IF (a>b) THEN
DISPLAY a is greater
ELSE
DISPLAY b is greater
END IF
END
Algoritma untuk memeriksa tahun kabisat
Langkah 1: Start
Langkah 2: get y
Langkah 3: if(y%4==0) print leap year
Langkah 4: else print not leap year
Langkah 5: Stop

BEGIN
READ y
IF (y%4==0) THEN

24 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


DISPLAY leap year
ELSE
DISPLAY not leap year
END IF
END
Algoritma untuk memeriksa apakah suatu bilangan positif atau negatif
Langkah 1: Start
Langkah 2: get num
Langkah 3: check if(num>0) print a is positive
Langkah 4: else num is negative
Langkah 5: Stop

BEGIN
READ num
IF (num>0) THEN
DISPLAY num is positive
ELSE
DISPLAY num is negative
END IF
END
Algoritma untuk memeriksa apakah suatu bilangan genap atau ganjil
Langkah 1: Start
Langkah 2: get num
Langkah 3: check if(num%2==0) print num is even
Langkah 4: else num is odd
Langkah 5: Stop

Husni & Aeri Rachmad | 25


BEGIN
READ num
IF (num%2==0) THEN
DISPLAY num is even
ELSE
DISPLAY num is odd
END IF
END
Algoritma untuk mengetahui bilangan terbesar dari tiga angka
Langkah1: Start
Langkah2: Get A, B, C
Langkah3: if(A>B) goto Langkah 4 else goto Langkah 5
Langkah4: If(A>C) print A else print C
Langkah5: If(B>C) print B else print C
Langkah6: Stop

26 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


BEGIN
READ a, b, c
IF (a>b) THEN
IF(a>c) THEN
DISPLAY a is greater
ELSE
DISPLAY c is greater
END IF
ELSE
IF(b>c) THEN
DISPLAY b is greater
ELSE
DISPLAY c is greater
END IF
END IF
END
Tuliskan algoritma untuk memeriksa apakah bilangan yang dimasukkan +tif, -tif
atau nol
Langkah 1: Start
Langkah 2: Get n value.
Langkah 3: if (n ==0) print ‚Given number is Zero‛ Else goto Langkah
4
Langkah 4: if (n > 0) then Print ‚Given number is +ve‛
Langkah 5: else Print ‚Given number is -ve‛
Langkah 6: Stop

Husni & Aeri Rachmad | 27


BEGIN
GET n
IF(n==0) THEN
DISPLAY ‚ n is zero‛
ELSE
IF(n>0) THEN
DISPLAY ‚n is positive‛
ELSE
DISPLAY ‚n is positive‛
END IF
END IF
END
Write an algorithm to print all natural numbers up to n
Langkah 1: Start
Langkah 2: get n value.
Langkah 3: initialize i=1
Langkah 4: if (i<=n) go to Langkah 5 else go to Langkah 8
Langkah 5: Print i value
Langkah 6 : increment i value by 1
Langkah 7: go to Langkah 4

28 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Langkah 8: Stop

BEGIN
GET n
INITIALIZE i=1
WHILE(i<=n) DO
PRINT i
i=i+1
ENDWHILE
END
Write an algorithm to print n odd numbers
Langkah 1: start
Langkah 2: get n value
Langkah 3: set initial value i=1
Langkah 4: check if(i<=n) goto Langkah 5 else goto Langkah 8
Langkah 5: print i value
Langkah 6: increment i value by 2
Langkah 7: goto Langkah 4
Langkah 8: stop

Husni & Aeri Rachmad | 29


BEGIN
GET n
INITIALIZE i=1
WHILE(i<=n) DO
PRINT i
i=i+2
ENDWHILE
END
Write an algorithm to print n even numbers
Langkah 1: start
Langkah 2: get n value
Langkah 3: set initial value i=2
Langkah 4: check if(i<=n) goto Langkah 5 else goto Langkah8
Langkah 5: print i value
Langkah 6: increment i value by 2
Langkah 7: goto Langkah 4
Langkah 8: stop

30 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


BEGIN
GET n
INITIALIZE i=2
WHILE(i<=n) DO
PRINT i
i=i+2
ENDWHILE
END
Write an algorithm to print squares of a number
Langkah 1: start
Langkah 2: get n value
Langkah 3: set initial value i=1
Langkah 4: check i value if(i<=n) goto Langkah 5 else goto Langkah8
Langkah 5: print i*i value
Langkah 6: increment i value by 1
Langkah 7: goto Langkah 4
Langkah 8: stop

Husni & Aeri Rachmad | 31


BEGIN
GET n
INITIALIZE i=1
WHILE(i<=n) DO
PRINT i*i
i=i+2
ENDWHILE
END
Write an algorithm to print to print cubes of a number
Langkah 1: start
Langkah 2: get n value
Langkah 3: set initial value i=1
Langkah 4: check i value if(i<=n) goto Langkah 5 else goto Langkah8
Langkah 5: print i*i *i value
Langkah 6: increment i value by 1
Langkah 7: goto Langkah 4
Langkah 8: stop

32 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


BEGIN
GET n
INITIALIZE i=1
WHILE(i<=n) DO
PRINT i*i*i
i=i+2
ENDWHILE
END
Buatkan algoritma untuk mencari jumlah total (sum) dari 1 sampai bilangan yang
diberikan
Langkah 1: start
Langkah 2: get n value
Langkah 3: set initial value i=1, sum=0
Langkah 4: check i value if(i<=n) goto Langkah 5 else goto Langkah8
Langkah 5: calculate sum=sum+i
Langkah 6: increment i value by 1
Langkah 7: goto Langkah 4
Langkah 8: print sum value
Langkah 9: stop

Husni & Aeri Rachmad | 33


BEGIN
GET n
INITIALIZE i=1,sum=0

WHILE(i<=n) DO
sum=sum+i
i=i+1
ENDWHILE

PRINT sum
END
Tuliskan suatu algoritma untuk mencari factorial dari suatu bilangan yang
diberikan
Langkah 1: start
Langkah 2: get n value
Langkah 3: set initial value i=1, fact=1
Langkah 4: check i value if(i<=n) goto Langkah 5 else goto Langkah 8
Langkah 5: calculate fact=fact*i
Langkah 6: increment i value by 1
Langkah 7: goto Langkah 4
Langkah 8: print fact value
Langkah 9: stop

34 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


BEGIN
GET n
INITIALIZE i=1,fact=1
WHILE(i<=n) DO
fact=fact*i
i=i+1
ENDWHILE
PRINT fact
END

Husni & Aeri Rachmad | 35


3. Program dan Soal Latihan I
3.1 Contoh Program Python Sangat Sederhana
Penambahan dua bilangan:

a=eval(input(‚enter first no‛))


b=eval(input(‚enter second no‛))
c=a+b
print(‚the sum is ‚,c)

Luas segiempat:

l=eval(input(‚enter the length of rectangle‛))


b=eval(input(‚enter the breath of rectangle‛))
a=l*b
print(a)

Luas dan Keliling Lingkaran:

r=eval(input(‚enter the radius of circle‛))


a=3.14*r*r
c=2*3.14*r
print(‚the area of circle‛,a)
print(‚the circumference of circle‛,c)

Hitung Simple Interest:

p=eval(input(‚enter principle amount‛))


n=eval(input(‚enter no of years‛))
r=eval(input(‚enter rate of interest‛))
si=p*n*r/100
print(‚simple interest is‛,si)

Hitung Engineering Cutoff:

p=eval(input(‚enter physics marks‛))


c=eval(input(‚enter chemistry marks‛))
m=eval(input(‚enter maths marks‛))
cutoff=(p/4+c/4+m/2)
print(‚cutoff =‛,cutoff)

Cek Kelayanan Voting:

age=eval(input(‚enter ur age‛))

36 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


if(age>=18):
print(‚eligible for voting‛)
else:
print(‚not eligible for voting‛)

Mencari Bilangan Terbesar:

a=eval(input(‚enter the value of a‛))


b=eval(input(‚enter the value of b‛))
c=eval(input(‚enter the value of c‛))

if(a>b):
if(a>c):
print(‚the greatest no is‛,a)
else:
print(‚the greatest no is‛,c)
else:
if(b>c):
print(‚the greatest no is‛,b)
else:
print(‚the greatest no is‛,c)

3.2 Program dengan Perulangan for


Cetak n Bilangan Asli Output
for i in range(1,5,1): 1 2 3 4
print(i)
Cetak n Bilangan Ganjil Output
for i in range(1,10,2): 1 3 5 7 9
print(i)

Cetak n Bilangan Genap Output


for i in range(2,10,2): 2 4 6 8
print(i)

Cetak Kuadrat (Pangkat 2) Output


for i in range(1,5,1): 1 4 9 16
print(i*i)

Cetak Kubik (Pangkat 3) Output


for i in range(1,5,1): 1 8 27 64
print(i*i*i)

Husni & Aeri Rachmad | 37


3.3 Program dengan Perulangan while
Cetak n Bilangan Asli Output
i=1 1
while(i<=5): 2
print(i) 3
i=i+1 4
5
Cetak n Bilangan Ganjil Output
i=2
while(i<=10):
print(i)
i=i+2

Cetak n Bilangan Genap Output


i=1
while(i<=10):
print(i)
i=i+2

Cetak n Kuadrat Bilangan Output


i=1
while(i<=5):
print(i*i)
i=i+1
Print n cubes numbers Output
i=1
while(i<=3):
print(i*i*i)
i=i+1

Mencari Penjumlahan Bilangan Output


i=1
sum=0

while(i<=10):
sum=sum+i
i=i+1

print(sum)

Faktorial: Perkalian n Bilangan


i=1
product=1

while(i<=10):
product=product*i

38 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


i=i+1

print(product)

Penjumlahan n Bilangan dengan Fungsi


def add():
a=eval(input(‚enter a value‛))
b=eval(input(‚enter b value‛))
c=a+b
print(‚the sum is‛,c)

add()

Luas Segiempat dengan Fungsi


def area():
l=eval(input(‚enter the length of rectangle‛))
b=eval(input(‚enter the breath of rectangle‛))
a=l*b
print(‚the area of rectangle is‛,a)

area()

Menukar Nilai Dua Variabel dengan Fungsi


def swap():
a=eval(input("enter a value"))
b=eval(input("enter b value"))
c=a
a=b
b=c
print("a=",a,"b=",b)

swap()

Memeriksa Apakah Bilangan habis dibagi 5


def div():
n=eval(input("enter n value"))
if(n%5==0):
print("the number is divisible by 5")
else:
print("the number not divisible by 5")

div()

Mencari Sisa dan Hasil Pembagian


def reminder():
a=eval(input("enter a"))
b=eval(input("enter b"))

Husni & Aeri Rachmad | 39


R=a%b
print("the reminder is",R)

def quotient():
a=eval(input("enter a"))
b=eval(input("enter b"))
Q=a/b
print("the reminder is",Q)

reminder()
quotient()

Program Konversi Suhu


def ctof():
c=eval(input("enter temperature in centigrade"))
f=(1.8*c)+32
print("the temperature in Fahrenheit is",f)

def ftoc():
f=eval(input("enter temp in Fahrenheit"))
c=(f-32)/1.8
print("the temperature in centigrade is",c)

ctof()
ftoc()

Program Kalkulator Sederhana


def add():
a=eval(input("enter a value"))
b=eval(input("enter b value"))
c=a+b
print("the sum is",c)

def sub():
a=eval(input("enter a value"))
b=eval(input("enter b value"))
c=a-b
print("the diff is",c)

def mul():
a=eval(input("enter a value"))
b=eval(input("enter b value"))
c=a*b
print("the mul is",c)

def div():
a=eval(input("enter a value"))
b=eval(input("enter b value"))
40 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
c=a/b
print("the div is",c)

add()
sub()
mul()
div()

3.4 Soal-soal Bagian 1


1. Apa yang dimaksud dengan pemecahan masalah?
2. Sebutkan teknik pemecahan masalah?
3. Definisikan algoritma?
4. Apa saja sifat-sifat algoritma?
5. Sebutkan persamaan dari algoritma yang baik?
6. Tentukan pernyataan?
7. Tentukan keadaan?
8. Apa yang disebut aliran kontrol?
9. Apa yang disebut eksekusi urutan?
10. Tentukan iterasi?
11. Apa yang dimaksud dengan diagram alir?
12. Sebutkan simbol-simbol dasar untuk menggambar diagram alur?
13. Sebutkan aturan untuk menggambar diagram alur?
14. Apa keuntungan dari flowchart?
15. Apa kelemahan diagram alur?
16. Definisikan kode semu?
17. Sebutkan kata kunci yang digunakan dalam penulisan kode semu?
18. Sebutkan keuntungan menggunakan kode semu?
19. Sebutkan kerugian menggunakan kode semu?
20. Apa saja cara yang tersedia untuk merepresentasikan algoritma?
21. Bedakan flowchart dan pseudo code?
22. Bedakan algoritma dan kode semu?
23. Apa itu bahasa pemrograman?
24. Sebutkan jenis-jenis bahasa pemrograman!
25. Apa yang dimaksud dengan bahasa tingkat mesin?
26. Apa kelebihan dan kekurangan bahasa tingkat mesin?
27. Apa yang dimaksud dengan bahasa pemrograman tingkat tinggi dan sebutkan
kelebihannya?
28. Apa saja langkah-langkah dalam pemecahan masalah algoritmik?
29. Tulis algoritma untuk setiap contoh!
30. Gambarkan diagram alir untuk contoh apa saja!
31. Tulis kode semu untuk contoh apa saja!

Husni & Aeri Rachmad | 41


3.5 Soal-soal Bagian 2
1. Jelaskan secara rinci tentang teknik pemecahan masalah!
2. Jelaskan secara rinci tentang blok bangunan algoritma!
3. Diskusikan simbol dan aturan menggambar flowchart beserta contohnya!
4. Jelaskan secara rinci tentang bahasa pemrograman!
5. Diskusikan secara singkat tentang pemecahan masalah algoritmik!
6. Tulis algoritma, kode semu dan diagram alir untuk suatu contoh yang belum
disebutkan di dalam Bab ini!
7. Jelaskan secara rinci tentang strategi sederhana untuk mengembangkan
algoritma!

42 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


4. Bahasa Pemrograman Python

Python adalah bahasa pemrograman tingkat tinggi yang diterjemahkan (oleh


interpreter), interaktif, berorientasi objek, dan bertujuan umum (general
purpose). Python dibuat oleh Guido van Rossum pada periode 1985-1990. Bahasa
ini mendapatkan namanya dari "sirkus terbang Monty Python". Veri 1.0 dari
Python dirilis pada Januari 1994.
 Python masuk kategori Interpreter: Kode Python diproses saat runtime
oleh interpreter. Kita tidak perlu mengkompilasi program sebelum
menjalankannya seperti pada bahsa C, Pascal atau Java.
 Python bersifat Interaktif: Kita dapat berada di prompt Python >>> dan
berinteraksi dengan interpreternya secara langsung saat menulis kode
program. Apa yang kita tulis dapat langsung diterjemahkan dan dieksekusi
oleh Python.
 Python itu Berorientasi Objek: Python mendukung gaya Berorientasi Objek
atau teknik pemrograman yang membungkus kode di dalam objek.
 Python adalah Bahasa untuk Pemula: Python adalah bahasa yang bagus
untuk programmer tingkat pemula dan mendukung pengembangan
berbagai aplikasi.

4.1 Keunggulan Python


Berikut ini adalah beberapa keunggulan dari Python:
 Mudah dipelajari: Python didefinisikan dengan jelas dan mudah dibaca.
Struktur programnya sangat sederhana dan hanya menggunakan beberapa
kata kunci.
 Mudah dirawat: Kode sumber (source code) Python cukup mudah dirawat.
 Portabel: Python dapat berjalan di berbagai platform perangkat keras dan
memiliki antarmuka yang sama di semua platform.
 Ditafsirkan: Python diproses saat runtime oleh Interpreter. Jadi, tidak
perlu mengkompilasi program sebelum menjalankannya. Kita cukup
menjalankan programnya.
 Extensible: Programmer dapat menyematkan python di dalam C, C++, Java
script, ActiveX, dll.
 Gratis dan Open Source: Siapa pun dapat dengan bebas
mendistribusikannya, membaca kode sumber, dan mengeditnya.
 Bahasa Tingkat Tinggi: Saat menulis program, pemrogram berkonsentrasi
pada solusi masalah saat ini, tidak perlu khawatir tentang detail tingkat
rendah.
 Scalable: Python menyediakan struktur dan dukungan yang lebih baik
untuk program besar daripada skrip shell.

Husni & Aeri Rachmad | 43


4.2 Aplikasi
 Aplikasi berbagi file Bit Torrent
 Mesin pencari Google, Youtube
 Intel, Cisco, HP, IBM
 i-Robot
 NASA
 Facebook, Dropbox
4.3 Interpreter Python
Ada dua pendekatan yang digunakan oleh suatu bahasa pemrograman untuk
mengeksekusi kode programnya:
 Interpreter digunakan untuk mengeksekusi kode program dalam bahasa
tingkat tinggi dengan menerjemahkannya satu baris pada satu waktu.
 Compiler bertugas menerjemahkan setiap kode program (sekaligus
semuanya) yang ditulis dalam bahasa tingkat tinggi ke dalam bahasa
tingkat rendah, sebagai persiapan (sebelum) untuk eksekusi.

Compiler Interpreter

Mengambil semua kode program Hanya mengambil satu instruksi (satu


sekaligus sebagai inputnya baris) kode sebagai input

Kode Obyek Antara dibangkitkan Tidak ada kode antara yang


dibangkitkan

Pernyataan kendali kondisi dieksekusi Pernyataan control kondisi dieksekusi


lebih cepat lebih lambat

Kebutuhan memory lebih besar (karena Kebutuhan memory lebih kecil


adanya kode obyek)

Program tidak perlu di-compile setiap Setiap kali program tingkat tinggi
waktu dikonversi menjadi program tingkat
lebih rendah (higher  lower)

Error ditampilkan setelah seluruh kode Error ditampilkan untuk setiap instruksi
program diperiksa yang diterjemahkan (jika ada)

Contoh: C, C++, Java Contoh: Python, PHP

44 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


4.4 Mode Interpreter Python
Interpreter Python merupakan suatu program yang membaca dan mengeksekusi
kode Python. Ada dua mode eksekusi:
1. Mode Interaktif
2. Mode Skrip

Mode Interaktif

 Sesuai namanya, memungkinkan kita berinterakse dengan Sistem Operasi


 Ketika kita menuliskan pernyataan Python, Interpreter menampilkan
hasilnya secara langsung

Keuntungan:

 Python, dalam modus interaktif, cukup baik untuk belajar, eksperimen


atau eksplorasi
 Bekerja dalam modus interaktif cukup nyaman bagi pemula dan untuk
pengujian potongan kecil kode program

Kerugian: Kita tidak dapat menyimpan pernyataan dan harus menulis ulang semua
pernyataan sekali lagi untuk menjalankan ulang.

Dalam modus interaktif, kita mengetikkan program Python dan Interpreter


menampilkan hasilnya

>>> 1+ 1
2

Chevron (>>>) adalah prompt yang digunakan oleh Interpreter untuk


menunjukkan bahwa ia siap menerima kode program. Jika kita menuliskan 1+1
maka Interpereter membalas dengan 2.

>>> print(‚Algoritma Pemrograman 2021‛)


Algoritma Pemrograman 2021

Ini adalah contoh pernyataan print. Pernyataan ini menampilkan suatu hasil pada
layer (console), dalam hal ini adalah teks yang diapit tanda petik ganda.

Husni & Aeri Rachmad | 45


Gambar 4.1 IDLE Shell

Modus Skrip

 Dalam mode skrip, kita menuliskan kode program Python dalam suatu file
dan kemudian menggunakan interpreter untuk mengeksekusi isi dari file
tersebut
 Skrip dapat disimpan ke disk untuk digunakan lagi nanti. Skrip Python
mempunyai ekstensi .py, aertinya nama file akan berakhiran .py.
 Simpan kode program dengan namafile.py dan jalankan Interpreter dalam
modus skrip untuk mengeksekusi skrip tersebut.

Contoh 1: namafile.py

print(100)
abc = 234
print(abc)

Gambar 4.2 Cara Eksekusi Program Python di IDLE

46 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Mode Interaktif Mode Skrip

Cara menggunakan interpreter Python Cara menggunakan interpreter Python


dengan mengetikkan perintah dan untuk membaca dan mengeksekusi
ekspresi pada prompt. pernyataan dalam skrip.

Tidak dapat menyimpan dan mengedit Dapat menyimpan dan mengedit kode
kode

Jika kita ingin bereksperimen dengan Jika kita sangat jelas tentang kode, kita
kode, kita dapat menggunakan mode dapat menggunakan mode script.
interaktif

Kita tidak dapat menyimpan pernyataan kita dapat menyimpan pernyataan


untuk digunakan lebih lanjut dan kami untuk digunakan lebih lanjut dan kita
harus mengetik ulang semua tidak perlu mengetik ulang semua
pernyataan untuk menjalankannya pernyataan untuk menjalankannya
kembali. kembali.

Kita bisa langsung melihat hasilnya. Kita tidak dapat langsung melihat
kodenya.

Integrated Development Learning Environment (IDLE):


 Adalah antarmuka pengguna grafis yang sepenuhnya ditulis dengan
Python.
 Itu dibundel dengan implementasi default bahasa python dan juga
dilengkapi dengan bagian opsional dari Python packaging.

Fitur dari IDLE:


 Editor teks banyak jendela (multi-window) dengan penyorotan sintaks
(syntax highlighting).
 Penyempurnaan otomatis (auto completion) dengan indentasi cerdas.
 Python shell untuk menampilkan output dengan penyorotan sintaks.

Bagian selanjutnya dari Bab ini akan menjelaskan mengenai Nilai dan Tipe Data.
Nilai atau value dapat berupa huruf, angka (bilangan/numerik) atau string. Contoh
nilai adalah 2, 42.0, dan “halooo”. Nilai-nilai ini mempunyai tipe data berbeda.
Setiap nilai dalam Python mempunyai tipe data, yaitu sehimpunan nilai dan
operasi yang dibolehkan pada nilai-nilai tersebut. Python mempunyai empat tipe
data standard sebagaimana diperlihatkan pada Gambar 4.3.

Husni & Aeri Rachmad | 47


Tipe Data

Urutan Himpunan Kamus


Numerik Boolean
(Sequence) (Set) (Dictionary)

Bulat Pecahan
Kompleks Teks (String) Tuple List
(Integer) (Float)

Gambar 4.3 Hirarki tipe data standard di Python


4.5 Numerik
 Tipe data numerik menyimpan nilai Numerik (angka, bilangan)
 Tipe data ini bersifat immutable (tidak dapat dimutasi), artinya nilai atau
item tidak dapat diubah
 Python mendukung bilangan integer (bulat), floating point (desimal,
pecahan) dan kompleks. Tabel di bawah ini memperlihatkan empat jenis
numerik yang dapat diaplikasikan di Python.

Integer (bulat) Long (lebih Float (pecahan, Kompleks


panjang) ril)

Sering disebut Integer yang Ditulis dengan Bilangan berbentuk


integer atau int panjang suatu titik decimal a + bj, dimana a dan
yang memisahkan b adalah float dan j
Nilai bilangan Juga dapat
bagian integer merepresentasikan
bulat negative direpresentasikan
dengan pecahan akar dari -1
atau positif dalam oktal dan
(bilangan imajiner)
tanpa titik hexadecimal
decimal Bagian ril dari
bilangan ini adalah
a, dan b adalah
bagian imajinernya.

Contoh: 68 Contoh: 2314L Contoh: 68.327 Contoh: akar dari -1


adalah bilangan
kompleks

48 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


4.6 Sequence: String, List, Tuple
Sequence (rentetan atau urutan) adalah suatu koleksi berurut dari item-item,
dimana item-item ini diindeks dengan integer positif. Rentetan ini dapat berupa
kombinasi dari tipe data mutable (nilai dapat berubah) dan immutable (nilainya
tidak dapat diubah). Di Python, tipe data sequence ini dapat dibagi menjadi 3,
yaitu:

 String
 List
 Tuple

String
String terdiri dari serangkaian atau sederetan karakter (huruf, angka, dan karakter
khusus). Dalam aplikasinya, String harus dilingkupi dengan salah satu dari tiga
quote (tanda petik atau tanda kutip) yang mempunyai makna tersendiri, seperti
berikut ini:

 Tanda kutip tunggal (single quote ‘ ‘), contoh: ‘Belajar Python’


 Tanda kutip ganda (double quote “ “), contoh: ‚Dia bilang ‘kamu
cantik’ lho‛
 Tiga tanda kutip ganda (triple quote “”” “””), contoh:
‚‛‛
Ini contoh paragraph, kalimat pertama.
Ini kalimat kedua
‚‛‛
Setiap karakter di dalam string dapat diakses menggunakan subscript atau indeks.
Karakter dapat diakses menggunakan operasi indexing dan slicing, sebagaimana
berlaku di list dan tuple. Namun, string bersifat immutable sehingga nilai atau
content yang dipegang oleh suatu String tidak dapat diubah setelah dibuatkan.
Indexing

String A H E L L O
Indeks Positif 0 1 2 3 4
Indeks Negatif -5 -4 -3 -2 -1

Indexing positif membantu kita dalam mengakses String dimulai dari depan (dari
awal atau dari kiri). Sedangkan subscript negatif berguna saat kita ingin
mengakses String dimulai dari ujung (dari kanan). Kombinasi akses String dari kiri
dan kanan dengan melibatkan nomor indeks positif dan negatif akan memberikan
banyak kemudahan dalam pembuatan program di Python.

Husni & Aeri Rachmad | 49


Subscript 0 atau -ve n (dimana n adalah panjang dari String) akan menampilkan
elemen pertama. Subscript 1 atau -ve (n-1) akan menampilkan elemen kedua.
Contoh:
A[0] atau A[-5] akan menampilkan “H”
A[1] atau A[-4] akan menampilkan “E”

Operasi String

Ada beberapa operasi penting terhadap String, di antaranya adalah Indexing,


Slicing, Concatenation, Repetition, dan Membership. Tabel di bawah menjelaskan
kelima operasi tersebut.

Operasi Contoh Penjelasan


Membuat string s = ‚salam akal Membuat suatu list dengan
sehat‛ elemen-elemennya
mempunyai tipe data
berbeda.
Indexing print(s[2]) Mengakses item bernomor
l indeks 0 (elemen pertama)
print(s[6]) Mengakses item bernomor
a
indeks 6 (elemen ke-7)
Slicing (posisi akhir – 1) print(s[2:]) Menampilkan item indeks 2
Operator slice lam akal sehat s.d akhir
digunakan untuk print(s[:4]) Menampilkan item dari
sala
mengekstrak bagian dari posisi pertama s.d indeks 3
suatu sequence.
Concatenation print(s + ‚selalu‛) Menambahkan dan
salam akal mencetak karakter dari dua
sehatselalu String
Repetition print(s*2) Membuat string baru,
salam akal menggabungkan dua
sehatsalam akal Salinan dari string yang
sehat
sama)
in, not in ‚m‛ in s Apakah “m” adalah dalam
(operator keanggotaan) True s?
‚y‛ not in s Apakah “y” tidak ada dalam
True
s?

50 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


List
List merupakan suatu sequence dimana item-itemnya tidak harus terurut dan
mempunyai tipe data sama. Nilai-nilai di dalam list disebut sebagai elemen atau
item. Elemen-eleme n tersebut dapat ditulis sebagai daftar item (nilai) yang
dipisahkan dengan koma di antara dua kurang siku (buka dan tutup). Berbeda
dengan array atau larik yang pernah kita pelajaribahwa elemen array harus
mempunyai tpe data sama. Di Python, list dapat berisi item-item dengan tipe data
berbeda.

Operasi List

Terdaoat beberpa operasi penting terhadap list, beberapa berlaku sama


sebagaimana terhadap String, diantaranya adalah Indexing, Slicing,
Concatenation, Repetition, Update, Insertion dan Deletion. Tabel di bawah ini
menjelaskan operasi tersebut dengan contoh.

Operasi Contoh Penjelasan


Pembuatan list list1 = [‚python‛, Membuat list dengan
3.14, 101, ‚hello‛] elemen-elemen yang
list2 = [‚good‛, 6.78, berbeda tipe datanya.
9]
Indexing print(list1[0]) Mengakses item
python bernomor index 0
list1[2] (elemen pertama)
101
Mengakses item
bernomor indeks 2
(elemen ke-3)
Slicing (posisi akhir -1) print(list1[1:3]) Menampilkan item dari
Operator slice [3.14, 101] nomor indeks 1 s.d 2
digunakan untuk print(list1[1:]) Menampilkan item mulai
[3.14, 101, ‘hello’]
mengekstrak bagian bernomor indeks 1 s.d
dari list atau String akhir
Concatenation print(list1 + list2) Menggabungkan dan
[‘python’, 3.14, 101, mencetak item-item dari
‘hello’, ‘good’, 6.78, dua list
9]
Repetition list2 * 3 Membuat list baru,
[‘good’, 6.78, 9, menggabungkan 3
‘good’, 6.78, 9, salinan dari list2.
‘good’, 6.78, 9]
Updating list1[2] = 45 Mengupdate list
print(list1) menggunakan nilai
[‘python’, 3.14, 45, indeks
‘hell’]
Husni & Aeri Rachmad | 51
Inserting list1.insert(2, Menyisipkan suatu
‚program‛) elemen pada posisi
print(list1) nomor indeks 2 (elemen
['python', 3.14,
ke-3)
'program', 45, 'hello']

Menghapus list1.remove(45) Menghapus suatu


print(list1) elemen dengan
['python', 7.79, memberikan elemennya
'program', 'hello']
secara langsung.

Tuple
Suatu tuple sama seperti list, kecuali bahwa himpunan elemen-elemen diapit
kurung biasa bukan kurung siku. Selain itu, tuple bersifat immutable, sehingga
begitu suatu tuple dibuat maka kita tidak dapat menambahkan, mengubah atau
menghapus elemen-elemen yang ada di dalam tuple tersebut.

Jika demikian, apa keuntungan menggunakan tuple? Beberapa di antaranya


adalah

 Tuple lebih cepat daripada list


 Jika kita ingin melindungi data dari perubahan yang tak terduga, maka
dapat digunakan tuple
 Tuple dapat digunakan sebagai key (kunci) di dalam kamus (dictionary),
sedangkan list tidak dapat dijadikan key.

Operasi Tuple

Operasi Contoh Penjelasan


Membuat tuple t=("python", 7.79,
Membuat tuple dengan
101, "hello‛) elemen-elemen yang
berbeda tipe data
indexing print(t[0]) Mengakses item bernomor
python indeks 0 (elemen pertama)
t[2] Mengakses item bernomor
101
indeks 2 (elemen ke-3)
Slicing (posisi akhir - print(t[1:3]) Menampilkan item dari posisi
1) (7.79, 101) indeks 1 s.d 2
Penggabungan t+("ram", 67) Membuat tuple baru berisi
(Concat) ('python', 7.79, 101, gabungan elemen dua tuple
'hello', 'ram', 67)
Pengulangan print(t*2) Membuat tuple baru,

52 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


(repetition) ('python', 7.79, 101, elemen-elemennya
'hello', 'python', merupakan gabungan dari
7.79, 101, 'hello') salinan dari 2 tuple yang
sama

Mengubah elemen dalam Tuple menyebabkan Error. Kesalahan berikut terjadi


ketika pengguna mencoba melakukannya:

>>> t[0]="a"
Trace back (most recent call last):
File "<stdin>", Baris 1, in <module>
Type Error: 'tuple' object does not support item assignment

4.7 Mapping: Dictionary


Tipe daga ini bersifat tidak terurut dan mutable (dapat diterapkan perubahan
nilai). Kamus (Dictionary) termasuk bagian dari Mapping.

List sebagaimana telah kita pelajari merupakan himpunan obyek yang dapat
diurutkan, sedangkan dictionary berisi item yang tidak dapat diurutkan secara
lengkap. Variabel bertipe kamus dibuat dengan menggunakan kurung kurawal {},
bukan kurung biasa ataupun kurung siku. Perbedaan lain dibandingkan List dan
Tuple, Kamus ini diakses melalui key (kunci) bukan menggunakan posisi (nomor
indeks).

Kamus dapat disamakan dengan array (larik) asosiatif (di PHP atau Bahasa
pemrograman lain), dikenal juga sebagai hash. Suatu kunci dari kamus
diasosiasikan atau dipetakan ke suatu nilai. Nilai dari suatu dictionary dapat
berupa tipe data apapun yang disediakan Python. Karena itu, kamus merupakan
pasangan key-value tidak berurutan (asosiasi dari key dan value ini kemudian
dikenal sebagai pasangan key-value atau kunci-nilai).

Dictionary tidak mendukung operasi sequence dari tipe data rentetan seperti
String, Tuple dan List yang didiskusikan sebelumnya. Tabel berikut
memperlihatkan operasi yang dapat dan sering dilakukan terhadap Kamus.

Operasi Contoh Penjelasan


Membuat kamus food = {"ham":"yes", "egg" Membuat dictionary
: "yes", "rate":450 } dengan elemen-elemen
print(food) yang berbeda tipe data
{'rate': 450, 'egg':
'yes', 'ham': 'yes'}
Indexing print(food["rate"]) Mengakses item dengan

Husni & Aeri Rachmad | 53


450 key
Slicing print(t[1:3]) Menampilkan item dari
(7.79, 101) posisi ke-2 s.d ke-3

Jika kita mencoba untuk mengakses suatu kunci yang tidak ada, maka akan
diperoleh pesan error sebagai berikut:

>>> words = {"house" : "Haus", "cat":"Katze"}


>>> words["car"]
Traceback (most recent call last):
File "<stdin>", Baris 1, in <module>
KeyError: 'car'

Tabel di bawah ini memperlihatkan tipe data dan ilustrasi apa yang terjadi saat
program di-compile dan Ketika berjalan (run).

Tipe Data Saat Compile Kode program (run)


Int a=10 a=int(input(‚enter a‛))
Float a=10.5 a=float(input(‚enter a‛))
String a=‛panimalar‛ a=input(‚enter a string‛)
List a=[20,30,40,50] a=list(input(‚enter a list‛))
tuple a=(20,30,40,50) a=tuple(input(‚enter a tuple‛))

54 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


5. Variabel, Ekspresi, Pernyataan, Input-Output

5.1 Variabel
Variabel adalah suatu pengenal atau nama yang dapat digunakan untuk
memegang nilai yang dapat atau boleh berubah (sesuatu yang dapat divariasi).
Variabel memungkinkan kita menyimpan suatu nilai dengan memberikannya
suatu nama yang dapat digunakan selanjutnya. Pada dasarnya, di belakang layer,
Python memberikan nama untuk suatu alamat di memory computer. Pada alamat
tersebutlah suatu nilai disimpan dan variabel adalah nama yang
merepresentasikan dimana data berada.

Programmer biasanya memilih nama yang representatif dan bermakna untuk


setiap variabel yang digunakan. Nama variabel tidak dibatasi panjangnya, tetapi
tidak boleh mengandung spasi di dalamnya. Di Python kita tidak perlu
mendeklarasikan variabel sebelum menggunakannya. Cara membuat variabel
adalah cukup dengan memberikan (assign) suatu nilai ke variabel tersebut.
Dengan car aini, variabel telah ada di memory dan siap digunakan lebih lanjut.

Memberikan Nilai ke Variabel

Nilai yang akan diberikan ke suatu variabel harus diletakkan di sebelahan kanan
operator assignment (=) dan variabel yang menerima nilai tersebut di sisi kirinya.

counter = 45
print(counter)

Di Python, kita dapat pula memberikan suatu nilai ke beberapa variabel secara
simultan:

a = b = c = 100

Bahkan, kita juga dapat mengassign banyak nilai ke banyak variabel, seperti
berikut:

a, b, c = 2, 4, ‚ram‛

5.2 Kata Kunci

Kata kunci atau keyword merupakan kata-kata penting yang dicadangkan dan
digunakan sebagai perintah dalam Bahasa Python. Kata-kata ini tidak boleh dan

Husni & Aeri Rachmad | 55


tidak dapat digunakan sebagai nama variabel di dalam kode program kita. Ini juga
berlaku untuk nama fungsi, nama obyek, nama kelas dan pengenal (identifier)
lainnnya. Keyword digunakan untuk mendefinisikan sintaks dan struktur dari
Bahasa Python. Keyword ini, sebagaimana pengenal lain di Python, bersifat case-
sensitive.

Berikut ini adalah keyword yang disediakan oleh Python:

Keyword Penjelasan
and Operator logika AND
as Membuat alias, misal saat import modul
assert Digunakan untuk debugging
break Mem-break out suatu perulangan (loop)
class Mendefinisikan suatu class
continue Melanjutkan proses ke iterasi berikutnya dari suatu
perulangan
def Mendefinisikan fungsi
del Menghapus suatu obyek.
elif Digunakan dalam pernyataan kondisional, sama dengan
else if
else Digunakan dalam pernyataan kondisional
except Digunakan dengan exceptions, apa yang dilakukan saat
suatu exception terjadi.
False Nilai Boolean, hasil dari operasi perbandingan
finally Digunakan dengan exceptions, blok kode yang akan
dieksekusi jika tidak ada satupun eksepsi yang terpenuhi
for Membuat perulangan for
from Mengimport bagian spesifik dari suatu modul
global Mendeklarasikan suatu variabel global
if Membuat suatu pernyataan kondisional
import Mengimport suatu modul
in Memeriksa apakah suatu nilai ada di dalam list, tuple, dll.
is Menguji apakah dua variabel sama (equivalen)
lambda Membuat suatu fungsi anonymous
None Merepresentasikan suatu nilai null
nonlocal Mendeklarasikan suatu variabel non-local
not Operator logika NOT
or Operator logika OR
pass Suatu pernyataan null, pernyataan yang tidak akan
melakukan apapun
raise Membangkitkan suatu eksepsi (exception)

56 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


return Keluar suatu fungsi dan mengembalikan nilai
True Nilai Boolean, hasil dari operasi komparasi
try Membuat suatu pernyataan try...except
while Membuat suatu perulangan while
with Digunakan untuk menyederhanakan penanganan eksepsi
yield Mengakhiri suatu fungsi, mengembalikan generator

5.3 Pengenal (Identifier)


Pengenal adalah nama yang diberikan untuk entitas seperti kelas, fungsi, variabel,
dan lain-lain di dalam kode program Python. Pengenal ini dapat berupa kombinasi
huruf kecil (a s.d z) atau huruf besar (A s.d Z) atau digit (0 s.d 9) atau garis bawah
(_). Pengenal tidak boleh dimulai dengan angka, harus dimulai huruf atau garis
bawah. Kata kunci yangh telah disebutkan sebelumnya tidak dapat digunakan
sebagai pengenal. Karakter-karakter khusus seperti !, @, $, #, %, tidak dapat
digunakan sebagai nama pengenal. Berapa panjang maksimal yang dobolehkan
untuk suatu pengenal? Tidak dibatasi. Sangat disarankan programmer
menggunakan nama yang mewakili apa yang dikerjakan.

Contoh pengenal yang shahih:

myClass, var_1, ini_nama_variabel_yang_panjang

Tabel berikut memperlihatkan contoh pengenal yang valid dan tidak.

Pengenal Valid Pengenal Tidak Valid


Jarijari 2jari
jari_jari jari-jari
r Jari.jari
R1 Luas lingkaran
_Jari2 if
IF else
true True
ELse 4ll

5.4 Pernyataan dan Ekspresi


Pernyataan

Instruksi yang dapat dieksekuysi oleh Interpreter Python dinamakan pernyataan


(statement). Suatu pernyataanadalah satuan kode seperti pembuatan variabel
atau menampilkan nilai.

Husni & Aeri Rachmad | 57


n = 17
print(n)

Di sini, baris pertama adalah pernyataan assignment (pemberian nilai) yang


memberikan suatu nilai ke n. Baris kedua adalah penyataan print yang mencetak
atau menampilkan nilai dari yang dipegang variabel n.

Ekspresi

Suatu ekspresi merupakan kombinasi nilai, variabel dan operator. Suatu nilai
dengan sendirinya dianggap sebagai ekspresi, dan begitu pula suatu variabel. Jadi,
baris-baris berikut semuanya merupakan ekspresi yang sah:

>>> 42
42
>>> a=2
>>> a+3+2
7
>>> z=("hi"+"friend")
>>> print(z)
hifriend

5.5 Input dan Output


Input adalah data yang dimasukkan oleh pengguna (end-user) ke dalam program.
Di Python, fungsi input() tersedia untuk meminta inputan dari pengguna.

Sintaks penggunaan fungsi input:

variabel = input(‚teks permintaan input‛)

Contoh:

>>> x=input("enter the name:")


enter the name: george
>>>y=int(input("enter the number"))
enter the number 3

Secara default, setiap inputan dari pengguna adalah teks, sehingga bertipe data
String. Agar data input tersebut dapat diproses dalam komputasi maka harus
dikonversi ke integer atau float. Konversi ini dapat menggunakan fungsi int(),
float() atau eval().

58 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Output adalah sesuatu yang ditampilkan kepada pengguna, salah satu caranya
adalah menggunakan pernyataan print.

Sintaks perintah print:

print (expression/constant/variable)

Contoh:

>>> print ("Hello")


Hello

5.6 Komentar
Komentar adalah sesuatu yang tidak diproses oleh Interpreter Python tetapi
berguna bagi programmer karena berisi penjelasan mengenai kode program.
Apapun yang diletakkan setelah tanda hash (#) dianggap sebagai komentar.

Contoh:

percentage = (minute * 100) / 60 # hitung persentasi dalam satu


jam

Python tidak mempunyai fitur komentar banyak baris. Kita harus membuat
banyak baris komentar untuk mewujudkan ini.

Contoh:

# This is a comment.
# This is a comment, too.
# I said that already.

5.7 Docstring

Docstring merupakan kependekan dari documentation string. Docstring adalah


suatu string yang muncul sebagai pernyataan pertama di dalam definisi modul,
fungsi, kelas atau metode. String ini dibuat dengan melingkupi suatu teks dengan
triple quotes (tiga karakter double/single quote).

Contoh:

def double(num):
"""Fungsi menggandakan suatu nilai. """
Husni & Aeri Rachmad | 59
return 2*num

print(double.__doc__)
Fungsi menggandakan suatu nilai.

Terlihat jelas bagaimana docstring ini diakses, yaiti mengikuti sintaks:

Namafungsi.__doc__

5.8 Baris dan Indentasi


Sebagian besar Bahasa pemrograman seperti C, C++, dan Java menggunakan
kurung kurawal {} untuk mendefinisika suatu blok kode. Namun Python tidak
menggunakan cara yang sama. Di Python, suatu blok dibuat menggunakan fitur
indentasi. Jadi, jika ditemukan suatu baris yang masuk lebih dalam (ke kanan)
maka itu pertanda adanya blok baru. Jika suatu baris ditemukan lebih kirsi (keluar
ke kiri) dari baris di atasnya, maka baris tersebut sudah keluar dari suatu blok.
Indentasi dbuat dengan memberikan spasi atau tab kepada suatu baris, misalnya
baris di bawah suatu nama fungsi. Indentasi harus digunakan di dalam kelas,
fungsi dan kendali aliran program (seleksi kondisi dan perulangan).

Contoh:

a=3
b=1
if a>b:
print("a is greater")
else:
print("b is greater")

5.9 Tanda Petik


Python menerima tanda petik (quote) tunggal (‘) dan ganda (“) untuk membuat
nilai bertipe String, juga terdapat 3 tanda petik (‘’’ atau “””) untuk keperluan
docstring. Apapun yang direpresentasikan (diapit) oleh tanda petik ini dianggap
sebagai String.

Contoh:

Petik tunggal ‘ : ‚Ini teks yang diapit single quote‛


Petik ganda ‚ : ‚Ini teks yang diapit double quote‛
3 tanda petik ‚‛‛ : ‚‛‛Ini teks paragraph
banyak baris diapit
3 tanda petik‛‛‛

60 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


5.10 Tuple Assignment
Bagaimana kita dapat melaksanakan assignment (pemberian nilai) berbeda
kepada banyak variabel sekaligus? Kita sudah melihat hal yang mirip demikian
pada halaman sebelumnya. Python memiliki fitur penting bernama tuple
assignment yang memungkinkan kita meletakkan banyak variabel di dalam tuple.
Tuple ini diletakkan di sisi kiri operator assignment (=) dan nilai-nilai yang akan
diterimanya diletakkan di dalam tuple pada sisi kanan. Jadi, tuple yang berisi
variabel di sisi kir, sedangkan tuple yang berisi nilai di sebelah kanan.

Setiap nilai akan diterima oleh variabel yang bersesuaian. Semua ekspresi pada sisi
kanan akan dievaluasi sebelum assignnment dilaksanakan. Fitur ini mengakibatkan
tuple assignment menjadi semakin serbaguna. Secara alami, jumlah variabel pada
sisi kiri dan jumlah nilai pada sisi kananharuslah sama.

(a, b, c, d) = (1,2,3)
ValueError: need more than 3 values to unpack

Contoh:

Tuple assignment berguna salah satunya untuk menukarkan nilai dari dua
variabel. Dengan pernyataan assignment konvensional, kita harus menggunakan
variabel temporer (sementara). Perhatikan kode untuk menukar nilai a dan b
berikut:

Menukar Dua Bilangan Output


a=2;b=3
print(a,b) (2, 3)
temp = a
a = b
b = temp
print(a,b) (3, 2)

Tuple assignment dengan mudah menyelesaikan masalah ini dengan cara berikut:

(a, b) = (b, a)

Cara sederhana memahami tuple assignment adalah mengikuti konsep tuple


packing /unpacking. Dalam tuple packing, nilai-nilai pada sisi kiri dipaket bersama-
sama dalam suatu tuple.

b = ("George", 25, "20000") # tuple packing, pembuatan variabel


tuple biasa
Husni & Aeri Rachmad | 61
Pada saat tuple unpacking, nilai di dalam tuple pada sisi kanan diunpack
(dibongkar dan dimuat) ke dalam nama variabel di sisi kiri.

>>> b = ("George", 25, "20000") # tuple packing


>>> (name, age, salary) = b # tuple unpacking
>>> name
'George'
>>> age
25
>>> salary
'20000'

Sisi kanan dapat berupa sequence jenis apapun (String, List, Tuple)

Contoh:

Mensplit suatu alamat email menjadi nama pengguna dan domainnya:

>>> mailid='god@abc.org'
>>> name,domain=mailid.split('@')
>>> print name
god
>>> print (domain)
abc.org

62 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


6. Operator
Operator adalah konstruksi yang dapat memanipulasi nilai yang dipegang suatu
operan (variabel) dalam suatu operasi. Katakan kita mempunyai ekspresi 4 + 5 = 9.
Di sini, 4 dan 5 dinamakan sebagai operan dan + disebut sebagai operator.
Python menghadirkan banyak operator, hamper semua berkaitan dengan
matematika (dan logika). Berikut ini adalah beberapa jenis operator yang perlu
diketahui:

 Operator aritmatika
 Operator Perbandingan (relasi)
 Operator Assignment (pemberian nilai)
 Operator Logika
 Operator Bitwise
 Operator keanggotaan (membership)
 Operator Identitas.

Mari kita lihat satu demi satu.

6.1 Operator Aritmatika


Operator aritmatika digunakan untuk mengerjakan operasi matematika seperti
penjumlahan, pengurangan, perkalian dan pembagian. Tabel di bawah ini
menunjukkan berbagai operator yang dapat digukan untuk perasi aritmatika.

Operator Deskripsi Contoh


Penjumlahan + Nilai kedua operan dijumlahkan a+b
Mengurangkan nilai operan di sisi kiri sebesar
Pengurangan - b-b
operan sebelah kanan
Melipat-gandakan salah satu operan sebanyak
Perkalian * a*b
operan lainnya
Membagi operan disebelahkiri sebanyak open
Pembagian / a*b
sebelah kanan. Hasilnya pasti bertipe float.
Membagi operan sisi kiri dengan operan sisi kanan
Modulus % a%b
dan mengembalikan sisanya
Eksponen ** Mengerjakan operasi pangkat a ** b
Pembagian integer, seperti pembagan normal
Pembagian // 5 // 2
(float), hanya mengembalikan bagian bulatnya.

Husni & Aeri Rachmad | 63


Contoh:

Contoh Output
a = 10
b = 5
print("a + b =", a+b) a+b= 15
print("a – b =", a-b) a-b= 5
print("a * b =", a*b) a*b= 50
print("a / b =", a/b) a/b= 2.0
print("a % b =", a%b) a%b= 0
print("a // b =", a//b) a//b= 2
print("a ** b =", a**b) a**b= 100000
6.2 Operator Relasi
Operator relasi digunakan untuk membandingkan nilai-nilai. Perbandingan ini
dapat mengembalikan nilai True atau False sesuai dengan kondisi yang
dibandingkan. Tabel berikut memperlihatkan bagaimana operator relasi ini
bekerja. Anggaplah a = 10 dan b = 5.

Operator Deskripsi Contoh


Jika nilai dua operan sama, maka kondisi (a ==b) hasilnya
==
hasilya menjadi True False
Jika nilai dari dua operan tidak sama,
!= (a!=b) hasilnya True
diperoleh kondisi tidak True = False
Jika nilai operan kiri lebih besar (lebih)
> daripada operan kanan, kondisi menjadi (a>b) hasilnya True
True
Jika nilai operan kiri lebih kecil (kurang)
< daripada operan kanan, kondisi menjadi (a<b) hasilnya False
True
Jika nilai operan kiri lebih besar atau sama
>= (a>=b) hasilnya True
dengan operan kanan, kondisi menjadi True
Jika nilai operan kiri lebih kecil atau sama (a<=b) hasilnya
<=
dengan operan kanan, kondisi menjadi True False

64 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Contoh:

Contoh Output
a=10
b=5
print("a > b =>", a>b) a > b => True
print("a > b =>", a<b) a > b => False
print("a == b =>", a==b) a == b => False
print("a != b =>", a!=b) a != b => True
print("a >= b =>", a<=b) a >= b => False
print(" a>= b =>", a>=b) a >= b => True

6.3 Operator Assignment


Operator assignment digunakan untuk memberikan nilai ke variabel-variabel.

Operator Deskripsi Contoh


Operator dasar dalam pemberian nilai ke suatu
variabel. Variabel tujuan harus disebelah kiri tanda c = a + b memberikan
=
ini, sedangkan nilai yang diberikan harus disebelah nilai a + b ke c
kanannya.
c += a
Menambahkan operan di sebelah kanan ke operan
+= sama dengan
kiri dan memberikan hasilnya ke operan sebelah kiri.
c=c+a
Mengurangkan operan di sebelah kiri sebesar operan c -= a
-= kanan dan memberikan hasilnya ke operan sebelah sama dengan
kiri. c=c-a
c *= a
Mengalikan operan di sebelah kanan dengan operan
*= sama dengan
kiri dan memberikan hasilnya ke operan sebelah kiri.
c=c*a
c /= a
Membagi operan di sebelah kiri dengan operan kanan
/= sama dengan
dan memberikan hasilnya ke operan sebelah kiri.
c=c/a
Membagi operan di sebelah kiri dengan operan kanan c %= a
%= dan memberikan sisa hasil baginya ke operan sebelah sama dengan
kiri. c=c%a
c **= a
Mengerjakan kalkulasi eksponen (pangkat) sebesar
sama dengan
**= operan sebelah kanan terhadap operan sebelah kiri
c = c ** a
dan memberikan hasilnya ke operan sebelah kiri.
c //= a
Membagi operan di sebelah kiri dengan operan kanan
sama dengan
//= dan memberikan bagian bulat hasil baginya ke operan
c = c // a
sebelah kiri.

Husni & Aeri Rachmad | 65


Contoh:

Contoh Output
a = 21
b = 10
c = 0
c = a + b
print("Baris 1 - Nilai dari c =", c) Baris 1 - Nilai dari c = 31
c += a
print("Baris 2 - Nilai dari c =", c) Baris 2 - Nilai dari c = 52
c *= a
print("Baris 3 - Nilai dari c =", c) Baris 3 - Nilai dari c = 1092
c /= a
print("Baris 4 - Nilai dari c =", c) Baris 4 - Nilai dari c = 52.0
c = 2
c %= a
print("Baris 5 - Nilai dari c =", c) Baris 5 - Nilai dari c = 2
c **= a
print("Baris 6 - Nilai dari c =", c) Baris 6 - Nilai dari c = 2097152
c //= a
print("Baris 7 - Nilai dari c =", c) Baris 7 - Nilai dari c = 99864

6.4 Operator Logika


Operator logika yang banyak digunakan adalah AND, OR, dan NOT. Tabel berikut
menunjukkan penggunaan ketiganya.

Operator Deskripsi Contoh


and True jika kedua operan bernilai True x and y
or True jika salah satu dari kedua operan bernilai True x or y
not True jika operan bernilai False (komplemen) not x

Contoh:

Potongan Kode Output


a = True
b = False
print('a and b =', a and b) x and y = False
print('a or b =', a or b) x or y = True
print('not a =', not a) not x = False

66 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


6.5 Operator Bitwise
Operator bitwise beroperasi pada satu atau lebih pola bit pada level bit (binary
digit: 0 dan 1). Tabel di bawah ini memperlihatkan kegunaan dari operator
bitwise. Anggap x = 10 (0000 1010) dan y = 4 (0000 0100).

Operator Deskripsi Contoh


& Bitwise AND x & y = 0 (0000 0000)
| Bitwise OR x | y = 14 (0000 1110)
~ Bitwise NOT ~x = -11 (1111 0101)
^ Bitwise XOR x ^ y = 14 (0000 1110)
>> Bitwise Geser Kanan x >> 2 = 2 (0000 0010)
<< Bitwise Geser Kiri x << 2 = 40 (0010 1000)

Contoh:

Potongan Kode Output


a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print "Baris 1 - Nilai dari c =", c Baris 1 - Nilai dari c = 12
c = a | b; # 61 = 0011 1101
print "Baris 2 - Nilai dari c =", c Baris 2 - Nilai dari c = 61
c = a ^ b; # 49 = 0011 0001
print "Baris 3 - Nilai dari c =", c Baris 3 - Nilai dari c = 49
c = ~a; # -61 = 1100 0011
print "Baris 4 - Nilai dari c =", c Baris 4 - Nilai dari c = -61
c = a << 2; # 240 = 1111 0000
print "Baris 5 - Nilai dari c =", c Baris 5 - Nilai dari c = 240
c = a >> 2; # 15 = 0000 1111
print "Baris 6 - Nilai dari c =", c Baris 6 - Nilai dari c = 15

6.6 Operator keanggotaan


Operator keanggotaan (membership) digunakan untuk mencari keberadaan suatu
nilai atau variabel di dalam sequence tertentu baik berupa string, list, tuple,
maupun dictionary. Katakanlah terdapat suatu list x = [5,3,6,4,1], untuk
memeriksa apakah item tertentu terdapat di dalam list ini, kita dapat
menggunakan operator in dan not in. Tabel di bawah ini memperlihatkan
penggunaan kedua operator tersebut.

Husni & Aeri Rachmad | 67


Operator Deskripsi Contoh
True jika nilai atau variabel ditemukan di
in 5 in x
dalam sequence tersebut
True jika nilai atau variabel TIDAK ditemukan 5 not in x
not in
di dalam sequence tersebut

Contoh:

x = [5,3,6,4,1]
5 in x
True
5 not in x
False

6.7 Operator Identitas.


Operator Identitas digunakan untuk memeriksa apakah dua nilai atau variabel
berada pada alamat memory yang sama/

Operator Deskripsi Contoh


True jika operan-operan identic (merujuk ke
is x is True
obyek yang sama)
True jika operan-operand tidak identic (tidak x is not True
is not
merujuk ke alamat memory yang sama)

Contoh:

Potongan Kode Output


x = 5
y = 5
x2 = ‘Hello’
y2 = ‘Hello’
print(x1 is not y1) False
print(x2 is y2) True

6.8 Presedensi Operator


Pada saat suatu ekspresi mengandung lebih dari satu operator, urutan evaluasi
tergantung pada urutan dari operasi. Urutan operasi ini tergantung pada prioritas
operator yang digunakan di antara operan-operan. Tabel berikut memperlihatkan
presedensi (urutan pelaksanaan operasi) dari operator.

68 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Operator Deskripsi
** Eksponensial (operator pangkat)
Komplemen, tanda plus dan minus uner (nama
~ + -
metode dua operator terakhir adalah +@ dan -@)
Perkalian, pembagian float, modulus, pembagian
* / % //
integer.
+ - Penjumlahan dan Pengurangan
>> << Pergeseran bitwise ke kiri kanan dan kiri
& Bitwise ‘AND’
^ | Bitwise OR eksklusif dan OR biasa
<= < > >= Operator perbandingan (relasi)
< > == != Operator kesamaan
= %= /= //= -= += *= **= Operator assignment (pemberian nilai)
Is is not Operator identitas
In not in Operator keanggotaan
Not or and Operator logika

Terhadap operator matematika, Python mengikuti konvensi matematika yang


berlaku selama ini. Akronim PEMDAS (Parentheses, Exponentiation, Multiplication,
Division, Addition, Subtraction) merupakan cara yang cukup efektif mengigat
aturan tersebut.
 Tanda kurung mempunyai presedensi tertinggi dan dapat digunakan untuk
memaksakan suatu ekspresi dievaluasi mengikuti urutan yang diinginkan.
Karena ekspresi di dalam kurung akan dievaluasi terlebih dahulu, maka 2 *
(3-1) memberikan hasil 4 dan (1 + 1) ** (5-2) mengembalikan nilai 8.
 Kita dapat juga menggunakan tanda kurung untuk membuat suatu ekspresi
yang lebih mudah dibaca, seperti (menit * 100) / 60, bahkan jika itu tidak
menguah hasilnya.
 Eksponensiasi mempunyai presedensi tertinggi berikutnya, sehingga 1 +
2**3 mengembalikan nilai 9, bukan 27, dan 2*3**2 memberikan hasil 18,
bukan 36.
 Perkalian dan pembagian mempunyai presedensi lebih tinggi daripada
penjumlahan dan pengurangan, sehingga 2*3-1 memberikan hasil 5, bukan
4, dan 6+4/2 mengembalikan hasil 8, bukan 5.
 Operator dengan presedensi sama akan dievaluasi dari kiri ke kanan
(kecuali eksponensiasi)

Contoh:

a=9-12/3+3*2-1 A=2*3+4%5-3/2+6 Berapakah m?


berapakah a? A=6+4%5-3/2+6
A=6+4-3/2+6 m=-43||8&&0||-2
Husni & Aeri Rachmad | 69
a=9-4+3*2-1 A=6+4-1+6 m=-43||0||-2
a=9-4+6-1 A=10-1+6 m=1||-2
a=5+6-1 A=9+6 m=1
a=11-1 A=15
a=10

a=2, b=12, c=1 a=2, b=12, c=1 a=2*3+4%5-3//2+6


d=a<b>c d=a<b>c-1 a=6+4-1+6
d=2<12>1 d=2<12>1-1 a=10-1+6
d=1>1 d=2<12>0 a=15
d=0 d=1>0
d=1

6.9 Contoh Program

Program Pertukaran Nilai Output


a = int(input("Masukkan nilai a ")) Masukkan nilai a 5
b = int(input("Masukkan nilai b ")) Masukkan nilai b 8
a=8
c = a b=5
a = b
b = c

print("a=",a,"b=",b,)

Program Mencari Jawak Antara Dua Titik Output


import math Masukkan x1 7
Masukkan y1 6
x1=int(input("Masukkan x1")) Masukkan x2 5
y1=int(input("Masukkan y1")) Masukkan y2 7
x2=int(input("Masukkan x2")) 2.5
y2=int(input("Masukkan y2"))

distance =math.sqrt((x2-x1)**2)+((y2-
y1)**2)
print(distance)

Program Putaran n Bilangan Output


a=list(input("Masukkan List")) Masukkan List '1234'
print(a) ['1', '2', '3', '4']
['2', '3', '4', '1']
for i in range(1,len(a),1): ['3', '4', '1', '2']
print(a[i:]+a[:i]) ['4', '1', '2', '3']

70 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


7. Seleksi Kondisi

Python mempunyai beberapa pendekatan dalam mengatur laju program melalui


seleksi kondisi. Pendekatan ini dapat dibagi menjadi:

 Kondisi Satu arah:if


 Kondisi Dua arah: if-else
 Kondisi Banyak Arah: if-elif-else
 Kondisi Bertingkat: if bersarang

7.1 if
Seleksi kondisi searah hanya berupa if. Pendekatan ini digunakan untuk menguji
suatu kondisi dimana jika kondisi tersebut bernilaiTrue maka pernyataan di dalam
(atau di bawah) blok if tersebut akan dieksekusi.

Sintaks dari bentuk if paling sederhana ini adalah

if (kondisi):
pernyataan

Jika digambarkan dalam bentuk flowchart diperoleh Gambar 7.1.

Gambar 7.1 Flowchart Seleksi Kondisi if Searah

Contoh:

1. Program untuk memberikan potongan 5000 rupiah jika jumlah total


pembelian lebih dari 90000 rupiah
2. Program untuk memberikan potongan 10% harga tiket untuk mahasiswa.

Husni & Aeri Rachmad | 71


Program Potongan 5000 Output
pembelian=eval(input(‚Masukkan total Masukkan total pembelian
pembelian (Rp.):‛)) (Rp.): 100000

if(pembelian >= 90000):


pembelian = pembelian -5000
print(‚Total pembelian:‛, pembelian) Total pembelian: 95000

Program Dison 5% jika Mahasiswa


hargatiket = eval(input(‚Berapa harga Berapa harga tiket?‛ 150000
tiket?‛)) Kategori penumpang (U/M)? M
kategori= input(‚Kategori Penumpang
(U/M)?‛)
Harga Tiket: 142500
if(kategori == ‘M’):
hargatiket -= (hargatiket * 0.05)

print(‚Harga Tiket:‛, hargatiket)

7.2 if-else
Bentuk if-else dapat dikatakan sebagai alternatif dari if sederhana. Pernyataan if
dipadukan dengan else. Secara mudah kita dapat membacanya “jika kondisi ini
bernilai True maka kerjakan blok if, jika tidak (jika kondisi bernilai False) maka
kerjakan blok else. Jadia ada dua kemungkinan hasil, True atau False, sehingga ada
dua kemungkinan arah eksekusi. Karena itulah bentuk if-else ini dinamakan
kondisi dua arah.

Sintaks dari if-else di Python adalah

if (kondisi):
pernyataan 1
else:
pernyataan 2

Jika diwujudkan dalam bentuk flowcharat diperoleh Gambar 7.2:

72 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Gambar 7.2 Flowchart Seleksi Kondisi dua arah if-else

Contoh:

 Memeriksa ganjil atau genapnya suatu bilangan


 Memeriksa apakah suatu bilangan bernilai positif atau negatif
 Memastikan apakah suatu tahun termasuk tahun kabisat atau bukan.
 Mencari bilangan terbesar di antara dua bilangan
 Hak memilih

Bilangan Genap atau Ganjil? Output


n=eval(input("Masukkan bilangan:")) Masukkan bilangan: 8

if(n%2==0): Bilangan Genap.


print("Bilangan Genap.")
else:
print("Bilangan Ganjil.")

Bilangan Positif atau Negatif?


n=eval(input("Masukkan angka:")) Masukkan angka: -5

if(n>=0): Bilangan negatif.


print("Bilangan positif.")
else:
print("Bilangan negative.")

Tahun Kabisat
y=eval(input("Masukkan Tahun:")) Masukkan Tahun: 2010

if(y%4==0): Bukan Tahun Kabisat.


print("Tahun Kabisat.")
else:
print("Bukan Tahun Kabisat.")

Bilangan Terbesar
a=eval(input("Masukkan angka a:")) Masukkan angka a: 10
b=eval(input("Masukkan angka b:")) Masukkan angka b: 12
Husni & Aeri Rachmad | 73
Terbesar: 12
if(a>b):
print("Terbesar:", a)
else:
print("Terbesar:", b)

Hak Memilih
age=eval(input("Berapa usia anda?")) Berapa usia anda? 45
Anda punya hak suara.
if(age>=18):
print("Anda punya hak suara.")
else:
print("Anda tidak punya hak suara.")

7.3 if-elif-else
Bentuk struktur seleksi kondisi seperti ini disebut pula kondisi berantai atau
seleksi kondisi banyak arah dikarenakan ada beberapa seleksi terhadap kondisi.
Keyword elif merupakan singkatan dari else-if yang digunakan untuk memeriksa
leih dari satu konsisi. Jika kondisi1 bernilaiFalse, maka dilakukan pemeriksaan
terhadap Kondisi2 yang berada diblok elif. Jika semua kondisi bernilai False, maka
bagian dari else yang dieksekusi. Diantara bagian if…elif… else ini, hanya satu
bagian yang dieksekusi sesuai dengan nilai kondisi yang bernilai True. Blok if hanya
boleh memiliki satu bagian else, tetapi dapat mempunyai banyak blok elif.

Sintaks dari if-elif-else ini adalah

if (kondisi 1):
pernyataan 1
elif (kondisi 2):
pernyataan 2
elif (kondisi 3):
pernyataan 3
else:
pernyataan default

Jika dibuatkan flowchart, if-elif-else terlihat seperti Gambar 7.3.

74 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Gambar 7.3 Flowchart Seleksi Kondisi Banyak Arah: if-elif-else
Contoh

 Sistem Nilai Mahasiswa


 Sistem Traffic Light
 Membandingkan dua bilangan
 Akar dari persamaan kuadrat

Sistem Nilai Mahasiswa Output


mark=eval(input("Masukkan Nilai:")) Masukkan Nilai: 67
Nilai: C
if(mark>=80):
print("Nilai: A")
elif(mark>=70):
print("Nilai: B")
elif(mark>=60):
print("Nilai: C")
elif(mark>=50):
print("Nilai: D")
else:
Husni & Aeri Rachmad | 75
print("Nilai: E")

Sistem Traffic Light


colour=input("Masukkan warna lampu:") Masukkan warna lampu:
kuning
if(colour=="hijau"):
print("JALAN")
elif(colour=="kuning"): HATI-HATI
print("HATI-HATI")
else: print("BERHENTI")

Membandingkan Dua Bilangan


x=eval(input("Masukkan nilai x:")) Masukkan nilai x:7
y=eval(input("Masukkan nilai y:")) Masukkan nilai y:12

if(x == y): x lebih kecil daripada y


print("x dan y sama")
elif(x < y):
print("x lebih kecil daripada y")
else:
print("x lebih besar daripada y")

Akar Persamaan Kuadrat


a=eval(input("enter a value:")) enter a value:1
b=eval(input("enter b value:")) enter b value:0
c=eval(input("enter c value:")) enter c value:0
same and real roots
d=(b*b-4*a*c)

if(d==0):
print("same and real roots")
elif(d>0):
print("different real roots")
else:
print("imaginary roots")

7.4 Kondisi Bersarang


Seleksi terhadap suatu kondisi dapat pula dibuat bersarang di dalam seleksi
kondisi lainnya. Jika suatu syarat kondisi utama terpenuhi maka program perlu
memeriksa syarat kondisi selanjutnya (sub-kondisi), misalnya. Jika kedua kondisi
bernilai True, maka pernyataan yang lebih dalam akan dieksekusi.

Berikut ini adalah sintaks dari seleksi kondisi bersarang:

76 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


if (kondisi 1):
if (kondisi 2):
pernyataan 1
else:
pernyataan 2
else
if (kondisi 3):
pernyataan 3
else:
pernyataan 4

Contoh flowchart dari if bersarang diperlihatkan pada gambar. Jika kondisi1


bernilai True maka diperiksa apakah Kondisi2 juga bernilai True? Jika kedua kodisi
ini bernilai True maka Pernyataan1 yang dieksekusi. Jika hanya Kondisi 1 yang
bernilai True daan Kondisi 2 tidak terpenuhi maka Pernyataan2 yang dieksekusi
(lihat Gambar 7.4).

Gambar 7.4 Flowchart Seleksi Kondisi Bersarang

Bagaimana jika Kondisi 1 bernilai False? Flowchart ini memperlihatkan perlunya


memeriksa Kondisi 3. Jika Kondisi 3 bernilai True maka Pernyataan3 yang
dieksekusi. Jika Kondisi3 juga bernilai False maka yang dieksekusi adalah
Pernyataan 4.

Contoh:

 Terbesar dari 3 bilangan


 Positif Negatif atau Nol

Husni & Aeri Rachmad | 77


Terbesar dari 3 Bilangan Output
a=eval(input(‚Masukkan nilai a:‛)) Masukkan nilai a: 12
b=eval(input(‚Masukkan nilai b:‛)) Masukkan nilai b: 5
c=eval(input(‚Masukkan nilai c:‛)) Masukkan nilai c: 9

if(a>b): Angka terbesar


if(a>c): adalah 12
print(‚Angka terbesar adalah‛, a)
else:
print(‚Angka terbesar adalah‛, c)
else:
if(b>c):
print(‚Angka terbesar adalah‛, b)
else:
print(‚Angka terbesar adalah‛, c)

Positif Negatif atau Nol


n=eval(input("Masukkan angka n:")) Masukkan angka n: -3

if(n==0): Angka tersebut


print("Angka tersebut nol.") negatif
else:
if(n>0):
print("Angka tersebut positif. ")
else:
print("Angka tersebut negatif.")

78 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


8. Kendali Perulangan

Python mempunyai pernyataan untuk mengontrol perulangan atau iterasi. Terkait


fitur ini, ada beberapa istilah yang perlu dipahami, yaitu:

 State (status)
 While
 For
 Break
 Continue
 Pass

Status, Kondisi atau Keadaan adalah transisi dari satu proses ke proses lain dalam
kondisi tertentu dengan waktu tertentu.

Ada 2 pendekatan untuk menangani perulangan di Python, yaitu while dan for.
Mari kita diskusikan satu demi satu.

8.1 Perulangan while


Pernyataan perulangan atau loop while digunakan untuk secara berulang
mengekekusi himpunan pernyataan selama suatu kondisi yang diberikan bernilai
True. Di dalam perulangan while, ekspresi uji diperiksa terlebih dahulu. Badan dari
perulangan (loop body) dimasuki hanya jika ekspresi uji bernilai True. Setelah satu
iterasi (satu siklus perulangan). Ekspresi uji Kembali diperiksa. Proses ini berlanjut
terus sampai ekspresi uji bernilai False saat dievaluasi.
Di Python, badan dari perulangan while dibuat dengan cara indentasi, sama
seperti blok pada if-elif-else sebelumnya. Pernyataan-pernyataan di dalam while
dimulai dengan indentasi dan baris pertama yang keluar dari indentasi tersebut
menandakan akhir blok while.

Husni & Aeri Rachmad | 79


Gambar 8.1 Bentuk dasar dari perulangan while
Sintaks dasar dari perulangan while adalah

nilai awal
while (kondisi)
badan perulangan while
increment

Sedangkan jika diwujudkan dalam bentuk flowchart diperoleh seperti Gambar 8.1

Gambar 8.1 jelas memperlihatkan bahwa jika Kondisi atau Ekspresi Uji bernilai
True maka badan while loop diproses (dieksekusi) dan kemudian setelah adanya
increment Kembali dilakukan pemeriksaan terhadap Kondisi. Satu kali proses
perulangan disebut satu iterasi.

Contoh program

 Program untuk mencari hasil penjumlahan n bilangan


 Program untuk mencari factorial dari suatu bilangan
 Program untuk mencari hasil penjumlahan digit dari suatu bilangan
 Program untuk membalikkan (reverse) bilangan yang diberikan
 Program untuk mengetahui apakah suatu angka termasuk bilangan
Amstrong atau tidak
 Program untuk memeriksi apakah suatu angka termasuk bilangan
palindrom.

80 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Jumlah n Bilangan Output
n=eval(input("Masukkan n:")) Masukkan n: 10

i=1 55
sum=0
while(i<=n):
sum=sum+i
i=i+1

print(sum)

Faktorial dari suatu Bilangan


n=eval(input("enter n")) Masukkan n: 5

i=1 fact=1 120

while(i<=n):
fact=fact*i
i=i+1

print(fact)

Penjumlahan Digit dari suatu Bilangan


n=eval(input("Masukkan suatu angka:")) Masukkan suatu Angka:
123
sum=0
while(n>0): 6
a=n%10
sum=sum+a
n=n//10

print(sum)

Membalik Bilangan
n=eval(input("Masukkan suatu Angka: ")) Masukkan suatu Angka:
123
sum=0
while(n>0): 321
a=n%10
sum=sum*10+a
n=n//10

print(sum)

Cek Bilangan Amstrong


n=eval(input("Masukkan suatu Angka:")) Masukkan suatu Angka:
153
org=n
Husni & Aeri Rachmad | 81
sum=0 Angka itu bilangan
Armstrong.
while(n>0):
a=n%10
sum=sum+a*a*a
n=n//10

if(sum==org):
print("Angka itu bilangan Armstrong.")
else:
print("Angka itu bukan bilangan
Armstrong.")

Palindrom
n=eval(input("Masukkan suatu Angka:")) Masukkan suatu Angka:
121
org=n
sum=0 Angka itu Palindrom.

while(n>0):
a=n%10
sum=sum*10+a
n=n//10

if(sum==org):
print("Angka itu Palindrom.")
else:
print("Angka itu bukan Palindrom.")

8.2 Perulangan For


Fasilitas perulangan lain yang disediakan oleh Python adalah for. For loop
digunakan untuk membuat jumlah perulangan dengan jumlah pasti, misalnya
sebanyak 100 kali atau sebanyak anggota (elemen) dari suatu list. Karena itu,
pendekatan ini dinamakan count-controlled loop (perulangan dikendalikan
pencacah/counter). Perulangan while disebut condion-controlled loop
(perulangan yang dikontrol oleh suatu kondisi).

for menggunakan range


Kita dapat membangkitkan suatu sequence berisi bilangan atau angka-angka
menggunakan fungsi range(). Pernyataan range (10) akan membangkitkan
bilangan bulat dari 0 s.d 9 (10 bilangan, tetapi 10 tidak termasuk salah satunya).
Sesuai dengan dokumentasi Python, fungsi range mempunyai 3 parameter, yaitu
start, stop dan step. Sehingga jika dituliskan, cara memanggil fungsi range()
menjadi:
82 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
range(start, stop, step)

 start: bilangan integer yang menentukan posisi pertama. Defaultnya


adalah 0.
 stop: bilangan integer yang menentukan posisi terakhir, yaitu stop -1
 step: bilangan integer yang menentukan besarnya kenaikan. Defaultnya
adalah 1

Range ini mempunyai tiga versi pemanggilan:

 range(a)
 range(a, b)
 range(a, b, k)

Sintaks dasar dari for dengan memanfaatkan fungsi range adalah

for i in range(start, stop, step):


pernyataan-pernytaan di dalam badan loop for

Dan jika dibuatkan flowchart menjadi sebagaimana Gambar 8.2.

Gambar 8.2 Bentuk dasar perulangan for


Fungsi range(a, b) mengembalikan sequence berisi integer a, a+ 1, ..., b-2, dan b-1.
Sebagai contoh:

for v in range(4, 8):


print("v =", v)

Fungsi range(a) sama dengan range(0, a). Sebagai contoh:

Husni & Aeri Rachmad | 83


for v in range(6):
print("v =", v)

Bagaimana dengan range(a, b, k)? k digunakan sebagai nilai Langkah (step) dalam
range(a, b, k). Bilangan pertama dalam sequence ini adalah a. Setiap bilangan
berikutnya dalam sequence akan naik sebesar nilai step k. b adalah limit (batas
akhir). Bilangan terakhir dalam sequence ini harus kurang dari pada b. Kita harus
memastikan bahwa a, b, dan k adalah bilangan bulat atau integer.

Contoh:

Nilai Langkah (step) dalam range(3, 9, 2) adalah 2, dan limit adalah 9. Sehingga
sequence ini beranggotakan 3, 5, dan 7

for v in range(3, 9, 2):


print("v =", v)

Python juga memungkinkan kita membuat range nilai secara mundur, dari
bilangan lebih besar ke lebih kecil. Fungsi range(a, b, k) dapat melakukan hitungan
mundur jika k bernilai negatif. Dalam hal ini, sequence masih a, a + k, a + 2k, dan
seterusnya untuk suatu k negatif. Bilangan terakhir dalam sequence harus lebih
besar daripada b.

Contoh:

for v in range(5, 1, -1):


print("v =", v)

for dalam Sequence


Perulangan for di dalam Python pada dasarnya digunakan untuk membuat iterasi
berdasarkan suatu sequence (list, tuple, string). Iterasi yang dilakukan dengan
memanfaatkan sequence ini dinamakan traversal. Loop berjalan terus sampai
dicapai elemen atau item terakhir di dalam sequence tersebut. Seperti pada while
dan for yang menggunakan fungsi range(), badan dari perulangan (loop body) kali
ini juga harus berada di bawah baris for dan ditulis masuk ke kanan (indentasi).

for i in sequence:
print(i)

84 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Tabel di bawah ini memperlihatkan bagaimana sequence digunakan di dalam for.

No. Sequence Contoh Output


1. Perulangan for menjelajahi string for i in ‚ALPRO‛: A
print(i) L
P
R
O
2. Perulangan for menjelajahi list for i in [2,3,4,6,9]: 2
print(i) 3
4
6
9
3. Perulangan for menjelajahi tuple for i in (2 ,6, 4): 2
print(i) 6
4

Contoh:

 Mencetak bilangan yang habis dibagi 5 tetapi tidak habis dibagi 10


 Program untuk mencetak deret Fibonacci
 Program untuk mencari factor dari suatu bilangan
 Memeriksa bilangan tertentu apakah angka sempurna atau tidak
 Memeriksa apakah suatu bilangan prima atau bukan
 Mencetak n pertama dari bilangan prima
 Program untuk mencetak bilangan prima di dalam suatu rentang

Mencetak Bilangan yang Habis dibagi 5 tidak habis dibagi 10 Output


n=eval(input("Masukkan angka:")) Masukkan angka:
for i in range(1,n,1): 30
if(i%5==0 and i%10!=0): 5
print(i) 15
25

Deret Fibonaci
a=0 Masukkan Angka:
b=1 6
n=eval(input("Masukkan Angka: ")) Deret Fibonacci:
print("Deret Fibonacci: ") 0
print(a,b) 1
1
for i in range(1,n,1): 2
c=a+b 3
print(c) 5
a=b 8

Husni & Aeri Rachmad | 85


b=c

Menemukan Faktor Suatu Bilangan


n=eval(input("Masukkan Angka:")) Masukkan
for i in range(1,n+1,1): Angka:10
if(n%i==0): 1
print(i) 2
5
10

Cek Bilangan Prima


n=eval(input("enter a number")) enter a no:7 The
num is a prime
for i in range(2,n): number.
if(n%i==0):
print("The num is not a prime")
break
else:
print("The num is a prime number.")

Cek Bilangan Sempurna


n=eval(input("enter a number:")) enter a number:6
the number is
sum=0 perfect number
for i in range(1,n,1):
if(n%i==0):
sum=sum+i

if(sum==n):
print("the number is perfect number")
else:
print("the number is not perfect number")

Cetak n Bilangan Prima


number=int(input("enter no of prime numbers to be enter no of
displayed:")) prime numbers to
count=1 be displayed:5
n=2 2
while(count<=number): 3
for i in range(2,n): 5
if(n%i==0): 7
break 11
else:
print(n)
count=count+1
n=n+1

Cetak Bilangan Prima dalam Rentang


lower=eval(input("enter a lower range")) enter a lower
upper=eval(input("enter a upper range")) range50
enter a upper
for n in range(lower,upper + 1): range100

86 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


if n > 1: 53
for i in range(2,n): 59
if (n % i) == 0: 61
break 67
else: 71
print(n) 73
79
83
89
97

8.3 Break, Continue, dan Pass


Pernyataan break dapat digunakan untuk mengubah aliran di dalam suatu loop.
Break akan menghentikan iterasi loop yang sedang berjalan dan mengeksekusi
pernyataan berikutnya diluar loop. Jika loop tersebut mempunyai pernyataan else
maka itu akan juga berhenti dan keluar dari loop secara lengkap.

Sintaks pengguna break adalah sebagai berikut

Dan jika diwujudkan dalam flowchart menjadi seperti pada Gambar 8.3:

Husni & Aeri Rachmad | 87


Gambar 8.3 Penambahan break ke dalam perulangan

Contoh Output
for i in "welcome": w
if(i=="c"): e
break l
print(i)

Berbeda dengan break, pernyataan continue menghentikan iterasi yang sedang


berlangsung dan mentransfer kendali atau control ke iterasi berikutnya di dalam
loop tersebut. Jadi tidak sampai keluar dari loop.

Sintaks continue:

Sedangkan bentuk flowchartnya terlihat pada Gambar 8.4.

88 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Gambar 8.4 Penambahan continue ke dalam perulangan

Contoh Output
for i in "welcome": w
if(i=="c"): e
continue l
print(i) o
m
e

Pernyataan terakhir yang sering digunakan di dalam perulangan adalah pass. Pass
digunakan ketika suatu pernyataan diperlukan secara sintaktis tetapi kita tidak
ingin kode tersebut dieksekusi. Ini dinamakan pernyataan null, tidak ada yang
terjadi Ketika dieksekusi. Perhatikan contoh berikut:

Contoh Output
for i in "welcome": w
if(i=="c"): e
pass l
print(i) c
o
m
e

Perbedaan antara break dan continue:

Husni & Aeri Rachmad | 89


break continue
Mengakhiri iterasi yang sedang berlangsung dan Mengakhiri iterasi saat ini dan
mengeksekusi pernyataan yang berada di luar mentransfer kontrol ke iterasi
loop. berikutnya di dalam loop.

for i in "welcome": for i in "welcome":


if(i=="c"): if(i=="c"):
break continue
print(i) print(i)

w w
e e
l l
o
m
e

8.4 else dalam Perulangan for dan while


Jika pernyataan else digunakan di dalam loop for, maka pernyataan else akan
dieksekusi ketika loop telah mencapai limit (nilai counter terakhir). Pernyataan di
dalam loop for dan pernyataan di dalam else akan juga dieksekusi.

Contoh Output
for i in range(1,6): 1
print(i) 2
else: 3
print("the number greater than 6") 4
5
the number greater than
6

Jika pernyataan else digunakan di dalam loop while, bagian else akan dieksekusi
Ketika konsdisi menjadi False. Pernyataan di dalam loop while dan pernyataan di
dalam else juga akan dieksekusi.

Contoh Output
i=1 1
while(i<=5): 2
print(i) 3
i=i+1 4
else: 5
print("the number greater than 5") the number greater than
5

90 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


9. Fungsi, String dan Larik

Dalam Python, fungsi adalah sekelompok pernyataan terkait yang melakukan


tugas tertentu. Fungsi membantu kita memecah program menjadi potongan yang
lebih kecil dan modular. Seiring program kita tumbuh lebih besar dan semakin
besar, fungsi membuatnya lebih terorganisir dan dapat dikelola. Selain itu, fungsi
menghindari pengulangan dan membuat kode dapat digunakan kembali.

Ada beberapa hal atau istilah yang harus dipahami dan dibahas di dalam bagian
ini, di antaranya:

 Fungsi fruitful
 Fungsi void
 Nilai return
 Parameter
 Lingkup local dan global
 Komposisi fungsi
 Rekursi.

Suatu fungsi yang mengembalikan nilai disebut fungsi fruitful.

Contoh

root = sqrt(25)

sqrt adalah fungsi bawaan Python yang digunakan untuk mendapatkan akar dari
suatu bilangan, dalam hal ini adalah akar 25 = 5.

9.1 Membuat Fungsi


Bagaimana jika kita ingin membuat fungsi sendiri? Kita dapat menggunakan
sintaks berikut untuk membuat fungsi:

def function_name(parameters):
"""docstring"""
statement(s)
Sintaks di atas adalah definisi fungsi yang terdiri dari komponen berikut:

1. Kata kunci def menandakan awal dari header fungsi.


2. Nama fungsi secara unik mengidentifikasi fungsi tersebut. Penamaan
fungsi mengikuti rule yang sama dengan penulisan pengenal (identifier) di
Python

Husni & Aeri Rachmad | 91


3. Parameter atau argumen digunakan untuk melewatkan nilai ke fungsi.
Paremeter ini bersifat opsional.
4. Titik dua atau colon (:) menandakan akhir dari header fungsi.
5. String dokumentasi opsional (docstring) untuk mendeskripsikan apa yang
dilakukan di dalam fungsi.
6. Satu atau lebih pernyataan Python yang valid membangun badan fungsi.
Pernyataan ini mempunyai level indentasi yang sama (biasanya 4 spasi).
7. Pernyataan return (opsional) mengembalikan nilai dari fungsi tersebut.

Contoh

def add():
a=10
b=20
c=a+b
return c
c=add()
print(c)

Selain fungsi fruitful, ada pula fungsi void. Void menunjukkan bahwa fungsi
tersebut tidak mengembalikan suatu nilai. Contoh dari fungsi void adalah print
yang hanya mencetak teks ke console dan tidak ada nilai yang dikembalikan.

Contoh

def add():
a=10
b=20
c=a+b
print(c)
add()

Keyword return digunakan untuk mengembalikan nilai dari dalam fungsi. Contoh
penggunaan return di dalam fungsi adalah

 return a mengembalikan nilai variabel a


 return a, b mengembalikan nilai dari 2 variabel a dan b
 return a, b, c mengembalikan nilai dari 3 variabel a, b dan c
 return a + b mengembalikan suatu nilai, nilai a di tambah nilai b
 return 8 mengembalikan nilai 8

Parameter adalah variable yang digunakan di dalam definisi fungsi. Parameter


merupakan input untuk fungsi tersebut. Parameter menerima input dari
pemanggilan fungsi (function call). Kita dapat mendefinisikan lebih dari dsatu
92 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
parameter di dalam definisi fungsi. Istilah argumen biasanya digunakan saat
memanggil fungsi.

Parameter terdiri dari beberapa tipe, di antaranya:

 Parameter posisi atau wajib


 Parameter keyword (kata kunci)
 Parameteer default
 Parameter Panjang tidak tetap (bervariasi)

Parameter Posisi
Jumlah dari parameter di dalam definisi fungsi harus cocok secara tepat dengan
jumlah argument di dalam function call. Perhatikan contoh di bawah ini

Contoh Output
def student( name, roll ): George 98
print(name,roll)

student(‚George‛, 98)

Parameter Kata Kunci


Ketika kita memanggil suatu fungsi dengan beberapa nilai, nilai-nilai ini dikirimkan
ke parameter sesuai dengan posisinya. Saat kita memanggil fungsi dalam
parameter kata kunci, urutan dari argumen dapat diubah (tidak kaku dan
tergantung pada posisi atau urutan parameter).

Contoh Output
def student(name, roll, mark): 90 102 bala
print(name,roll,mark)
student(90,102,"bala")

Parameter Default
Python memungkinkan parameter fungsi mempunyai nilai default; jika fungsi
dipanggil tanpa argument, parameter memperoleh nilai defaultnya yang
dicantumkan di dalam definisi fungsi.

Husni & Aeri Rachmad | 93


Contoh Output
def student(name, age=17): Joko 17
print (name, age) Budiman 17

student(‚Joko‛)
student(‚Budiman‛)

Parameter dengan Panjag Variatif


Terkadang, kita tidak mengetahui sebelumnya jumlah argumen yang akan
dilewatkan ke dalam suatu fungsi. Python memungkinkan kita untuk menangani
situasi seperti ini melalui pemanggilan fungsi dengan sejumlah argumen. Dalam
definisi fungsi kita menggunakan tanda asterisk (*) sebelum nama parameter
untuk menunjukkan ini adalah parameter dengan panjang variatif.

Contoh Output
def student(name,*mark): bala (102 ,90)
print(name, mark)
student(‚bala‛,102,90)

Lingkup Local dan Global:

 Cakupan dari suatu variabel mengacu pada tempat dimana kita dapat
melihat atau mengakses variabel.
 Suatu variabel dengan cakupan global dapat diakses dan digunakan di
mana saja dalam program.
 Ini dapat dibuat dengan mendefinisikan variabel di luar fungsi.

Contoh Output
a=50 #variabel global 70

def add():
b=20 #variabel lokal
c=a +b
print(c) 20

def sub(): 50
b=30
c=a-b
print(c)

print(a)

94 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Suatu variabel dengan cakupan local dapat digunakan atau diakses hanya didalam
fungsi tersebut.

Contoh Output
def add():
b=20 #variabel lokal
c=a+b
print(c) 70

def sub():
b=30 #variabel lokal
c=a-b
print(c) 20

print(a) error
print(b) error

Komposisi Fungsi adalah kemampuan untuk memanggil satu fungsi dari dalam
fungsi lainnya. Ini merupakan cara untuk menngkombinasikan fungsi-fungsi
sehingga hasil dari setiap fungsi dilewatkan (pass) sebagai argument dari fungsi
berikutnya. Dengan kata lain, output dari satu fungsi diberikan sebagai input dari
fungsi lain dikenals ebagai komposisi fungsi.

Contoh Output
def add(a,b):
c = a + b
return c
900
def mul(c,d):
e = c * d
return e

c=add(10,20)
e=mul(c,30)

print(e)

Mencari Jumlah dan Rerata menggunakan Output


Komposisi Fungsi
def sum(a,b):
sum=a+b enter a:4
return sum enter b:8
the avg is 6.0
def avg(sum):
avg=sum/2
return avg
Husni & Aeri Rachmad | 95
a=eval(input("enter a:"))
b=eval(input("enter b:"))
sum=sum(a,b)
avg=avg(sum)

print("the avg is", avg)

Suatu fungsi yang memanggil dirinya sendiri sampai dicapai suatu nilai basis
(dasar, titik henti dari function call) dinamakan sebagai fungsi rekursif.

Contoh: faktorial dari suatu bilangan menggunakan pendekatan rekursif.

Faktorial dari n Output


def fact(n):
if(n==1): Masukkan bilangan: 5
return 1 Faktorial: 120
else:
return n*fact(n-1)

n=eval(input("Masukkan bilangan:"))
fact=fact(n)
print("Faktorial:",fact)

Penjelasan:

Gambar 9.1 Cara kerja program faktorial

96 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


Contoh program lain:

 Jumlah n bilangan menggunakan rekursi


 Eksponensial dari suatu bilangan menggunakan rekursi.

Jumlah dari n Bilangan Output


def sum(n):
if(n==1): Masukkan bilangan: 10
return 1 Jumlah: 55
else:
return n*sum(n-1)

n=eval(input("Masukkan bilangan: "))


sum=sum(n)
print("Jumlah: ", sum)

9.2 String
String merupakan tipe data di Python yang dapat dianggap sebagai teks. Beberapa
istilah yang perlu dipahami adalah

 String
 Slices
 Immutability
 Fungsi dan Metode String
 Modul String

String didefinisikan sebagai sequence atau deretan karakter yang


direpresentasikan di dalam tanda petik (quotation), baik single quote (‘) ataupun
double quote (“). Karakter-karakter atau huruf di dalam suatu String diakses
menggunakan indeksnya. Indeks harus selalu berupa integer (positif atau negatif).
Indeks dimulai dari 0 s.d n-1. String adalah tipe data yang bersifat immutable,
artinya isi dari suatu string tidak dapat diubah setelah string tersebut dibuat.

Python mengambil masukan dari pengguna menggunakan fungsi input yang


biasanya disimpan ke dalam suatu variabel. Python menganggap apapun yang
dimasukkan oleh pengguna sebagai String, karena itu diperlukan proses konversi
ke numerik agar dapat diberlakukan operasi numerik atau komputasi. Fungsi yang
sering dipakai untuk konversi ini adalah eval, int dan float.

Python tidak menyediakan tipe data khusus untuk karakter. Suatu String yang
berukuran panjang satu diperlakukan sebagai karakter.

Husni & Aeri Rachmad | 97


Terkait quote di atas, sebetulnya ada tiga jenis quote di Python:

 Single quote (‘ ‘) untuk membuat String yang diapit satu tanda


petik
 Double quotes (“ “) untuk membuat String yang diapit dua tanpa
petik
 Triple quotes (“”” “””) untuk membuat teks banyak baris.

Operasi Terhadap String

 Indexing
 Slicing
 Concatenation
 Repetition
 Membership

Katakanlah kita mempunya String “HELLO”. Indexing yang digunakan sebagai basis
untuk mengakses elemen atau item dari suatu String diperlihatkan pada gambar di
bawah ini.

String A H E L L O
Indeks Positif 0 1 2 3 4
Indeks Negatif -5 -4 -3 -2 -1

Berikut ini adalah contoh 5 operasi String yang disebutkan di atas:

Operasi Contoh Penjelasan


a = ‚HELLO‛ Indexing positif untuk mengakses string
print(a[0]) dari awal
Indexing print(a[-1]) Subscript negatif untuk mengakses string
dari ujung.
print[0:4] Operator slice [start:stop] mengekstrak
Slicing print[:3] sub string dari string. Suatu segmen dari
print[0:] string dinamakan slice
a = ‚save‛ Operator + menggabungkan (join) teks
Concatenation b = ‚earth‛ pada kedua sisi operator
print(a+b)
a=‛panimalar‛ Operator * mengulangi string pada sisi
Repetition print(3*a) kiri sebanyak nilai pada sisi kanan
s=‛good Operator keanggotaan digunakan untuk
Membership morning‛ memeriksa keberadaan karakter tertentu
98 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
‚m‛ in s (ada atau tidak) di dalam suatu string.
‚a‛ not in s Mengembalikan True jika ada.

Slice String

Bagian tertentu dari suatu string disebut substring atau slice. Proses mengekstrak
sub string tertentu tersebut dari suatu string dinamakan slicing.

Operasi Contoh Penjelasan


Slicing print[0:4] Operator slice [n:m] mengambil slice dari
A=”HELLO” print[:3] string.
print[0:]
Immutabilitas
String di Python bersifat “immutable” (tidak dapat bermutasi, tidak dapat
berubah) karane string yang telah dibuat tidak dapat diubah nilainya. Karena itu,
operator [] tidak dapat digunakan pada sisi kiri dari suatu operasi assignment
(pemberian nilai).

Operasi Contoh Output


Assignment a = ‚python‛ TypeError: 'str' object does not support
Elemen a[0] = x element assignment

Menghapus a=‛python‛ TypeError: 'str' object doesn't support


Elemen del a[0] element deletion
Menghapus a=‛python‛ NameError: name 'my_string' is not
String del a defined
print(a)

Fungsi dan Metode String Bawaan


Metode adalah suatu fungsi yang dimiliki oleh suatu obyek.

Sintaks untuk mengakses metode:

namaString.namaMetode()

a=‛happy birthday‛

Husni & Aeri Rachmad | 99


Di sini, a adalah suatu nama variabel bertipe data String.

No. Sintaks Contoh Deskripsi


1. a.capitalize() >>> a.capitalize() Mengubah huruf
'Happy birthday’
pertama dari suatu
String menjadi huruf
besar
2. a.upper() >>> a.upper() Mengubah String
'HAPPY BIRTHDAY’
menjadi huruf besar
(untuk semua hurufnya)
3. a.lower() >>> a.lower() Mengubah String
' happy birthday’
menjadi huruf kecil
4. a.title() >>> a.title() Mengubah String ke
' Happy Birthday '
bentuk judul, yaitu huruf
pertama semua kata
dijadikan besar
5. a.swapcase() >>> a.swapcase() Mengubah huruf kecil ke
'HAPPY BIRTHDAY'
huruf besar dan
sebaliknya.
6. a.split() >>> a.split() Mengembalikan daftar
['happy', 'birthday']
kata yang dipisahkan
spasi
7. a.center >>>a.center(19,‛*‛) Mengapitkan string
(width,”fillchar”) '***happy birthday***'
dengan "fillchar" yang
ditentukan hingga
panjangnya sama
dengan "width"
8. a.count(substring) >>> a.count('happy') Mengembalikan jumlah
1
kemunculan suatu
substring
9. a.replace(old,new) >>>a.replace('happy', Menggantikan semua
'wishyou happy')
substring lama dengan
'wishyou happy
birthday' substring baru

10. a.join(b) >>> b="happy" Mengembalikan suatu


>>> a="-"
string gabungan dengan
>>> a.join(b) 'h-a-p-
p-y' elemen-elemen berupa
iterable. “a” bersifat
iterable.
11. a.isupper() >>> a.isupper() Memeriksa apakah
False
semua karakter (huruf)
dari string adalah besar
100 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
12. >>> a.islower() Memeriksa apakah
a.islower() True
semua huruf dari String
adalah huruf kecil
13. a.isalpha() >>> a.isalpha() Memeriksa apakah suatu
False
String mengandung
hanya karakter
alfanumerik
14. a.isalnum() >>> a.isalnum() Memeriksa apakah suatu
False
String mengandung
karakter alfanumerik
15. a.isdigit() >>> a.isdigit() Memeriksa apakah suatu
False
String mengandung
hanya digit.
16. a.isspace() >>> a.isspace() Memeriksa apakah
False
string mengandung
hanya whitespace
17. a.istitle() >>> a.istitle() Memeriksa apakah
False
String telah
menggunakan format
Judul
18. a.startswith >>> a.startswith("h") Memeriksa apakah
(substring) True
string dimulai dengan
substring
19. a.endswith >>> a.endswith("y") Memeriksa apakah
(substring) True
string berakhir dengan
substring
20. a.find >>> a.find("happy") Mengembalikan indeks
(substring) 0
dari substring, jika
ditemukan. Jika tidak -1
21. Len(a) >>>len(a) >>>14 Mengembalikan panjang
dari string
22. Min(a) min(‚I hate u‛) Mengembalikan karakter
‘ ‘
minimum dalam string
23. Max(a) Max(a) Mengembalikan karakter
‘y’
maksimum dalam string

Modul String
Modul merupakan suatu file yang mengandung definisi, fungsi dan pernyataan
dalam Bahasa Python. Pustaka standar dari Python dapat diperluas (diextend)
menggunakan modul. Isi dari modul dapat digunakan di dalam program setelah
modul tersebut diimpor terlebih dahulu. Fungsi, variabel dan konstanta dapat
Husni & Aeri Rachmad | 101
diakses dengan menyebutkan nama modul atau aliasnya. Python secara default
telah menyediakan banyak modul seperti math, random, dan string. Cara
mengimport modul standar dalam persis dengan cara mengimport modul yang
dibuat oleh pengguna (user-defined).

Sintaks dasar dari import modul:

import nama_modul atau


import nama_modul as nama_alias

Contoh Output
import string
print(string.punctuation !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
) 0123456789
print(string.digits) 0123456789abcdefghijklmnopqrstuvwxyzABCDEFG
print(string.printable) HIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-
print(string.capwords("h ./:;<=>?@[\]^_`{|}~
appy birthday")) Happy Birthday
print(string.hexdigits) 0123456789abcdefABCDEF
print(string.octdigits) 01234567

Karakter Escape

Escape Deskripsi Contoh


>>> print("hai \nhello")
\n Baris baru hai
hello
>>> print("hai\\hello")
\\ Cetak backslash (\) hai\hello
>>> print("'")
\’ Cetak single quote (‘) '
>>>print("\"")
\‛ Cetak double quote (“) "
>>>print(‚hai\thello‛)
\t Cetak spasi tab hai hello
\a Kode ASCI >>>print(‚\a‛)

9.3 List sebagai Larik


Array atau larik merupakan suatu koleksi elemen-elemen serupa (bertipe data
sama). Elemen di dalam array dapat diakses berdasarkan indeksnya. Indeks
dimulai dengan 0. Array dapat ditangani di dalam Python berkat adanya module
bernama array. Bagaimana membuat suatu array?
102 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
Membuat Array
Import Pustaka array:

import array as larik

Kemudian membuat array:

nama_array = nama_modul.nama_fungsi(‘datatype’, [elemen-elemen])

Contoh

a = larik.array(‘i’, [1,2,3,4])

dimana:
 array : nama fungsi di dalam modul array
 larik : nama alias dari modul array
 i : tipe data integer

Contoh: Program untuk mencari hasil penjumlahan elemen array Output


import array as larik
sum = 0 10
a = larik.array('i',[1,2,3,4])
for i in a:
sum = sum+i
print(sum)

Konversi List ke dalam Array


Fungsi fromlist() digunakan untuk menambahkan List ke Array. Berikut ini adalah
list yang bertindak seperti suatu array.

Husni & Aeri Rachmad | 103


Sintaks:

namaarray.fromlist(daftar nama)

Contoh: Program untuk mengkonversi List ke dalam Array Output


import array as larik
sum=0 35
l = [6,7,8,9,5]
a = larik.array('i',[])
a.fromlist(l)

for i in a:
sum=sum+i
print(sum)

Metode di dalam Array


Misal: a = [2,3,4,5]

No. Sintaks Contoh Deskripsi


1. Digunakan untuk membuat
array(
array(‘i’,[2,3,4 array dengan tipe data dan
data type,
,5]) daftar nilai ditetapkan
value list)
dalam argumennya.

2. Digunakan untuk
>>>a.append(6)
append() menambahkan pada ujung
[2,3,4,5,6]
array.

3. Digunakan untuk
insert(index, >>>a.insert(2,10 menambahkan nilai pada
element) ) [2,3,10,5,6] posisi yang ditetapkan dalam
argumen.

4. Digunakan untuk
menghapus elemen pada
>>>a.pop(1)
pop(index) posisi yang disebutkan
[2,10,5,6]
dalam argument, dan
mengembalikannya.

5. >>>a.index(2)
index(element) Diguakan untuk memperoleh
0
indeks dari nilai tertentu.

104 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


6. Digunakan untuk
>>>a.reverse()
reverse() membalikkan elemen-
[6,5,10,2]
elemen array.

7. Digunakan untuk
count() a.count()
menghitung jumlah elemen
suatu array

Husni & Aeri Rachmad | 105


10. Program dan Soal Latihan II

10.1 Contoh Program


Akar Kuadrat Menggunakan Metode Newton Output

def newtonsqrt(n): Masukkan bilangan: 9


root=n/2 3.0
for i in range(10):
root=(root+n/root)/2

print(root)

n=eval(input("Masukkan bilangan: "))


newtonsqrt(n)

GCD dari Dua Bilangan

n1=int(input("Masukkan Angka ke-1:")) Masukkan Angka ke-1:8


n2=int(input("Masukkan Angka ke-2:")) Masukkan Angka ke-2:24
8
for i in range(1,n1+1):
if(n1%i==0 and n2%i==0):
gcd=i
print(gcd)

Eksponen dari Bilangan


def power(base,exp): Masukkan basis: 2
if(exp==1): Masukkan nilai
return(base) eksponen:3
else: Hasil: 8
return(base*power(base,exp-1))

base=int(input("Masukkan basis: "))


exp=int(input("Masukkan nilai
eksponen:"))
result=power(base,exp)
print("Hasil:",result)

Jumlah Elemen Array


a=[2,3,4,5,6,7,8] sum=0 Jumlah: 35

for i in a:
sum=sum+i
print("Jumlah:",sum)
106 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
Pencarian Linier
a=[20,30,40,50,60,70,89] [20, 30, 40, 50, 60, 70,
print(a) 89] Masukkan elemen
search=eval(input("Masukkan elemen dicari:30 Elemen
dicari:")) ditemukan di: 2

for i in range(0,len(a),1):
if(search==a[i]):
print("Elemen ditemukan di:",i+1)
break
else:
print("Tidak ditemukan.")

Pencarian Biner
a=[20, 30, 40, 50, 60, 70, 89] [20, 30, 40, 50, 60, 70,
print(a) 89]
search=eval(input("Masukkan item Masukkan item dicari:30
dicari:")) Item ditemukan di posisi
start=0 2
stop=len(a)-1

while(start<=stop):
mid=(start+stop)//2
if(search==a[mid]):
print("Item ditemukan di
posisi",mid+1)
break
elif(search<a[mid]):
stop=mid-1
else:
start=mid+1
else:
print("Tidak ditemukan.")

10.2 Soal-Soal Bagian 1


1. Apa itu interpreter?
2. Apa saja dua mode dari eksekusi python?
3. Sebutkan beberapa fitur penting dari python.
4. Python dapat digunakan untuk membangun aplikasi apa saja?
5. Sebutkan perbedaan antara modus interaktif dan skrip!
6. Nilai apa yang dimiliki Python?
7. Apa yang dimaksud identifier? Sebutkan aturan penamaan identifier.
8. Apa itu keyword?

Husni & Aeri Rachmad | 107


9. Bagaimana mendapatkan tipe data saat compile dan runtime?
10. Ap aitu indexing dan apa saja jenisnya?
11. Sebutkan operasi yang dapat berlaku terhadap strings.
12. Jelaskan cara kerja slicing?
13. Jelaskan operasi (i) Concatenation , dan (ii) Repetition. Sertai dengan contoh!
14. Tunjukkan perbedaan antara list dan tuple
15. Jelaskan perbedaan antara operator Membership dan Identity.
16. Jelaskan peranan dan pentingnya indentasi di dalam python.
17. Evaluasilah ekspresi dan temukan hasil dari (a+b)*c/d a+b*c/d
18. Tuliskan suatu program python untuk mencetak n bilangan.
19. Definisikan mengenai fungsi dan kegunaannya
20. Berikan beberapa tipe data di dalam Python
21. Buatlah program untuk memberikan nilai dan mengakses nilai suatu variabel.
22. Bagaimana operasi input dikerjakan menggunakan python.
23. Jelaskan perbedaan antara operator logika dan bitwise.
24. Sebutkan 10 reserved words dalam Python.
25. Jelaskan mengenao operator precedence di python.
26. Definisikan lingkup dan masa hidup dari variabel di python.
27. Sebutkan manfaat dari argumen default di python
28. Jelaskan secara sederhana manfaat dari modul di python.
29. Perlihatkan bagaimana suatu fungsi memanggil fungsi lain. Jelaskan
jawabannya.
30. Perlihatkan sintaks function call dengan dan tanpa argumen.
31. Jelaskan mengenai fungsi rekursif.
32. Definisi fungsi ada dua bagian, apa saja? Berikan sintaksnya.
33. Jelaskan perbedaan antara teknik rekursif dan iteratif.
34. Tunjukkan sintaks dari argument dengan panjang variabel.
35. Apa yang dimaksud nilai Boolean?
36. Apa perbedaan antara operator dan operan?
37. Tuliskan sintaks untuk pernyataan if, berikan contoh!
38. Tuliskan sintaks dan flowchart untuk pernyataan if else.
39. Tuliskam sintaks dan flowchart untuk pernyataan if bersarang.
40. Apa yang dimaksud dengan status (atau kondisi)?
41. Tuliskan sintaks untuk perulangan while, sertakan juga flowchartnya.
42. Tuliskan sintaks untuk perulangan for, lengkapi dengan flowchartnya.
43. Apa perbedaan antara break dan continue?
44. Jelaskan kegunaan dari kata kunci pass
45. Apa yang dimaksud fungsi fruitful?
46. Apa yang dimaksud fungsi void?
47. Jelaskan cara berbeda menuliskan pernyataan return!
48. Apa yang dimaksud parameter? Apa saja jenisnya?
49. Jelaskan mengenai lingkup local dan global!

108 | Algoritma Pemograman Pendekatan Praktis Menggunan Python


50. Apa perbedaan antara variabel local dan global?
51. Jelaskan komposisi fungsi! Berikan contoh!
52. Apa yang dimaksud rekursi?
53. Jelaskan perbedaan antara iterasi dan rekursi!
54. Apa yang dimaksud dengan string? Bagaimana memperoleh suatu string saat
program berjalan?
55. Apa yang dimaksud slicing? Berikan contoh.
56. Apa yang dimaksud immutability dari suatu string?
57. Sebutkan 10 fungsi bawaan yang dapat beroperasi terhadap string! berikan
contoh.
58. Modul apa yang berisi banyak fungsi untuk operasi string?
59. Bagaimana agar list dapat berlaku sebagai array?
60. Tuliskan program untuk memeriksa genap atau ganjilnya suatu bilangan.
61. Tuliskan program untuk memeriksa apakah suatu bilangan itu positif atau
negatif
62. Tuliskan program untuk memeriksa apakah suatu tahun termasuk kabisat atau
tidak
63. Tuliskan program untuk mencari yang terbesar dari dua bilangan
64. Tuliskan program untuk memeriksa hak suara (di pemilu)
65. Tuliskan program untuk mencari jumlah total dari n bilangan
66. Tuliskan program untuk mencari faktorial dari suatu bilangan yang diberikan
67. Tuliskan program untuk mencari jumlah angka (digit) di dalam suatu bilangan
68. Tuliskan program untuk membalikkan bilangan yang diberikan.
69. Tuliskan program untuk memeriksa apakah suatu bilangan termasuk
palindrom atau tidak.
70. Tuliskan program untuk memeriksa apakah suatu bilangan termasuk
Armstrong atau tidak.
71. Bagaimana kita menggunakan perulangan for dengan mengakses elemen dari
sequence?
72. Bagaimana kita menggunakan pernyataan else di dalam perulangan if?
73. Apa kegunaan dari fungsi map()?

10.3 Soal-Soal Bagian 2


1. Jelaskan secara detail mengenai berbagai tipe data di dalam Python dengan
contohnya
2. Jelaskan perbedaan tipe operator di Python dengan contohnya.
3. Diskusikan kebutuhan dan pentingnya fungsi di dalam python.
4. Explain in details about function prototypes in python.
5. Diskusikan mengenai berbegai jenis argument di dalam python.
6. Jelaskan aliran eksekusi dalam fungsi user defined, dengan contoh.

Husni & Aeri Rachmad | 109


7. Ilustrasikan suatu program untuk menampilkan tipe data berbeda
menggunakan variabel dan konstanta.
8. Perlihatkan bagaimana suatu fungsi input dan output dikerjakan di python,
sertakan contoh.
9. Jelaskan secara rinci mengenai berbegai operator di python dengan contoh
yang sesuai.
10. Diskusikan perbedaan antara tuples dan list
11. Diskusikan berbagai operasi yang dapat dikerjakan terhadap tuple dan
perlihatkan miimal 5 contoh programnya.
12. Apa itu operator membership dan identity?
13. Tuliskan suatu program untuk mengerjakan penambahan, pengurangan,
perkalian, pembagian integer, pembagian float, dan pembagian modulo
menggunakan dua bilangan integer dan float.
14. Tuliskan program untuk mengkonversi derajat Fahrenheit ke Celsius
15. Diskusikan perlu dan pentingnya fungsi di python.
16. Deskripsikan program untuk menukar nilai dari dua variabel memanfaatkan
variabel temporer
17. Diskusikan secara singkat mengenai function prototyping di python, sertakan
contoh program yang sesuai
18. Analisislah perbedaan antara variabel lokal dan global.
19. Jelaskan dengan contoh program untuk mensirkulasi nilai-nilai dari n variabel
20. Analisislah dengan suatu program untuk mencari jarak antara dua titik
menggunakan python.
21. Lakukan studi kasus dan kerjakan operasi berikut di dalam tuples:
i. Maksimum dan Minimum
ii. Menjumlahkan dua tuples
iii. Menduplikasi suatu tuple
iv. Operator slicing
v. Memperoleh daftar elemen dari suatu tuple
vi. Membandingkan dua tuples
vii. Mencetak dua tuples yang berbeda tipe datanya
22. Tuliskan suatu program untuk mencari akar kuadrat dari dua bilangan.
23. Jelaskan pernyataan kondisional secara detail dengan contohnya (if, if..else,
if..elif..else)
24. Jelaskan secara detail mengenai operator dalam bahasa Python
25. Jelaskan secara terperinci mengenai iterasi beserta contohnya (for, while)
26. Jelaskan pemanfaatan pernyataan else di dalam suatu perulangan
27. Jelaskan secara detail mengenai penggunaan for terhadap sequence.
28. Jelaskan secara lengkap mengenai fungsi bawaan string disertai dengancontoh
yang tepat
29. Jelaskan mengenai pernyataan kendali perulangan (break, continue, pass)
110 | Algoritma Pemograman Pendekatan Praktis Menggunan Python
30. Berikan contoh fungsi fruitful.
31. Berikan contoh mengenai variabel lokal dan global
32. Berikan contoh dan penjelasan mengenai komposisi fungsi
33. Jelaskan danberikan contoh tentang rekursi.
34. Jelaskan secara detail mengenai string dan operasi terhadapnya (slicing,
immutablity)
35. Buatlah program untuk mencari akar kuadrat dari suatu bilangan
menggunakan metode Newtons
36. Buatlah program untuk mencari GCD dari suatu bilangan
37. Buatlah program untuk mencari eksponensial dari suatu bilangan
menggunakan rekursi
38. Buatlah program untuk mencari jumlah total elemen array.
39. Buatlah program untuk mencari elemen array menggunakan pencarian linier
(linear search).
40. Buatlah program untuk mencari elemen array menggunakan binary search.
41. Buatlah program untuk menemukan faktorial dari suau bilangan menggunakan
rekursi.

Husni & Aeri Rachmad | 111

Anda mungkin juga menyukai