Anda di halaman 1dari 27

ALGORITMA

1
ALGORITMA
• DEFINISI
– Logika, metode dan tahapan
(urutan)
sistematis yang digunakan untuk
– memecahkan suatu
Spesifikasi urutan permasalahan
langkahuntuk melakukan
pekerjaan tertentu

2
PERTIMBANGAN
PEMILIHAN ALGORITMA
1. Algoritma haruslah benar
• Output sesuai dg yg dikehendaki dari input yang diberikan
• Algoritma bagus, output salah à bukan algoritma yang baik
2. Seberapa baik hasil yang dicapai oleh algoritma
• Terutama untuk output yang berupa estimasi,
perkiraan, prediksi, aproksimaksi
• Harus mampu memberikan hasil sedekat mungkin dengan
nilai sebenarnya
3. Efisiensi algoritma
• Ditinjau dari 2 hal, yaitu waktu dan memori
• Algoritma baik + waktu lama à TIDAK EFISIEN
• Apalagi bila memori yang digunakan besar, akan menambah
ketidakefisienan dari algoritma

3
ALGORITMA VS PROGRAM
• Program adalah
– kumpulan instruksi komputer
– Kata, ekspresi, pernyataan yang disusun dan dirangkai menjadi satu
kesatuan prosedur, yang berupa urutan langkah untuk menyelesaikan
masalah yang diimplementasikan dengan menggunakan bahasa
pemrograman
• Metode dan tahapan sistematis dalam program adalah
• algoritma.
• Bahasa Pemrograman : prosedur atau tata cara penulisan
program
Pemrograman adalah proses mengimplementasikan urutan
langkah untuk menyelesaikan suatu masalah dengan
menggunakan bahasa pemrograman tertentu
PROGRAM = STRUKTUR DATA + ALGORITMA

PEMILIHAN STRUKTUR DATA YANG KURANG TEPAT AKAN


MEMBUAT
PROGRAM MENJADI KURANG BAIK WALAU ALGORITMA SUDAH
BAIK
Struktur Data #include <iostream>
• Struktur data #include <string>
merujuk pada using namespace
std;
struct Mahasiswa
koleksi/kumpulan { string nama;
peubah komputer string alamat;
int noMahasiswa;
yang saling double IPK;
berhubungn };
untuk tertentu.
tujuan void printInfo(const Mahasiswa &m)
{ cout << “Nomer : “ << m.noMahasiswa <<
endl;
cout << “Nama : “ << m.nama << endl;
cout << “Alamat : “ << m.alamat <<
endl; cout << “IPK : “ << m.IPK << endl;
}
int main()
{ Mahasiswa yayuk;
yayuk.nama = “Yayuk Dwinanti”;
yayuk.alamat = “Jl. Pahlawan 15
Surabaya”;
yayuk.noMahasiswa = 123;
yayuk.IPK = 3.75;
printInfo(yayuk);
KEUNTUNGAN
PEMBUATAN ALGORITMA
• Pembuatan atau penulisan algoritma
tidak tergantung pada bahasa
pemrograman manapun
• Notasi algoritmik dapat diterjemahkan ke
dalam berbagai bahasa pemrograman
• Apapun bahasa pemrogramannya, output
yang akan dikeluarkan sama karena
algoritmanya sama

6
YANG PERLU DIPERHATIKAN
• Teks algoritma berisi deskripsi langkah-
langkah penyelesaian masalah, dapat
ditulis dalam notasi apapun asalkan
mudah dimengerti dan dipahami
• Notasi algoritmik bukan notasi bahasa
pemrograman, karena itu tidak dapat
dijalankan oleh komputer
– Perlu translasi ke bahasa pemrograman

7
TRANSLASI
ALGORITMA à BAHASA
PEMROGRAMAN
Hal-hal yang perlu diperhatikan :
• Pendeklarasian variabel
• Pemilihan tipe data
• Pemakaian instruksi-
• instruksi
• Aturan sintaks
• Tampilan hasil
Cara pengoperasian compiler atau
intepreter

8
SYARAT MEMBUAT ALGORITMA
YANG BAIK
• Tingkat kepercayaannya tinggi (realibility)
– Hasil yang diperoleh harus berakurasi tinggi dan benar
• Pemrosesan yang efisien (cost rendah)
– Proses harus diselesaikan secepat mungkin dengan
frekuensi kalkulasi yang sependek mungkin
• Sifatnya general
– Bukan untuk menyelesaikan satu kasus saja, tetapi
sifatnya general
• Bisa Dikembangkan (expandable)
– Bisa dikembangkan lebih jauh berdasarkan
perubahan requirement yang ada
• Mudah dimengerti
• Portabilitas tinggi
– Bisa diimplementasikan di berbagai platform komputer
dan bahasa pemrograman
9
CIRI-CIRI ALGORITMA YANG
BAIK
• Precise (tepat, betul, teliti)
– Instruksi tidak ada keraguan
– Instruksi dinyatakan secara
– eksplisit
Setiap: Tambahkan
Contoh langkah harus jelas2dan
1 atau pada x
pasti à terdapat keraguan
• Jumlah langkah atau instruksi berhingga atau tertentu
– Untuk kasus yang sama, banyaknya harus tetap dan
langkah tertentu meskipun datanya berbeda
• Efektif
– Tidak boleh ada instruksi yang tidak dikerjakan oleh
mungkin pemroses
• Harus terminate
– Ada kriteria untuk berhenti
• Output yang dihasilkan tepat
10
TAHAP PEMROGRAMAN :

Analisa Problem Pembuatan


Program

Perancangan
Algoritma Test

Test Dokumentasi

Dipakai

FASE I : PROBLEM FASE II :


SOLVING IMPLEMENTASI 11
TAHAP PEMROGRAMAN :
I. Fase Problem Solving
Merancang atau Merumuskan
Logika
• Kondisi awal, yaitu input yang tersedia
• Kondisi akhir, yaitu output yang
• diinginkan
• Data lain yang tersedia
• Operator yang tersedia
Syarat atau kendala yang harus dipenuhi
Contoh Kasus : Menghitung biaya percakapan di
wartel
• Input yang tersedia : jam mulai bicara dan jam bicara
• selesai
• Output yang diinginkan adalah biaya percakapan
Data lain yang tersedia adalah besarnya pulsa
• yang digunakan
Operator dan adalah
yang tersedia biaya per pulsa (-), penambahan
pengurangan
(+), dan perkalian (*)
• Syarat kendala : aturan jarak dan tarif berdasarkan waktu
• Error handling
12
TAHAP PEMROGRAMAN :
II. Fase Implementasi
Menulis program
Standar penilaian program
• Standar teknik pemecahan masalah
• Teknik top-down à suatu masalah yang kompleks dibagi ke dalam
beberapa kelompok masalah yang lebih kecil
• Teknik bottom-up à menggabungkan beberapa prosedur menjadi
satu kesatuan program sebagai penyelesaian masalah tersebut
• Standar penyusunan program
• Kebenaran logika dan penulisan
• Waktu minimum untuk penulisan program
• Ekspresi penggunaan memori
• Kemudahan perawatan dan mengembangkan program
• User friendly
• Portability
• Pemrograman modular
• Standar Perawatan Program
• Dokumentasi
• Penulisan Instruksi
• Standar prosedur
13
STRUKTUR DASAR ALGORITMA/
STRUKTUR KONTROL
Struktur dasar algoritma ada 3, yaitu :
• Struktur runtunan/sequential
– Digunakan untuk program yang instruksinya
sequential atau urutan
• Struktur pemilihan/conditional
– Digunakan untuk program yang menggunakan
pemilihan atau penyeleksi kondisi
• Struktur perulangan/iterasi
– Digunakan untuk program yang instruksinya
akan
dieksekusi berulang-ulang
14
Struktur Runtunan
• Runtunan merupakan A1
struktur dasar algoritma
terdiri dari satu atau A2
lebih
• instruksi A3

Dikerjakan secara
A4
• berurutan
Pada dasarnya semua
program dibuat
berdasarkan struktur
algoritma runtunan
15
Contoh kasus runtunan 1
• Terdapat 2 buah variabel a dan b yang
memiliki nilai a = 4 dan b = 5.
Bagaimana
algoritma untuk mempertukarkan nilai a
dan b sehingga nilai a = 5 dan nilai b = 4
?

16
Contoh kasus runtunan 2
• Menghitung luas persegi Start
panjang
– Algoritmanya :
• Masukkan panjang dan Input(P,L)
lebar
• Kalikan panjang dan Luas = P * L
lebar, simpan hasil
sebagai luas
• Tuliskan hasilnya
Output(Luas)

Dalam Pseudocode
Input (p,l); End
Luas = p * l;
Flowchart Hitung Luas
Output (Luas); Persegi Panjang 17
Contoh kasus runtunan 3
• Konversikan total detik menjadi Start
berapa jam lebih berapa menit lebih
berapa detik
– Algoritmanya :
• Baca data total detik Input(Dt)
• Bagi data dengan 3600
• Simpan hasil bagi dalam J
dan sisa dalam S J = Dt div 3600
• Bagi S dengan 60 S = Dt mod 3600
M = S div 60
• Simpan hasil dalam M dan
sisa bagi dalam D D = S mod 60
• Tulis hasil J, M, D
Output(J, M, D)
Dalam Pseudocode
Input (Dt);
J = Dt div 3600 End
S = Dt mod 3600
M = S div 60 Flowchart Konversi
D = S mod 60 Detik 18
Struktur Pemilihan
• Bentuk instruksi pemilihan
– IF
– IF – ELSE
– SWITCH
– IF Bersarang

19
Struktur Pemilihan IF - ELSE
Pseudocode :
Pernyataan A Pernyataan A
If <kondisi> then <pernyataan 1>
Else
<pernyataan 2>
EndIf false true
Pernyataan B Pernyataan 2 KONDISI Pernyataan 1

Pernyataan B

• Instruksi ini digunakan untuk menentukan tindakan yang akan


digunakan apabila kondisi bernilai benar dan apabila
kondisi 20
bernilai salah
Struktur Pemilihan SWITCH
Pseudocode :
Switch<pilihan> pilihan
Case <pilihan1> : <aksi1>
Case <pilihan2> : <aksi2>

{otherwise aksi} pilihan
endcase

Contoh dlm bhs C :

Switch(na){ Aksi 1 Aksi 1 Aksi 1 Aksi 1


Case ‘A’ : na = 4;break;
case ‘B’ : na = 3;break;
case ‘C’ : na = 2;break;
default : na = 0;
} Pernyataan berikutnya

21
Struktur Perulangan
• Macam-macam instruktur perulangan
– FOR
– WHILE
– WHILE-DO

22
STRUKTUR PERULANGAN FOR
• Instruksi perulangan yang paling sering
digunakan
• Memiliki 3 parameter, yaitu :
– Nilai awal (initial value)
– Test kondisi yang akhir LOOP
– menentukan
Penentu perubahan nilai

23
STRUKTUR PERULANGAN FOR
Pseudocode :
For indeks = nilai_awal to nilai_akhir Indeks = nilai awal
do
<instruksi/blok instruksi> Indeks = indeks + 1
endfor
true Badan loop
pilihan

Contoh dlm bhs C : false


Pernyataan berikutnya
int i;
i = 3;
for (i=1, i<=3, i++) {
Printf (i);
}
Flowchart Instruksi FOR format naik

24
STRUKTUR PERULANGAN WHILE

• Instruksi perulangan yang paling sering


digunakan
• Memiliki 3 parameter, yaitu :
– Nilai awal (initial value)
– Test kondisi yang akhir LOOP
– menentukan
Penentu perubahan nilai

25
STRUKTUR PERULANGAN WHILE-DO
Pseudocode :
While <kondisi> do
<instruksi/blok
instruksi> true Badan loop
endwhile
pilihan

false
Pernyataan berikutnya
Contoh dlm bhs C :

int i;
i = 3;
while (i>0 {
Flowchart Instruksi WHILE- DO
printf (i);
i--;
}

26
STRUKTUR PERULANGAN DO-WHILE
Pseudocode : Badan loop
do
<instruksi/blok
instruksi>
while <kondisi> true
pilihan

false
Contoh dlm bhs C : Pernyataan berikutnya

int i;
i = 3; do
{ printf Flowchart Instruksi DO-WHILE
(i); i--;
}
while(i>
3);
27

Anda mungkin juga menyukai