Anda di halaman 1dari 156

ALGORITHM DESIGN AND ANALYSIS (ADA)

ALGORITHM DESIGN AND ANALYSIS (ADA) 1


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

ALGORITHM DESIGN AND ANALYSIS (ADA)

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


PERJALANAN KEHIDUPAN
Darimana Aku Untuk apa Aku hidup Akan kemana setelah
berasal ? ? Mati ?
Hubungan Penciptaan
Hubungan Pembangkitan
Hubungan Perintah & Larangan
Hubungan Hisab Amal

Manusia Lahir Manusia Kehidupan Alam Manusia Mati


Semesta

Manusia Manusia kembali


diciptakan Hidup ibadah pada Allah SWT
Allah SWT kepada Allah SWT

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG Dr. Ir. Sumijan, M.Sc


PERJALAN
PERJALANKEHIDUPAN
PERJALAN KEHIDUPAN
KEHIDUPAN

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG Dr. Ir. Sumijan, M.Sc


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

BELAJAR ADALAH BERUBAH

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

1 REUVEN BAR ON
IQ rata-rata berpengaruh 6% dalam keberhasilan maksimal 20% EQ INVENTORY

2 INSTITUT TEKNOLOGI CARNEGIE


dari 10.000 orang sukses :
15% sukses karena kemampuan teknis
85% sukses karena faktor-faktor kepribadian

3 DR. ALBERT EDWARD WIGGAM


dari 4000 orang yang kehilangan pekerjaan :
400 orang (10%) karena kemampuan teknis
3600 orang (90%) karena faktor-faktor kepribadian

4 Hasil studi D.P. Beach, 1982


87% orang yang kehilangan pekerjaan atau macet karirnya adalah disebabkan karena tidak
memiliki etika kerja yang baik UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

 25 tahun mengadakan penelitian


 masuk ke perusahaan-perusahaan besar,
 dan mewawancarai 800 orang pengusaha sukses
Mereka mengatakan :
” Tren saat ini, perusahaan-perusahaan besar sangat memperhatikan etika
hidup, bahkan aspek-aspek spiritual karyawan mereka sangat berkembang
pesat. Di era perdagangan bebas di masa datang, hal-hal yang baik dan suci
akan mudah kita temui di perusahaan-perusahaan ataupun organisasi
modern, tidak hanya di wihara, gereja, masjid atau tempat ibadah saja. ”

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Peringkat Karakteristik %
1 Jujur 88
2 Berpikiran Maju 71
3 Kompeten 66
4 Dapat Memberi Inspirasi 65
5 Cerdas 47
6 Adil 42
7 Berpandangan Luas 40
8 Mendukung 35
9 Terus Terang 34
10 Bisa Diandalkan 33
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
Contents
1
3 Review Materi 1 s.d 8

2
3 Decrease and Conquer

3 Insertion and Selection Sort

3
4 DFS and BFS

5 Binary Search Tree

10
TUGAS KELOMPOK PS-MTI
ANG. 40-A (MK-ADA)
Tabel 1. Pembagian Kelompok dan Materi yang diskusikan pada kelompok
No. Kelompok Materi
1 Absen 1 s.d 5 Algoritma Greedy (Prinsip, Knapsak Problem, Huffman Code)
2 Absen 6 s.d 10 Penulusuran pada Graf (DFS, BFS) dan minimum spanning tree
(Algoritma Prim, Algoritma Kruskal)
3 Absen 11 s.d 14 Mencari lintasan terpendek pada graf (algoritma Dijkstra, Algoritma
Floyd-Warshall, Algoritma-Ford)
4 15 s.d 18 Pewarnaan peta (Deskripsi, algoritma welsh powell, aplikasi)

Buat Slide presentasi yang membahas materi yang telah ditentukan sesuai dengan tabel 1.

11
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

ALGORITMA ?.

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

ALGORITMA ?.

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

ALGORITMA ?.

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

ALGORITMA & PROGRAM ?.

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

DATA AND DATATYPES

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

DATA AND DATATYPES

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

VARIABLES

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

VARIABLES

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

EXPRESSION

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

THE PROGRAM IN MATLAB


clear all; close all
citra = imread('meridian.png');
figure(1), imshow(citra);
[baris, kolom, layer] = size(citra);
citra=double(citra);
for i = 1:baris
for j = 1:kolom
for k = 1:layer
citraCerminOrigin(i,j,k)=citra(baris-i+1,kolom-j+1,k);
end
end
end
citraCerminOrigin = uint8(citraCerminOrigin);
figure(2), imshow(citraCerminOrigin);
imwrite(citraCerminOrigin, 'meridianCerminOrigin.bmp', 'bmp');

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

THE ARRAYS

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

INDEX OF AN ARRAY

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

THE FUNCTIONS

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

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.

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Desain Algoritma :
1. Uraian langkah-langkah dalam pemecahan masalah
yang ada
2. Permasalahan dibagi menjadi sub-masalah yang lebih
mudah dikerjakan.
3. Sub-masalah dibagi lagi menjadi sejumlah sub-
masalah yang lebih kecil sampai menjadi bagian yang
mudah diselesaikan (pemrograman modular).
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Desain Algoritma :
1. Pengkajian berulang, sehingga akan diperoleh
algoritma yang paling lengkap, tepat, benar dan
relevan, dan siap untuk diimplementasikan dalam
bentuk program.
2. Fase kajian akhir dilakukan untuk memastikan sudah
tidak ada lagi permasalahan lain yang terlupakan.

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Karakteristik Algoritma
1. Terstruktur
2. Efisien
3. Rinci
4. Tidak bermakna ganda
5. Independen
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

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

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Efisien : Penggunaan memori dan waktu


proses yang optimal
1. Processor : menjalankan setiap perintah secara cepat dan tepat
2. Variabel dibuat sesedikit mungkin sesuai kebutuhan

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

RINCI :
1. Mudah dinyatakan dengan satu atau beberapa
perintah bahasa pemrograman
2. Tidak menimbulkan keraguan makna

INDEPENDENT :
Tidak tergantung pada bahasa pemrog- raman
tertentu
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Algoritma :
1. Terdiri atas langkah-langkah yang terdefinisi dengan baik
2. Bisa dihitung (computable) atau bisa diukur (measurable)
3. Menerima input, menghasilkan output
4. Memungkinkan komputer melakukan proses penyelesaiain
suatu masalah

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Struktur Dasar Algoritma


1. Runtunan (Sequence)
2. Pemilihan (Selection)
3. Pengulangan (Repetition)

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Runtunan (Sequence)
1. Algoritma merupakan runtunan (sequence) satu atau
lebih instruksi/pernyataan,
2. setiap pernyataan dikerjakan secara berurutan sesuai
dengan urutan penulisannya. Sebuah instruksi
dilaksanakan setelah instruksi sebelumnya selesai
dilaksanakan.
3. Urutan instruksi menentukan keadaan akhir algoritma
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Pemilihan (Selection)
if kondisi then
aksi
endif

if kondisi then
aksi1
else
aksi2
endif

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Pengulangan (Repetition)
for var  awal to akhir do
aksi
endfor

repeat
aksi
until kondisi_stop

while kondisi_ulang do
aksi
endwhile
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Pengkodean : Membuat Kode-kode / perintah-perintah yang


mirip dengan bahasa pemrograman.
Tujuan yang harus dicapai dalam pengkodean adalah :
EFISIENSI :

1. Efisiensi kode, merupakan satu kesatuan dengan efisiensi


algoritma yang telah didefinisikan pada tahap perancangan
2. Efisiensi memori adalah keefisienan perintah dalam program
dan dalam menggunakan memori baik untuk pelaksanaan
perintah ataupun pada penyimpanan data
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

EFISIENSI I/O :
1. I/O yang berpengaruh langsung terhadap
pemakai, maksudnya input yang dimasukkan
oleh pemakai cukup jelas dan mudah dimengerti
begitu juga untuk output yang dihasilkan.
2. I/O yang berpengaruh secara langsung terhadap
mesin.

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Analisis : prosedur yang dilakukan untuk


mengidentifikasi, merumuskan masalah dan
menyusun metode serta langkah-langkah pemecahan
masalah secara tepat
1. Identifikasi dan fahami masalah secara tepat
2. Definisikan masalah utama dan turunkan secara rinci,
3. Batasi masalah (bila dibutuhkan).

UNIVERSITAS PUTRA INDONESIA “YPTK” - PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Contoh: Analisis Masalah Citra Medis

UNIVERSITAS PUTRA INDONESIA “YPTK” - PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Analisis kebutuhan meliputi :


1. Siapa pemakai program
2. Pesan-pesan apa saja yang ingin ditampilkan
3. Apakah dibutuhkan password guna menjaga keamanan
program
4. Bagaimana format menu, input, proses atau output yang
diinginkan
5. Data apa saja yang akan diinputkan
6. Seberapa tinggi tigkat presisi => Berapa digit angka yang
akan diproses
UNIVERSITAS PUTRA INDONESIA “YPTK” - PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

8. Rumus apa yang akan digunakan atau bagaimana proses


pengolahan data harus dilakukan
9. Siapa saja yang membutuhkan informasi yang akan
dihasilkan nanti
10. Informasi apa yang dibutuhkan oleh masing-masing
pemakai
11. Apakah manfaat dari informasi yang dihasilkan tersebut
12. Kapan informasi tersebut dibutuhkan
13. Apa bentuk help yang diinginkan oleh para pemakai
UNIVERSITAS PUTRA INDONESIA “YPTK” - PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
ALUR TAHAPAN ANALISIS DAN PERANCANGAN ALGORITMA
A
Masalah

Pengkodean
Pendefinisian Algoritma
Masalah
Implementasi dan uji
coba dengan komputer
Deskripsi
Masalah
Tidak

Perancangan Sesuai
Aloritma Ya
Program Siap
A pakai

UNIVERSITAS PUTRA INDONESIA “YPTK” - PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Perancangan (Metode Penelitian) :


Pemodelan penggambaran, peren-canaan dan
pembuatan skema atau bagan umum sebagai
satu kesatuan proses dalam memecahkan
masalah

UNIVERSITAS PUTRA INDONESIA “YPTK” - PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Perancangan Algoritma Extraksi dan Penghitungan Luas Area Nodul


Paru
Nodul adalah pertumbuhan jaringan

U S yang tidak normal dapat berupa

A S tonjolan atau benjolan. Nodul dapat


tumbuh dan berkembang tepat di
K bawah kulit. Nodul juga dapat

O H berkembang pada jaringan kulit yang

N T lebih dalam atau bahkan dapat


tumbuh pada organ tubuh contoh di

CO paru-paru.

Citra Input Cropping Citra Ekstraksi Area Deteksi nodul Hitung luas area
(Image) Input paru dalam paru nodul

UNIVERSITAS PUTRA INDONESIA “YPTK” - PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

MASALAH “data yang sangat besar”


1. Membutuhkan bandwidth komunikasi besar
2. Membutuhkan memori yang besar
3. Delay waktu transmisi besar
4. Biaya tinggi

Solusi “Kompresi data”


1. Memori menjadi lebih kecil
2. Biaya dapat diperkecil
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

“Kompresi data” mengacu pada sifat redundancy


(kerangkapan data)
1. Bagaimana mentukan ada tidaknya
kerangkapan data
2. Bagaimana jenis kerangkapan datanya
(berurutan, periodik, acak)
3. Metode apa yang digunakan untuk
memampatkan data yang rangkap/berulang
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Contoh kerangkapan data:


26 26 26 27 30 30 … (rangkap berurutan)
26 30 27 26 25 26 (rangkap tidak berurutan)
26 30 27 26 25 26 26 30 27 26 25 26 (periodik)

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Mentukan ada tidaknya atau besar kecilnya kerangkapan data :


1. Hitung histogram data (frekuensi munculnya setiap nilai data)
2. Hitung entropy-nya
Contoh kerangkapan data:
26 26 26 27 30 30 … (rangkap berurutan)
26 30 27 26 25 26 (rangkap tidak berurutan)
26 30 27 26 25 26 26 30 27 26 25 26 (periodik)

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Metode pemampatan data Run Length Encoding (RLE)


1. Hitung jumlah perulangan data yang berurutan
2. 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)
 6 1 26 30 27 26 25 26
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

 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…, t=h=i=s=n=m=0.0556,
x=p=l=u=o=r=0.0278.

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Representasi Citra Digital (data visual)

Citra Berwarna Citra Gray-level Citra Hitam-Putih


(RGB) (Luminance) (“0” & “1”)

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

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.)
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Representasi Citra Digital


Secara matematis :
1. Fungsi dua dimensi I(x, y) yang menyatakan nilai intensitas atau warna I pada posisi x,y.
88 73 73 56 40
134 129 127 114 115
2. Citra berwarna  I(m,n,w)  w = (R,G,B [0, 2b-1]) 97 90 88 75 80

 I (0,0) I (0,1) . . . I (0, N  1)  79 75 73 62 55


 I (1,0) 110 122 126 120 97
 I (1,1) I (1, N  1)  73 84 88 84 66
 .  81 77 84 83 78
I (m, n)    107 112 127 121 123
 .  77 81 94 90 91
 . 
79 77 78 79 76
  89 93 119 119 107
 I ( M  1,0) I ( M  1,1) . . . I ( M  1, N  1)
97 90 88 75 80 63 69 89 89 79
73 84 88 84 66
134 129
77
127
81
114
94
115 81 71 91 70 69
9790
91
88 110
73 122
73 126
56 120
40
79 107
75
63
112
73
69
127
62
89
121
55
89
123
79 71 84 106 110 100
81 89
77 93
41
84
55
119
83
78
119
78
81
107
75 41 55 78 81 75
79 71
77 84
78 106
79 110
76 100
81 71 91 70 69

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
Representasi Citra Digital
Citra gray level : 106 97 96 82 78
• Diperoleh dari citra berwarna, 87 94 96 89 73
• R=I(:,:,1);G=I(:,:,2);B=I(:,:,3) 88 90 102 98 97
77 80 95 97 87
• L = 0.299 R + 0.587 G + 0.114 B
64 70 92 87 81
• Citra gray level  I(m,n) = L [0, 2 -1] b

 I (0,0) I (0,1) . . . I (0, N  1) 


 I (1,0) I (1,1) I (1, N  1) 

 . 
I (m, n)   
 . 
 . 
 
 I ( M  1,0) I ( M  1,1) . . . I ( M  1, N  1)

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

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) = 0.299 R + 0.587 G + 0.114 B;
end
end

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Representasi Citra Digital


Citra Biner :  I (0,0) I (0,1) . . . I (0, N  1) 
 I (1,0) I (1,1) I (1, N  1) 

• Diperoleh dari citra gray level,  . 
I (m, n)   
 . 
1 jika L > Threshold  . 
• B=  
 I ( M  1,0) I ( M  1,1) . . . I ( M  1, N  1)
0 jika L < Threshold
1 1 1 0 0 Threshold < 90
• Citra biner  I(m,n) = B [0, 1] 0 1 1 0 0
0 1 1 1 1
0 0 1 1 0
0 0 1 0 0

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

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
end
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Algoritma pengitungan Histogram Citra,

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

URUTAN PROSES ALGORITMA HISTOGRAM CITRA :

1. Baca citra (format citra : jpg, bmp, png, …)


2. Baca ukuran citra
3. Berapa level intensitas dalam citra (8 bit/pixel 
maksimum 256)
4. Hitung histogram citra
5. Tampilkan kurva histogram citra

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

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}

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Program Matlab :
H(1:Lmax) =0;
for i = 1 : N
for j = 1 : M
H(Im(i,j)) = H(Im(i,j)) +1;
end
end

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Histogram dari hasil eksekusi algoritma


3000 0.012

2500 0.01

2000 0.008

1500 0.006

1000 0.004

500 0.002

0 0
0 50 100 150 200 250 300 0 50 100 150 200 250 300

Histogram tak ternormalisasi Histogram ternormalisasi

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

Analisis tekstur citra

Algoritma pengitungan Histogram Citra, mean dan variance

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

CITRA DAN PENGOLAHAN CITRA


• CITRA (Image) Gambar pada bidang dua dimensi
• Citra dibagi menjadi citra tampak dan citra tak Tampak

CITRA Citra Tak Tampak Citra Tampak

Fungsi Matematis Gambar


Foto
Kontinu Gambar
Lukisan
Diskrit
(Citra Digital)

Citra Optis
Pengelompokan Jenis – Jenis Citra

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG 92


YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

CITRA DAN PENGOLAHAN CITRA


1. Pengolahan Citra (Image Processing) : Pemrosesan
Citra, Khususnya menggunakan komputer, menjadi
citra yang kualitasnya lebih baik
2. Input berupa citra dan outputnya berupa citra yang
kualitasnya lebih baik dari citra input.
3. Pengolahan Citra Preprocessing pada bidang computer
vision
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG 93
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

OPERASI PENGOLAHAN CITRA


1. Perbaikan kualitas citra ( Image Enhancement)
2. Pemugaran citra (Image Restoration)
3. Pemampatan citra (Image Compression)
4. Segmentasi citra (Image Segmentation)
5. Pengorakan/penguraian citra (Image Analysis)
6. Rekonstruksi citra (Image Reconstruction)
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG 94
YAYASAN PERGURUAN TINGGI KOMPUTER (YPTK) PADANG
UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG

DAFTAR PUSTAKA
Wajib:
[1] Kenneth H. Rosen, Discrete Mathematics and Its Applications, 6th Ed, 2007, McGraw-Hill Inc.
[2] Peter Van Roy & Seif Haridi, Concepts, Techniques, and Models of Computer Programming,  2004, MIT
[3] Press.Gilles Brassard, Paul Bratley, Algorithmics: Theory & Practice, 1988, Prentice Hall.
 

Tambahan:
[4] Harsh Bhasin, Algorithms: Design and Analysis, 2015, Oxford.
Last modified: Monday, 28 September 2020, 12:17 AM

UNIVERSITAS PUTRA INDONESIA “YPTK” PADANG


Decrease and Conquer
1. Mengurangi permasalahan menjadi lebih kecil pada permasalahan
yang sama
2. Selesaikan permasalahan yang lebih kecil tersebut
3. Kembangkan permasalahan yang lebih kecil itu sehingga
menyelesaikan permasalahan sebenarnya
4. Dapat dilakukan dengan dengan metode top down atau bottom up

96
Permasalahan eksponensial: Hitung xn
n-1 multiplications
• Brute Force:
T(n) = 2*T(n/2) + 1
• Divide and Conquer: = n-1

• Decrease by one: T(n) = T(n-1) + 1 = n-1

T(n) = T(n/a) + a-1


• Decrease by log
= (a-1) n a
constant factor: = logwhen
2 n
a=2

97
Insertion sort
To sort array A[0..n-1], sort A[0..n-2] recursively and then insert A[n-1] in its
proper place among the sorted A[0..n-2]

• Usually implemented bottom up (non-recursively)

Example: Sort 6, 4, 1, 8, 5

6|4 1 8 5
4 6|1 8 5 Exercise :
1 4 6|8 5
1 4 6 8|5
1 4 5 6 8
98
Pseudo code Insertion sort

99
100
101
Kompleksitas waktu algoritma Insertion Sort:

Penyelesaian:
T(n) = cn + T(n – 1)
= cn + { c ⋅ (n – 1) + T(n – 2) }
= cn + c(n – 1) + { c ⋅ (n – 2) + T(n – 3) }
= cn + c ⋅ (n – 1) + c ⋅ (n – 2) + {c(n – 3) + T(n – 4) }
= ...
= cn+c⋅(n–1)+c(n–2)+c(n–3)+...+c2+T(1)
= c{ n + (n – 1) + (n – 2) + (n – 3) + ... + 2 } + a
= c{ (n – 1)(n + 2)/2 } + a
= cn2/2+cn/2 +(a–c)
= O(n2)

102
Selection Sort
• Algoritma sorting
• Sorting perbandingan pada element
• Terbagi menjadi 2 :
• Sorted list
• Sisa himpunan yang belum tersorting

103
Selection sort

104
105
• Misalkan tabel A berisi elemen-elemen berikut:

• Langkah-langkah pengurutan dengan Selection Sort:

106
• Kompleksitas waktu algoritma:

• Penyelesaian (seperti pada Insertion Sort):

107
Depth-First Search (DFS)
• Mengunjungi vertex-vertex pada grafik dengan selalu bergerak dari vertex yang
terakhir dikunjungi ke vertex yang belum dikunjungi, lakukan backtrack apabila
tidak ada vertex tetangga yang belum dikunjungi.

• Rekursif atau menggunakan stack


• Vertex di-push ke stack ketika dicapai untuk pertama kalinya
• Sebuah vertex di-pop off atau dilepas dari stack ketika vertex tersebut merupakan
vertex akhir (ketika tidak ada vertex tetangga yang belum dikunjungi)

• “Redraws” atau gambar ulang grafik dalam bentuk seperti pohon (dengan edges
pohon dan back edges untuk grafik tak berarah/undirected graph)

108
Pseudo code DFS

109
Example: DFS traversal of undirected graph
a b c d

e f g h

DFS traversal stack: DFS tree:


a
ab
abf
abfe 1 2 6 7
abf a b c d
ab
abg
abgc
abgcd e f g h
abgcdh
abgcd 4 3 5 8
… Red edges are tree edges and black
edges are cross edges.
110
1

2 3

4 5 6 7

8
1

2 3

4 5 6 7

8
1

2 3 4

5 6 7

8 9
Notes on DFS
• Time complexity of DFS is O(|V|). Why?
• each edge (u, v) is explored exactly once,
• All steps are constant time.

114
Breadth-first search (BFS)
• Mengunjungi vertex-vertex grafik dengan berpindah ke semua vertex tetangga
dari vertex yang terakhir dikunjungi.

• BFS menggunakan queue

• Mirip dengan level ke level dari pohon merentang

• “Redraws” atau gambar ulang grafik dalam bentuk seperti pohon (dengan edges
pohon dan back edges untuk grafik tak berarah/undirected graph)

115
Example of BFS traversal of undirected graph
a b c d

e f g h

BFS traversal queue: BFS tree:


a
bef
efg
fg 1 2 6 8
g
ch a b c d
hd
d
e f g h
3 4 5 7
Red edges are tree edges and black edges
are cross edges.
116
Pseudo code BFS

117
Notes on BFS
• Asumsi: setiap simpul dapat membangkitkan b buah simpul baru.
• Misalkan solusi ditemukan pada aras/level ke-d
• Jumlah maksimum seluruh simpul:

1+b+b2 +b3 +...+bd =(bd+1 –1)/(b–1)


T(n) = O(bd)

Kompleksitas ruang algoritma BFS = sama dengan kompleksitas waktunya, karena


semua simpul daun dari pohon harus disimpan di dalam memori selama proses
pencarian.

118
Breadth First Search (grafik berarah)
2 4 8

s 5 7

3 6 9

119
Breadth
Shortest path
First1Search
2 4 8
from s

0 s 5 7

3 6 9

Undiscovered
Discovered Queue: s

Top of queue
Finished 120
Breadth First Search
1
2 4 8

0 s 5 7

3 6 9

Undiscovered
Discovered Queue: s 2

Top of queue
Finished 121
Breadth First Search
1
2 4 8

0 s 5 7
1

3 6 9

Undiscovered
Discovered Queue: s 2 3

Top of queue
Finished 122
Breadth First Search
1
2 4 8

0 s 5 7
1

3 6 9

Undiscovered
Discovered Queue: s 2 3 5

Top of queue
Finished 123
Breadth First Search
1 2
2 4 8

0 s 5 7
1

3 6 9

Undiscovered
Discovered Queue: 2 3 5

Top of queue
Finished 124
Breadth First Search
1 2
2 4 8

5 already discovered:
0 s 5 7
don't enqueue
1

3 6 9

Undiscovered
Discovered Queue: 2 3 5 4

Top of queue
Finished 125
Breadth First Search
1 2
2 4 8

0 s 5 7
1

3 6 9

Undiscovered
Discovered Queue: 2 3 5 4

Top of queue
Finished 126
Breadth First Search
1 2
2 4 8

0 s 5 7
1

3 6 9

Undiscovered
Discovered Queue: 3 5 4

Top of queue
Finished 127
Breadth First Search
1 2
2 4 8

0 s 5 7
1

3 6 9

1 2

Undiscovered
Discovered Queue: 3 5 4

Top of queue
Finished 128
Breadth First Search
1 2
2 4 8

0 s 5 7
1

3 6 9

1 2

Undiscovered
Discovered Queue: 3 5 4 6

Top of queue
Finished 129
Breadth First Search
1 2
2 4 8

0 s 5 7
1

3 6 9

1 2

Undiscovered
Discovered Queue: 5 4 6

Top of queue
Finished 130
Breadth First Search
1 2
2 4 8

0 s 5 7
1

3 6 9

1 2

Undiscovered
Discovered Queue: 5 4 6

Top of queue
Finished 131
Breadth First Search
1 2
2 4 8

0 s 5 7
1

3 6 9

1 2

Undiscovered
Discovered Queue: 4 6

Top of queue
Finished 132
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1

3 6 9

1 2

Undiscovered
Discovered Queue: 4 6

Top of queue
Finished 133
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1

3 6 9

1 2

Undiscovered
Discovered Queue: 4 6 8

Top of queue
Finished 134
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2

Undiscovered
Discovered Queue: 6 8

Top of queue
Finished 135
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Undiscovered
Discovered Queue: 6 8 7

Top of queue
Finished 136
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Undiscovered
Discovered Queue: 6 8 7 9

Top of queue
Finished 137
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Undiscovered
Discovered Queue: 8 7 9

Top of queue
Finished 138
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Undiscovered
Discovered Queue: 7 9

Top of queue
Finished 139
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Undiscovered
Discovered Queue: 7 9

Top of queue
Finished 140
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Undiscovered
Discovered Queue: 7 9

Top of queue
Finished 141
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Undiscovered
Discovered Queue: 7 9

Top of queue
Finished 142
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Undiscovered
Discovered Queue: 9

Top of queue
Finished 143
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Undiscovered
Discovered Queue: 9

Top of queue
Finished 144
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Undiscovered
Discovered Queue: 9

Top of queue
Finished 145
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Undiscovered
Discovered Queue:

Top of queue
Finished 146
Breadth First Search
1 2 3
2 4 8

0 s 5 7
1 3

3 6 9

1 2 3

Level Graph

147
148
• Latihan: Gunakan algoritma BFS dan DFS untuk menemukan pohon merentang
(spanning tree) dari graf G di bawah ini jika traversalnya dimulai dari simpul k.
Dalam menjawab soal ini, perlihatkan traversal BFS/DFS sebagai pohon berakar
dengan e sebagai akarnya.

149
Binary Search Tree
Several algorithms on BST requires recursive
processing of just one of its subtrees, e.g.,
k
• Searching
• Insertion of a new key
• Finding the smallest (or the largest) key

<k >k

150
Binary Search Tree

Not a binary search tree


A binary search tree

151
152
153
154
Bagaimana spider menjelajahi (surfing) web?

• Halaman web dimodelkan sebagai graf berarah


• Simpul menyatakan halaman web (web page)
• Sisi menyatakan link ke halaman web
• Bagaimana teknik menjelajahi web? Secara DFS atau BFS
• Dimulai dari web page awal, lalu setiap link ditelusuri secara DFS
sampai setiap web page tidak mengandung link.
• Pada setiap halaman web, informasi di dalamnya dianalisis dan
disimpan di dalam basis data index.

155
Latihan 1 :
https://colab.research.google.com/drive/1RPu5UZpOQWlece8zmKExXyIyPM_HUUs8

Latihan 2:
https://colab.research.google.com/drive/1GZl1Pbh-FEhjY-raIOwqlUyqxUSgxA1p

Latihan 3:
https://colab.research.google.com/drive/1bOOZ88cTmOId3ePblFQqR9oijY4h7do4#scrollTo=FtEvz4j5SB9B

Latihan 4 :
https://colab.research.google.com/github/cs231n/cs231n.github.io/blob/master/python-colab.ipynb#scrollTo=qPsHSKB1L9hF

156

Anda mungkin juga menyukai