• Tidak ada hasil yang ditemukan

Perbandingan Algoritma Bitap Dan Not So Naϊve Pada Aplikasi Kamus Istilah Agama Islam

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Algoritma Bitap Dan Not So Naϊve Pada Aplikasi Kamus Istilah Agama Islam"

Copied!
11
0
0

Teks penuh

(1)

LAMPIRAN I

LISTING PROGRAM

1.

Main form. Cs

public partial class MainForm :Form {

public MainForm() {

InitializeComponent();

TODO: }

void Button1Click(object sender, System.EventArgs e) {

this.Hide();

Artikata tampil = new Artikata(); tampil.ShowDialog();

this.Close(); }

} }

2

. Arti Kata.Cs

public partial class Artikata : Form {

public static List <string>[] lists = new List<string>[2]; string x,y;

int a, b, c, p, p1, p2, q, q1, q2, d; public Artikata()

{

InitializeComponent();

lists[0] = new List< string >(); lists[1] = new List< string >(); TODO:

}

void HapusButtonClick(object sender, EventArgs e) {

input.Clear(); artiBitap.Clear();

hasilbitapcombo.Items.Clear(); hasilnotsonaivecombo.Items.Clear(); artiNotSoNaive.Clear();

waktuBitap.Clear(); waktuNotSoNaive.Clear(); kataBitap.Clear();

kataNotSoNaive.Clear(); }

void ProsesButtonClick(object sender, EventArgs e) {

(2)

lists[1].Clear();

MySqlConnection connect

= new MySqlConnection("server=localhost; database=kamusagamaislam; uid=root; password=;");

connect.Open();

MySqlCommand command = new MySqlCommand("select * from kamus", connect); MySqlDataReader reader =

command.ExecuteReader(); Stopwatch b = new Stopwatch(); a.Start();

while (reader.Read()){

if (Bitap(input.Text.ToLower(), reader[1].ToString(). ToLower())){

hasilbitapcombo.Items.Add(reader[1].ToString()); lists[0].Add(reader[2].ToString());

} }

a.Stop();

waktuBitap.Text

= (int.Parse(a.Elapsed.ToString("fffffff"))/10000f).ToString() + " ms ";

reader.Close();

reader = command.ExecuteReader(); b.Start();

while (reader.Read()){

if(notsonaive(input.Text.ToLower(), reader[1].ToString().ToLower())) {

hasilnotsonaivecombo.Items.Add(reader[1].ToString()); lists[1].Add(reader[2].ToString());

} }

b.Stop();

waktuNotSoNaive.Text

= (int.Parse(b.Elapsed.ToString("fffffff"))/10000f).ToString() + " ms ";

connect.Close();

kataBitap.Text = hasilbitapcombo.Items.Count.ToString(); kataNotSoNaive.Text = hasilnotsonaivecombo.Items.Count.ToString(); }

//---PROSES ALGORITMA BITAP---//

int preBitap(string x, Dictionary<char, int> S) {

int j, lim; int i;

for (i=0; i<x.Length; i++){ if (!S.ContainsKey(x[i])) S.Add(x[i], ~0); }

S.Add('*', ~0);

for (lim = i = 0, j=1; i<x.Length; i++, j<<=1){ S[x[i]] &= ~j;

lim |= j; }

lim = ~(lim >> 1); return lim;

(3)

bool Bitap(string x, string y) {

int lim, state;

Dictionary<char, int> S = new Dictionary<char, int>(); int j,values;

if (x.Length > 32) return false; lim = preBitap(x, S);

for (state= ~0, j=0; j < y.Length; j++) {

state =

S.TryGetValue(y[j], out values) ? (state << 1) | S[y[j]] : (state<<1) | S ['*'];

if (state<lim){ return true; }

}

return false; }

unsafe bool notsonaive(string x, string y){ int j, k, ell;

if(x[0] == x[1]){ k=2;

ell=1; }

else { k=1; ell=2; }

j=0;

while(j<=y.Length-x.Length){ if (x[1] != y[j+1]){ j+=k;

} else{

fixed (char* b1=x, b2=y){

if (memcmp(b1+2, b2+j+2, x.Length-2) && x[0] == y[j])

return true; }

}

j+=ell; }

return false; }

unsafe bool memcmp(char* a, char* b, int count){ int i=0;

while (i<count) {

if(*(char *)a != *(char*)b) return false;

a++; b++; i++; }

return true; }

(4)

{

input.Focus(); input.Select();

}

void HasilbitapcomboSelectedIndexChanged(object sender, EventAr gs e)

{

hasilbitapcombo.Text = "Lihat Hasil Pencarian"; if (hasilbitapcombo.Text == "Kata Tidak Ditemukan") return;

artiBitap.Text = lists[0][hasilbitapcombo.SelectedIndex]; }

//---MENU STRIP---//

void updatekataToolStripMenuItemClick(object sender, EventArgs e)

{

this.Hide();

updatekata tampil1 = new updatekata(); tampil1.ShowDialog();

this.Close(); }

void TentangToolStripMenuItemClick(object sender, Event Args e)

{

this.Hide();

tentang tampil2 = new tentang(); tampil2.ShowDialog();

this.Close(); }

void BantuanToolStripMenuItem1Click(object sender, Even tArgs e)

{

this.Hide();

Bantuan tampil3 = new Bantuan(); tampil3.ShowDialog();

this.Close(); }

void HasilnotsonaivecomboSelectedIndexChanged(object se nder, EventArgs e)

{

hasilnotsonaivecombo.Text = "Lihat Hasil Pencarian";

if (hasilnotsonaivecombo.Text == "Kata Tidak Ditemukan")

return;

artiNotSoNaive.Text =

lists[0][hasilnotsonaivecombo.SelectedIndex]; }

void WaktuBitapTextChanged(object sender, EventArgs e) {

(5)

3.

Update kata.cs

public partial class updatekata : Form {

public updatekata() {

//

// The InitializeComponent() call is required for Windows Forms designer support.

//

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call.

// }

void TampilkataClick(object sender, EventArgs e) {

MySqlConnection conn = koneksi.getkoneksi(); MySqlCommand command = conn.CreateCommand(); command.CommandText = "Select * from kamus"; conn.Open();

DataSet ds = new DataSet();

MySqlDataAdapter da = new MySqlDataAdapter(command); da.Fill(ds, "kamus");

dataGridView1.DataSource = ds; dataGridView1.DataMember = "kamus";

dataGridView1.Columns[0].HeaderText = "Nomor"; dataGridView1.Columns[1].HeaderText = "Kata"; dataGridView1.Columns[2].HeaderText = "Arti"; dataGridView1.Columns[0].Width = 50;

dataGridView1.Columns[1].Width = 100; dataGridView1.Columns[2].Width = 150; dataGridView1.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;

conn.Close(); }

void SimpankataClick(object sender, EventArgs e) {

try{

MySqlConnection conn = koneksi.getkoneksi(); conn.Open();

MySqlCommand cmd = conn.CreateCommand();

cmd.CommandText = "insert into kamus (NoKamus, Kata, Arti) values (@nomor, @kata, @arti)";

cmd.Parameters.AddWithValue("@nomor", tb_nomorkata.Text); cmd.Parameters.AddWithValue("@kata", tb_namakata.Text); cmd.Parameters.AddWithValue("@arti", tb_artikata.Text); cmd.ExecuteNonQuery();

MessageBox.Show("Kata berhasil ditambahkan"); conn.Close();

}

catch {

(6)

}

void ResetClick(object sender, EventArgs e) {

tb_namakata.Text =""; tb_nomorkata.Text =""; tb_artikata.Text =""; }

void CariKataToolStripMenuItemClick(object sender, EventArgs e)

{

this.Hide();

Artikata tampil2 = new Artikata(); tampil2.ShowDialog();

this.Close(); }

void TentangClick(object sender, EventArgs e) {

this.Hide();

tentang tampil2 = new tentang(); tampil2.ShowDialog();

this.Close(); }

void HapuskataClick(object sender, EventArgs e) {

MySqlConnection conn = koneksi.getkoneksi(); conn.Open();

MySqlCommand cmd = conn.CreateCommand();

cmd.Parameters.AddWithValue("@nomor", tb_nomorkata.Text) ;

cmd.CommandText = "delete from kamus where nokamus= "+int.Parse(tb_nomorkata.Text)+"";

cmd.ExecuteNonQuery();

MessageBox.Show("Data berhasil dihapus"); conn.Close();

}

void DataGridView1CellContentClick(object sender, DataGridVi ewCellEventArgs e)

{

tb_nomorkata.Text =

dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString(); tb_namakata.Text =

dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString(); tb_artikata.Text =

dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(); }

void BantuClick(object sender, EventArgs e) {

this.Hide();

Bantuan tampil3 = new Bantuan(); tampil3.ShowDialog();

this.Close(); }

(7)

4.

Tentang.cs

public partial class tentang : Form {

public tentang()

{ InitializeComponent();

}

void TentangToolStripMenuItemClick(object sender, EventArgs e)

{ }

void CkClick(object sender, EventArgs e) {

this.Hide();

Artikata tampil3 = new Artikata(); tampil3.ShowDialog();

this.Close(); }

void UkClick(object sender, EventArgs e) {

this.Hide();

updatekata tampil1 = new updatekata(); tampil1.ShowDialog();

this.Close(); }

void BtClick(object sender, EventArgs e) {

this.Hide();

Bantuan tampil3 = new Bantuan(); tampil3.ShowDialog();

this.Close(); }

} }

5.Bantuan.cs

public partial class Bantuan : Form {

public Bantuan() {

InitializeComponent();

//

// TODO: Add constructor code after the InitializeComponent() call.

// }

void CarkatClick(object sender, EventArgs e) {

this.Hide();

(8)

this.Close(); }

void TekatClick(object sender, EventArgs e) {

this.Hide();

tentang tampil2 = new tentang(); tampil2.ShowDialog();

this.Close(); }

void UpkatClick(object sender, EventArgs e) {

this.Hide();

updatekata tampil1 = new updatekata(); tampil1.ShowDialog();

this.Close(); }

void BantuanToolStripMenuItemClick(object sender, EventArgs e) {

(9)

LAMPIRAN II

M. ILYAS DALIMAR

DATA DIRI

Nama Lengkap

: M. Ilyas Dalimar

Nama Panggilan

: Ilyas

Tempat/Tanggal Lahir : Medan/25 Maret 1995

Jenis Kelamin

: Laki-Laki

Kebangsaan

: Indonesia

Alamat :Jl. Eka Suka Gg. Eka Suka III No.14,

Gedung Johor

Nomor HP

: 082113548157

E-mail

: Dalimarilyas@gmail.com

RIWAYAT PENDIDIKAN

S1 Ilmu Komputer

Universitas Sumatera Utara, Medan

131401126

Sekolah Menengah Atas

SMAN 2 MEDAN

2010-2013

Sekolah Menengah Pertama

MTsN 1 MODEL MEDAN

2007-2010

Sekolah Dasar

SDN 060898 MEDAN

2001-2007

SEMINAR/KURSUS/WORKSHOP

No.

Nama Seminar/Kursus/Workshop

Tahun

1.

Workshop GIT Repository

2017

2.

International Conference on Computing and Applied

Informatics (ICCAI)

2016

3.

Seminar Nasional Literasi Informasi (SENARAI)

2014

(10)

Bahasa Pemrograman

: C#, HTML

DMBS

: MySQL

Software

: Office Application

PENGALAMAN ORGANISASI & KEPANITIAAN

No.

Organisasi

Posisi

Tahun

1.

IMILKOM USU

Anggota Departemen

Dana Usaha

2016 - Sekarang

2.

PEMA FASILKOM-TI USU Kepala Divisi isu media

2016 - Sekarang

3.

Artechno 2016

Koordinator Pubdok

2015

4.

IMM USU

Ketua Umum

2016-2017

5.

Ilmu Komputer Goes To

School 2014

Anggota Humas

2014

(11)

Referensi

Dokumen terkait

Penelitian dilakukan dengan mengumpulkan data sekunder, dan juga dilakukan wawancara dengan pihak Nissan untuk mengetahui strategi yang dilakukan oleh Nissan Indonesia dari tahun

Tujuan dari penelitian ini yaitu mengetahui kedalaman perairan kolam pelabuhan cargo dan jenis sedimen dasar perairan yang akan diolah menjadi peta batimetri dan

Teknik modulasi adaptif memungkinkan WiMAX mengatur pola sinyal modulasi untuk meningkatkan dan mendapatkan pola modulasi dengan kualitas yang terbaik, pengaturan pola modulasi

Sedimen merupakan suatu proses akumulasi mineral yang diakibatkan oleh adanya pengendapan dari material maupun partikel lain yang terbentuk melalui peoses kimia

[r]

Untuk mendapatkan nilai BER yang dicapai pada penelitian ini, langkah pertama yang harus dilakukan adalah menentukan nilai BM pada modulasi QPSK yaitu sebesar 2..

pelaksanaan.. Tugas kader pada kegiatan bulanan Posyandu. a) Tugas kader pada hari buka Posyandu disebut

kegiatan Posyandu dan perlu jadwal yang teratur dalam. pelaksanaan