Dasar
Dasar
-
-
dasar
dasar
Algoritma
Algoritma
Algoritma
Algoritma
dan
dan
Pemrograman
Pemrograman
Tahar
Tahar
Agastani
Agastani
Teknik
Teknik
Informatika
Informatika
UIN
UIN
Apa
Apa
Itu
Itu
Algoritma
Algoritma
?
?
•
•
AlgoritmaAlgoritmaberasalberasaldaridari::–
– NamaNamaAbu Abu Ja’farJa’farMuhammad Muhammad IbnuIbnuMusaMusaAlAl--KhwarizmiKhwarizmiahliahli
matematika
matematikaPersia yang Persia yang menulismenulisKitabKitabAl Al jabarjabarwalwal--muqabalamuqabala
pada
padasekitarsekitartahuntahun825M.825M.
–
– KonsepKonseppencatatanpencatatancaracara--caracara((prosedurprosedur) ) pemecahanpemecahanmasalahmasalah matematika
matematika..
•
•
DefinisiDefinisi:: –– UrutanUrutanlangkahlangkahberhinggaberhinggauntukuntukmemecahkanmemecahkanmasalahmasalahlogikalogika atau
ataumatematikamatematika(Microsoft Press@)(Microsoft Press@)
–
– KamusKamusBesarBesarBahasaBahasaIndonesia:Indonesia: Algoritma
Algoritmaadalahadalahurutanurutanlogislogispengambilanpengambilanputusanputusanuntukuntuk
pemecahan
pemecahanmasalahmasalah
•
•
AlgoritmaAlgoritmadibutuhkandibutuhkan((terkaitterkaitdengandengankomputerkomputer):):–
– untukuntukmemerintahmemerintahkomputerkomputermengambilmengambillangkahlangkah--langkahlangkah tertentu
TI
TI --Algoritma dan PemrogramanAlgoritma dan Pemrograman 33
Algoritma
Algoritma
di
di
Kehidupan
Kehidupan
Nyata
Nyata
•
•
Cara-
Cara
-cara
cara
memasak
memasak
atau
atau
membuat
membuat
kue
kue
yang
yang
dinyatakan
dinyatakan
sebagai
sebagai
resep
resep
adalah
adalah
algoritma.
algoritma
.
•
•
Menulis
Menulis
surat:
surat
:
1.
1. MempersiapkanMempersiapkan kertaskertas dandan amplopamplop 2.
2. MempersiapkanMempersiapkan alatalattulistulis..
3.
3. MulaiMulaimenulismenulis 4.
4. MemasukkanMemasukkan kertaskertas kekedalamdalamamplopamplop
5.
5. AmplopAmplopditempeliditempeli perangkoperangkosecukupnyasecukupnya 6.
6. PergiPergikekekantorkantorpos pos untukuntukmengeposkanmengeposkan suratsurattsbtsb.. Langkah
Langkah 1 1 s/ds/d6 6 adalahadalahalgoritmaalgoritma
Konstruksi
Konstruksi
(struktur
(
struktur)
)
Algoritma
Algoritma
•
•
Berurutan
Berurutan
(sequence):
(sequence):
–
– langkahlangkahdikerjakandikerjakansecarasecaraberurutanberurutan((sekuensialsekuensial).).
•
•
Percabangan
Percabangan
(selection):
(selection):
–
– langkahlangkahdikerjakandikerjakanJIKAJIKAmemenuhimemenuhikondisikondisitertentutertentu
•
•
Pengulangan
Pengulangan
(iteration):
(iteration):
–
– langkahlangkahdikerjakandikerjakanSELAMASELAMAmemenuhimemenuhisuatusuatukondisikondisi tertentu
tertentu..
•
•
Konkuren
Konkuren
(concurrent):
(concurrent):
–
– beberapabeberapalangkahlangkahdikerjakandikerjakansecarasecarabersamabersama..
Catatan
TI
TI --Algoritma dan PemrogramanAlgoritma dan Pemrograman 55
Penulisan
Penulisan
Algoritma
Algoritma
•
•
Dalam
Dalam
bahasa
bahasa
natural
natural
(
(Bahasa
Bahasa
Indonesia,
Indonesia,
Bahasa
Bahasa
Inggris,
Inggris
, dan
dan
bahasa
bahasa
manusia
manusia
lainnya)
lainnya
)
–
– TapiTapiseringseringmembingungkanmembingungkan((ambiguousambiguous))
•
•
Menggunakan
Menggunakan
pseudo-
pseudo
-code
code
–
– SudahSudahlebihlebihdekatdekatkekebahasabahasapemrogramanpemrograman, , namunnamun sulit
sulit dimengertidimengertioleholehorangorangyang yang tidaktidak mengertimengerti
pemrograman
pemrograman
•
•
Menggunakan
Menggunakan
flow chart
flow chart
(diagram alir
(diagram
alir)
)
–
– BagusBagussecarasecara visual visual akanakantetapitetapirepot repot kalaukalau
algoritmanya
algoritmanya panjangpanjang
Pseudo
Pseudo
-
-
code
code
•
•
Definisi
Definisi:
:
–
– BahasaBahasa((biasanyabiasanyaInggrisInggris) ) terstrukturterstrukturuntukuntuk
menggambarkan
menggambarkan logikalogikaalgoritmaalgoritma
•
•
Bagian
Bagian
terstruktur
terstruktur
(
(konstruksi
konstruksi
dasar)
dasar
) adalah
adalah:
:
–
– SEQUENCE: SEQUENCE: berurutanberurutanmelakukanmelakukansatusatulangkahlangkah setelah
setelah langkahlangkahlainnyalainnya –
– IFIF--THENTHEN--ELSE: ELSE: percabanganpercabangan((seleksiseleksi) ) pilihanpilihandibuatdibuat diantara
diantara duaduaalternatifalternatiflangkahlangkah –
– WHILE: WHILE: pengulanganpengulangandengandenganujiujikondisikondisididiawalawal
•
•
Konstruksi
Konstruksi
tambahan:
tambahan
:
–
– CASE: CASE: percabanganpercabangan((generalisasigeneralisasiIFIF--THENTHEN--ELSE)ELSE) –
– DODO--WHILE: WHILE: pengulanganpengulangandengandenganujiuji kondisikondisididiakhirakhir –
TI
TI --Algoritma dan PemrogramanAlgoritma dan Pemrograman 77
Konstruksi
Konstruksi
SEQUENCE
SEQUENCE
•
•
Keyword yang Keyword yang umumumumdaridariSEQUENCE:SEQUENCE:Input : READ, OBTAIN, GET
Input : READ, OBTAIN, GET
Output : PRINT, DISPLAY, SHOW
Output : PRINT, DISPLAY, SHOW
Compute : COMPUTE, CALCULATE, DETERMINE
Compute : COMPUTE, CALCULATE, DETERMINE
Initialize : SET, INIT
Initialize : SET, INIT
Add one : INCREMENT, BUMP
Add one : INCREMENT, BUMP
•
•
ContohContoh::READ height of rectangle READ width of rectangle
COMPUTE area as height times width DISPLAY area
BACA tinggi persegi panjang BACA lebar persegi panjang HITUNG luas sbg tinggi kali lebar TAMPILKAN luas
Konstruksi
Konstruksi
IF
IF
-
-
THEN
THEN
-
-
ELSE
ELSE
•
•
BentukBentukUmumUmum::IF condition THEN IF condition THEN sequence 1 sequence 1 ELSE ELSE sequence 2 sequence 2 ENDIF ENDIF Catatan
Catatan: condition : condition adalahadalahpilihanpilihanbinerbiner((yayaatauatautidaktidak))
•
•
ContohContoh:: IFIF HoursWorkedHoursWorked> > NormalMaxNormalMaxTHEN THEN
Display overtime message
Display overtime message
ELSE
ELSE
Display regular time message
Display regular time message
ENDIF
TI
TI --Algoritma dan PemrogramanAlgoritma dan Pemrograman 99
Konstruksi
Konstruksi
WHILE
WHILE
•
•
Bentuk
Bentuk
Umum:
Umum
:
WHILE condition WHILE condition sequence sequence ENDWHILE ENDWHILE
•
•
Contoh:
Contoh
:
WHILE Population < Limit
WHILE Population < Limit
Compute Population as Population + Births
Compute Population as Population + Births --DeathsDeaths ENDWHILE ENDWHILE
Flowchart
Flowchart
•
•
DefinisiDefinisi:: FlowchartFlowchart adalahadalahbentukbentukgambargambar/diagram yang /diagram yang mempunyaimempunyai
aliran
aliransatusatuatauatauduaduaaraharahsecarasecarasekuensialsekuensial. .
•
•
DigunakanDigunakan::Untuk
Untukmerepresentasikanmerepresentasikansebuahsebuahalgoritmaalgoritmasecarasecaraskematikskematik
sehingga
sehinggamempermudahmempermudahmemahamimemahamialuralurlogikanyalogikanya..
Aliran
Alirandatadata Mulai
MulaiatauatauSelesaiSelesai (Terminator) (Terminator) Keterangan Keterangan Lambang Lambang Lambang-lambang Flowchart
TI
TI --Algoritma dan PemrogramanAlgoritma dan Pemrograman 1111
Lambang
Lambang
-
-
lambang
lambang
Flowchart
Flowchart
Memanggil
Memanggilfungsifungsi
Konektor
Konektordidi halaman
halamanlainlain
Pemberian
Pemberiannilainilai awal
awalsuatusuatu variabel
variabel
Konektor
Konektordidi halaman
halamanyang yang
sama sama Percabangan Percabangan ( (SeleksiSeleksi)) Proses Proses Perulangan Perulangan ( (IterasiIterasi)) Input/Output Input/Output
Keterangan
Keterangan
Lambang
Lambang
Keterangan
Keterangan
Lambang
Lambang
syarat pencacahBagian yang diulang
Contoh
Contoh
Konstruksi
Konstruksi
Berurutan
Berurutan
–
– MemecahkanMemecahkanmasalahmasalahmatematikamatematikayaituyaitumenghitungmenghitung
luas
luas lingkaranlingkarandengandenganmasukanmasukanberupaberupajarijari--jarijari lingkaran
lingkaran
Rumus
Rumus: L = : L = ππRR22
•
•
Algoritma
Algoritma
dalam
dalam
bahasa
bahasa
natural (Indonesia)
natural (Indonesia)
1.
1. AmbilAmbiljarijari--jarijarilingkaranlingkaranRR 2.
2. Set Pi Set Pi samasamadengandengan3.143.14 3.
3. HitungHitungluasluaslingkaranlingkaranL L yaituyaituPi kali Pi kali kwadratkwadratjarijari--jarijariRR
4.
TI
TI --Algoritma dan PemrogramanAlgoritma dan Pemrograman 1313
•
•
Algoritma
Algoritma
dengan
dengan
Pseudo
Pseudo
-
-
code
code
Indonesia
Indonesia
1.
1.
Masukkan
Masukkan
R
R
2.
2.
Pi ←
Pi
←
3.14
3.14
3.
3.
L ←
L
←
Pi * R * R
Pi * R * R
4.
4.
Tulis
Tulis
L
L
•
•
Algoritma
Algoritma
dengan
dengan
Pseudo
Pseudo
-
-
code
code
Inggris
Inggris
1.
1.
Read R
Read R
2.
2.
Pi ←
Pi
←
3.14
3.14
3.
3.
L ←
L
←
Pi * R * R
Pi * R * R
4.
4.
Print L
Print L
Algoritma
Algoritma
dengan
dengan
Flow chart
Flow chart
Mulai Masukkan R Pi ←3.14 L ←Pi * R * R Tulis L Selesai
TI
TI --Algoritma dan PemrogramanAlgoritma dan Pemrograman 1515
Contoh
Contoh
Konstruksi
Konstruksi
Percabangan
Percabangan
–
– MenuliskanMenuliskannilainilaiabsolutabsolutdaridarinilainilaiyang yang dimasukkandimasukkan pengguna
pengguna
Definisi
Definisinilainilaiabsolutabsolut: : | x | = x,
| x | = x, jikajikax x ≥≥00 | x | =
| x | = --x, x, jikajikax < 0x < 0
•
•
Algoritma
Algoritma
dalam
dalam
bahasa
bahasa
natural Indonesia
natural Indonesia
1.
1. AmbilAmbilnilainilaixx 2.
2. JikaJika(x < 0) (x < 0) makamakakerjakankerjakanbarisbaris3, 3, jikajikatidaktidakkerjakankerjakan baris
baris44 3.
3. Set x Set x samasamadengandengan--xx 4.
4. TampilkanTampilkanxx
Algoritma
Algoritma
dengan
dengan
Pseudo-
Pseudo
-code (
code (
Bhs
Bhs
Inggris)
Inggris
)
1. 1. GET xGET x 2. 2. IF x < 0 THEN x IF x < 0 THEN x ←←--xx 3. 3. DISPLAY xDISPLAY x
Algoritma
Algoritma
dengan
dengan
Pseudo-
Pseudo
-code (
code (
Bhs
Bhs
Indonesia)
Indonesia)
1.
1. AMBIL xAMBIL x 2.
2. JIKA x < 0 MAKA x JIKA x < 0 MAKA x ←←--xx
3.
TI
TI --Algoritma dan PemrogramanAlgoritma dan Pemrograman 1717
Algoritma
Algoritma
dengan
dengan
Flow chart
Flow chart
Mulai Masukkan x Tulis x Selesai x < 0? x ← -x Y T
Contoh
Contoh
Konstruksi
Konstruksi
Pengulangan
Pengulangan
–
– MenghitungMenghitungpenjumlahanpenjumlahandaridarisekumpulansekumpulandata yang data yang dimasukkan
dimasukkanoleholehpenggunapengguna Rumus
Rumusmencarimencaripenjumlahanpenjumlahandaridarisejumlahsejumlahdata N: data N:
N N sum = sum = ∑∑dtdtii i=1 i=1
•
•
AlgoritmaAlgoritmadalamdalambahasabahasanatural (natural (BhsBhsIndonesia)Indonesia)1.
1. MasukkanMasukkanjumlahjumlahdata Ndata N
2.
2. Set sum = 0 Set sum = 0 dandanpencacahpencacahi = 1i = 1
3.
3. UlangiUlangilangkahlangkah--langkahlangkahberikutberikutsampaisampaii > Ni > N
a.
a. MasukkanMasukkandtdt
b.
b. HitungHitungsum = sum = sumsum+ + dtdt
c.
TI
TI --Algoritma dan PemrogramanAlgoritma dan Pemrograman 1919
Algoritma
Algoritma
dengan
dengan
Pseudo
Pseudo
-
-
code
code
Inggris
Inggris
1.
1.
GET N
GET N
2.
2.
sum ←
sum
←
0
0
3.
3.
i ←
i
←
1
1
4.
4.
WHILE i ≤
WHILE i
≤
N
N
5.
5.
READ dt
READ
dt
6.
6.
sum ←
sum
←
sum + dt
sum +
dt
7.
7.
i ←
i
←
i + 1
i + 1
8.
8.
ENDWHILE
ENDWHILE
9.
9.
DISPLAY sum
DISPLAY sum
Algoritma
Algoritma
dengan
dengan
Flow chart
Flow chart
Mulai Masukkan N Tulis sum Selesai sum ← 0 i ← 1 Selama (i ≤ N) sum ← sum + dt i ← i + 1 Masukkan dtTI
TI --Algoritma dan PemrogramanAlgoritma dan Pemrograman 2121
Aspek
Aspek
Penting
Penting
dari
dari
Algoritma
Algoritma
1.
1.
Finiteness (Finiteness (adaadabatasbatas))Algoritma
Algoritmaharusharusberhentiberhentiafter a finite number of stepsafter a finite number of steps
2.
2.
Definiteness (Definiteness (pastipasti))Setiap
Setiaplangkahlangkahharusharusdidefinisikandidefinisikansecarasecaratepattepat, , tidaktidakbolehboleh membingungkan
membingungkan(ambiguous)(ambiguous)
3.
3.
InputInputSebuah
Sebuahalgoritmaalgoritmamemilikimemilikinolnolatauataulebihlebihinput yang input yang diberikandiberikan
kepada
kepadaalgoritmaalgoritmasebelumsebelumdijalankandijalankan
4.
4.
OutputOutputSebuah
Sebuahalgoritmaalgoritmamemilikimemilikisatusatuatauataulebihlebihoutput, yang output, yang biasanya
biasanyabergantungbergantungkepadakepadainputinput
5.
5.
Effectiveness (Effectiveness (tepattepatdandanefisienefisien))Setiap
Setiapalgoritmaalgoritmadiharapkandiharapkanmilikimilikisifatsifatefektifefektif
Latihan
Latihan
1.
1.
TulislahTulislahalgoritmaalgoritmauntukuntukmencarimencariluasluassegitigasegitigajikajikamasukan
masukan daridaripenggunapenggunaadalahadalahalas alas dandantingginyatingginya..
Rumus
Rumus: L = ½ : L = ½ a.ta.t..
2.
2.
TulislahTulislahalgoritmaalgoritmauntukuntukmencarimencarisisisisi miring miring daridarisuatusuatusegitiga
segitiga sikusiku--sikusiku jikajikadiketahuidiketahui panjangpanjangduaduasisisisiyang yang membentuk
membentuk sudutsudutsikusiku--sikusiku..
Rumus
Rumus: c = : c = √√(a2 + b2)(a2 + b2)
3.
3.
TulislahTulislahalgoritmaalgoritmauntukuntukmemintamemintamasukanmasukanduaduabilangan
bilangan daridaripenggunapenggunakemudiankemudianmenampilkanmenampilkan bilangan
bilangan terbesarterbesardidiantaraantarakeduakeduabilanganbilangantersebuttersebut..
4.
4.
TulislahTulislahalgoritmaalgoritmauntukuntukmenampilkanmenampilkanteksteks““Hello HelloWorld