2
CPL MATAKULIAH
3
Buku Referensi
4
Sub Capaian Pembelajaran MK
5
Persoalan / Masalah ?
6
Contoh Masalah
“Diberikan setumpuk kartu. Urutkan kartu-kartu
01 tersebut supaya tersusun menaik berdasarkan
nomornya sedemikian sehingga nomor kecil di atas
dan nomor besar di bawah”
7
Masalah Dalam Bentuk Parameter
• [Persoalan pengurutan] Diberikan sebuah senarai (list) S yang berisi n buah nilai.
Urutkan S sehingga tersusun dalam urutan menaik!
• [Persoalan pencarian] Diberikan sebuah senarai (list) S yang berisi n buah nilai.
Apakah sebuah nilai x terdapat di dalam S?
• [Persoalan mencari nilai terbesar] Diberikan sebuah senarai (list) S yang berisi n buah nilai.
Carilah nilai terbesar di dalam S!
• [Persoalan menghitung luas persegi panjang] Diberikan sebuah persegi panjang
dengan panjang a dan lebar b (keduanya dalam satuan meter).
Hitung luas persegi panjang tersebut.
Setiap persoalan umumnya mengandung satu atau lebih parameter. Pemberian nilai untuk
semua parameter persoalan dinamakan instansiasi persoalan, dan jawaban terhadap
instansiasi persoalan disebut solusi.
8
Masalah Dalam Bentuk Parameter
S = [15,4,8,11,2,10,19], n = 7
Sebelum terurut
15 4 8 11 2 10 19
Setelah terurut
2 4 8 10 11 15 19
9
Sejarah Algorithm
Al Khawarizmi
ahli matematika, astronomi
10/4/23 10
Algorithm
l Definisi :
¡Urutan langkah-langkah untuk memecahkan masalah yang
disusun secara sistematis dan logis.
¡Kamus Besar Bahasa Indonesia:
Algoritma adalah urutan logis pengambilan putusan untuk
pemecahan masalah.
11
Contoh Algorithm (Kartu)
1. Cari kartu dengan nomor terkecil, taruh kartu tersebut pada posisi
paling atas.
2. Cari kartu dengan nomor terkecil kedua, taruh kartu tersebut pada
posisi kedua dari atas.
3. Cari kartu dengan nomor terkecil ketiga, taruh kartu tersebut
pada posisi ketiga dari atas.
4. …. Demikian seterusnya sampai tersisa satu kartu saja (tidak perlu
diurutkan lagi)
12
Contoh Algorithm (Kartu)
1. Cari kartu dengan nomor terkecil di antara kartu yang tersisa.
2. Taruh kartu tersebut pada posisi yang tepat.
3. Ulangi kembali dari langkah 1 dan 2 sampai tersisa satu kartu
saja.
13
Contoh Algorithm (Pertukaran Isi Gelas)
• Tinjau sebuah masalah sederhana yakni mempertukarkan isi dari dua buah gelas.
Gelas A berisi air kopi dan gelas B berisi air susu.
• Kita ingin mempertukarkan isi kedua gelas itu sedemikian sehingga gelas A akan berisi
air susu dan gelas B berisi air kopi
14
Algorithm pertukaran isi gelas (solusi)
15
Algoritma Persoalan Mengambil Air 4 Liter
16
Algoritma Pertukaran isi Gelas
• Isi Penuh ember 3-liter dengan air.
• Tuangkan air dari ember 3-liter ke dalam ember 5 liter. {ember 5 liter sekarang berisi 3 liter
air}.
• Isi penuh ember 3 liter dengan air. {ember 3 liter berisi 3 liter air}
• Tuangkan air dari ember 3 liter ke dalam ember 5 liter hingga penuh.
{di dalam ember 3 liter sekarang tersisa 1 liter air}
• Buang seluruh air dari ember 5 liter. {ember 5 liter kosong}
• Tuangkan air dari ember 3 liter ke dalam ember 5 liter. {ember 5 liter sekarang berisi 1 liter
air}
• Isi penuh ember 3 liter dengan air. {ember 3 liter berisi 3 liter air}
• Tuangkan air dari ember 3 liter ke dalam ember 5 liter.
{ember 5 liter sekarang berisi 1+3= 4 liter air}
17
Karakteristik Algoritma
• Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
• Setiap langkah harus didefinisikan dengan tepat dan tidak
boleh berarti dua (ambiguous).
Contoh pernyataan “bagilah p dengan sejumlah beberapa buah bilangan bulat positif”
dapat bermakna ganda.
Berapakah yang dimaksud dengan beberapa ? akan lebih jelas jika algoritma
tersebut ditulis “bagilah p dengan 10 buah bilangan bulat positif”
• Algoritma memiliki nol atau lebih masukan (input).
• Algoritma mempunyai nol atau lebih luaran (output).
• Algoritma harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat
dikerjakan dalam sejumlah waktu yang masuk akal
18
syarat algoritma yang benar
19
syarat algoritma yang benar
20
syarat algoritma yang benar
l Efektif
Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang
Akan menjalankannya.
l Harus terminate
Jalannya algoritma harus ada kriteria berhenti
l Output yang dihasilkan tepat
21
Program dan Pemrograman
22
Program dan Pemrograman
23
Program dan Pemrograman
24
Piranti Unit
masukan dan Pemroses Memori
keluaran Utama (CPU)
25
Bahasa Pemrograman
• Hingga saat ini terdapat puluhan bahasa pemrograman seperti:
bahasa Assembly, Fortran, Cobol, Ada, PL/I, Algol, Pascal, Basic, C,
C++, C#, Java, R, Arduino, PHP, Prolog, LISP, Phyton, dll
• Berdasarkan tujuan aplikasinya terdapat 2 jenis:
a. Bahasa pemrograman bertujuan khusus; misal Cobol (untuk bisnis
dan administrasi), Fortran (komputasi ilmiah), PHP(untuk
pemrograman web), dll
b. Bahasa pemrograman bertujuan umum; dapat digunakan untuk
berbagai aplikasi, contoh Pascal, Basic, C, C++, C#, Java.
• Berdasarkan “kedekatan” bahasa pemrograman dengan bahasa
alami (manusia) dikelompokkan menjadi:
a. Bahasa tingkat rendah (low level language)
b. Bahasa tingkat tinggi (high level language)
26
Algoritma
Translasi
Kompilasi
Contoh:
Menghitung rata-rata tiga buah data
Algoritma dengan struktur bahasa Indonesia:
1) Baca bilangan a, b, dan c
2) Jumlahkan ketiga bilangan tersebut
3) Bagi jumlah tersebut dengan 3
4)Tulis hasilnya
28
Notasi 2: Menggunakan bagan alir (flowchart)
Notasi Algoritma
29
Notasi Algoritma
Contoh:
Menghitung Luas persegi panjang
10/4/23 30
Notasi Algoritma
Notasi 3: Menggunakan
pseudocode
Contoh:
Menghitung Luas persegi panjang
10/4/23 31
Pemrograman Prosedural
Prosedur menurut KBBI:
1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas.
2. Metode langkah demi langkah secara eksak dalam memecahkan
suatu masalah.
10/4/23 32
LATIHAN
1. Perhatikan persoalan petani, kambing, serigala,
dan sayur kubis.
33
LATIHAN
34
LATIHAN
35
1. Petani menyebrangkan kambing dari sisi A ke sisi B
{sisi A: (-,S,-,Y) sisi B: (P,-,K,-)
2. Petani menyeberang kembali dari B ke A
{sisi A: (P,S,-,Y) sisi B: (-,-,K,-)}
3. Petani menyeberangkan serigala dari sisi A ke B
{sisi A: (-,-,-,Y) sisi B: (P,S,K,-)}
4. Petani menyebrangkan kambing dari sisi B ke A
{sisi A: (-,-,-,Y) sisi B: (P,S,K,-)}
5. Petani menyebrangkan sayur dari sisi A ke B
6. Petani menyebrang sendiri dari B ke A
7. Petani menyebrangkan kambing dari sisi A ke B
36
Kesimpulan
• Untuk memahami apa itu algoritma terlebih dahulu kita harus memahami
persoalan.
• Algoritma adalah urutan langkah-langkah untuk menyelesaikan suatu persoalan
• Algoritma memiliki beberapa karakteristik supaya dapat disebut sebagai
algoritma yang baik.
• Algoritma yang ditulis dalam bahasa komputer dinamakan program dan kegiatan
mulai dari mendesain hingga menulis program dinamakan pemrograman.
• Bahasa pemrograman menurut tujuan aplikasinya dapat dibedakan menjadi bahasa
pemrograman yang bertujuan khusus dan umum sedangkan menurut kedekatan
dengan bahasa manusia dibagi menjadi bahasa tingkat rendah dan bahasa tingkat
tinggi.
• Notasi algoritma dapat dituliskan menggunakan kalimat deskriptif, pseudocode, dan
flowchart
37
Referensi
1. Inggriani Liem, Diktat Kuliah IF223 Algoritma Dan Pemrograman, Jurusan Teknik Informatika
Bandung, 1999
2. Rinaldi Munir, Algoritma dan Pemrograman, edisi ke-3, penerbit Informatika 2004
3. Normark, Kurt. Overview of the four main programming paradigms.
http://people.cs.aau.dk/ ~normark diakses tanggal 12 September 2013.
4. http://www.haskell.org/haskellwiki/Functional_programming diakses tanggal
14/09/2013
5. http://en.wikipedia.org/wiki/Functional_programming , diakses
tanggal 14/09/2013
6. Denis Sureau, History and Evolution of Programming Languages,
http://www.scriptol.com/programming/history.php diakses tanggal 17/09/2013
38
THANK YOU
Darsono Nababan S.Kom.,M.Kom.