BAB III ANALISIS. Mekanisme Penyimpanan dan Pengambilan Sequence

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB III ANALISIS. Mekanisme Penyimpanan dan Pengambilan Sequence"

Transkripsi

1 BAB III ANALISIS Mula-mula, Bab ini akan mengemukakan analisis yang dilakukan terhadap algoritma PrefixSpan [PEI01]. Kemudian dilakukan rancangan dan implementasi algoritma tersebut. Setelah itu, program hasil implementasi dievaluasi untuk didapatkan alternatif-alternatif implementasi yang dapat meningkatkan kinerja program. Selanjutnya alternatif tersebut akan dianalisis apakah memang dapat mengurangi waktu proses dari algoritma PrefixSpan. III.1 Analisis Algoritma PrefixSpan [PEI01] Agar dapat membangun program yang telah dijelaskan di Subbab II.4.2, terdapat beberapa hal yang perlu diperhatikan, antara lain: 1. Mekanisme pengambilan dan penyimpanan sequence. Mekanisme ini diperlukan untuk memasukkan sequence dari persistent memory ke dalam volatile memory. 2. Mekanisme proyeksi sequence terhadap suatu prefix. Mekanisme ini diperlukan untuk melakukan proyeksi suatu sequence dengan suatu proyektor. 3. Mekanisme penggabungan Prefix dengan Postfix pada suatu sequence. Mekanisme ini diperlukan untuk menangani kasus-kasus khusus pada mekanisme proyeksi dan penggabungan elemen untuk menghasilkan sequential pattern yang lebih panjang dari sequential pattern sebelumnya. 4. Mekanisme pencarian frequent sequence dengan satu elemen. Mekanisme ini diperlukan untuk menghasilkan sequential pattern. Berikut akan diberikan penjelasan empat hal diatas. III.1.1 Mekanisme Penyimpanan dan Pengambilan Sequence Sequence yang terdapat dalam database harus disimpan dalam main memory terlebih dahulu sebelum dapat diproses. Pada algoritma PrefixSpan yang tercantum dalam [PEI01], disebutkan secara implisit bahwa seluruh sequence awal disimpan di dalam main memory. Untuk implementasi PrefixSpan pada tugas akhir ini, jika dilakukan hal yang sama seperti yang disebutkan diatas, prosesnya menjadi sederhana, yaitu dengan memasukkan seluruh sequence dalam main memory komputer. Namun hal ini dapat III-1

2 menimbulkan masalah jika seluruh sequence yang ada tidak cukup untuk disimpan di dalam main memory. Jika dipikirkan sekilas, tipe data yang digunakan untuk menyimpan sequence tersebut adalah list of list of string, dimana setiap elemen dalam sequence tersebut adalah elemen dari list. Contohnya, bila terdapat sequence <(a,b,c),(a,c,e)>, (a,b,c) dan (a,c,e) akan menjadi elemen dari list dimana elemen tersebut juga merupakan list yang berisikan objek-objeknya. Namun karena sequence yang akan disimpan cukup panjang, tipe data string dapat menjadi alternatif penyimpanan sequence tersebut, karena kebutuhan memory untuk menyimpan string lebih kecil daripada list of list of string. Karena sequence disimpan sebagai string, sehingga untuk pengolahannya dapat diterapkan cara-cara yang biasa dilakukan untuk pengolahan string. Selain itu, karakteristik string dapat dianalogikan dengan sequence, maksudnya misalkan pada sequence <a,b,c>, yang berarti seorang pelanggan membeli a terlebih dahulu sebelum b, dan membeli b terlebih dahulu sebelum c. Hal ini sama dengan string a,b,c, dimana waktu kemunculan a lebih dulu daripada b, dan kemunculan b lebih dulu daripada c. III.1.2 Mekanisme Proyeksi Sequence terhadap suatu Prefix Dengan didapatkannya himpunan frequent sequence satu elemen, tahap selanjutnya adalah memroyeksi seluruh sequence untuk masing-masing elemen dalam himpunan tersebut. Contoh proyeksi diilustrasikan dalam Tabel III.1-3. Tabel III-1 Contoh Proyeksi 1 No Sequence Awal Proyektor Sequence Posfix 1. <a(abc)(ac)d(cf)> <a> <(abc)(ac)d(cf)> 2. <(abc)(ac)d(cf)> <a> <(_bc)(ac)d(cf)> 3. <a(abc)(ac)d(cf)> <b> <(_c)(ac)d(cf)> 4. <a(abc)(ac)d(cf)> <(ab)> <(_c)(ac)d(cf)> 5. <(_c)(ac)d(cf)> <c> <d(cf)> 6. <(_c)(ac)d(cf)> <(_c)> <(ac)d(cf)> III-2

3 III-3 Perhatikan bahwa pada sequence nomor 5, proyeksi dengan <c> menghasilkan <d(cf)>, bukan <(ac)d(cf)> seperti pada nomor 6. Hal ini dikarenakan <c> tidak sama dengan <(_c)>, karena jika digabung dengan proyektor-nya, <c> menghasilkan <bc> jika digunakan prefix nomor 3 atau <(ab)c> jika nomor 4, sedangkan untuk <(_c)>, akan menghasilkan <(bc)> untuk nomor 3 dan <(abc)> untuk nomor 4. Pada kasus nyata, terdapat dua kemungkinan bentuk dari proyektor, yaitu 1. Elemen yang tidak mengandung karakter _ 2. Elemen yang mengandung karakter _ Sedangkan untuk masing-masing elemen, akan terdapat tiga kemungkinan bentuk awal dari sequence yang akan diproyeksi, yaitu: 1. Sequence-nya memiliki awalan yang hanya terdiri dari satu elemen saja, contohnya <ab(bdc)cdc> 2. Sequence-nya memiliki awalan yang terdiri lebih dari satu, contohnya <(abc)ada> 3. Sequence-nya memiliki awalan yang terdiri lebih dari satu elemen, dan merupakan kejadian yang memiliki waktu yang sama dengan elemen, contohnya <(_c)adcd> Dengan begitu akan terdapat enam kemungkinan bentuk yang harus ditangani. Untuk kasus proyektor yang tidak mengandung _ dan sequence memiliki awalan satu elemen, apabila elemen tersebut adalah elemen yang sama dengan proyektor, proyeksinya cukup dengan menghapus elemen tersebut. Pada kasus kedua, yaitu sequence-nya memiliki awalan yang terdiri lebih dari satu elemen, apabila salah satu dari kumpulan elemen itu sama dengan proyektor, maka proyeksinya dilakukan dengan menghapus awal sekumpulan elemen hingga elemen yang sama dengan proyektor. Apabila hasil dari penghapusan tersebut menyisakan satu atau lebih elemen, maka di posisi depan elemen tersebut harus ditambahkan _, namun bila tidak menyisakan satupun, dilakukan penghapusan seluruh elemen tersebut. Untuk kasus proyeksi yang mengandung _, proyeksi termudah adalah apabila awal sequence-nya hanya memiliki satu elemen. Kasus seperti ini mudah, karena subsequence satu elemen tidak sama dengan proyeksi meskipun salah satu elemen

4 III-4 proyeksi sama dengan satu elemen tersebut. Kasus selanjutnya, yaitu apabila sequence yang awalnya terdiri lebih dari satu elemen, proyeksinya dilakukan dengan langkahlangkah sebagai berikut: 1. gabungkan proyektor dengan prefixnya, 2. ambil sub-sequence terakhir dari hasil gabungan tersebut, dan cek apakah subsequence tersebut merupakan himpunan bagian dari sub-sequence yang sedang diperiksa.jika iya, hapus sampai pada elemen terakhir yang terkandung dalam sub-sequence terakhir hasil gabungan. 3. Jika hasil akhir menyisakan satu elemen atau lebih, tambahkan _ pada subsequence yang sedang diproyeksi. Kasus terakhir, yaitu apabila proyektor dan awal sequence mengandung _. Caranya hampir sama dengan kasus awal sequence yang tidak mengandung _, hanya saja penggabungan harus dilakukan baik oleh proyektor maupun sub-sequence-nya, tidak hanya pada proyektor seperti pada kasus sebelumnya. III.1.3 Mekanisme Penggabungan Prefix dengan Postfix Yang dimaksud dengan penggabungan adalah menyatukan dua sequence, yaitu prefix dan postfix, menjadi satu sequence. Untuk itu, terdapat beberapa kemungkinan yang didasari oleh berbagai jenis prefix dan postfix yang akan digabungkan. Tabel III-2 menunjukkan keseluruhan kemungkinan. Tabel III-2 Tabel Kemungkinan Penggabungan Elemen terakhir Prefix terdiri dari satu objek Elemen Pertama Postfix terdiri dari banyak objek Terdiri dari satu objek Terdiri dari banyak objek Mengandung karakter spesial Terdiri dari satu objek Terdiri dari banyak objek Mengandung karakter spesial III Elemen terakhir prefix satu objek Pada kasus ini, penggabungan yang dilakukan pada postfix yang terdiri dari satu elemen dan beberapa elemen sama, yaitu menambahkan elemen postfix ke akhir dari

5 III-5 prefix. Dengan demikian, akan terbentuk sequence baru yang terdiri dari prefix pada awalnya kemudian postfix di belakangnya. Untuk postfix yang elemen terakhirnya mengandung _, penggabungan dilakukan dengan mengganti _ dengan elemen terakhir prefix, menghapus elemen tersebut dari prefix, dan kemudian menggabungkannya seperti pada kasus-kasus sebelumnya. III Elemen terakhir prefix lebih dari satu objek Pada kasus ini, penanganan untuk postfix satu elemen atau lebih sama dengan satu elemen, yaitu dengan menambahkan postfix dengan prefixnya, sehingga tercipta satu sequence yang memiliki awalan prefix dan akhiran postfix. Untuk elemen terakhir postfix yang mengandung _, penggabungan dilakukan dengan dua langkah, yaitu 1. mengganti _ pada postfix dengan elemen terakhir dari prefix, 2. menghapus elemen terakhir tersebut dari prefix, 3. menggabungkan prefix dan postfix yang telah dirubah. Untuk elemen terakhir prefix mengandung _, karena arti dari _ adalah akhir dari prefix terjadi dalam waktu yang sama dengan awal dari postfix, maka prefix tidak akan mengandung _. Hal ini dikarenakan prefix merupakan awalan, yang artinya tidak ada lagi objek atau elemen yang posisinya berada didepan prefix. III.1.4 Mekanisme Pencarian 1-Sequence yang Frequent Dengan asumsi bahwa main memory mencukupi, seluruh sequence disimpan ke dalam main memory. Tahap selanjutnya adalah menemukan frequent sequence yang berisikan satu elemen. Hal ini mudah dilakukan untuk pencarian frequent sequence yang pertama, karena hanya mencari karakter yang berbeda dan menghitung berapa sequence yang mengandung karakter tersebut. Mekanisme ini berkembang menjadi lebih sulit jika telah mengalami banyak proyeksi, setidaknya terdapat dua kasus utama yang perlu ditangani secara khusus. Untuk kasus pertama, sebagai ilustrasi, misalnya terdapat basis data Tabel III-2:

6 III-6 Tabel III-3 Contoh Proyeksi 2 No Sequence awal Hasil proyeksi dengan prefix aa 1 <a(ad)ab(bc)> <(_d)ab(bc)> 2 <(abc)ada> <da> Dari tuple-tuple atribut hasil proyeksi diatas, ingin didapatkan frequent sequence satu elemen. Misalkan nilai theshold yang diinginkan pada kasus ini adalah dua. Dengan melihat sepintas saja, akan ditemukan dua sequence, yaitu <a> dan <d>, namun sebenarnya tidak demikian kenyataannya, pada <d> ada sequence <(_d)ab(bc)> tidak membentuk sequence <aad>, melainkan <a(ad)> (hal ini dapat dilihat di sequence awal). Oleh karena itu, setiap serangkaian sequence yang muncul dalam waktu bersamaan () mengandung _ di dalamnya, rangkaian tersebut tidak memberikan kontribusi pada elemen lain yang terdapat didalamnya. Untuk ilustrasi kasus kedua, misalkan pada Tabel III-3 sequence nomor dua, <(abc)ada>, diubah menjadi <(abc)a(acd)da>, sehingga proyeksinya adalah <(acd)da>. Tabel III-4 Contoh Proyeksi 3 No Sequence awal Hasil proyeksi dengan prefix aa 1 <a(ad)ab(bc)> <(_d)ab(bc)> 2 <(abc)a(acd)da> <(acd)da> Dengan kondisi seperti ini, sekilas terdapat tiga frequent sequence, yaitu <a>, <d> dan <c>. Memang ketiga sequence ini merupakan frequent sequence, namun masih kurang satu lagi, yaitu <(_d)>. Sequence tersebut merupakan frequent sequence, karena jika digabungkan dengan prefixnya, hasil gabungannya, <a(ad)>, juga merupakan sequential pattern. Hal ini dikarenakan <a(ad)> merupakan subset dari <(abc)a(acd)a>. Oleh karena itu, subset sequence dua, <(acd)>, memberikan kontribusi pada sequence <(_d)>. Pada implementasinya, suatu sequence diiterasi dari sub-sequence awal sampai akhir, dan ada tiga kemungkinan bentuk dari sub-sequence yang akan muncul, yaitu sub-

7 III-7 sequence yang terdiri dari satu elemen, sub-sequence yang terdiri dari beberapa elemen, dan sub-sequence yang mengandung _. Penanganan ketika sub-sequence hanya memiliki satu elemen, elemen tersebut disimpan dalam suatu list penghitung yang menyimpan elemen untuk menghitung jumlah kemunculannya dan list penyimpan untuk menyimpan informasi bahwa elemen tersebut telah terhitung sehingga tidak akan dihitung apabila muncul lagi dalam sequence yang sama. Hanya ada satu instance list penghitung untuk satu sequence database, sedangkan list penyimpan akan selalu di kosongkan bila sequence baru akan diproses. Penanganan sub-sequence yang memiliki banyak elemen adalah dengan memecah sub-sequence tersebut menjadi seluruh himpunan bagiannya. Himpunan bagiannya yang terdiri dari satu elemen, langsung dimasukkan ke dalam list yang menghitung kemunculan elemen. Untuk himpunan bagian yang memiliki elemen lebih dari satu, meski tidak dimasukkan ke dalam list penghitung, harus tersimpan dalam suatu list untuk persiapan apabila nantinya akan terdapat sub-sequence yang mengandung _. Fungsi list persiapan ini merupakan gabungan dari list penyimpan dan list penghitung, yaitu menyimpan seluruh himpunan bagian dari sub-sequence sekaligus menghitung jumlah sequence yang mengandung himpunan bagian tersebut. Namun himpunan bagian ini tidak akan masuk ke dalam list penghitung apabila sampai sequence terakhir diproses, tidak terdapat sub-sequence yang mengandung _ atau subsequence tersebut tidak mendukung himpunan bagian yang terdapat pada list persiapan. List persiapan ini lingkupnya sama dengan list penghitung, dan hanya ada satu list untuk setiap sequence database. Pada kasus sub-sequence yang mengandung _, caranya adalah dengan memecahnya menjadi himpunan bagian-himpunan bagian yang hanya mengandung dua elemen saja, yaitu elemen _ dan elemen lainnya dalam sub-sequence. Kemudian dari setiap himpunan bagian yang telah terbentuk tadi, gabungkan dengan prefixnya untuk menghilangkan tanda _, setelah itu, dilakukan pengecekan terhadap list persiapan untuk mendapatkan informasi mengenai jumlah kemunculannya dalam sequence database.

8 III-8 Setelah seluruh sequence database diperiksa, isi list penghitung diiterasi untuk di periksa apakah jumlah kemunculan objek yang tersimpan melebihi nilai threshold atau tidak. Jika tidak, objek tersebut akan dihapus dari list. Sisa dari proses penghapusan nantinya merupakan frequent sequence dengan satu elemen. III.2 Analisis Rancangan Implementasi PrefixSpan [PEI01] Dengan langkah-langkah global algoritma PrefixSpan seperti yang disebutkan sebelumnya, rancangan implementasinya berupa fungsi rekursif yang ditulis dalam notasi prosedural yang dapat dilihat pada Algortima III-1. Dari definisi yang diberikan sebelumnya, implementasi Algoritma PrefixSpan adalah sebuah fungsi yang rekursif. Hal ini dikarenakan proses yang dilakukan untuk mendapatkan sequential pattern pada length berapapun adalah sama saja, yaitu dengan mencari 1-length frequent sequence dari database yang diberikan untuk kemudian digabungkan atau ditambahkan ke akhir sequential pattern yang menjadi prefix dari database tersebut. Dengan langkah algoritma seperti pada Algoritma III-1, dapat disimpulkan bahwa setiap database yang dibentuk diakses pada dua tahap untuk setiap pemanggilan fungsi PrefixSpan. Pertama adalah mencari 1-length frequent sequence untuk menjadi sequential pattern yang akan di-output-kan. Tahap akses ini hanya membaca saja dan melakukan scan seluruh tupple pada database sekali. Sedangkan yang kedua adalah untuk membentuk projected database yang memiliki prefix setiap anggota list 1-length frequent sequence. Pada tahap kedua ini, akses tidak dapat dipastikan apakah hanya membaca atau melakukan proyeksi karena anggota list 1-length frequent sequence dapat beragam tergantung data yang diberikan. Tipe data yang menyimpan sequential pattern adalah pohon n-ary. Contoh bentuk dapat dilihat pada Gambar III.1. Pemilihan tipe data pohon adalah untuk memudahkan penelurusan sequential pattern yang dihasilkan dari fungsi PrefixSpan. Sebenarnya tipe pohon ini sama dengan tipe

9 III-9 data list dari segi penggunaannya, namun pohon memberikan keunggulan yang tidak terdapat pada list, yaitu setiap simpul yang terdapat pada pohon memiliki awalan simpul atasnya dan memiliki simpul anak yang awalannya adalah simpul tersebut. Hal ini memberikan kemudahan dari segi penelusuran sequential pattern yang dihasilkan. Selain itu, setiap tingkat juga mencerminkan ukuran panjang dari sequential pattern yang berada pada tingkat tersebut. Penggunaan pohon yang n-ary didasari oleh keadaan bahwasanya sequential pattern yang merupakan supersequence dari sequence yang ada berjumlah acak untuk setiap sequence, sehingga penggunaan pohon n-ary lebih cocok daripada pohon yang biner. Function PrefixSpan(input: a: Sequence, l: integer, S: Sequence database)-> Pohon { Mencari Sequential Pattern pada sequence database S } Deklarasi Root : Pohon D : Sequence Database Lst : List a' : Sequence Algoritma Root.nama <- a If S.length = 0 then Set anak Root dengan null -> null Else Lst <- frequent 1-length Sequence dari S If Lst.length == 0 then Set anak Root dengan null -> Root Else Foreach Lstmember anggota Lst do D <- proyeksi S berdasarkan Lstmember a'<- gabungan a dengan Lstmember tambahkan PrefixSpan(a', l + 1, D) ke anak Root Endfor -> Root Endif endif Algoritma III-1 PrefixSpan Dengan proses seperti ini, terdapat beberapa hal pada PrefixSpan yang memerlukan pengkajian lebih lanjut, yaitu:

10 III Pembangkitan projected database. Untuk setiap frequent sequence yang dihasilkan, dilakukan pembangkitan projected database dimana frequent sequence tersebut sebagai prefixnya. Jika proses pencarian sequential pattern menghasilan 100 frequent sequence, maka akan terjadi pembangkitan sequence database sebanyak 100 kali. Apabila projected database disimpan pada main memory, besar kemungkinan memory yang tersedia tidak cukup untuk ukuran database besar. Dengan menggunakan alternatif lain, yaitu menyimpan projected database sebagai file atau database yang dibangun sementara untuk keperluan proses, waktu prosesnya algoritmanya akan semakin lama, karena waktu akses main memory jauh lebih cepat daripada akses file. <> <a> <b> <c> <ab> <ac> <b(ab)> Sequential Pattern : <a>,<b>,<c>,<ab>,<ac>,<b(ab)> Gambar III-1 Contoh Penggunaan Pohon n-ary untuk Sequential Pattern 2. Penggunaan prinsip rekursif. Prinsip rekursif adalah prinsip yang praktis dan kuat, karena pembuat program hanya perlu menentukan basis dan rekurens, kemudian selanjutnya diserahkan kepada komputer untuk mengeksekusi program tersebut. Namun di lain pihak, bila proses yang dilakukan terus menerus memanggil tahap rekurens, akan dicapai kondisi dimana terlalu banyak proses yang menunggu hasil dari tahap rekurens yang dipanggil, dan apabila proses yang menunggu telah melebihi batasnya, program tersebut akan hang dan tidak menghasilkan output.

11 III-11 Karena PrefixSpan [PEI01] merupakan algoritma yang rekursif, untuk selanjutnya dalam tugas akhir ini, PrefixSpan tersebut akan disebut PrefixSpan rekursif III.3 Analisis Implementasi PrefixSpan Rekursif Agar algoritma PrefixSpan dapat berjalan sebagaimana seharusnya, terdapat dua hal harus dilakukan terlebih dahulu, yaitu mengatur nilai threshold yang diinginkan dan membungkus seluruh data pada sequence database ke dalam kelas Sequence. Untuk membungkus sequence database ke dalam kelas Sequence, yang diperlukan adalah nama file yang menyimpan sequence database tersebut. Dengan cara kerja umum seperti ini, diagram use case untuk aplikasi ini dapat dilihat pada Gambar III-2. user Mencari Sequential Pattern Gambar III-2 Use Case program Aktor yang terlibat dalam sistem ini adalah orang yang akan menggunakan program ini. Sebagaimana yang terlihat pada diagram use case, satu-satunya yang bisa dilakukan oleh user adalah mencari sequential pattern, dan skenarionya sebagai berikut: 1. Pengguna memasukkan nama file yang merupakan sequence database, nilai threshold dari sequential pattern yang diinginkan dan nama file untuk menyimpan sequential pattern yang dihasilkan 2. Kelas utama akan memanggil method findonesequence ( ) yang merupakan method milik kelas yang membungkus sequence database untuk mencari frequent sequence satu elemen dari sequence database yang diberikan. 3. Untuk setiap frequent sequence yang ditemukan, dibentuk projected database dimana frequent sequence tersebut dijadikan prefix dari projected databasenya. Selain itu, setiap frequent sequence yang ditemukan digabungkan dengan prefixnya untuk mendapatkan sequential pattern.

12 III-12 Sequence diagram skenario dapat dilihat pada Gambar III-3 Gambar III-3 Sequence Diagram program Pada implementasikan, proses-proses seperti proyeksi, pencarian 1-sequence dan lainnya adalah proses yang bisa dilakukan per sequence, karena sama sekali tidak memerlukan informasi apa sequence sebelumnya dan apa sequence sesudahnya. Oleh karena itu perlu dibangun suatu kelas yang membungkus sequence. Namun terdapat suatu proses yang memerlukan seluruh sequence sebagai suatu kesatuan. Sehingga diperlukan kelas yang memiliki akses terhadap serluruh sequence yang ada. Selain itu, terdapat satu kelas lagi yang perlu untuk dibangun yang berfungsi untuk melakukan pencarian dan penyimpanan Sequential Pattern. Oleh karena itu, rancangan program dari algoritma PrefixSpan terdapat dalam Gambar III.2 Berikut akan diberikan penjelasan lebih lanjut mengenai kelas-kelas yang telah dibangun. III.3.1 Kelas Sequence Sequence adalah kelas yang menyimpan sequence. Pada kelas ini terdapat method projected( ) dan method concat( ) yang merupakan implementasi dari mekanisme proyeksi sequence terhadap suatu prefix dan penggabungan prefix dengan postfixnya. III.3.2 Kelas Data Kelas ini dibangun untuk membungkus sequence-sequence yang ada, sehingga pemrosesan terhadapnya lebih mudah untuk dilakukan. Di dalam kelas ini terdapat dua fungsi utama, yaitu findonesequence() dan projected(). findonesequence()

13 III-13 adalah untuk menemukan sekumpulan frequent item a yang terdapat didalam list of sequence, dan merupakan implementasi dari mekanisme pencarian satu frequent sequence, sedangkan projected() adalah untuk memroyeksi sequence-sequence tersebut dengan a. Gambar III-4 Gambar Class Diagram implementasi PrefixSpan III.3.3 Kelas FSequence FSequence adalah kelas yang dibangun untuk keperluan internal kelas Data. Fungsinya adalah menyimpan sequence-sequence yang nantikna akan menjadi 1- length frequent sequence. Penggunakan kelas ini hanya terdapat pada method findonesequence() milik kelas Data. III.3.4 Kelas PTree Kelas adalah kelas yang dibangun untuk menyimpan sequential pattern dan mengimplementasikan fungsi PrefixSpan. Struktur penyimpanan sequential pattern adalah dengan menggunakan pohon, karena dengan struktur ini, dapat ditelusuri pembentukan sequential pattern melalui prefix-nya.

14 III-14 III.4 Evaluasi Implementasi PrefixSpan Pada implementasi yang dijelaskan pada III.3, terdapat beberapa hal didalamnya yang akan menyebabkan program tidak berjalan sebagaimana mestinya, atau bahkan tidak berjalan sama sekali. Hal-hal tersebut antara lain: 1. Algoritma rekursif. Algoritma memberikan kemudahan pada beberapa kasus, namun seiring dengan kemudahan yang diberikan, terdapat pula resiko yang mungkin akan muncul, yaitu resiko berhentinya program karena call stack komputer yang penuh yang disebabkan oleh terlalu banyak penundaan pemamggilan algoritma rekursif tersebut. 2. Penyimpanan sequence database pada main memory. Hal ini tentu saja menjadi riskan apabila memory yang tersedia tidak lagi mencukupi untuk menyimpan seluruh sequence database yang ada. 3. Pembuatan sequence database sejumlah sequential pattern yang ada. Setiap suatu frequent sequence satu elemen ditemukan, program akan membentuk projected database dengan prefix frequent sequence tersebut. Padahal, terdapat kemungkinan hasil proyeksi tersebut menghasilkan database yang jumlah instance-nya kurang dari nilai threshold atau bahkan tidak ada instance-nya sama sekali. Jika kondisinya seperti ini, tidak mungkin ada frequent sequence yang dihasilkan dari projected database tersebut, karena tidak memenuhi nilai threshold yang ditemukan. 4. Pencarian frequent sequence 1 elemen yang sangat memakan proses pada sequence yang mengandung tanda kurung didalamnya. Hal ini dikarenakan setiap terdapat elemen yang bertanda kurung, penanganan khusus harus dilakukan karena elemen seperti ini mengandung banyak objek. Penanganan khusus ini mengharuskan pembentukan himpunan bagian dari objek pada elemen tersebut. Apabila elemen tersebut terdiri dari 10 objek, maka akan dibentuk 2 10 himpunan bagian. Apabila terdapat 10 elemen yang seperti ini dalam satu sequence, 10 x 2 10 himpunan bagian akan dibentuk untuk memroses satu sequence saja. Oleh karena itu, cara pencarian frequent sequence satu elemen perlu diperbaharui.

15 III-15 III.5 Strategi Implementasi untuk Peningkatan Kinerja Berdasarkan rancangan implementasi pada III.2, diusulkan beberapa alternatif implementasi untuk peningkatan waktu proses. Kemudian dari usul tersebut, dilakukan percobaan yang terdapat pada Lampiran A untuk mendukung analisis, dan akhirnya disimpulkan usulan yang mana yang layak untuk digunakan. III.5.1 Alternatif Strategi Implementasi Beberapa alternatif strategi peningkatan kinerja yang diusulkan antara lain: 1. Perubahan algoritma dari bentuk rekursif menjadi bentuk iteratif. Ketika fungsi rekursif berjalan lama sehingga menjadi terlalu sering memanggil bagian rekurens, akan mengakibatkan error stack overflow, oleh karena itu, bentuk rekursif harus diubah menjadi bentuk iteratif. 2. Data yang digunakan setiap pencarian satu frequent sequence sebenarnya berasal dari sumber yang berbeda dan tidak memiliki keterkaitan satu sama lain. Kondisi seperti ini memungkinkan digunakannya multithreading, karena prosesproses yang terjadi dapat berjalan secara pararrel. 3. Sequence yang diambil dari sequence database tidak disimpan di dalam main memory, hanya dipanggil saja ketika diperlukan. Sebagai gantinya, untuk keperluan proyeksi, kelas Sequence menyimpan dua informasi yang berkaitan dengan sequence yang direpresentasikan olehnya, yaitu satu nilai boolean untuk menentukan apakah postfix tersebut ditambahkan saja di belakang prefix atau digabungkan, dan nilai lainnya adalah integer untuk menyimpan karakter keberapa yang menjadi karakter pertama pada saat tertentu. Misalnya Sequence dari basis data adalah <(ab)cda>, instance kelas Sequence yang bersesuaian berisi false untuk nilai boolean, 1 untuk nilai integer. Beberapa contoh lainnya: Dengan sequence asalnya adalah <(ab)cda>: <(_b)cda> = boolean bernilai true, integer bernilai 3 <cda> = boolean bernilai false, integer bernilai 5 <> = boolean bernilai false, integer bernilai 0 Sedangkan untuk sequence aslinya, disimpan di dalam file external atau basis data relasional.

16 III Scan terhadap sequence database adalah proses yang menghabiskan waktu bila ukurannya besar, karena dilakukan pembacaan satu per satu dari awal sampai akhir. Oleh karena itu, dengan diterapkannya algoritma scaning dengan konsep divide and conquer, diharapkan dapat menurunkan waktu proses yang dibutuhkan. 5. Apabila terdapat suatu himpunan sequence satu elemen yang beranggotakan frequent sequence 1 elemen dari suatu sequence database, nantinya keseluruhan sequential pattern tidak mungkin akan mengandung elemen diluar himpunan tersebut. Oleh karena itu, proses pencarian frequent sequence satu elemen yang dapat diubah dari yang sebelumnya mencari elemen yang jumlah kemunculannya melewati threshold menjadi penghitungan berapa kemunculan elemen yang terdapat dalam himpunan tersebut dalam database. III.5.2 Analisis terhadap Alternatif Dari usulan yang dikemukakan pada pada III.4.1, terdapat beberapa usulan yang telah diuji melalui percobaan untuk membuktikan kebenarannya. Sedangkan untuk lainnya, hanya dilakukan analisis saja. 1. Perubahan rekursif menjadi iteratif Usulan ini tidak dilakukan percobaan, karena dari analisis saja sudah dapat diketahui dengan pasti bahwa jika mengunakan rekursif maka akan memiliki kemungkinan error jika rekurens yang terjadi terlalu banyak. Namun implementasi ini akan mengakibatkan output yang tadinya berupa tipe data pohon menjadi list biasa saja. Tidak ada efek yang berarti untuk perubahan ini, hanya saja penelurusan keterurutan penghasilan sequential pattern tidak akan semudah apabila dengan menggunakan tipe data pohon. 2. Penggunaan multithreading Dilakukan percobaan sederhana untuk usulan ini yang tertera pada Lampiran A-1, namun pada percobaan tersebut tingkat relevansi dengan program adalah rendah. Hal ini disebabkan belum ada rancangan iteratif dari program. Sedangkan Lampiran B menunjukkan bahwa multithreading dapat meningkatkan kinerja dari segi waktu proses suatu program. 3. Penyimpanan sequence pada file external atau database

17 III-17 Implementasi alternatif nomor tiga yang diungkapkan pada III.5.1 sangat kompleks dan rentang terhadap bug, sehingga implementasinya nanti hasil proyeksi akan disimpan di file external atau database. Percobaan dilakukan untuk mengetahui mana yang lebih cepat antara akses file external atau akses database. Dari hasil percobaan yang tertera pada Lampiran A-2, file external terbukti lebih baik dari segi kecepatan maupun efisiensi memory. 4. Scan Sequence database dilakukan dengan metode Divide and Conquer akan dapat dilakukan apabila penyimpanan sequence database pada DBMS tertentu. Namun apabila disimpan dalam file, untuk melakukan akses tidak dari awal file diperlukan suatu acuan yang menunjukkan karakter suatu sequence adalah karakter ke berapa dalam file tersebut, atau yang lebih primitif lagi, pada byte ke berapa karakter pertamanya. Oleh karena itu, perlu diciptakan file lain yang menjadi sejenis index untuk memungkinan divide and conquer diimplementasikan. 5. Dengan membatasi pencarian frequent sequence 1 elemen hanya pada himpunan frequent sequence 1 elemen yang ditemukan sebelumnya, penyimpanan sementara elemen yang dihitung dapat dibatasi dari yang semula seluruh elemen menjadi sebagian kecil elemen saja. Selain itu, elemen yang memiliki banyak objek didalamnya tidak perlu dibangkitkan himpunan bagiannya. Permasalahan mengenai kemungkinan membangkitkan ratusan ribu himpunan bagian dapat terselesaikan, karena dengan cara ini tidak perlu dibangkitkan sama sekali himpunan bagian untuk elemen tersebut. III.6 Analisis Penggunaan Multithreading Terdapat dua cara untuk mengimplementasikan multithreading dalam permasalahan ini. Yang pertama adalah dengan menciptakan satu thread untuk setiap sequential pattern yang dihasilkan. Nantinya di setiap thread tersebut, dilakukan pemrosesan terhadap sequential pattern tersebut yang akan menghasilkan sequential pattern lainnya apabila memang masih dapat menghasilkan. Cara kedua yaitu dengan menciptakan beberapa thread dalam jumlah yang tetap. Thread-thread ini nantinya akan memproses sequential pattern bergantian. Prinsipnya, setiap thread akan diberikan satu sequential pattern untuk diproses. Apabila masih terdapat sequential

18 III-18 pattern yang belum diberikan kepada suatu thread untuk diproses, program akan menunggu thread-thread yang sedang berjalan untuk selesai melakukan proses. Bila nanti terdapat thread yang telah selesai memproses, sequential pattern tersebut akan diberikan kepadanya. Pada Lampiran B, dilakukan percobaan untuk membandingkan kecepatan proses suatu program yang diimplementasikan dengan cara single thread, multithread cara pertama dan multithread cara kedua. Hasilnya menunjukkan bahwa cara kedua memiliki waktu proses yang lebih kecil. Oleh karena itu, perancangan program multithread yang dibangun akan menggunakan cara tersebut.

BAB IV PERANCANGAN. IV.1 Evaluasi Usulan untuk Perancangan Iteratif

BAB IV PERANCANGAN. IV.1 Evaluasi Usulan untuk Perancangan Iteratif Prosedure PrefixSpan(input: a: l: integer, S: Sequence database) { Mencari Sequential Pattern pada sequence database S } Deklarasi D : Temporary Sequence Database Lst : List of Sequential Pattern Sq :

Lebih terperinci

Strategi Implementasi Peningkatan Waktu Proses Algoritma PrefixSpan untuk Sequential Pattern Mining

Strategi Implementasi Peningkatan Waktu Proses Algoritma PrefixSpan untuk Sequential Pattern Mining Strategi Implementasi Peningkatan Waktu Proses Algoritma PrefixSpan untuk Sequential Pattern Mining LAPORAN TUGAS AKHIR Disusun sebagai syarat kelulusan tingkat sarjana oleh : Riza Ramadan / 13503037 PROGRAM

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS 29 BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS Dengan menggunakan Visual Basic 6.0 aplikasi perangkat ajar pengelolaan dan perhitungan ekspresi matematika yang akan dibangun dalam penelitian

Lebih terperinci

2.2 Data Mining. Universitas Sumatera Utara

2.2 Data Mining. Universitas Sumatera Utara Basis data adalah kumpulan terintegrasi dari occurences file/table yang merupakan representasi data dari suatu model enterprise. Sistem basisdata sebenarnya tidak lain adalah sistem penyimpanan-record

Lebih terperinci

BAB II INDUCT/RIPPLE-DOWN RULE (RDR)

BAB II INDUCT/RIPPLE-DOWN RULE (RDR) BAB II INDUCT/RIPPLE-DOWN RULE (RDR) Bab ini berisi tentang uraian mengenai teori Ripple-Down Rules (RDR), yang meliputi RDR dengan pengembangan manual dan RDR yang menerapkan algoritma Induct untuk pengembangannya.

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN BAB III ANALISIS DAN PERANCANGAN Kondisi pengolahan data yang telah dijabarkan sebelumnya pada bab 1 (satu) memiliki keterkaitan terhadap permasalahan yang teridentifikasi. Yaitu permasalahan terkait desain

Lebih terperinci

BAB III METODE PENELITIAN / PERANCANGAN SISTEM. perancangan dan pembuatan program ini meliputi : dengan konversi notasi infix, prefix, dan postfix.

BAB III METODE PENELITIAN / PERANCANGAN SISTEM. perancangan dan pembuatan program ini meliputi : dengan konversi notasi infix, prefix, dan postfix. 21 BAB III METODE PENELITIAN / PERANCANGAN SISTEM 3.1. Metode Penelitian Metodologi penelitian yang digunakan untuk mendukung penyelesaian perancangan dan pembuatan program ini meliputi : 1. Studi literatur

Lebih terperinci

BAB II STACK Atau TUMPUKAN

BAB II STACK Atau TUMPUKAN BAB II STACK Atau TUMPUKAN List Linear (Daftar Linear). List linier adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya disebut simpul (node). Simpul terdiri

Lebih terperinci

DAFTAR REFERENSI. xiii. Computer Science Education, San Jose, United States, 1997.

DAFTAR REFERENSI. xiii. Computer Science Education, San Jose, United States, 1997. DAFTAR REFERENSI [AGR95] [AHW03] [CAR06] [GKK01] [HAN01] [JAC97] [PEI01] [RSL95] Agrawal, Rakesh, Ramakrishnan Srikant. 1995. Mining Sequential Patterns. IBM Research Center. Agrawal, C, Han, Jiawei, Wang,

Lebih terperinci

Penerapan Stuktur FP-Tree dan Algoritma FP-Growth dalam Optimasi Penentuan Frequent Itemset

Penerapan Stuktur FP-Tree dan Algoritma FP-Growth dalam Optimasi Penentuan Frequent Itemset Penerapan Stuktur FP-Tree dan Algoritma FP-Growth dalam Optimasi Penentuan Frequent Itemset David Samuel/NIM :13506081 1) 1) Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut

Lebih terperinci

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang

Pencarian pada Array. Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang Pencarian pada Array Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer UDINUS Semarang Latar Belakang Merupakan proses yang penting karena sering dilakukan terhadap sekumpulan data yang disimpan

Lebih terperinci

STRATEGI DIVIDE AND CONQUER

STRATEGI DIVIDE AND CONQUER Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang dapat dikelola. Penyelesaian masalah

Lebih terperinci

BAB II STACK (TUMPUKAN)

BAB II STACK (TUMPUKAN) BAB II STACK (TUMPUKAN) Stack merupakan metode dalam menyimpan atau mengambil data ke dan dari memori. Stack dapat dibratkan sebuah tumpukan barang dalam sebuah tempat yang hanya memiliki satu pintu diatsnya

Lebih terperinci

STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR

STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR Sebuah daftar linear atau linear list, merupakan suatu struktur data umum yang terbentuk dari barisan hingga yang terurut) dari satuan data ataupun dari record. Untuk

Lebih terperinci

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan STACK (TUMPUKAN) adalah suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Contoh dalam kehidupan sehari-hari adalah tumpukan piring di sebuah restoran yang

Lebih terperinci

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM 30 BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM III.1. Analisa Pada bab ini akan dibahas mengenai analisis permainan, yaitu konsep aturan dan cara bermain pada game yang berhubungan dengan program yang

Lebih terperinci

PENDAHULUAN. Latar Belakang

PENDAHULUAN. Latar Belakang Latar Belakang PENDAHULUAN Perkembangan teknologi informasi yang sangat pesat yang terjadi dewasa ini menuntut manusia untuk mampu beradaptasi dengan perkembangan tersebut. Upaya adaptasi yang dilakukan

Lebih terperinci

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle Veren Iliana Kurniadi 13515078 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN. Dalam proses produksi terdapat beberapa faktor yang akan mempengaruhi

BAB III ANALISIS DAN PERANCANGAN. Dalam proses produksi terdapat beberapa faktor yang akan mempengaruhi BAB III ANALISIS DAN PERANCANGAN 3.1 Analisis Masalah Dalam proses produksi terdapat beberapa faktor yang akan mempengaruhi hasil keluaran produksi. Ada 4 faktor yang saling berhubungan satu dengan yang

Lebih terperinci

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016 Analisa dan Perancangan Algoritma Ahmad Sabri, Dr Sesi 2: 16 Mei 2016 Teknik rekursif dan iteratif Algoritma rekursif adalah algoritma yang memanggil dirinya sendiri sampai tercapai kondisi yang ditetapkan

Lebih terperinci

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA Wahyu Fahmy Wisudawan Program Studi Teknik Informatika Institut Teknologi Bandung, NIM: 506 Jl. Dago Asri 4 No. 4, Bandung

Lebih terperinci

BAB 6 METODE PENGUJIAN

BAB 6 METODE PENGUJIAN BAB 6 METODE PENGUJIAN Metode pengujian adalah cara atau teknik untuk menguji perangkat lunak, mempunyai mekanisme untuk menentukan data uji yang dapat menguji perangkat lunak secara lengkap dan mempunyai

Lebih terperinci

Analisis Perbandingan Algoritma Rekursif dan Non-Rekursif secara DFS (Depth First Search) dengan Memanfaatkan Graf

Analisis Perbandingan Algoritma Rekursif dan Non-Rekursif secara DFS (Depth First Search) dengan Memanfaatkan Graf 1 nalisis Perbandingan lgoritma Rekursif dan Non-Rekursif secara S (epth irst Search) dengan Memanfaatkan raf ayu di Persada 13505043 STRK Program Studi Teknik Informatika Institut Teknologi andung Jalan

Lebih terperinci

Bahasa Pemrograman :: Pemrograman List

Bahasa Pemrograman :: Pemrograman List Bahasa Pemrograman :: Pemrograman Julio Adisantoso ILKOM IPB 2 Maret 2011 Scheme dituliskan dengan menggunakan notasi Cambridge-prefix. Seluruh instruksi dalam Scheme membentuk pola list, dimana data dan

Lebih terperinci

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String Struktur dapat diartikan sebagai suatu susunan, bentuk, pola atau bangunan. Data dapat diartikan sebagai suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode atau lambang-lambang

Lebih terperinci

BAB VII ALGORITMA DIVIDE AND CONQUER

BAB VII ALGORITMA DIVIDE AND CONQUER BAB VII ALGORITMA DIVIDE AND CONQUER Pemrogram bertanggung jawab atas implementasi solusi. Pembuatan program akan menjadi lebih sederhana jika masalah dapat dipecah menjadi sub masalah - sub masalah yang

Lebih terperinci

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1 Pengenalan Algoritma & Struktur Data Pertemuan ke-1 Apa itu Struktur Data? PROGRAM ALGO RITMA STRUKTUR DATA Algoritma.. deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis 1. Ditulis

Lebih terperinci

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING) PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING) a. Introduction b. Tanpa Boolean c. Dengan Boolean d. Penggunaan dalam Fungsi INTRODUCTION Merupakan algoritma pencarian yang paling sederhana. Proses Membandingkan

Lebih terperinci

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP Ahmad Ayyub Mustofa Jurusan Teknik Informatika ITB, Bandung 40132, email: rekka_zan@students.itb.ac.id Abstraksi Bahasa pemrograman

Lebih terperinci

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e. 1. Dalam menyusun suatu program, langkah pertama yang harus dilakukan adalah : a.membuat program b. Membuat Algoritma c. Membeli komputer d. Proses e. Mempelajari program 2. Sebuah prosedur langkah demi

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI 5 BAB II LANDASAN TEORI 2.1. Tipe Data Abstrak (TDA) Tipe data sebuah variabel adalah kumpulan nilai yang dapat dimuat oleh variabel ini. Misalnya sebuah tipe boolean hanya bernilai TRUE atau FALSE, tidak

Lebih terperinci

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Mia Fitriawati, M.Kom FUNGSI Modul program yang mengembalikan/ memberikan (return) sebuah nilai yang bertipe sederhana. tipe data sederhana : integer, real, boolean, dan string

Lebih terperinci

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Pada sub bab ini akan dijelaskan mengenai analisis sistem informasi rental mobil

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Pada sub bab ini akan dijelaskan mengenai analisis sistem informasi rental mobil BAB IV ANALISIS DAN PERANCANGAN SISTEM 4.1 Analisis Sistem Yang Berjalan Pada sub bab ini akan dijelaskan mengenai analisis sistem informasi rental mobil di ABC Putra Mandiri yang sedang berjalan. Adapun

Lebih terperinci

JAVA BASIC PROGRAMMING Joobshet

JAVA BASIC PROGRAMMING Joobshet JAVA BASIC PROGRAMMING Joobshet 1. KOMPETENSI Mahasiswa dapat memahami jenis jenis tipe data Mahasiswa dapat memahami jenis jenis variable Mahasiswa dapat memahami jenis jenis seleksi kondisi Mahasiswa

Lebih terperinci

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello Annisa Muzdalifa - 13515090 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha

Lebih terperinci

STRUKTUR DATA Pertemuan 4

STRUKTUR DATA Pertemuan 4 STRUKTUR DATA Pertemuan 4 Struktur Data prepared by Suyanto 1 Definisi Stack atau Tumpukan adalah suatu struktur data yang terbentuk dari barisan hingga yang terurut dari satuan data. Pada Stack, penambahan

Lebih terperinci

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM III.1. Analisis Masalah Proses analisa sistem merupakan langkah kedua pada pengembangan sistem. Analisa sistem dilakukan untuk memahami informasi-informasi

Lebih terperinci

Brigida Arie Minartiningtyas, M.Kom

Brigida Arie Minartiningtyas, M.Kom Brigida Arie Minartiningtyas, M.Kom Struktur Data Struktur dan Data Struktur suatu susunan, bentuk, pola atau bangunan Data suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode

Lebih terperinci

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan STACK (TUMPUKAN) Stack adalah suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Contoh dalam kehidupan sehari-hari adalah tumpukan piring di sebuah restoran

Lebih terperinci

6 Maret Structure of Java [Penyeleksian Kondisi]

6 Maret Structure of Java [Penyeleksian Kondisi] 6 Maret 2012 Structure of Java [Penyeleksian Kondisi] Input User Menggunakan JOptionPane (GUI). Import.javax.swing. String, Int, harus di rubah Menggunakan Scanner (Dos). Import.java.util Scanner, objek

Lebih terperinci

A. Pengujian Perangkat Lunak

A. Pengujian Perangkat Lunak A. Pengujian Perangkat Lunak Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan spesifikasi, desain dan pengkodean. Meningkatnya visibilitas (kemampuan)

Lebih terperinci

BAB III ANALISA DAN PERANCANGAN

BAB III ANALISA DAN PERANCANGAN BAB III ANALISA DAN PERANCANGAN 3.1 Analisa Sistem Dalam membangun Aplikasi Simulasi pembelajaran Struktur Data Materi Stack, penulis akan menganalisa kebutuhan dasar sistem yang dibutuhkan. Analisa dilakukan

Lebih terperinci

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB Pertemuan Ke 5 : List Linier (Linked List) Referensi: 1. Inggriani Liem. 2003. Catatan Kuliah & Pemrograman, Jurusan Teknik Informatika ITB 2. Rinaldi Munir. 2003. dan Pemrograman II. Bandung : Penerbit

Lebih terperinci

Aplikasi Rekursif dalam Analisis Sintaks Program

Aplikasi Rekursif dalam Analisis Sintaks Program Aplikasi Rekursif dalam Analisis Sintaks Program Albertus Kelvin / 13514100 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA

ALGORITMA DAN STRUKTUR DATA Modul ke: 05 Desi Fakultas FASILKOM ALGORITMA DAN STRUKTUR DATA OLEH : Ramayanti, S.Kom, MT Program Studi Teknik Informatika APLIKASI SINGLE STACK Infix, Postfix, Prefix Operand & Operator A * ( B + C

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN BAB III ANALISIS DAN PERANCANGAN Pada bab ini akan dibahas mengenai analisis dan perancangan pada sistem ng dibangun, itu penerapan algoritma Backtrack dalam membangkitkan elemen awal permainan Sudoku.

Lebih terperinci

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE Mohammad Dimas (13507059) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung Jalan Ganesha

Lebih terperinci

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data Restu Arif Priyono / 13509020 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi

Lebih terperinci

Aplikasi Graf Breadth-First Search Pada Solver Rubik s Cube

Aplikasi Graf Breadth-First Search Pada Solver Rubik s Cube Aplikasi Graf Breadth-First Search Pada Solver Rubik s Cube Felix Terahadi - 13510039 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10

Lebih terperinci

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016 NASKAH UJIAN UTAMA MATA UJIAN : LOGIKA DAN ALGORITMA JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016 NASKAH UJIAN INI TERDIRI DARI 80 SOAL PILIHAN GANDA

Lebih terperinci

ALGORITMA DIVIDE AND CONQUER

ALGORITMA DIVIDE AND CONQUER ALGORITMA DIVIDE AND CONQUER By Gapra. Email : ga_pra_27@yahoo.co.id 1. Pengertian Algoritma Divide and Conquer merupakan algoritma yang sangat populer di dunia Ilmu Komputer. Divide and Conquer merupakan

Lebih terperinci

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF

OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF OPERASI LOGIKA PADA GENERAL TREE MENGGUNAKAN FUNGSI REKURSIF Lutfi Hakim (1), Eko Mulyanto Yuniarno (2) Mahasiswa Jurusan Teknik Elektro (1), Dosen Pembimbing (2) Institut Teknologi Sepuluh Nopember (ITS)

Lebih terperinci

BAB IV ANALISA DAN PERANCANGAN

BAB IV ANALISA DAN PERANCANGAN BAB IV ANALISA DAN PERANCANGAN 4.1 Analisa Deskripsi Umum Sistem Perangkat lunak yang akan dibangun merupakan perangkat lunak yang diterapkan pada telepon selular yang bersistem operasi Android dan memiliki

Lebih terperinci

Algoritma Divide and Conquer untuk Optimasi Pemberian Efek Aura pada Permainan DotA (Defense of the Ancient)

Algoritma Divide and Conquer untuk Optimasi Pemberian Efek Aura pada Permainan DotA (Defense of the Ancient) Algoritma Divide and Conquer untuk Optimasi Pemberian Efek Aura pada Permainan DotA (Defense of the Ancient) Arifin Luthfi Putranto NIM 13508050 Program Studi Teknik Informatika Sekolah Teknik Elektro

Lebih terperinci

Algoritma Pendukung Kriptografi

Algoritma Pendukung Kriptografi Bahan Kuliah ke-20 IF5054 Kriptografi Algoritma Pendukung Kriptografi Disusun oleh: Ir. Rinaldi Munir, M.T. Departemen Teknik Informatika Institut Teknologi Bandung 2004 20. Algoritma Pendukung Kriptografi

Lebih terperinci

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar STRUKTUR DATA Nama : Sulfikar Npm : 2013020076 STMIK Handayani Makassar Pengertian Quick Sort Algoritma sortir yang efisien yang ditulis oleh C.A.R. Hoare pada 1962. Dasar strateginya adalah memecah dan

Lebih terperinci

Algoritma Pemrograman

Algoritma Pemrograman Algoritma Pemrograman Pertemuan Ke-4 (Nilai dan Urutan [Sequence]) :: Noor Ifada :: S1 Teknik Informatika-Unijoyo 1 Sub Pokok Bahasan Nilai Pengisian nilai ke dalam nama peubah Ekspresi Menuliskan Nilai

Lebih terperinci

Nama : Rendi Setiawan Nim :

Nama : Rendi Setiawan Nim : Nama : Rendi Setiawan Nim : 41813120188 Desain Test Case Definisi Test Case Test case merupakan suatu tes yang dilakukan berdasarkan pada suatu inisialisasi, masukan, kondisi ataupun hasil yang telah ditentukan

Lebih terperinci

Penggunaan Pohon Keputusan untuk Data Mining

Penggunaan Pohon Keputusan untuk Data Mining Penggunaan Pohon Keputusan untuk Data Mining Indah Kuntum Khairina NIM 13505088 Program Studi Teknik Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jalan Ganesha

Lebih terperinci

MAKALAH ALGORITMA DIVIDE AND CONQUER

MAKALAH ALGORITMA DIVIDE AND CONQUER MAKALAH ALGORITMA DIVIDE AND CONQUER Galih Pranowo Jurusan Matematika Ilmu Komputer FAKULTAS SAINS TERAPAN INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 1. Pengertian Algoritma Divide and Conquer merupakan

Lebih terperinci

Algoritma dan Struktur Data STACK

Algoritma dan Struktur Data STACK Algoritma dan Struktur Data STACK Teknik Informatika Universitas Muhammadiyah Malang 2016 Tujuan Instruksional Mahasiswa mampu : Memahami tentang konsep stack Mengetahui mekanisme pengoperasian sebuah

Lebih terperinci

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM BAB III ANALISA DAN DESAIN SISTEM III.1 Analisa Sistem Yang Sedang Berjalan Analisa sistem adalah memahami, mengamati, membagi serta mengidentifikasi kelemahan-kelemahan dan keunggulan sistem yang sedang

Lebih terperinci

BAB III ANALISIS. III.1 Gambaran Global MMORPG

BAB III ANALISIS. III.1 Gambaran Global MMORPG BAB III ANALISIS Bab ini mengemukakan analisis yang dilakukan terhadap MMORPG. Analisis yang dilakukan adalah analisis karakteristik fungsional, analisis karakteristik non fungsional. Setelah itu, akan

Lebih terperinci

BAB 4. PERANCANGAN Setelah melakukan proses analisa sistem berjalan maka akan dilakukan proses perancangan sistem yang diharapkan sesuai dengan kebutuhan pengguna yang dianalisa. Dalam perancangan sistem

Lebih terperinci

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA

ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA ALGORITMA (KOMPUTER) : ATURAN PENULISAN DAN STRUKTUR DASARNYA I. Pendahuluan Algoritma dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. Algoritma dapat ditulis dalam bahasa natural/bahasa

Lebih terperinci

PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK

PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK 1 PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK 1.1 NetBeans 8.1 Sebelum membuat project ada baiknya kenali dulu windows yang ada pada NetBeans 8.1 Projects/Services/Files Editor Output Navigator Projects

Lebih terperinci

Penggunaan Algoritma Greedy untuk Mencari Solusi Optimal dalam Permainan Brick Breaker

Penggunaan Algoritma Greedy untuk Mencari Solusi Optimal dalam Permainan Brick Breaker Penggunaan Greedy untuk Mencari Solusi Optimal dalam Permainan Brick Breaker Nanda Ekaputra Panjiarga 13509031 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi

Lebih terperinci

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A REPRESENTASI DATA ALUR PEMROSESAN DATA SISTEM BILANGAN TEORI BILANGAN KOVERSI BILANGAN OPERASI ARITMATIKA Representasi Data Data adalah sesuatu yang belum

Lebih terperinci

Penggunaan Algoritma Backtrack dan Aturan Warnsdorff Untuk Menyelesaikan Knight s Tour Problem

Penggunaan Algoritma Backtrack dan Aturan Warnsdorff Untuk Menyelesaikan Knight s Tour Problem Penggunaan Algoritma Backtrack dan Aturan Warnsdorff Untuk Menyelesaikan Knight s Tour Problem Ali Akbar - 13514080 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi

Lebih terperinci

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang BAB I PENDAHULUAN 1.1 Latar Belakang Apriori merupakan salah satu algoritma yang terkenal dalam mencari frequent pattern dari database transaksi[8]. Prinsip dari algortima Apriori ini adalah jika sebuah

Lebih terperinci

BAB III ANALISIS SISTEM DAN PERANCANGAN

BAB III ANALISIS SISTEM DAN PERANCANGAN BAB III ANALISIS SISTEM DAN PERANCANGAN III.1. Analisis Sistem Yang Berjalan Simulasi Remote control ini memanfaatkan koneksi USB data handphone nexian dengan mengecek terkoneksi ke komputer melalui perintah

Lebih terperinci

Pendeteksian Deadlock dengan Algoritma Runut-balik

Pendeteksian Deadlock dengan Algoritma Runut-balik Pendeteksian Deadlock dengan Algoritma Runut-balik Rita Wijaya - 13509098 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,

Lebih terperinci

ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN

ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN ALGORITMA PEMROGRAMAN 1C PENDAHULUAN KONSEP BAHASA PEMROGRAMAN Indah Wahyuni KONSEP DASAR PEMROGRAMAN Program merupakan himpunan atau kumpulan instruksi tertulis yang dibuat oleh programer atau suatu bagian

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA 2.1. Pengertian Algoritma Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Kata Logis merupakan kata kunci dalam Algoritma.

Lebih terperinci

MODUL IV Analisis Kasus/Pemilihan

MODUL IV Analisis Kasus/Pemilihan MODUL IV Analisis Kasus/Pemilihan TUJUAN 1. Memberikan pemahaman tentang bagaimana suatu kasus dianalisis dan dibreak-down menjadi beberapa kasus kecil menurut domain permasalahannya. 2. Memberikan pengenalan

Lebih terperinci

S T A C K ( T U M P U K A N )

S T A C K ( T U M P U K A N ) S T A C K T U M P U K A N ) LINIER LIST Suatu struktur data umum yang berisi suatu kumpulan terurut dari elemen; jumlah elemen di dalam list dapat berubah-ubah. Linier list A yang terdiri dari T elemen

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Algoritma Algoritma berasal dari nama ilmuwan muslim dari Uzbekistan, Abu Ja far Muhammad bin Musa Al-Khuwarizmi (780-846M). Pada awalnya kata algoritma adalah istilah yang merujuk

Lebih terperinci

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik Edward Hendrata (13505111) Program Studi Teknik Informatika, Institut Teknologi Bandung Jl Ganesha 10, Bandung E-mail: if15111@students.if.itb.ac.id

Lebih terperinci

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM III.1. Analisis Dari hasil penelitian yang dilakukan pada PT. EVRBRIGHT ditemukan bahwa sistem yang ditemukan untuk menetukan kadar obat hitam baterai belum

Lebih terperinci

Pendahuluan Struktur Data. Nisa ul Hafidhoh

Pendahuluan Struktur Data. Nisa ul Hafidhoh Pendahuluan Struktur Data Nisa ul Hafidhoh nisa@dsn.dinus.ac.id 08156114760 Tujuan Mahasiswa dapat melakukan pemrograman dalam skala menengah dengan memanfaatkan struktur data internal yang kompleks dan

Lebih terperinci

BAB 3 STACK (TUMPUKAN)

BAB 3 STACK (TUMPUKAN) BAB 3 STACK (TUMPUKAN) LINIER LIST Suatu struktur data umum yang berisi suatu kumpulan terurut dari elemen; jumlah elemen di dalam list dapat berubah-ubah. Linier list A yang terdiri dari T elemen pada

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Rangkaian Logika Rangkaian logika terbentuk dari hubungan beberapa gerbang (gate) logika. Rangkaian logika bekerja secara digital. Output dari suatu rangkaian logika ditentukan

Lebih terperinci

ALGORITMA PENGURUTAN & PENCARIAN

ALGORITMA PENGURUTAN & PENCARIAN Materi kuliah ALGORITMA PENGURUTAN & PENCARIAN Ir. Roedi Goernida, MT. (roedig@yahoo.com) Program Studi Sistem Informasi Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 2011 1 Pengelompokan

Lebih terperinci

Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1

Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1 Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1 Dr. Putu Harry Gunawan (PHN) Quiz I 1. Tentukan operasi dasar, c op dan C(n) untung masing-masing algoritma

Lebih terperinci

Dibuat Oleh : 1. Andrey ( )

Dibuat Oleh : 1. Andrey ( ) Dibuat Oleh : 1. Andrey (41813120186) FAKULTAS ILMU KOMPUTER PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS MERCU BUANA JAKARTA 2015 Definisi Test Case Test case merupakan suatu tes yang dilakukan berdasarkan

Lebih terperinci

Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Modul.

Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Modul. Pertemuan 3 Waktu : 135 menit Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Modul. Substansi Materi : Modul Tabulasi Kegiatan Perkuliahan No Tahap Kegiatan Kegiatan Pengajar

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN 32 BAB III ANALISIS DAN PERANCANGAN Pada bab ini akan dibahas tentang analisis sistem melalui pendekatan secara terstruktur dan perancangan yang akan dibangun dengan tujuan menghasilkan model atau representasi

Lebih terperinci

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR 1 PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR Siti Mukaromah, S.Kom TEKNIK PENYAJIAN ALGORITMA Teknik Tulisan Structure English Pseudocode Teknik Gambar Structure Chart HIPO Flowchart 2 PSEUDOCODE Kode

Lebih terperinci

BAB III PEMODELAN MASALAH

BAB III PEMODELAN MASALAH BAB III PEMODELAN MASALAH Masalah penjadwalan kereta api jalur tunggal dapat dimodelkan sebagai sebuah kasus khusus dari masalah penjadwalan Job-Shop. Hal ini dilakukan dengan menganggap perjalanan sebuah

Lebih terperinci

Algoritma Pemrograman

Algoritma Pemrograman Algoritma Pemrograman Pertemuan Ke-3 (Tipe Data dan Nama) 1 Sub Pokok Bahasan Pendahuluan Tipe Dasar Tipe Bentukan Nama 2 Pendahuluan Tipe adalah pola representasi data dalam komputer Tipe data dapat dikelompokkan

Lebih terperinci

Bagian I. Studi Kasus [82] Tanda tangan:

Bagian I. Studi Kasus [82] Tanda tangan: UJIAN TENGAH SEMESTER GANJIL NIM: 2010/2011 dan Struktur Data / CS2014 Nama : HARI : Kamis, 30 Oktober 2009 WAKTU : 110 menit DOSEN : TIM SIFAT : Tutup Buku, No Electronic Device Tanda tangan: Petunjuk:

Lebih terperinci

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya Ronny - 13506092 Jurusan Teknik Informatika Institut Teknologi Bandung Email : if16092@students.if.itb.ac.id 1. Abstract

Lebih terperinci

OPTIMASI QUERY UNTUK PENCARIAN DATA MENGGUNAKAN PENGURAIAN KALIMAT DAN ALGORITME LEVENSHTEIN DISTANCE

OPTIMASI QUERY UNTUK PENCARIAN DATA MENGGUNAKAN PENGURAIAN KALIMAT DAN ALGORITME LEVENSHTEIN DISTANCE OPTIMASI QUERY UNTUK PENCARIAN DATA MENGGUNAKAN PENGURAIAN KALIMAT DAN ALGORITME LEVENSHTEIN DISTANCE M. El Bahar Conoras 1, Aprian Dwi Kurnawan 2 1,2 Magister Teknik Informatika, UNIVERSITAS AMIKOM YOGYAKARTA

Lebih terperinci

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT Disusun untuk memenuhi tugas UTS mata kuliah : Analisis Algoritma Oleh : Eka Risky Firmansyah 1110091000043 Program Studi Teknik Informatika

Lebih terperinci

Aturan Penulisan Algoritma Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu : Judul (Header) Kamus Algoritma

Aturan Penulisan Algoritma Setiap Algoritma akan selalu terdiri dari tiga bagian yaitu : Judul (Header) Kamus Algoritma Pengantar dan Pemrograman alex@ilmukomputer.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit),

Lebih terperinci

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Penerapan Algoritma Runut-balik pada Permainan Math Maze Penerapan Algoritma Runut-balik pada Permainan Math Maze Angela Lynn - 13513032 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung

Lebih terperinci

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2 VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI Tujuan Pembelajaran 1. Siswa mampu memahami penulisan Tipe data, variabel dan konstanta dalam pascal 2. Siswa mampu menerapkan penggunaan Tipe data,

Lebih terperinci

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1 SEARCHING Pencarian data (searching) yang sering juga disebut dengan table look-up atau storage and retrieval information, adalah suatu proses untuk mengumpulkan sejumlah informasi di dalam pengingat komputer

Lebih terperinci

4. STACK / TUMPUKAN TEORI PENUNJANG

4. STACK / TUMPUKAN TEORI PENUNJANG 4. TCK / TUMPUKN TUJUN PRKTIKUM 1. Praktikan mengenal tipe khusus dari link list yaitu stack/tumpukan beserta seluruh operasi yang ada padanya. 2. Praktikan diharapkan dapat menerapkan teori mengenai single

Lebih terperinci

Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String

Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String Analisis Algoritma Knuth Morris Pratt dan Algoritma Boyer Moore dalam Proses Pencarian String Rama Aulia Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung

Lebih terperinci