Anda di halaman 1dari 27

ALGORITMA

RINTA KRIDALUKMANA
SISKOM UNDIP

1
ALGORITMA
• DEFINISI
– Logika, metode dan tahapan (urutan)
sistematis yang digunakan untuk
memecahkan suatu permasalahan
– Spesifikasi urutan langkah untuk 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
4
Struktur Data #include <iostream>
• Struktur data #include <string>
using namespace std;
merujuk pada struct Mahasiswa
koleksi/kumpulan { string nama;
string alamat;
peubah komputer int noMahasiswa;
yang saling double IPK;
};
berhubungn untuk void printInfo(const Mahasiswa &m)
tujuan tertentu. { 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);
return 0;
}
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 langkah harus jelas dan pasti
Contoh : Tambahkan 1 atau 2 pada x
 terdapat keraguan
• Jumlah langkah atau instruksi berhingga atau tertentu
– Untuk kasus yang sama, banyaknya langkah harus tetap dan
tertentu meskipun datanya berbeda
• Efektif
– Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh
pemroses
• Harus terminate
– Ada kriteria untuk berhenti
• Output yang dihasilkan tepat
10
TAHAP PEMROGRAMAN :

Analisa Problem Pembuatan


Program

Perancangan
Algoritma Test

Dokumentasi
Test

Dipakai

FASE I : PROBLEM FASE II :


11
SOLVING IMPLEMENTASI
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 selesai bicara
• Output yang diinginkan adalah biaya percakapan
• Data lain yang tersedia adalah besarnya pulsa yang
digunakan dan biaya per pulsa
• Operator yang tersedia adalah pengurangan (-), penambahan
(+), 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 dasar algoritma ada 3, yaitu :
• Struktur runtunan
– Digunakan untuk program yang instruksinya
sequential atau urutan
• Struktur pemilihan
– Digunakan untuk program yang menggunakan
pemilihan atau penyeleksi kondisi
• Struktur perulangan
– Digunakan untuk program yang instruksinya akan
dieksekusi berulang-ulang
14
Struktur Runtunan
• Runtunan merupakan
A1
struktur dasar algoritma
terdiri dari satu atau lebih A2
instruksi
• Dikerjakan secara A3
berurutan
• Pada dasarnya semua A4

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;
Output (Luas); Flowchart Hitung Luas
Persegi Panjang 17
Contoh kasus runtunan 3
• Konversikan total detik menjadi
berapa jam lebih berapa menit lebih Start
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
• Simpan hasil dalam M dan M = S div 60
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
bernilai salah 20
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 menentukan akhir LOOP
– 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
pilihan Badan loop

false
Contoh dlm bhs C :
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 menentukan akhir LOOP
– Penentu perubahan nilai

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

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 { Flowchart Instruksi DO-WHILE
printf (i);
i--;
}
while(i>3);
27

Anda mungkin juga menyukai