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) {
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;
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; }
{
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) {
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 {
}
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(); }
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();
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) {