Anda di halaman 1dari 39

• Algoritma merupakan pondasi yang harus dikuasai

mahasiswa yang ingin menyelesaikan masalah secara


terstruktur, efektif, dan efisien, khususnya untuk
mahasiswa yang ingin menyusun program komputer
untuk menyelesaikan persoalan tertentu.
Definisi
• Teknik penyusunan langkah-langkah penyelesaian
masalah dalam bentuk kalimat dengan jumlah
terbatas tetapi tersusun secara logis dan sistematis.
• Suatu prosedur yang jelas untuk menyelesaikan
suatu persoalan denga menggunakan langkah-
langkah tertentu dan terbatas jumlahnya.
• Susunan langkah yang pasti, yang bila diikuti maka
akan mentransformasikan data input menjadi output
yang berupa informasi.
• Abu Ja’far Muhammad Ibnu Musa Al-Kwarizmi
• Ahli matematika dan astronomi dari Persia.
• Penulis buku “Aljabar wal muqabala”.
• Alkwarizmi, Algorism, Algorithm
Algoritma
• Adalah inti dari ilmu komputer.
• Algoritma adalah urutan langkah-
langkah logis penyelesaian masalah
yang disusun secara sistematis dan
logis.
Algoritma

• Kata logis merupakan kata kunci dalam algoritma.


• Algoritma adalah urutan-urutan dari instruksi atau
langkah-langkah untuk menyelesaikan suatu masalah.
• Urutan langkah logis, yang berarti algoritma harus
mengikuti suatu urutan tertentu, tidak boleh
melompat-lompat.
Algoritma

• Alur pemikiran dalam menyelesaikan suatu


pekerjaan yang dituangkan secara tertulis.
 Alur pikiran, sehingga algoritma
seseorang dapat juga berbeda dari
algoritma orang lain.
 Tertulis, yang artinya dapat berupa
kalimat, gambar, atau tabel tertentu.
Algoritma

⚫ Langkah-langkah dalam
algoritma harus dapat
ditentukan bernilai benar
atau salah.
Algoritma

• Algoritma adalah blueprint dari program.


• Sebaiknya disusun sebelum membuat
program.
• Kriteria suatu algoritma:
– Ada input dan output
– Efektif dan efisien
– Terstruktur
Algoritma Dalam Kehidupan
• Algoritma adalah jantung ilmu komputer atau
informatika. Banyak cabang ilmu komputer yang
diacu dalam terminologi algoritma.
• Algoritma juga digunakan dalam kehidupan
sehari-hari, contohnya resep makanan. Di dalam
resep makanan terdapat langkah-langkah yang
merupakan algoritma.
Algoritma dalam Kehidupan
Algoritma dalam Kehidupan
Kriteria Algoritma

• Input: algoritma dapat memiliki nol atau


lebih inputan dari luar.
• Output: algoritma harus memiliki minimal
satu buah output keluaran.
• Definiteness(pasti): algoritma memiliki
instruksi-instruksi yang jelas dan tidak
ambigu.
Kriteria Algoritma
• Finiteness (ada batas): algoritma harus
memiliki titik berhenti (stopping role).
• Effectiveness(tepat dan efisien): algoritma
sebisa mungkin harus dapat dilaksanakan
dan efektif. Contoh instruksi yang tidak
efektif adalah: A = A + 0 atau A = A * 1
Jenis Proses Algoritma
• Sequence Process: instruksi dikerjakan secara
sekuensial, berurutan.
• Selection Process: instruksi dikerjakan jika
memenuhi kriteria tertentu
• Iteration Process: instruksi dikerjakan selama
memenuhi suatu kondisi tertentu.
• Concurrent Process: beberapa instruksi
dikerjakan secara bersama.
Sifat Algoritma (Umum)
• Tidak menggunakan simbol atau sintaks dari
suatu bahasa pemrograman
• Tidak tergantung pada suatu bahasa
pemrograman
• Notasi-notasinya dapat digunakan untuk
seluruh bahasa manapun
Contoh Algoritma 1
Mengirim surat kepada teman :
1. Tulis surat pada secarik kertas surat.
2. Ambil sampul surat.
3. Masukkan surat ke dalam sampul.
4. Tutup sampul surat menggunakan perekat.
5. Jika kita ingat alamat teman tersebut, maka
tulis alamat pada sampul surat.
6. Jika tidak ingat, lihat buku alamat, kemudian
tulis alamat pada sampul surat.
7. Tempel perangko pada surat.
8. Bawa surat ke kantor pos untuk diposkan.
Contoh Algoritma 2
Mengupas Kentang untuk Makan Malam :
▪ Ibu Tati mengambil kantong kentang dari rak
▪ Ibu Tati mengambil panci dari almari
▪ Ibu Tati mengupas kentang
▪ Ibu Tati mengembalikan kantong kentang dari rak
Contoh Algoritma 2 (lanjutan)

Ada hal yang “tergantung”pada sesuatu :


• Ibu Tati mengambil kantong kentang dari rak
• Ibu Tati mengambil panci dari almari
• Lakukan persiapan, gunakan celemek, pakaian
tergantung hari
➢Ibu Tati mengupas kentang
➢Ibu Tati mengembalikan kantong kentang dari rak
Kondisi – dari Alg. 2
• Hari Sabtu :
“Ibu Tati melihat bahwa bajunya tidak berwarna
muda karena itu ia tidak memakai celemek”(berarti
tidak ada aksi memakai celemek)
• Hari Minggu:
“Ibu Tati melihat bahwa bajunya berwarna muda
karena itu ia memakai celemek”
Kondisi – dari Alg. 2
• Jadi:
→ Ambil kantong kentang dari rak
→ Ambil panci dari almari
→ Depend on warna baju
 berwarna muda : Pakai celemek
 tidak berwarna muda : Tidak pakai celemek
→ Kupas kentang
→ Kembalikan kantong kentang ke rak
Kondisi – dari Alg. 2

Karena dapat pesanan, maka kentang yg harus


dikupas 500 buah

➢tergantung pada jumlah kentang yang sudah dikupas


▪ belum cukup : Kupas 1 kentang
▪ cukup : selesai
Atau:
➢while jumlah kentang terkupas belum cukup do
▪ Kupas 1 kentang
Kondisi – dari Alg. 2
Bisa jadi pada saat mengupas kentang tergantung pada
kentangnya, jika rusak / busuk, buang, tidak dikupas

Jadi:
➢ Jika jumlah kentang terkupas belum cukup do
➢ Tergantung pada kondisi kentang
▪ Busuk: buang dan cari kentang berikutnya, tidak dihitung
▪ Tidak Busuk: kupas 1 kentang
Contoh Algoritma 3
Menentukan apakah suatu bilangan merupakan
bilangan ganjil atau bilangan genap.
• Masukkan sebuah bilangan sembarang
• Bagi bilangan tersebut dengan bilangan 2
• Hitung sisa hasil bagi pada langkah 2.
• Bila sisa hasil bagi sama dengan 0 maka bilangan itu adalah
bilangan genap tetapi bila sisa hasil bagi sama dengan 1
maka bilangan itu adalah bilangan ganjil.
Contoh 4

Algoritma menghitung luas persegi panjang:


• Masukkan panjang (P)
• Masukkan lebar (L)
• Luas ←P * L
• Tulis Luas
Pseudo Code

• Kode atau tanda yang menyerupai (pseudo)


program atau merupakan pejelasan cara
menyelesaikan suatu masalah.
• Pseudo-code sering digunakan oleh manusia untuk
menuliskan algoritma
Contoh
Problem :
mencari bilangan terbesar dari dua bilangan yang diinputkan
Contoh Algoritma :
• Masukkan bilangan pertama
• Masukkan bilangan kedua
• Jika bilangan pertama > bilangan kedua maka kerjakan
langkah 4, jika tidak, kerjakan langkah 5.
• Tampilkan bilangan pertama
• Tampilkan bilangan kedua
Contoh

Contoh Pseudo-code:
• Input a
• Input b
• If a > b then kerjakan langkah 4
• print a
• print b
Perbandingan
Algoritma Pseudo-code
Nilai A ditambah dengan 5 A ←A + 5
Cetak nilai A bila lebih besar dari 10 IF A > 10 THEN PRINT A
Dari dua bilangan A dan B, cari bilangan IF A > B THEN PRINT A ELSE PRINT
yang terbesar B
Bagian Program

Suatu program pada dasarnya terdiri dari 3 bagian:


• Input: bisa ada, bisa tidak
• Proses
• Output: minimal satu ouput.
• Algoritma mempunyai awal dan akhir.
• Setiap langkah harus didefinisikan dengan tepat,
sehingga tidak memiliki arti ganda.
• Memiliki masukan
• Memiliki keluaran
• Algoritma harus efisien, bila diikuti dengan benar
dapat menyelesaikan masalah.
Membuat Kue
• Campurkan 200 gram gula, 400 gram terigu, dan
5 butir telur, kemudian diaduk hingga menjadi
adonan.

Menggunakan pesawat televisi


• Pastikan kabel power sudah disambungkan ke
sumber listrik, kemudian tekan tombol “power”.
Langkah Pembuatan Program
Mendefinisikan masalah
• Ini merupakan langkah pertama yang sering dilupakan
orang.
• Menurut hukum Murphy (oleh Henry Ledgard):
“Semakin cepat menulis program, akan semakin lama
kita dapat menyelesaikannya”.
• Hal tersebut berlaku untuk permasalahan yang
kompleks. Tentukan masalahnya, apa saja yang harus
dipecahkan dengan menggunakan komputer, dan apa
inputan serta outputnya.
Langkah Pembuatan Program
Menemukan solusi
• Setelah masalah didefinisikan, maka langkah berikutnya adalah
menentukan solusi. Jika masalah terlalu kompleks, maka ada
baiknya masalah tersebut dipecah menjadi modul-modul kecil agar
lebih mudah diselesaikan.
• Contohnya masalah invers matriks, maka kita dapat membagi
menjadi beberapa modul :
1. meminta masukkan berupa matriks bujur sangkar
2. mencari invers matriks
3. menampilkan hasil kepada pengguna
• Dengan penggunaan modul tersebut program utama akan menjadi
lebih singkat dan mudah dilihat.
Langkah Pembuatan Program

Memilih algoritma
• Pilihlah algoritma yang benar-benar sesuai dan
efisien untuk permasalahan tersebut
Menulis program
• Pilihlah bahasa yang mudah dipelajari, mudah
digunakan, dan lebih baik lagi jika sudah dikuasai,
memiliki tingkat kompatibilitas tinggi dengan
perangkat keras dan platform lainnya.
Langkah Pembuatan Program
Menguji program
• Setelah program jadi, silahkan uji program tersebut dengan segala
macam kemungkinan yang ada, termasuk error-handlingnya
sehingga program tersebut akan benar-benar handal dan layak
digunakan.
Menulis dokumentasi
• Menulis dokumentasi sangat penting agar pada suatu saat jika kita
akan melakukan perubahan atau membaca source code yang
sudah kita tulis dapat kita ingat-ingat lagi dan kita akan mudah
membacanya. Caranya adalah dengan menuliskan komentar-
komentar kecil tentang apa maksud kode tersebut, untuk apa,
variabel apa saja yang digunakan, untuk apa, dan parameter-
parameter yang ada pada suatu prosedur dan fungsi.
Langkah Pembuatan Program
(Lanjutan)
Merawat program
• Program yang sudah jadi perlu dirawat untuk mencegah
munculnya bug yang sebelumnya tidak terdeteksi. Atau mungkin
juga pengguna membutuhkan fasilitas baru yang dulu tidak ada
Struktur Dasar Algoritma
Struktur dasar algoritma ada tiga, yaitu :
1. Sequence Structure (struktur runtunan)
Digunakan untuk program yang instruksinya
sequential/urutan.
2. Selection Structure (struktur percabangan)
Digunakan untuk program yang menggunakan
pilihan/penyeleksian kondisi.
3. Repetition Structure (struktur perulangan)
Digunakan untuk program yang instruksinya akan
dieksekusi berulang-ulang.
Buatlah flowchart dan program (Pilih 2
dari Sembilan soal yang ada)
1. Menghitung rata-rata dari lima bilangan yang
diinputkan (10)
2. Mengkonversi suhu derajat Celcius ke dalam
derajat Kelvin (10).
3. Mengkonversi suhu derajat Kelvin ke dalam derajat
Celcius (10).
4. Mengkonversi Jam ke dalam menit (10),
5. Jam ke detik (10)
6. Detik ke Jam (10)
7. Detik ke Menit (10)
8. Menghitung luas segitiga (10)
9. Menghitung jumlah deret : 1+2+3+4+…..+N (20)

Anda mungkin juga menyukai