Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Monday 20 April 2015

DELPHI :: Sejarah Bahasa Pemrograman Delphi



Delphi adalah sebuah bahasa pemrograman dan lingkungan pengembangan perangkat lunak. Kata Delphi sendiri berasal dari bahasa Yunani yang berarti kuil yang dibangun untuk menyembah Dewa Apollo, salah satu Dewa yang disegani oleh orang-orang Yunani selain Dewa-Dewa lain seperti Jupiter, Titan dan lain sebagainya. Delphi awalnya sebuah proyek penelitian rahasia di Borland yang berevolusi menjadi sebuah produk yang disebut AppBuilder. Borland sebagai pengembang perangkat lunak yang sudah ada sejak era 1980an menggunakan ikon dan nama Delphi sebagai salah satu perangkat lunak pembantu pemrograman untuk membuat program yang sudah mengarah ke Pemrograman yang berorientasi pada objek atau dikenal dengan istilah OOP (Object Oriented Programming). Salah satu tujuan asli dari Delphi adalah untuk menyediakan konektivitas database untuk programmer sebagai kunci dan sebuah paket database yang populer pada saat itu adalah database Oracle, maka “Jika Anda ingin berbicara dengan Oracle, lakukan dengan Delphi”.

Sejarah munculnya delphi dimulai dengan ide brilian Prof. Niclaus Wirth yang mengemukakan paparan tentang Struktur Data dan Algoritma (Algorthm and Data Structure). Prof. Niklaus Wirth menerjemahkan paparan ini yang kemudian dikristalisasi ke dalam bahasa yang populer dan digunakan pertama kalinya sebagai bahasa yang berorientasi pada hal-hal yang Science dan Ilmiah yaitu Pascal. Pascal sendiri kemudian distandarisasi ke dalam ANSI PASCAL (Pascal umum) oleh badan standarisasi Amerika Serikat (ANSI). Kemudian, 20 Nopember 1983, Borland melakukan riset untuk menerjemahkan ide dari kristalisasi ANSI Pascal (Pascal yang distandarisasi) yang kemudian menelurkan compiler Pascal ke dalam pengembangan perangkat lunaknya yaitu Turbo Pascal 1.0. Turbo Pascal 1.0
berjalan pada sistem operasi PC/MS DOS dengan keterabatasan memory yang saat itu bias berjalan pada ukuran 1 Mbyte saja. Dari penemuan Turbo Pascal inilah akhirnya Delphi diciptakan.

Pada November 2006, Borland mengumumkan keputusan untuk memisahkan Developer Tools Group menjadi milik anak perusahaan yang sepenuhnya berfokus pada produktivitas pengembang memaksimalkan pengembangan Delphi yang diberi nama CodeGear. Pada Mei 2008, Embarcadero Technologies telah menandatangani perjanjian jual beli untuk membeli CodeGear dari Borland. Embarcadero dan CodeGear diharapkan untuk menciptakan terbesar di dunia, penyedia perangkat lunak independen alat pengembangan dan database. Embarcadero sendiri adalah sebuah perusahaan swasta yang dikuasai, memberikan alat-alat database yang profesional perusahaan menggunakan untuk merancang, mengembangkan dan mengelola database. Produk mencakup: ER / Studio, DBArtisan, Rapid SQL dan Perubahan Manager.

Bahasa Delphi, atau dikenal pula sebagai object pascal (pascal dengan ekstensi pemrograman berorientasi objek (PBO/OOP)) pada mulanya ditujukan hanya untuk Microsoft Windows, namun saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk Linux dan Microsoft.NET framework. Khusus untuk pemrogaman database, Borland Delphi menyediakan fasilitas obyek yang kuat dan lengkap yang memudahkan programmer membuat program untuk aplikasi database. Format database yang dimiliki Delphi yaitu format database Paradox, dBase, MS Access, ODBC, SyBASE, Oracle dan lain-lain Delphi adalah kompiler / penterjemah bahasa Delphi (awalnya dari Pascal) yang merupakan bahasa tingkat tinggi sekelas dengan Basic dan C. Bahasa Pemrograman di Delphi disebut bahasa prosedural artinya bahasa/sintaknya mengikuti urutan tertentu / prosedur.Ada jenis pemrograman non-prosedural seperti pemrograman untuk kecerdasan buatan seperti bahasa Prolog.Delphi termasuk Keluarga Visual sekelas Visual Basic, Visual C, artinya perintah -perintah untuk membuat objek dapat dilakukan secara visual.Pemrogram tinggal memilih objek apa yang ingin dimasukkan kedalam Form/Window, lalu tingkah laku objek tersebut saat menerima event/aksi tinggal dibuat programnya.Delphi merupakan bahasa berorentasi objek, artinya nama objek, properti dan methode/procedure dikemas menjadi satu kemasan (encapsulate).

Perkembangan Delphi
BORLAND DELPHI
Borland Delphi merupakan program aplikasi database yang berbasis Object Pascal dari Borland. Selain itu, Delphi juga memberikan fasilitas pembuatan aplikasi visual. Delphi merupakan pilihan dalam pembuatan aplikasi visual karena memberikan produktivitas yang tinggi.

Borland Delphi 1
Delphi 1 dirilis pada 1995 untuk 16-bit Windows 3.1 dan merupakan contoh awal dari apa yang kemudian dikenal sebagai Rapid Application Development (RAD) alat. Delphi 1 adalah penerus Turbo Pascal dan Borland Pascal, sangat cepat sedikit kode asli kompiler-16 dengan canggih perusahaan memiliki lintegrated development environment(IDE) dan toolkit antarmuka pengguna grafis untuk DOS (Borland Pascal ditambah Windows IDE dan kode generasi Windows juga) . Seperti Turbo Pascal, Delphi kode ditulis dalam dialek bahasa pemrograman Pascal yang dikenal sebagai Object Pascal .

Borland Delphi 2
Delphi 2, dirilis pada 1996 , didukung 32-bit lingkungan Windows. Ini termasuk Delphi 1 dibundel bersama-sama untuk menciptakan 16-bit 3.1 aplikasi Windows.

Borland Delphi 3 
Delphi 3, dirilis pada 1997 , adalah Delphi klasik. Hal ini didukung 32-bit lingkungan Windows. Ini juga termasuk Delphi 1 dibundel bersama-sama untuk menciptakan 16-bit 3.1 aplikasi Windows. 

Borland Delphi 4
Borland Delphi 4 dirilis pada 1998 .

Borland Delphi 5
Borland Delphi 5 dirilis pada 1999 .

Kylix
Pada tahun 2001 sebuah versi Linux dari Delphi, bernama Kylix , dirilis. IDE adalah tergantung pada Wine perpustakaan bukan asli sistem perpustakaan Linux (glibc) untuk mendapatkan produk keluar dengan cepat dan relatif murah. Biaya pengembangan versi glibc Kylix asli, dikombinasikan dengan kurangnya adopsi Linux di kalangan programmer pada saat itu, menyebabkan penjualan untuk pergi lembut, dan Kylix diam-diam ditinggalkan setelah versi 3. Ini adalah usaha pertama untuk menambahkan dukungan Linux dalam keluarga produk Delphi.
Kylix didasarkan pada kerangka lintas-platform baru CLX, VCL bukan sebagai Delphi.

Borland Delphi 6 

Upaya untuk mendukung Linux dan Windows untuk-platform pengembangan lintas dibuat, dan sebuah-platform alternatif yang menyeberang ke VCL dikenal sebagai CLX dikirim pada 2002 dengan merilis Delphi 6. Ini adalah upaya kedua untuk menambahkan Linux dengan keluarga produk Delphi (lihat Kylix di atas).
Delphi 6 termasuk versi CLX sama (CLX 1) sebagai versi pertama dari Kylix disebutkan di atas. Sejak CLX dibuat sebelum Delphi 6, set fitur yang didasarkan pada VCL 5; yang menciptakan beberapa kerugian bagi CLX yang tidak memiliki beberapa fitur dibandingkan dengan VCL 6 dikirimkan dengan Delphi 6.


Borland Delphi 7
Delphi 7, dirilis pada bulan Agustus 2002, menjadi versi standar yang digunakan oleh pengembang Delphi lebih dari versi tunggal lainnya. Ini adalah salah satu keberhasilan paling IDE yang diciptakan oleh Borland karena kecepatan, yang stabilitas dan persyaratan perangkat keras rendah dan masih aktif digunakan untuk tanggal ini (2009). Delphi 7 menambahkan dukungan untuk Windows Theme XP, dan menambahkan lebih banyak dukungan untuk membangun aplikasi Web. Ini juga merupakan versi terakhir dari Delphi yang dapat digunakan tanpa aktivasi.


Borland Delphi 8
Delphi 8, dirilis Desember 2003 , hanya merilis-yang memungkinkan para pengembang untuk mengkompilasi kode Delphi Object Pascal ke bersih . IDE ditulis ulang untuk mengakomodasi untuk pengembangan bersih. IDE berubah menjadi antarmuka merapat mirip dengan Microsoft Visual Studio.NET. Delphi 8 sangat dikritik untuk kualitas rendah dan fakta yang tidak mungkin lagi untuk membuat aplikasi asli (*. exe). Ketidakmampuan untuk menghasilkan aplikasi asli hanya berlaku untuk rilis ini, seperti kemampuan ditambahkan kembali ke rilis berikutnya (Delphi 2005).

Borland Delphi 2005
Versi berikutnya, Delphi 2005 (Delphi 9, juga Borland Developer Studio 3.0), termasuk Win32 dan pengembangan NET. Dalam IDE tunggal, Borland mengulangi komitmen untuk pengembang Win32. Delphi 2005 meliputi manipulasi desain-waktu data langsung dari database. Namun, itu dikritik oleh beberapa untuk bug tersebut; baik Delphi 8 dan Delphi 2005 memiliki masalah stabilitas ketika dikirim, yang hanya sebagian diselesaikan dalam paket layanan. Kemampuan untuk mengkompilasi aplikasi asli windows (*. exe) ditambahkan kembali ke Delphi 2005 setelah dihapus dalam Delphi 8.

Borland Delphi 2006
Pada akhir 2005 2.006 Delphi (Delphi 10, Borland Developer Studio 4.0) dirilis dan gabungan pengembangan C # dan Delphi.NET, Delphi Win32 dan C + + (Pratinjau ketika ia dikirim tapi punya stabil dalam Service Pack 1) ke dalam IDE tunggal. Ini jauh lebih stabil daripada Delphi 8 atau Delphi 2005 ketika dikirim, dan ditingkatkan bahkan lebih dengan merilis service pack dan hotfix beberapa.CLX dukungan dijatuhkan untuk aplikasi baru dari rilis ini dan seterusnya.
Pada tanggal 8 Februari 2006 Borland mengumumkan bahwa mereka sedang mencari pembeli untuk IDE dan lini produk database, yang mencakup Delphi, untuk berkonsentrasi pada perusahaan ALM baris.
Pada tanggal 6 September 2006 Developer Tools Group (nama kerja belum berputar perusahaan) Borland Software Corporation merilis versi bahasa tunggal Borland Developer Studio, membawa kembali nama Turbo populer. Rangkaian produk meliputi Turbo Turbo Delphi untuk Win32, Turbo Delphi untuk. NET, Turbo C + +, dan Turbo C #. Setiap versi tersedia dalam dua edisi: Explorer-gratis dan downloadversi-Professional-a-harga (US $ 899 untuk baru, pengguna US $ 399 untuk update) versi yang lebih rendah yang membuka akses ke ribuan komponen pihak ketiga. Tidak seperti sebelumnya edisi Pribadidari Delphi, baru edisi Explorer dapat digunakan untuk pengembangan komersial.
Pada November 14, 2006 Borland mengumumkan bahwa daripada menjual alat-alat pengembangan kelompok itu akan spin it off menjadi anak perusahaan mandiri bernama CodeGear .

Codegear Delphi 2007
Delphi 2007 (Delphi 11), versi pertama oleh CodeGear, dirilis pada tanggal 16 Maret 2007. Kepribadian Win32 dirilis pertama kali, sebelum kepribadian BERSIH Delphi 2007 yang didasarkan pada NET Framework. 2.0. Dirilis sebagai bagian dari produk CodeGear RAD Studio 2007. Fitur baru termasuk dukungan untuk MS Membangun dan perangkat tambahan ke Visual Component Library untuk Windows Vista, tapi C # Builder fitur dijatuhkan dalam rilis ini sebagai tempat penjualan tidak setinggi yang diharapkan karena Visual Studio juga menawarkan C #. NET juga dijatuhkan di D2007 karena didasarkan atas bagian dari kerangka NET API. Yang telah berubah begitu drastis oleh Microsoft pada NET 2.0. Bahwa update IDE akan menjadi usaha besar. NET digantikan oleh Delphi Prism , kombinasi yang kompatibel RemObjects sebagian besar kompiler Delphi. NET, Visual Studio Microsofts Shell (versi tanpa C # dan dukungan VB) dan beberapa teknologi Embarcadero seperti dbExpress. Prism adalah cross platform sejauh mampu karena mendukung Mono. Delphi 2007 juga memperkenalkan DBX4 sebagai versi berikutnya dbExpress. Untuk pertama kalinya Delphi bisa di-download dari Internet dan diaktifkan dengan kunci lisensi, kemampuan didukung oleh baru InstallAware teknologi instalasi (sendiri ditulis dalam Delphi, dan sekarang pengiriman dalam terbatas, edisi bebas di dalam kotak dengan Delphi). versi internasionalisasi dari Delphi 2007 dikirim secara bersamaan di Inggris, Perancis, Jerman dan Jepang. RAD Studio 2007 (kode nama Highlander), yang meliputi NET dan. C + + pengembangan Builder, dirilis pada tanggal 5 September 2007.
Borland CodeGear dijual untuk Embarcadero Technologies pada tahun 2008. Embarcadero adalah mempertahankan pembagian CodeGear diciptakan oleh Borland untuk mengidentifikasi alat dan persembahan database, dan Embarcadero telah memutuskan untuk mengidentifikasi alat-alat sendiri database di bawah moniker DatabaseGear.

Embarcadero Delphi 2009
Delphi 2009 (Delphi 12, kode nama Tiburon), menambahkan banyak fitur baru seperti sepenuhnya ulang dengan VCL dan RTL untuk dukungan Unicode penuh, dan menambahkan generik dan metode anonim untuk pengembangan asli Win32. Dukungan untuk pengembangan NET adalah. Dijatuhkan dari IDE Delphi. Sebuah produk baru, Delphi Prism, adalah ditawarkan untuk pembangunan NET. Di tempatnya. Delphi Prism adalah Visual Studio bahasa plug-in, dan tidak termasuk RTL atau VCL untuk porting kode.

Embarcadero Delphi 2010

Delphi 2010 (Delphi alias 14, dengan kode nama Weaver, nomor 13 itu diabaikan), dirilis pada tanggal 25 Agustus 2009 dan merupakan rilis Unicode kedua Delphi. Ini termasuk compiler baru sistem bisa menghentikan , dukungan untuk Windows 7 2D langsung, layar sentuh dan gerakan, sebuah formatter kode sumber, visualizers debugger dan pilihan untuk juga memiliki komponen palet gaya lama dalam IDE. Sistem bisa menghentikan baru membuat executable lebih besar dari versi sebelumnya.

Embarcadero Delphi XE 

Versi terbaru dari Delphi, Delphi XE (alias Delphi 2011 [9] , dengan kode nama Fulcrum), dirilis pada tanggal 30 Agustus 2010.

Kegunaan Delphi:
1. Untuk membuat aplikasi pada Windows.
2. Untuk merancang aplikasi berbasis grafis.
3. Untuk membuat program berbasis jaringan (client/server).
4. Untuk merancang program .Net (berbasis internet).

Keunggulan Delphi:
  1. Memiliki IDE (integrated Development Environment) atau lingkungan pengembangan terintegrasi yang didalamnya terdapat menu-menu yang memudahkan programmer untuk membuat sebuah program aplikasi.
  2. Proses kompilasi cepat, pada saat program dijalankan, secara otomatis akan dibaca sebagai sebuah program, tanpa dijalankan terpisah.
  3. Mudah digunakan, karena source code Delphi merupakan turunan dari bahasa pemrograman Pascal.
  4. Bersifat multi purpose, artinya bahasa pemrograman Delphi dapat digunakan untuk mengembangkan berbagai keperluan pengembangan aplikasi.
  5. Dapat mengkompilasi menjadi single executable, memudahkan distribusi dan meminimalisir masalah yang terkait dengan versioning.

Kekurangan Delphi:

  1. Pengguna yang tidak memiliki dasar pemrograman dengan bahasa Pascal akan mengalami kesulitan untuk pertama kalinya.
  2. Setiap komponen yang dimasukkan dalam form tampilan, akan diikutsertakan kode deklarasi dan inisialisasinya dalam list code. Sehingga apabila terjadi perubahan komponen, penamaan maupun kesalahan penulisan kode, program tidak mau membetulkan otomatis.
  3. Apabila terdapat form/list code lain yang di-include-kan, harus dituliskan code/nama dari form/lost code di bagian “uses” dan juga inisialisasi variablenya.


Thursday 16 April 2015

VB6.0 DAN DELPHI :: Koneksi Arduino Dengan Visual Basic 6.0 dan Delphi

Visual Basic merupakan turunan bahasa pemrograman BASIC dan menawarkan pengembangan perangkat lunak komputer berbasis grafik dengan cepat. lebih lengkapnya baca disini
dengan VB berikut ini contoh potongan programnya.
  1. Program sensor suhu untuk input dari VB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// deklarasi variabel
float tempC;
int tempPin = 0;
void setup()
{
 // buka serial port, set baud rate 9600 bps
 Serial.begin(9600);
}
void loop()
{
 // baca data dari sensor
 tempC = analogRead(tempPin);
 // konversi analog ke suhu
 tempC = (5.0 * tempC * 100.0)/1024.0;
 // kirim data via serial berupa nilai biner
 Serial.print((int)tempC,BYTE);
 // tarik nafas sejenak
 delay(1000);
}
  1. Buat sebuah form pada VB6 dan salin program sebagai berikut
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px; white-space: normal;">
<pre class="brush:vb"><pre class="brush:vb"><pre class="brush:vb">Private Sub Form_Load()
  With MSComm1
    'non aktifkan dulu serial port
    If .PortOpen Then .PortOpen = False
    'set serial port yang ingin digunakan
    .CommPort = 3
    'set baud rate,parity,databits,stopbits
    .Settings = "9600,N,8,1"
    'set DTR and RTS
    .DTREnable = True
    .RTSEnable = True
    'aktifkan event oncomm event
    .RThreshold = 1
    'non aktifkan event oncomm
    .SThreshold = 0
    'aktifkan serial port
    .PortOpen = True
  End With 'MSComm1
  'tampilkan tanda derajat
  Label2.Caption = Chr(176) + "C"
End Sub
Private Sub MSComm1_OnComm()
  Dim strInput As String
  With MSComm1
    'test event data masuk
    Select Case .CommEvent
      Case comEvReceive
        'tampilkan data dari Arduino
        strInput = .Input
        Label1.Caption = Asc(Mid(strInput, 1, 1))
    End Select
  End With 'MSComm1
End Sub</pre>
</pre>
</pre>
<p> </p>
<p></p></span>



VB.NET :: Komunikasi Serial Com Port dengan VB.Net (PENERIMA)


Berikut ini adalah komponen-komponen yang digunakan :
  1. ComboBox (2 buah)
  2. Button (2 buah)
  3. Label (3 buah)
  4. TextBox (1 buah)
  5. SerialPort (1 buah)
Buat tampilan program menjadi seperti gambar dibawah ini.
terima serial
Berikut ini adalah program lengkapnya.
Public Class Form1
    Dim myPort As Array
    Delegate Sub SetTextCallback(ByVal As String)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        myPort = IO.Ports.SerialPort.GetPortNames()
        ComboBox2.Items.Add(9600)
        ComboBox2.Items.Add(19200)
        ComboBox2.Items.Add(38400)
        ComboBox2.Items.Add(57600)
        ComboBox2.Items.Add(115200)
        For i = 0 To UBound(myPort)
            ComboBox1.Items.Add(myPort(i))
        Next
        ComboBox1.Text = ComboBox1.Items.Item(0)
        ComboBox2.Text = ComboBox2.Items.Item(0)
        Button1.Enabled = True
        Button2.Enabled = False
    End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SerialPort1.PortName = ComboBox1.Text
        SerialPort1.BaudRate = ComboBox2.Text
        SerialPort1.Open()
        Button1.Enabled = False
        Button2.Enabled = True
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        SerialPort1.Close()
        Button1.Enabled = True
        Button2.Enabled = False
    End Sub
Private Sub ReceivedText(ByVal As String)        ‘compares the ID of the creating Thread to the ID of the calling Thread
        If Me.TextBox1.InvokeRequired Then
            Dim x As New SetTextCallback(AddressOf ReceivedText)
            Me.Invoke(x, New Object() {(text)})
        Else
            ‘Me.TextBox2.Text = ” “
            Me.TextBox1.Text =
          End If    End Sub
    Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
        ‘Automatically called every time a data is received at the serialPort
        ReceivedText(SerialPort1.ReadExisting())
    End Sub
End Class
Untuk menguji program, kita dapat menggunakan Program Pengirim yang sudah dibahas pada artikel sebelumnya atau bisa juga menggunakan Virtual Terminal.

ARDUINO DAN VB.NET :: Komunikasi Arduino dengan VB.NET (serial port)

 

Pemrograman serial port pada Arduino
Hubungkan Arduino ke PC Anda menggunakan kabel USB, lalu buka software Arduino. Program ini untuk memastikan bahwa koneksi antara Arduino dan PC tidak ada kendala.   Ketik program seperti di bawah ini lalu upload ke Arduino.
int inByte=0; // variable to receive data from serial port
void setup()
{
Serial.begin(9600);
}

void loop()
{
if (Serial.available() > 0)
{
inByte=Serial.read();
Serial.write(inByte);
}
}
Setelah itu buka Tools > Serial Monitor pada aplikasi Arduino, untuk melihat interaksi antara PC dan mikrokontroler.  Jika kita mengirim sembarang data, maka Arduino akan membalas data yang sama.  Jangan lupa periksa kecepatan komunikasi, keduanya harus sama.  Dalam hal ini 9600 bit per detik.
Pada bagian setup, kita mengaktifkan fungsi serial port pada Arduino (yang terkoneksi langsung dengan port USB) dengan perintah:
Serial.begin(9600);
Perintah ini hanya dilakukan sekali saja, pada saat Arduino diaktifkan atau di-reset.  Jika kita ingin kecepatan lebih tinggi, ganti dengan 115000.  Jika kita ingin menggunakan serial port yang lain, gunakan Serial1, Serial2 atau Serial3. (berlaku untuk mikro yang serial portnya lebih dari satu, contohnya Arduino Mega, terletak pada pin 14 sampai 19).  Jika Anda menggunakan Uno, maka tidak ada pilihan lain.
Fungsi Serial.available() memberikan nilai BENAR jika ada data yang masuk.  Sedangkan fungsi  Serial.read() untuk membaca data yang masuk sebesar 1 byte.  Perintah untuk mengirim data dari mikro ke luar adalahSerial.write(data_yg_ditulis);
Dengan melihat program di atas, maka mikrokontroler hanya akan mengirim ke luar jika ada masukan data serial, dan pengirimannya akan diulang terus sebanyak berapa byte data yang masuk.
Mengendalikan LED lewat serial port
Sekarang kita akan coba menyalakan atau mematikan LED (pin 13), melalui serial port.  Kita buat ketentuan yang sederhana sebagai berikut:  jika menerima karakter ‘A’ maka lampu akan menyala, jika menerima karakter ‘B’ maka lampu akan mati.
// variable to receive data from serial port
int inByte=0;
// Pin 13 has an LED connected on most Arduino boards.
int led = 13;
void setup()
(
// initialize UART at 9600bps
Serial.begin(9600);
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}

void loop()
{
if (Serial.available() > 0) {
inByte=Serial.read();
Serial.write(inByte);

if (inByte==65)
{
digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
}
if (inByte==66)
{
digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
}

}
}
Ketik program di atas, upload dan jalankan Serial Monitor.  Kirim karakter ‘A’ atau ‘B’ untuk menyalakan dan mematikan LED yang ada di papan Arduino.  Catatan: tentu saja Anda bisa mengganti karakter tersebut dengan yang lain, sesuai keinginan.  (‘A’ = ASCII nomor 65 dan ‘B’ = ASCII nomor 66).

Membaca status input melalui serial port
Tahap berikutnya adalah pembacaan status input pada Arduino melalui serial port. Ketentuan yang kita buat adalah jika salah satu pin digital pada Arduino bernilai 0/low maka Arduino akan mengirim karakter ‘L’ dan jika bernilai 1/high maka akan mengirim karakter ‘H’.  Untuk memudahkan pengamatan, masing-masing karakter diikuti oleh karakter ‘CR’ atau ‘\n’.
Di contoh ini, kita gunakan pin nomor 24 yang dihubungkan ke sebuah tombol.  Kaki satu lagi dihubungkan ke ground.
// variable to receive data from serial port
int inByte=0;

// Pin 13 has an LED connected on most Arduino boards.
int led = 13;

// Push button is connected to pin 24
int buttonPin = 24;
int buttonState=0;

void setup()
{
// initialize UART at 9600bps
Serial.begin(9600);
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop()
{
if (Serial.available() > 0) {
inByte=Serial.read();
Serial.write(inByte);

if (inByte==65)
{
digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
}
if (inByte==66)
{
digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
}
}
buttonState=digitalRead(buttonPin);
if (buttonState==LOW)
{
Serial.write("L\n");  // send ‘L’ + CR
}
if (buttonState==HIGH)
{
Serial.write("H\n"); // send ‘H’ + CR
}
}
Ketik program di atas, lalu upload.  Buka Serial Monitor, lalu amati data yang diterima. Cobalah juga menekan/melepas tombol sambil mengamati perubahan yang terjadi antara ‘L’ dan ‘H’.  Di percobaan ini kita bisa amati, bahwa Arduino mengirimkan data secara terus menerus baik L ataupun H, meskipun tombol ditekan atau dilepas lama. Ingat bahwa hal ini karena instruksi ini terletak di dalam program utama/main loop.
Sekarang kita akan coba modifikasi program, sehingga yang terkirim hanya satu kali saja saat terjadi perubahan dari L ke H atau H ke L.  Untuk itu, kita harus membandingkan kondisi nilai tombol saat ini dengan kondisi pada loop sebelumnya. Variabel yang digunakan lastButtonState.  Jika tidak sama dengan buttonState, maka baru kita proses apa yang kita inginkan yaitu mengirimkan data.
// variable to receive data from serial port
int inByte=0;

// Pin 13 has an LED connected on most Arduino boards.
int led = 13;

// Push button is connected to pin 24
int buttonPin = 24;
int buttonState=0;
int lastButtonState=0;

void setup()
{
// initialize UART at 9600bps
Serial.begin(9600);
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
pinMode(buttonPin, INPUT);
}

void loop()
{
if (Serial.available() > 0)
{
inByte=Serial.read();
Serial.write(inByte);

if (inByte==65)
{
digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
}
if (inByte==66)
{
digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
}
}

buttonState=digitalRead(buttonPin);
if (buttonState != lastButtonState)
{
if (buttonState==LOW)
{
Serial.write("L\n");
}
else
{
Serial.write("H\n");
}
}
lastButtonState=buttonState;
}

Ketik program di atas, lalu upload, kemudian amati di Serial Monitor. Tekan tombol yang agak lama sambil amati karakter yang terkirim.  Arduino hanya akan mengirimkan satu kali saja saat ada perubahan L → H atau H → L.
Sampai di sini program di sisi Arduino sudah selesai, berikutnya kita masuk ke pemrograman serial port menggunakan Visual Studio .NET dalam hal ini kita coba memakai Visual Basic versi 2012.


VB.NET :: Komunikasi Serial Com Port dengan VB.Net (MENGIRIM)



Komunikasi serial merupakan salah satu metode untuk mengirimkan data dari suatu perangkat ke perangkat yang lain. Komunikasi serial banyak digunakan dalam berbagai aplikasi karena kemudahannya dalam dukungan terhadap sistem.
Dalam posting kali ini, saya akan menyampaikan cara pembuatan program pengiriman data serial menggunakan Microsoft Visual basic 2010. Tanpa banyak basa basi lagi, berikut ini adalah tahap-tahap pembuatan program pengirim data serial.
Komponen-komponen yang diperlukan adalah:
  1. ComboBox (2 buah)
  2. Label (3 buah)
  3. Button (3 buah)
  4. TextBox (1 buah)
  5. SerialPort (1 buah)
Buatlah tampilan program seperti pada gambar dibawah ini.
kirim serial
Berikut adalah List Program-nya.
Public Class Form1
    Dim myPort As Array  ‘COM Port yang terdeteksi pada sistem akan disimpan disini
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ‘Cek semua com port yang memungkinkan
 myPort = IO.Ports.SerialPort.GetPortNames()    
        ‘Nilai Baud Rate yang bisa digunakan
  ComboBox2.Items.Add(9600)                      
        ComboBox2.Items.Add(19200)
        ComboBox2.Items.Add(38400)
        ComboBox2.Items.Add(57600)
        ComboBox2.Items.Add(115200)
        For i = 0 To UBound(myPort)
            ComboBox1.Items.Add(myPort(i))
        Next
 ‘Atur Com Port pada Port yang pertama terdeteksi
 ComboBox1.Text = ComboBox1.Items.Item(0)   
 ‘Atur Baud Rate pada Baud yang pertama terdeteksi
 ComboBox2.Text = ComboBox2.Items.Item(0)
        Button1.Enabled = True                      ‘Inisialisasi tombol
        Button2.Enabled = False
        Button3.Enabled = False
    End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        SerialPort1.PortName = ComboBox1.Text
        SerialPort1.BaudRate = ComboBox2.Text
        SerialPort1.Open()
        Button1.Enabled = False
        Button2.Enabled = True
        Button3.Enabled = True
    End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        SerialPort1.Close()
        Button1.Enabled = True
        Button2.Enabled = False
        Button3.Enabled = False
    End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        SerialPort1.Write(TextBox1.Text)
    End Sub
End Class
Berikut ini adalah hasil running dari program dan hasil pengiriman.
hasil kirimHasil running.
hasil tampilanHasil pengiriman.

VB.NET :: Mengetahui Port Yang Terbuka pada Modem dengan vb.net



pertama kita siapkan objectnya,apa saja object yang digunakan ??
1. Command Button
2. RichTextBox
3. SerialPort
4. Combo Box
udah tau kan carinya dimana ?? yup..benar sekali,ada di Object Box disebelah kiri ituuuu..hehehehe..untuk Propertiesnya biarkan standard saja..tidak ada yang perlu digantikan..

Next Step..
kalo kalian Double Click di Salah satu objecnya,nanti kalian akan melihat Coding Form ( bahasa ane sendiri seh..hehehe.. ) nah dari sanalah perintah - perintah kita tulisakan..oke..mana Codingnya ?? ini dia :

Public Class Form1

Dim comPorts As Array ‘menampung Port ke dalam array
Dim rxBuff As String ‘Buffer untuk menerima data

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
‘Saat Form load
‘Menampilkan PORT ke dalam Combo Box
comPorts = IO.Ports.SerialPort.GetPortNames()

For i = 0 To UBound(comPorts)
ComboBox1.Items.Add(comPorts(i))
Next

‘Set ComboBox1 text untuk menampilkan port yg paling pertama
ComboBox1.Text = ComboBox1.Items.Item(0)
SerialPort1.PortName = ComboBox1.Text

‘Set Attribut port
SerialPort1.BaudRate = 19200
SerialPort1.Parity = IO.Ports.Parity.None
SerialPort1.StopBits = IO.Ports.StopBits.One
SerialPort1.DataBits = 8

TextBox1.Enabled = False

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
‘saat button di click..buffer menjadi hilang
rxBuff = “”

‘If port tertutup,maka langsung dibuka
If SerialPort1.IsOpen = False Then SerialPort1.Open()

‘Tulis data ke dalap Port
SerialPort1.Write(TextBox1.Text & vbCr)

‘Pause untuk 800ms
System.Threading.Thread.Sleep(800)

‘saat port terbuka,langsung di tutup
If SerialPort1.IsOpen = True Then SerialPort1.Close()

‘saat buffer tidak ada data maka end sub
If rxBuff = “” Then GoTo ends

‘tampilakn data ke RichTextBOx
RichTextBox1.Text = rxBuff

ends:
End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

If SerialPort1.IsOpen = False Then
SerialPort1.PortName = ComboBox1.Text
Else : MsgBox(“Operation only valid when port is closed.”, MsgBoxStyle.Exclamation, “Error”)

End If

RichTextBox1.Clear()
End Sub

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

System.Threading.Thread.Sleep(300)

rxBuff = (SerialPort1.ReadExisting)

End Sub

End Class