Anda di halaman 1dari 43

Algoritma dan

Pemrograman

Pengampu Mata Kuliah


Hadian Mandala Putra, S.Si., M.Kom
Referensi
1. Rinaldi Munir (2011). Algoritma dan Pemrograman dalam Bahasa Pascal dan C. Graha
Ilmu. Yogyakarta.
2. Ljubomir Perkovic (2013). Introduction to Computer Science Using Python: A
Computational Problem-Solving Focus. Wiley. USA.
Sejarah Algoritma

• Asal kata algoritma berasal dari nama Abu Ja’far Mohammed Ibnu Musa Al
Khowarizami, seorang ilmuan Persia yang menulis kitab al jabr w’al-
muqabala (rules of restoration and reduction) sekitar tahun 825 M.
• Kata Al Khowarizmi oleh orang barat dibaca menjadi algorism
• Kata algorism berarti proses menghitung dengan angka arab
• Kata algorism lambat laun menjadi algorithm disebabkan kata algorism
sering dikelirukan dengan kata arithmetic sehingga akhiran –sm berubah
menjadi –thm
• Kata algorithm diserap ke dalam bahasa Indonesia menjadi algoritma
Apa itu Algoritma?

Ada 2 buah gelas. Satu berisi


teh dan satunya berisi kopi.
Bagaimana cara menukar isi
masing-masing-masing gelas?

Ilustrasi
Apa itu Algoritma? (2)
Bagaimana Algoritmanya?
Apa itu
Algoritma ?
(3)
Apa itu Algoritma ? (4)

• Jika seseorang ingin membuat mie rebus, Langkah yang harus dilakukannya
adalah:
Langkah:
• Menyiapkan mie rebus
• Mendidihkan air dalam panci
• Memasukkan mie rebus ke dalam air mendidih
• Memasukkan bumbu
• Setelah matang, mie rebus dipindahkan ke mangkuk untuk dihidangkan
Pengantar Algoritma

Jadi dalam menjalankan algoritma harus:


• Mengerti setiap Langkah dalam algoritma.
• Mengerti setiap operasi yang bersesuaian dengan Langkah tersebut.
• Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam
notasi bahasa pemrograman yang disebut program.
• Jadi program adalah perwujudan atau implementasi teknis algoritma yang
ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan
oleh komputer.
Definisi Algoritma (1)

• Algoritma adalah urutan Langkah-Langkah untuk memecahkan masalah


• Menurut Kamus Besar Bahasa Indonesia (KBBI), algoritma adalah urutan
logis pengambilan keputusan untuk pemecahan masalah
• Algoritma dibuthkan untuk memerintah komputer mengambil Langkah-
Langkah tertentu dalam menyelesaikan masalah.
Definisi Algoritma (2)

• Urutan Langkah-Langkah logis penyelesaian masalah yang disusun secara


sistematis
• Urutan logis pengambilan keputusan untuk pemecahan masalah
• Logis : hasil dari urutan Langkah tersebut harus dapat ditentukan benar
atau salah
• Untuk menjadi sebuah algoritma, urutan Langkah yang ditempuh untuk
menyelesaikan masalah harus memberikan hasil yang benar.
Definisi Algoritma (3)

• Algoritma adalah sekumpulan Langkah-Langkah terbatas untuk mencari


solusi suatu masalah.
• Dalam pemrograman, algoritma didefinisikan sebagai metode yang terdiri
dari Langkah-Langkah terstruktur untuk mencari solusi suatu masalah
dengan bantuan komputer.
Algoritma dalam Kehidupan

• Algoritma adalah jantung ilmu komputer atau informatika


• Banyak cabang dari ilmu komputer yang diacu dalam terminology
algoritma
• Algoritma juga banyak digunakan dlaam kehidupan sehari-hari, contohnya
resep makanan
• Dalam resep makanan terdapat Langkah-Langkah yang merupakan
algoritma. Dalam kehidpan sehari-hari banyak contoh penerapan
algoritma.
Penulisan Algoritma

• Algoritma dapat diekspresikan dalam bahasa manusia, menggunakan


presentasi grafik flowchart (diagram alir) ataupun melalui pseudocode
yang menjembatani antara bahasa manusia dengan bahasa pemrograman.
Penulisan Algoritma (2)

• Bahasa natural (bahasa Indonesia, bahasa inggris dan bahasa manusia


lainnya), sering membingungankan (ambiguous)
• Flowchart : gambar atau symbol yang digunakan untuk menjelaskan
algoritma
• Pseudocode : lebih dekat ke bahasa pemrograman, namun sulit dimengerti
oleh orang yang tidak mengerti pemrograman
Contoh Soal (1)

• Penjumlahan 2 buah bilangan


Untuk menjumlahkan 2 buah bilangan harus diketahui :
1. Besarnya bilangan pertama dan bilangan kedua
2. Rumus menjumlahkan
Jumlah = bilangan 1 + bilangan 2
3. Mencetak hasil penjumlahan
Contoh (continue)

Algoritmanya adalah
• Input x, y
• Jumlah <- x + y
• Cetak Jumlah
Contoh (cont)

Pseudo-code
• Algoritma penjumlahan {menghitung jumlah x dan y, dengan inputan x dan y}
• Deklarasi
x, y, jumlah : integer
• Deskripsi
read (x,y)
jumlah <- x+ y
write(jumlah)
Contoh (cont)

Persoalan Petani, Kambing, Serigala dan Sayur Kubis


Misalkan seorang petani tiba ditepi sungai. Petani tersebut membawa seekor
kambing, seekor serigala, dan sekeranjang sayur kubis. Mereka hendak menyebrangi
sungai. Petani menemukan sebuah perahu kecil dipinggir sungai akan tetapi
sayangnya hanya mampu membawa satu bawaan saja setiap kali menyebrang tentu
saja petani yang mendayung perahunya. Situasinya dipersulit dengan kenyataan
bahwa serigala tidak dapat ditinggal berdua dengan kambing atau serigala akan
memangsa kambing, atau kambing ditinggal dengan sayur kubis atau kambing akan
menghabiskan sayur kubis. Bagaimana algoritma petani dapat menyeberangkan
semua barang bawaannya dengan aman.
Simbol Flowchart
No Simbol Keterangan

1 Start(mulai) dan/atau End (akhir)

2 Input atau output

3 Proses

4 Pemilihan atau percabangan

5 Persiapan

6 Arus data

7 Konektor pada halaman yang sama

8 Sub program

9 Konektor pada halaman yang berbeda


Contoh Flowchart
• Flowchart dari algoritma hitung 2 buah bilangan
Mulai

Deklarasi
Variabel x,y

Masukan
nilai x,y

Hitung Jumlah
Jumlah = x+y

Cetak nilai
jumlah

Selesai
Contoh (2)

Buatlah sebuah algoritma untuk memilih bilangan terkecil dari 3 buah bilangan
Algoritma dalam Bahasa Natural
• Ambil bilangan pertama dan set x dengan bilangan pertama
• Ambil bilangan kedua dan bandingkan dengan x
• Jika bilangan kedua lebih kecil dari x, set x dengan bilangan kedua
• Ambil bilangan ketiga dan bandingakan dengan x
• Jika bilangan ketiga lebih kecil dari x, maka set x dengan bilangan ketiga
• Variabel x berisi bilangan terkecil
• Cetak hasilnya
Contoh (cont)

•Untuk membuat flowchart


dapat melalui draw.io pada
browser
Contoh (cont)

Algoritma dengan pseudo-code

x  bilangan pertama
if (bilangan kedua < x)
x  bilangan kedua
if (bilangan ketiga < x)
x  bilangan ketiga
Output (x)
Domain Algoritma

• Masalah : motivasi untuk membuat algoritma

• Algoritma : prosedur untuk menyelesaikan masalah, seringkali satu masalah dapat


diselesaikan dengan lebih dari satu cara (memiliki banyak kemungkinan solusi)

• Program : representasi formal dari suatu algoritma dengan menggunakan bahasa


pemrograman yang bisa dimengerti oleh komputer.

• Proses: aktivitas menjalankan Langkah-Langkah dalam algoritma


Proses
Penyelesaian
masalah
dengan
Algoritma
Ciri-ciri Algoritma

• Algoritma harus berhenti setelah mengerjakan sejumlah Langkah terbatas


• Setiap Langkah harus didefinisikan dengan tepat dan tidak memiliki dua
arti (ambigu)
• Algoritma memiliki nol atau lebih masukan
• Algoritma memiliki nol atau lebih keluaran
• Algoritma harus efektif
Apa itu Program/Pemrograman?

Definisi
• Kumpulan instruksi-instruksi tersendiri yang biasanya disebut source code
yang dibuat oleh programmer (pembuat program)
• Program adalah realisasi dari algoritma.
Bahasa Pemrograman

• Untuk melaksanakan suatu algoritma diperlukan suatu bahasa


pemrograman, contohnya Pascal, C++, Visual Basic, Python, dll
• Notasi algoritma dapat diterjemahkan ke dalam bahasa pemrograman
apapun, dengan kata lain notasi algoritma bersifat independen
Pemrograman prosedural/terstruktur

• Berdasarkan urutan-urutan, sekuensial


• Program adalah suatu rangkaian prosedur untuk memanipulasi data.
Prosedur merupakan kumpulan instruksi yang dikerjakan secara
berurutan.
• Harus mengingat prosedur mana yang sudah dipanggil dan yang sudah
diubah
• Program dapat dibagi-bagi menjadi prosedur dan fungsi.
• Contoh : Pascal, C
Paradigma
Pemrograman Pemrograman fungsional

• Berdasarkan teori fungsi matematika


• Fungsi merupakan dasar utama program

Pemrograman Modular

• Pemrograman ini membentuk banyak modul


• Modul merupakan kumpulan dari prosedur dan fungsi yang berdiri
sendiri
• Sebuah program dapat memberikan kumpulan modul-modul
Pemrograman berorientasi objek

• Pemrograman berdasarkan prinsip objek, dimana objek


memiliki data/variable/property dan method/event/prosedur
yang dapat dimanipulasi.
• Contoh: Java, C++, Object Pascal

Pemrograman berorientasi fungsi

Paradigma • Pemrograman ini berfokus pada suatu fungsi tertentu saja.

Pemrograman
Sangat tergantung pada tujuan pembuatan bahasa
pemrograman ini.
• Contoh : SQL, HTML, XML

Pemrograman Deklaratif

• Pemrograman ini mendeskripsikan suatu masalah dengan


pernyataan daripada memecahkan masalah dengan
implementasi algoritma
• Contoh : Prolog
Konsep Dasar Pemrograman Komputer
Nilai Data Nilai Data

Data yang diolah


Pusat Pengolahan Data Data hasil pengolahan
(berbasis Arithmatika dan
Masukan
Logika) Keluaran

Penyimpanan Data
Siklus Hidup Pengembangan
Perangkat Lunak
Persyaratan Desain Implementasi Pengujian

• Dilihat dari struktur Sistem Komputer dan siklus diatas, algoritma


pemrograman menempati posisi dibagian implementasi karena
bagian implementasi merupakan bagian dimana pemrogram
melakukan proses coding (pembuatan program).
Klasifikasi Bahasa Pemrograman
Menurut Generasi
• Generasi Pertama (1GL), kode mesin
• Generasi Kedua (2GL), bahasa assembly
• Generasi Ketiga, C, C++, Pascal, Java
• Generasi Keempat, SQL, PL/SQL. ABAP
• Generasi Kelima, Prolog, LISP -> AI

Menurut Tingkatan
• Low-level programming language, 1GL & 2GL
• High-level programming language (HLL), 3GL
• Very High-level programming language (VHLL), 4GL
Mengapa Algoritma ?

• Pembuatan atau Penulisan algoritma tidak tergantung pada bahasa


pemrograman apapun
• Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa
pemrograman
• Apapun bahasa pemrogramannya, keluaran yang dihasilkan akan sama
karena algoritmanya sama.
Syarat Algoritma yang Baik

Tingkat kepercayaannya tinggi (reliability) . 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

Bisa dikembangkan (expandable). Haruslah seuatu yang dapat dikembangkan


lebih jauh berdasarkan perubahan kebutuhan dan persyaratan yang ada
Syarat Algoritma yang Baik

1. Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma anda.
Susah dimengertinya suatu program akan membuat susah di Kelola (maintenance)
2. Potabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai
platform komputer
3. Ketepatan dan ketelitian (precise)
4. Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan
menjalankannya
5. Harus terminate. Jalannya algoritma harus ada kriteria berhenti
6. Keluaran yang dihasilkan tepat
Langkah Pembuatan Program

• Mendefiniskan masalah
a. Kondisi awal, input yang tersedia
b. Kondisi akhir, output yang diinginkan
c. Data lain yang tersedia
d. Operator yang tersedia
e. Syarat atau kendala yang harus dipenuhi
Tahap Penyelesaian Masalah
Bagaimana Algoritma dapat menjadi
program?

Perangkat Perangkat
CPU Keluaran
Masukan

Memori
Belajar Memprogram vs Pemrograman

Belajar memprogram > belajar tentang metodologi pemecahan masalah, Belajar bahasa pemrograman > belajar memakai suatu bahasa, aturan-
kemudian menuangkannya dalam suatu notifikasi tertentu yang mudah aturan tata bahasanya, instruksi-instruksinya, tata cara pengoperasian
dibaca dan dipahami. compiler-nya, dan memanfaatkan instruksi-instruksi tersebut untuk
membuat program yang ditulis hanya dalam bahasa itu saja.
Suatu Algoritma yang terbaik (The Best):
“Suatu algoritma harus menghasilkan output yang tepat guna (efektif)
dalam waktu yang relative singkat & penggunaan memori yang relative
sedikit (efisien) dengan Langkah yang berhingga & prosedurnya
berakhir baik dalam keadaan diperoleh solusi ataupun tidak ada
solusinya.”
Diskusi dan Latihan

1. Buatlah algoritma dengan bahasa natural, flowchart dan pseudo-code


• menghitung luas dan keliling persegi panjang
• Menghitung luas lingkaran dengan masukan berupa jari-jari
• Menampilkan bilangan ganjil dari 1 sampai 10
• Algoritma penggantian ban mobil yang pecah
• Algoritma mengganti ban mobil yang pecah dan ban serep kempes atau
bocor
• Algoritma membeli paket internet lewat ponsel yang ditawarkan oleh
operator seluler yang anda gunakan
Diskusi dan Latihan

2. Dimanakah letak kesalahan algoritma menjalankan sepeda motor


berikut :
Algoritma menjalankan sepeda motor:
- Hidupkan starter
- Masukkan kunci kontak
- Tekan gigi 1
- Perbesar gas
- Jalan

Anda mungkin juga menyukai