Assalammualaikum Wr.Wb
Welcome to my blog……
Dalam
sebuah komunikasi protokol, terdapat data yang dikirim, dan biasanya data
tersebut dikirim dalam satu paket. sehingga dalam proses pembacaan data
tersebut terlebih dahulu harus di pisah-pisahkan sesuai dengan jenis datanya.
Proses pemisahan tersebut dinamakan Parsing Data.
Kali ini saya akan berbagi
cara momprogram parsing data menggunakan visual studio dengan bahasa C#.
Pertama- tama siapkan dahulu Visual Studio atau Sharp Develop atau software
sejenisnya.
sebelum mulai ke
parsing data. kita harus mengetahui dulu fungsi yang akan kita gunakan yaitu
sebagai berikut :
Length : Untuk
Mendapatkan jumlah karakter pada suatu string.
Contoh : panjang = textbox1.text.Length;
Indexof : Untuk
mencari karakter atau beberapa karakter dalam suatu string.
Contoh : index = textbox1.text.IndexOf(“abcde”);
Substring : Untuk
mengambil / mengcopy data dari suatu string.
Contoh : data = textbox1.text.substring(index_awal,
index_panjang);
setelah mengetahui
beberapa fungsi diatas. kita dapat membuat aplikasinya. terlebih dahulu buka
softwarenya dan buat sebuah project baru. bagi yang belum tahu bisa lihat pada
postingan sebelumnya. lalu tambahkan komponen-komponen seperti dibawah ini :
kemudian klik kanan
pada form kemudian klik view code. hal pertama yang harus kita lakukan adalah
mendeklarasikan variable yang di gunakan.
Setelah itu, kita
buat sebuah fungsi yang berisikan program parsing datanya.
Lalu tambahkan
komponen timer dan untuk propertiesnya tidak usah diganti kecuali interval.
lalu klik 2 kali pada timernya atau klik event timer_tick.
Setelah itu pada ProgressBar
dan Label ( select keduanya ) lalu klik 2 kali dan tambahkan code ini untuk
mengaktifkan timer ketika tombol di tekan.
kemudian kita akan
coba buat. pada saat kita selesai mengetikkan inputan data dan menekan tombol
enter maka program akan berkerja sama seperti jika kita mengklik tombol Proses.
untuk membuatnya kita dapat menggunakan event keydown. pada textbox_Input pilih
event keydown dan buat program seperti ini :
sampai di sini
sebenarnya program sudah bisa di running tetapi akan saya tambahkan beberapa
fungsi lagi pada MenuStrip untuk merubah tampilan dan lain-lain. Seperti dibawah
ini :
Codingannya seperti
ini :
Dibawah ini adalah codingan lengkapnya
:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Program_Parsing_Data
{
public partial class Form1 : Form
{
string Input, awal, akhir;
public Form1()
{
InitializeComponent();
//menginputkan tulisan pada textBox_Input saat tampilan
pertama
textBox_Input.ForeColor = Color.Silver;
textBox_Input.Text = "Input Data";
}
void Proses()
{
Input = textBox_Input.Text;
awal = Convert.ToString(textBox_awal.Text); //menginput nilai
awal protokol
int panjang_awal = awal.Length;
akhir = Convert.ToString(textBox_akhir.Text); //menginput nilai
akhir protokon
int panjang_akhir = akhir.Length;
if (panjang_awal == 0 || panjang_akhir == 0)
{
MessageBox.Show("Protokol tidak ditemukan", "Gobar Error System", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
//inisial awal dan akhir pada Protocol
int protocol_awal = Input.IndexOf(awal);
//awal
int protocol_akhir =
Input.LastIndexOf(akhir); //akhir
int protocol = protocol_awal;
int panjang_protocol = (protocol_akhir -
protocol_awal) + panjang_akhir;
int source = protocol_awal +
panjang_awal;
int panjang_source = 2;
int destination = source + 2;
int panjang_destination = 2;
int hlen = destination + 2;
int panjang_hlen = 5;
int crc = protocol_akhir - 4;
int panjang_crc = 4;
int trailer = crc - 4;
int panjang_trailer = 4;
int data = hlen + 5;
int panjang_data = trailer - hlen - 5;
string Protocol =
Input.Substring(protocol, panjang_protocol); //(int
startindex, int length)
textBox_Protocol.Text = Protocol;
if ((panjang_awal + panjang_akhir + 17)
> Protocol.Length)
{
MessageBox.Show("Data protokol tidak Lengkap", "Gobar Error System", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
string Source = Input.Substring(source,
panjang_source);
string Destinatoin =
Input.Substring(destination, panjang_destination);
string HLEN = Input.Substring(hlen,
panjang_hlen);
string Data = Input.Substring(data,
panjang_data);
string Trailer =
Input.Substring(trailer, panjang_trailer);
string CRC = Input.Substring(crc,
panjang_crc);
string[] Tabel = new string[6] { Source,
Destinatoin, HLEN, Data, Trailer, CRC };
Tabel = new string[]
{ Source, Destinatoin, HLEN, Data, Trailer, CRC };
DataGridView.Rows.Add(Tabel);
DataGridView.FirstDisplayedScrollingRowIndex = DataGridView.RowCount -
1;
}
}
}
private void
progressBar_Click(object sender, EventArgs e)
//jika tombol Proses di klik
{
timer1.Start(); //mengaktifkan waktu
}
private void
textBox_Input_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.Enter) //jika menekan
Enter setelah menginput data
{
timer1.Start();
}
}
private void
timer1_Tick(object sender, EventArgs e)
{
if (progressBar.Value < 100)
{
progressBar.Value += 1;
}
if (progressBar.Value == 100)
{
timer1.Stop(); //Menonaktifkan timer1
progressBar.Value = 0; //mereset nilai progressBar
textBox_Input.BackColor = Color.Orange;
textBox_Input.ForeColor = Color.White;
Proses();
}
}
private void
textBox_Input_Click(object sender, EventArgs e)
{
textBox_Input.BackColor = Color.WhiteSmoke;
textBox_Input.ForeColor = Color.Blue;
if (textBox_Input.Text == "Input
Data")
{
textBox_Input.Text = "";
}
}
private void
tabelToolStripMenuItem_Click(object sender, EventArgs e)
{
for (int panjang = this.Height; panjang < 450; panjang++)
{
this.Height = panjang;
}
}
private void
sembunyikanTabelToolStripMenuItem_Click(object
sender, EventArgs e)
{
for (int panjang = this.Height; panjang > 250; panjang--)
{
this.Height = panjang;
}
}
private void
fileToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
}
}
Jika program dijalankan, maka akan tampilan seperti berikut :
Misalnya data yang diterima dari internet sebagai berikut :
*&(ikh)(abcde304900015halo apa kabar?okeh5986edcbaio test*0iou
Masukan pada bagian Input, seperti dibawah ini lalu tekan tombol Prosses :
Baiklah…,, Demikian sedeikit
penjelasan yang dapat saya sampaikan, jika ada kesalahan saya mohon
dimaafkan. semoga ini bermanfaat :)
Untuk lebih jelasnya, silahkan klik video tutorial
dibawah ini :
https://www.youtube.com/watch?v=pq7V-wQTRT4&feature=youtu.be
Nantikan terus postingan-postingan saya
selanjutnya di
Wassalammualaikum Wr.Wb
Terima Kasih