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.
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
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”
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 FileSaveketik nama file, contoh: MySyntax simpan
dengan extension .py atau Save As Type: Python filessave pada folder yang diinginkan
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 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
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.
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
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
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.
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).
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))
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
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
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
\
" 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
if answer ==1 :
day += 16
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
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”)
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
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.
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
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
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
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)
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
#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
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
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.