Algoritmik
Apa yang dibahas?
Algoritma, blok bangunan algoritma (pernyataan, keadaan, aliran kontrol, fungsi), notasi
(kode semu, diagram alir, bahasa pemrograman), pemecahan masalah algoritmik, strategi
sederhana untuk mengembangkan algoritme (iterasi, rekursi). Masalah ilustratif: menemukan
nilai terkecil (min) di dalam suatu daftar, memasukkan kartu ke dalam daftar kartu yang
diurutkan, menebak angka integer dalam rentang tertentu, dan Menara Hanoi.
Daftar Isi
1. Penyelesaian Masalah ......................................................................................................................... 3
1.1 Teknik Penyelesaian Masalah ....................................................................................................... 3
1.2 Algoritma....................................................................................................................................... 3
2. Blok Bangunan Algoritma.................................................................................................................... 4
2.1 Pernyataan .................................................................................................................................... 4
2.2 Kondisi ........................................................................................................................................... 4
2.3 Aliran Kendali ................................................................................................................................ 4
2.4 Fungsi ............................................................................................................................................ 6
3. Notasi .................................................................................................................................................. 6
3.1 Flowchart ...................................................................................................................................... 6
3.2 Pseudocode ................................................................................................................................. 10
3.3 Bahasa Pemrograman ................................................................................................................. 12
4. Penyelesaian Masalah Secara Algoritmik ......................................................................................... 17
4.1 Memahami Masalah (problem understanding) .......................................................................... 17
4.2 Memutuskan Hal-hal Terkait Komputasi .................................................................................... 18
4.3 Merancang Algoritma ................................................................................................................. 18
4.4 Membuktikan Kebenaran Algoritma........................................................................................... 19
4.5 Menganalisis Algoritma............................................................................................................... 19
4.6 Mengkodekan Algoritma (coding) .............................................................................................. 19
5. Strategi Dasar Pengembangan Algoritma ......................................................................................... 19
5.1.Iterasi .......................................................................................................................................... 20
5.2 Rekursi......................................................................................................................................... 21
5.3 Contoh-contoh 3 Bentuk Algoritma ............................................................................................ 22
6. Contoh Program Python ................................................................................................................... 35
1
6.1 Contoh Program Python Sangat Sederhana ............................................................................... 35
6.2 Program dengan Perulangan for ................................................................................................. 36
6.3 Program dengan Perulangan while ............................................................................................. 37
7. Soal-soal ............................................................................................................................................ 39
7.1 Bagian A ...................................................................................................................................... 39
7.2 Bagian B....................................................................................................................................... 40
2
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. 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.
• 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.
Berikut ini adalah faktor utama yang sering digunakan untuk menilai kualitas dari suatu
algoritma:
3
• 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:
2.1 Pernyataan
Pernyataan (statement) adalah satu tindakan (single action) di dalam komputer. Dalam
pernyataan komputer mungkin mencakup beberapa tindakan berikut:
2.2 Kondisi
Transisi dari satu proses ke proses lain dalam kondisi tertentu dengan waktu tertentu disebut
keadaan/kondisi atau state.
Urutan (sequence): Semua instruksi dieksekusi satu demi satu disebut eksekusi berurutan.
Langkah 1: Mulai
Langkah 2: dapatkan a, b
Langkah 3: hitung c = a + b
Langkah 4: Tampilkan c
4
Langkah 5: Berhenti
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
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
5
2.4 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.
Fungsi utama()
Langkah 1: Mulai Main function()
Langkah 2: Panggil fungsi add() Step 1: Start
Langkah 3: Berhenti Step 2: Call the function add()
Step 3: Stop
Sub fungsi add()
sub function add()
Langkah 1: Fungsi mulai
Step 1: Function start
Langkah 2: Dapatkan Nilai a, b Step 2: Get a, b Values
Langkah 3: tambahkan c=a+b Step 3: add c=a+b
Langkah 4: Cetak c Step 4: Print c
Langkah 5: Kembali Step 5: Return
3. Notasi
3.1 Flowchart
Diagram alir (flowchart) didefinisikan sebagai representasi grafis dari logika pemecahan
masalah. Tujuan dari flowchart adalah membuat logika program menjadi jelas dalam
representasi visual.
6
Gambar 1.2 Flowchart dari algoritma penjumlahan dua bilangan menggunakan fungsi
7
Gambar 1.4 Daftar simbol dalam flowchart, namun tidak semuanya digunakan dalam kuliah ini
8
Aturan untuk menggambar diagram alir:
4. Hanya satu garis aliran yang harus memasuki simbol keputusan. Namun, dua atau tiga
garis aliran dapat meninggalkan simbol keputusan.
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.
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.
1. Logika kompleks: Terkadang, logika program cukup rumit. Dalam hal ini, flowchart
menjadi kompleks dan kaku.
9
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.
3.2 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.
• 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.
Berikut ini adalah kata kunci umum yang digunakan dalam penulisan pseudocode:
10
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) 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
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.
Kekurangan:
11
Contoh: Penambahan dua bilangan
Contoh: Penambahan dua bilangan
BEGIN
GET a, b MULAI
ADD c = a + b DAPATKAN a, b
PRINT c TAMBAHKAN c = a + b
END CETAK c
SELESAI
1. Bahasa mesin
2. Bahasa Assembly
3. Bahasa tingkat tinggi
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.
12
• Kecepatan tinggi: Program bahasa mesin bebas terjemahan. Karena waktu konversi
dihemat, eksekusi program bahasa mesin menjadi sangat cepat.
• 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:
Contoh: ADD a, b
Keuntungan:
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 berisi kata-kata dan simbol bahasa Inggris (atau bahasa lain sesuai
ketetapan dari pembuatnya). Aturan yang ditentukan harus diikuti oleh programmer saat
13
menulis program dalam bahasa tingkat tinggi. Interpreter atau compiler digunakan untuk
mengonversi program ini ke dalam bentuk yang dapat dibaca oleh 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.
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.
14
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
Contoh:
• Clean
• Haskell
Contoh:
• C
• C++
• C#
• Java
15
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
Bahasa markup:
Bahasa markup adalah bahasa artificial yang menggunakan anotasi terhadap teks yang
mendefinisikan bagaimana teks akan ditampilkan.
Contoh:
• HTML
• XML
Contoh:
• Joule
• limbo
16
Contoh:
• Lava
• Moto
17
4.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.
18
sebagai cara lain untuk menentukan algoritma, meskipun lebih baik menganggapnya
sebagai implementasi algoritma.
19
5.1.Iterasi
Serangkaian pernyataan yang dijalankan sampai kondisi tertentu bernilai True (benar)
disebut iterasi. Ada dua pendekatan iterasi yang dapat dipilih yaitu:
1. perulangan for
2. perulangan while
20
5.2 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.
Fungsi utama:
Langkah 1: Start
Langkah 2: Get n
Langkah 3: call factorial(n)
Langkah 4: print fact
Langkah 5: Stop
Fungsi utama:
BEGIN
GET n
CALL factorial(n)
PRINT fact
BIN
21
Sub fungsi factorial(n):
IF(n==1) THEN
fact=1
RETURN fact
ELSE
RETURN fact=n*factorial(n-1)
22
Tuliskan algoritma untuk menghitung simple interest
Langkah 1: Start BEGIN
Langkah 2: get P, n, r value READ P, n, r
Langkah3:Calculate CALCULATE S
SI=(p*n*r)/100 SI=(p*n*r)/100
Langkah 4: Display S DISPLAY SI
Langkah 5: Stop END
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
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
DISPLAY leap year
ELSE
DISPLAY not leap year
END IF
END
24
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
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
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
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
Langkah 8: Stop
28
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
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
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
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
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
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
BEGIN
GET n
INITIALIZE i=1,fact=1
WHILE(i<=n) DO
fact=fact*i
i=i+1
ENDWHILE
PRINT fact
END
35
Calculate 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)
Calculate 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)
Check voting eligibility
age=eval(input(“enter ur age”))
If(age>=18):
print(“eligible for voting”)
else:
print(“not eligible for voting”)
Find greatest of three numbers
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)
36
6.3 Program dengan Perulangan while
Print n natural numbers Output
i=1 1
while(i<=5): 2
print(i) 3
i=i+1 4
5
Print n odd numbers Output
i=2
while(i<=10):
print(i)
i=i+2
Print n even numbers Output
i=1
while(i<=10):
print(i)
i=i+2
Print n squares of numbers 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
find sum of n numbers Output
i=1
sum=0
while(i<=10):
sum=sum+i
i=i+1
print(sum)
factorial of n numbers/product of n numbers
i=1
product=1
while(i<=10):
product=product*i
i=i+1
print(product)
sum of n numbers
def add():
a=eval(input(“enter a value”))
b=eval(input(“enter b value”))
37
c=a+b
print(“the sum is”,c)
add()
area of rectangle using function
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()
swap two values of variables
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()
check the no divisible by 5 or not
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()
find reminder and quotient of given no
def reminder():
a=eval(input("enter a"))
b=eval(input("enter b"))
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():
38
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"))
c=a/b
print("the div is",c)
add()
sub()
mul()
div()
7. Soal-soal
7.1 Bagian A
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?
39
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!
7.2 Bagian B
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!
40