• Tidak ada hasil yang ditemukan

Perbandingan Hasil Deteksi Tepi Laplacian Of Gaussian Dengan Laplacian Of Gaussian Kombinasi High Boost Filtering

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Hasil Deteksi Tepi Laplacian Of Gaussian Dengan Laplacian Of Gaussian Kombinasi High Boost Filtering"

Copied!
20
0
0

Teks penuh

(1)

LISTING PROGRAM

1.

Form Home

using System;

using System.Collections.Generic; using System.Drawing;

using System.Windows.Forms;

namespace Program_Skripsi {

public partial class MainForm : Form {

public MainForm() {

InitializeComponent(); }

//menu untuk masuk ke form pengujian

void PengujianToolStripMenuItemClick(object sender, EventArgs e) {

FormPengujian f2 = new FormPengujian(); f2.ShowDialog();

this.Dispose(); }

//menu untuk masuk ke form hasil

void HasilToolStripMenuItemClick(object sender, EventArgs e) {

FormHasil f2 = new FormHasil(); f2.ShowDialog();

this.Dispose(); }

//menu untuk masuk ke form help

void HelpToolStripMenuItemClick(object sender, EventArgs e) {

FormHelp f2 = new FormHelp(); f2.ShowDialog();

this.Dispose(); }

//menu untuk masuk ke form about

void AboutToolStripMenuItemClick(object sender, EventArgs e) {

FormAbout f2 = new FormAbout(); f2.ShowDialog();

this.Dispose(); }

//menu untuk keluar dari aplikasi

void ExitToolStripMenuItem1Click(object sender, EventArgs e) {

(2)

== DialogResult.Yes)

Application.Exit(); }

} }

2.

Form Pengujian

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data;

using System.Drawing;

using System.Drawing.Imaging; using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices; using System.Diagnostics;

using System.IO;

namespace Program_Skripsi {

public partial class FormPengujian : Form {

bool bitdeviasi; double Deviasi; double proba;

IntPtr point = IntPtr.Zero; int[,] pixelImage;

double[,] tapisHighBoost; double A;

double w;

double runtime;

//menu untuk masuk ke form home

void HomeToolStripMenuItemClick(object sender, EventArgs e) {

MainForm f2 = new MainForm(); f2.ShowDialog();

this.Dispose(); }

//menu untuk masuk ke form pengujian

void HasilToolStripMenuItemClick(object sender, EventArgs e) {

FormHasil f2 = new FormHasil(); f2.ShowDialog();

this.Dispose(); }

(3)

void HelpToolStripMenuItemClick(object sender, EventArgs e) {

FormHelp f2 = new FormHelp(); f2.ShowDialog();

this.Dispose(); }

//menu untuk masuk ke form about

void AboutToolStripMenuItemClick(object sender, EventArgs e) {

FormAbout f2 = new FormAbout(); f2.ShowDialog();

this.Dispose(); }

//menu untuk keluar dari aplikasi

void ExitToolStripMenuItemClick(object sender, EventArgs e) {

if (MessageBox.Show("Keluar Aplilkasi?", "Keluar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

Application.Exit(); }

//tombol browse untuk menginput objek

void Button1Click(object sender, EventArgs e) {

try {

OpenFileDialog open = new OpenFileDialog(); open.Filter = "Image Files( *.bmp)|*.bmp"; if (open.ShowDialog() == DialogResult.OK) {

Bitmap bit = new Bitmap(open.FileName); if (bit.Height <= 300 && bit.Width <= 300) {

pictureBox1.Image = bit; pictureBox2.Image = bit; }

else

MessageBox.Show("Image Pixel must be 300x300 px", "Warning"); }

}

catch (Exception) {

throw new ApplicationException("Failed loading image"); }

}

//tombol clear untuk menghapus objek void Button6Click(object sender, EventArgs e) {

pictureBox1.Image = null; pictureBox2.Image = null; pictureBox3.Image = null;

(4)

textBox3.Text="";

textBox4.Text=""; }

//fungsi untuk memanggil bilangan gaussian pada Gaussian noise private double getGaussianNumber()

{

Random rnd = new Random(); double v1, v2, persegi; if (bitdeviasi)

{

bitdeviasi = false; return Deviasi * 1; }

do {

v1 = 2 * rnd.NextDouble() - 1; v2 = 2 * rnd.NextDouble() - 1; persegi = v1 * v1 + v2 * v2;

}

while (persegi >= 1 || persegi == 0);

var kutup = Math.Sqrt(-2 * Math.Log(persegi) / persegi);

Deviasi = v2 * kutup; bitdeviasi = true;

return v1 * kutup; }

//tombol radio button untuk memilih Gaussian noise void RadioButton1CheckedChanged(object sender, EventArgs e) {

if(radioButton1.Checked) {

Bitmap citraasli = new Bitmap(pictureBox1.Image); int x = citraasli.Width;

int y = citraasli.Height; Bitmap citrahasil = citraasli; if ((comboBox1.Text) == "10%") proba = 10;

else if ((comboBox1.Text) == "20%") proba = 20;

else if ((comboBox1.Text) == "30%") proba = 30;

else if ((comboBox1.Text) == "40%") proba = 40;

else if ((comboBox1.Text) == "50%") proba = 50;

double gaussnumber = 0.0;

int step, newpixel, PixelSize = x * y; BitmapData bmpData = null;

byte[] Pixels;

Random rnd = new Random();

(5)

int Depth = System.Drawing.Bitmap.GetPixelFormatSize (citraasli.PixelFormat);

step = Depth / 8;

bmpData = citraasli.LockBits(box, ImageLockMode.ReadWrite, citraasli.PixelFormat);

Pixels = new byte[PixelSize * step]; point = bmpData.Scan0;

Marshal.Copy(point, Pixels, 0, Pixels.Length);

for (int i = 0; i < Pixels.Length; i += step) {

if (i < Pixels.Length - step) {

for (int j = 0; j < step; j++) {

gaussnumber = getGaussianNumber();

newpixel = Convert.ToInt32(gaussnumber * proba) + Convert.ToInt32(Pixels[i + j]);

if (newpixel < 0) newpixel = 0; if (newpixel > 255) newpixel = 255;

Pixels[i + j] = Convert.ToByte(newpixel); }

} }

Marshal.Copy(Pixels, 0, point, Pixels.Length); citraasli.UnlockBits(bmpData);

pictureBox2.Image=citraasli; pictureBox3.Image=citraasli;

} }

//tombol radio button untuk memilih Salt and Pepper noise void RadioButton2CheckedChanged(object sender, EventArgs e) {

if(radioButton2.Checked) {

Bitmap citraasli = new Bitmap(pictureBox1.Image); int x = citraasli.Width;

int y = citraasli.Height; Bitmap citrahasil = citraasli; if ((comboBox1.Text) == "10%") proba = Convert.ToInt32(0.1*x*y); else if ((comboBox1.Text) == "20%") proba = Convert.ToInt32(0.2*x*y); else if ((comboBox1.Text) == "30%") proba = Convert.ToInt32(0.3*x*y); else if ((comboBox1.Text) == "40%") proba = Convert.ToInt32(0.4*x*y); else if ((comboBox1.Text) == "50%") proba = Convert.ToInt32(0.5*x*y); int x1,y1,val;

Random rnd = new Random();

(6)

{

x1 = rnd.Next(0,x-1); y1 = rnd.Next(0,y-1); val = rnd.Next(1,10); if (val <= 5)

{

citrahasil.SetPixel(x1,y1,Color.FromArgb(255,0,0,0)); }

else {

citrahasil.SetPixel(x1,y1,Color.FromArgb(255,255,255,255)); }

}

pictureBox2.Image=citraasli; pictureBox3.Image=citrahasil; }

}

//tombol save untuk menyimpan image noise void Button2Click(object sender, EventArgs e) {

if (pictureBox2.Image != null) {

SaveFileDialog simpan = new SaveFileDialog(); simpan.Filter = "Image Files|*.bmp";

simpan.FileName = "*.bmp";

if (simpan.ShowDialog() == DialogResult.OK) {

pictureBox2.Image.Save(simpan.FileName, System.Drawing.Imaging.Ima geFormat.Bmp);

string filename=simpan.FileName.Substring(0,simpan.FileName.Length - 4) + ".txt";

FileStream fstream=new FileStream(filename,FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fstream);

SeekOrigin seekorigin = new SeekOrigin(); sw.BaseStream.Seek(0, seekorigin);

string jenis="";

if(radioButton1.Checked==true){ jenis=radioButton1.Text; }if(radioButton2.Checked==true){ jenis=radioButton2.Text; }

sw.WriteLine(jenis + "/" + comboBox1.Text); sw.Flush();

sw.Close();

MessageBox.Show("Image Noise Telah Disimpan", "Simpan", MessageBoxButtons.OK, MessageBoxIcon.Information); }

} else {

(7)

}

//fungsi deteksi tepi Laplacian of Gaussian private Bitmap LoG12x12(Bitmap SrcImage) {

double[,] MASK = new double[12, 12] {

{-0.000699762,-0.000817119,-0.000899703,-0.000929447, -0.000917118,-0.000896245,-0.000896245,-0.000917118, -0.000929447,-0.000899703,-0.000817119,-0.000699762},

{-0.000817119,-0.000914231,-0.000917118,-0.000813449, -0.000655442,-0.000538547,-0.000538547,-0.000655442, -0.000813449,-0.000917118,-0.000914231,-0.000817119},

{-0.000899703,-0.000917118,-0.000745635,-0.000389918, -0.0000268,0.000309618,0.000309618,0.0000268, -0.000389918,-0.000745635,-0.000917118,-0.000899703},

{-0.000929447,-0.000813449,-0.000389918, 0.000309618, 0.001069552, 0.00156934, 0.00156934, 0.001069552, 0.000309618,-0.000389918,-0.000813449,-0.000929447},

{-0.000917118,0.000655442, 0.0000268, 0.001069552, 0.002167033, 0.002878738, 0.002878738, 0.002167033, 0.001069552, 0.0000268, -0.000655442, -0.000917118},

{-0.000896245,-0.000538547, 0.000309618, 0.00156934, 0.002878738, 0.003722998, 0.003722998, 0.002878738, 0.00156934, 0.000309618, -0.000538547,-0.000896245},

{-0.000896245, 0.000538547, 0.000309618, 0.00156934, 0.002878738, 0.003722998, 0.003722998, 0.002878738, 0.00156934, 0.000309618, -0.000538547,-0.000896245},

{-0.000917118,-0.000655442, 0.0000268,0.001069552, 0.002167033,0.002878738,0.002878738,0.002167033, 0.001069552, 0.0000268,-0.000655442,-0.000917118},

{-0.000929447, -0.000813449, -0.000389918, 0.000309618, 0.001069552, 0.00156934, 0.00156934, 0.001069552, 0.000309618, -0.000389918, -0.000813449, -0.000929447},

{-0.000899703, -0.000917118, -0.000745635,-0.000389918, 0.0000268, 0.000309618, 0.000309618, 0.0000268,

-0.000389918, -0.000745635, -0.000917118, -0.000899703},

{-0.000817119, -0.000914231, -0.000917118,-0.000813449, -0.000655442, -0.000538547, -0.000538547,-0.000655442, -0.000813449, -0.000917118, -0.000914231,-0.000817119},

(8)

-0.000929447, -0.000899703, -0.000817119,-0.000699762} };

double nTemp = 0.0; double c = 0;

int mdl, size; size = 12; mdl = size/2; double min, max; min = max = 0.0;

double sum = 0.0; double mean; double d = 0.0; double s = 0.0; int n = 0;

Bitmap bitmap = new Bitmap (SrcImage.Width+mdl,SrcImage.Height+mdl); int l, k;

BitmapData bitmapData = bitmap.LockBits (new Rectangle(0,0,

bitmap.Width,bitmap.Height),ImageLockMode.ReadWrite,PixelFormat.Format24 bppRgb);

BitmapData srcData = SrcImage.LockBits(new Rectangle(0,0,SrcImage.Width, SrcImage.Height), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);

unsafe {

int offset = 3;

for (int colm = 0; colm < srcData.Height - size; colm++) {

byte* ptr = (byte*)srcData.Scan0+(colm*srcData.Stride);

byte* bitmapPtr = (byte*)bitmapData.Scan0+(colm*bitmapData.Stride);

for (int row = 0; row < srcData.Width - size; row++) {

nTemp = 0.0;

min = double.MaxValue; max = double.MinValue;

for (k = 0; k < size; k++) {

for (l = 0; l < size; l++) {

byte* tempPtr = (byte*)srcData.Scan0+((colm+l)*srcData.Stride); c=(tempPtr[((row + k)*offset)]+tempPtr[((row + k) *offset) + 1] + tempPtr[((row + k) * offset) + 2]) / 3;

nTemp += (double)c * MASK[k, l];

(9)

sum += nTemp; n++;

} }

mean = ((double)sum / n); d = 0.0;

for (int i = 0; i < srcData.Height - size; i++) {

byte* ptr=(byte*)srcData.Scan0+(i*srcData.Stride);

byte* tptr=(byte*)bitmapData.Scan0+(i*bitmapData.Stride);

for (int j = 0; j < srcData.Width - size; j++) {

nTemp = 0.0;

min = double.MaxValue; max = double.MinValue;

for (k = 0; k < size; k++) {

for (l = 0; l < size; l++) {

byte* tempPtr = (byte*) srcData.Scan0 + ((i + l)*srcData.Stride); c = (tempPtr[((j + k) * offset)]+tempPtr[((j + k)*offset)+ 1] + tempPtr[((j + k) * offset) + 2]) / 3;

nTemp += (double)c * MASK[k, l];

} }

s = (mean - nTemp); d += (s * s);

} }

d = d / (n - 1); d = Math.Sqrt(d); d = d * 2;

for (int colm = mdl; colm < srcData.Height - mdl; colm++) {

byte* ptr = (byte*)srcData.Scan0 + (colm * srcData.Stride);

byte* bitmapPtr =(byte*)bitmapData.Scan0 + (colm*bitmapData.Stride);

for (int row = mdl; row < srcData.Width - mdl; row++) {

nTemp = 0.0;

min = double.MaxValue; max = double.MinValue;

for (k = (mdl * -1); k < mdl; k++) {

(10)

{

byte* tempPtr = (byte*)srcData.Scan0+((colm +l)*srcData.Stride); c= (tempPtr[((row + k)*offset)]+tempPtr[((row+k)*offset)+ 1] + tempPtr[((row + k) * offset) + 2]) / 3;

nTemp += (double)c * MASK[mdl + k, mdl + l];

} }

if (nTemp > d) {

bitmapPtr[row * offset] = bitmapPtr[row * offset + 1] = bitmapPtr[row * offset + 2 = 255;

} else

bitmapPtr[row * offset] = bitmapPtr[row * offset + 1] = bitmapPtr[row * offset + 2] = 0;

} } }

bitmap.UnlockBits(bitmapData); SrcImage.UnlockBits(srcData);

return bitmap; }

//tombol radio button untuk memilih operator deteksi tepi Laplacian of Gaussian

void RadioButton3CheckedChanged(object sender, EventArgs e) {

Stopwatch sw = new Stopwatch(); sw.Start();

Bitmap citraasli = new Bitmap(pictureBox2.Image); pictureBox3.Image = LoG12x12(citraasli);

sw.Stop();

runtime = Math.Round(Convert.ToDouble(sw.ElapsedMilliseconds)/1000,4); }

//fungsi untuk High Boost filtering private double HighBoost(int x, int y) {

double Hasil = 0; int row = x; int col = y;

for (int i = 0; i < 3; i++) {

col = y;

for (int j = 0; j < 3; j++) {

Hasil += pixelImage[row, col] * tapisHighBoost[i, j]; col++;

(11)

row++; }

double HighBoost = ((A-1)* pixelImage[x, y]) + Hasil; //MessageBox.Show(pixelImage[x,y].ToString());

return HighBoost; }

//tombol radio button untuk memilih operator deteksi tepi Laplacian of Gaussian kombinasi High Boost filtering

void RadioButton5CheckedChanged(object sender, EventArgs e) {

//Tentukan Tapishighboost if(radioButton5.Checked) {

try {

A= Convert.ToDouble(textBox1.Text); if ( A <= 2)

{

Stopwatch sw = new Stopwatch(); sw.Start();

w = (9 * A) - 1;

tapisHighBoost = new double[3, 3] { {-1,-1,-1}, {-1, w,-1}, {-1,-1,-1}};

for (int i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

tapisHighBoost[i, j] = (1.0 / 9.0) * tapisHighBoost[i, j]; }

}

//proses filtering

Bitmap image = new Bitmap(pictureBox2.Image);

Bitmap output = new Bitmap(image.Width, image.Height); int pixel;

pixelImage = new int[image.Height, image.Width]; for (int i = 0; i < image.Height; i++)

{

for (int j = 0; j < image.Width; j++) {

pixelImage[i, j] = image.GetPixel(j, i).R; }

}

for (int i = 0; i < image.Height - 2; i++) {

for (int j = 0; j < image.Width - 2; j++) {

pixel = Convert.ToInt32(HighBoost(i, j)); if (pixel < 0)

pixel *= -1; if (pixel > 255) pixel = 255;

(12)

pixel, pixel)); }

}

pictureBox3.Image = LoG12x12(output); sw.Stop();

runtime = Math.Round(Convert.ToDouble(sw.ElapsedMilliseconds)/1000,4); }

else {

MessageBox.Show("Nilai A harus <=2"); }

}

catch (Exception) {

MessageBox.Show("Nilai A harus diisi"); }

} }

//fungsi menghitung nilai MSE

private double hitungMSE(Bitmap imageAsli, Bitmap imageHasil) {

double sum = 0;

double pxAsli, pxHasil, MSE;

for (int i = 0; i < imageAsli.Height; i++) {

for (int j = 0; j < imageAsli.Width; j++) {

pxAsli = imageAsli.GetPixel(j, i).R; pxHasil = imageHasil.GetPixel(j, i).R; sum += Math.Pow(pxAsli - pxHasil, 2); }

}

MSE = sum / (imageAsli.Height * imageAsli.Width); return MSE;

}

//fungsi menghitung nilai PSNR

private double hitungPSNR(double MSE) {

double PSNR = Math.Log10(Math.Pow(255, 2) / MSE); return PSNR;

}

//tombol untuk menampilkan nilai MSE,PSNR dan running time void Button3Click(object sender, EventArgs e)

{

double MSE = hitungMSE((Bitmap)pictureBox1.Image,(Bitmap) pictureBox3.Image);

double PSNR = hitungPSNR(MSE);

textBox2.Text = Math.Round(Convert.ToDecimal(MSE.ToString()), 4) .ToString();

textBox3.Text = Math.Round(Convert.ToDecimal(PSNR.ToString()),4) .ToString();

(13)

} } }

//tombol untuk menyimpan image hasil deteksi tepi void Button4Click(object sender, EventArgs e) {

if (pictureBox3.Image != null) {

SaveFileDialog simpan = new SaveFileDialog(); simpan.Filter = "Image Files|*.bmp";

simpan.FileName = "*.bmp";

if (simpan.ShowDialog() == DialogResult.OK) {

pictureBox3.Image.Save(simpan.FileName, System.Drawi ng.Imaging.ImageFormat.Bmp);

string jenis="";

if(radioButton3.Checked==true){ jenis="log";

}if(radioButton5.Checked==true){ jenis="hog";

}

swi.Write("?" + jenis + "?"+ simpan.FileName + "?" + textBox2.Text + "?" + textBox3.Text + "?" + textBox4.Text);

swi.Flush();

MessageBox.Show("Image Deteksi Tepi Telah

Disimpan", "Simpan", MessageBoxButtons.OK, MessageBoxIcon.Information); }

} else {

MessageBox.Show("Image Deteksi Tepi Tidak Ada"); }

}

//tombol untuk menghapus semua data yang telah di proses void Button5Click(object sender, EventArgs e)

{

pictureBox1.Image = null; pictureBox2.Image = null; pictureBox3.Image = null; radioButton1.Checked = false; radioButton2.Checked = false; textBox2.Text = "";

(14)

3.

Form Hasil

using System;

using System.Drawing;

using System.Windows.Forms; using System.IO;

namespace Program_Skripsi {

public partial class FormHasil : Form {

public FormHasil() {

InitializeComponent(); }

// menu untuk menuju form home

void HomeToolStripMenuItemClick(object sender, EventArgs e) {

MainForm f2 = new MainForm(); f2.ShowDialog();

this.Dispose(); }

//menu untuk menuju form pengujian

void PengujianToolStripMenuItemClick(object sender, EventArgs e)

{

FormPengujian f2 = new FormPengujian(); f2.ShowDialog();

this.Dispose(); }

//menu untuk menuju form help

void HelpToolStripMenuItemClick(object sender, EventArgs e) {

FormHelp f2 = new FormHelp(); f2.ShowDialog();

this.Dispose(); }

//menu untuk menuju form about

void AboutToolStripMenuItemClick(object sender, EventArgs e) {

FormAbout f2 = new FormAbout(); f2.ShowDialog();

this.Dispose(); }

(15)

void ExitToolStripMenuItemClick(object sender, EventArgs e) {

if (MessageBox.Show("Keluar Aplilkasi?","Keluar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

Application.Exit(); }

//tombol untuk membuka file citra asli void Button1Click(object sender, EventArgs e) {

try {

OpenFileDialog open = new OpenFileDialog();

open.Filter = "Image Files(*.bmp)|*.bmp|All Files(*.*)|*.*"; if (open.ShowDialog() == DialogResult.OK)

{

Bitmap bit = new Bitmap(open.FileName); pictureBox1.Image = bit;

long fileSize = new System.IO.FileInfo(open.FileName).Length; if (fileSize / 1000 < 1)

{

textBox2.Text = fileSize.ToString(); label6.Text = "Byte";

} else {

textBox2.Text = (fileSize / 1000).ToString(); label12.Text = "Kb";

}

string pixel = "";

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

pixel += bit.GetPixel(j, i).R + " "; }

pixel += "\r\n"; }

// location.Text = Path.GetFullPath(open.FileName); textBox1.Text = Path.GetFileName(open.FileName); // height.Text = bit.Height.ToString();

// width.Text = bit.Width.ToString(); }

}

(16)

throw new ApplicationException("Failed loading image"); }

}

//tombol untuk membuka file citra noise dan hasil deteksi tepi

void Button2Click(object sender, EventArgs e) {

try {

OpenFileDialog open = new OpenFileDialog();

open.Filter = "Image Files(*.bmp)|*.bmp|All Files(*.*)|*.*"; if (open.ShowDialog() == DialogResult.OK)

{

Bitmap bit = new Bitmap(open.FileName); pictureBox2.Image = bit;

string nama = open.FileName.Substring(0, open.FileName.Length- 4) + ".txt";

FileStream fstream = new FileStream(nama, FileMode.Open, FileAccess.ReadWrite);

StreamReader sreader = new StreamReader(fstream); sreader.BaseStream.Seek(0, SeekOrigin.Begin); string Keterangan = sreader.ReadToEnd(); sreader.Close();

string[] info = new string[2]; info = Keterangan.Split('?'); textBox3.Text = info[0]; textBox4.Text = info[1]; if (info[2] == "log") {

pictureBox4.ImageLocation=@info[3]; textBox5.Text= info[4];

textBox6.Text= info[5]; textBox7.Text= info[6]; }

else {

pictureBox3.ImageLocation=@info[3]; textBox11.Text= info[4];

textBox12.Text= info[5]; textBox13.Text= info[6]; }

if (info[7] == "hog") {

pictureBox3.ImageLocation=@info[8]; textBox11.Text= info[9];

textBox12.Text= info[10]; textBox13.Text= info[11]; }

else {

pictureBox3.ImageLocation=@info[8]; textBox5.Text= info[9];

(17)

}

} }

catch (Exception ex) {

MessageBox.Show(ex.Message); }

}

//tombol untuk menghapus semua informasi data void Button5Click(object sender, EventArgs e) {

pictureBox1.Image = null; pictureBox2.Image = null; pictureBox3.Image = null; pictureBox4.Image = null; textBox1.Text = "";

textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; textBox5.Text = ""; textBox6.Text = ""; textBox7.Text = ""; textBox11.Text = ""; textBox12.Text = ""; textBox13.Text = ""; }

} }

4.

Form Help

using System;

using System.Drawing;

using System.Windows.Forms;

namespace Program_Skripsi {

public partial class FormHelp : Form {

public FormHelp() {

InitializeComponent();

}

//menu untuk menuju form home

void HomeToolStripMenuItemClick(object sender, EventArgs e) {

MainForm f2 = new MainForm(); f2.ShowDialog();

(18)

}

//menu untuk menuju form pengujian

void PengujianToolStripMenuItemClick(object sender, EventArgs e)

{

FormPengujian f2 = new FormPengujian(); f2.ShowDialog();

this.Dispose(); }

//menu untuk menuju form hasil

void HasilToolStripMenuItemClick(object sender, EventArgs e) {

FormHasil f2 = new FormHasil(); f2.ShowDialog();

this.Dispose(); }

//menu untuk menuju form about

void AboutToolStripMenuItemClick(object sender, EventArgs e) {

FormAbout f2 = new FormAbout(); f2.ShowDialog();

this.Dispose(); }

//menu untuk keluar dari aplikasi

void ExitToolStripMenuItemClick(object sender, EventArgs e) {

if (MessageBox.Show("Keluar Aplilkasi?", "Keluar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

Application.Exit(); }

} }

5.

Form About

using System;

using System.Drawing;

using System.Windows.Forms;

namespace Program_Skripsi {

public partial class FormAbout : Form {

public FormAbout() {

InitializeComponent(); }

(19)

//menu untuk menuju form home

void HomeToolStripMenuItemClick(object sender, EventArgs e) {

MainForm f2 = new MainForm(); f2.ShowDialog();

this.Dispose(); }

//menu untuk menuju form pengujian

void PengujianToolStripMenuItemClick(object sender, EventArgs e)

{

FormPengujian f2 = new FormPengujian(); f2.ShowDialog();

this.Dispose(); }

//menu untuk menuju form hasil

void HasilToolStripMenuItemClick(object sender, EventArgs e) {

FormHasil f2 = new FormHasil(); f2.ShowDialog();

this.Dispose(); }

//menu untuk menuju form help

void HelpToolStripMenuItemClick(object sender, EventArgs e) {

FormHelp f2 = new FormHelp(); f2.ShowDialog();

this.Dispose(); }

void ExitToolStripMenuItemClick(object sender, EventArgs e) {

if (MessageBox.Show("Keluar Aplilkasi?", "Keluar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)

Application.Exit(); }

(20)

CURRICULUM VITAE

DATA PRIBADI

Nama Lengkap

: Ruth Meylina Manik

Jenis Kelamin

: Perempuan

Tempat, Tanggal Lahir

: Lhokseumawe, 16 mei 1994

Alamat

: Jl. Abdul Hakim Prm.Medaline Setiabudi Blok B no.6

Alamat Orangtua

: Jl.Perwira no.47 Pematangsiantar

Agama

: Kristen

E-mail

: mey16mei@gmail.com

Pendidikan Terakhir

: Universitas Sumatera Utara Medan, Fakultas Ilmu Komputer dan

Teknologi Informasi Jurusan S1 Ilmu Komputer

PENDIDIKAN FORMAL

2011 – 2015

: S1 Ilmu Komputer Universitas Sumatera Utara, Medan

2008 – 2011

: SMA Negeri 2 Pematangsiantar

2005 – 2008

: SMP Negeri 1 Pematangsiantar

1999 – 2005

: SD Swasta RK no.6 Pematangsiantar

PENGALAMAN ORGANISASI DAN KEGIATAN ILMIAH

§

Anggota Departemen Komunikasi dan Informasi Ikatan Mahasiswa S1 Ilmu Komputer

(IMILKOM), 2013-2014

§

Kepala Biro Kesekretariatan dan Administrasi Ikatan Mahasiswa S1 Ilmu Komputer

(IMILKOM), 2013-2014

§

Koordinator Kerohanian Komunitas Mahasiswa Kristen S1 Ilmu Komputer (KMKI),

2013-2014

Referensi

Dokumen terkait

Pada penulisan ini dimaksudkan untuk membantu mengatasi masalah mengenai penjualan handphone pada TOKO INDY CELL dalam mempermudah mencari data barang dan harganya yang selanjutnya

Lagu “ Gusti Panuntun Kula ” yang berarti Tuhan Besertaku, diambil dari Kidung Pasamuwan Kristen Lami (KPKL) dari Badan Musyawarah Gereja Jawa, yang diambil

Berdasarkan hasil penelitian dan pembahasan yang diuraikan di atas, dapat ditarik kesimpulan bahwa pembelajaran berbasis masalah dapat meningkatkan penguasaan konsep dan

Lokasi Daeyuholot, Cisirung, dan Nanjung dipilih karena lokasi ini merupakan lokasi yang paling berpotensi menghasilkan logam berat timbal (Pb) selain karena akitivitas industri

JUDUL : PERDA ATASI JAJANAN SEKOLAH TAK SEHAT MEDIA : BERNAS JOGJA. TANGGAL : 25

menunjukkan bahwa data hasil post-test kedua kelas menunjukkan perbedaan yang signifikan dalam kemampuan berpikir rasional siswa antara kelas eksperimen dengan kelas kontrol pada

Harga pasar adalah harga jual dari investor yang satu kepada investor yang lain. Harga ini terjadi setelah saham tersebut dicatat di bursa. Transaksi di sini tidak

Dari hasil penelitian pada bulan Mei 2014, dapat disimpulkan bahwa konsentrasi logam berat kadmium di tiga titik sampling yaitu Dayeuhkolot, Cisirung, dan Nanjung sebesar &lt; 0,006