• Tidak ada hasil yang ditemukan

ANALISIS DAN PERANCANGAN ALGORITMA

N/A
N/A
Protected

Academic year: 2018

Membagikan "ANALISIS DAN PERANCANGAN ALGORITMA"

Copied!
60
0
0

Teks penuh

(1)

ANALISIS DAN PERANCANGAN

ALGORITMA

Sarifuddin Madenda

(2)

Analisis

: prosedur yang dilakukan untuk

mengidentifikasi, merumuskan masalah

dan menyusun metode serta

langkah-langkah pemecahan masalah secara

tepat

Identifikasi dan fahami masalah secara tepatDefinisikan masalah utama dan turunkan

secara rinci,

(3)
(4)

Analisis kebutuhan meliputi :

Siapa pemakai program

Pesan-pesan apa saja yang ingin

ditampilkan

Apakah dibutuhkan password guna

menjaga keamanan program

Bagaimana format menu, input, proses

atau output yang diinginkan

Data apa saja yang akan diinputkan

Seberapa tinggi tigkat presisi => Berapa

(5)

Rumus apa yang akan digunakan atau

bagaimana proses pengolahan data

harus dilakukan

Siapa

saja

yang

membutuhkan

informasi yang akan dihasilkan nanti

Informasi apa yang dibutuhkan oleh

masing-masing pemakai

Apakah manfaat dari informasi yang

dihasilkan tersebut

Kapan informasi tersebut dibutuhkan

Apa bentuk help yang diinginkan oleh

(6)

Masalah

Pendefinisian Masalah

Deskripsi Masalah

Perancangan Aloritma

Pengkodean Algoritma

Implementasi dan uji coba dengan

komputer

Program Siap pakai

A

A

ALUR TAHAPAN ANALISIS DAN PERANCANGAN ALGORITMA

Sesuai

Tidak

(7)

Perancangan (Metode Penelitian) :

Pemodelan penggambaran,

peren-canaan

dan

pembuatan skema atau

bagan umum sebagai

satu kesatuan proses

dalam

memecahkan

(8)

Citra Input

Cropping Citra Input

Ekstraksi Area paru

Deteksi nodul dalam paru

Hitung luas area

nodul

(9)

Algoritma

:

Defnisi

: Langkah-langkah

pemecahan

suatu

masalah atau pekerjaan,

yang dinyatakan secara

sistematis,

rinci,

dan

jelas,

sehingga

bila

dilaksanakan

pada

kondisi awal tertentu,

akan

berakhir

dalam

selang waktu terbatas

dan

menghasilkan

(10)

 Uraian langkah-langkah dalam pemecahan masalah yang ada

 Permasalahan dibagi menjadi sub-masalah yang lebih mudah dikerjakan.

 Sub-masalah dibagi lagi menjadi sejumlah sub-masalah yang lebih kecil sampai menjadi

bagian yang mudah diselesaikan

(pemrograman modular).

(11)

 Pengkajian berulang, sehingga akan diperoleh algoritma yang paling lengkap, tepat, benar dan relevan, dan siap untuk diimplementasikan dalam bentuk program.

 Fase kajian akhir dilakukan untuk

memastikan sudah tidak ada lagi

permasalahan lain yang terlupakan.

(12)

Karakteristik Algoritma

Terstruktur

Efisien

Rinci

Tidak bermakna ganda

(13)

Terstruktur :

Terdiri dari sejumlah langkah, blok,

prosedur & fungsi

Satu pintu masuk dan satu pintu keluar

Aliran Kendali mengikuti pola tertentu

(14)

Efisien :

Penggunaan memori dan waktu

proses yang optimal

Processor : menjalankan setiap perintah

secara cepat dan tepat

(15)

Rinci :

Mudah dinyatakan dengan satu atau

beberapa perintah bahasa

pemrograman

Tidak menimbulkan keraguan makna

Independent :

(16)

Algoritma

:

Terdiri atas langkah-langkah yang terdefinisi

dengan baik

 Bisa dihitung (computable) atau bisa diukur (measurable)

 Menerima input, menghasilkan output

 Memungkinkan komputer melakukan proses

(17)

Struktur Dasar Algoritma

1. Runtunan (Sequence)

2. Pemilihan (

Selection

)

(18)

Runtunan (

Sequence

)

Algoritma merupakan runtunan (sequence)

satu atau lebih instruksi/pernyataan,

setiap pernyataan dikerjakan secara

berurutan sesuai dengan urutan

penulisannya. Sebuah instruksi

dilaksanakan setelah instruksi sebelumnya

selesai dilaksanakan.

Urutan instruksi menentukan keadaan

(19)

Pemilihan (

Selection

)

if kondisi then

aksi

endif

if kondisi then

aksi1

else

aksi2

(20)

Pengulangan (

Repetition)

for var  awal to akhir do aksi

endfor

repeat

aksi

until kondisi_stop

while kondisi_ulang do aksi

(21)

Pengkodean :

Membuat Kode-kode / perintah-perintah yang mirip dengan bahasa pemrograman.

Tujuan

yang

harus

dicapai

dalam

pengkodean adalah :

EFISIENSI :

Efisiensi kode, merupakan satu kesatuan

dengan efisiensi algoritma yang telah didefinisikan pada tahap perancangan

Efisiensi memori adalah keefisienan perintah

(22)

Efisiensi I/O :

I/O yang berpengaruh langsung terhadap

pemakai, maksudnya input yang dimasukkan oleh pemakai cukup jelas dan mudah

dimengerti begitu juga untuk output yang dihasilkan.

I/O yang berpengaruh secara langsung

(23)

Contoh masalah: Video conference

(24)

Masalah

“data yang sangat besar”

– Membutuhkan bandwidth komunikasi besar

Membutuhkan memori yang besar

Delay waktu transmisi besar

Biaya tinggi

Solusi

“Kompresi data”

– Memori menjadi lebih kecil

(25)

“Kompresi data” mengacu pada

sifat redundancy (kerangkapan

data)

Bagaimana mentukan ada tidaknya

kerangkapan data

Bagaimana jenis kerangkapan datanya

(berurutan, periodik, acak)

Metode apa yang digunakan untuk

(26)

Contoh kerangkapan data:

26 26 26 27 30 30 … (rangkap berurutan)

(27)

 Mentukan ada tidaknya atau besar kecilnya kerangkapan data :

Hitung histogram data (frekuensi

munculnya setiap nilai data)

– Hitung entropy-nya

Contoh kerangkapan data:

26 26 26 27 30 30 … (rangkap berurutan)

(28)

Metode pemampatan data

Run Length Encoding (RLE)

Hitung jumlah perulangan data yang

berurutan

Catat jumlah perulangannya

Contoh :

26 26 26 27 30 30  26 2 27 0 30 1

26 30 27 26 25 26  26 0 30 0 27 0 26 0 25 0 26 0

26 30 27 26 25 26 26 30 27 26 25 26 (periodik)

(29)

Pohon Biner (Huffman coding)

Contoh : "this is an example of a huffman tree"

- statistik munculnya karakter (histogram) :

“ “= 7, a=4, e=4, f=3, t=2, h=2, i=2, s=2, n=2, m=2,

x=1, p=1, l=1, u=1, 0=1, r=1.

- Probabilitas munculnya karakter : “ “= 0.1944…, a=e=0.1111…, f=0.0833…,

(30)

Pohon Biner (Huffman coding)

Contoh : "this is an example of a huffman tree« 0011 1000 1001 1010

(31)
(32)

Representasi Citra Digital

(data visual)

Citra Berwarna (RGB)

Citra Gray-level

(33)

Secara fisik : Representasi informasi pada suatu media; kertas, film, monitor dll.

Definisi Citra

Informasi dalam citra :

- informasi dasar (warna, bentuk dan texture) - informasi abstrak (Cantik, senang, dst.)

- informasi kejadian (pesta, perkawinan, dst.)

(34)

97 90 88 75 80

73 84 88 84 66 77 81 94 90 91 63 69 89 89 79 41 55 78 81 75

Secara matematis :

Fungsi dua dimensi I(x, y) yang menyatakan nilai

intensitas atau warna I pada posisi x,y.

Citra berwarna I(m,n,w) w = (R,G,B [0, 2b-1])

Representasi Citra Digital

(35)

Citra gray level :

Diperoleh dari citra berwarna,

L = 0.299 R + 0.587 G + 0.114 B

Representasi Citra Digital

(36)

Program Matlab :

Im = imread(‘nama file citea’); [N,M] = size(Im);

for i = 1 : N for j = 1 : M

R = Im(i,j,1) ; G = Im(i,j,2) ; B = Im(i,j,3) ;

Im(i,j) = 0.299 R + 0.587 G + 0.114 B; end

end

(37)

Citra Biner :

Diperoleh dari citra gray level,

1 jika L > Threshold

Representasi Citra Digital

1 1 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0

0 0 1 0 0

(38)

Program Matlab :

Threshold = 90

Im = imread(‘nama file citea’); [N,M] = size(Im);

for i = 1 : N for j = 1 : M

if Im(i,j) >= Threshold Im(i,j) = 1;

else

Im(i,j) = 0; end

end

(39)
(40)

Urutan proses algoritma Histogram Citra :

- Baca citra (format citra : jpg, bmp, png, …)

- Baca ukuran citra

- Berapa level intensitas dalam citra

(8 bit/pixel  maksimum 256) - Hitung histogram citra

(41)

Algortimanya adalah sebagai berikut :

Procedure HistCitra(Input Im : ArrayInt, Output H : LarikInt) { K. Awal : Elemen Array Im Telah terdefinisi

K. Akhir : Elemen Larik H Histogram

Proses : Menghitung banyaknya pixel citra yang memiliki nilai intensitas yang sama}

Deklarasi

k : integer {Pencacah untuk jumlah langkah} j : integer {Pencacah untuk penelusuran array} N : integer {Ukuran baris citra}

(42)

Program Matlab :

H(1:Lmax) =0; for i = 1 : N for j = 1 : M

H(Im(i,j)) = H(Im(i,j)) +1; end

(43)

0 50 100 150 200 250 300 0

0.002 0.004 0.006 0.008 0.01 0.012

0 50 100 150 200 250 300 0

500 1000 1500 2000 2500 3000

Histogram dari hasil eksekusi algoritma

(44)

Analisis tekstur citra

(45)

Algoritma pengitungan Histogram Citra, mean dan variance

1. For i = 1 to N

2. For j = 1 to M

3. h(I(i,j)) = h(I(i,j))+ 1 4. End for

5. End for 6. htsum =0

7. For np = 0 to 255

8. htsum = htsum+h(np) * np 9. End for

10. µasli = htsum/(M*N) 11. Vtot=0

12. For np = 0 to 255

13. Vtot=Vtot+ (np - µasli)^2) * h(np)

14. End for

(46)

6.2.4 LEMPEL-ZIV-WELCH (LZW) CODING

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 46

- Metode Lempel-Ziv-Welch (LZW )merupakan

metode kompresi data yang bersifat umum dan dapat digunakan pada semua jenis data.

- LZW merupakan pengembangan dari metode

LZ78 yang dikembangkan oleh Abraham Lempel

, Jacob Ziv, and Terry Welch.

- Algoritmanya sangat sederhana dan

(47)

6.2.4 LEMPEL-ZIV-WELCH (LZW) CODING

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 47

- Telah digunakan secara meluas dalam kompresi

file yang berbasis perangkat lunak Unix dan juga digunakan dalam kompresi citra format GIF

- Andaikan kita ingin mengkompres data teks

berupa sebuah kalimat berikut:

(48)

6.2.4 LEMPEL-ZIV-WELCH (LZW) CODING

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 48 (kata dan nilai)

T <NIL> T

(49)

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 49

Char (C)

Kata

(W) W+C

Keluaran (nilai)

Kamus (kata dan nilai)

O BE BEO 258 BEO = 266

R O OR

T OR ORT 260 ORT = 267

O T TO

B TO TOB

E TOB TOBE 265 TOBE = 268

O E EO

R EO EOR 259 EOR = 269

N R RN

O RN RNO 261 RNO = 270

T O OT

EOF OT 263

(50)

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 50

6.2.4 LEMPEL-ZIV-WELCH (LZW) CODING

- Hasil encoding atau kompresi :

84 79 66 69 79 82 78 79 84 256 258 260 265 259 261 263.

- Setiap nilai dari deretan tersebut dapat

dikodekan dengan jumlah bit maksimum adalah 9 bit.

- Total bit hasil kompresi adalah sebesar 16x9 bit = 144 bit, sedang jumlah bit data aslinya

sebanyak 24x8 bit = 192 bit.

- Rasio kompresi sebesar 192/144 = 1,333 kali

(51)

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 51

6.2.4 LEMPEL-ZIV-WELCH (LZW) DECODING

Input C W W+C1 Output Kamus

84 T T T

(52)

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 52

- Teori kompresi dikembangkan mengacu pada

kerangkapan data/informasi.

- Dua informasi auditif atau informasi visual yang mengandung makna yang sama dan terbentuk oleh data dengan nilai numerik yang sama, dinyatakan memiliki kerangkapan informasi dan kerangkapan data.

- Dua informasi auditif atau informasi visual yang mengandung makna yang sama tetapi terbentuk oleh data dengan nilai numerik yang berbeda, dinyatakan memiliki kerangkapan informasi tanpa kerangkapan data.

(53)

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 53

- Tiga buah objek pertama berwarna biru (segi tiga, R=0, G=51, B=204), (segi empat, R=1, G=52,

B=205) dan (lingkaran, R=2, G=49, B=202).

- Tiga buah objek kedua berwarna ungu : (segi tiga,

R=255, G=0, B=255), (segi empat, R=255, G=0, B=255) dan (lingkaran, R=255, G=0, B=255).

(54)

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 54

- Secara visual, tiga buah objek pertama memberi

informasi warna biru yang sama (walau datanya berbeda), sehingga data warna biru ketiga objek dapat diwakilkan oleh salah satunya: (segi tiga, segi empat, lingkaran, R=1, G=52, B=205).

- Terkompresi dengan rasio kompresi 9/3 = 3

- Secara visual, tiga objek kedua memberi

informasi warna ungu yang sama dan datanya sama: (segi tiga, segi empat, lingkaran, R=255, G=0, B=255).

- Terkompresi dengan rasio kompresi 9/3 = 3

(55)

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 55

- Semakin banyak data rangkap, semakin tinggi

rasio kompresi.

- Kerangkapan data dapat diperbanyak melalui

proses deferensial dan quantisasi

- Deferensial merupakan selisih antara dua data

(56)

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 56

- Data citra I heterogen data DI homogen bernilai “1”..

- Metode diferensial digunakan sebagai algoritma

DPCM (Differential Pulse Code Modulation) biasa

digunakan untuk kompresi citra lossless.

(57)

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 57

- Metode kuantisasi digunakan pada teknik

kompresi data yang bersifat lossy: IQ =round( I/Q)

- Data citra I = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10), jika nilai kuantiasi Q=5

- IQ = (0, 0, 1, 1, 1, 1, 1, 2, 2, 2)

- Proses rekonstruksi:

I =round(IQ *Q)

- Hasil rekonstruksi: I = (0, 0, 5, 5, 5, 5, 5, 10, 10, 10).

- Hampir semua nilai data berubah, secara visual

(58)

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 58

- Susuan data dapat mempengaruhi rasio kmpresi

903 -4 3 1 0 0 0 0 Model zig-zag coding

Hasil DCT dan kuantisasi Pada kompresi JPEG

903 -4 -1 0 0 3 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

(59)

Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab

Oleh: Sarifuddin Madenda 59

Program Matlab zig-zag coding:

Udata(1:64)=0; for i = 1 : N

for j = 1 : M

Udata(z(i,j)) = data(i,j); end

(60)

Referensi

Dokumen terkait

Setelah menyimak penjelasan guru tentang tanggung jawab warga, siswa dapat mengumpulkan informasi tentang pelaksanaan pemilihan kepala desa di desanya.. Setelah

Zirconia merupakan bahan keramik yang mempunyai sifat mekanis baik dan banyak digunakan sebagai media untuk meningkatkan ketangguhan retak bahan keramik lain diantaranya

Dalam hal bank mewakilkan kepada nasabah (wakalah) untuk membeli barang, maka akad murabahah harus dilakukan setelah barang secara prinsip menjadi milik bank. Bank

Kisah Sunan Kudus memiliki empat potongan kisah terpilih dimana menceritakan perjalanan Sunan Kudus bertemu Kyai Telingsing dan bekerjasama menyebarkan ajaran Islam bersama

Puji syukur kepada Allah SWT atas rahmat dan karunia-Nya, sehingga penulis dapat menyelesaikan penyusunan skripsi dengan judul “FAKTOR - FAKTOR YANG MEMPENGARUHI

dalam Permainan Taekwondo; (6) Terdapat Hubungan yang Signifikan Antara Kemampuan Waktu Reaksi dan Fleksibilitas Atlet UKM Taekwondo UPI dengan Hasil

Tujuan penelitian berkaitan dengan peranan pariwisata terhadap peningkatan ekonomi masyarakat, yaitu untuk mengetahui seberapa besar kontribusi yang diberikan Desa Wisata

Kemudian usaha kedua yaitu merencanakan kampanye diawali dengan menyusun tujuan dari kampanye Counting Down ini yaitu: untuk menberikan informasi kepada