• Tidak ada hasil yang ditemukan

Space Time and Trade Offs.

N/A
N/A
Protected

Academic year: 2021

Membagikan "Space Time and Trade Offs."

Copied!
10
0
0

Teks penuh

(1)

Space-tme radeof adalah cara

Space-tme radeof adalah cara unuk menyelesaikan suau masalah aau kalkulasi dengan wakuunuk menyelesaikan suau masalah aau kalkulasi dengan waku yang lebih cepa eapi menggunakan lebih banyak memori(sorage space) aau waku yang lebih yang lebih cepa eapi menggunakan lebih banyak memori(sorage space) aau waku yang lebih lama eapi menggukanan sediki

lama eapi menggukanan sediki memori(sormemori(sorage space).age space). Esiensi waku dan esiensi memori adalah dua

Esiensi waku dan esiensi memori adalah dua hal yang berlawanan. Semakin sediki waku yanghal yang berlawanan. Semakin sediki waku yang dibuuhkan maka akan semakin banyak memori yang dibuuhkan, begiu pula

dibuuhkan maka akan semakin banyak memori yang dibuuhkan, begiu pula sebaliknysebaliknya semakina semakin banyak waku yang dibuuhkan maka semakin banyak pula memori yang dibuuhkan.

banyak waku yang dibuuhkan maka semakin banyak pula memori yang dibuuhkan.

Sortng by ountng Sortng by ountng Counting Sort

Counting Sort adalah algoritma pengurutan efektif dan  adalah algoritma pengurutan efektif dan efisien yang melakukan pengurutan dengan ide dasarefisien yang melakukan pengurutan dengan ide dasar

meletakkan elemen pada posisi yang

meletakkan elemen pada posisi yang benar, dimana penghitungan posisi yang benar dilakukan dengan carabenar, dimana penghitungan posisi yang benar dilakukan dengan cara

menghitung (counting) elemen-elemen dengan nilai lebih kecil atau

menghitung (counting) elemen-elemen dengan nilai lebih kecil atau sama dengan elemen tersebut. Contohsama dengan elemen tersebut. Contoh

sederhana saja jika terdapat 12 elemen yang lebih kecil daripada x, maka x

sederhana saja jika terdapat 12 elemen yang lebih kecil daripada x, maka x akan mendapatkan posisinya diakan mendapatkan posisinya di

posisi 1.

posisi 1.

Keungggulan Algoritma

Keungggulan AlgoritmaCounting SortCounting Sort

!eunggulan dari algoritma counting sort adalah dapat

!eunggulan dari algoritma counting sort adalah dapat mengurutkan dengan "aktu yang lebih singkat, karenamengurutkan dengan "aktu yang lebih singkat, karena

tidak membandingkan dengan elemen lain.

tidak membandingkan dengan elemen lain.

Kelemahan Algoritma

Kelemahan AlgoritmaCounting SortCounting Sort

!elemahan algoritma counting sort adalah menggunakan array yang terlalu banyak.

!elemahan algoritma counting sort adalah menggunakan array yang terlalu banyak.

#ource code

#ource code

// C Program for counting sort // C Program for counting sort #include <stdio.h> #include <stdio.h> #include <string.h> #include <string.h> #define RANGE 255 #define RANGE 255

//ungsi main !ang diurut"an dieri"an string arr$% dengan urutan al&haet //ungsi main !ang diurut"an dieri"an string arr$% dengan urutan al&haet 'oid count(ort)char arr$%*

'oid count(ort)char arr$%* +

+

//

// ,he ,he out&ut out&ut character character arra! arra! that that -ill -ill ha'e ha'e sorted sorted arrarr char

char out&ut$strlout&ut$strlen)arr*%en)arr*%

//

// Create Create a a count count arra! arra! to to store store count count of of inidi'idulinidi'idul //

// characters characters and and initialie initialie count count arra! arra! as as 00 int

int count$RANGE count$RANGE 1 1 %3 %3 ii memset)count

memset)count3 3 03 03 sieof)countsieof)count****

//

(2)

for)i 4 0 arr$i% 11i*

  11count$arr$i%%

// Change count$i% so that count$i% no- contains actual // &osition of this character in out&ut arra!

for )i 4  i <4 RANGE 11i* count$i% 14 count$i%

// 6uild the out&ut character arra! for )i 4 0 arr$i% 11i*

+

out&ut$count$arr$i%%% 4 arr$i%

  count$arr$i%%

7

// Co&! the out&ut arra! to arr3 so that arr no-// contains sorted characters

for )i 4 0 arr$i% 11i* arr$i% 4 out&ut$i% 7

// 8ri'er &rogram to test ao'e function int main)*

+

char arr$% 4 9gee"sforgee"s9//9a&&le&&9

  count(ort)arr*

&rintf)9(orted character arra! is :sn93 arr* return 0

(3)

!lowchar Sar

"araker diurukan sesuai nilai alphabe

#npu kaa geeks$orgeeks

%enyimpan nilai dari setap karaker

&upu kaa men'adi eeee$ggkkors

E

*ua coun array unuk menyimpan daa

(4)

Input Enhancement in String Matching:

Horspool’s and Boyer-Moore Algorithm

Pada bagian ini, kita melihat bagaimana teknik input enhancement dapat diterapkan pada masalah matching string. Ingat bahwa masalah pencocokan string memerlukan pencarian terjadinya string karakter m yang disebut pola dalam string karakter n yang lebih panjang yang disebut teks.

Karena jumlah maksimum uji coba tersebut adalah n - m + 1 dan, dalam kasus terburuk, perbandingan yang perlu dilakukan pada masing - masing, efisiensi kasus terburuk dari algoritma brute force adalah kelas  !nm" . #ata-rata, bagaimanapun, kita harus mengharapkan hanya beberapa perbandingan sebelum pergeseran pola, dan untuk teks bahasa alami acak, efisiensi kasus rata-rata memang ternyata berada di  !n + m".

$eberapa algoritma yang lebih cepat telah ditemukan. Kebanyakan dari mereka memanfaatkan gagasan peningkatan input% preprocess pola untuk mendapatkan beberapa informasi tentang hal itu, menyimpan informasi ini dalam sebuah tabel, dan kemudian menggunakan informasi ini selama pencarian pola yang sebenarnya dalam teks tertentu. Inilah ide di balik dua algoritma yang paling dikenal dari tipe ini% algoritma Knuth-&orris-Pratt 'Knu(() dan algoritma $oyer-&oore '$oy(().

Perbedaan utama antara kedua algoritma ini terletak pada cara mereka membandingkan karakter dari sebuah pola dengan rekan mereka dalam sebuah t eks% algoritma Knuth-&orris-Pratt melakukannya dari kiri ke kanan, sedangkan algoritma $oyer-&oore melakukannya dari kanan ke kiri. Karena gagasan terakhir mengarah ke algoritma yang lebih sederhana, inilah satu-satunya yang akan kita kejar di sini. !Perhatikan bahwa algoritma $oyer-&oore dimulai dengan menyelaraskan pola terhadap karakter awal teks* jika percobaan pertama gagal, itu menggeser pola ke kanan. Ini adalah perbandingan dalam percobaan yang dilakukan algoritma kanan ke kiri, mulai dengan karakter terakhir dalam pola."

&eskipun ide dasar algoritma $oyer-&oore sederhana, penerapan sebenarnya dalam metode kerja kurang begitu. leh karena itu, kita memulai diskusi kita dengan ersi sederhana dari algoritma $oyer-&oore yang disarankan oleh #. orspool 'or). /elain menjadi lebih sederhana, algoritma orspool tidak selalu kurang efisien dibandingkan algoritma $oyer-&oore pada string acak.

(5)

Horspool’s Algorithm

Pertimbangkan, sebagai contoh, mencari pola $0#$# dalam beberapa teks%

2imulai dengan # terakhir dari pola dan bergerak dari

 kanan ke kiri, kita membandingkan pasangan karakter yang sesuai dalam pola dan teksnya. 3ika semua karakter pola cocok, substring yang cocok ditemukan. Kemudian pencarian bisa dihentikan sama sekali atau dilanjutkan jika terjadi kemunculan pola yang sama.

3ika terjadi ketidakcocokan, kita perlu menggeser pola ke kanan. 3elas, kami ingin melakukan perubahan besar mungkin tanpa mempertaruhkan kemungkinan kehilangan substring yang sesuai dalam teks. 0lgoritma orspool menentukan ukuran pergeseran seperti itu dengan melihat karakter c dari teks yang sesuai dengan karakter terakhir dari pola. Ini adalah kasus bahkan jika karakter c sendiri sesuai dengan mitranya dalam pola.

Boyer-Moore Algorithm

/ekarang kita garis bawahi algoritma $oyer-&oore itu sendiri. 3ika perbandingan pertama dari karakter paling kanan dalam pola dengan karakter c yang sesuai di dalam teks gagal, algoritma melakukan hal yang persis sama dengan algoritma orspool. 4akni, menggeser  pola ke kanan dengan jumlah karakter yang diambil dari tabel precomputed seperti yang dijelaskan sebelumnya.

Kedua algoritma tersebut bertindak secara berbeda, namun setelah beberapa bilangan positif k ! 5k 5m" dari karakter pola dicocokkan dengan sukses sebelum terjadi ketidaksesuaian%

(6)

2alam situasi ini, algoritma $oyer-&oore menentukan ukuran pergeseran dengan mempertimbangkan dua kuantitas. 4ang pertama dipandu oleh karakter teks c yang menyebabkan ketidakcocokan dengan mitranya dalam pola. 2engan demikian, ini disebut pergeseran simbol buruk. 0lasan di balik pergeseran ini adalah alasan yang kami gunakan dalam algoritma orspool. 3ika c tidak sesuai dengan pola, kita ubah pola untuk hanya melewatkan huruf c ini di teks. 2engan mudah, ukuran pergeseran ini dapat dihitung dengan rumus t1 !c" - k dimana t1 !c" adalah entri pada tabel precomputed yang digunakan oleh algoritma orspool !lihat di atas" dan k adalah jumlah karakter yang cocok%

(7)

B Tree

$ 6 tree adalah sebuah tree yang dapat menyimpan data secara berurutan dan memungkinkan untuk pencarian, akses sekuensial, penambahan, serta penghapusan dalam waktu yang relatif singkat. $ 6 tree adalah generalisasi dari binary search tree, di mana setiap node dapat memiliki lebih dari 7 chlidren. 8idak seperti self – balancing binary search trees, $ 6 tree lebih dikhususkan untuk sistem yang membutuhkan pembacaan dan penulisan data dalam jumlah yang relatif besar 9 banyak. $ 6 tree biasadigunakan untuk database dan filesystem.

2alam $ 6 tree, internal nodes !non - leaf" dapat memiliki ariabel jumlah node anak dalam batas yang sudah ditentukan. Ketika sebuah data ditambahkan atau dihapus dari sebuah node, jumlah node anak dari tree tersebut berubah. 2engan tujuan untuk mempertahankan batas yang sudah ditentukan tersebut, internal nodes dapat bergabung atau berpisah. Karena berbagai batas dari node 6 node anak diijinkan, maka $ 6 tree tidak perlu menyeimbangkan diri sesering mungkin layaknya self – balancing search trees,tetapi hal semacam ini akan membuang 6 buang tempat yang ada, karena setiap node yang ada tidak terisi semua. $atas bawah dan batas atas pada jumlah node anak biasanya tetap untuk implementasi tertentu. /ebagai contoh, pada 7 6 : tree, setiap internal node hanya dapat memiliki 7 atau : node 6 node anak.

3umlah cabang !anak node" dari sebuah node akan satu lebih banyak dari jumlah kunci yang tersimpan dalam node. 2alam sebuah 7-: $ 6 tree, node internal akan menyimpan baik satu kunci !dengan 7 buah node anak" atau dua kunci !dengan tiga node anak". /ebuah $- tree kadang 6 kadang digambarkan dengan parameter (d + 1) – (2d + 1) atau yang lebih mudah dengan urutan cabang tertinggi, (2d + 1).

/ebuah $ 6 tree akan tetap seimbang dengan syarat semua node 6 node daun !node terluar" berada dalam kedalaman yang sama. Kedalaman ini akan bertambah secara perlahan 6 lahan sebagai satu syarat yang ditambahkan pada sebuah tree, tetapi pertambahan pada keseluruhan kedalaman jarang terjadi, dan sebagai hasilnya pada semua node - node daun menjadi satu node lebih jauh dari root 6 nya.

$ 6 tree memiliki keuntungan substansial atas implementasi alternatif ketika waktu untuk mengakses sebuah node menjadi jauh melebihi waktu akses antara sesama node. al ini biasanya terjadi ketika node 6 node tersebut berada pada penyimpanan sekunder  seperti diks dries. 2engan memaksimalkan jumlah dari anak 6 anak node dari setiap node

(8)

 6 node internal, ketinggian tree tersebut akan berkurang dan jumlah akses node yang mahal !lama" akan berkurang.

Searching

/earching dalam $ 6 tree mirip dengan searching dalam binary search tree. 2imulai dari root, tree akan dilaluli secara rekursif dari atas sampai bawah !root sampai node terluar". 2alam setiap leel, search memilih sebuah child pointer !subtree" yang memisahkan nilai 6 nilai pada kedua sisi dari nilai pencarian.

Binary search biasanya !tapi tidak selalu" digunakan dalam setiap node untuk menemukan nilai 6 nilai pemisahan dan nilai penting dari child tree.

nsertion

/etiap penambahan dimulai dari sebuah node daun !node terluar". ;ntuk menambahkan sebuah elemen !data" baru.

Pencarian dilakukan pada tree untuk menemukan node terluar di mana elemen baru !data" harus ditambahkan. 8ambahkan data baru tersebut ke dalam node dengan langkah 6 langkah berikut %

1. 3ika node berisi lebih sedikit dari jumlah elemen !data" maksimum yang sudah ditentukan, maka terdapat ruangan untuk elemen yang baru !data baru". 8ambahkan elemen baru tersebut ke dalam node, jaga data 6 data dalam node tetap teratur.

7. 3ika node 6 node sudah penuh, sehingga terbagi rata menjadi 7 node,

 /ebuah median tunggal dipilih dari antara unsur 6 unsur daun dan

elemen baru.

 <ilai yang kurang dari median diletakkan pada node baru sebelah

kiri dan nilai yang lebih dari median diletakkan pada node baru sebelah kanan, dengan median bertindak sebagai nilai pemisah.

 8ambahkan nilai pemisah pada node parent, yang akan

(9)

node tidak memiliki parent !yaitu jika node adalah root", buat root baru di atas node tersebut !menambahkan tinggi dari tree tersebut".

!eletion

 0da 7 cara mengenai penghapusan dari sebuah $ 6 tree,

 8emukan dan hapus data itu, kemudian atur ulang tree untuk mengembalikan

keseimbangannya atau

 =akukan single pass pada tree tersebut, tetapi sebelum masuk pada sebuah node,

atur ulang tree sehingga setelah data yang akan dihapus ditemukan. 2ata tersebut dapat dihapus tanpa memicu terjadinya atur ulang kembali.

pen ashing and >losed ashing

Penggunaan "tertutup" vs. "terbuka" mencerminkan dengan atau tidaknya kita menggunakan posisi atau struktur data tertentu.

Misalnya, "terbuka" dalam "pengalamatan terbuka" memberi tahu kita indeks (alias alamat) di mana objek akan disimpan dalam tabel hash tidak sepenuhnya ditentukan oleh kode hashnya. Sebaliknya, indeks dapat bervariasi tergantung pada apa yang sudah ada dalam tabel hash.

 The "closed" dalam "closed hashing" mengacu pada akta bah!a kita tidak pernah meninggalkan tabel hash setiap objek disimpan secara langsung pada sebuah indeks dalam array internal tabel hash. Perhatikan bah!a ini hanya mungkin dengan

menggunakan semacam strategi pengalamatan terbuka. #ni menjelaskan mengapa "closed hashing" dan "open addressing" adalah sinonim.

$andingkan ini dengan open hashing % dalam strategi ini, tidak ada objek yang benar% benar tersimpan dalam array tabel hash Sebagai gantinya, satu objek adalah hashed, disimpan dalam datar yang terpisah dari array internal tabel hash. "terbuka" mengacu pada kebebasan yang kita dapatkan dengan meninggalkan tabel hash, dan

menggunakan datar terpisah. &mong%omong, "datar terpisah" mengisyaratkan mengapa hashing terbuka juga dikenal sebagai "chaining terpisah".

Singkatnya, "tertutup" selalu mengacu pada semacam jaminan ketat, seperti saat kita menjamin bah!a benda selalu tersimpan langsung di dalam tabel hash (closed hashing). 'emudian, kebalikan dari "closed" adalah "open", jadi jika nda tidak memiliki jaminan seperti itu, strategi tersebut dianggap "terbuka".

(10)

http%99www.brainkart.com9article9Input-nhancement-in-/tring-&atching--orspool---s-and-$oyer-&oore-0lgorithm?:9

Referensi

Dokumen terkait

Sehingga, kami dari Forum Kajian dan Penelitian Hukum (FKPH), Fakultas Hukum Universitas Brawijaya, berniat mengadakan sebuah Acara Seminar Hukum Nasional Online

Buy on Weakness : Harga berpotensi menguat namun diperkirakan akan terkoreksi untuk sementara Trading Buy : Harga diperkirakan bergerak fluktuatif dengan

Menu ini menampilkan form untuk memasukan Usulan Pencairan Belanja Tidak Langsung Alokasi Dana Desa Kabupaten Musi Banyuasin yang dilakukan oleh desa dan nantinya

This research have purpose to examine empirically the effect on Net Profit Margin and Liquidity (Current Ratio) to Stock Price on Sub Sector Pharmaceutical Company

Furthermore, based on FMEA result, priority actions plan to improve quality of primer packaging process will be creating standard operating procedure (SOP) for material handling

Hasil penyadapan dengan pola sadap horizontal memiliki produktivitas getah yang lebih tinggi (15,64 g/takik) dibandingkan pola vertikal (11,85 g/takik). Akan tetapi pada

Sebagai salah satu syarat untuk menyelesaikan pendidikan tersebut, maka pada saat ini saya sedang melakukan penelitian dengan judul : Deskripsi Komperatif Kepentingan

KPU Kabupaten/Kota menyalin soft copy Model A KWK ke dalam USB atau CD dalam format microsoft excel yang didowload dari SIDALIH pada FITUR PEMUTAKHIRAN -&gt; UBAH DATA WEBGRIDE