Anda di halaman 1dari 30

Logika Algoritma

Logika Algoritma
&
&
Pemrograman
Pemrograman
Muhammad Erwanto,S.Kom
Muhammad Erwanto,S.Kom
Logika Algoritma & Pemrograman
Logika Algoritma & Pemrograman

SKS SKS : 4 SKS : 4 SKS

Dosen Dosen : Muhammad Erwanto : Muhammad Erwanto

Email Email : muhammaderwantogmail.!om : muhammaderwantogmail.!om


"#$A%A& PE'D#D#KA'
"#$A%A& PE'D#D#KA'

SD' ( MA)AS#* #'D"AMA%+ SD' ( MA)AS#* #'D"AMA%+

SMP ' , SL#%E- #'D"AMA%+ SMP ' , SL#%E- #'D"AMA%+

SMK '+SA'&A"A .#"E/0' SMK '+SA'&A"A .#"E/0'

P0L&EK .0LLE-E .#"E/0' P0L&EK .0LLE-E .#"E/0'

S&#K0M P0L&EK .#"E/0' S&#K0M P0L&EK .#"E/0'


Pengalaman *idu1
Pengalaman *idu1

SP/ Asia &oser2a SP/ Asia &oser2a

Adm Kurnia .ell Adm Kurnia .ell

ADM /ima 3inan!e ADM /ima 3inan!e

Su1er4isor Asia &oser2a .ire2on Su1er4isor Asia &oser2a .ire2on

Ke1ala Marketing #ndo5ood Ke1ala Marketing #ndo5ood

Sta55 )aringan .#s.o )akarta Sta55 )aringan .#s.o )akarta

Sta55 La2 Poltek .ollege .ire2on Sta55 La2 Poltek .ollege .ire2on

Ketua Akademik Poltek .ollege .ire2on Ketua Akademik Poltek .ollege .ire2on

*+MAS Poltek .ollege .ire2on *+MAS Poltek .ollege .ire2on

-uru SMK Muhammadi6ah Sli6eg -uru SMK Muhammadi6ah Sli6eg

-uru SMA Purnama /akti #ndrama6u -uru SMA Purnama /akti #ndrama6u

AsDos +'+ .ire2on AsDos +'+ .ire2on

Dosen Poltek .ollege .ire2on Dosen Poltek .ollege .ire2on


Deskripsi Matakuliah
Deskripsi Matakuliah

Matakuliah ini mengajarkan tentang:


Matakuliah ini mengajarkan tentang:

konsep dan logika berpikir komputer,


konsep dan logika berpikir komputer,

cara perancangan dan analisis masalah,


cara perancangan dan analisis masalah,

yang kemudian dipecahkan dengan


yang kemudian dipecahkan dengan
menggunakan komputer menggunakan
menggunakan komputer menggunakan
algoritma dan pemrograman terstruktur.
algoritma dan pemrograman terstruktur.

Selain itu juga diperkenalkan dan diajarkan


Selain itu juga diperkenalkan dan diajarkan
penggunaan bahasa pemrograman (Bahasa C),
penggunaan bahasa pemrograman (Bahasa C),
dan lo!chart
dan lo!chart

"ompetensi Matakuliah
"ompetensi Matakuliah

Mahasiswa mam1u:
Mahasiswa mam1u:

memahami logika 2er1ikir kom1uter, memahami logika 2er1ikir kom1uter,

memahami 1rinsi1 ker7a 1rogram, memahami 1rinsi1 ker7a 1rogram,

memahami alasan8alasan kom1uter da1at menger7akan memahami alasan8alasan kom1uter da1at menger7akan
1erintah81erintah 6ang di2erikan, 1erintah81erintah 6ang di2erikan,

dan mam1u menggam2arkan logika 7alann6a 1rogram dan mam1u menggam2arkan logika 7alann6a 1rogram
se!ara tertulis dengan algoritma 91seudo !ode: dan se!ara tertulis dengan algoritma 91seudo !ode: dan
dilengka1i dengan diagram alir 95low !hart: dilengka1i dengan diagram alir 95low !hart:
menggunakan suatu 2ahasa 1emrograman tertentu menggunakan suatu 2ahasa 1emrograman tertentu
Materi#Materi
Materi#Materi

Pengantar Algoritma Pengantar Algoritma

Konse1 /ahasa Pemrograman Konse1 /ahasa Pemrograman

3low!hart 3low!hart

&i1e Data, Ke6words, Konstanta, ;aria2el &i1e Data, Ke6words, Konstanta, ;aria2el

Struktur #n1ut<0ut1ut Struktur #n1ut<0ut1ut

Per!a2angan Per!a2angan

Perulangan Perulangan

Pemrograman Modular Pemrograman Modular

3ungsi: 1arameter, kem2alian 5ungsi 26 4alue 3ungsi: 1arameter, kem2alian 5ungsi 26 4alue

Arra6 , dimensi Arra6 , dimensi

Arra6 = dimensi Arra6 = dimensi

Mani1ulasi String Mani1ulasi String


"e5erensi
"e5erensi

&homas *. .ormen et.al, &homas *. .ormen et.al, Introduction to Algorithms Second Edition Introduction to Algorithms Second Edition, ,
M#& Press, M!-raw8*ill /ook .om1an6, =>>, M#& Press, M!-raw8*ill /ook .om1an6, =>>,

Simon *arris and )ames "oss, Simon *arris and )ames "oss, Beginning Algorithms Beginning Algorithms, $ille6 , $ille6
Pu2lishing #n!, =>>? Pu2lishing #n!, =>>?

)ogianto *.M, )ogianto *.M, Konsep Dasar Pemrograman Bahasa C Konsep Dasar Pemrograman Bahasa C, Pener2it Andi, , Pener2it Andi,
=>>> =>>>

Antonie Pranata, Antonie Pranata, Algoritma dan Pemrograman Algoritma dan Pemrograman, )&) Learning , )&) Learning
%og6akarta, =>>> %og6akarta, =>>>

#wan /inanto, #wan /inanto, Konsep Bahasa Pemrograman Konsep Bahasa Pemrograman, Pener2it Andi , Pener2it Andi
%og6akarta, =>>( %og6akarta, =>>(

Moh. S7ukani, Moh. S7ukani, Algoritma dan Struktur Data dengan C, C++, dan Algoritma dan Struktur Data dengan C, C++, dan
Java Java, Mitra $a!ana Media, =>>( , Mitra $a!ana Media, =>>(

&hom1son Susa2da 'goen, Pengantar Algoritma dengan /ahasa ., &hom1son Susa2da 'goen, Pengantar Algoritma dengan /ahasa .,
Pener2it Salem2a &eknika, =>>4 Pener2it Salem2a &eknika, =>>4
Penilaian
Penilaian
Komponen Penilaian:
Catatan: 30%
Kehadiran : 20%
UTS: 25%
UAS: 25%
@>.> 8 ,>> A 4.>
A>.> 8 AB.B / C.>
?>.> D ?B.B . =.>
(>.> D (B.B D ,.>
> D 4B.B E >.>
Ketentuan Lain
Ketentuan Lain

&idak ada tes tengah atau akhir susulan


&idak ada tes tengah atau akhir susulan

Kehadiran minimal @>E F @G


Kehadiran minimal @>E F @G

Ketentuan 1raktikum sesuai dengan aturan


Ketentuan 1raktikum sesuai dengan aturan
1raktikum
1raktikum

&idak ada tugas tam2ahan untuk


&idak ada tugas tam2ahan untuk
meningkatkan nilai 6ang kurang
meningkatkan nilai 6ang kurang

Sila2us
Sila2us

Pengantar Algoritma dan Konse1 /ahasa Pemrograman Pengantar Algoritma dan Konse1 /ahasa Pemrograman

3low!hart dan Pengenalan . 3low!hart dan Pengenalan .

&i1e Data, Ke6words, Konstanta dan #n1ut<0ut1ut &i1e Data, Ke6words, Konstanta dan #n1ut<0ut1ut

Per!a2angan Sederhana Per!a2angan Sederhana

Per!a2angan Kom1leks dan Swit!h Per!a2angan Kom1leks dan Swit!h

Loo1 Sederhana Loo1 Sederhana

Loo1 Kom1leks Loo1 Kom1leks

+&S +&S

Modular Programming Modular Programming

3ungsi 26 4alue: 1arameter, 4oid dan non84oid 3ungsi 26 4alue: 1arameter, 4oid dan non84oid

Arra6 , Dimensi Arra6 , Dimensi

Arra6 = Dimensi Arra6 = Dimensi

String Mani1ulation 1ada . String Mani1ulation 1ada .

3ile 3ile

+AS +AS
Sistem Kom1uter
Sistem Kom1uter

Se2uah sistem kom1uter terdiri dari


Se2uah sistem kom1uter terdiri dari
Hardware
Hardware
91erangkat keras:
91erangkat keras:
, Software
, Software

91erangkat lunak:
91erangkat lunak:
dan
dan
Brainware
Brainware
,
,
sedangkan
sedangkan
Sot!are
Sot!are
da1at dikelom1okkan
da1at dikelom1okkan
men7adi
men7adi
Operating System Software,
Operating System Software,
Programming Language Software
Programming Language Software
dan
dan

Application Program Software.
Application Program Software.
/agan Sistem Kom1uter
/agan Sistem Kom1uter
Deinisi $rogram%$emrograman
Deinisi $rogram%$emrograman

Adalah kum1ulan instruksi8instruksi tersendiri 6ang Adalah kum1ulan instruksi8instruksi tersendiri 6ang
2iasan6a dise2ut sour!e !ode 6ang di2uat oleh 1rogrammer 2iasan6a dise2ut sour!e !ode 6ang di2uat oleh 1rogrammer
91em2uat 1rogram: 91em2uat 1rogram:

Program adalah kum1ulan instruksi atau 1erintah 6ang Program adalah kum1ulan instruksi atau 1erintah 6ang
disusun sedemikian ru1a sehingga mem1un6ai urutan nalar disusun sedemikian ru1a sehingga mem1un6ai urutan nalar
6ang te1at untuk men6elesaikan suatu 1ersoalan. 9Menurut 6ang te1at untuk men6elesaikan suatu 1ersoalan. 9Menurut
P. #nsa1 Santosa: P. #nsa1 Santosa:

#nstruksi 9 #nstruksi 9statement statement: 6ang dimaksud adalah s6ntaG 9!ara : 6ang dimaksud adalah s6ntaG 9!ara
1enulisan: sesuai dengan 2ahasa 1emrograman 6ang 1enulisan: sesuai dengan 2ahasa 1emrograman 6ang
digunakan 6ang mem1un6ai kom1onen8kom1onen : #n1ut, digunakan 6ang mem1un6ai kom1onen8kom1onen : #n1ut,
0ut1ut, Proses, Per!a2angan dan Perulangan. 0ut1ut, Proses, Per!a2angan dan Perulangan.
Bahasa $emrograman
Bahasa $emrograman

Adalah
Adalah
alat
alat
untuk mem2uat 1rogram
untuk mem2uat 1rogram

.ontoh: ., .HH, .I, Pas!al, /asi!, Perl,


.ontoh: ., .HH, .I, Pas!al, /asi!, Perl,
P*P, ASP, )*P, )a4a, dll.
P*P, ASP, )*P, )a4a, dll.

Per2edaan: !ara mem2erikan instruksi


Per2edaan: !ara mem2erikan instruksi

Persamaan: 2ertu7uan menghasilkan


Persamaan: 2ertu7uan menghasilkan
output
output
6ang sama
6ang sama
Siklus &idup $erangkat 'unak
Siklus &idup $erangkat 'unak
(Sot!are)
(Sot!are)

Dilihat dari Struktur Sistem Kom1uter dan Siklus diatas, Dilihat dari Struktur Sistem Kom1uter dan Siklus diatas,
Algoritma Pemrograman menem1ati 1osisi di2agian Algoritma Pemrograman menem1ati 1osisi di2agian
im1lementasi karena 2agian im1lementasi meru1akan 2agian im1lementasi karena 2agian im1lementasi meru1akan 2agian
dimana 1emrogram melakukan 1roses !oding 91em2uatan dimana 1emrogram melakukan 1roses !oding 91em2uatan
1rogram:. 1rogram:.
(lgoritma

(sal kata (lgoritma (algorism #algorithm) berasal dari
nama (bu )a*ar Muhammad ibn Musa (l#
"hu!ari+mi
,lmuan $ersia yang menulis kitab -al jabar !*al#
mu.abala/ (rules o restoration and reduction 0
aturan pemugaran dan pengurangan)
1ahun 234 M
Berasal dari ,ran
Masuk ,ndonesia tahun 5627#an
Deinisi (lgoritma
Deinisi (lgoritma

(lgoritma adalah urutan langkah logis tertentu
untuk memecahkan suatu masalah.

8rutan langkah logis, yang berarti algoritma harus mengikuti suatu


urutan tertentu, tidak boleh melompat#lompat.

(Dari Microsoft Press Computer and nternet Dictionaary !""#,!""$)


(lur pemikiran dalam menyelesaikan suatu
pekerjaan yang dituangkan secra tertulis

(lur pikiran, sehingga algoritma seseorang dapat juga berbeda dari


algoritma orang lain

1ertulis, yang artinya dapat berupa kalimat, gambar, atau tabel


tertentu

%Dari Algoritma dan Stru&tur Data dengan C, C'', dan (a)a ole* Mo*.
S+u&ani *al !
"riteria (lgoritma (Donald 9. "nuth)
"riteria (lgoritma (Donald 9. "nuth)

#n1ut: algoritma da1at memiliki nol atau le2ih in1utan dari luar.

0ut1ut: algoritma harus memiliki minimal satu 2uah out1ut


keluaran.

Deiniteness 91asti:: algoritma memiliki instruksi instruksi 6ang


7elas dan tidak am2igu.

"initeness 9ada 2atas:: algoritma harus memiliki titik 2erhenti


9sto11ing role:.

Eectiveness 9te1at dan e5isien:: algoritma se2isa mungkin


harus da1at dilaksanakan dan e5ekti5. .ontoh instruksi 6ang
tidak e5ekti5 adalah: A F A H > atau A F A J ,
'amun ada 2e2era1a 1rogram 6ang memang diran!ang untuk
unterminata#le: !ontoh Sistem 01erasi
Contoh (lgoritma
Contoh (lgoritma

Algoritma menghitung luas 1ersegi 1an7ang:

Masukkan 1an7ang 9P:

Masukkan le2ar 9L:

Luas PJL

&ulis Luas

Si5at: +mum

&idak menggunakan sim2ol atau sintaks dari


suatu 2ahasa 1emrograman

&idak tergantung 1ada suatu 2ahasa 1emrograman

'otasi8notasin6a da1at digunakan untuk seluruh


2ahasa mana1un
$seudo Code
$seudo Code

Kode atau tanda 6ang men6eru1ai $pseudo%


1rogram atau meru1akan 1e7elasan !ara
men6elesaikan suatu masalah.

Pseudo8!ode sering digunakan oleh manusia


untuk menuliskan algoritma
Contoh
Contoh

Pro2lem: men!ari 2ilangan ter2esar dari dua 2ilangan


6ang diin1utkan

.ontoh Algoritma:

Masukkan 2ilangan 1ertama

Masukkan 2ilangan kedua

)ika 2ilangan 1ertama K 2ilangan kedua maka


ker7akan langkah 4, 7ika tidak, ker7akan langkah (.

&am1ilkan 2ilangan 1ertama

&am1ilkan 2ilangan kedua


$erbandingan
$erbandingan
(lgoritma (lgoritma $seudo#code $seudo#code
#n1utkan A F ( A A H (
#n1utkan / F ,> / / H ,>
Dari dua 2ilangan A dan /, !ari
2ilangan 6ang ter2esar
A K / LL AM /
*asiln6a adalah A le2ih Ke!il *asiln6a adalah A le2ih Ke!il
Dari / Dari /
AM/ AM/
0ut1ut / 0ut1ut / / /
Bagian $rogram
Bagian $rogram

Suatu 1rogram 1ada dasarn6a terdiri dari C 2agian:


#n1ut: 2isa ada, 2isa tidak
Proses
0ut1ut: minimal satu ou1ut.
'angkah $embuatan $rogram
'angkah $embuatan $rogram
Mendeinisikan masalah

#ni meru1akan langkah 1ertama 6ang sering dilu1akan


orang.

Menurut hukum Mur1h6 9oleh *enr6 Ledgard::


&
&
Semakin cepat menulis program, akan semakin
Semakin cepat menulis program, akan semakin
lama kita dapat men'elesaikann'a()
lama kita dapat men'elesaikann'a()

*al terse2ut 2erlaku untuk 1ermasalahan 6ang


kom1leks. &entukan masalahn6a, a1a sa7a 6ang harus
di1e!ahkan dengan menggunakan kom1uter, dan a1a
in1utan serta out1utn6a.
'angkah $embuatan $rogram
'angkah $embuatan $rogram

Setelah masalah dide5inisikan, maka langkah


2erikutn6a adalah menentukan solusi. )ika masalah
terlalu kom1leks, maka ada 2aikn6a masalah terse2ut
di1e!ah men7adi modul8modul ke!il agar le2ih mudah
diselesaikan.

.ontohn6a masalah in4ers matriks, maka kita da1at


mem2agi men7adi 2e2era1a modul:
Menemukan solusi

meminta masukkan 2eru1a matriks 2u7ur sangkar

men!ari in4ers matriks

menam1ilkan hasil ke1ada 1engguna

Dengan 1enggunaan modul terse2ut 1rogram utama


akan men7adi le2ih singkat dan mudah dilihat.
'angkah $embuatan $rogram
'angkah $embuatan $rogram
Memilih algoritma

Pilihlah algoritma 6ang 2enar82enar sesuai dan


e5isien untuk 1ermasalahan terse2ut
Menulis $rogram

Pilihlah 2ahasa 6ang mudah di1ela7ari, mudah


digunakan, dan le2ih 2aik lagi 7ika sudah dikuasai,
memiliki tingkat kom1ati2ilitas tinggi dengan
1erangkat keras dan 1lat5orm lainn6a.
'angkah $embuatan $rogram
'angkah $embuatan $rogram

Setelah 1rogram 7adi, silahkan u7i 1rogram terse2ut dengan


segala ma!am kemungkinan 6ang ada, termasuk error8
handlingn6a sehingga 1rogram terse2ut akan 2enar82enar
handal dan la6ak digunakan.
Menguji program
Menulis dokumentasi

Menulis dokumentasi sangat 1enting agar 1ada suatu saat 7ika


kita akan melakukan 1eru2ahan atau mem2a!a sour!e !ode
6ang sudah kita tulis da1at kita ingat8ingat lagi dan kita akan
mudah mem2a!an6a. .aran6a adalah dengan menuliskan
komentar8komentar ke!il tentang a1a maksud kode terse2ut,
untuk a1a, 4aria2el a1a sa7a 6ang digunakan, untuk a1a, dan
1arameter81arameter 6ang ada 1ada suatu 1rosedur dan
5ungsi.
Algoritma
Algoritma

:ame :
:ame :
8se ;our Mind<=
8se ;our Mind<=
Langkah +se %our Mind
Langkah +se %our Mind
,. ,. = kani2al naik 1erahu ke se2erang kiri = kani2al naik 1erahu ke se2erang kiri
=. =. Pindahkan , kani2al ke se2erang kiri Pindahkan , kani2al ke se2erang kiri
C. C. Perahu kem2ali ke se2erang kanan dgn , kani2al Perahu kem2ali ke se2erang kanan dgn , kani2al
4. 4. +langi langkah ,8C +langi langkah ,8C
(. (. = misionaris naik 1erahu ke se2erang kiri = misionaris naik 1erahu ke se2erang kiri
?. ?. Di se2erang kiri, tukar , kani2al dgn , misionaris di 1erahu Di se2erang kiri, tukar , kani2al dgn , misionaris di 1erahu
A. A. Perahu kem2ali ke se2erang kanan dgn , kani2al dan , misionaris Perahu kem2ali ke se2erang kanan dgn , kani2al dan , misionaris
@. @. Di se2erang kanan, tukar kani2al di 1erahu dgn , misionaris di se2erang Di se2erang kanan, tukar kani2al di 1erahu dgn , misionaris di se2erang
kanan kanan
B. B. Perahu kem2ali ke se2erang kiri dgn = misionaris Perahu kem2ali ke se2erang kiri dgn = misionaris
,>. ,>. &urunkan semua misionaris di 1erahu ke se2erang kiri &urunkan semua misionaris di 1erahu ke se2erang kiri
,,. ,,. Perahu kem2ali ke se2erang kanan dgn , kani2al Perahu kem2ali ke se2erang kanan dgn , kani2al
,=. ,=. +langi langkah ,8C +langi langkah ,8C
,C. ,C. = kani2al naik 1erahu ke se2erang kiri = kani2al naik 1erahu ke se2erang kiri
,4. ,4. &urunkan kedua kani2al ke se2erang kiri &urunkan kedua kani2al ke se2erang kiri

Anda mungkin juga menyukai