Pendahuluan algoritma
PENDAHULUAN ALGORITMA & STRUKTUR
DATA
![Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqv1_V6kVGuneOhxIs06PlrgaoePAH7jZu8ufGyKn6UwFIkJdAsXsBJGo57FmigSDd8_JVJZXPLGZWs3-1q7T3oWC9XJOZz7KCegq56sMBCNhXiHS5anh3fvA62yrGS7_pDCZFF1wAUExA/s320/Al-Khawarijmi.png](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif)
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.
![](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg)
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.
![](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg)
![](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg)
![](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg)
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
![](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg)
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.
![Description: comfiler.JPG](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg)
Langkah
Pemecahan Masalah
(1) Inisiasi solusi secara umum:
1. Deskripsi
masalah,
2.
Merancang
algoritma-algoritma untuk memecahkan masalah (bisa lebih dari satu solusi untuk
satu permasalahan) dan
3.
Menekankan
pada ketepatan solusi
(2) Analisa algoritma :
1. Menekankan
pada efisiensi seperti efisiensi waktu dan efisiensi ruang
2.
Melakukan
analisa algoritma dari solusi-solusi yang dirancang
3. 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
1. Menggambar
flowchart dan atau menulis pseudocode
2. Menerjemahkan
ke dalam bahasa pemrograman tertentu
3. Melakukan
pengujian (debugging) dan perbaikan program
Standar Program yang Baik
1. Standar Penyusunan Program
a.
Kebenaran
logika
b.
Waktu
untuk penulisan program
c.
Kecepatan
maksimum eksekusi program
d.
Ekspresi
penggunaan memori
e.
User
friendly (bisa dikembangkan programmer developer lain)
f.
Portability
(instalasi dan inisiasi mudah)
g.
Pemrograman
Modular (memudahkan perawatan)
2. Standar
Perawatan Program
a.
Dokumentasi
pemakaian untuk pengguna
b.
Dokumentasi
pengembangan untuk programmer (biasanya berbentuk komentar- komentar pada
source code program)
c.
Konvensi
penulisan instruksi (memudahkan pengerjaan program oleh programmer lain)
STRUKTUR DASAR ALGORITMA
Algoritma berupa
langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut yaitu :
1.
Sequence
Structure
(struktur runtunan)
Digunakan
untuk program yang instruksinya sequential/urutan.
2.
Selection
Structure (struktur
percabangan)
Digunakan
untuk program yang menggunakan pilihan/penyeleksian kondisi .
3.
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 :
1)
Untaian
kalimat deskriptif, dimana setiap langkah dinyatakan dengan bahasa yang
gamblang/jelas
2)
Menggunakan
diagram alir (flow chart)
3)
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:
a.
Algoritma dengan struktur bahasa Indonesia
![](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg)
1)
Baca
bilangan a, b, dan c
2)
Jumlahkan ketiga bilangan tersebut
3)
Bagi
jumlahnya dengan 3
4)
Tulis
hasilnya
b.
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
Conto2 : Algoritma
untuk mencari luas lingkaran :
![](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image018.jpg)
1)
Beri
nilai phi dengan 3.14
2)
Masukkan
jari-jari lingkaran
3)
Kalikan
phi dengan kuadrat dari jari-jarinya
4)
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 :
a.
Flowchart
System
b.
Flowchart
Program
Flowchart System
![](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg)
![](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image022.jpg)
Flowchart
Program
Yaitu bagan yang
menggambarkan urutan logika dari suatu prosedur pemecahan masalah.
Sibol – symbol
Diagram Alir (Flowchart )Program
![](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image024.jpg)
Pseudocode
Mempermudah
pembuatan program Independen dari berbagai bahasa pemrograman. Notasi-notasinya bisa
diterjemahkan ke berbagai bahasa pemrograman
Teks algoritma
(pseudo-code) terdiri dari :
a)
Head / Kepala algoritma (Judul) : memberikan
nama pada algoritma; umumnya nama sudah dapat memberi gambaran pada prosedur
penyelesaian masalah atau masalah yang akan diselesaikan
b)
Deklarasi : menyatakan jenis dari setiap
elemen data (variabel) yang akan digunakan dalam algoritma.
c)
Deskripsi : merupakan inti prosedur
penyelesaian masalah; meliputi pernyataan/operasi, fungsi, penjelasan,dll.
![](file:///C:/Users/yasinta/AppData/Local/Temp/msohtmlclip1/01/clip_image026.jpg)
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);
}
0 komentar :
Posting Komentar