Anda di halaman 1dari 40

Pengantar Algoritma dan

Pemrograman
ALGORITMA DAN PEMROGRAMAN
[IS6110102]

Dosen:
Yudha Saintika, S.T., M.T.I
Sisilia Thya Safitri, S.T.,M.T
Let Me Introduce Myself: Yudha Saintika
• Born in Purwokerto – Central Java, December 21, 1989, married.

• IT Operation Team Leader – PT. Datacomm Diangraha, Jakarta (2012-2017)


• Lecturer – Information System, IT Telkom Purwokerto (2017-Now)
• IT Consultant – Huyula Asri Indonesia, Gorontalo (2015-Now)

• Master of Information Technology – University of Indonesia, Jakarta (2016)


• Bachelor of Informatics Engineering – Telkom University, Bandung (2011)

• Oracle Certified Professional – MySQL 5 Developer


• Oracle Certified Expert – Database SQL
• Oracle Certified Associate – Java SE 7 Developer
• Microsoft Certified Solution Associate – Windows Server 2012, Windows 7

• Contact Me on: 085624467025


• Send Me email to: yudha@ittelkom-pwt.ac.id
CAPAIAN PEMBELAJARAN MATA KULIAH

“Setelah mengikuti mata kuliah Algoritma dan Pemrograman,


Mahasiswa S1 Informatika mampu membuat algoritma dalam
bentuk pseudocode dan flowchart serta membangun program
untuk menyelesaikan permasalahan yang sederhana/mudah.”
Kontrak Perkuliahan
• UTS = 25%
• UAS = 25%
•Tugas = 20%
• Presensi = 10%
• Kuis =10%
•Keaktifan = 10%
•Keterlambatan maksimal 15 menit. Lebih dari itu boleh masuk
tetapi tidak di absen
•Tidak makan/minum di dalam kelas
•Tidak membuka laptop kecuali diminta
Kontrak Praktikum
• Pre Test = 10%
• Post Test = 30%
• Laporan = 25%
• Tugas = 25%
• Kehadiran = 10%
• Keterlambatan maksimal 15 menit. Lebih dari 15 menit, boleh ikut
praktikum tetapi tidak di absen
• Plagiat  dilihat dari waktu pengumpulan. Jika waktu pengumpulan
sama, maka nilai dibagi sejumlah mahasiswa yang sama
• Laporan di ketik sesuai dengan format yang telah di tentukan
Buku Referensi
Pustaka Wajib: Pustaka Penunjang:
Sub-Capaian Pembelajaran MK

“Mahasiswa mampu menjelaskan dasar-


dasar algoritma dan pemrograman.”
Persoalan/Masalah
Persoalan/Masalah
• [KBBI] “Sesuatu yang harus diselesaikan (dipecahkan)”
• [Neopolitan (1996)] “Pertanyaan atau tugas yang harus dicari
jawabannya”
Contoh Persoalan/Masalah
• “Diberikan setumpuk kartu. Urutkan kartu-kartu tersebut supaya
tersusun menaik berdasarkan nomornya sedemikian sehingga nomor
kecil di atas dan nomor besar di bawah”

• “Diberikan sebuath tabel berisi peserta ujuan yang lulus seleksi.


Apakah ada peserta ujian dengan nomor X di dalam daftar
tersebut?”

• “Diberikan sebuah senarai (list) yang berisi daftar kota-kota di dunia


dengan temperature udaranya saat ini. Tentukan kota dengan
temperature tertinggi.”

• “Diketahui sebidang tanah berbentuk persegi panjang dengan


panjang dan lebar tertentu (dalam satuan meter). Hitunglah luas
tanah tersebut!”
Persoalan/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.
Persoalan/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
Sejarah Algoritma

• Algoritma adalah jantung ilmu


computer/informatika
• Algoritma berasal dari kata algorism
yang artinya proses menghitung
dengan angka arab.
• Perubahan kata algorism menjadi
algorithm muncul karena kata
algorism sering dikelirukan dengan
arithmetic, sehingga akhiran –sm
berubah menjadi -thm

Al Khawarizmi
ahli matematika, astronomi
Algoritma
 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.

 Algoritma dibutuhkan untuk memerintah komputer


mengambil langkah-langkah tertentu dalam
menyelesaikan masalah.
Algoritma Persoalan 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)
Algoritma Persoalan 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)
Algoritma Persoalan Kartu (2)
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.
Algoritma 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
Algoritma Pertukaran isi Gelas - Solusi
Algoritma Persoalan Mengambil Air 4 Liter

Kita diperintahkan untuk mendapatkan air


sebanyak 4 liter (tidak kurang tidak lebih) dari
sebuah danau. Sedangkan kita hanya
punya alat dua buah ember masing-masing
berkapasitas 5 liter dan 3 liter. Nah,
bagaimana caranya mendapatkan air 4 liter
dengan tepat tanpa menggunakan alat
lain maupun hanya mengira-ira.
Algoritma Pertukaran isi Gelas
• Isi Penuh ember 3-liter dengan air.
• Tuangkan air dari ember 3-liter ke dalam ember 5 liter. {ember
5liter 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}
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 ditulus “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
Syarat Algoritma Baik?
 Tingkat kepercayaannya tinggi (realibility) Hasil yang
diperoleh dari proses harus berakurasi tinggi dan
benar.
 Pemrosesan yang efisien (cost rendah)
Proses harus diselesaikan secepat mungkin dan
frekuensi kalkulasi yang sependek mungkin.
 Sifatnya general
Bukan sesuatu yang hanya untuk menyelesaikan satu
kasus saja, tapi juga untuk kasus lain yang lebih
general.
Syarat Algoritma Baik? (2)
 Bisa dikembangkan (expandable)
Haruslah sesuatu yang dapat kita kembangkan lebih
jauh berdasarkan perubahan requirement yang ada.
 Mudah dimengerti
Siapapun yang melihat, dia akan bisa memahami
algoritma Anda. Susah dimengertinya suatu program
akan membuat susah di-maintenance (kelola).
 Portabilitas yang tinggi (portability)
Bisa dengan mudah diimplementasikan di berbagai
platform komputer.
 Precise (tepat, betul, teliti)
Syarat Algoritma Baik? (3)
 Efektif
Tidak boleh ada instruksi yang tidak mungkin dikerjakan
oleh pemroses yang akan menjalankannya.
 Harus terminate
Jalannya algoritma harus ada kriteria berhenti.
 Output yang dihasilkan tepat.
Program dan Pemrograman

• Algoritma baru efektif jika dilaksanakan oleh sebuah pemroses


(processor). Pemroses itu bisa manusia, komputer, robot, mesin, dsb.
• Supaya komputer mengerti instruksi yang dibacanya, maka instruksi
tersebut harus ditulis dalam bahasa yang dipahami oleh komputer.
• Algoritma yang ditulis dalam bahasa komputer disebut program.
• Bahasa komputer yang digunakan untuk menulis program disebut
bahasa pemrograman, sedangkan orang yang menulis program
computer dinamakan pemrogram (programmer). Kegiatan mulai dari
mendesain hingga menulis program disebut pemrograman.
Program dan Pemrograman

Belajar Pemrograman ≠
Belajar Bahasa Pemrograman
Program dan Pemrograman
Bagaimana Komputer Menjalankan Program?

Piranti Unit
masukan dan Pemroses Memori
keluaran Utama (CPU)
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)
Tahapan Pelaksanaan Program oleh Komputer

Algoritma

Translasi

Program dalam Bahasa Tingkat


Tinggi

Kompilasi

Program dalam Bahasa Tingkat


Rendah

Interpretasi oleh CPU

Operasi (baca, tulis, hitung, dsb)


Notasi Algoritma
Notasi 1: Menggunakan langkah-langkah algoritma dalam kalimat
deskriptif

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
Notasi Algoritma (2)
Notasi 2: Menggunakan bagan alir (flowchart)
Notasi Algoritma (3)
Notasi 2: Menggunakan bagan alir (flowchart)

Contoh:
Menghitung Luas persegi panjang
Notasi Algoritma (4)
Notasi 3: Menggunakan pseudocode

Contoh:
Menghitung Luas persegi panjang
Pemrograman Prosedural
• Prosedur menurut KBBI:
1. Tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas.
2. Metode langkah demi langkah secara eksak dalam memecahkan suatu
masalah.

• Pada pemrograman prosedural, program dibedakan antara bagian data


dan bagian instruksi.
• Selain paradigma pemrograman prosedural, paradigma pemrograman
yang popular saat ini adalah pemrograman berorientasi objek (OOP).
Pada paradigma ini data dan instruksi dibungkus menjadi satu (kelas).
Latihan
1. Perhatikan persoalan petani, kambing, serigala, dam sayur kubis.

Ada seorang petani yang membawa seekor kambing,


seekor serigala, dan sekeranjang sayur. Mereka
berada di tepi sebuah pulau dan ingin menyebrang
ke pulau seberang. Di tepi pulau itu hanya ada
sebuah perahu yang cukup untuk dua penumpang.
Situasinya dipersulit dengan kenyataan
bahwa kambing tidak boleh ditinggal berdua dengan
serigala tanpa adanya petani karena serigala akan
memakan kambing, kemudian kambing tidak boleh
ditinggal bersama sayur, karena kambing akan
memakan sayurnya. Kemudian, yang bisa
menggunakan perahu hanyalah petani. Bagaimana
caranya agar mereka semua bisa menyebrang ke
pulau seberang dengan utuh?
Latihan
2. Buatlah algoritma menggunakan flowchart untuk menghitung luas
lingkaran!
3. Buatlah algoritma menggunakan pseudocode untuk menentukan
bilangan yang diinput adalah bilangan ganjil/genap!
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

Anda mungkin juga menyukai