Anda di halaman 1dari 42

Dasar algoritma

Pertemuan #1
Asal usul algoritma
• Algoritma ditemukan oleh Abu Ja’far
Muhammad Ibnu Musa Al-
Khawarizmi.

• Seorang ahli matematika,


astronomi, astrologi, dan juga
geografi.

• Menulis buku “Hisab al Jibra wal


muqabalah”.
Al-Khawarizmi -> Algorism -> Algoritma

• Algoritma adalah urutan langkah-langkah/instruksi/aksi


yang terbatas, logis, dan sistematis, yang digunakan untuk
menyelesaikan suatu permasalahan.

• Algoritma adalah bentuk/pola/cara/ilmu yang mampu


menerjemahkan bahasa manusia kedalam bahasa
koding/pemrograman.
Bagaimana menukarkan isi gelas A ke B
dan sebaliknya?

A B

C
Bagaimana menukarkan isi gelas A ke B
dan sebaliknya?
Urutannya adalah:
1. Pindahkan isi gelas A (kopi) ke
A B
gelas C (kosong)
2. Pindahkan isi gelas B (teh)
langsung ke gelas A (kosong)
3. Pindahkan isi gelas C (kopi) ke
gelas B (kosong)
C
Algoritma Tukar_Isi_Gelas
Deklarasi
• Terdapat 2 gelas (A & B), gelas A berisi kopi dan gelas B berisi
Teh
• Siapkan gelas tambahan, yakni gelas C, untuk penampungan
sementara

Deskripsi (penyelesaian)
• Tuangkan isi gelas A ke gelas C
• Tuangkan isi gelas B ke gelas A
• Tuangkan isi gelas C ke gelas B
Contoh lain
Jika seseorang ingin mengirim surat kepada
kenalannya di tempat lain, langkah yang harus
dilakukan adalah:
1. Menyiapkan alat tulis
2. Menulis surat
3. Surat dimasukkan ke dalam amplop
4. Amplop ditempel perangko secukupnya
5. Pergi ke kantor pos untuk mengirimkannya
Syarat-syarat keutuhan algoritma
– Finiteness (keterbatasan) : algoritma harus memiliki
titik berhenti (stopping role)
– Definiteness (kepastian): algoritma memiliki instruksi2
yg jelas & tidak ambigu.
– Input (masukan): algoritma dapat memiliki nol atau
lebih inputan dari luar
– Output (keluaran): algoritma harus memiliki minimal
satu buah output keluaran.
– Efficient (efisiensi): algoritma sebisa mungkin harus
dapat dilaksanakan & efektif.
Hal-hal yg perlu diperhatikan
Algoritma dapat ditulis dalam notasi apapun asal mudah
dipahami

Tidak ada notasi baku


Penulisan dianjurkan utk berkorespondensi dg notasi
bahasa pemrograman secara umum
Notasi algoritmik bukan notasi bahasa pemrograman, maka
pseudo code tdk dpt dijalankan oleh komputer

Algoritma digunakan utk membantu dlm mengkonversikan


permasalahan ke bahasa pemrograman

Merupakan hasil pemikiran konseptual


Definisi program
• Program  kumpulan instruksi atau perintah yg
disusun sedemikian rupa sehingga mempunyai urutan
nalar yang tepat untuk menyelesaikan suatu persoalan.

• Bahasa pemrograman  Alat untuk membuat


program.
• Contoh: C, C++, C#, Pascal, Basic, Java, PHP, dll.

• .
Beda algoritma & program?
• Program adalah kumpulan pernyataan komputer,
sedangkan metode & tahapan sistematis dalam
program adalah algoritma.

• Formula:
Program = Algoritma + Bahasa (Struktur Data)
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.
Penyajian algoritma
• Tulisan : struktur bahasa tertentu & pseudo code
• Gambar: flowchart
Penulisan algoritma
• Bahasa Natural/sehari2
– Menyajikan algoritma dalam bahasa sehari-hari, cukup
dijabarkan saja proses algoritmanya. Contoh: Menghitung
luas persegi panjang
• Mulai
• Masukkan nilai Panjang persegi panjang
• Masukkan nilai Lebar persegi panjang
• Hitung luasnya, Luas = Panjang X Lebar
• Tampilkan hasil perhitungan Luas
• Selesai
• Pseudo Code (kode semu)
– Dengan pseudo code menjadi lebih sederhana, tidak
bisa juga dibilang simbolis.
– Contoh penggalan pseudo code untuk kasus yg sama
• Start
• Input (Panjang)
• Input (Lebar)
• Luas <- Panjang * Lebar
• Output (Luas)
• End
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 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 IF A > 10 THEN PRINT A
10
Dari dua bilangan A dan B, IF A > B THEN PRINT A ELSE
cari bilangan yang terbesar PRINT B
Aturan-aturan dalam pseudocode:
1. Dimulai dengan judul. Judul harus dapat
menjelaskan spesifikasi masalah yg dirancang
algoritmanya.
2. Ditulis dengan nomor yang menunjukkan urutan
langkah-langkah.
3. Pendeklarasian variabel, konstanta, rumus harus
sederhana.
Bagian Program
 Suatu program pada dasarnya terdiri dari
3 bagian:
 Input: bisa ada, bisa tidak
 Proses
 Output: minimal satu ouput.
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:
 meminta masukkan berupa matriks bujur sangkar
 mencari invers matriks
 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.
Before you write program…
 The problem: What problem does your program solve? If
you can’t clearly state what your program does, you won’t know
how to design it.
 The user: Who’s going to use your program?
 The target computer: Which computer do people
need to run your program? Is it a Windows computer, a
Macintosh, a mainframe, a computer running Linux, a
handheld Palm or Pocket PC, or a supercomputer?
 You: Are you going to write the entire thing yourself or
get help from others? If you’re going to get others to
help you, which parts of the program are they going to
write?
 Your programming skill 
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.
Debbuging
 Syntax errors: This type of error occurs if you
type a command incorrectly,
 such as misspelling PRINT as PRRINT or if you forget to
type a semicolon at the end of each line in a C++
program.
 Run-time errors: These errors occur if your
program runs into something unexpected, such
as if you ask the user to input an age, the user
types a negative number, and your program
expects a positive number.
 Logic errors: These bugs occur when your
instructions work but don’t do exactly what you
expected, creating unpredictable results.
Langkah Pembuatan Program
Mendistribusikan aplikasi
 File compression
 Display graphics and play sounds when
installing process
 Simplify the copying process

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
Flowchart
 Definisi:
 Bentuk gambar/diagram yang mempunyai
aliran satu atau dua arah secara sekuensial

 Kegunaan:
 Untuk mendesain program
 Untuk merepresentasikan program

 Maka, flowchart harus dapat merepresentasikan


komponen-komponen dalam bahasa pemrograman
Pembuatan Flowchart
 Sebelum pembuatan program
 Mempermudah programmer dalam
menentukan alur logika program

 Sesudah pembuatan program


 Menjelaskan alur program kepada orang lain
Lambang

Keterangan Lambang
Mulai/selesai
(terminator)
Aliran data

Input/Output

Proses
Lambang (2)

Keterangan Lambang
Percabangan
(Decision)

Pemberian nilai awal


suatu variabel
(Preparation)

Memanggil
prosedur/fungsi
(Call)
Lambang (3)

Keterangan Lambang
Connector (di
halaman yg sama)
A

Off page Connector


(halaman lain) B
Struktur dasar algoritma
Struktur algoritma yang paling sering ditemui:
– Sequential (urutan)
– Selection (percabangan)
– Looping (perulangan)
Sequential (Runtunan)
• Tiap instruksi dikerjakan satu
persatu.
• Tiap instruksi dilaksanakan tepat
sekali.
• Dikerjakan sesuai dengan urutan
penulisannya.
• Bila urutan diubah, maka hasil
akhirnya mungkin berubah.
Lambang (4)

Keterangan Lambang
Sequence Process

P1

P2
Selection (pemilihan/percabangan)
• Program akan berpindah
urutan pelaksanaan jika suatu
kondisi yg disyaratkan
dipenuhi.
Keterangan Lambang
Branching Process
Looping (pengulangan)
• Kondisi pengulangan, syarat
yang harus dipenuhi untuk
melaksanakan pengulangan.
• Badan pengulangan, satu atau
lebih instruksi yang akan
diulang.
Keterangan Lambang
Looping Process
• Flowchart (Diagram Alir)
– Bagan yang menunjukkan alur Mulai Gb 1. notasi
terminator
didalam program secara logika,
Masukkan Gb 2. notasi
digunakan sebagai alat bantu masukan
Panjang, Lebar
komunikasi dan untuk
dokumentasi.
Hitung
– Flowchart memiliki simbol Luas = Panjang * Gb 3. notasi proses
tersendiri yang sudah menjadi Lebar
standar untuk menggambarkan
alur sistem. Tulis
Gb 4. notasi
Luas keluaran

Gb 5. notasi
Selesai terminator
Mulai

• Start
Input Panjang,
Lebar
• Input (Panjang)
• Input (Lebar)
Hitung
Luas = Panjang * Lebar
• Luas <- Panjang * Lebar

Output
Luas • Output (Luas)

• End
Selesai
Latihan soal
• Buatlah algoritma untuk menghitung konversi suhu
dari celcius menjadi reamur dan farenheit.
– Input: suhu dalam celcius
– Proses: R= 4/5 * C dan F = 9/5 * C + 32
– Output: suhu dalam Reamur dan Farenheit
• Menghitung usia berdasarkan tahun (saja) lahir dan
tahun (saja) sekarang
– Input: tahun lahir, tahun sekarang
– Proses: umur = tahun lahir – tahun sekarang
– Output: cetak umur
Latihan soal
• Menguji apakah suatu suhu (dalam celsius) adalah
beku, cair, gas
– Input: suhu dalam celcius (bil bulat)
– Proses: jika < 0 = beku, 0 – 100 = cair, dan > 100 = gas
– Output: beku, cair, gas

Anda mungkin juga menyukai