Assalamualaikum Wr. Wb
hai, gaesssss first of all thank you for visiting my beauty blog hehe.
okay, sekarang laras akan memberikan sebuah tutorial mengenai komunikasi serial untuk menerima data. hmm, secara umum sih pengaplikasiannya untuk memonitoring sesuatu, misalnya memonitoring ikan, tumbuhan dan masih banyak lagi pengaplikasiannya.
Secara teorinya mulai dr serial portnya yaaaa, Port merupakan kumpulan jalur elektronik untuk menyalurkan data. Port ada yang untuk input saja, output saja atau input/output. Port dipakai untuk komunikasi antara CPU dengan monitor, keyboard,mouse dll.
Proses pengiriman data dapat langsung sekaligus secara paralel dengan menggunakan beberapa kabel, atau satu-persatu secara berurutan (serial) dengan menggunakan sepasang kabel. Contoh transmisi data secara paralel adalah komunikasi harddisk IDE dengan
CPU, komunikasi printer dengan komputer. Contoh transmisi data secara serial adalah komunikasi harddisk SATA dengan CPU, komunikasi USB dll.
Mikrokontroller umumnya menggunakan standar komunikasi serial RS232 untuk koneksi dengan perangkat lain. Komputer juga memiliki port standar serialport, paralelport, USB, VGA dan PS/2. Pada praktikum ini kita akan mempelajari penggunaan serial port.
sekarang, langsung saja ya ke praktikum nya gaess.
1. Buka visual studio 2012, pilih windows form application, jangan lupa diberi nama filenya gaes
2. Tujuan praktikum ini adalah untuk menerima data dari mikrokontroller melalui port serial. Data yang dikirim oleh mikrokontroller adalah kondisi dari potensiometer. Nilai analog
tegangan akan dikonversi oleh mikro ke nilai digital dalam range 0 - 1023. Kemudian nilai digital ini yang dikirim ke komputer melalui port serial. Program pada mikro (kita akan menggunakan arduino) cukup sederhana:
void setup()
{
Serial.begin(9600);
}
void loop()
{
int sensorValue = analogRead(A1);
delay(500);
Serial.println(sensorValue, DEC);
}
3. Buat solution baru. Susun form dengan control-control seperti terlihat pada gambar:
4. Atur properties "Series" seperti dibawah ini, dan Anda bisa mengubah jenis grafik dengan mengubah ChartType nya.
5. Komponen SerialPort ada di Components toolbar, sedangkan komponen Chart ada di data.
6. Tambahkan program berikut untuk control button1:
if (button1.Text == "Connect") {
button1.Text = "Disconnect";
serialPort1.Open();
richTextBox1.text="";
a=0; (Inisialisai dahulu variabel global)
}
else {
button1.Text = "Connect";
serialPort1.Close();
}
7. Tambahkan program berikut ke event DataReceived-nya serial:
klik serialPort1 > klik event > double klik data received > tambahkan programnya
rxString = serialPort1.ReadLine();
this.Invoke(new EventHandler(DisplayText));
Kita menggunakan method Invoke karena thread untuk receive serial berbeda dengan thread program utama. Padahal object RichTextBox atau Label, tempat kita untuk menampilkan data
serial, terletak di thread utama. Invoke membuat kita dapat melakukan cross-thread. Program di atas akan membuat event DataReceived memanggil event handler baru yang terletak di thread utama, yaitu DisplayText.
8. Untuk method DisplayText, tambahkan program berikut:
Pada postingan
sebelumnya telah laras sharing
tentang karakteristik dasar diode, sebuah piranti dua terminal
(karenanya disebut di-ode)
beserta aplikasinya. Pada bagian
ini akan laras posting karakteristik
piranti tiga terminal atau
lebih dikenal sebagai “transistor”.
Pertama-tama membahas transistor
bipolar atau BJT (Bipolar Junction Transistor). Berikutnya akan kita bahas
transistor unipolar seperti misalnya FET (field-effect transistor).
Dibandingkan dengan
FET, BJT dapat memberikan penguatan
yang jauh lebih besar
dan tanggapan frekuensi
yang lebih baik. Pada
BJT baik pembawa muatan mayoritas maupun pembawa muatan
minoritas mempunyai peranan
yang sama pentingnya.
Gambar 1 Diagram BJT :
a) Jenis n-p-n dan b) Jenis p-n-p
Terdapat dua jenis kontruksi dasar BJT, yaitu jenis n-p-n dan jenis p-n-p. Untuk jenis n-p-n, BJT
terbuat dari lapisan tipis semi konduktor tipe-p
dengan tingkat doping yang
relatif rendah, yang
diapit oleh dua lapisan
semikonduktor tipe-n.
Karena alasan sejarah pembuatannya, bagian di tengah disebut “basis” (base), salah
satu bagian tipe-n (biasanya mempunyai
dimensi yang kecil)
disebut “emitor” (emitter) dan
yang lainya sebagai “kolektor” (collector). Secara skematik kedua jenis
transistor diperlihatkan pada gambar diagram BJT diatas.
Tanda panah
pada gambar 1 menunjukkan
kaki emitor dan
titik dari material tipe-pke
material tipe-n. Perhatikan bahwa untuk jenis n-p-n,
transistor terdiri dari
dua sambungan p-n yang berperilaku
seperti diode. Setiap diode
dapat diberi panjar
maju atau berpanjar mundur, sehingga transistor dapat memiliki empat
modus pengoperasian. Salah satu modus
yang banyak digunakan
disebut “modus normal”,
yaitu sambungan emitor-basis berpanjar
maju dan sambungan kolektor-basis berpanjar
mundur. Modus ini juga sering disebut
sebagai pengoperasian transistor pada “daerah aktif”.
2.Pabrikasi BJT
Pabrikasi BJT dapat dilakukan dengan dua teknik,
yaitu struktur transistor-alloy melalui difusi
dan struktur transistor
planar. Gambar 2.a) diatas
menunjukkan struktur transistor
alloyn-p-n. Kolektor terbuat
dari chip semikonduktor tipe-n dengan ketebalan kurang dari 1 . Daerah basis
dibuat dengan proses difusi kemudian dibuat kontak
logam untuk dihubungkan dengan kaki
basis. Daerah emitor
dibuat dengan teknik alloy
pada daerah basis. Sebagai
hasilnya berupa sebuah
pasangan sambungan p-n
yang dipisahkan oleh daerah basis kira-kira setebal kertas.
Untuk struktur planar (gambar 2.b)), suatu lapisan tipe-n dengan tingkat
doping rendah ditumbuhkan di atas substrat
(tanda +
menunjukkan tingkat doping
sangat tinggi). Setelah melalui
proses oksidasi pada
permukaan, sebuah jendela
(window) dibuka dengan proses
penggerusan (etching) dan suatu pengotor (p) dimasukkan ke kristal dengan proses
difusi untuk membentuk
sambungan (junction). Sekali lagi setelah
melalui reoksidasi, sebuah jendela kecil dibuka untuk proses difusi pembentukan
daerah emitor (n).
Gambar 2 Transistor :
a) Sumber alloy , b) Sumber planar dan c) Simbol rangkaian
Secara
konvensional simbol
transistor n-p-n diperlihatkan pada
gambar 2-c dilengkapi dengan tanda
panah pada emitor yang
menunjukkan aliran muatan positif. Walaupun sebuah
transistor n-p-n akan bekerja
dengan kedua daerah
n dapat
berfungsi sebagai emitor, namun karena kedua
daerah mempunyai tingkat doping dan
geometri yang berbeda, maka daerah n
yang dimaksud harus diberi label.
3.Pengoperasian Transistor
Pada gambar 3-a diperlihatkan keping horizontal transistor jenis n-p-n.
Pengoperasian transistor
dapat diterangkan secara
kualitatif dalam hal
distribusi potensial pada sambungan (gambar
3-b). Sambungan emitor
berpanjar maju, dengan
efek dari tegangan panjar terjadi
penurunan tegangan penghalang
pada sambungan emitor
dan memberi kesempatan pada elektron melakukan injeksi ke basis dimana pada daerah ini miskin
elektron (minoritas).
Sambungan kolektor
berpanjar mundur; sebagai
efek dari pemasangan tegangan panjar akan
menaikkan potensial
penghalang pada sambungan kolektor. Karena daerah
basis sangat tipis, hampir semua
elektron yang terinjeksi
pada basis tersapu ke kolektor dimana
mereka melakukan rekombinasi
dengan lubang yang
“disediakan” dengan pemasangan baterai luar. (Sebenarnya terjadi pengambilan
elektron oleh baterai eksternal,
meninggalkan lubang untuk proses rekombinasi).
Sebagai
hasilnya terjadi transfer arus
dari rangkaian emitor ke
rangkaian kolektor yang besarnya
hampir tidak tergantung
pada tegangan
kolektor-basis. Seperti akan kita lihat,
transfer tersebut memungkinkan pemasangan hambatan
beban yang besar untuk mendapatkan
penguatan tegangan.
Gambar 3 Pengoperasian transistor n-p-n
Gambar 4 Skema pergerakan pembawa muatan pada
pengoperasian transistor n-p-n.
4.Karakteristik DC
Karakteristik DC
dari BJT dapat
diprediksi dengan melihat
aliran pembawa muatan melewati sambungan dan
ke basis. Dengan
sambungan emitor berpanjar
maju dan sambungan kolektor
berpanjar mundur (biasa disebut
operasi normal, pengoperasian di daerah aktif),
gerakan pembawa muatan pada transistor
n-p-n seperti diskemakan pada gambar 4 Komponen terbesar
dari arus emitor (ϒ) terdiri atas
elektron yang mengalir melewati penurunan
tegangan potensial ()
ke
sambungan emitor-basis. Efisiensi emitor (γ)
berharga mendekati satu sehingga
arus hampir terdiri atas
semua elektron yang terinjeksi
dari emitor. Komponen
lain adalah aliran
lubang dari basis yang
juga difasilitasi oleh penurunan tegangan
penghalang tersebut. Daerah basis memiliki tingkat doping yang
lebih rendah dibandingkan
daerah emitor, sehingga arus lubang relatif lebih
rendah. Kedua jenis muatan mengalir
melalui proses difusi.
Elektron
yang “terinjeksi” dari
emitor ke basis
dapat mengalir melalui
sambungan emitor-basis secara bebas karena beberapa
sebab:
i)Tidak ada
tegangan yang melawannya,
ii)Hanya terdapat
jarak yang pendek pada daerah basis (tipis) dan
iii)Hanya
terdapat jumlah lubang yang
relatif rendah sehingga tidak banyak elektron yang
tertangkap lubang dan hilang,
yaitu dengan proses rekombinasi.
Dengan proses pabrikasi transistor yang benar,
kurang lebih 99 - 99,9% electron yang
terinjeksi berhasil mencapai sambungan basis-kolektor (faktor α
biasanya berharga sekitar 0,98).
Elektron tersebut tidak mengalami
kesulitan akibat penurunan tegangan penghalang.
Arus elektron
mendominasi
besarnya arus kolektor. Komponen
lain dari arus kolektor berupa
arus drift melewati
sambungan kolektor-basis
dari pembawa muatan minoritas
hasil generasi termal. Jika
kita memasang tegaangan pada sambungan
emitor-basis, kita
menginjeksi arus yang
diberikan oleh persamaan arus diode
hai temen-temen..udah lama nih gak posting lagi. dan sekarang laras ada tugas lagi nih tentang game yeeeey :D
kali ini laras mau membuat game tic tac toe sederhana guys!! pada tau kan tic tac toe?? itu loh permainan waktu di SD dan SMP yang namanya SOS, kadang-kadang juga ada di SMA/K (kalau lagi bosen aja) hihihi
game ini asik loh guys! ada player1 dan player 2 guys, kalau dulu kan seringnya mainnya di kertas yakan nah sekarang laras buat di komputer nih :D
program ini memakai banyak kemungkinan, jadi laras memakai beberapa case disini.
begini langkah-langkahnya :
1. Buka new project di Visual Studio 2012, jangan lupa diberi nama dan pilih windows application
2. Pilih Label, Button, Picture Box dan Menu Script di toolbox kemudian susun sesuai keinginan anda.
untuk memakai menu strip kita harus mengubah event click semuanya, mulai dari file sampai help. seperti dibawah ini.
3. Kemudian tambahkan gambar X dan O untuk permainannya di resource. seperti ini :
4. Masukkan Codingannya, pertama-tama inisialisasi dahulu variabel globalnya. //Inisialisasi Variabel Global
Image pictureX = Properties.Resources.Capture; // lokasi gambar X
Image pictureO = Properties.Resources.fg; // lokasi gambar O
Image pctr; int count = 0;
Boolean checkX = false, checkO = false, easy = false;
public int pict1 = 0, pict5 = 0, pict9 = 0,
pict2 = 0, pict6 = 0,
pict3 = 0, pict7 = 0,
pict4 = 0, pict8 = 0;
5. Buat fungsi reset untuk mereset aplikasinya.
private void reset()
{
pict1 = pict2 = pict3 = pict4 = pict5 = pict6 = pict7 = pict8 = pict9 = count = 0; //mereset nilai int pict1-pict9
easy = checkX = checkO = false;
// mengembalikan ke gambar awal picture box / kosong
pictureBox1.BackgroundImage = pictureBox2.BackgroundImage =
pictureBox3.BackgroundImage = pictureBox4.BackgroundImage =
pictureBox5.BackgroundImage = pictureBox6.BackgroundImage =
pictureBox7.BackgroundImage = pictureBox8.BackgroundImage =
pictureBox9.BackgroundImage = null;
label1.Text = label2.Text = "0";
// enable semua picture box
List<PictureBox> pctlist = new List<PictureBox>();
foreach (PictureBox pct in this.Controls.OfType<PictureBox>())
{
pctlist.Add(pct);
pct.Enabled = true;
}
}
6. Nonaktifkan atau disable semua picture box ketika hasil score tampil
private void disablepicturebox()
{
List<PictureBox> pctList = new List<PictureBox>();
foreach (PictureBox pct in this.Controls.OfType<PictureBox>())
{
pctList.Add(pct);
pct.Enabled = false;
}
}
7. Nonaktifkan atau disable picture box yang sudah diclick agar player yang lain tidak dapat menggunakan picture box yang sudah dipakai.
private void wasclickedbefore(int pic)
{
switch (pic)
{
case 1: { if (pict1 == 1) pict1++; break; }
case 2: { if (pict2 == 1) pict2++; break; }
case 3: { if (pict3 == 1) pict3++; break; }
case 4: { if (pict4 == 1) pict4++; break; }
case 5: { if (pict5 == 1) pict5++; break; }
case 6: { if (pict6 == 1) pict6++; break; }
case 7: { if (pict7 == 1) pict7++; break; }
case 8: { if (pict8 == 1) pict8++; break; }
case 9: { if (pict9 == 1) pict9++; break; }
default: break;
}
if (easyToolStripMenuItem.Checked == true)
easycomputer_play(pic);
else if (normalToolStripMenuItem.Checked == true && easy == false)
normalcomputer_play(pic);
else if (normalToolStripMenuItem.Checked == true && easy == true)
easycomputer_play(pic);
}
8. Jika memilih level easy seperti ini logika fungsi easy modenya
private void easycomputer_play(int pic)
{
if (pict1 == 0) { pictureBox1.BackgroundImage = pictureO; pict1 = 2; }
else if (pict2 == 0) { pictureBox2.BackgroundImage = pictureO; pict2 = 2; }
else if (pict3 == 0) { pictureBox3.BackgroundImage = pictureO; pict3 = 2; }
else if (pict4 == 0) { pictureBox4.BackgroundImage = pictureO; pict4 = 2; }
else if (pict5 == 0) { pictureBox5.BackgroundImage = pictureO; pict5 = 2; }
else if (pict6 == 0) { pictureBox6.BackgroundImage = pictureO; pict6 = 2; }
else if (pict7 == 0) { pictureBox7.BackgroundImage = pictureO; pict7 = 2; }
else if (pict8 == 0) { pictureBox8.BackgroundImage = pictureO; pict8 = 2; }
else if (pict9 == 0) { pictureBox9.BackgroundImage = pictureO; pict9 = 2; }
}
if (pict1 == 0) pictureBox1.BackgroundImage = pictureO;
pict1 = 2; break;
}
case 2:
{
if (pict3 == 0) pictureBox3.BackgroundImage = pictureO;
pict3 = 2; break;
}
case 3:
{
if (pict7 == 0) pictureBox7.BackgroundImage = pictureO;
pict7 = 2; break;
}
case 4:
{
if (pict9 == 0) pictureBox9.BackgroundImage = pictureO;
pict9 = 2; break;
}
default: break;
}
easy = true;
}
}
10. Kemungkinan Player 1 atau X menang, beginilah fungsi memeriksa ketika User (X) menang:
private void result()
{
if (pictureBox1.BackgroundImage == pictureX &&
pictureBox2.BackgroundImage == pictureX &&
pictureBox3.BackgroundImage == pictureX)
{
MessageBox.Show("X (You) has WON !!!", "Congratulation"); checkX = true;
}
else if (pictureBox4.BackgroundImage == pictureX &&
pictureBox5.BackgroundImage == pictureX &&
pictureBox6.BackgroundImage == pictureX)
{
MessageBox.Show("X (You) has WON !!!", "Congratulation"); checkX = true;
}
else if (pictureBox7.BackgroundImage == pictureX &&
pictureBox8.BackgroundImage == pictureX &&
pictureBox9.BackgroundImage == pictureX)
{
MessageBox.Show("X (You) has WON !!!", "Congratulation"); checkX = true;
}
else if (pictureBox1.BackgroundImage == pictureX &&
pictureBox4.BackgroundImage == pictureX &&
pictureBox7.BackgroundImage == pictureX)
{
MessageBox.Show("X (You) has WON !!!", "Congratulation"); checkX = true;
}
else if (pictureBox2.BackgroundImage == pictureX &&
pictureBox5.BackgroundImage == pictureX &&
pictureBox8.BackgroundImage == pictureX)
{
MessageBox.Show("X (You) has WON !!!", "Congratulation"); checkX = true;
}
else if (pictureBox3.BackgroundImage == pictureX &&
pictureBox6.BackgroundImage == pictureX &&
pictureBox9.BackgroundImage == pictureX)
{
MessageBox.Show("X (You) has WON !!!", "Congratulation"); checkX = true;
}
else if (pictureBox3.BackgroundImage == pictureX &&
pictureBox5.BackgroundImage == pictureX &&
pictureBox7.BackgroundImage == pictureX)
{
MessageBox.Show("X (You) has WON !!!", "Congratulation"); checkX = true;
}
else if (pictureBox1.BackgroundImage == pictureX &&
pictureBox5.BackgroundImage == pictureX &&
pictureBox9.BackgroundImage == pictureX)
{
MessageBox.Show("X (You) has WON !!!", "Congratulation"); checkX = true;
}
else resultO();
}
11. Begitu juga dengan fungsi memeriksa ketika computer (O) menang
private void resultO()
{
if (pictureBox1.BackgroundImage == pictureO &&
pictureBox2.BackgroundImage == pictureO &&
pictureBox3.BackgroundImage == pictureO)
{
MessageBox.Show("O (Computer) has WON !!!", "Congratulation"); checkO =
true;
}
else if (pictureBox4.BackgroundImage == pictureO &&
pictureBox5.BackgroundImage == pictureO &&
pictureBox6.BackgroundImage == pictureO)
{
MessageBox.Show("O (Computer) has WON !!!", "Congratulation"); checkO =
true;
}
else if (pictureBox7.BackgroundImage == pictureO &&
pictureBox8.BackgroundImage == pictureO &&
pictureBox9.BackgroundImage == pictureO)
{
MessageBox.Show("O (Computer) has WON !!!", "Congratulation"); checkO =
true;
}
else if (pictureBox1.BackgroundImage == pictureO &&
pictureBox4.BackgroundImage == pictureO &&
pictureBox7.BackgroundImage == pictureO)
{
MessageBox.Show("O (Computer) has WON !!!", "Congratulation"); checkO =
true;
}
else if (pictureBox2.BackgroundImage == pictureO &&
pictureBox5.BackgroundImage == pictureO &&
pictureBox8.BackgroundImage == pictureO)
{
MessageBox.Show("O (Computer) has WON !!!", "Congratulation"); checkO =
true;
}
else if (pictureBox3.BackgroundImage == pictureO &&
pictureBox6.BackgroundImage == pictureO &&
pictureBox9.BackgroundImage == pictureO)
{
MessageBox.Show("O (Computer) has WON !!!", "Congratulation"); checkO =
true;
}
else if (pictureBox3.BackgroundImage == pictureO &&
pictureBox5.BackgroundImage == pictureO &&
pictureBox7.BackgroundImage == pictureO)
{
MessageBox.Show("O (Computer) has WON !!!", "Congratulation"); checkO =
true;
}
else if (pictureBox1.BackgroundImage == pictureO &&
pictureBox5.BackgroundImage == pictureO &&
pictureBox9.BackgroundImage == pictureO)
{
MessageBox.Show("O (Computer) has WON !!!", "Congratulation"); checkO =
true;
}
checkdraw();
}
12. Kemungkinan ketika game seri. beginilah fungsi memeriksa ketika game seri:
private void checkdraw()
{
if (pictureBox1.BackgroundImage != null && pictureBox2.BackgroundImage != null
&&
pictureBox3.BackgroundImage != null && pictureBox4.BackgroundImage != null
&&
pictureBox5.BackgroundImage != null && pictureBox6.BackgroundImage != null
&&
pictureBox7.BackgroundImage != null && pictureBox8.BackgroundImage != null
&&
pictureBox9.BackgroundImage != null)
MessageBox.Show("Game is DRAW !!!", "Congratulation");
}
13. Buat fungsi score untuk menampilkan score pada label 1 dan 2:
private void score()
{
if (checkX)
{
disablepicturebox();
label1.Text = (int.Parse(label1.Text) + 1).ToString();
}
else if (checkO)
{
disablepicturebox();
label2.Text = (int.Parse(label2.Text) + 1).ToString();
}
}
14. Inilah inti permainannya, event ketika picture box diklik.
private void Picture_Click(object sender, EventArgs e)
{
PictureBox piCTure = (PictureBox)sender;
int pic = Convert.ToInt32((piCTure.Name).Substring(10, 1));
count++;
// switch kondisi masing-masing picture box
switch (pic)
{
case 1:
{
if (pict1 == 0) { pict1++; pictureBox1.BackgroundImage = pctr; }
else if (pict1 == 2) { pictureBox1.Enabled = false; } break;
}
case 2:
{
if (pict2 == 0) { pict2++; pictureBox2.BackgroundImage = pctr; }
else if (pict2 == 2) { pictureBox2.Enabled = false; } break;
}
case 3:
{
if (pict3 == 0) { pict3++; pictureBox3.BackgroundImage = pctr; }
else if (pict3 == 2) { pictureBox3.Enabled = false; } break;
}
case 4:
{
if (pict4 == 0) { pict4++; pictureBox4.BackgroundImage = pctr; }
else if (pict4 == 2) { pictureBox4.Enabled = false; } break;
}
case 5:
{
if (pict5 == 0) { pict5++; pictureBox5.BackgroundImage = pctr; }
else if (pict5 == 2) { pictureBox5.Enabled = false; } break;
}
case 6:
{
if (pict6 == 0) { pict6++; pictureBox6.BackgroundImage = pctr; }
else if (pict6 == 2) { pictureBox6.Enabled = false; } break;
}
case 7:
{
if (pict7 == 0) { pict7++; pictureBox7.BackgroundImage = pctr; }
else if (pict7 == 2) { pictureBox7.Enabled = false; } break;
}
case 8:
{
if (pict8 == 0) { pict1++; pictureBox8.BackgroundImage = pctr; }
else if (pict8 == 2) { pictureBox8.Enabled = false; } break;
}
case 9:
{
if (pict9 == 0) { pict9++; pictureBox9.BackgroundImage = pctr; }
else if (pict9 == 2) { pictureBox9.Enabled = false; } break;
}
default: break;
}
result(); score();
if (easyToolStripMenuItem.Checked == true || normalToolStripMenuItem.Checked
== true)
{
pctr = pictureX;
if (checkX == false && checkO == false) wasclickedbefore(pic);
}
}
15. Ketika user memilih new game pada menu strip, begini programnya:
private void newGameToolStripMenuItem_Click(object sender, EventArgs e)
{
reset(); label1.Text = label2.Text = "0";
}
Sir, I’m a bit nervous ‘Bout being here today Still not real sure what I’m going to say So bare with me please If I take up too much of your time. See in this box is a ring for your oldest. She’s my everything and all that I know is It would be such a relief if I knew that we were on the same side Very soon I’m hoping that I…
Can marry your daughter And make her my wife I want her to be the only girl that I love for the rest of my life And give her the best of me ’till the day that I die, yeah I’m gonna marry your princess And make her my queen She’ll be the most beautiful bride that I’ve ever seen Can’t wait to smile When she walks down the aisle On the arm of her father On the day that I marry your daughter
She’s been hearing for steps Since the day that we met (I’m scared to death to think of what would happen if she ever left) So don’t you ever worry about me ever treating her bad I’ve got most of my vows done so far (So bring on the better or worse) And ’till death do us part There’s no doubt in my mind It’s time I’m ready to start I swear to you with all of my heart…
I’m gonna marry your daughter And make her my wife I want her to be the only girl that I love for the rest of my life And give her the best of me ’till the day that I die, yeah I’m gonna marry your princess And make her my queen She’ll be the most beautiful bride that I’ve ever seen I can’t wait to smile As she walks down the aisle On the arm of her father On the day that I marry your daughter
The first time I saw her I swear I knew that I say I do I’m gonna marry your daughter And make her my wife I want her to be the only girl that I love for the rest of my life And give her the best of me ’till the day that I die I’m gonna marry your princess And make her my queen She’ll be the most beautiful bride that I’ve ever seen I can’t wait to smile As she walks down the aisle On the arm of her father On the day that I marry your daughter
hai guysssssssss, laras mau cerita nih.. hobi laras itu nyanyi..nah, walaupun suara ga bagus-bagus amat ni yaaa, tapi gapapa..belajar terus sampai selevel kayak mbak ariana grande, mbak taylor swift, dll. aamiin wkwkwk. nah, hobi nyanyi laras ini ga laras pendem ajaa loh.. laras punya akun soundcloud guyss follow yaa akun laras namanya : laras hanisa putri. soundcloud itu web tempatnya orang orang yang suka musik.. disini kita bisa merekam suara kita, musikalisasi, dll. nah, bagus banget nih buat publish hobi musik kalian disini.. gapapa jelek kan bukan artis juga dan hak hak tiap manusia dong ngelakuin apa yang dia suka selama ga berlebihan ya kaaaaaaaaaan:) gausah malu guys... ayo buat akun soundcloud:)
hai guys, laras mau sharing lagi nih. kali ini soal tugas laras.. yaitu parsing data tentunya memakai strings :) laras kasih tau ni ya protocol komunikasi di internet itu sangat bergantung pada format teks loh guys. Ketika temen-temen melakukan browsing ke google.com, maka yang terjadi adalah pertukaran string teks terus-menerus antara router-router sampai dengan server google. wuhuuuuuu panjang sangat prosedurnya :D
Sebagai contoh adalah protokol TCP yang memiliki format sebagai berikut:
Misalnya awal dari protokol ditandai dengan karakter “abcde”, akhir dari satu paket protokol ditandai dengan flag “edcba”. Kemudian 2 byte berikutnya menunjukkan source port, diikuti 2 byte destination address. Lalu HLEN sebanyak 5 byte yang menunjukkan banyaknya data. Setelah itu data sebanyak HLEN. Terdapat trailer 4 byte, sebelum ditutup CRC 4 byte. Buat program untuk memisah-misahkan satu paket protokol. Misalnya data yang diterima dari internet sebagai berikut:
Program anda harus bisa mengambil satu paket protokol yang ditandai dengan flag awal dan akhir protokol. Kemudian memisah-misahkan source port, destination port, data dan trailer.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace parsingdata
{
public partial class Form1 : Form
{
string contoh;
private int sourceport = 2, destinationport = 2, hlen = 5, crc = 4, data = 15, trailer = 4, index;
int z;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{