Apa itu Algoritma & Struktur Data?



          Algoritma berasal dari kata algoris dan ritmis yang pertama kali diungkapkan oleh Abu Ja’far Mohammad Ibn Musa Al Khowarizmi (825M) dalam buku Al-Jabr Wa-al Muqobla.
Algoritma dapat didefinisikan sebagai urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis untuk mencapai tujuan tertentu. Kata logis berarti bahwa nilai kebenarannya harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang salah.

Contoh :
Misalkan terdapat dua buah gelas, gelas A dan gelas B. Gelas A berisi air berwarna merah dan gelas B berisi air berwarna biru, kita ingin menukarkan isi air kedua gelas tersebut, sehingga gelas A berisi air berwarna biru dan gelas B berisi air berwarna merah.

Algoritma diatas tidak menghasilkan pertukaran yang benar, langkah-langkahnya tidak logis, karena yang terjadi bukan pertukaran tetapi percampuran antara air di gelas A dengan air di gelas B. Sehingga algoritma Tukar Isi Gelas diatas Salah.
Dari permasalahan diatas algoritma yang benar adalah bahwa untuk menukarkan isi air pada gelas A dengan isi air pada gelas B maka dibutuhkan sebuah gelas bantuan yang dipakai untuk menampung salah satu air dalam gelas tersebut misalkan gelas C.

Algoritma : Rangkaian langkah-langkah/alur pikiran untuk menyelesaikan suatu masalah yang sifatnya logis dan sistimatis

Sifat-sifat Algoritma :
Definiteness (jelas) : Mudah dibaca/jelas maksudnya (tiap langkah jelas uraiannya) dan tidak ambigu
Finiteness: Berawal dan berakhir
Input : Tidak harus ada data masukan yang dimasukkan dari luar
Output : Paling tidak harus ada satu keluaran
Effectiveness: Tiap instruksi harus efektif (tepat dan efisien)
Bahasa pemrograman :
Bahasa komputer yang digunakan dalam penulisan program
Pemrogram/Programmer :
Orang yang membuat program komputer
Pemrograman :
Kegiatan merancang atau menulis program computer
KELOMPOK BAHASA PEMROGRAMAN

          Bahasa Tingkat Rendah (Low Level Language), bahasa yang berorientasi pada mesin. Pemrogram dengan bahasa ini harus berpikir berdasarkan logika mesin berpikir, sehingga bahasa ini kurang fleksibel dan sulit dipahami. Contoh : Bahasa mesin, Bahasa rakitan (assembly).
Bahasa Tingkat Menengah (Middle Level Language), bahasa pemrograman yang menggunakan aturan-aturan gramatikal dalam penulisan ekspresi atau pernyataan dengan standar yang mudah dipahami manusia serta memiliki instruksi-instruksi tertentu yang langsung bisa diakses oleh komputer.
Bahasa Tingkat Tinggi (Hight Level Language), bahasa pemrograman yang menggunakan aturan-aturan gramatikal dalam penulisan ekspresi atau pernyataan dengan standar bahasa yang langsung dapat dipahami oleh manusia. Contoh : Pascal, C/C++, Delphi, Visual Basic

Interpreter dan Compiller
Agar komputer memahami program yang disusun dengan bahasa pemrograman, maka dibutuhkan suatu penerjemah yaitu Interpreter dan Compiller.
Interpreter merupakan penerjemah bahasa pemrograman yang menerjemahkan instruksi demi instruksi pada saat eksekusi program. Pada saat penerjemahan interpreter akan memeriksa sintaksis (sintak program), semantik (arti perintah), dan kebenaran logika. Jika ditemukan kesalahan sintaksis (syntak error) maka interpreter akan menampilkan pesan kesalahan dan eksekusi program langsung terhenti.
Compiler merupakan penerjemah bahasa pemrograman yang menerjemahkan instruksi-instruksi dalam satu kesatuan modul ke dalam bahasa mesin (objek program), kemudian objek program akan mengalami linking yang berfungsi untuk menggabungkan modul-modul tersebut dengan modul-modul lain yang berkaitan seperti data tentang karakteristik mesin, file-file pustaka atau objek program lainnya yang berkaitan dengan objek lainnya menghasilkan file Executable program yang akan dieksekusi oleh komputer.

Langkah Pemecahan Masalah
(1) Inisiasi solusi secara umum:
Deskripsi masalah,
Merancang algoritma-algoritma untuk memecahkan masalah (bisa lebih dari satu solusi untuk satu permasalahan) dan
Menekankan pada ketepatan solusi

(2) Analisa algoritma :
Menekankan pada efisiensi seperti efisiensi waktu dan efisiensi ruang
Melakukan analisa algoritma dari solusi-solusi yang dirancang
Memilih metode struktur data yang tepat
Contoh: analisis kompleksitas algoritma (Asymptotic Analysis) untuk membandingkan dua metode sorting, yakni insertion sort dan merge sort (akan dijelaskan di pertemuan berikutnya)

(3) Implementasi solusi
Menggambar flowchart dan atau menulis pseudocode
Menerjemahkan ke dalam bahasa pemrograman tertentu
Melakukan pengujian (debugging) dan perbaikan program

Standar Program yang Baik
1. Standar Penyusunan Program
Kebenaran logika
Waktu untuk penulisan program
Kecepatan maksimum eksekusi program
Ekspresi penggunaan memori
User friendly (bisa dikembangkan programmer developer lain)
Portability (instalasi dan inisiasi mudah)
Pemrograman Modular (memudahkan perawatan)
2. Standar Perawatan Program
Dokumentasi pemakaian untuk pengguna
Dokumentasi pengembangan untuk programmer (biasanya berbentuk komentar- komentar pada source code program)
Konvensi penulisan instruksi (memudahkan pengerjaan program oleh programmer lain)


STRUKTUR DASAR ALGORITMA
Algoritma berupa langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut yaitu :
Sequence Structure (struktur runtunan)
Digunakan untuk program yang instruksinya sequential/urutan.
Selection Structure (struktur percabangan)
Digunakan untuk program yang menggunakan pilihan/penyeleksian kondisi .
Repetition Structure (struktur perulangan)
Digunakan untuk program yang instruksinya akan dieksekusi berulang-ulang.

NOTASI ALGORITMIK
Notasi Algoritmik bukan notasi bahasa pemrograman sehingga siapapun dapat membuat notasi algoritmik yang berbeda. Namun demikian ketaatan atas notasi perlu diperhatikan untuk menghindari kekeliruan.Beberapa notasi yang digunakan untuk menulis algoritma :
Untaian kalimat deskriptif, dimana setiap langkah dinyatakan dengan bahasa yang gamblang/jelas
Menggunakan diagram alir (flow chart)
Menggunakan pseudo-code
Pseudo : semu, tidak sebenarnya, pura-pura; adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi

Contoh Penyajian Algoritma
Contoh 1 : Algoritma untuk mencari rata-rata dari 3 bilangan bulat yang diinputkan:
Algoritma dengan struktur bahasa Indonesia
Baca bilangan a, b, dan c
Jumlahkan ketiga bilangan tersebut
Bagi jumlahnya dengan 3
Tulis hasilnya

Algoritma dengan pseudocode
Algoritma CARI_RERATA
a, b, c, Jml: integer
Rerata : real
Input (a,b,c)
Jml <- a+b+c
Rerata <- Jml/3
Output (Rerata)
c. Algoritma dengan flowchart

Contoh : Algoritma untuk mencari luas lingkaran :

a. Algoritma dengan struktur bahasa Indonesia
Beri nilai phi dengan 3.14
Masukkan jari-jari lingkaran
Kalikan phi dengan kuadrat dari jari-jarinya
Tulis hasilnya
b. Algoritma dengan pseudocode
Algoritma LUAS_LINGKARAN
phi, L, R : real
phi <- 3.14
Input(R)
L <- phi * R^2
Output(L)
c. Algoritma dengan flowchart
Flowchart
Flowchart (bagan alir) adalah suatu bagan yang menggambarkan/mempresentasikan suatu algoritma/prosedur untuk menyelesaikan masalah.
Flowchart ada dua macam :
Flowchart System
Flowchart Program

Flowchart System
Yaitu bagan yang menggambarkan suatu prosedur dan proses suatu file dalam suatu media menjadi file dalam media yang lain dalam suatu sistem data.
Simbol yang digunakan :
Flowchart Program
Yaitu bagan yang menggambarkan urutan logika dari suatu prosedur pemecahan masalah.
Sibol – symbol Diagram Alir (Flowchart )Program

Pseudocode
Mempermudah pembuatan program Independen dari berbagai bahasa pemrograman. Notasi-notasinya bisa diterjemahkan ke berbagai bahasa pemrograman
Teks algoritma (pseudo-code) terdiri dari :
Head / Kepala algoritma (Judul) : memberikan nama pada algoritma; umumnya nama sudah dapat memberi gambaran pada prosedur penyelesaian masalah atau masalah yang akan diselesaikan
Deklarasi : menyatakan jenis dari setiap elemen data (variabel) yang akan digunakan dalam algoritma.
Deskripsi : merupakan inti prosedur penyelesaian masalah; meliputi pernyataan/operasi, fungsi, penjelasan,dll.
Konversi ke bahasa C

/* Program Hitung Rerata */
/* Menghitung nilai rerata sekumpulan bilangan */
/* bulat yang dibaca dari keyboard */
#include <stdio.h>
main()
{
/*Deklarasi*/
int x, n, k, jumlah;
float rerata;
/*Deskripsi*/
printf(“Masukkan jumlah data: “);
scanf(“%d”, &n);
k = 1;
jumlah = 0;
while (k <= n){
printf(“x = ? “);
scanf(“%d”, &x);
jumlah = jumlah = x;
k++;
}
rerata = (float) jumlah/n;
printf(“Rerata seluruh data = %f”, rerata);
}

Related Posts:

0 Response to "Apa itu Algoritma & Struktur Data?"

Posting Komentar

NO SARA & NO SPAM