Anda di halaman 1dari 42

Modul Praktikum

20X
Modul Praktikum
ALGORITMA dan
PEMROGRAMAN
PYTHON
Laboratorium Komputasi
Departemen Statistika FMIPA UNP
Algoritma dan Pemrograman PYTHON 2

Bab 1
Pendahuluan Algoritma dan Pengenalan Python

Setelah mempelajari Bab 1 ini, mahasiswa diharapkan dapat mengenali konsep dasar
mengenai konsep dasar algoritma, menyusun dan menjelaskan notasi algoritmik untuk
penyelesaian masalah, dapat mengetahui proses instalasi Python, dan mampu
mengidentifikasikan berbagai bentuk tampilan pada Python.

1.1 Algoritma
Algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang menggunakan
beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran. Jadi,
algortima adalah deretan langkah komputasi yang mentranformasikan masukan menjadi
keluaran. Tujuan algoritma adalah memberikan petunjuk tentang langkah-langkah logika
penyelesaian masalah dalam bentuk yang mudah dipahami nalar manusia sebagai acuan yang
membantu dalam mengembangkan program komputer. Pemahaman terhadap algortima akan
mencegah sejak dini kemungkinan teradinya kesalahan logika pada program komputer yang
dikembangkan [2].
Menurut Donald E. Knuth dalam bukunya yang berjudul The Art of Computer Programming,
sebuah algortima harus mempunyai lima ciri penting [2]:
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas;
2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous);
3. Algoritma memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan
kepada algoritma untuk diproses;
4. Algoritma mempunyai nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau
besaran yang memiliki hubungan dengan masukan;
5. Algoritma harus efektif, setiap langka harus sederhana sehingga dapat dikerjakan dalam
sejumlah waktu yang masuk akal.

1.1.1 Notasi Algoritma


Ada tiga macam bentuk notasi algoritma antara lain:
a. Uraian Deskriptif
Menyatakan langkah-langkah algoritma dengan uraian kalimat deskriptif. Contohnya,
menyelesaikan permasalahan menghitung luas dan keliling suatu lingkaran. Algoritma untuk
menghitung luas dan keliling lingkaran dideskripsikan sebagai berikut:
1. Masukkan (input) jari-jari lingkaran (r)
2. hitung luang lingkaran dengan rumus L=Phi * r^2
3. hitung keliling lingkaran dengan rumus K=2*Phi*r
4. Tampilkan luas lingkaran
Algoritma dan Pemrograman PYTHON 3

5. tampilkan keliling lingkaran

b. Diagram Alir (Flowchart)


Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu
program yang menyatakan arah alur program tersebut. Contohnya, menghitung luas lingkaran
yang algoritmanya dinotasikan dalam bentuk diagram alir (flowchart).

Gambar 1. Contoh Flowchart Algoritma Luas Lingkaran

c. Kode Semu (Pseudocode)


Pseudocode adalah notasi yang mirip dengan notasi bahasa pemrograman tingkat tinggi,
seperti bahasa Python, bahasa Pascal, dan bahasa C++. Lebih tepatnya pseudocode adalah
campuran antara bahasa alami dengan bahasa pemrograman. Namun, tidak seperti bahasa
pemrograman yang menggunakan tanda titik koma (semicolon), indeks, format keluaran
(output), aturan khusus, dan sebagainya, sehingga pseudocode dapat mudah dipahami oleh
pembaca. Adapun struktur yang biasanya digunakan pseudocode terdiri dari:
Judul Program – Pada bagian ini, Anda bisa menulis judul algoritma pseudocode guna
menunjukan algoritma program apa yang sedang dikerjakan;
Deklarasi – Pada bagian deklarasi, Anda bisa mengisinya dengan keterangan seperti variabel
atau konstanta yang digunakan dalam penulisan algoritma;
implementasi – Di bagian ini berisi proses atau perintah atau langkah dari algoritma. Dengan
kata lain, bagian ini merupakan inti dari pseudocode. Anda bisa menjabarkan proses-proses di
sini; seperti proses kondisional (if/else), perulangan (for), sampai operasional (penjumlahan,
pengurangan, dan lainnya).
Algoritma dan Pemrograman PYTHON 4

Sumber: www.conceptdraw.com/How-To-Guide/flow-chart-symbols
Gambar 2. Beberapa Simbol Flowchart yang Sering Digunakan dalam Membuat Algoritma.
Algoritma dan Pemrograman PYTHON 5

1.2 Pengenalan Python


Python adalah bahasa pemrograman yang ditujukan untuk general-purpose
programming dan termasuk dalam kategori high-level programming language. Sebagai general-
purpose programming language, Python digunakan untuk berbagai macam permasalahan
seperti: pengembangan aplikasi web atau mobile, data science, dll. Python masuk ke dalam
kategori high-level programming language dikarenakan bahasa pemrograman Python yang
mudah untuk dibaca dan dituliskan oleh manusia. Bahasa pemrograman Python diciptakan
oleh Guido van Rossum dan pertama kali diperkenalkan pada tahun 1991 sebagai sebuah
proyek open-source. Lisensi dari Python bersifat open-source dari Python, atau dengan kata lain
setiap orang dapat mengembangkan program komputer dengan menggunakan bahasa
pemrograman Python baik untuk tujuan komersil/non-komersil [1].

1.2.1 Instalasi Python


Berikut ini diberikan panduan untuk meng-instal program Python 3 pada sistem operasi
Windows 10 (32 bit).
1. Langkah awal untuk meng-instal program python adalah mengunduh aplikasi python pada
https://www.python.org/downloads/
2. Klik Download Python 3.8.0

3. Setelah berhasil didownload, file instalasi aplikasi Python 3.8.0 akan tersimpan pada folder
download.
4. jalankan aplikasi Python yang telah didownload dengan cara klik 2 kali
Algoritma dan Pemrograman PYTHON 6

5. Centang pada bagian “Add Python 3.8 to PATH”, kemudian klik “Install Now”

6. Tunggu proses instalasi program Python selesai


Algoritma dan Pemrograman PYTHON 7

7. Proses instalasi program Python sudah selesai,klik tombol Close

8. Jika proses instalasi berhasil, maka saat dimasukkan kata “Python” pada kolom search
windows, maka akan muncul IDLE Python dan command line seperti berikut
Algoritma dan Pemrograman PYTHON 8

9. Saat IDLE diklik, maka muncul tampilan seperti berikut, untuk memulai pemrograman maka
klik File  New File.
Algoritma dan Pemrograman PYTHON 9

10. Syntax dapat dituliskan langsung pada IDLE shell setelah tanda “ >>> ” namun syntax tidak
dapat disimpan, agar syntax dapat disimpan, maka syntax dituliskan pada New file atau sering
disebut Script file atau module
11. Untuk menyimpan Script file, klik FileSaveketik nama file, contoh: MySyntax simpan
dengan extension .py atau Save As Type: Python filessave pada folder yang diinginkan

1.2.2 Struktur Bahasa Python


Syntax Bahasa Python hampir sama dengan bahasa pemrograman pada umumnya,
seperti pada Java atau PHP. Pada Python, syntax untuk mencetak cukup gunakan fungsi print()
dimana sesuatu yang akan dicetak harus diletakkan di antara tanda kurung. Jika ingin mencetak
tipe data String langsung, maka dapat dilakukan dengan cara print(“Hello World”). Struktur
bahasa Python yang digunakan yaitu
1. Statements
Instruksi yang diberikan secara baris per baris untuk dijalankan oleh program
2. Variables (identifiers)
Pengindentifikasian yang digunakan untuk menampung sebuah data atau informasi
3. Literals
Data atau informasi yang digunakan untuk mengisi suatu variabel
4. Operators
Simbol-simbol yang digunakan untuk mengubah nilai dari satu variabel dengan melibatkan
satu atau lebih variabel dan literal.
5. Reserved Words
Kumpulan kata-kata yang memiliki makna khusus dalam bahasa pemrograman Python dan
tidak dapat digunakan untuk variables dan literals
6. Whitespace
Pada bahasa Python, spasi dan tab memiliki makna khusus untuk menandai serangkaian blok
dalam kode Python
7. Comments
Merupakan sekumpulan teks yang dituliskan di dalam sebuah program yang tidak akan
mempengaruhi hasil dari sebuah program

Python bersifat case sensitif, huruf besar dan huruf kecil memiliki perbedaan. Aturan ini
berlaku untuk nama variabel ataupun fungsi-fungsi lainnya. Terdapat tiga aturan penting yang
wajib diikuti pada saat mendeklarasikan suatu variabel (identifiers) di Python, yaitu
1. Nama dari sebuah variabel harus dimulai dengan huruf (a – z atau A – Z) atau karakter garis
bawah/ underscore ( _ ) dan tidak dapat dimulai dengan angka (0 – 9).
2. Variabel hanya boleh mengandung karakter alfabet, bilangan, atau uderscore.
Algoritma dan Pemrograman PYTHON 10

3. Variabel bersifat case-sensitive yang mengartikan bahwa variabel RENDAH, rendah, dan
Rendah merujuk pada tiga variabel yang berbeda.

Practice!
Bukalah IDLE Python, pada windows Shell IDLE Python (layar console), ketikkan syntax berikut dan run
dengan menekan tombol enter!

print("Hello World.")
print("Saya baru belajar Python.")
bil1=10
bil1
Bil_2=20
Bil_2
Frasa="Halo Dunia"
Frasa
bil1,Bil_2

 Kata "Hello World." & "Saya baru belajar Python." disebut dengan statement.
print( ) adalah fungsi dasar python untuk mencetak tulisan yang diberikan dan output
akan muncul pada layar console.
 Tanda sama dengan “ = “ merupakan assignment operator.
Program Python juga dapat mencetak hasil perhitungan matemtika seperti
penambahan, pengurangan, perkalian, dan pembagian dengan syntax berikut dengan x dan y
adalah suatu bilangan,
print(x + y)
print(x – y)
print(x * y)
print(x / y)
. ×
sebagai contoh, syntax untuk menghitung dan mencetak hasilnya, adalah sebagai
.
berikut, print((10.5 +2 * 3) / (45 – 3.5))

Comments adalah sekumpulan teks yang dituliskan dalam sebuah program dan tidak akan
mempengaruhi hasil dari sebuah program. Berikut adalah contoh penulisan single line
comment & multi line comment pada python.

# untuk menulis single line comment, atau


'''
komentar ini
lebih dari 1 baris
Algoritma dan Pemrograman PYTHON 11

'''
untuk menulis multi line comment.

Practice!
Bukalah IDLE Python, pada windows Shell IDLE Python, ketikkan syntax berikut dan run dengan
menekan tombol enter!
#perintah pada baris ini tidak mempengaruhi program
'''
perintah ini tidak akan dieksekusi oleh Python
dan perintah ini juga tidak akan dieksekusi
perintah ini juga tidak akan dieksekusi
'''
print("jadi # digunakan untuk membuat comment pada Python")
Untuk single line comment (perintah satu baris), kamu harus menempatkan tanda # sebelum
menulis komentar. Sementara itu, untuk multiline comment (perintah lebih dari sebaris), harus
menempatkan tanda ''' dan kemudian ditutup dengan tanda yang serupa yaitu '''. Walaupun
tidak mempengaruhi hasil program, comments adalah salah satu komponen yang penting
dalam pengembangan program. Hal tersebut dikarenakan comments dapat diselipkan di antara
sekumpulan statements untuk dapat berkomunikasi dengan rekan lainnya.
Membaca input dari layar console, dapat menggunakan fungsi input( ) untuk meminta
user untuk menginput nilai yang ingin dihitung menggunakan suatu fungsi yang sudah
didefinisikan, hal ini mirip seperti program kalkulator. Fungsi eval( ) digunakan untuk
mengevaluasi dan mengkonvert tipe string ke numerik dari nilai yang diinputkan, sebagai
contoh eval(“34.5”) menjadi 34.5 berupa tipe numerik.
Contoh:
1. Variabel = input(“Enter a value: “)
2. #syntax ini dibuat pada module .py (new file lalu disave dengan
ekstensi .py)
radius = eval(input(“Enter a value for radius: “))
area = radius * radius * 3.14159
print(“The area for the circle of radius”, radius, “is”, area)
Pada saat module dijalankan, maka output yang keluar yaitu
Enter a value for radius: 2.5 nilai 2.5 diinputkan oleh user, lalu tekan enter
The area for the circle of radius 2.5 is 19.6349375
Algoritma dan Pemrograman PYTHON 12

1.2.3 Library pada Python


Berikut merupakah beberapa library yang ada pada Python, library berikut sering digunakan
dalam bidang data science.
Numpy (numerical python) merupakan library yang memudahkan dalam pendefinisian array
(1D, 2D, 3D atau nD) dan digunakan untuk komputasi aljabar linier.
Scipy (Scientific Python) merupakan library yang melengkapi numpy untuk keperluan
komputasi saintifik lanjut seperti aljabar linier, integrasi dan diferensiasi numerik, transformasi
Fourier, optimasi, interpolasi, statistik dan yang lainnya.
Pandas adalah library untuk pengolahan data dalam bentuk tabular (seperti excel) yang
merupakan de facto library (pustaka yang umum digunakan dalam prakteknya) bagi data
scientist dalam mengolah data dari berbagai sumber seperti file CSV, TSV, Excel, SQL queries,
Google BigQuery, SAS, Stata, SPSS, dsb.
Matplotlib digunakan untuk visualisasi dari data ke dalam berbagai bentuk grafik 2D atau 3D,
seperti line chart, bar chart, histogram, polar chart, error bar plot, dan jenis grafik lainnya.
Scikit-learn adalah Scipy Toolkit yang ditujukan untuk menghasilkan model prediktif dengan
menggunakan machine learning.
Seaborn merupakan library yang dibuat dari matplotlib yang ditujukan oleh visualisasi grafik
statistik dengan warna yang menawan, dan terintegrasi dengan baik dengan pandas.
Library pada Python dapat diakses di kode program dengan mengimportnya terlebih
dahulu, ada dua cara yang dapat digunakan, pertama menggunakan perintah import
nama_library, kedua menggunakan perintah import nama_library as alias, sebagai contoh
import math
import numpy as np
import pandas as np
import seaborn as sns
Algoritma dan Pemrograman PYTHON 13

Task!
Bukalah IDLE Python, pada windows Shell IDLE Python, ketikkan syntax untuk perintah berikut
1. Mencetak kalimat “Welcome to Python” dan “Programming is Fun”
2. bukalah New File, dan buatlah syntax untuk menampilkan output
FFFFFFF U U NN NN
FF U U NNN NN
FFFFFFF U U NN N NN
FF U U NN N NN
FF UUU NN NNN

. × . . ×
3. Tulislah syntax untuk menampilkan hasil
. .
4. Tulislah syntax untuk menampilkan hasil 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9
5. Tulislah syntax untuk menampilkan hasil luas lingkaran dengan radius 5.5 cm, dengan
rumus luas lingkaran yaitu 𝑎𝑟𝑒𝑎 = 𝑟𝑎𝑑𝑖𝑢𝑠 × 𝑟𝑎𝑑𝑖𝑢𝑠 × 𝜋
6. Tulislah syntax untuk menampilkan hasil luas lingkaran dengan radius 5.5 cm, dengan
rumus luas lingkaran yaitu 𝑎𝑟𝑒𝑎 = 𝑟𝑎𝑑𝑖𝑢𝑠 × 𝑟𝑎𝑑𝑖𝑢𝑠 × 𝜋 menggunakan fungsi input dan eval
Algoritma dan Pemrograman PYTHON 14

Bab 2
Tipe Data, Operator, dan Ekspresi
Setelah mempelajari Bab 2 ini, mahasiswa diharapkan dapat merancang program dengan
menggunakan elemen-elemen dasar dari suatu program dalam memecahkan sederhana.

2.1 Ringkasan Materi


Secara garis besar, ada beragam tipe data di Python seperti yang digambarkan pada diagram
dibawah:

Tabel berikut menjelaskan keterangan dari tipe data NoneType, int, float, dan bool:

Tabel berikut menjelaskan keterangan dari tipe data sequence, set, dan map:
Tipe Data Keterangan dan Contoh Konversi ke tipe data ini
Tipe data teks yang dapat berupa huruf,
Gunakan fungsi str()
kata, frasa, kalimat atau paragraf yang
Contoh:
Sequence str diapit oleh ‘ atau “
str(5.3) → “5.3”;
Contoh:
str([1, ‘buku’]) → "[1, 'buku']"
“a”; ‘b’; ‘saya’; “Belajar Python”; “Kita
Algoritma dan Pemrograman PYTHON 15

Tipe Data Keterangan dan Contoh Konversi ke tipe data ini


makan nasi goreng”
Urutan bilangan dan teks yang diapit oleh Gunakan fungsi list()
kurung siku dan masing-masing elemennya Contoh:
list dipisahkan dengan koma. list(“buku”) → ['b', 'u', 'k', 'u'];
Contoh: list((1, 2, 3)) → [1, 2, 3]
[-9.52, None, True, “saya”] list({1, 3, 6, 3}) → [1, 3, 6]
Urutan bilangan dan teks yang diapit oleh Gunakan fungsi tuple()
kurung biasa dan masing-masing Contoh:
tuple elemennya dipisahkan dengan koma. tuple(“buku”) → ('b', 'u', 'k', 'u');
Contoh: tuple((1, 2, 3)) → (1, 2, 3)
(-9.52, None, True, “saya”) tuple({1, 3, 6, 3}) → (1, 3, 6)
Urutan bilangan dan teks yang diapit oleh
Gunakan fungsi set()
kurung biasa dan masing-masing
Contoh:
elemennya dipisahkan dengan koma.
Set set set(“buku”) → ['b', 'k', 'u'];
Setiap elemennya bernilai unik.
set((1, 2, 3)) → {1, 2, 3}
Contoh:
set([1, 3, 6, 3]) → {1, 3, 6}
{1, 4, 4, 3} → {1, 3, 4}

Practice!
Buatlah dan jalankan syntax print((“satu”,”dua”,”tiga”))
berikut #tipe data Dictionary
1. Text = “Saya Belajar Python” print({“nama” : ”Felix” , ’umur’ : 20})
print(list(text)) #tipe data Dictionary dimasukan ke dalam
print(tuple(text)) variabel biodata
print(set(text)) #proses inisialisasi variable biodata
2. #Tipe data Boolean biodata={“nama” : ”Leon” , ‘umur’ : 21}
print (True) print(biodata) #proses pencetakan
#tipe data string variabel bidata yang berisi tipe data
print(“Ayo belajar Python”) Dictionary
#tipe data integer type(biodata) #fungsi untuk mencetak
print (20) jenis tipe data
#tipe data float
print(3.14)
#tipe data List
print([1,2,3,4,5])
print([“satu”,”dua”,”tiga”])
#tipe data Tuple
print((1,2,3,4,5))
Algoritma dan Pemrograman PYTHON 16

Berikut merupakan operator numerik yang digunakan pada bahasa Python.


Nama Operator Operator
Tambah +
Kurang -
Pembagi Float /
Pembagian Integer //
Perkalian *
Pangkat **
Modulus %
Kurang dari <
Lebih dari >
Kurang dari sama dengan <=
Lebih dari sama dengan >=
Sama dengan =

Practice!
Ketikkanlah syntax berikut: Jalankanlah syntax berikut:
a=10 seconds = eval(input(“Enter an
b=5 integer for seconds: "))
selisih = a – b # Get minutes and remaining
jumlah = a + b seconds
kali = a * b # Find minutes in seconds
bagi= a /b minutes = seconds // 60
mod=a%b # Seconds remaining
print(“Hasil penjumlahan a dan remainingSeconds = seconds % 60
b adalah:”, jumlah) print(seconds, "seconds is",
print(“Hasil selisih a dan b minutes,"minutes and",
adalah:”, selisih) remainingSeconds, "seconds")
print(“Hasil perkalian a dan b
adalah”, kali)
print(“Hasil pembagian a dan b
adalah”, bagi)
print(“Hasil modulus a dan b
adalah”, mod)
Ekspresi mewakili komputasi yang melibatkan nilai, variabel, dan operator yang disatukan,
mengevaluasi ke nilai. Urutan dalam mengevaluasi ekspresi dan operator pada Python, adalah
sebagai berikut:
1. Pangkat (**),
Algoritma dan Pemrograman PYTHON 17

2. Perkalian (*), pembagian (/), pembagian integer (//), modulus (%), jika suatu ekspresi
terdapat beberapa perkalian, pembagian, dan modulus maka pengoperasian dimulai
dari kiri ke kanan,
3. Penjumlahan (+), dan pengurangan (-), jika suatu ekspresi terdapat beberapa
penjumlahan dan pengurangan, maka pengoperasian dimulai dari kiri ke kanan.
Berikut adalah bentuk augmented assignment operators:
Operator Nama operator Contoh Ekuivalen dengan
+= Assignment penjumlahan i+=8 i=i+8
-= Assignment pengurangan i-=8 i=i-8
*= Assignment perkalian i*=8 i=i*8
/= Assignment pembagian i/=8 i=i/8
//= Assignment pembagian integer i//=8 i = i // 8
%= Assignment modulus i%=8 i=i%8
**= Assignment pangkat i**=8 i = i ** 8
Jika bilangan integer dan float terlibat dalam operasi biner, Python secara otomatis mengubah
bilangan bulat menjadi nilai float. Sebagai contoh, 3*4.5 akan dikonversi menjadi 3.0*4.5.
Fungsi int( ) dapat digunakan untuk mengembalikan bentuk integer dari nilai float, selain itu
juga dapat digunakan untuk mengubah integer string ke integer seperti pada fungsi eval( ).
Fungsi round( ) dapat digunakan untuk membulatkan angka ke nilai terdekat. Fungsi int dan
round tidak mengubah variable yang dikonversi.

Practice!
Jalankanlah syntax berikut: Jalankanlah syntax berikut:
purchaseAmount = eval(input("Enter value = 4.6
purchase amount: ")) print(int(value))
# Compute sales tax print(round(value))
tax = purchaseAmount * 0.06 print(eval("4 * 5 + 2"))
# Display tax amount with two print(int("04"))
digits after decimal point print(int("4.5"))
print("Sales tax is", int(tax * print(eval("04"))
100) / 100.0)
import time # Obtain the total hours
currentTime = time.time() # Get totalHours = totalMinutes // 60
current time # Compute the current hour
# Obtain the total seconds since currentHour = totalHours % 24
midnight, Jan 1, 1970 # Display results
totalSeconds = int(currentTime) print("Current time is",
# Get the current second currentHour, ":",
currentSecond = totalSeconds % 60 currentMinute, ":", currentSecond,
# Obtain the total minutes "GMT")
Algoritma dan Pemrograman PYTHON 18

totalMinutes = totalSeconds // 60
# Compute the current minute in
the hour
currentMinute = totalMinutes % 60

Task!
Buatlah syntax untuk perintah berikut
1. buatlah program untuk mengkonversi suhu dalam satuan celcius ke fahrenheit dengan
rumus fahrenheit=(9/5)*celcius+32
2. buatlah program untuk menghitung volume tabung dengan rumus
Area=radius*radius*phi
Volume=area*length
3. buatlah program untuk menampilkan ouput berikut
a b a**b
1 2 1
2 3 8
3 4 41
4 5 1024
5 6 15625
Algoritma dan Pemrograman PYTHON 19

Bab 3
Fungsi Matematis, String, dan Objek
Setelah mempelajari Bab 3 ini, mahasiswa diharapkan dapat menjelaskan konsep fungsi
matematis, string, karakter dan objek, dapat menerapatkan fungsi matematis, string, karakter
dan objek dalam pemecahan masalah.
3.1 Ringkasan Materi
Pada bahasa pemrograman Python terdapat fungsi untuk melakukan perhitungan
matematis. Perhitungannya dengan menambahkan fungsi math di depan perintah. Berikut
adalah daftarnya:
Nama Penggunaan Penjelasan
Absolute abs(x) Nilai absolut dari x:(positive) jarak antara x and 0.
Ceiling dari x: integer terkecil yang kurang dari x
Ceiling ceil(x)
atau pembulatan keatas dari nilai x.
Eksponen exp(x) Nilai eksponen dari x: ex
Fabs fabs(x) Nilai absolut dari x.

Floor floor(x) Pembulatan kebawah dari nilai x .

Log log(x) Logaritma dari x, untuk x > 0.


Log basis log(x,base) logaritma dari x dengan basis, untuk x > 0.
Argumen terbesar: Nilai terdekat dengan tak
Max max(x1, x2,…)
terhingga positif
Argumen terkecil: nilai yang paling mendekati tak
Min min(x1, x2,…)
berhingga negatif.
Bagian pecahan dan bilangan bulat dari x dalam
tupel dua item. Kedua bagian memiliki tanda yang
Modf modf(x)
sama dengan x.
Bagian integer dikembalikan sebagai float.

Pow pow(x,y) Nilai x ** y.

X dibulatkan menjadi n digit dari titik desimal.


Round round(x ,n)

Akar Kuadrat sqrt(x) Akar kuadrat x untuk x> 0.

Python dapat digunakan untuk melakukan perhitungan trigonometri, berikut adalah


penggunaan fungsi trigonometri.
Algoritma dan Pemrograman PYTHON 20

Nama Penggunaan Penjelasan


Acos acos(x) Kembalikan kosinus x, di radian.
Asin asin(x) Kembalikan busur sinus x, dalam radian.
Atan atan(x) Kembalikan busur singgung x, di radian.
Atan 2 atan2(y,x) Kembali atan (y / x), di radian.
Kosinus cos(x) Kembalikan kosinus x radian.
Hypot hypot(x,y) Kembalikan norma Euclidean, sqrt (x * x + y * y).
Sin sin(x) Kembalikan sinus dari x radian.
Tan tan(x) Kembalikan tangen x radian.
Derajat degrees(x) Mengonversi sudut x dari radian ke derajat.
Radian radians(x) Mengonversi sudut x dari derajat ke radian.

Python juga dilengkapi dengan fungsi untuk mendefinisikan dua konstanta matematika yang
sering digunakan dalam perhitungan, yaitu:
Nama Penggunaan Penjelasan
Pi pi Konstanta pi matematika
e e Konstanta e matematika

Selain fungsi di atas, terdapat fungsi nomor acak digunakan untuk aplikasi permainan, simulasi,
pengujian, keamanan, dan privasi. Python mencakup fungsi berikut yang umum digunakan.
Berikut adalah daftar fungsi nomor acak.
Nama Penggunaan Penjelasan
Choice choice(seq) Item acak dari list, tuple, atau string.
RandRange randrange Elemen yang dipilih secara acak dari jangkauan (start,
([start,],stop, [,step]) stop, step).

Random random() A random float r, sehingga 0 kurang dari atau


sama dengan r dan r kurang dari 1
Seed seed([x]) Menetapkan nilai awal integer yang digunakan
dalam menghasilkan bilangan acak. Tidak ada
pengembalian
Shuffle sShuffle(lst) Mengacak daftar dari daftar di tempat. Tidak ada
pengembalian
Algoritma dan Pemrograman PYTHON 21

Uniform uniform(x,y) Sebuah float acak r, sedemikian rupa sehingga x


kurang dari atau sama dengan r dan r kurang dari
y.

Practice!
Jalankanlah syntax berikut: Jalankanlah syntax berikut:
abs(-3) # Returns the absolute import math # import math module
value to use the math functions
abs(-3.5) # Returns the absolute # Test algebraic functions
value print("exp(1.0) =", math.exp(1) )
max(2, 3, 4, 6) # Returns the print("log(2.78) =",
maximum number math.log(math.e))
min(2, 3, 4) # Returns the minimum print("log10(10, 10) =",
number math.log(10, 10) )
pow(2, 3) # Same as 2 ** 3 print("sqrt(4.0) =",
pow(2.5, 3.5) # Same as 2.5 ** 3.5 math.sqrt(4.0) )
round(3.51) # Rounds to its # Test trigonometric functions
nearest integer print("sin(PI / 2) =",
round(3.4) # Rounds to its nearest math.sin(math.pi / 2))
integer print("cos(PI / 2) =",
round(3.1456, 3) # Rounds to 3 math.cos(math.pi / 2))
digits after the decimal point print("tan(PI / 2) =",
math.tan(math.pi / 2))
print("degrees(1.57) =",
math.degrees(1.57))
print("radians(90) =",
math.radians(90))

#menghitung luas segitiga


import math
x1, y1, x2, y2, x3, y3 = eval(input("Enter three points: "))

a = math.sqrt((x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3))


b = math.sqrt((x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3))
c = math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2))

A = math.degrees(math.acos((a * a - b * b - c * c) / (-2 * b * c)))


B = math.degrees(math.acos((b * b - a * a - c * c) / (-2 * a * c)))
C = math.degrees(math.acos((c * c - b * b - a * a) / (-2 * a * b)))

print("The three angles are ", round(A * 100) / 100.0,


round(B * 100) / 100.0, round(C * 100) / 100.0)
Algoritma dan Pemrograman PYTHON 22

String merupakan urutan karakter. Python memperlakukan karakter dan string dengan
cara yang sama. String adalah urutan karakter dan dapat mencakup teks dan angka. Nilai string
harus diapit oleh tanda kutip tunggal (') atau tanda kutip ganda ("). Python tidak memiliki tipe
data untuk karakter. String karakter tunggal mewakili karakter. Sebagai contoh
letter = 'A' # Same as letter = "A"
numChar = '4' # Same as numChar = "4"
message = "Good morning" # Same as message = 'Good morning'
Pernyataan pertama memberikan string dengan karakter A ke huruf variabel. Pernyataan kedua
memberikan string dengan karakter digit 4 ke variabel numChar. Pernyataan ketiga
memberikan string Good Morning ke pesan variabel.
Python juga mendukung Unicode. Unicode adalah skema pengkodean untuk mewakili
karakter internasional. ASCII (American Standard Code for Information Interchange), adalah
bagian kecil dari Unicode. Unicode didirikan oleh Konsorsium Unicode untuk mendukung
pertukaran, pemrosesan, dan tampilan teks tertulis dalam berbagai bahasa di dunia. Unicode
dimulai dengan \u, diikuti oleh empat digit heksadesimal yang dimulai dari \u0000 hingga
\uFFFF. Sebagai contoh, untuk mentranslate kata “welcome” ke karakter Chinese dapat
menggunakan Unicode \u6B22\u8FCE
import turtle
turtle.write("\u6B22\u8FCE \u03b1 \u03b2 \u03b3")
turtle.done()
Python menyediakan fungsi ord(ch) untuk mengembalikan kode ASCII untuk karakter ch dan
fungsi chr(code) untuk mengembalikan karakter yang diwakili oleh kode. Sebagai contoh,
ch = 'a'
ord(ch) #Output: 97
chr(98) #Output: ‘b’
ord('A') #Output: 65

Python memiliki notasi untuk membuat baris baru, melakukan Tab, dan lain-lain, berikut
adalah daftar notasinya:
Character escape sequence Name Numeric value
\b Backspace 8
\t Tab 9
\n Linefeed 10
\f Formfeed 12
\r Carriage Return 13
\\ Backslash 92
\’ Single Quote 39
\” Double Quote 34
Algoritma dan Pemrograman PYTHON 23

Sebagai contoh, ingin membuat kalimat yang berisikan pesan quote,


print("He said, \"John's program is easy to read\"")
He said, "John's program is easy to read" #Output.
Jika ingin mencetak tanpa baris baru, dapat menggunakan perintah end = “anyendingstring”,
dengan contoh syntax seperti berikut: print(item, end = "anyendingstring".
Sebagai contoh,
print("AAA", end = ' ')
print("BBB", end = '')
print("CCC", end = '***')
print("DDD", end = '***')
#Output
AAA BBBCCC***DDD***.

Practice!
Berikut program mengklasifikasikan sejumlah uang tertentu ke dalam unit moneter yang
lebih kecil
ComputeChange.py
# Receive the amount
amount = eval(input("Enter an amount, for example, 11.56: "))
# Convert the amount to cents
remainingAmount = int(amount * 100)
# Find the number of one dollars
numberOfOneDollars = remainingAmount // 100
remainingAmount = remainingAmount % 100
# Find the number of quarters in the remaining amount
numberOfQuarters = remainingAmount // 25
remainingAmount = remainingAmount % 25
# Find the number of dimes in the remaining amount
numberOfDimes = remainingAmount // 10
remainingAmount = remainingAmount % 10
# Find the number of nickels in the remaining amount
numberOfNickels = remainingAmount // 5
remainingAmount = remainingAmount % 5
# Find the number of pennies in the remaining amount
numberOfPennies = remainingAmount
# Display the results
print("Your amount", amount, "consists of\n",
"\t", numberOfOneDollars, "dollars\n",
"\t", numberOfQuarters, "quarters\n",
"\t", numberOfDimes, "dimes\n",
Algoritma dan Pemrograman PYTHON 24

"\t", numberOfNickels, "nickels\n",


"\t", numberOfPennies, "pennies")

Task!
Buatlah syntax untuk perintah berikut
1. buatlah program untuk menghitung luas pentagon (segi lima), dengan user menginput nilai
panjang titik tengan ke sudut pentagon (r), rumus luas dan s (panjang sisi) adalah sebagai
berikut,

2. Hal yang sama dengan soal no. 1, namun gunakan rumus luas pentagon sebagai berikut
Algoritma dan Pemrograman PYTHON 25

Bab 4
Penyeleksian Kondisi
Setelah mempelajari Bab 4 ini, mahasiswa diharapkan dapat menjelaskan struktur penyeleksian
kondisi dalam pemrograman, dan menggunakan struktur pemrograman dalam pemrograman.

4.1 Pendahuluan
Ketika dihadapkan dengan pengambilan suatu keputusan tentunya akan dievaluasi beberapa
pilihan. Di dalam bahasa pemrograman, pengambilan keputusan juga digunakan melalui
penerapan konsep IF - ELSE. Konsep ini juga berlaku pada python yang memiliki kesederhanaan
dalam penulisannya.
Untuk itu, pada bab penyeleksian kondisi: terdapat 3 bagian percabangan keputusan yang
dipelajari, yaitu:
 Menggunakan IF yang dapat dianalogikan dengan "Jika sesuatu memenuhi suatu kondisi
maka lakukanlah A, namun jika tidak maka tidak terjadi apa-apa".
 Menggunakan IF dan ELSE yang dapat direpresentasikan dengan "Jika sesuatu
memenuhi suatu kondisi maka lakukanlah A, namun jika tidak terpenuhi maka
lakukanlah B".
 Menggunakan IF, ELIF dan ELSE. ELIF merupakan singkatan dari ELSE IF di python.
Penerapan konstruksi IF, ELIF dan ELSE ini dapat dianalogikan dengan "Jika sesuatu
memenuhi suatu kondisi maka lakukanlah A, jika tidak, lakukanlah pengecekan pada
kondisi berikutnya yaitu jika memenuhi lakukanlah B, jika tidak maka lakukanlah C".
Pada praktek operator IF, ELIF dan ELSE ini akan sedikit berbeda dengan sebelumnya. Perlu
banyak modifikasi code yang dilakukan agar pemahaman materi bisa sempurna. Python
memiliki beberapa operator yang dapat digunakan dalam penentuan seleksi kondisi. Operator
perbandingan digunakan untuk membandingkan suatu nilai dari masing-masing operan. Jenis
operator perbandingan dapat dilihat sebagai berikut,
Operator Contoh Penjelasan
Sama dengan 1 == 1 bernilai True Jika masing-masing operan memiliki
== nilai yang sama, maka kondisi bernilai benar atau
True.
Tidak sama 2 != 2 bernilai False Akan menghasilkan nilai kebalikan dari
dengan != kondisi sebenarnya.
Tidak sama 2 <> 2 bernilai False Akan menghasilkan nilai kebalikan dari
dengan <> kondisi sebenarnya.
Lebih besar 5>3 bernilai True Jika nilai operan kiri lebih besar dari
dari > nilai operan kanan, maka kondisi menjadi benar.
Algoritma dan Pemrograman PYTHON 26

Lebih kecil dari 5<3 bernilai True Jika nilai operan kiri lebih kecil dari nilai
< operan kanan, maka kondisi menjadi benar.
Lebih besar 5 >= 3 bernilai True Jika nilai operan kiri lebih besar dari
atau sama nilai operan kanan, atau sama, maka kondisi menjadi
dengan >= benar.
Lebih kecil atau 5 <= 3 bernilai True Jika nilai operan kiri lebih kecil dari nilai
sama dengan operan kanan, atau sama, maka kondisi menjadi
<= benar

4.2 IF Statement
Penggunaan IF sebenarnya adalah sebuah statement untuk menentukan keputusan mana yang
akan diambil berdasarkan suatu kondisi yang ditentukan oleh pembuat program. Pengambilan
keputusan (kondisi if) digunakan untuk mengantisipasi kondisi yang terjadi saat jalannya
program dan menentukan tindakan apa yang akan diambil sesuai dengan kondisi. Kondisi if
digunakan untuk mengeksekusi kode jika kondisi bernilai True, jika kondisi bernilai salah False
maka statement tidak akan dieksekusi.

Practice!
i=10 #inisialisasi variabel number = eval(input("Enter an
iyang memiliki nilai 10 integer: "))
if(i==10): #pengecekan nilai I if number % 5==0 :
apakah sam dengan 10 print("HiFive")
if number %2==0 :
print(“ini adalah angka
print("HiEven")
10”) #jika TRUE maka akan
mencetak kalimat ini
i=7 #program menebak tanggal lahir seseorang
day = 0
if (i==10): # Prompt the user to answer the first
print(“ini adalah angka question
question1 = "Is your birthday in Set1?\n" +
10”) \
Note: jika syntax ini dilankan " 1 3 5 7\n" + \
maka tidak ada hasil yang " 9 11 13 15\n" + \
"17 19 21 23\n" + \
ditampilkan karena inisialisasi "25 27 29 31" + \
tidak memenuhi syarat kondisi "\nEnter 0 for No and 1 for Yes: "
answer = eval(input(question1))
if.
if answer ==1:
day += 1

# Prompt the user to answer the second


question
question2 = "Is your birthday in Set2?\n" +
Algoritma dan Pemrograman PYTHON 27

\
" 2 3 6 7\n" + \
"10 11 14 15\n" + \
"18 19 22 23\n" + \
"26 27 30 31" + \
"\nEnter 0 for No and 1 for Yes: "
answer = eval(input(question2))

if answer ==1 :
day += 2
# Prompt the user to answer the third
question
question3 = "Is your birthday in Set3?\n" +
\
" 4 5 6 7\n" + \
"12 13 14 15\n" + \
"20 21 22 23\n" + \
"28 29 30 31" + \
"\nEnter 0 for No and 1 for Yes: "
answer = eval(input(question3))

if answer ==1:
day += 4
# Prompt the user to answer the fourth
question
question4 = "Is your birthday in Set4?\n" +
\
" 8 9 10 11\n" + \
"12 13 14 15\n" + \
"24 25 26 27\n" + \
"28 29 30 31" + \
"\nEnter 0 for No and 1 for Yes: "
answer = eval(input(question4))

if answer ==1:
day += 8

# Prompt the user to answer the fifth


question
question5 = "Is your birthday in Set5?\n" +
\
"16 17 18 19\n"+ \
"20 21 22 23\n" + \
"24 25 26 27\n" + \
"28 29 30 31" + \
"\nEnter 0 for No and 1 for Yes: "
answer = eval(input(question5))

if answer ==1 :
day += 16

print("\nYour birthday is "+ str(day) + "!")

4.3. IF… ELSE …


Bentuk ke 2 dari IF adalah IF…ELSE… dengan menggunakan dua perintah untuk dipilih
dijalankan. Pengambilan keputusan (kondisi if else) tidak hanya digunakan untuk menentukan
Algoritma dan Pemrograman PYTHON 28

tindakan apa yang akan diambil sesuai dengan kondisi, tetapi juga digunakan untuk
menentukan tindakan apa yanag akan diambil / dijalankan jika kondisi tidak sesuai. Contoh
syntax-nya adalah sebagai berikut:
if boolean-expression:
statement(s)-for-the-true-case
else:
statement(s)-for-the-false-case
Berikut adalah flowchart dari statements if-else

Practice!
i=10 #inisialisasi variabel i=7
iyang memiliki nilai 10 if (i==10):
if(i==10): #pengecekan nilai i print(“ini adalah angka
apakah sama dengan 10 10”)
print(“ini adalah angka else:
10”) #jika TRUE maka akan print(“bukan angka 10”)
mencetak kalimat ini #jika FALSE
else:
print(“bukan angka 10”)
#jika FALSE
#Program membuat QUIZ pengurangan
import random

# 1. Generate two random single-digit integers


number1 = random.randint(0, 9)
number2 = random.randint(0, 9)

# 2. If number1 < number2, swap number1 with number2


if number1 < number2:
number1, number2 = number2, number1 # Simultaneous assignment
Algoritma dan Pemrograman PYTHON 29

# 3. Prompt the student to answer "What is number1 - number2?"


answer = eval(input("What is "+ str(number1) + " - " +
str(number2) + "? "))

# 4. Check the answer and display the result


if number1 - number2 == answer:
print("You are correct!")
else:
print("Your answer is wrong.\n", number1, '-',
number2, "is", number1 - number2, '.')

4.4 IF…ELIF…ELSE…
Pengambilan keputusan (kondisi if elif else) merupakan lanjutan percabangan logika dari
kondisi if. Hampir sama dengan kondisi else, bedanya kondisi elif bisa banyak dan tidak hanya
satu. Sebagai contoh,

Kondisi pertama (skor >= 90) diuji. Jika Benar, nilainya menjadi A. Jika Salah, kondisi kedua (skor
>= 80) diuji. Jika kondisi kedua Benar, nilainya menjadi B. Jika kondisi itu Salah, kondisi ketiga
dan kondisi lainnya (jika perlu) diuji sampai suatu kondisi terpenuhi atau semua kondisi terbukti
Salah. Jika semua kondisi salah, nilainya menjadi F. Perhatikan bahwa suatu kondisi diuji hanya
jika semua kondisi yang mendahuluinya Salah. Berikut merupakan flowchart dari contoh di atas,
Algoritma dan Pemrograman PYTHON 30

Practice!
i=5 i=3
if(i==5): if(i==5):
print(“ini adalah angka 5”) print(“ini adalah angka 5”)
elif(i>5): elif(i>5):
print(“lebih besar dari 5”) print(“lebih besar dari
else: angka 5”)
print(“lebih kecil dari 5”) else:
print(“lebih kecil dari 5”)

i=7 #program menentuka chinese zodiac


if(i==5): year = eval(input("Enter a year:
print(“ini adalah angka 5”) "))
elif(i>5): zodiacYear = year % 12
if zodiacYear == 0:
print(“lebih besar dari
print("monkey")
angka 5”)
elif zodiacYear == 1:
else: print("rooster")
print(“lebih kecil dari 5”) elif zodiacYear == 2:
print("dog")
elif zodiacYear == 3:
print("pig")
elif zodiacYear == 4:
print("rat")
elif zodiacYear == 5:
print("ox")
elif zodiacYear == 6:
Algoritma dan Pemrograman PYTHON 31

print("tiger")
elif zodiacYear == 7:
print("rabbit")
elif zodiacYear == 8:
print("dragon")
elif zodiacYear == 9:
print("snake")
elif zodiacYear == 10:
print("horse")
else:
print("sheep")

4.5 Nested IF
Fungsi IF sendiri dapat digunakan secara bertingkat atau dapat memiliki pengecekan lebih dari 1
kondisi, sebagai contoh:
if ( i<7 && i <3 )

Pernyataan ini berarti bahwa i harus bernilai kurang dari 7 dan juga harus kurang dari 3 agar
bisa memenuhi pengecekan tersebut.

Practice!
i=2
if(i<7):
print(“nilai i kurang dari 7”)
if(i<3):
print(“nilai i kurang dari 7 dan kurang dari 3”)
else:
print(“nilai i kurang dari 7 tapi lebih dari 3”)
Algoritma dan Pemrograman PYTHON 32

Task!
Buatlah syntax dan flowchart untuk perintah berikut
1. Indeks massa tubuh (BMI) adalah ukuran kesehatan berdasarkan berat badan. Ini dapat
dihitung dengan mengambil berat badan Anda dalam kilogram dan membaginya dengan
kuadrat tinggi badan Anda dalam meter. Interpretasi BMI untuk orang berusia 16 tahun ke
atas adalah sebagai berikut:

2. Tulis sebuah program yang meminta pengguna untuk memasukkan bilangan bulat dan
memeriksa apakah bilangan tersebut habis dibagi 5 dan 6, habis dibagi 5 atau 6, atau hanya
salah satunya (tetapi tidak keduanya)
3. Tulis sebuah program yang meminta pengguna untuk memasukkan bilangan bulat tiga digit
dan menentukan apakah itu bilangan palindrom. Suatu bilangan disebut palindrom jika
bacaannya sama dari kanan ke kiri dan dari kiri ke kanan.
Algoritma dan Pemrograman PYTHON 33

Bab 5
Perulangan
Setelah mempelajari bab ini, mahasiswa diharapkan dapat menjelaskan penggunaan
struktur perulangan dalam pemrograman, dan dapat menggunakan struktur perulangan dalam
pemrograman dengan benar.

5.1 Pendahuluan
Perulangan atau looping merupakan salah satu elemen atau fungsi yang bisa dikatakan sangat
menunjang untuk kebutuhan programming dan data science. Ambil contoh, seandainya kita
harus memproses 1000x eksekusi code. Tentu akan menghabiskan waktu bila kita harus
menulis ulang kode tersebut sebanyak 1000x juga. Selain tidak bersifat scalable, efisiensi akan
mempengaruhi performa dari program yang kita buat. Seperti pada umumnya pada python
juga memiliki fungsi for dan while untuk melakukan looping. Logikanya hampir sama, namun
hanya berbeda dalam penulisannya jika kamu sudah terbiasa dengan C ataupun Java. Dalam
python, statemen for bekerja mengulang berbagai macam tipe data yang sekuensial seperti List,
String, dan Tuple. Bentuk perulangan for akan dijalankan selama kondisi bernilai TRUE dan akan
keluar dari perulangan jika kondisi FALSE.
5.2 WHILE
Statemen while merupakan statemen untuk perulangan block kode akan dijalankan terus
menerus selama kondisi benar. Statemen while dapat mempunyai bagian else.
Struktur while pada python tidak berbeda jauh dengan bahasa pemrograman lainnya. Lebih
sederhananya, struktur penulisan python membuat dia mudah untuk dibaca. Bentuk syntax
perulangan while yaitu
while loop-continuation-condition:
# Loop body
Statement(s)
Berikut merupakan contoh sederhana untuk program perulangan while,
count = 0
while count < 100:
print("Programming is fun!")
count = count + 1
Flowchart dari syntax di atas yaitu,
Algoritma dan Pemrograman PYTHON 34

Practice!
#nilai awal j = 0 i = 1
j=0 while i < 10:
#ketika j kurang dari 6 lakukan sum = sum + i
perulangan , jika tidak stop i = i + 1
perulangan print("sum is", sum) # sum is 45
while j<6:
print(“ini adalah perulangan ke-
“,j)
#setiap kali diakhir perulangan
update nilai dengan ditambah 1
j=j+1
#Program membuat QUIZ pengurangan
import random

# 1. Generate two random single-digit integers


number1 = random.randint(0, 9)
number2 = random.randint(0, 9)

# 2. If number1 < number2, swap number1 with number2


if number1 < number2:
number1, number2 = number2, number1 # Simultaneous assignment

# 3. Prompt the student to answer "What is number1 - number2?"


answer = eval(input("What is "+ str(number1) + " - " +
str(number2) + "? "))

# 4. Repeatedly ask the question until the answer is correct


while number1 - number2 != answer :
Algoritma dan Pemrograman PYTHON 35

answer = eval(input("Wrong answer. Try again. What is "


+ str(number1) + " - " + str(number2) + "? "))
print("You got it!")

5.3 FOR
Struktur looping for pada python berbeda dengan struktur for pada umumnya. Berikut adalah
contoh syntax FOR loop
for i in range(initialValue, endValue):
# Loop body
Secara umum dapat ditulis menjadi:
for var in sequence:
# Loop body

Practice!
for i in range(1,6): #perulangan for sebagai inisialisasi dari angka 1
hingga angka yang lebih kecil daripada 6
Print(“ini adalah perulangan ke-“,i)
Keunikan lain dari looping dengan python adalah selain bahasa yang mudah dimengerti, kita
juga bisa mengakses elemen yang terdapat pada sebuah list.

count=[1,2,3,4,5] #elemen list


for number in count: #looping untuk menampilkan semua elemen pada
count
print(“ini adalah element count:”,number)

5.4 Nested Loop dan Perintah Break


Loop bersarang terdiri dari loop luar dan satu atau lebih loop dalam. Setiap kali loop luar
diulang, loop dalam dimasukkan kembali dan dimulai lagi. Penerapannya untuk menyelesaikan
masalah-masalah perhitungan diantaranya perhitungan matriks, perhitungan total pembelian
(kuitansi) maupun soal yang lainnya. Berikut contoh aplikasi menghitung rata-rata dari M orang
mahasiswa dari N buah mata kuliah yang diambil. Banyaknya mahasiswa (M) diset sebagai baris
(for level 1) dan banyaknya mata kuliah (N) yang diambil sebagai kolom (for level 2).
Statemen break digunakan untuk keluar dari perulangan, misalnya dikehendaki perintah
akan dikeluarkan dari perulangan walaupun kondisi perulangan masih True atau iterasi belum
dijalankan seluruhnya.
Algoritma dan Pemrograman PYTHON 36

Practice!
banyakMhs= int(input(‘Banyak Mahasiswa:’))
for M in range (banyakMhs):
print (‘Mahasiswa ke-’, M+1)
banyakMK = int (input(‘Banyak Matakuliah diambil:’))
totalnilai=0
for N in range(banyakMK):
nilai= int(input(‘Input Nilai ke %d :’ %(N+1))
totalnilai=totalnilai+nilai
rerata=totalnilai/banyakMK
print(‘Rata-rata:’, rerata)

#tabel perkalian

print(" Multiplication Table")


# Display the number title
print(" |", end = '')
for j in range(1, 10):
print(" ", j, end = '')
print() # Jump to the new line
print("——————————————————————————————————————————")

# Display table body


for i in range(1, 10):
print(i, "|", end = '')
for j in range(1, 10):
# Display the product and align properly
print(format(i * j, "4d"), end = '')
print() # Jump to the new line
# lat2.py
while True:
data = raw_input('Masukkan sesuatu : ')
if data == 'keluar':
break
print ('Inputan pengguna "%s"' % data)
print ('Selesai')

Note:Program ini akan terus meminta inputan pengguna dan akan berhenti ketika pengguna
menginputkan keluar.
#TestContinue.py
sum = 0
number = 0
Algoritma dan Pemrograman PYTHON 37

while number < 20:


number += 1
if number == 10 or number == 11:
continue
sum += number
print("The sum is", sum)

Note: Program menjumlahkan semua bilangan bulat dari 1 sampai 20 kecuali 10 dan 11. Pernyataan
continue dieksekusi ketika angka menjadi 10 atau 11. Pernyataan continue mengakhiri iterasi saat ini
sehingga sisa pernyataan dalam badan perulangan tidak dieksekusi; oleh karena itu, angka tidak
ditambahkan ke jumlah ketika 10 atau 11.

Task!
Buatlah syntax dan flowchart untuk perintah berikut
1. Masalahnya adalah menebak nomor apa yang ada dalam pikiran komputer. Anda akan
menulis program yang secara acak menghasilkan bilangan bulat antara 0 dan 100, inklusif.
Program meminta pengguna untuk memasukkan angka secara terus menerus hingga cocok
dengan angka yang dihasilkan secara acak. Untuk setiap input pengguna, program
melaporkan apakah terlalu rendah atau terlalu tinggi, sehingga pengguna dapat memilih input
berikutnya dengan cerdas
2. Buatlah sebuah program yang bisa mengeluarkan angka 1 sampai 10.Tampilan akan
menunjukan "Angka ganjil 1" untuk angka ganjil dan "Angka genap 2" untuk angka genap.
(Menggunakan looping for)
3. menyajikan program yang menampilkan lima puluh bilangan prima pertama dalam lima
baris, masing-masing berisi sepuluh nomor. Bilangan bulat yang lebih besar dari 1 adalah
prima jika satu-satunya pembagi positifnya adalah 1 atau dirinya sendiri. Misalnya, 2, 3, 5, dan
7 adalah bilangan prima, tetapi 4, 6, 8, dan 9 bukan.
Masalahnya dapat dipecah menjadi tugas-tugas berikut:
 Menentukan apakah suatu bilangan merupakan bilangan prima.
 Untuk bilangan = 2, 3, 4, 5, 6, ..., ujilah apakah bilangan tersebut prima.
 Hitung bilangan prima.
 Tampilkan setiap bilangan prima, dan tampilkan sepuluh nomor per baris.
Algoritma dan Pemrograman PYTHON 38

Bab 6
Fungsi
Setelah mempelajari bab ini, mahasiswa diharapkan dapat menjelaskan penggunaan Fungsi
dalam pemrograman, dan dapat menggunakan Fungsi dalam pemrograman dengan benar.
6.1 Pendahuluan
Pada pembuatan program yang kompleks dan memiliki banyak fitur, kita diharuskan
menggunakan fungsi. Hal ini bertujuan supaya kita tidak kesulitan untuk menulis kode
programnya. Kesulitan ini bisa muncul karena banyak kode yang harus ditulis. Seiring
berjalannya waktu, kode bisa menjadi sulit dibaca dan dirawat (maintenance). Dalam hal ini,
fungsi dapat dianalogikan sebagai sebuah perangkat untuk tujuan tertentu. Perangkat dengan
tujuan tertentu ini merupakan fitur dari program kita yang dapat dipanggil kapanpun sesuai
dengan kebutuhan. Untuk membuat sebuah fungsi perlu didasari pada tujuan tertentu apa yang
akan dihasilkan oleh fitur program kita. Dengan demikian, sebuah fungsi ini
bersifat reusable atau dapat digunakan secara berulang. Di samping itu, penggunaan fungsi
membuat program menjadi lebih terstruktur dan mudah dirawat.
Fungsi pada pemrograman Phyton akan dapat dikategorikan ke dalam 2 kelompok, yaitu:
1. Standard Library Function
Fungsi-fungsi yang telah disediakan oleh Interpreter Python dalam file-file atau
librarynya.
2. User Defined Function
Fungsi yang dibuat sendiri. Function ini memiliki nama tertentu yang unik dalam
program, letaknya terpisah dari program utama, dan bisa dijadikan satu ke dalam suatu
library.
6.2 Memanggil Fungsi
Fungsi pada Python didefinisikan menggunakan kata kunci def, dimana urutannya setelah
def dilanjutkan nama pengenal fungsi diikut dengan parameter yang diapit oleh tanda
kurung dan diakhir dingan tanda titik dua (:). Selanjutnya berupa blok fungsi yang akan
dijalankan jika fungsi dipanggil. Contoh penggunaannya
#lat1.py
def halo_dunia ():
print ('Halo Dunia!')
halo_dunia ()
#memanggil fungsi halo_dunia
halo_dunia ()
# fungsi halo_dunia dipanggil lagi

Berikut merupakan struktur syntax Fungsi:


Algoritma dan Pemrograman PYTHON 39

Fungsi memiliki kemampuan membaca parameter. Parameter merupakan suatu nilai yang
disediakan kepada fungsi, dimana nilai ini akan menentukan output yang akan dihasilkan
fungsi. Parameter dituliskan dalam tanda kurung saat pemanggilan fungsi. Nilai parameter
saat pemanggilan fungsi dinamakan argument. Apabila terdapat variabel yang
dideklarasikan di dalam blok fungsi, variabel tersebut tidak terkait dengan variabel
lain dengan nama yang diluar fungsi, dengan kata lain nama variabel hanya lokal untuk
fungsi. Hal ini disebut juga scope variabel. Apabila dikehendaki menulis variabel diluar
fungsi anda dapat menggunaan statemen global. Apabila hendak membuat fungsi dengan
banyak parameter dan anda hanya ingin menspesifikasikan sebagian, dapat menggunakan
keyword argumen. Dimana nama (keyword) melainkan posisi (argumen posisi, normal
pemanggilan). Apabila dikehendaki membuat fungsi yang dapat menerima jumlah
argumen yang tidak tentu dapat menggunakan tanda *.

Practice!
# lat2.py # lat4.py
def halo(nama): x = 50
print 'Halo %s!' % nama def fungsi():
def cetak_maksimal (a, b): print 'x = ', x
if a > b: def fungsi2():
print '%s merupakan nilai x = 100 # menulis ke lokal
maksimal' % a variabel
elif a == b: print 'x = ', x
print '%s sama dengan %s' % (a, def fungsi3():
b) global x x = 100
else: print 'x = ', x fungsi()
print '%s merupakan nilai print 'nilai x = ', x fungsi2()
maksimal' % b print 'nilai x = ', x fungsi3()
halo('Dunia') # memanggil fungsi print 'nilai x = ', x
halo dengan argumen 'Dunia'
Algoritma dan Pemrograman PYTHON 40

halo('Indonesia') # memanggil
fungsi halo dengan argumen
'Indonesia' cetak_maksimal (10,
100)
x = 9
y = 3
cetak_maksimal (x, y)

6.3 Fungsi dengan/atau tanpa Return


Sebuah fungsi berisi header dan body. Header dimulai dengan kata kunci def, diikuti
dengan nama fungsi dan parameter, dan diakhiri dengan titik dua. Variabel dalam header
fungsi dikenal sebagai parameter formal atau parameter sederhana. Parameter seperti
placeholder: Saat suatu fungsi dipanggil, Anda memberikan nilai ke parameter. Nilai ini
disebut sebagai parameter atau argumen aktual. Parameter adalah opsional; yaitu, suatu
fungsi mungkin tidak memiliki parameter apa pun. Misalnya, fungsi random.random() tidak
memiliki parameter. Beberapa fungsi mengembalikan nilai, sementara fungsi lain
melakukan operasi yang diinginkan tanpa mengembalikan suatu nilai. Jika suatu fungsi
mengembalikan nilai, itu disebut fungsi pengembalian nilai. Badan fungsi berisi kumpulan
pernyataan yang mendefinisikan apa yang dilakukan fungsi. Misalnya, badan fungsi dari
fungsi max menggunakan pernyataan if untuk menentukan bilangan mana yang lebih besar
dan mengembalikan nilai bilangan tersebut. Pernyataan pengembalian menggunakan kata
kunci return diperlukan untuk fungsi pengembalian nilai untuk mengembalikan hasil. Fungsi
berakhir ketika pernyataan kembali dijalankan.

Practice!
#PrintGradeFunction.py #ReturnGradeFunction.py
# Print grade for the score # Return the grade for the score
if score >= 90.0: def getGrade(score):
print('A') if score >= 90.0:
elif score >= 80.0: return 'A'
print('B') elif score >= 80.0:
elif score >= 70.0: return 'B'
print('C') elif score >= 70.0:
elif score >= 60.0: return 'C'
print('D') elif score >= 60.0:
else: return 'D'
print('F') else:
def main() : return 'F'
score = eval(input("Enter a def main() :
score: ")) score = eval(input("Enter a
Algoritma dan Pemrograman PYTHON 41

print("The grade is ", end = " ") score: "))


printGrade(score) print("The grade is",
main() # Call the main function getGrade(score))

main() # Call the main function

#Membuat module
#buatlah pada new file dan save dengan ekstensi .py
GCDFunction.py
# Return the gcd of two integers
def gcd(n1, n2) :
gcd = 1 # Initial gcd is 1
k = 2 # Possible gcd

while k <= n1 and k <= n2:


if n1 % k == 0 and n2 % k == 0:
gcd = k # Update gcd
k += 1

return gcd # Return gcd

Note: buatlah program dibawah ini secara terpisah dan gunakanlah fungsi gcd yang sudah
dibuat tadi

#TestGCDFunction.py
from GCDFunction import gcd # Import the gcd function

# Prompt the user to enter two integers


n1 = eval(input("Enter the first integer: "))
n2 = eval(input("Enter the second integer: "))

print("The greatest common divisor for", n1,


"and", n2, "is", gcd(n1, n2))
#DefaultArgumentDemo.py
def printArea(width = 1, height = 2):
area = width * height
print("width:", width, "\theight:", height, "\tarea:", area)

printArea() # Default arguments width = 1 and height = 2


printArea(4, 2.5)# Positional arguments width = 4 and height = 2.5
printArea(height = 5, width = 3)# Keyword arguments width
printArea(width = 1.2)# Default height = 2
printArea(height = 6.2) # Default width = 1
#MultipleReturnValueDemo.py
Algoritma dan Pemrograman PYTHON 42

def sort(number1, number2):


if number1 < number2:
return number1, number2
else:
return number2, number1
n1, n2 = sort(3, 2)
print("n1 is", n1)
print("n2 is", n2)

Task!
Buatlah syntax dan flowchart untuk perintah berikut
1. Bilangan pentagonal didefinisikan sebagai n(3n-1)/2 untuk n=1,2,…, dan seterusnya. Jadi,
beberapa angka pertama adalah 1, 5, 12, 22, .... Tulis fungsi dengan header berikut yang
mengembalikan angka pentagonal:
def getPentagonalNumber(n):
Tulislah program percobaan yang menggunakan fungsi ini untuk menampilkan 100 bilangan
pentagonal pertama dengan 10 bilangan pada setiap baris.

Referensi:
[1] Liang,Y. Daniel (2013). Introduction to Programming Using Python. US of America. Pearson
Education, Inc., publishing as Prentice Hall.
[2] Munir, R (2007). Algoritma Pemrograman dengan Bahasa Pascal dan C Edisi Revisi. Bandung.
Penerbit Informatika.
[3] Munawar. Modul Praktikum Algoritma dan Pemrograman.

Anda mungkin juga menyukai