Anda di halaman 1dari 3

ANALISIS DAN DESAIN ALGORITMA

Kelompok 8, DAA Kelas J


Ridlo Sayyidina Auliya-105060800111013
Elha Dhanny-115060800111010
Regita Ayu P.-115060800111028
Gita Widigdo W.-115060807111021
Ichwanda Baktiar-115060807111003
DEFINISI ALGORITMA
Algoritma dapat didefinisikan sebagai
urutan langkah-langkah yang disusun secara
sistematis dan logis untuk menyelesaikan suatu
permasalahan. Algoritma digunakan untuk
mempermudah pemecahan masalah logika dan
matematika.
Algoritma ditemukan pada abad ke-9 oleh
seorang ahli matematika asal Uzbekistan yang,
Al-Khawarizmi. Istilah algoritma tercantum
dalam karya Al-Khawarizmi yang menyebutkan
Algorithmi de numero Indorum, yang merujuk
pada definisi algoritma sebagai aturan aritmatis
untuk menyelesaikan suatu masalah dengan
menggunakan notasi numerik (angka).
Algoritma mengalami perkembangan sejak
abad ke-12, lalu kemudian diterapkan dalam
dunia komputer beberapa abad setelahnya.
Algoritma dalam dunia komputer didefinisikan
sebagai urutan langkah atau prosedur komputasi
yang tepat yang digunakan untuk suatu kegiatan
problem solving. Kegiatan tersebut dilakukan
dengan mengeksekusi langkah atau prosedur
dan menggunakannya untuk mentransformasi
input yang valid menjadi output yang
diinginkan.
Analisis dan Desain Algoritma merupakan
suatu cabang ilmu komputer yang mempelajari
karakteristik dan performa suatu algoritma
dalam menyelesaikan suatu permasalahan.
Analisis dan Desain Algoritma mempelajari
algoritma secara abstrak, terlepas dari
implementasi
algoritma
tersebut
yang
mencakup sistem informasi dan bahasa
pemrograman yang digunakan. Analisis dan
Desain Algoritma membantu menentukan
algoritma terbaik yang dapat digunakan untuk
memecahkan
suatu
permasalahan
dan
mempermudah proses perancangan suatu
algoritma berdasarkan analisa yang telah
didapat.
KOMPONEN ALGORITMA
Suatu algoritma terdiri dari komponen
berikut, antara lain :
1. Input
Komponen ini terdiri dari variabel, tipe
variabel, konstanta, dan parameter yang
direpresentasikan dalam bentuk fungsi.

2.

Output
Komponen ini merupakan hasil akhir dari
perancangan algoritma dan program. Output
merepresentasikan permasalahan yang telah
diselesaikan. Karakter output yang baik
ditunjukkan dengan adanya korelasi antara
output itu sendiri dan permasalahan yang
diselesaikan.
3. Process
Komponen ini merupakan bagian utama
dalam perancangan suatu algoritma. Dalam
komponen proses terdapat logika masalah,
logika algoritma yang terdiri dari logika
sintaksis dan semantik, rumusan, dan
metode yang digunakan.
Terdapat beberapa metode yang digunakan
untuk
memecahkan
permasalahan
matematika dan program komputer,
diantaranya :
1. Pseudo Code
Pseudocode dapat menggunakan bahasa
sehari-hari, namun harus lebih jelas dan
terstruktur.
2. Flowchart
Flowchart dibuat dengan menyajikan
diagram yang mewakili susunan alur
logika dari permasalahan yang ingin
diselesaikan.
JENIS ALGORITMA
Algoritma komputer dapat dikelompokkan
berdasarkan paradigma yang digunakan untuk
merancang algoritma tersebut.
Satu paradigma dapat diterapkan ke dalam
beberapa algoritma. Berikut beberapa jenis
paradigma yang sering digunakan :
1. Brute Force
Paradigma ini menerapkan penyelesaian
masalah
dengan
pendekatan
secara
langsung, yakni kepada pernyataan masalah
dan definisi konsep terkait.
2. Divide and Conquer
Paradigma ini membagi permasalahan besar
menjadi masalah yang lebih kecil, hingga
ditemukan masalah terkecil yang mudah
untuk diselesaikan.
3. Decrease and Conquer
Paradigma
ini
berdasarkan
pada
pemanfaatan hubungan antara solusi dari
sontoh permasalahan yang diberikan dengan
solusi dari contoh permasalahan yang sama,
namun lebih kecil. Paradigma ini meliputi 3
aspek utama, yakni penurunan konstanta,
penurunan dengan faktor konstan, dan
penurunan ukuran variabel.
4. Dynamic Programming
Paradigma ini cocok digunakan pada suatu
permasalahan yang memiliki substruktur

5.

yang optimal dan memiliki bagian


permasalahan yang tumpang tindih.
Paradigma ini memiliki perbedaan dengan
paradigma Divide and Conquer, yakni pada
karakteristik permasalahan yang dihadapi.
Greedy Algorithm
Perbedaan utama paradigma ini dengan
Dynamic Programming adalah pada
jawaban dari submasalah menggunakan
konsep greedy, dimana hanya jawaban
terbaik yang dipertimbangkan sedangkan
jawaban submasalah tidak dilihat.

PERANCANGAN ALGORITMA
Berikut merupakan langkah-langkah dalam
mendesain suatu algoritma.
1. Mentransformasi permasalahan sehingga
menjadi suatu inputan, yakni dengan cara
mengidentifikasi untuk menentukan objek
input dan struktur data.
2. Gunakan metode yang sesuai untuk
permasalahan yang akan diselesaikan.
3. Ubah solusi yang didapat sehingga menjadi
output, yakni dengan menganalisa solusi
permasalahan dan struktur datanya.
PENGGUNAAN ALGORITMA
Algoritma digunakan untuk menyelesaikan
masalah dengan tingkat kompleksitas yang
berbeda. Mulai yang paling sederhana hingga
yang paling rumit. Algoritma menyelesaikan
permasalahan logika dan matematika secara
berurutan, kecuali pada percabangan dimana
algoritma akan menyelesaikan permasalahan
logika dan matematika secara acak.
Penggunaan algoritma pada komputer
didasari oleh hakikat komputer sebagai sebuah
mesin digital. Komputer hanya bisa mengenali
kondisi arus litrik, sehingga pemrograman
dilakukan dengan memasukkan sandi kondisi
arus listrik, yakni jika ada arus litrik maka
bernotasi 1 dan sebaliknya jika tidak ada maka
bernilai 0. Bahasa pemrograman ini disebut
dengan bahasa mesin.
Penggunaan bahasa mesin terlalu rumit dan
susah dipahami, sehingga digunakanlah
mnemonic code yang lebih sederhana dan
mendekati bahasa manusia. Salah satu jenis
mnemonic code diantaranya adalah bahasa
assembly. Mnemonic code merupakan semialgorithm, karena terdapat tahap dimana proses
akan diakhiri meskipun solusi belum
ditemukan.
EFISIENSI ALGORITMA
Dalam memilih algoritma yang akan
digunakan
untuk
menyelesaikan
suatu

permasalahan, harus melakukan pertimbangan


terhadap beberapa krteria berikut :
1. Kebenaran
Algoritma yang akan dipakai harusnya tepat
guna, efektif, menghasilkan output yang
sesuai denga inputannya, dan sesuai dengan
permasalahan.
2. Kemudahan
Algoritma yang akan dipakai harusnya
sederhana dan mudah untuk dipahami, serta
mudah untuk diprogram dalam proses
coding.
3. Kecepatan
Algoritma
yang
dipakai
seharusnya
memiliki kecepatan eksekusi program yang
tinggi. Kecepatan eksekusi dihitung
berdasarkan jumlah waktu dan komputasi
yang dibutuhkan dalam proses eksekusi.
Kecepatan eksekusi juga dapat menunjukkan
kompleksitas suatu algoritma. Semakin
banyak waktu yang dibutuhkan, semakin
tinggi kompleksitas algoritma tersebut.
4. Biaya
Aspek ini mengacu pada kebutuhan memori.
Semakin besar memori yang digunakan,
maka biaya juga semakin besar, begitu pula
sebaliknya.
Keempat kriteria algoritma yang efektif
tersebut mustahil diwujudkan secara bersamaan.
Aspek yang diprioritaskan pada umumnya
adalah kecepatan dan biaya.
Analisis dan Desain Algoritma menganalisis
algoritma dari segi
karakteristik dan
performansi dengan menggunakan parameter
efisiensi. Efisiensi algoritma ditinjau dari dua
hal, yakni efisiensi waktu dan efisiensi memori.
Efisiensi waktu diukur dari banyaknya
operasi yang dilakukan dalam sekali eksekusi
dalam satu satuan waktu. Sedangkan efisensi
memori ditinjau dari struktur data dan variabel
yang digunakan.
Dari hasil analisis tersebut, akan dapat
ditentukan mana algoritma terbaik yang sesuai
dengan permasalahan. Algoritma terbaik adalah
algoritma yang efisien, yakni algoritma yang
meminimumkan kebutuhan waktu serta memori
dalam penggunaannya.
Sumber :
Levitin, Anany. 2010. Pengantar Desain
dan Analisis Algoritma.Jakarta : Salemba
Infotek.
Baizal, ZK Abdurahman. 2010. Introduction
to Design & Analysis of Algorithms. Materi
Kuliah Desain & Analisis Algoritma. STT
Telkom bandung

Anda mungkin juga menyukai