• Tidak ada hasil yang ditemukan

BAB II. Dasar Teori

2.1.2 Pemrograman Visual Basic 6.0

Dalam pembuatan program dengan Visual Basic 6.0, digunakan dua tipe kode sumber, yaitu form untuk meletakkan kontrol, fungsi dan variabel dan module terdapat prosedur/fungsi dan variabel [2]. Kode merupakan milik dari objek yang disisiplan kode. Objek atau kontrol lainnya tidak dapat menggunakan kode yang bukan menjadi miliknya. Jika blok kode akan digunakan bersama, maka kode tersebut diletakkan di luar kontrol. Blok kode disebut juga dengan prosedur atau fungsi. Selain fungsi yang dapat dibuat

sendiri, Visual Basic 6.0 juga telah menyediakan banyak sekali fungsi – fungsi yang siap pakai. Fungsi ini dapat dipakai hanya dengan memanggil nama fungsi tersebut beserta argumennya yang harus dilewatkan. Print dan InputBox merupakan salah satu contoh fungsi yang disediakan oleh Visual Basic 6.0 yang sering dipakai. Pada pemrograman

Visual Basic 6.0 terdapat kontrol seperti If….Then….Else, Select….Case, Do….Loop, For….Next, GoTo dan Exit yang memudahkan dalam membuat suatu program. Selain itu pada pemrograman Visual Basic 6.0 juga telah tersedia beberapa operator yang dapat digunakan yaitu operator matematik, operator perbandingan dan operator logika.

2.1.2.1 Variabel

Dalam melakukan pemrograman akan selalu memerlukan tempat penyimpanan data, misalnya untuk menampung data hasil perhitungan, menampung data hasil pembacaan register, atau lainnya. Tempat penyimpanan itu dinamakan Variabel yang merupakan pointer yang menunjuk pada alamat memori fisik tertentu di komputer.

a. Tipe Data dan Deklarasi Variabel

Tabel 2-1. Tipe data pada Visual Basic 6.0 [2] Tipe Data Ukuran Byte Range

Integer 2 byte -32.768 sampai 32.767

Long Integer 4 byte -2.147.483.648 sampai 2.147.483.647 Single-precision

floating point

4 byte -3,402823 E38 sampai 3,402823 E38 Double-precision

floating point

8 byte -1,79769313486232 D308 sampai 1,79769313486232 D308

Currency 8 byte -922337203685477,5808 sampai

922337203685477,5807 String 1 byte per karakter 0 sampai 65.535

Boolean 2 byte True atau False

Date 8 byte 1 januari 100 sampai 31 Desember 9999

Byte 1 byte 0 sampai 255

Variant 16 byte untuk angka, 22 byte + 1 byte per karakter untuk string

Semua tipe data

Nama Variabel menunjuk pada suatu tempat dalam memori komputer, sedangkan tipe data mengontrol besarnya memori yang disediakan untuk variabel tersebut.

Berkut ini adalah tipe data pada Visual Basic 6.0 beserta ukuran byte dan range

tipe data tersebut. Tipe data ditunjukkan pada tabel 2-1.

Pada Visual Basic 6.0 terdapat dua cara untuk mendeklarasikan sebuah variabel, yaitu dengan cara deklarasi eksplisit dan deklarasi implisit. Deklarasi eksplisit menggunakan pernyataan “DIM” diikuti nama dan tipe datanya, sedanglan deklarasi implisit menggunakan simbol di belakang nama variabel yang merepresentasikan tipe data yang digunakan.

Contoh penggunaan deklarasi eksplisit:

Dim Nama As String

Dim Angka As Integer

Pada Deklarasi implisit digunakan simbol yang merepresentasikan tipe data yang digunakan. Tabel 2-2 adalah tabel simbol yang digunakan dan contoh pemakaiannya.

Tabel 2-2. Deklarasi implisit [2]

Tipe Data Simbol karakter Contoh pemakaian

Integer % Angka%=100

Long Integer & Angka&=2147483647

Single ! Angka!= 2147483647000

Double # Konstanta_Pi#=3.1415926535

Currency @ Saldo@=1000.50

String $ Nama$=”pipit”

2.1.2.2 Kontrol Program

Kontrol program pada Visual Basic 6.0 meliputi kontrol pertimbangan kondisi dan keputusan , kontrol pengulangan serta kontrol penyaluran alternatif. Dan kontrol-kontrol nya adalah sebagai berikut:

a. If……Then

Pernyataan ini adalah untuk mentes suatu kondisi tertentu dan kemudian menentukan suatu tindakan jika kondisi tersebut di penuhi. Sentak penulisan:

If <syarat kondisi> Then <Pernyataan>

Bisa juga, jika menggunakan multiple-line, sebagai berikut:

If <syarat kondisi> Then

<pernyataan kedua> • • <pernyataan ke-n> End If b. If…..Then…..Else

Pernyataan ini hampir sama dengan pernyataan If…Then, yaitu digunakan untuk mentes kondisi tertentu. Hanya saja, jika suatu kondisi tidak terpenuhi, maka alur program akan mengeksekusi pernyataan yang lain. Berikut sentak

penggunaanya:

If <syarat kondisi 1> Then

<blok Pernyataan pertama>

ElseIf <syarat kondisi 2> Then

<blok Pernyataan kedua> •

ElseIf <syarat kondisi n> Then

<blok Pernyataan ke-n>

Else

<blok Pernyataan >

End If

c. Select …. Case

Pada dasarnya perintah ini sama dengan perintah If …. Then …. Else, yaitu akan mengeksekusi satu blok pernyataan dari beberapa pilihan blok pernyataan. Hanya saja penulisannya lebih ringkas dan lebih mudah dimengerti. Sentak penulisannya adalah sebagai berikut:

Select Case <kondisi yang diuji>

Case <syarat kondisi 1>

<blok pernyataan pertama>

Case <syarat kondisi 2>

• •

Case Else

<blok pernyataan ke-n>

End Select

d. Do …. Loop

Perintah Do …. Loop digunakan untuk perulangan suatu blok pernyataan sampai dipenuhi syarat kondisi yang ditetapkannya. Sentak penulisannya adalah sebagai berikut:

Do While <syarat kondisi> <blok pernyataan>

Loop

e. For …. Next

Perintah ini sama dengan melakukan perulangan seperti perintah Do …. Loop, tetapi dengan For …. Next bisa ditentukan nilai awal dan nilai akhir perulangan serta nilai kenaikannya. Sentak penggunaanya adalah sebagai berikut:

For <nama_variabel> = <nilai_awal> To

<nilai akhir> [Step <nilai_kenaikan>]

<blok pernyataan>

Next [<nama_variabel>]

f. GoTo

Perintah GoTo digunakan untuk melakukan percabangan ke suatu baris label tertentu. Dengan perintah GoTo, program dapat langsung melompat ke baris tertentu sehingga kode-kode program yang dilewatinya tidak akan dieksekusi. Sentak penulisannya adalah sebagai berikut:

GoTo <nama_label>

<blok pernyataan> <nama_label>:

Biasanya perintah GoTo digunakan bersama dengan perintah On Error untuk menangani error, yaitu untuk memerintahkan program melompat ke baris

tertentu jika ditemui error. Error dapat terjadi karena kesalahan logika program kita, kesalahan perhitungan (misal pembagian dengan nol), kesalahan yang disebabkan oleh perangkat keras, maupun kesalahan lainnya. Penanganan error dalam programan adalah sangat penting karena error dapat menyebabkan program berhenti dan dapat menyebabkan komputer menjadi hang. Sentak penulisannya adalah sebagai berikut:

On Error GoTo <nama_label> <blok pernyataan>

<nama_label>: g. Exit

Perintah exit digunakan untuk keluar secara langsung dari blok program For …. Next, Do …. Loop, Sub Procedure, atau Function Procedure. Sentak

penulisannya adalah sebagi berikut:

f. Exit Do, digunakan untuk keluar dari blok program Do …. Loop g. Exit For, digunakan untuk keluar dari blok program For …. Next h. Exit Sub, digunakan untuk keluar dari sub procedure

i. Exit Function, digunakan untuk keluar dari Function Procedure 2.1.2.3 Prosedur

Blok-blok komponen yang lebih kecil dari pecahan program disebut prosedur. Prosedur sangat berguna dalam penggunaan tugas yang sama secara berulang-ulang. Dengan prosedur akan lebih mudah men-debug program karena dapat melakukan pengujian per prosedur.

a. Sub Procedure

Sub Procedure adalah blok kode yang dijalankan sebagai tanggapan atas terbentuknya even, baik even itu merupakan even pemanggilan dari prosedur lain maupun even yang yang terjadi dari pemakaian program, misal even penekanan tombol kiri mouse. Sentak penulisannya adalah sebagai berikut:

[private/public] [Static] Sub

<nama_prosedur> (argumen) <blok pernyataan>

b. Function Procedure

Function Procedure sebenarnya hampir sama dengan sub procedure, tetapi Function Procedure ini akan mengembalikan nilai tertentu setelah pemanggilannya. Sentak penilisannya adalah sebagai berikut:

[private/Public] [Static] Function

<nama_prosedur> (argumen) [As tipe data]

<blok pernyataan>

End sub

Ada beberapa fungsi disediakan oleh Visual Basic 6.0 yang sering digunakan dalam pemrograman, antara lain:

1. Fungsi-fungsi Manipulasi String

Tabel 2-3. Fungsi-fungsi Manipulasi String [2]

Nama fungsi Keterangan Contoh penggunaan Len Menentukan panjang sebuah string Len (“Pipit”)

Menghasilkan 5 Ucase Mengubah huruf string menjadi huruf

besar.

Ucase (“Pipit”)

Menghasilkan “PIPIT” Lcase Mengubah huruf string menjadi huruf

kecil.

Len (“PIPIT”)

Menghasilkan “pipit” Right Menghasilkan karakter yang dihitung

dari sisi kanan string.

Right (“abcdefg”,3) Menghasilkan “efg” Left Menghasilkan karakter yang dihitung

dari sisi kiri string.

Left (“abcdefg”,3) Menghasilkan “abc” Mid

Menghasilkan karakter yang dihitung dari tengah-tengah string dimulai dari titik awal tertentu.

Mid (“abcdefg”,3,3) Menghasilkan “cde” String Mengulangi karakter string String (3,”a”)

Menghasilkan “aaa” Asc Menghasilkan kode ASCII tertentu. Asd (“A”)

Menghasilkan 65 Chr Menghasilkan karakter untuk kode

ASCII.

Chr $ (65) Menghasilkan “A” Trim Menghasilkan karakter dengan

menghilangkan karakter space-nya.

Trim$(“ <a> ”) Menghasilkan “<a>” Str Menghasilkan karakter yang

mempresentasikan angka numerik.

Str$(-12.34)

Menghasilkan “-12.34” InStr Mencari titik awal dari sebuah string

dalam string besar.

InStr (“abcdf”, “cd”) Menghasilkan 3 Val Menghasilkan angka numerik yang

terkandung dalam string.

Val (“12.34abcde”) Menghasilkan 12,34

Fungsi-fungsi dalam kelompok menipulasi string ini biasa digunakan untuk tugas-tugas yang berhubungan dengan pemrosesan string. Pada tabel 2-3 merupakan fungsi-fungsi tersebut dan contoh penggunaannya. 2. Fungsi-Fungsi Konversi Data

Fungsi-fungsi dalam kelompok konversi data ini biasa digunakan untuk konversi data.

Tabel 2-4. Fungsi-fungsi Konversi Data [2] Nama

fungsi Keterangan Contoh Penggunaan CInt

Mengembalikan nilai integer dan membulatkan pecahan ke integer tertinggi.

Cint (“12.34”) ‘Menghasilkan 12 CStr Mengembalikan nilai string. CStr (12.34)

‘Menghasilkan “12,34” Cbyte Mengembalikan nilai byte, nilai

maksimumnya adalan 255.

Cbyte (“12.5”) ‘Menghasilkan 13 Fix

Memotong bagian fraksial, tetapi untuk bilangan negatif akan mengembalikan nilai yang lebih besar atau sama dengan bilangan tersebut. Fix (1.23) ‘Menghasilkan 1 Fix (-1.23) ‘Menghasilkan –1 Int

Memotong bagian fraksial, tetapi untuk bilangan negatif akan mengembalikan nilai yang lebih kecil atau sama dengan bilangan tersebut. Int (1.23) ‘Menghasilkan 1 Int (-1.23) ‘Menghasilkan –2 Hex

Mengembalikan nilai heksa-desimal dari nilai numerik yang dilewatkan.

Hex (10) ‘Menghasilkan “A”

2.1.2.4 Operator

Operator digunakan pada Visual Basic 6.0 untuk memanipulasi data maupun untuk melakukan perhitungan. Operator pada Visual Basic 6.0 dapat dikelompokkan menjadi tiga kelompok, yaitu operator matematik, operator perbandingan dan operator logika. Berikut adalah tabel operator-operator tersebut berdasarkan pengelompokannya.

a. Operator Matematik

Operator matematik digunakan untuk meakukan operasi perhitungan matematik. Dalam Visual Basic 6.0, jika suatu ekspresi mempunyai operator lebih dari satu kategori, maka operator matematik yang akan dievaluasi lebih dahulu dilanjutkan dengan operator perbandingan, dan yang terakhir operator logika. Tabel 2-5 adalah operator matematik dimulai dari hirarki paling tinggi ke paling rendah.

Tabel 2-5. Operator Matematik [2]

Operator Operasi Contoh Pemakaian ^ Pemangkatan Nilai%=2^2 ‘Menghasilkan 4

- Tanda Negatif Nilai%=-5

‘Menghasilkan angka –5

*,/ Perkalian dan pembagian Nilai%=(2*6)/4 ‘Menghasilkan 3 \ Pembagian integer Nilai%=10\3 ‘Menghasilkan 3 Mod Modulus (sisa pembagian) Nilai%=10 mod 3

‘Menghasilkan 1 +,- Penambahan dan pengu

rangan

Nilai%=10+3-2 ‘Menghasilkan 11 & Penggabungan string Teks$=”ab”&”cd”

‘Menghasilkan “abcd” b. Operator Perbandingan

Operator perbandingan digunakan untuk membandingkan suatu ekspresi dengan ekspresi lain yang mengasilkan nilai boolean (False atau True). Tabel 2-6 adalah operator perbandingan pada Visual Basic 6.0.

Tabel 2-6. Operator Perbandingan [2]

Operator Operasi Contoh Pemakaian

= Sama dengan Nilai = (2+1) = 3 ‘Menghasilkan True <> Tidak sama dengan Nilai = (2+1) <> 3‘Menghasilkan False

< Lebih kecil Nilai = 1 < 2 ‘Menghasilkan True > Lebih besar Nilai = 1 > 2 ‘Menghasilkan False <= Lebih kecil atau sama dengan Nilai = 1 <= 2 ‘Menghasilkan True >= Lebih besar atau sama dengan Nilai = 1 >= 2 ‘Menghasilkan False Like Mempunyai ciri yang sama

Nilai = “abba” Like “a*” ‘True Nilai = “abba” Like “a??a” ‘True Nilai = “abba” Like “a?a” ‘False Nilai = “a” Like “[a-z]” ‘True

Sentak penggunaannya adalah sebagai berikut.

result = <ekspresi1> operator_perbandingan

<ekspresi2>

result = <objek1> Is <objek2> result = <string> Like <pattern> c. Operator Logika

Operator logika digunakan untuk mengekspresikan satu atau lebih ekspresi logika yang akan menghasilkan nilai boolean. Tabel 2-7 adalah operator logika dimulai dari hirarki paling tinggi ke paling rendah beserta tabel kebenarannya.

Tabel 2-7. Operator Logika [2]

Tabel Kebenaran Operasi Operator Keterangan

Operan Hasil Not True False Not

Akan menghasilkan nilai kebalikan dari nilai ekspresi

operan. Not False True

True And True True True And False False False And True False And

Akan menghasilkan nilai True hanya jika ekspresi operan keduanya bernilai

logika True. False And False False True Or True True True Or False True False Or True True Or

Akan menghasilkan nilai True jika salah satu ekspresi operannya bernilai logika

True. False Or False False

True Xor True False True Xor False True False Xor True True Xor

Akan menghasilkan nilai True jika ekspresi operannya bernilai logika berbeda.

False Xor False False True Eqv True True True Eqv False False False Eqv True False Eqv

Akan menghasilkan nilai True jika ekspresi operannya bernilai logika sama.

False Eqv False True True Imp True True True Imp False False False Imp True True Imp

Akan menghasilkan nilai False jika ekspresi operan sebelah kiri operator bernilai logika True dan sebelah

2.2 Port Serial

Dikenal dua cara komunikasi data secara serial, yaitu komunikasi data serial secara sinkron dan komunikasi data serial secara asinkron [2]. Pada komunikasi data serial sinkron, clock dikirimkan bersama-sama dengan data serial, sedangkan komunikasi data serial secara asinkron, clock tidak dikirimkan bersama data serial, tetapi dibangkitkan secara sendiri-sendiri baik pada sisi pengirim (transmitter) maupun pada sisi penerima (receiver). Pada IBM PC kompatibel port serialnya termasuk jenis asinkron. Komunikasi data serial ini dikerjakan oleh UART (Universal Asynchronous Reciver/Transmitter). IC UART dibuat khusus untuk mengubah data paralel menjadi data serial dan menerima data serial yang kemudian diubah kembali menjadi data paralel. IC UART 8250 dari Intel merupakan salah satunya. Selain berbentuk IC mandiri, berbagai maecam mikrokontroler ada yang dilengkapi UART, misalnya keluarga mikrokontroler MCS51 (termasuk AT89C2051).

Pada UART, kecepatan pengiriman data (baud rate) dan fase clock pada sisi Tx dan pada sisi Rx harus sinkron. Untuk itu diperlukan sinkronisasi antara Tx dan Rx. Hal ini dilakukan oleh bit ‘Start’ dan bit ‘Stop’. Ketika saluran pengirim dalam keadaan kondisi nol, keluaran UART adalah dalam keadaan logika ‘1’. Ketika Tx ingin mengirimkan data, output UART akan diset lebih dahulu ke logika ‘0’ untuk waktu satu bit. Sinyal ini pada Rx akan dikenali sebagai sinyal ‘Start’ yang digunakan untuk mensinkronkan fase clocknya sehingga sesuai dengan fase clock Tx. Selanjutnya, data akan dikirimkan secara serial dari bit paling rendah (bit0) sampai bit tertinggi (bit7). Selanjutnya, akan dikirim sinyal ‘Stop’ sebagai akhir dari pengiriman data serial. Cara pemberian kode data yang disalurkan tidak ditetapkan secara pasti. Berikut adalah contoh pengiriman huruf ‘A’ dalam format ASCII (41 heksa/1000001 biner) tanpa bit paritas.

5V 0V S T A R T 1 0 0 0 0 0 1 0 S T O P

Kecepatan transmisi (baud rate) dapat dipilih bebas dalam rentang tertentu. Baud rate yang umumnya dipakai adalah 110, 135, 150, 300, 600, 1200, 2400, dan 9600 (bit/detik). Dalam komunikasi data serial, baud rate dari kedua alat yang berhubungan harus diatur pada kecepatan yang sama. Selanjutnya harus ditentukan panjang data (6, 7 atau 8 bit), paritas (genap, ganjil atau tanpa paritas), dan jumlah bit ‘Stop’ (1, 1½ , atau 2 bit).

Dokumen terkait