Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

ANALISIS DAN PERANCANGAN ALGORITMA

Presentasi serupa


Presentasi berjudul: "ANALISIS DAN PERANCANGAN ALGORITMA"— Transcript presentasi:

1 ANALISIS DAN PERANCANGAN ALGORITMA
Sarifuddin Madenda Universitas Gunadarma November 2013

2 Analisis : prosedur yang dilakukan untuk mengidentifikasi, merumuskan masalah dan menyusun metode serta langkah-langkah pemecahan masalah secara tepat Identifikasi dan fahami masalah secara tepat Definisikan masalah utama dan turunkan secara rinci, Batasi masalah (bila dibutuhkan).

3 Contoh: Analisis Masalah Citra Medis

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 digit angka yang akan diproses

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 para pemakai

6 ALUR TAHAPAN ANALISIS DAN PERANCANGAN ALGORITMA
Masalah Pengkodean Algoritma Pendefinisian Masalah Implementasi dan uji coba dengan komputer Deskripsi Masalah Tidak Sesuai Perancangan Aloritma Ya Program Siap pakai A

7 Perancangan (Metode Penelitian) :
Pemodelan penggambaran, peren-canaan dan pembuatan skema atau bagan umum sebagai satu kesatuan proses dalam memecahkan masalah

8 Deteksi nodul dalam paru
Perancangan Algoritma Extraksi dan Penghitunga Luas Area Nodul Paru Deteksi nodul dalam paru Hitung luas area nodul Citra Input Cropping Citra Input Ekstraksi Area paru

9 Algoritma : Definisi : 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 keluaran seperti yang diharapkan.

10 Desain Algoritma : 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 Desain Algoritma : 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 Independen

13 Terstruktur : Terdiri dari sejumlah langkah, blok, prosedur & fungsi Satu pintu masuk dan satu pintu keluar Aliran Kendali mengikuti pola tertentu Mudah dikelola & dikembangkan

14 Efisien : Penggunaan memori dan waktu proses yang optimal
Processor : menjalankan setiap perintah secara cepat dan tepat Variabel dibuat sesedikit mungkin sesuai kebutuhan

15 Rinci : Mudah dinyatakan dengan satu atau beberapa perintah bahasa pemrograman Tidak menimbulkan keraguan makna Independent : Tidak tergantung pada bahasa pemrog- raman tertentu

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 penyelesaiain suatu masalah

17 Struktur Dasar Algoritma
Runtunan (Sequence) Pemilihan (Selection) Pengulangan (Repetition)

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 akhir algoritma

19 Pemilihan (Selection)
if kondisi then aksi endif aksi1 else aksi2

20 Pengulangan (Repetition)
for var  awal to akhir do aksi endfor repeat until kondisi_stop while kondisi_ulang do endwhile

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 dalam program dan dalam menggunakan memori baik untuk pelaksanaan perintah ataupun pada penyimpanan data

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 terhadap mesin.

23 Contoh masalah: Video conference
Volume data multimedia sangat besar Bandwidth jaringan terbatas dan mahal Delay waktu transmisi besar

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 Biaya dapat diperkecil

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 memampatkan data yang rangkap/berulang

26 Contoh kerangkapan data:
… (rangkap berurutan) (rangkap tidak berurutan) (periodik)

27 Mentukan ada tidaknya atau besar kecilnya kerangkapan data :
Hitung histogram data (frekuensi munculnya setiap nilai data) Hitung entropy-nya Contoh kerangkapan data: … (rangkap berurutan) (rangkap tidak berurutan) (periodik)

28 Metode pemampatan data Run Length Encoding (RLE)
Hitung jumlah perulangan data yang berurutan Catat jumlah perulangannya Contoh : (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 : “ “= …, a=e=0.1111…, f=0.0833…, t=h=i=s=n=m=0.0556, x=p=l=u=o=r=

30 Pohon Biner (Huffman coding)
Contoh : "this is an example of a huffman tree«  “ “= 000 a = 010 e = 011 f = 0010 t = 0011 h = 1000 i = 1001 s = 1010 n = 1011 m = 1100 x = 11010 p = 11011 l = 11100 u = 11101 o = 11110 r = 11111

31 Pohon Biner (Huffman coding)
1 “ “= 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 12 20 36 “ “= 000 a = 010 e = 011 f = 0010 t = 0011 h = 1000 i = 1001 s = 1010 n = 1011 m = 1100 x = 11010 p = 11011 l = 11100 u = 11101 o = 11110 r = 11111 8 5 4 8 16 4 4 8 2 2 4 288 bit  135 bit 2

32 Representasi Citra Digital (data visual)
Citra Berwarna (RGB) Citra Gray-level (Luminance) Citra Hitam-Putih (“0” & “1”)

33 Representasi Citra Digital (data visual)
Definisi Citra Secara fisik : Representasi informasi pada suatu media; kertas, film, monitor dll. Informasi dalam citra : - informasi dasar (warna, bentuk dan texture) - informasi abstrak (Cantik, senang, dst.) - informasi kejadian (pesta, perkawinan, dst.)

34 Representasi Citra Digital
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]) 88 134 97 73 129 90 127 56 114 75 40 115 80 79 110 122 84 126 62 120 55 66 81 107 77 112 94 83 121 78 123 91 89 63 93 69 119 76 71 41 106 70 100 97 90 88 75 80 73 84 66 77 81 94 91 63 69 89 79 41 55 78 134 129 127 114 115 110 122 126 120 97 107 112 121 123 89 93 119 71 84 106 100 88 73 56 40 79 75 62 55 81 77 84 83 78 76 71 91 70 69

35 Representasi Citra Digital
Citra gray level : Diperoleh dari citra berwarna, L = R G B Citra gray level  I(m,n) = L [0, 2b-1] 106 97 96 82 78 87 94 89 73 88 90 102 98 77 80 95 64 70 92 81

36 citra berwarna  gray level
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) = R G B; end

37 Representasi Citra Digital
Citra Biner : Diperoleh dari citra gray level, 1 jika L > Threshold B = 0 jika L < Threshold Citra biner  I(m,n) = B [0, 1] Threshold < 90 1

38 citra gray level  Citra Biner
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

39 Algoritma pengitungan Histogram Citra,

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 Tampilkan kurva 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} M : integer {Ukuran kolom 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 Histogram dari hasil eksekusi algoritma
Histogram tak ternormalisasi Histogram ternormalisasi

44 Analisis tekstur citra
Algoritma pengitungan Histogram Citra, mean dan variance

45 Algoritma pengitungan Histogram Citra, mean dan variance
For i = 1 to N For j = 1 to M h(I(i,j)) = h(I(i,j))+ 1 End for htsum =0 For np = 0 to 255 htsum = htsum+h(np) * np µasli = htsum/(M*N) Vtot=0 Vtot=Vtot+ (np - µasli)^2) * h(np) σasli = Vtot/M*N

46 6.2.4 Lempel-Ziv-Welch (LZW) CODING
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 memungkinkan untuk diimplementasikan dalam bentu peragkat keras. Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab Oleh: Sarifuddin Madenda

47 6.2.4 Lempel-Ziv-Welch (LZW) CODING
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: TOBEORNOTTOBEORTOBEORNOT Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab Oleh: Sarifuddin Madenda

48 6.2.4 Lempel-Ziv-Welch (LZW) CODING
Char (C) Kata (W) W+C Keluaran (nilai) Kamus (kata dan nilai) T <NIL> O TO T = 84 TO = 256 B OB O = 79 OB = 257 E BE B = 66 BE = 258 EO E = 69 EO = 259 R OR OR = 260 N RN R = 82 RN = 261 NO N = 78 NO = 262 OT OT = 263 TT TT = 264 TOB 256 TOB = 265 BEO 258 BEO = 266 2 1 3 Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab Oleh: Sarifuddin Madenda

49 6.2.4 Lempel-Ziv-Welch (LZW) CODING
Char (C) Kata (W) W+C Keluaran (nilai) Kamus (kata dan nilai) O BE BEO 258 BEO = 266 R OR T ORT 260 ORT = 267 TO B TOB E TOBE 265 TOBE = 268 EO EOR 259 EOR = 269 N RN RNO 261 RNO = 270 OT EOF 263 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 : 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 lebih kecil 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 79 O TO TO = 256 66 B OB OB = 257 69 E BE BE = 258 EO EO = 259 82 R OR OR = 260 78 N RN RN = 261 NO NO = 262 OT OT = 263 256 TT TT = 264 258 TOB TOB = 265 260 BEO BEO = 266 265 ORT ORT = 267 259 TOBE TOBE = 268 261 EOR EOR = 269 263 RNO RNO = 270 Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab Oleh: Sarifuddin Madenda

52 6.1 Kerangkapan Data dan Informasi
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. Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab Oleh: Sarifuddin Madenda

53 6.1 Kerangkapan Data dan Informasi
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). Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab Oleh: Sarifuddin Madenda

54 6.1 Kerangkapan Data dan Informasi
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). 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 pixel yang saling berurutan: 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. Proses rekonstruksi: Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab Oleh: Sarifuddin Madenda

57 Hasil rekonstruksi: I = (0, 0, 5, 5, 5, 5, 5, 10, 10, 10).
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 perubahan ini tidak begitu tampak Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab Oleh: Sarifuddin Madenda

58 Hasil DCT dan kuantisasi
Susuan data dapat mempengaruhi rasio kmpresi Hasil DCT dan kuantisasi Pada kompresi JPEG data = Model zig-zag coding z = 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 Pengolahan Citra dan Video Digital: Teori, Algoritma dan Pemrograman Matlab Oleh: Sarifuddin Madenda

60


Download ppt "ANALISIS DAN PERANCANGAN ALGORITMA"

Presentasi serupa


Iklan oleh Google