Anda di halaman 1dari 4

TUGAS MATA KULIAH

ANALISIS DAN STRATEGI ALGORITMA


Dosen : Chrismikha Hardyanto S.Kom., M.Kom

Self Reflection Pertemuan 3


“Langkah – Langkah Desain Algoritma”

Disusun oleh:
Muhammad Abdul Rohman Sidik
10121122
Teknik Informatika 3 / IF3

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSITAS KOMPUTER INDONESIA
2022
A. Definisi Umum Desain Algoritma
Pada dasarnya Algoritma adalah susunan langkah - langkah yang logic untuk menyelesaikan
tugas atau masalah. Dalam sebuah algoritma, setiap instruksi diidentifikasi dan urutan pelaksanaannya
direncanakan.
Desain Algoritma secara umum merupakan kegiatan yang dilakukan untuk merancang
langkah – langkah penyelesaian masalah (algoritma) dan dijalankan secara repetitive (berulang) yang
nantinya akan digunakan sebagai dasar pembuatan sebuah program.

Salah satu aspek terpenting dari sebuah program adalah membuat algoritma yang berjalan
dengan baik dan efisien. Untuk dapat membuat Algorima yang baik, Berikut langkah-langkah dalam
mendesain algorima, yaitu:
1. Memahami Jenis Masalah
2. Memutuskan Perihal :
a. Exact/Approcimate
b. Struktur Data
c. Teknik Desain Algoritma
3. Desain Algoritma
4. Pembuktian Kebenaran Algoritma
5. Menganalisis Kualitas Algoritma
6. Membuat Coding Program
Langkah – langkah diatas adalah langkah - langkah untuk mendesain algoritma yang berjalan
dengan baik dan efisien .

B. Uraian Langkah – langkah Desain Algoritma


Agar lebih memahami bagaimana membuat algoritma yang baik dan efisien kita akan
perdalam langkah – langkah untuk mendesain algoritma.

1. Memahami Jenis Masalah


Kenapa kita harus memmahami masalah terlebih dahulu ?. Tujuan kita dalam
mendesain algoritma adalah untuk menyelesaikan masalah. Jika kita tidak memahami jenis
masalahnya, bagaimana kita bisa memecahkan masalah tersebut. Ada beberapa jenis
permasalahan umum pada algoritma, yang nantinya akan sering ditemukan ketika membuat
program :

a. Pengurutan (Sorting)
Inti masalah: Menyusun ulang hal-hal yang terdapat pada daftar dengan urutan
menaik/menurun.
Tantangan dari pemecahan masalah pengurutan ini :
 Jika bentuk data adalah record maka kita butuh sebuah key
 Terdapat beberapa algoritma pengurutan
Ada beberapa algoritma pengurutan :

b. Pencarian (Searching)
Inti masalah : Menemukan suatu nilai dari sekumpulan nilai yang ada.
Jangkauan algoritma : Algoritma sekuensial atau binary search (efisien tapi
penggunaan terbatas).
Tantangan dari pemecahan masalah pencarian ini :
 Kumpulan data yang sangat besar.
 Update: add, edit, delete.
Algoritma pencarian bisa dibedakan menjadi 2 :

 Uninformed Search (Pencarian Tanpa Informasi)


 Informed Search (Pencarian Dengan Informasi)

c. Pemrosesan String
Inti masalah : Pencocokan string (pencarian kata dalam suatu teks)
Jangkauan algoritma: Algoritma untuk text string, binary string,dan gene
sequences.

d. Graph
Inti masalah : Penelusuran graph, pencarian jarak terpendek, sorting topologic
pada graph dengan ujung berarah.
Tantangan dari pemecahan masalah graph ini :
 Travelling Salesman Problem.
 Pewarnaan graph.

e. Kombinatorik
Inti masalah : Menemukan suatu objek kombinatorik (permutasi, kombinasi, atau
subset) yang memiliki batasan-batasan tertentu dan memiliki property yang
diinginkan.
Tantangan dari pemecahan masalah kombinatorik ini :
 Sejumlah objek kombinatorik tertentu tumbuh dengan cepat seiring
perkembangan ukuran masalah.
 Tidak diketahui algoritma eksak untuk menyelesaikan masalah tersebut
dalam waktu yang diinginkan.

f. Geometrik
Inti masalah : membangun bentuk geometrik dengan menggunakan titik, garis,
dan polygon, dan lainnya.
Tantangan dari pemecahan masalah geometrik ini :
 Aplikasi komputer grafik, robot, dan tomography.
 Closest-pair.
 Convex-full.

2. Memutuskan Perihal
Disini kita harus memutuskan beberapa point yang dapat membantu kita untuk nantinya
dapat merancang algoritma.
a. Exact/Approcimate
Dalam hal ini kita harus menentukan algoritma yang akan kita buat itu bersifat
Exact(Pasti) hanya ada 1 solusi atau Approcimate(hampiran) mempunyai banyak solusi.
b. Struktur Data
Sudah pasti dalam membuat algoritma kita harus mencari struktut data yang baik untuk
memecahkan masalah yang akan diselesaikan.
c. Teknik Desain Algoritma
Tentukan teknik/stretegi yang baik, untuk menghasilkan algoritma yang baik dan efisien.

3. Desain Algoritma
Kita tentukan kita akan mendesain algoritma kita dengan metode apa. Ada 3 metode yang
umum digunakan :
a. Deskriptif
b. FlowCart
c. PseudoCode

4. Pembuktian Kebenaran Algoritma


Buktikan bahwa algoritma yang kita buat dapat menyelesaikan masalah yang akan
kita pecahkan. Bisa dengan cara tracing manual (pengecekan secara langsung) bisa juga
dengan cara mengkonversikannya kedalam bahasa pemrograman.
Ada dua hal yang dibuktikan di dalam sebuah algorima, yaitu kepastian terminasi
algoritma dan kepastian hasil precondition(I.S.) yang berimplikasi terhadap postcondition
(F.S.)

5. Menganalisis Kualitas Algoritma


Jika sudah benar kita cek apakah kualitasnya sudah baik apa belum. Ada beberapa
parameter kualitas algoritma, yaitu :
a. Correctness (kebenaran).
b. Time ana Space Efficiency (efisiensi ruang dan waktu).
c. Simplicity (memenuhi low cuppling dan high cohesion).
d. Generality (bisa digunakan untuk memecahakan masalah yang sama)

6. Membuat Coding Program


Implementasikanlah algoritma yang anda buat kedalam bahasa program.
Hal hal yang harus diperhatikan :
a. Transisi yang benar dan efisien
b. Pembuktuan kebenaran program
c. Testing dan Debugging

Anda mungkin juga menyukai