You are on page 1of 128

PROYEK AKHIR

PEMBUATAN SISTEM OTOMATISASI PEMESANAN


MAKANAN PADA RESTORAN CEPAT SAJI
DENGAN MENGGUNAKAN MIKROKONTROLLER

Adib Karisma Putra


NRP. 7203 030 016

Dosen Pembimbing :

Akuwan Saleh, SST


NIP. 131 831 467

JURUSAN TEKNIK TELEKOMUNIKASI


POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
S U R A B A Y A 2006
PEMBUATAN SISTEM OTOMATISASI PEMESANAN
MAKANAN PADA RESTORAN CEPAT SAJI DENGAN
MENGGUNAKAN MIKROKONTROLLER

Oleh:

ADIB KARISMA PUTRA


7203.030.016

Proyek Akhir ini Diajukan Sebagai Salah Satu Syarat Untuk


Memperoleh Gelar Ahli Madya (A.Md.)
di
Politeknik Elektronika Negeri Surabaya
Institut Teknologi Sepuluh Nopember Surabaya

Disetujui oleh
Tim Penguji Proyek Akhir: Dosen Pembimbing:

1.Ir. Anang Budikarso, MT 1.Akuwan Saleh, SST


NIP. 131 793 744 NIP. 131 831 467

2.I Gede Puja Astawa, ST, MT


NIP. 132 102 837

3.Ir. Sulistyo MB.


NIP. 131.651.429

Mengetahui:
Ketua Jurusan Telekomunikasi

Drs. Miftahul Huda, MT


NIP. 132 055 257

ii
ABSTRAK

Sistem pelayanan restaurant di era modern ini masih


menggunakan sistem manual. Dalam proyek akhir ini akan menyajikan
penggunaan modul sistem minimum Mikrokontroller AT89S51untuk
perancangan dan pembuatan sistem minimum untuk pemesanan menu
pada meja konsumen. Microsoft Access digunakan sebagai database
dan Visual Basic 6.0 difungsikan untuk form pemanggil data data dari
Microsoft Access dengan memanfaatkan fasilitas Visual Data Manager
yang ada di Visual Basic 6.0.
Masukan dari meja makan yang berisikan kode menu dan
jumlah menu. Akan ditampilkan pada LCD dan dengan menggunakan
komunikasi serial RS 232 DB9, data akan dikirimkan dari mikroprosesor
ke PC bagian dapur selanjutnya ditransfer ke PC kasir dengan
menggunakan komunikasi yang sama.
Kata kunci : Mikrokontroller AT89S51, LCD, Keypad,
Visual Basic 6.0, Microsoft Acces

iii
ABSTRACT

The restaurant service system in this modern era stills use the
manual system. In this Preface Of The Final Project Paper present using
of Microcontroller AT89S51 in designing and making of minimum
system for ordering menu on consumer desk. Microsoft Access used a
database and Visual Basic 6.0 functioned for the form of caller of data
from Microsoft Access by exploiting Visual Data Manager facility exist
in Visual Basic 6.0.
Input from the table about the codes of food will be show to the
LCD. This information from the table about the codes of food will be
show to the LCD. This information from the table will be sent with RS-
232 DB9 to PC Kitchen hereinafter transferred to PC cashier by using
same communication.

Keywords : Microcontroller AT89S51, LCD, Keypad, Visual Basic


6.0, Microsoft Access

iv
KATA PENGANTAR

Assalamu’alaikum Wr. Wb.

Alhamdulillah, segala puji hanya milik ALLAH yang


memiliki apa yang ada di langit dan di bumi. Dialah yang
mempunyai segala ilmu dan karena limpahan kasih sayang, karunia,
petunjuk, dan bimbingan-NYA kami dapat menyelesaikan Proyek
Akhir ini dengan baik yang berjudul
“Pembuatan Sistem Otomatisasi Pemesanan Makanan
pada Restoran Cepat Saji Dengan Menggunakan
Mikrokontroller”
Dalam menyelesaikan proyek akhir ini kami berpegang pada
teori yang pernah kami peroleh serta bimbingan dari dosen
pembimbing. Dan juga kepada pihak-pihak lain yang telah sangat
membantu hingga sampai terselesainya proyek akhir ini.
Kami menyadari bahwa masih banyak kekurangan dalam
hasil pembuatan proyek akhir ini. Segala saran dan kritik sangat
diharapkan untuk memberikan yang terbaik guna pengembangan
lebih lanjut ke arah yang lebih baik. Dan semoga buku ini dapat
memberikan manfaat bagi para mahasiswa politeknik elektronika
negeri Surabaya pada umumnya dan dapat memberikan nilai lebih
untuk para pembaca pada khususnya.

Wassalamu’alaikum Wr. Wb.

Surabaya, Agustus 2006

Penulis

v
UCAPAN TERIMA KASIH

Pada kesempatan yang membahagiakan ini, penulis ingin


mengucapkan terima kasih kepada semua pihak yang telah membantu
penulis dalam menyelesaikan Proyek Akhir ini.
1. Allah SWT, Alhamdulillahirrabbil Alamin atas segala berkah,
rahmat, karunia dan pertolongan-Nya yang tiada henti yang
diberikan kepada semua hamba-Nya, dan semua petunjuk-Nya
yang kadang tak sanggup dilihat.
2. Shalawat serta salam tercurah selalu kepada junjungan besar
Nabi Muhammad SAW yang mengajarkan kebenaran-
kebenaran hakiki.
3. Bapak, Ibu, dan Kakakku tercinta, terima kasih atas semua
cinta, kasih sayang, doa dan dukungan yang terus-menerus
mengalir. Semoga saya selalu menjadi anak yang shaleh dan
berbakti.
4. Dr. Titon Duthono, M.Eng, selaku direktur Politeknik
Elektronika Negeri Surabaya - Institut Teknologi sepuluh
Nopember.
5. Bapak Drs. Miftahul Huda, MT, selaku ketua jurusan Teknik
Telekomunikasi Politeknik Elektronika Negeri Surabaya.
Terima kasih telah membimbing kami dengan penuh kesabaran
dan atas semua yang bapak berikan kepada kami.
6. Bapak Akuwan Saleh selaku Dosen Pembimbing yang telah
meluangkan waktu, pikiran dan tenaga serta dengan sabar
membimbing kami juga memberikan fasilitas hingga
terselesaikannya Proyek akhir ini.
7. Adik adikku tercinta, terima kasih atas motivasi, doa dan
dukungan kalian.
8. Semua teman-teman dari berbagai jurusan dan angkatan tahun
2003 yang ikut membantu dalam penyelesaian Proyek Akhir
ini.
Serta banyak pihak lain yang tidak dapat disebutkan satu
persatu. Semoga semua amal kebaikan diterima ALLAH SWT dan
mendapatkan balasan yang tinggi disisi ALLAH SWT. Akhir kata,

vi
penulis berharap semoga Proyek Akhir ini dapat memberikan manfaat
dan tambahan ilmu bagi pembaca. Amin

Surabaya, Agustus 2006

Penulis

vii
DAFTAR ISI

JUDUL…………………………………………………………….. i
PENGESAHAN ………………………………..……………….... ii
ABSTRAK………………………………………………………… iii
ABSTRACT…...…………………………………………………... iv
KATA PENGANTAR..……………………………………………. v
UCAPAN TERIMA KASIH………………………………………. vi
DAFTAR ISI.…………………………………………………..….. viii
DAFTAR GAMBAR ……………………………………………... xi
DAFTAR TABEL ………………………………………………… xiii
BAB 1 PENDAHULUAN…..…………………………………… 1
1.1. LATAR BELAKANG……………...…………………. 1
1.2. PERUMUSAN MASALAH………..………………... 1
1.3. BATASAN MASALAH….………..………………… 1
1.4. METODOLOGI ………………………………………. 2
1.5. SISTEMATIKA PEMBAHASAN ……………….…… 3
1.6 TUJUAN DAN MANFAAT...………………………… 3
1.7 RELEVANSI ................................................................. 4
BAB 2 TEORI PENUNJANG…………………………….……... 5
2.1. Umum………………………......................................... 5
2.2 Mikrokontroller AT89S51 5
2.1.1 Struktur Memori …………………………………… 8
2.3 Komunikasi Data Serial ……………………………………... 9
2.3.1. Metode Komunikasi ................................................. 9
2.3.1.1 Mode Komunikasi Simplex ..................... 9
2.3.1.2 Mode Komunikasi Half Duplex .............. 10
2.3.1.3 Mode komunikasi Full-Duplex ................ 10
2.3.2 Format data komunikasi serial .................................. 10
2.3.2.1 Kecepatan mobilisasi data per bit ............ 11
2.3.2.2 Jumlah bit data per karakter ..................... 11
2.3.2.3 Parity bit .................................................. 11
2.3.3 Konfigurasi Port Serial ……………………………. 11
2.3.4 Komunikasi serial pada Mikrokontroller ………….. 13
2.3.5 Konektor Interface RS-232 ....................................... 14
2.3.6 IC serial MAX 232 .................................................... 15
2.3.7 Pengaksesan dengan menggunakan control
16
MSComm …………………………………………

viii
2.4 Pemrograman Dan Database VISUAL BASIC 6.0 ................. 16
2.4.1 Pendahuluan .............................................................. 16
2.4.2 Dasar Teori Visual Basic 6.0 .................................... 16
2.4.2.1 Pemakaian Komponen ............................. 17
2.4.2.1a Menu ........................................ 17
2.4.2.1b Toolbar Standart ...................... 18
2.4.2.1c Tool Box .................................. 19
2.4.2.1d Form ........................................ 20
2.4.2.1e Project Explorer ....................... 22
2.4.2.1f Propertise ................................ 22
2.4.2.2 Database ................................................... 23
2.4.2.2a Membuat Database .................. 24
2.4.2.2b Memodifikasi database ............ 27
2.4.2.2c Menambah index data ............. 28
2.4.2.2d Mengaitkan Data ke dalam
30
Form ........................................
2.5 Pemrograman Bahasa C ............................................................. 32
2.5.1 Pendahuluan .............................................................. 32
2.5.2 Alasan Penggunaan Bahasa C .................................. 33
2.5.3 Pengenalan Sintaks Bahasa C ................................... 33
2.5.3.1 Keyword #include .................................... 33
2.5.3.2 Keyword #define ..................................... 34
2.5.3.3 Keyword #if.............................................. 34
2.5.3.4 Keyword #ifdef ........................................ 34
2.5.3.5 Keyword #ifndef ..................................... 35
2.5.3.6 Keyword #endif ...................................... 35
2.5.3.7 Keyword #undef ...................................... 35
2.5.3.8 Keyword #else ......................................... 35
2.5.4 Perintah Perintah Dalam Bahasa C ........................... 35
2.5.4.1 Compiler .................................................. 35
2.5.4.2 Pernyataan ............................................... 36
2.5.4.3 Variabel ................................................... 36
2.5.4.4 Operator ................................................... 37
2.5.4.5 Percabangan ............................................. 37
2.5.4.6 Perulangan ............................................... 38
2.5.4.7 Fungsi untuk Input dan Output ................ 38
2.5.4.8 Pointer dan Array ..................................... 39
BAB 3 PERENCANAAN DAN PEMBUATAN ALAT …………. 41
3.1 Umum …………………………………………………………. 41
3.2 Perencanaan Sistem Kerja .......................................................... 41

ix
3.3 Perancangan Perangkat Keras ………………………………… 43
3.3.1Perancangan dan Pembuatan Antar Muka
44
(Interfaces) Dengan Mikrokontroller AT89S51 …..
3.3.2 Rangkaian Keypad ………………………………… 45
3.3.3 Rangkaian LCD …………………………………… 48
3.3.4 Pembuatan Perangkat Keras Downloader
51
Mikrokontroller AT89S51 ………………………..
3.3.5 Konektor RS 232 …………………………………... 52
3.4 Konversi Data …………………………………………………. 52
3.5 Perencanaan Database ………………………………………… 52
3.6 Perencanaan Program C pada Mikrokontroller ……………….. 56
BAB 4 PENGUJIAN DAN ANALISA ............................................ 59
4.1 Tujuan ......................................................................................... 59
4.2 Pengujian Database …………………………………………… 59
4.3 Proses Penulisan dan Kompile program ………………………. 60
4.4 Proses Download ke dalam Mikrokontroller ………………….. 62
4.5 Pengujian Perangkat Keras ……………………………………. 63
4.5.1 Pengujian Hubungan antara Keypad dengan LCD
63
dan PC Dapur …………………………………….
4.5.2 Keypad …………………………………………….. 66
4.5.3 Tampilan pada LCD ……………………………….. 66
4.5.4 Tampilan Pada PC Dapur ………………………….. 67
4.5.5 Pengujian Hubungan Minimum Sistem Dengan PC
67
(Serial) …………………………………………….
BAB 5 PENUTUP…………………………………………………. 71
5.1 Kesimpulan ……………………………………………………. 71
5.2 Saran …………………………………………………………... 71
DAFTAR PUSTAKA ……………………………………………... 73
LAMPIRAN
RIWAYAT HIDUP

x
DAFTAR GAMBAR

Gambar 1.1 Blok Diagram Sistem Pemesanan ............................... 2


Gambar 2.1 Konfigurasi Pin Mikrokontroller AT89S5 ………….. 8
Gambar 2.2 Struktur Memori AT89S51 ......................................... 10
Gambar 2.3 Hubungan Simplex …………………………………. 11
Gambar 2.4 Hubungan Half-duplex ……………………………... 12
Gambar 2.5 Hubungan Full-Duplex ……………………………... 12
Gambar 2.6 Konektor serial DB-9 pada bagian belakang CPU ..... 14
Gambar 2.7 Koneksi RS-232 pada mikrokontroller dan PC .......... 16
Gambar 2.8 Level tegangan RS-232 pada pengiriman huruf ‘A’ 16
tanpa bit paritas .........................................................
Gambar 2.9 Interface ICL 232 ....................................................... 17
Gambar 2.10 Menu di dalam Visual Basic 6.0 ............................... 19
Gambar 2.11 Tool tool standart pada Visual Basic 6.0 ………….. 20
Gambar 2.12 Tool Box didalam Visual Basic 6.0 .......................... 21
Gambar 2.13 Tampilan Tool Box didalam Form Visual Basic 6.0 22
Gambar 2.14 Tombol Eksekusi Program ........................................ 23
Gambar 2.15 Tampilan Saat Dieksekusi ........................................ 23
Gambar 2.16 Tampilan Jendela Project .......................................... 24
Gambar 2.17 Tampilan Jendela Properties ..................................... 25
Gambar 2.18 Membuat Database ................................................... 26
Gambar 2.19 Menentukan Nama Database .................................... 27
Gambar 2.20 Jendela Database ....................................................... 27
Gambar 2.21 Menentukan Struktur Tabel Database ....................... 28
Gambar 2.22 Menambah Filed (kolom) ......................................... 28
Gambar 2.23 Proses Untuk Memodifikasi Database ...................... 29
Gambar 2.24 Menambahkan Index Data Didalam Database .......... 30
Gambar 2.25 Proses Menambah Table Baru Di dalam Database ... 31
Gambar 2.26 Mengaitkan Database ke Dalam Form ...................... 32
Gambar 2.27 Menentukan Properti ConnectionString ................... 33
Gambar 2.28 Menentukan properti RecordSource ......................... 34
Gambar 3.1 Schematic Rangkaian Minimum AT89S51 ………… 44
Gambar 3.2 Flowchart scanning keypad dengan metode polling ... 46
Gambar 3.3 Susunan tombol pada keypad ………………………. 47
Gambar 3.4 Alokasi Pin Pin Pada Keypad ………………………. 47
Gambar 3.5 Schematic Keypd 4x4 ………………………………. 48
Gambar 3.6 Blok Rangkaian LCD ………………………………. 49
Gambar 3.7 Flowchart Subrutin Kirim Data ke LCD ……………. 50

xi
Gambar 3.8 Rangkaian Downloader ISP Flash ………………….. 51
Gambar 3.9 Contoh Program yang dikembangkan ......................... 53
Gambar 3.10 Pembuatan index pada Visual Data Manager ........... 55
Gambar 4.1 Tampilan Form Database Pada PC Kasir …………... 59
Gambar 4.2 Tampilan Form Database Pada PC Dapur ………….. 60
Gambar 4.3 Contoh Tampilan Ride51 …………………………… 61
Gambar 4.4 ISP - Flash Programmer Version 3.0a ……………… 62
Gambar 4.5 Tampilan PC Dapur setelah menerima inputan dari 67
Mikrokontroller …………………………………….
Gambar 4.6 Tampilan pada hyperterminal yang bersamaan 69
dengan dinyalakannya rangkaian Minimum Sistem .

xii
DAFTAR TABEL

Tabel 2.1 Konfigurasi pin dan nama sinyal konektor serial ........... 12
Table 2.2 Untuk Tool Adodc pada gambar Gambar 2.25 ............... 31
Tabel 3.1 Properti tool Data pada Gambar 3.11………….............. 53

xiii
BAB 1
PENDAHULUAN

1.1 LATAR BELAKANG


Perkembangan ilmu pengetahuan dan teknologi yang sangat
pesat ini merupakan salah satu dampak dari meningkatnya taraf hidup
manusia. Untuk itu setiap manusia menginginkan adanya kemudahan
dan kecepatan dalam memenuhi setiap kebutuhannya. Dalam hal ini,
faktor efisiensi dan efektifitas kerja sangat mempengaruhi terciptanya
upaya tersebut. Oleh karena itu, dikembangkan suatau cara yang mampu
mengatasi gejala gejala dan keinginan tersebut seiring dengan
perkembangan peradaban teknologi saat ini. Salah satu cara
penerapannya adalah dalam bidang rumah makan. Cara konvensional
yang menggunakan jasa manusia untuk meminta menu pesanan dari
pembeli dapat diganti dengan menggunakan alat pemesanan yang
langsung dapat digunakan dari meja pembeli. Sehingga efisiensi dan
efektifitas pelayanan dapat terpenuhi dengan maksimal. Menu pesanan
dari pembeli ini dapat diketahui oleh petugas yang ada di bagian dapur
untuk segera menyiapkan menu menu yang sudah dipesan melalui
sebuah PC.

1.2 PERUMUSAHAN MASALAH


Permasalahan yang ditangani pada pembuatan proyek akhir ini
adalah bagaimana dapat memprogram sebuah mikrokontroller agar bisa
tampil pada LCD dan terkirim secara serial ke PC.
Masalah yang ditangani ialah pembuatan perangkat keras
(hardware) maupun lunak (software) adalah lebih memfungsikan
mikrokontroller AT89S51 dikombinasi dengan bahasa pemrograman C.
Database yang dibuat dengan menggunanakan Visual Basic 6.0.

1.3 BATASAN MASALAH


Dalam tugas akhir ini permasalahan akan dibatasi pada
pembahasan perangkat lunak tentang komunikasi serial antara minimum
sistem Mikrokontroller dengan komputer dapur . dimana hanya terjadi
komunikasi searah saja. Begitu juga untuk komunikasi dapur ke kasir
yang hanya searah.

1
2

Jadi, pada sistem ini apabila menu makanan yang sudah


dipesan telah terkirim ke komputer dapur. Maka, tidak dapat diulang lagi
seandainya pembeli ingin membatalkan pesanan yang telah dikirim ke
PC Dapur.

1.4 METODOLOGI
Untuk langkah langkah pembuatan proyek akhir ini langkah
langkahnya adalah sebagai berikut :
(a) Perancangan Sistem
Perancangan sistem berdasarkan pada petunjuk pengoperasian
(instruction manual) Mikrokontroller tersebut dan dikembangkan
dengan cara menghubungkan fungsi-fungsi Mikrokontroller yang
kemudian dihubungkan dengan PC-PC yang ada.
(b) Pembuatan Perangkat Keras (Hardware)
Hardware untuk Mikrokontroller AT89S51 sudah tersedia di toko
toko elektronik. Yang harus disediakan lainnya untuk tugas akir ini
ialah LCD yang berukuran 6X2 yang nantinya akan dihubungkan
dengan Mikrokontroller sebagai tampilan menu dan keypad 4X4
sebagai inputan.
(c) Perangkat Lunak (Software) pada Mikrokontroller
Pembuatan software pada TA ini dibagi menjadi beberapa bagian
yaitu pembuatan program untuk menampilkan tulisan di LCD.
Instruksi instruksi pada keypad dan program untuk mengoneksikan
antara Mikrokontroller dengan PC dapur yang nantinya akan
diteruska ke PC kasir.
(d) Pembuatan database
Sebagai media penyimpan data , maka diperlukan suatu database
yang nantinya akan dibuka melalui Mikrokontroller di bagian
pelanggan. Disini digunakan Visual Basic 6.0 sebagai database dan
database itu berisi tentang menu menu pesanan beserta harganya.
3

1.5 SISTEMATIKA PEMBAHASAN


Buku laporan proyek akhir ini terdiri dari 5 (lima) bab, dimana
masing-masing bab mempunyai kaitan satu sama lain, yaitu:

BAB I : Pendahuluan
Bab ini berisi tentang uraian latar belakang,
tujuan, permasalahan, batasan masalah,
metodologi dan sistematika laporan.
BAB II : Teori Penunjang
Bab ini berisi tentang teori – teori penunjang
yang dipergunakan dalam penyelesaian
proyek akhir ini.
BAB III : Perancangan Dan Implementasi
Perancangan perangkat lunak disini akan
dibahas masalah perancangan program
komunikasi data serial baik pada
Mikrokontroller maupun pada pada PC.
Sedangkan pada perancangan perangkat keras
akan dibahas tentang pembuatan alat yang
digunakan.
BAB IV : Analisa Dan Pengujian
Bab ini akan dibahas masalah pengujian
perangkat lunak dan perangkat keras serta
komunikasi data serial baik pada komputer
maupun di Mikrokontroller.
BAB V : Kesimpulan
Bab ini berisi tentang kesimpulan dari
pembahasan yang telah ada serta saran –
saran guna pengembangan proyek akhir lebih
lanjut.

1.6 TUJUAN DAN MANFAAT


Tujuan dari proyek akhir ini adalah memfungsikan penggunaan
Mikrokontroller AT89S51dan bahasa pemrograman Visual Basic 6.0
untuk aplikasi pada sebuah sistem keamanan parkir. Dengan lebih
memberdaya-gunakan Mikrokontroller AT89S51 dan bahasa
pemrogaman Visual Basic 6.0 sebagai database dengan cara
mengembangkannya sedemikian rupa, baik pada sisi input dan output
dengan menambah perangkat keras (hardware) dan perangkat lunak
4

(software), sehingga dapat digunakan sebagai alat bantu pada sebuah


restoran cepat saji.

1.7 RELEVANSI
Tugas akhir ini diharapkan bisa dijadikan bahan
pembelajaran untuk dapat mentransfer data antara PC 1 ke PC 2
dan suatu PC dengan sebuah Mikrokontroller. Serta dapat
digunakan sebagai bahan pembelajaran untuk mata kuliah
Mikrokontroller.
.
BAB 2
TEORI PENUNJANG

2.1 Umum
Pada bab ini akan diberikan teori dasar yang melandasi permasa-
lahan dan penyelesaiannya yang diangkat dalam proyek akhir ini. Teori
dasar yang diberikan meliputi: pembuatan database, yang memberikan
definisi dan klasifikasi tentang penyimpanan serta koneksi database
antara Visual Basic dan Microsoft access. Selanjutnya, diberikan tentang
teori komunikasi data serial, pararel, connector interface RS 232,
pengaksesan port serial pada Visual Basic serta komunikasi serial pada
Mikrokontroller AT89S51.

2.2 Mikrokontroller AT89S51


AT89S51 adalah mikrokontroller keluaran Atmel dengan 4K
byte Flash PEROM (Programmable and Erasable Read Only Memory),
AT89S51 merupakan memori dengan teknologi nonvolatile memory, isi
memori tersebut dapat diisi ulang ataupun dihapus berkali-kali. Memori
ini biasa digunakan untuk menyimpan instruksi (perintah) berstandar
MCS-51 code sehingga memungkinkan mikrokontroller ini untuk bekerja
dalam mode single chip operation (mode operasi keping tunggal) yang
tidak memerlukan external memory (memori luar) unruk menyimpan
source code tersebut.

5
6

Gambar 2.1 Konfigurasi Pin Mikrokontroller AT89S51

Deskripsi Mikrokontroller AT89S51:


• VCC (power supply)
• GND (ground)
• Port 0, yaitu pin p0.7..p0.0
Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex
addres/data ataupun menerima kode bye pada saat Flash
Programming. Pada saat sebagai I/O biasa port ini dapat
memberikan output sink ke delapan buah Transistor Transistor
Logic (TTL) input atau dapat diubah sebagai input dengan
memberikan logika 1 pada port tersebut.
• Port 1, yaitu pin p1.0...p1.7
Port 1 berfungsi sebagai I/O biasa atau menerima low order
address bytes selama pada saat Flash Programming. Port ini
mempunyai internal pull updan berfungsi sebagai input dengan
memberikan logika 1. Sebagai output port ini dapat memberikan
output sink keempat buah input TTL. Fasilitas khusus dari port 1
ini adalah adanya In-System Programming, yaitu port 1.5 sebagai
MOSI, port 1.6 sebagai MISO, port 1.7 sebagai SCK.
7

• Port 2, yaitu mulai pin p2.0...p2.7


Port 2 berfungsi sebagai I\O biasa atau high order address, pada
saat mengakses memori secara 16 bit (Movx @DPTR). Pada saat
mengakses memori secara 8 bit (Mov @Rn), port ini akan
mengeluarkan sisi dari Special Function Register. Port ini
mempunyai pull up dan berfungsi sebagai input dengan
memberikan logika 1. Sebagai output, port ini dapat memberikan
output sink keempat buah input TTL.
• Pin 3.0, sebagai RXD (Port Serial Input).
• Pin 3.1, sebagai TXD (Port Seial Output).
• Pin 3.2, sebagai INT0 (Port External Interupt 0).
• Pin 3.3, sebagai INT1 (Port External Interupt 1).
• Pin 3.4, sebagai T0 (Port External Timer 0).
• Pin 3.5, sebagai T1 (Port External Timer 1).
• Pin 3.6, sebagai WR (External Data Memory Write Strobe).
• Pin 3.7, sebagai RD (External Data Memory Read Strobe).
• Pin 9, sebagai RST
Reset akan aktif dengan memberikan input high selama 2 cycle.
• Pin 30, sebagai ALE/PROG
Pin ini dapat berfungsi sebagai Address Latch Enable (ALE) yang
me-latch low byte address pada saat mengakses memori external.
Sedangkan pada saat Flash Programming (PROG) berfungsi
sebagai pulse input. Pada operasi normal ALE akan mengeluarkan
sinyal clock sebesar 1/16 frekwensi oscillator, kecuali pada saat
mengakses memori external. Sinyal clock pada saat ini dapat pula
di disable dengan men-set bit 0 Special Function Register.
• Pin 29, sebagai PSEN
Pin ini berfungsi pada saat mengeksekusi program yang terletak
pada memori eksteranal. PSEN akan aktif dua kali setiap cycle.
• Pin 31, Sebagai EA/VPP
Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu
mikrokontroller akan menjalankan program yang ada pada
memori eksternal setelah sistem di reset. Jika berkondisi high, pin
ini akan berfungsi untuk menjalankan program yang ada pada
memori internal. Pada saat Flash Programming pin ini akan
mendapat tegangan 12 Volt (VPP).
• Pin 19, sebagai XTALL1 (Input Oscillator).
• Pin 18, sebagai XTALL2 (Output Oscillator).
8

2.2.1 Struktur Memori


AT89S51 mempunyai stuktur memori yang terdiri atas :
• RAM Internal, memori sebesar 128 byte yang biasanya
digunakan untuk menyimpan variabel atau data yang bersifat
sementara.
• Special Function Register (Register Fungsi Khusus), memori
yang berisi register-register yang mempunyai fungsi-fungsi
khusus yang disediakan oleh mikrokontroller tersebut, seperti
timer, serial dan lain-lain.
• Flash PEROM, memori yang digunakan untuk menyimpan
instruksi-instruksi MCS51.

Gambar 2.2 Struktur Memori AT89S51

AT89S51 mempunyai struktur memori yang terpisah antara RAM


Internal dan Flash PEROM nya. RAM Internal dialamati oleh RAM
Address Register (Register Alamat RAM) sedangkan Flash PEROM yang
menyimpan perintah-perintah MCS-51 dialamti oleh Program Adderss
Register (Register Alamat Program). Dengan adanya struktur memori
yang terpisah tersebut, walaupun RAM Internal dan Flash PEROM
mempunyai alamat yang sama, yaitu alamat 00, namun secara fisiknya
kedua memori tidak saling berhubungan.
9

2.3 Komunikasi Data Serial


Komunikasi data serial sangat berbeda dengan format
pemindahan data pararel. Disini pengiriman bit bit tidak dilakukan
sekaligus seperti pada saluran pararel, tetapi stiap bit dikirimkan satu per
satumelalui saluran tunggal. Dalam pengiriman data secara serial harus
ada sinkronisasi atau penyesuaian antara pengirim dan penerima agar data
yang dikirimkan dapat diterima dengan tepat dan benar oleh penerima.
Dalam komunikasi secara serial terdapat tiga macammode transmisi
serial dalam mentransmisikan bit bit data yaitu : syncronous, asyncronous
da isochronous. Dalam proyek akhir ini hanya membahas mode transmisi
asyncronous saja yang digunakan.
Transmisi serial mode asyncronous digunakan bila pengiriman
data dilakukan satu karakter tiap pengiriman. Antara satu karakter dengan
karakter lainnya tidak ada waktu antara yang tetap. Karakter dapat
dikirimkan sekaligus ataupun beberapa karakter kemudian berhenti unutk
waktu yang tidak tentu, kemudian dikirimkan sisanya. Dengan demikian
bit bit data ini dikirimkan dengan periode yang acak sehingga pada sisi
penerima data akan diterima kapan saja. Adapun sinkronisasi yang terjadi
pada transmisi serial asinchronous adalah dengan memberikan bit bit
penanda awal dari data dan penanda akhir dari data pada sisi pengirim
maupun dari sisi penerima.

2.3.1. Metode Komunikasi


Metode yang dimaksud adalah

2.3.1.1 Mode Komunikasi Simplex


Pada mode komunikasi simplex ini jalur komunikasi yang
diberikan adalah satu arah seperti yang ditunjukkan gambar dibawah.
Dalam komunikasi pengirim dan penerima adalah permanen, dimana
pada pihak pengirim adalah selalu mengirim data, dan pihak penerima
adalah selalu menerima data.

Pengirim Penerima

Gambar 2.3 Hubungan Simplex


10

2.3.1.2 Mode Komunikasi Half Duplex


Pada mode komunikasi half-duplex ni komunikasi data
dilakukan dalam dua arah dimana pada masing masing pihak bisa sebagai
penerima atau sebagai pengirim data seperti yang ditunjukkan pada
gambar 2.2. Namun pada mode ini tidak dapat dilakukan secara
bersamaan tetapi secara bergantian atau disebut two way alternative. Jika
slah satu sebagai pengirim maka yang lain adalah sebagai penerima
demikian sebaliknya.

Pengirim Pengirim
Penerima Penerima

Gambar 2.4 Hubungan Half-duplex

2.3.1.3 Mode komunikasi Full-Duplex


Mode komunikasi full duplex dilakukan dalam dua arah yang
terjadi secara bersamaan seperti ditunjukkan pada gambar dibawah ini

Pengirim Pengirim
Penerima Penerima

Gambar 2.5 Hubungan Full-Duplex


2.3.2 Format data komunikasi serial
Dalam teknik komunikasi dara serial dikenal istilah format data
serial. Format data serial ini terdiri dari parameter parameter yang dipakai
untuk menentukan bentuk data serial yang akan dikomunikasikan. Ada
beberapa macam format data serial yang dapat digunakan, dimana elemen
elemennya terdiri dari :
a) Kecepatan mobilisasi data per bit (baut rate).
b) Jumlah bit data per karakter (data length).
c) Pariti yang digunakan.
d) Jumlah stop bit dan start bit.
11

2.3.2.1 Kecepatan mobilisasi data per bit


Laju data serial seringkali dinyatakan dalam satuan baud. Laju
baud dalam kanal komunikasi merupakan laju tercepat dari pemindahan
bit. Laju pemindahan bit kanal jaringan biasanaya lebih rendah dari laju
baud. Keterlambatan tersebut karena bit ekstra ditambahkan untuk
keperluan pewaktuan. Dalam sistem kecepatan tinggi, pemindahan juga
dipelambat oleh tundaan aktif proses pengolahan.
Data serial dapat dimobilisasikan pada beerbagai baud rate.
Baud rate yang digunakan dalam teknik komunikasi data serial null
modem asyncronous adalah 300 bps sampai 19200 bps.

2.3.2.2 Jumlah bit data per karakter


Dalam komunikasi data serial mode asyncronous biasanya
berlangsung transmisi data yang dikemas dalam bentuk karakter. Dalam
satu karakter diperbolehkan terdiri dari beberapa variasi umlah bit. Dari
sekian variasi yang diperbolehkan diantaranya adalah terdiri dari 7 bit dan
8 bit (panjang data karakternya saja). Kedua variasi ini adalah yang paling
sering digunakan dalam komunikasi serial. Tetapi meskipun demikian
tidak menutup kemungkinan jika diinginkan untuk menggunakan variasi
jumlah bit yang lain asalkan masih diperkenankan dalam penulisan
inisialisasi peralatan serial yang bersangkutan.dalam komunikasi serial.
Tetapi meskipun demikian tidak menutup kemungkinan jika diinginkan
untuk menggunakan variasi jumlah bit yang lain asalkan masih
diperkenankan dalam penulisan inisialisasi peralatan serial yang
bersangkutan.

2.3.2.3 Parity bit


Bit parity adalah bit yang digunakan sebagai alat pemeriksaan
kesalahan sederhana dalam proses transmisi data digital. Pemakaian
parity ini akan diikutsertakan dalam proses penulisan inisialisasi
peralatan serial yang bersangkutan. Bit pariti ini akan diletakkan setelah
susunan bit data. Kemungkinan dari jenis pariti ini ada tiga macam , yaitu
pariti ganjil, pariti genap dan tanpa pariti (tidak diikutkan dalam
pemeriksaan kesalahan). Level digital dari.

2.3.3 Konfigurasi Port Serial


Gambar 2.3 adalah ganbar konektor port serial DB-9 pada
bagian belakang CPU. Pada komputer IBM PC kompatibel biasanya kita
dapat menemukan dua konektor port serial DB-9 yang biasa dinamai
COM1 dan COM2.
12

Gambar 2.6 Konektor serial DB-9 pada bagian belakang CPU

Tabel 2.1 Konfigurasi pin dan nama sinyal konektor serial

Nomor Nama
Direction Keterangan
Pin Sinyal
Data Carrier Detect / Received
1 DCD In
Line Sinyal Detect
2 RxD In Receive Data
3 TxD Out Transmit Data
4 DTR Out Data Terminal Ready
5 GND - Ground
6 DSR In Data Set Ready
7 RST Out Request to Send
8 CTS In Clear to Send
9 RI In Ring Indicator

Keterangan mengenai fungsi saluran RS-232 pada konektor DB-9


adalah sebagai berikut:
• Received Line Signal detect, dengan saluran ini DCE
memberitahukan ke DTE bahwa pada terminal masukan ada data
masuk.
• Receive Data, digunakan DTE pada saat menerima data dari DCE.
13

• Transmit Data, digunakan DTE pada saat mengirimkan data ke


DCE.
• Data Terminal Ready, pada saluran ini DTE memberitahukan
kesiapan terminalnya.
• Signal Ground, merupakan saluran ground.
• Ring Indicator, pada saluran ini DCE memberitahu ke DTE bahwa
sebuah stasiun menghendaki hubungan dengannya.
• Clear to Send, dengan saluran ini DCE memberitahukan bahwa
DTE sudah dapat memulai pengiriman data.
• Request to Send, dengan saluran ini DCE diminta mengirim data
oleh DTE.
• DCE Ready, merupakan sinyal aktif yang menunjukkan bahwa DCE
sudah siap.

Pada bab ini akan diberikan teori dasar yang melandasi permasa-
lahan dan penyelesaiannya yang diangkat dalam proyek akhir ini. Teori
dasar yang diberikan meliputi: terminologi antena, yang memberikan
definisi dan klasifikasi tentang antena yang telah berkembang sampai saat
ini. Selanjutnya, diberikan tentang pola radiasi dan faktor array, arti dan
perlunya pembentukan pola radiasi (beamforming), teori resiprositas
(reciprocity), teori tentang antena array untuk konfigurasi linier dan
planar.
Pada bagian lain, diberikan tentang algoritma genetika dan
aplikasi-nya untuk menyelesaian optimasi dalam suatu permasalahan.

2.3.4 Komunikasi serial pada Mikrokontroller


Komunikasi antara PC dengan mikrokontroller adalah komunikasi
serial dimana menggunakan RS-232 sebagai connector interfacenya.
Pada mikrokontroller terdapat parameter-parameter setup window
yang harus di set sesuai dengan parameter MSComm.
Parameter-parameter tersebut antara lain:
1. Transmission Speed : pilih 2400.
2. Data length : pilih 8 bit sebagai bit datanya.
3. Stop bit : pilih 1.
4. Parity check : pilih NONE.
5. Flow control : pilih NONE.
Untuk melakukan pengiriman data ke mikrokontroller maka untuk
RS-232 sebagai connector interfacenya hanya menggunakan 3 pin saja,
yaitu:
14

9 pin 9pin

2RxD 3TxD

3TxD 2RxD

5GND 5GND

4DTR

6DSR

1DCD

7RTS
Mikrokontroller PC
8CTS

Gambar 2.7 Koneksi RS-232 pada mikrokontroller dan PC

2.3.5 Konektor Interface RS-232


Karakteristik dari RS-232 memiliki ketentuan level tegangan
sebagai berikut:
1. Logika ‘1’ disebut ‘mark’ terletak antara -3 Volt hingga -25 Volt.
2. Logika ‘0’ disebut ‘space’ terletak antara +3 Volt hingga +25 Volt.
3. Daerah tegangan antara -3 Volt hingga +3 Volt adalah invalid
level, yaitu daerah tegangan yang tidak memiliki level logika pasti
sehingga harus dihindari. Demikian juga, level tegangan lebih
negative dari -25 Volt atau lebih positif dari +25 Volt juga harus
dihindari karena tegangan tersebut dapat merusak line driver pada
saluran RS-232
Gambar 2.2 berikut ini adalah contoh level tegangan RS-232 pada
pada pengiriman huruf ‘A’ dalam format ASCII tanpa bit paritas.

Gambar 2.8 Level tegangan RS-232 pada pengiriman huruf ‘A’


tanpa bit paritas
15

2.3.6 IC serial MAX 232


Komunikasi serial RS 232 merupakan komunikator yang
menghubungkan antara terminal data dari suatu peralatan dan peralatan
ini menjalankan pertukaran data biner secara serial. Sedangkan IC yang
dipakai untuk komunikasi juga menyediakan pemrosesan data dan
protocol, sedang yang lain berupa interface ke jalur komunikasi secara
fisik. Bagian yang menangani komunikasi dapat dihubungkan dengan
berbagai aplikasi yang berhubungan dengan elektronik, tetapi memiliki
kondisi arus dan tegangan yang tak menentu. IC serial RS 232 dipakai
sebagai interface (antar muka) dari PC ke perangkat luar (level TTL) atau
sebaliknya dari perangkat luar ke PC. Tegangan yang ada pada RS 232
berbeda dengan level tegangan digital. Tegangan RS 232 tersebut antara
+3 volt sampai dengan +25 volt untuk logika “0” dan -3 volt sampai
dengan -25 volt untuk logika “1”. Tegangan yang cukup tinggi ini
mengakibatkan data dapat ditransmisikan cukup jauh.

Gambar 2.9 Interface MAX 232

IC MAX 232 mempunyai 16 kaki dengan supply tegangan sebesar 5


volt. kaki ke-16 digunakan sebagai input tegangan (Vcc), kaki ke-15
sebagai Ground (GND). Kaki 8 dan 13 digunakan sebagai input RS-232,
sedangkan kaki 7 dan 14 sebagai output RS-232. RS-232 merupakan
suatu interface yang digunakan untuk menghubungkan antara terminal
data dari suatu peralatan dan peralatan komunikasi data yang
menjalankan pertukaran data biner secara serial.
16

2.3.7 Pengaksesan dengan menggunakan control MSComm


Kontrol MSComm menyadiakan fasilitas komunikasi antara
program aplikasi yang kita buat dengan port serial untuk mengirim atau
menerima data melalui port serial. Setiap MSComm hanya menangani
satu port serial, kita juga harus menggunakan MSComm sebanyak port
serial yang kita pakai.
Pada kontrol MSComm terdapat parameter-parameter penting yang
harus di set terlebih dahulu agar koneksi ke interface lain dapat dilakukan.
Parameter-parameter tersebut adalah:
CommPort : Untuk menentukan port mana yang akan digunakan.
Setting : Untuk menentukan setting protocol sesuai dengan
parameter device.

2.4 Pemrograman Dan Database VISUAL BASIC 6.0


2.4.1 Pendahuluan
Teknik perangkat lunak merupakan metode dan teknik dalam
membuat menu utama program. Menu utama program berisiskan tentang
semua parameter parameter dara yang digunakan pada program utamanya
dan dapat dilengkapi dengan gambar atau grafik yang menerangkan
kinerja dari sistem.

2.4.2 Dasar Teori Visual Basic 6.0


Visual Basic 6.0 merupakan perangkat pengembangan untuk
menghasilkan program aplikasi yang beroperasi dalam lingkungan
windows. Bahasa pemrograman Visual Basic 6.0 merupakan sebuah
bahasa pemrograman yang tangguh dan canggih dalam hampir semua
aspek. Visual Basic bisa disebut perangkat pengembang yang mampu
dengan mudah dan cepat menghasilkan program aplikasi. Dengan VB 6.0
ini dapat dibangun suatu program aplikasi dalam tatanan GUI maupun
Console. GUI (Graphical User Interface) adalah karakter karakter
program aplikasi yang menggunakan sarana perantara grafis. Seperti
kotak dialog, tombol, menu dan sebagainya. Contoh program GUI adalah
program yang hanya menekankan segi kemampuan kerja, segi
tampilannya kurang diperhatikan, contohnya program DOS. Dengan
Visual Basic 6.0 dapat dengan mudah menyusun sebuah windows yang
mengandung tombol tombol, kotak, cek dan komponen lainnya dengan
mudah.
17

2.4.2.1 Pemakaian Komponen


Komponen adalah suatu kesatuan pembentuk aplikasi yang
digunakan untuk merancang user interface program aplikasi. Komponen
terbagi menjadi dua, yaitu vsiual dan non-visual. Komponen visual
misalnya tombol sedangkan contoh yang non-visual adalah print kotak
dialog. Masing masing komponen memiliki atribut tersendiri dalam
melakukan aksi kendalinya.

2.4.2.1a Menu
Menu merupakan sekumpulan perintah yang dipakai dalam MS
Visual Basic. Berikut merupakan contoh tampilan salah satu menu pada
MS Visual Basic.

Gambar 2.10 Menu di dalam Visual Basic 6.0


18

2.4.2.1b Toolbar Standart


Gambar yang mewakili suatu perintah

Paste Tool Box


Copy
Cut Propertise
Save
Project Explorer
Open
Menu Editor Stop Program/Close
Form
Menambah Form
Menambah Project

Gambar 2.11 Tool tool standart pada


Visual Basic 6.0
19

2.4.2.1c Tool Box


Komponen Visual Basic yang akan ditempatkan pada form.

Pointer Picture
Label Tex Box
Frame Commond Button
Check Box Option Button
Combo Box List Box
HScrollBar VScrollBar

Timer Drive List Box


Dir List Box File List Box
Shape Line
Image Data

OLE

Gambar 2.12 Tool Box didalam Visual Basic 6.0

Berikut ialah keterangan dari masing masing Tool Box yang


ditampilkan pertama kali atau tampilan default dari Visual Basic.
♠ Pointer : Mengklik suatu obyek.
♠ Picture : Menyisipkan gambar pada form.
♠ Label : Sebagai keterangan tanpa proses input.
♠ TextBox : Dipakai untuk input atau output data.
♠ Frame : Untuk mengelompokkan Control
♠ Command Button : Tombol perintah
♠ Check Box : Untuk memilih pilihan yang lebih dari satu
♠ Option Button : Untuk memilih salah satu pilihan
♠ Combo Box : Membuat daftar pilihan secara dropdown
♠ List Box : Membuat daftar pilihan tampak langsung
♠ Hscroll Bar : Horisontal scroll bar
♠ Vscroll Bar : Vertikal scroll bar
♠ Timer : Mengatur waktu
♠ Drive List Box : Membuat daftar drive
♠ Dir List Box : Membuat daftar direktori
♠ File List Box : Membuat daftar file
20

♠ Shape : Membuat bentuk lingkaran, kotak dll


♠ Line : Membuat garis
♠ Image : Menyisipkan gambar
♠ Data : Menyisipkan data base
♠ OLE : Prosses Embeding File
Apabila tool tool yang lain ingin ditambahkan maka step yang
dilakukan ialah dengan menekan tombol Ctrl + T. Atau pilihan menu
Project – Component.

2.4.2.1d Form
Tempat untuk meletakkan kontrol dan sebagai layar secara
visual
Cara menempatkan Control (Tool Box) ada 2 cara
1. Click salah satu Control dan drag pada form dengan posisi dan
ukuran tertentu.
2. Double Click salah satu Control maka akan tampil pada form.
Kemudian atur posisi dan ukurannya.
Contoh pemakaian Control pada form yaitu :

Label Frame
Tex Box
Check Box
Option
Button

Timer

File List
Box
Data
HScrollBar Option Button
Dir List Box
List Box
VScrollBar

Combo Box

Gambar 2.13 Tampilan Tool Box didalam Form Visual Basic 6.0
21

Untuk menjalankan program aplikasi anda dapat melakukannya


setelah menyimpan program aplikasi yang telah dibuat, jalankan dengan
memilih menu Run lalu Start atau tekan tombol fungsi F5. Anda dapat
juga menjalankan program aplikasi dengan mengklik icon Start seperti
pada gambar dibawah

Icon Star Icon End

Icon Break (Pause)

Gambar 2.14 Tombol Eksekusi Program

Setelah dijalankan anda akan mendapatkan hasil tampilan


program yang sedang berjalan seperti gambar dibawah

Gambar 2.15 Tampilan Saat Dieksekusi

Untuk membuat file EXE dari program aplikasi yang sudah


dibuat, sehingga dapat dijalankan langsung oleh MS-Windows, misalnya
lewat icon Start lalu run, atau lewat icon Start lalu program (setelah
ditambahkan dalam setting taskbar). Untuk membuat file berekstensi dot
EXE dari program aplikasi, caranya secara singkat adalah sebagai berikut
1. Pilih menu file
2. Pilih Make <namafile>.exe
22

3. Tentukan nama file (misal dapur.exe) dan lokasinya dalam


drive
4. Tentukan pilihan pilihan pembuatan file EXE jika
dikehendaki (dengan mengklik tombol Options), kemudian
klik Ok.

2.4.2.1e Project Explorer


Project adalah sekumpulan modul. Jadi project (proyek) adalah
program aplikasi itu sendiri. Project disimpan dalam file berakhiran .VBP
(pada versi sebelumnya berakhiran .MAX). File ini menyimpan seluruh
kokmponen program, termasuk pilihan proyek, pilihan environment,
pilihan file EXE dan segala sesuatu yang berhubungan dengan proyek.
Jika anda membuat program aplikasi, akan terdapat jendela
proyek yang berisi semua file yang dibutuhkan untuk menjalankan
program aplikasi MS Visual Basic 6.0 yang dibuat. Pada jendela proyek
terdapat tiga icon yaitu View Code, View Object, dan icon Toggle
Folders.
Icon View Code dipakai untuk menampilkan jendela editor kode
program. Icon View Object dipakai untuk menampilkan bentuk formulir
(form) dan icon Toggle Folders berguna untuk menampilkan folder
(tempat penyimpanan file). Berikut merupakan contoh gambar dari
kolom project.

Gambar 2.16 Tampilan Jendela Project

2.4.2.1f Propertise
Propertise digunakan untuk menentukan setting suatu objek.
Suatu objek biasanya mempunyai beberapa properti yang dapat diatur
23

langsung dari jendela Propertise atau lewat kode program. Setting


properti akan menentukan cara kerja dari objek yang bersangkutan saat
program aplikasi dijalankan., misalnya menentukan warna objek, bingkai
objek, pengambilan data dan lain lain.

Gambar 2.17 Tampilan Jendela Properties

2.4.2.2 Database
Biasanya, jika kita ingin membuat suatau program manajemen
database, kita memerlukan file database yang akan diproses. File database
ini dibuat satu kali saja dan tidak perlu langsung diisi recordnya (dibuat
struktur databasenya saja). Selanjutnya file database tersebut diproses
lewat program. Untuk membuat file database, anda dapat menggunakan
program Visual Data Manager (VisData) atau program lain, misalnya
program Microsoft Access.
Visual Data Manager adalah suatu program “add-ins”, yaitu
program terpisah yang “ditempelkan” dalam MS Visual Basic 6.0,
sehingga bisa dipakai sebagai bagian dari MS Visual Basic 6.0.Visual
Data Manager akan dibahas secara terbatas, terutama untuk membuat dan
mengedit struktur database.
Cara memanggil Visual Data manager adalah sebagai berikut :
1. Pilih menu Add-Ins pada menu utama MS Visual Basic 6.0
2. Pilih Visual Data Manager. Jika anda memanggil Visual
Data Manager untuk pertama kalinya, maka mungkin
MS-Visual Basic 6.0 akan meminta anda menambahkan
suatu setting. Untuk itu harus dapat memberi tahu MS
Visual Basic 6.0 letak file yang akan di update, yaitu
biasanya file bernama Sistem yang terletak pada direktori
C:\WINDOWS\SISTEM.
24

3. Akan muncul tampilan program Visual Data Manager


seperti gambar dibawah ini dan anda langsung dapat
memakainya.

2.4.2.2a Membuat Database


MS Visual Basic 6.0 dapat menangani bermacam macam format
database, yaitu format database Microsoft Access, Microsoft Exel, DBase,
FoxPro, Paradox, ODBC dan file teks. Pada pembahasan sekarang kita
akan membatasi pada format database Microsoft Acces saja. Untuk
membuat database dengan format database Microsoft Acces, lakukan
langkah langkah berikut ini :
1. Pilih menu File lalu New
2. Pilih Microsoft Acces lalu pilih versi yang diinginkan.
3. Setelah itu akan muncul tampilan seperti Gambar 2.19
yang meminta untuk memberikan nama file dan lokasi data
akan disimpan. Perhatikan bahwa satu file database dapat
berisi beberapa tabel database. Jadi, misalnya kita akan
membuat tiga tabel database. Untuk data Pembelian, maka
anda dapat memberi nama databasenya Beli.MDB, yang
nantinya dapat berisi tabel Barang.

Gambar 2.18 Membuat Database


25

Gambar 2.19 Menentukan Nama Database

4. Setelah ditentukan nama databasenya, pilihlah Save


sehingga muncul tampilan seperti pada Gambar 2.20
5. Tunjuk tulisan Properti lalu klik kanan, sehingga muncul
menu tambahan, lalu pilih New Table sampai muncul
tampilan seperti Gambar 2.21

Gambar 2.20 Jendela Database


26

Gambar 2.21 Menentukan Struktur Tabel Database

6. Ketik tulisan Barang pada Table Name


7. Klik Add Field untuk menambahkan field (kolom), sampai
muncul tampilan seperti Gambar 2.22
8. Ketik Kode pada kolom Name sebagai nama field yang
pertama. Field ini nantinya akan diisi data kode barang.
9. Pilih Text pada kolom Type untuk menentukan tipe data
field kode.

Gambar 2.22 Menambah Filed (kolom)


27

10. Tentukan lebar data pada kolom Size dengan angka 6.


11. Pilih Option Button pada pilihan FixedField agar lebar field
bersifat tetap, sehingga tidak dapat diubah pada saat
program dijalankan.
12. Klik OK
13. Ulangi langkah 8 sampai 12 untuk menambahkan field
Nama (tipe Text, lebar 30), field Satuan (tipe Text, lebar 5)
dan field Harga (tipe Single)
14. Klik Close sampai muncul lagi tampilan seperti pada
Gambar 2.21
15. Klik Built The Table.
16. Klik Close sampai muncul tampilan seperti Gambar 2.20.
Jika ingin keluar dari program Visual Data Manager, maka
dapat dilakukan dengan memilih menu File lalu Exit.

2.4.2.2b Memodifikasi database


Cara memodifikasi database yang sudah ada dalam disk hampir
sama dengan cara membuatnya, yaitu dengan membuka kembali nama
file data base melalui Visual Basic kemudian di panggil melalui Visual
Data Manager hingga tampil jendela seperti di bawah ini.

Gambar 2.23 Proses Untuk Memodifikasi Database


28

Untuk menampilkan jendela seperti diatas sudah dijelaskan


sebelumnya. Jadi pada sub bab ini tidak perlu dijelaskan kembali proses
awalnya.

2.4.2.2c Menambah index data


Index data adalah urutan data pada suatu tabel database. Index
data diperlukan terutama untuk pencarian data dengan cepat dan
pengelompokan data. Untuk membuat index data caranya hampir sama
dengan memodifikasi data. Pertama ialah memanggil program Visual
Data Manager dengan memilih menu Add-Ins lalu Visual Data Manager.
Kemudian pilih menu File lalu Open Database kemudian pilih Microsoft
Access karna Visual Data Manager merupakan source dari MS Access
sehingga tampil jendela seperti Gambar 2.19
Klik pada file database yang diinginkan lalu pilih open, tunjuk
pada nama table yang dikehendaki lalu klik kanan dan dilanjutkan dengan
memilih Design sampai muncul tampilan seperti Gambar 2.21.
Kemudian klik add index sampai muncul tampilan seperti gambar
dibawah ini. Ketik nama index (misal KodeBrg) pada kolom Name.

Gambar 2.24 Menambahkan Index Data Didalam Database

Selanjutnya klik kunci index pada kolom Available Fields.


Perhatikan bahwa anda dapat menggunakan beberapa field sebagai kunci
index, misalnya jika kita memiliki data Beli, maka dapat membuat satu
urutan data (index) berdasar kunci index kode barang sebagai kunci
pertama dan tanggal faktur sebagai kunci ke dua. Dengan demikian, data
29

Beli akan terurut berdasar kode barang dan di antara kode barang yang
sama, akan terurut berdasar tanggal faktur.
Tentukan pilihan Primary, Uniqe dan IgnoreNulls. Pilihan
Primary dipilih jika index yang sekarang adalah index primary, yaitu
index yang memuat satu atau lebih field dan bersifat unik (tidak ada yang
sama dalam satu tabel). Kunci primary ini biasa digunakan sebagai
pengenal suatu record jika tabel yang bersangkutan dihubungkan dengan
tabel lain. Ingat, dalam satu tabel hanya boleh ada satu primary key.
Pilihan Uniqe dipilih jika ingin index bersifat unik dan pilihan IgnorNulls
jika field yang kosong diabaikan. Kemudian klik OK. Bila ingin
menambahkan index lain, maka proses selanjutnya adalah sama dengan
proses pembuatan index yang pertama dan hanya boleh ada satu primary
dalam satu table.
Untuk menambah tabel data dalam satu file data base, proses
yang digunakan adalah sama saat pembuatan tabel yang pertama.
Bedanya hanyalah tidak perlu membuat file databasenya, tetapi cukup
membuka file database yang diinginkan, kemudian tinggal ditambahkan
tabel data yang baru. Berikut merupakan contoh gambar suatu proses
untuk menambahkan table lain didalam file database.

Gambar 2.25 Proses Menambah Table Baru Di dalam Database

Dari gambar diatas sudah tampak jelas, tinggal mengklik kanan


pada Properties kemudian klik kiri di New Table. Selanjutnya tinggal
menambahkan nama nama database seperti pada proses awal.
30

2.4.2.2d Mengaitkan Data ke dalam Form


Untuk dapat mengakses suatu database dalam suatu form, maka
database tersebut harus dikaitkan ke dalam form. Untuk itu, dapat
digunakan icon Adodc (Microsoft ActiveX Data Objects Data
Control) pada toolbox. Jika pada toolbox tidak terdapat icon Adodc,
maka dapat ditambahkan dengan memilih menu Project, Components
(Ctrl+T) lalu beri tanda pilih pada Microsoft ADO Data Control
(OLEDB) dan klik Apply. Pada versi sebelumnya yang digunakan
adalah icon Data, yang nantinya akan kita pelajari juga.
Berikut merupakan langkah langkah untuk mengaitkan Data ke
dalam form
1. Buat project baru
2. Klik icon Adodc pada toolbox
3. Klik dan seret pada jendela form, sehingga muncul tampilan
seperti Gambar 2.26. Objek yang tergambar dalam form
disebut objek Data

Gambar 2.26 Mengaitkan Database ke Dalam Form


31

4. Tentukan properti data sebagai berikut :

Table 2.2 Untuk Tool Adodc pada gambar Gambar 2.25

Properti Setting
Name dbBeli
Caption Data Barang
EOFAction 2-adDoAdNew

5. Tentukan Properti ConnectionString dengan cara mengklik


tombol. Pada kolom ConnectionString sehingga muncul
tampilan seperti pada Gambar 2.27.

Gambar 2.27 Menentukan Properti ConnectionString

6. Pilih Option Button pada Use Connection String lalu klik


Build sehingga muncul tampilan seperti pada Gambar 2.27
7. Pilih Microsoft Jet 4.0 OLEDB Provider lalu klik Next
8. Pilih dengan mengklik tombol ... atau ketik nama database
yang dipakai pada kolom Select or enter a database name.
9. Klik Test Connection jika perlu, lalu klik OK dua kali
sampai tampilan kembali ke jendela Form.
10. Tentukan properti RecordSource dengan cara mengklik
tombol ... pada kolom RecordSource sehingga muncul
tampilan seperti pada Gambar 2.28
32

11. Pada kolom Command Type pilih 2-adCmdTable.


Setelah kolom ini diisi, maka akan dapat anda akan dapat
mengisi kolom Table or Store Procedure Name. Isilah
dengan memilih tabel Barang seperti pada Gambar 2.28
12. Klik OK
Sampai disini, tabel database Barang pada file database Beli
sudah terkait dengan form dan siap diakses dengan menggunakan objek
objek yang tersedia.

Gambar 2.28 Menentukan properti RecordSource

2.5 Pemrograman Bahasa C


2.5.1 Pendahuluan
Bahasa C adalah bahasa tingkat menengah. Pada bahasa
pemrograman ini, machine code dihasilkan melalui tahap yang lebih
panjang. Mungkin anda bertanya, kalau orang sudah bisa membuat
program dengan assembler.Bahasa C karena dengan membuat bahasa
yang levelnya lebih tinggi (lebih dekat ke bahasa manusia) maka
pengembangan perangkat lunak (software) akan lebih cepat, masih ada
satu alasan lagi dan mungkin yang terpenting yaitu bahasa assembly
hanya dapat dieksekusi oleh satu macam arsitektur komputer saja seperti
yang disebutkan sebelumnya. Jika kita dapat membuat program yang
dapat berjalan di berbagai macam arsitektur komputer maka itu akan
mempercepat pengembangan software. Namun demikian, itu tidak berarti
bahwa setiap program yang ditulis dengan bahasa C akan dapat berjalan
pada semua mesin
33

2.5.2 Alasan Penggunaan Bahasa C


Bahasa C saat ini masih merupakan bahasa pemrograman yang
banyak digunakan dan powerful. Sebelum melangkah lebih jauh, penulis
akan menjelaskan beberapa alasan penggunaan bahasa C.
1. Dalam beberapa aplikasi pemrograman pada sistem operasi
windows, kita tidak dapat atau sangat sulit menggunakan bahasa
pemrograman selain C
2. Beberapa software membutuhkan kinerja yang tinggi dari
segi kecepatan, hal ini bisa dicapai dengan mudah jika kita menggunakan
bahasa pemrograman yang "sederhana" seperti C.
3. Kelemahan dari bahasa C yang penulis ketahui sampai saat
ini adalah dari segi kompleksitas pemeliharaan dan pengembangan
software yang kita buat, jika software tersebut sudah cukup kompleks.
Sebagai contoh, software ExploChip pada artikel Tutorial Membuat

2.5.3 Pengenalan Sintaks Bahasa C


Sintaks adalah suatu bentuk dasar (biasanya kata) yang dapat
dipahami dan diolah oleh compiler. Pada bagian ini akan di bahas
beberapa sintaks yang umum digunakan dalam bahasa C, selain itu akan
dijelaskan bagaimana cara kerja compiler C secara umum. Sebelum
melangkah lebih jauh, perlu anda ketahui bahwa C adalah bahasa
pemrograman yang case sensitive, sehingga var, Var, dan VAR adalah
tiga hal yang berbeda pada bahasa C.

2.5.3.1 Keyword #include


Keyword ini membuat kita seakan-akan telah mengetik isi dari
file yang dicantumkan sesudah keyword tersebut. Misalnya: #include <
stdio.h > akan membuat preprocessor mengekspansikan file stdio.h pada
tempat keyword #include tadi diketikkan. #include mempunyai dua
macam bentuk yaitu #include <...> dan #include "..." , titik-titik tersebut
adalah nama file. #include <...> akan membuat preprocessor mencari file
yang namanya dicantumkan di dalam kurung pada direktori- direktori
yang telah didefinisikan oleh software development tool yang kita
gunakan, misalnya pada direktory INC, INCLUDE, dan lain-lain.
#include "..." akan membuat preprocessor mencari file yang namanya
dicantumkan di dalam tanda petik ganda pada direktori file yang memiliki
keyword #include tersebut. Misalnya anda mengerjakan file test.c yang
ada pada direktori bernama test, dan anda mengetikkan #include "test.h",
maka preprocessor akan mencari file test.h pada direktori test.
34

2.5.3.2 Keyword #define


Keyword ini mempunyai format: #define identifier
token-stringopt. Identifier adalah nama sebuah konstanta yang akan kita
gunakan dalam program kita, dan token-string adalah nilai dari identifier
tersebut (nilai ini harus dapat dikenali oleh compiler), token-string dapat
merupakan sebuah ekspresi6. Preprocessor akan mengganti setiap
kemunculan identifier dengan nilai pada token-string. Jika token-string
dikosongkan, maka identifier tadi akan hilang dari source code program
kita (pada baris-baris selanjutnya, identifier menjadi tidak dikenali sebab
tidak memiliki nilai lagi).

2.5.3.3 Keyword #if


Keyword ini digunakan untuk menentukan pengolahan
baris-baris source code sesudahnya, sampai dengan keyword #endif.
Formatnya adalah : #if expression , expression adalah sebuah ekspresi
yang valid (dapat diolah oleh compiler). Jika ekspresi tersebut benar
maka baris-baris source code sesudah #if akan diolah dan sebaliknya jika
ekspresi tersebut bernilai salah. Keyword ini harus digunakan bersama
dengan keyword #endif untuk menandakan batas penggunaan keyword
tersebut dalam source code. Contoh:

#define TEST 2
#if (TEST > 0)
...
baris source code;
#endif

Pada potongan program diatas, baris source code akan diolah


sebab ekspresi TEST > 0 adalah benar.

2.5.3.4 Keyword #ifdef


Keyword ini penggunaannya sama dengan #if. Formatnya:
#ifdef identifier, identifier adalah sebuah konstanta. Jika identifier telah
didefinisikan sebelumnya (dengan keyword #define) maka baris-baris
source code sesudah #ifdef akan diolah oleh kompiler, demikian pula
sebaliknya. Keyword ini harus digunakan bersama dengan keyword
#endif untuk menandakan batas penggunaan keyword tersebut dalam
source code
35

2.5.3.5 Keyword #ifndef


Keyword ini mempunyai format yang sama dengan #ifdef, tetapi
cara kerjanya adalah kebalikan dari #ifdef, sehingga jika baris- baris
program sesudahnya justru diolah jika identifier tidak didefinisikan
sebelumnya. Keyword ini harus digunakan bersama dengan keyword
#endif untuk menandakan batas penggunaan keyword tersebut dalam
source code

2.5.3.6 Keyword #endif


Keyword ini sebagai pembatas untuk menadakan bagian akhir
dari source code yang akan dikenai efek jika keyword #if, #ifdef dan
#ifndef dievaluasi.

2.5.3.7 Keyword #undef


Keyword untuk menonaktifkan identifier yang telah
didefinisikan dengan #define, efeknya sama dengan #define identifier .
Dengan demikian kita dapat mendefinisikan kembali identifier tadi
setelah #undef.

2.5.3.8 Keyword #else


Keyword ini digunakan di antara keyword #if, #ifdef, #ifndef
dengan keyword #endif. Jika ekspresi pada keyword #if, #ifdef, #ifndef
benar maka source code sesudah #else, tidak akan dieksekusi,demikian
pula sebaliknya.Contoh:

#define TEST 0
#if (TEST > 0)
...
baris source code1;
#else
...
baris source code2;
#endif Pada potongan program diatas, baris source code2;
akan diolah sebab ekspresi TEST > 0 adalah salah.

2.4.5 Perintah Perintah Dalam Bahasa C


2.5.4.1 Compiler
Compiler adalah bagian dari Software Development Tool yang
kita gunakan, yang bertugas menerjemahkan source code yang telah
diolah oleh prepocessor menjadi bahasa assembly yang selanjutnya akan
36

diolah oleh assembler untuk dijadikan machine code yang dapat


dieksekusi.

2.5.4.2 Pernyataan
Dalam bahasa C adalah sebuah baris program yang dapat
diproses oleh compiler. Pernyataan diakhiri dengan tanda ; (titik-koma).
Setiap pernyataan dapat berisi beberapa ekspresi, operator maupun
operand. Contoh: return;
Sekelompok pernyataan yang disatukan dalam sebuah kurung
kurawal (kadang di sebut sebagai block of statement atau blok
pernyataan ) juga diperlakukan seperti sebuah pernyataan biasa, hal ini
terutama berguna saat anda akan mengatur eksekusi sekelompok
pernyataan dalam sebuah percabangan seperti contoh di bawah ini:
if (a > b)
{
pernyataan 1;
pernyataan 2;
pernyataan 3;
} jika ekspresi didalam kurung sesudah if ( ekspresi a > b)
bernilai benar maka seluruh pernyataan di dalam kurung kurawal akan
dieksekusi. Sebenarnya keyword if hanya dapat mengeksekusi satu
pernyataan sesudah ekspresi yang diuji olehnya ( pada contoh di atas
ekspresi a > b), namun dengan adanya kurung kurawal, pernyataan 1 s/d
pernyataan 3 seolah-olah dianggap satu pernyataan saja oleh compiler
yang kita gunakan.

2.5.4.3 Variabel
Adalah sebuah simbol yang mewakili sebuah alamat di memory
yang nilainya dapat dimanipulasi melalui nama tersebut dan mempunyai
ukuran tertentu. Ukuran ini disebut tipe data. Tipe data yang berbeda
kemungkinan mempunyai ukuran yang berbeda. Sintaks untuk
mendeklarasikan (menyatakan pertama kali adanya sebuah variabel)
adalah:

tipe-data NamaVariabel
Contoh: int variabel1;
Berikut ini adalah tipe data dan ukurannya.
Tipe data Ukuran (byte) Contoh
bool 1 bool a = true ; bool b = false
int, unsigned int 4 int a = -255 ; unsigned int b = 10
37

char, unsigned char 1 char a = -1 ; unsigned char b


=1
long, unsigned long 4 long c = 0xFF ; unsigned
long d = 0xFFC
short, unsigned short 2 short e = 0xFFF ; unsigned
short f = 067
float 4 float g = 0.001
double 8 double h = 1.02e8
long double 8 long double h = 2.42e10

Variabel bertipe bool hanya mempunyai dua nilai yaitu true atau
false, jadi anda hanya dapat mengisinya dengan nilai ini.

2.5.4.4 Operator
Operator adalah karakter atau kumpulan karakter yang
digunakan untuk memanipulasi variabel. Karakter atau kumpulan
karakter ini dikenali secara spesifik oleh compiler sehingga variabel yang
diubah-ubah nilainya(operand) akan dikenai operasi sesuai dengan
definisi operasi yang dimiliki oleh operator tadi.

2.5.4.5 Percabangan
Percabangan (Control Flow) adalah teknik yang digunakan
untuk mengalihkan eksekusi program saat suatu ekspresi yang diuji
bernilai benar atau salah. Pertama, akan dibahas percabangan dengan if,
else if, dan else. Bentuk percabangan ini adalah yang paling sederhana.
Format penggunaannya adalah:
if (ekspresi1)
...
sourcecode1;
else if (ekspresi2)
...
sourcecode2;
else
...
sourcecode3;
Pada sourcecode ini, pertama-tama, if akan mengecek ekspresi1 ,
jika benar maka sourcecode1; akan dieksekusi, jika tidak, maka eksekusi
program berpindah ke else if (ekspresi2), else if akan mengecek ekspresi2,
jika ekspresi2 benar maka sourcecode2 akan dieksekusi, jika salah maka
eksekusi program berpindah ke sourcecode3. Pada format di atas, else if
38

sebenarnya opsional (boleh ada boleh juga tidak), jika anda hanya
memiliki dua alternatif "jawaban" maka bagian else if tidak perlu
digunakan.

2.5.4.6 Perulangan
Perulangan adalah teknik pemrograman yang digunakan untuk
mengatasi pernyataan program yang harus dikerjakan secara
berulang-ulang. Perulangan dalam C dapat diimplementasikan dengan
beberapa keyword, yaitu for, do .. while , while . Ketiga keyword ini lah
yang paling sering digunakan. Perulangan menggunakan for mempunyai
format sebagai berikut.
for( ekspresi1 ; ekspresi2 ;ekspresi3 )
{
...
source_code_ulang;
}
pada source code di atas ekspresi1 adalah ekspresi yang akan
dievaluasi pertama kali , kemudian ekspresi2 dievaluasi, jika nilainya
benar maka source_code_ulang; dieksekusi, setelah itu ekspresi3 akan
dieksekusi, kemudian jalannya program kembali lagi ke pernyataan for
dan ekspresi2 kembali dievaluasi (ekspresi1 tidak lagi dieksekusi), jika
benar maka source_code_ulang; dieksekusi, setelah itu ekspresi3 akan
dieksekusi, kemudian jalannya program kembali lagi ke pernyataan for ,
hal ini dilakukan berulang-ulang selama ekspresi2 masih bernilai benar.

2.5.4.7 Fungsi untuk Input dan Output


Pada tutorial ini ada 2 buah fungsi input dan output yang
digunakan, penulis akan menjelaskannya agar anda tidak bingung saat
mempelajari source code yang diberikan. Fungsi yang pertama adalah
fungsi output, yaitu fungsi yang digunakan untuk menampilkan hasil
yang diperoleh dari program kita ke layar komputer, fungsi tersebut
adalah int printf(const char* [format],[argument]...). Anda tidak perlu
bingung menggunakan fungsi yang agak kompleks ini, anda cukup
mengganti [format] dengan petik ganda dan di antara petik ganda tersebut
anda tuliskan kata-kata yang ingin ditampilkan. [argument] adalah
opsional. Berikut ini contoh pengunaannya untuk menampilkan sebuah
bilangan desimal:
int test = 10;
printf("inilah bilangan yang ingin ditampilkan: %d",test);
39

Pada source code di atas, di antara tanda petik ganda diketikkan


kata-kata yang ingin ditampilkan. Tanda %d adalah sebuah kode khusus
untuk memberitahukan fungsi printf bahwa kita ingin menampilkan
bilangan integer (untuk tanda yang harus digunakan silahkan lihat
dokumentasi compiler yang anda gunakan, untuk Visual C++ gunakan
MSDN) pada posisi tersebut, bilangan yang ingin kita tampilkan
kemudian diletakkan pada parameter [argument] dari fungsi printf. Jika
anda ingin menggunakan lebih banyak angka lagi (yang berbeda
posisinya dan dipisahkan karakter lain) maka anda cukup menmbah lagi
[argument] dan meletakkan penanda seperti %d di atas pada posisi yang
anda inginkan.

2.5.4.8 Pointer dan Array


Pointer adalah salah satu konsep yang paling sulit dipahami oleh
programer pemula dalam bahasa C dan C++. Untuk memahami dengan
baik bagaimana pointer bekerja, anda harus bisa membayangkan
pergerakan variabel-variabel antara microprocessor dan memori utama,
dan akan lebih baik jika anda tahu bagaimana sistem operasi semacam
windows mengorganisasikan memori.
Alasan mengapa pointer diperlukan, yaitu:
1. Dalam kasus tertentu kita perlu mengubah isi dari sebuah
variabel yang sebenarnya, kita tidak bisa melakukan hal ini dengan fungsi
seperti yang telah kita pelajari sebab fungsi tersebut hanya memanipulasi
"kopian" dari variabel yang sebenarnya ingin kita manipulasi (yang di
simpan di stack ketika fungsi tersebut diproses )
2. Jika kita bisa merubah secara langsung variabel yang ingin
kita manipulasi maka hal itu adalah lebih efisien dibandingkan mengkopi
dan memanipulasinya, kemudian mengkopi kembali hasil manipulasi
tersebut dari stack ke variabel aslinya.
3. Dalam kasus sebuah fungsi yang harus mengembalikan 2
atau lebih return value. Jelas hal ini tidak mungkin dilakukan dengan
metode yang telah kita ketahui, sebab sebuah fungsi hanya mungkin
mempunyai 1 return value (baca kembali bagian fungsi).
40

-------------- halaman ini sengaja dikosongkan---------------


BAB 3
PERENCANAAN DAN PEMBUATAN ALAT

3.1 Umum
Pada pengerjaan proyek akhir ini, dibagi menjadi 2 bagian yaitu
bagian Mikrokontroller yang meliputi software / hardware dan bagian
data base yang ada pada 2 PC dapur-kasir. Sebelum membahas tentang
perencanaan dan pembuatan, maka harus ada perencanaan yang matang
agar sistem dapat direalisasikan dengan baik sesuai target. Oleh karena
itu perlu kita perhatikan juga hardware yang hendak dikontrol.

3.2. Perencanaan Sistem Kerja


Proses pemesanan diawali oleh konsumen yang memasukkan
kode menu yang akan dipesan melalui keypad yang ditampilkan ke
dalam LCD. Setelah konsumen tersebut menekan tombol SEND pada
keypad. Data tersebut kemudian dikirim melalui RS 232 menuju
komputer yang ada di dapur. Kemudian dari komputer yang ada di dapur
ini akan diteruskan ke komputer yang ada di bagian kasir untuk proses
pembayaran.
Komputer kasir menampilkan menu yang dipesan dan
kemudian menjumlah berapa total harga yang harus dibayar oleh
konsumen. Total pembayaran ini kemudian akan di print-out sebagai
nota untuk pembeli. Pada PC kasir ini terdapat berbagai table yang
dapat diakses, diantaranya adalah :
♦ Database master yang berisi tentang menu menu yang ada
beserta harga yang dapat dipanggil dalam form tampilan di PC.
♦ Tabel Pembelian, yaitu tabel yang berisi tentang database
pembelian. Disitu memuat berapa banyaknya pesanan beserta
harganya yang juga diinter face kan dengan printer.
Sistem ini menggunakan dua buah komputer, satu buah
rangkaian minimum Mikrokontroller AT89S51, satu buah LCD, dan
satu buah keypad.
Komputer dapur dalam hal ini hanyalah sebagai penerima
inputan berupa karakter dari keypad yang menjadi satu program dengan
LCD dan minimum sistem. Adapun bahasa pemrograman yang
digunakan pada PC dapur maupun PC kasir ialah Visual Basic 6.0.

41
42

Diagram blok secara keseluruhan seperti tampak pada gambar berikut

keypad Mikrokontroller LCD

RS 232

PC dapur

RS 232

PC kasir printer

Gambar 3.1 Blok Diagram Sistem Pemesanan

Sistem ini dibagi dalam beberapa sub yaitu :


1. Pengendali pengiriman data berbasis sistem minimum
Mikrokontroller AT89S51. yaitu merancang perangkat
pengontrol pengiriman data ke PC dan menampilkan data
yang dimasukkan pembeli dari keypad ke LCD.
2. Interface serial RS-232 pada PC dapur, yaitu menerima
data dari minimum sistem dan meneruskan data ke PC
kasir.
3. Software dan komunikasi data PC dapur ke PC kasir. Yaitu
mengirim data berupa karakter ke PC kasir yang telah
memuat database menu menu pesanan. Serta interface ke
line printer
Pengendalian seluruh sistem terletak pada Mikrokontroller
AT89S51. dimana Mikrokontroller harus mampu mengintegrasikan
seluruh alamat kerja dari alat alat pendukungnya seperti masukan dari
keypad yang selanjutnya dikeluarkan melalui LCD dan dikirim melalui
kabel serial DB9 ke komputer. Kode dimasukkan melalui keypad berupa
tombol tombol angka dari 0 sampai 9 ditambah tombol tombol lain
yang dapat difungsikan antara lain untuk UP, DOWN, CANCEL,
ENTER, SEND.
43

Berikut ini merupakan flowchart dari sistem yang dipakai


dalam Proyek Akhir ini.

Start

Input/ Kirim
Data

Buka Database Input Data Baru

Terima database
Di Komp Dapur

Kirim Data

Buka Database /
Olah Database di Simpan Database Print Data
Komptr / Reset
Kasir

Gambar 3.2 Flowchart Keseluruhan Sistem

3.3 Perancangan Perangkat Keras


Pada bagian ini akan dibahas tentang perancangan perangkat
keras yang terdiri dari Minimum Sistem, Rangkaian Keypad, Rangkaian
LCD, dan konektor RS 232.
44

3.3.1 Perencanaan dan Perancangan Antar Muka (Interfaces)


Dengan Mikrokontroller AT89S51
Dalam proyek akhir ini digunakan AT89S51 sebagai interface
antara komputer server dengan memanfaatkan pin Tx, Rx yang ada pada
AT89S51 sebagai komunikasi serial, maka AT89S51 fungsinya akan
sama dengan PPI8255 tetapi pada PPI8255 digunakan komunikasi
paralel sedangkan AT89S51 menggunakan komunikasi serial.

Gambar 3.3 Schematic Rangkaian Minimum AT89S51

3.3.2 Rangkaian Keypad


Pembuatan keypad, disini dimaksudkan untuk memberikan
inputan dari pembeli. Scanning keypad yag dilakukan oleh min sistem
45

harus mampu menentukan posisi dari tombol yang ditekan. Setelah


posisi keypad yang aktif dapat ditemukan maka data tersebut diolah
menjadi data data tombol yang ditekan. Dalam aplikasi ini digunakan
satu macam scanning yang digunakan untuk mendeteksi keypad 4x4.
gambar 3.2 menunjukkan flowchart scanning keypad matriks yang
digunakan dalam program. Scanning keypad ini menggunakan metode
polling. Yaitu scan terus menerus hingga ada tombol yang ditekan.
46

START

Cek semua
tombol

N
Ada tombol
diekan ?
Y
Cek kolom

N
Kolom tombol
ditemukan ?

Y
Cek baris

N
Baris tombol
ditemukan ?
Y
Data kolom dan baris
diolah menadi tombol yang
ditekan

return

Gambar 3.4 Flowchart scanning


keypad dengan metode polling
47

Keypad yang digunakan dalam aplikasi ini adalah keypad


matriks 4x4 (4 baris dan 4 kolom). Berisikan angka 0 sampai 9. dan 6
tombol tyang tersisa dimanfaatkan untuk CAN, ENTER, SEND, UP,
dan DOWN sedangkan 1tombol lagi tidak dipakai. Untuk mengenali
bagian kolom dan baris yang aktif maka keypad ini dihubungkan
dengan minimum sistem AT89S51. kemudian dibuat program yang
dapat mengenali tombol yang sedang ditekan. Program yang dibuat
harus mampu mengenali setiap tombol yang ditekan sesuai perencanaan.
Dan berikut merupakan bagian bagian dari keypad tersebut.

1 2 3 -

Send
4 5 6

Up
7 8 9

Can 0 Ent Dow


n

Gambar 3.5 Susunan tombol pada keypad

Berikut ini merupakan gambar alokasi pin pin output pada


module keypad 4x4 beserta schematicnya tersebut.

Gambar 3.6 Alokasi Pin Pin Pada Keypad


48

Gambar 3.7 Schematic Keypd 4x4

3.3.3 Rangkaian LCD


Liquid Crystal Display (LCD) TM162ABC merupakan display
yang digunakan sebagai tampilan informasi infomasi pada pemesanan.
TM162ABC merupakan ssebuah dot matrik LCD yang berdaya
rendah dengan sebuah High-contrash. Panel LCD memiliki pengontrol
CMOS yang terdapat generator ROM / RAM dan display data RAM di
dalamnya, semua fungsi display dikontrol oleh perangkat lunak dan
dapat dengan mudah di interfacekan dengan unit mikroprosesor, berikut
beberapa kelebihan yang dimiliki TM162ABC.
▪ Terdiri dari 16 karakter, 2 baris display 5x7 dot matrik + 5x1
kursor (1 karakter)
▪ Memiliki 192 karakter pada ROM dan 8 karakter pada RAM
(penulisan program).
▪ 80x8 display data RAM (80 karakter)
▪ Interface dengan 4 bit dan 8 bit data.
▪ Display data RAM dan karakter RAM dapat dibaca dari unit
mikroprosesor
▪ Terdapat beberapa fungsi perintah, display clear, cursor
home, display on/off, display character blink, cursor shift,
dan display shift.
▪ Memiliki rangkaian osilator di dalamnya, reset pada power-
on
▪ Dengan catu daya tunggal + 4,7 Volt.
49

Gambar 3.8 Blok Rangkaian LCD

Algoritma dasar yang digunakan dalam perencanaan subrutin


kirim data ke LCD adalah sebagai berikut
1. Tampilkan pesan pesan informasi
2. Tampilkan menu menu pesanan
3. Tampilkan data data yang dapat ditampilkan seperti instruksi
dari keypad.
Berikut merupakan flowchart dari program LCD
50

Start

Inisialisasi

Tampilkan pesan
pesan inforamasi

Tampilan menu utama

Tampilan data sesuai


instruksi keypad

Return

Gambar 3.9 Flowchart Subrutin Kirim


Data ke LCD

Operasi dasar dari LCD tediri dari beberapa operasi yaitu


instruksi untuk memasukkan kode dan banyak pesanan dan membaca
kondisi apabila kode salah, dan memproses perbaikan kesalahan dalam
memasukkan kode untuk diulangi prosesnya. Kombinasi instruktur dasar
inilah yang memanfaatkan untuk mengirim data ke LCD.
Pada saat sistem mulai diaktifkan maka proses pertama yang
dilakukan minimum sistem adalah inisialisasi. Selama proses inisialisasi
ini akan ditampilkan beberapa pesan yang berhubungan dengan proses
tersebut. Setelah proses inisialisasi selesai, maka LCD akan
menampilkan menu utama secara terus menerus sampai ada reaksi dari
pembeli. Seperti terlihat pada algoritma dasar perencanaan subrutin ini,
51

maka data data yang dapat ditampilkan akan terlihat di LCD selama
eksekusi.

3.3.4 Perancangan Perangkat Keras Downloader Mikrokontroller


AT89S51
Rangkaian ini digunakan untuk men-download-kan program ke
mikrokontroller untuk pengontrolan arah putaran motor stepper. Pada
rangkaian ini digunakan IC MAX 232 untuk mengisolasi dan sebagai
buffer data pada paralel port. Selain itu dengan pemanfaatan IC jenis
HCT ini memungkinkan programmer untuk bekerja secara optimal dan
akurat dengan paralel port. Pemrograman secara In System
Programming adalah programmer tidak perlu melepas IC
mikrokontroller pada waktu akan di-download-kan, hal ini berarti
pendownload-an program dapat langsung dilakukan pada rangkaian
aplikasi. Yaitu dengan memanfaatkan pin-pin pada mikrokontroller
AT89S51.

1 uF/16 V

1 uF/16 V
IC MAX 232
IC AT89S51

DB 9

Gambar 3.10 Rangkaian Downloader ISP Flash


52

3.3.5 Konektor RS 232


Untuk mengirimkan pesanan dari mikro ke PC ialah
menggunakan sistem dupleks atau hanya searah saja. Bautrate yang
digunakan ialah 2400 bps atau dapat dipakai yang lain asalkan sinkron
baik PC maupun Mikrokontrollernya. Pada konektor serial ini yang
digunakan hanya 3 pin saja yaitu TX, RX dan ground. Pada Proyek Akhir
ini dibutuhkan 2 kabel serial yang sama susunan yaitu pin TX dan RX
disusun saling bersilangan (cross). Satu kabel digunakan untuk
komunikasi Minimum Sistem dengan PC Dapur dan satu kabel
digunakan untuk komunikasi PC Dapur dengan PC Kasir. Jadi PC dapur
harus mempunyai 2 port serial yaitu port 1 dan port 2.

3.4 Konversi Data


Dalam perancangan Proyek akir ini konsumen dapat memesan
menu melalui meja konsumen hanya dengan memasukkan kode kode
melalui keypad.
Data yang dimasukkan berupa kode kode dari keypad tersebut
kemudian dikirimkan dan dikonversi bentuk bentuk karakter yang
ditampilkan dalam texbox pada Visual Basic 6, dimana Visual Basic
tersebut difungsikan sebagai database.

3.5 Perencanaan Database


Di dalam perencanaan database ini mengacu pada pencarian
data dengan index Untuk melakukan pencarian dengan cepat diperlukan
index data. Dengan adanya index data, maka data akan terurut sehingga
pencarian tidak harus berurutan, tetapi dapat dengan melakukan
pencarian biner, yaitu selalu mencari data dengan cara membandingkan
data yang dicari dengan data tengah suatu set data. Jika data tidak sama,
maka set data akan dipecah lagi dan sesuai setelah dipecah. Demikian
seterusnya, sehingga langkah pencarian akan kecil (sedikit) dan
didapatkan kecepatan pencarian yang baik (cepat), walaupun datanya
besar.
Untuk melakukan pencarian data dengan index data, anda dapat
menggunakan metode berikut ini :

Object.recordset.Seek <pembandingan> , kunci1, kunci2....

Pernyataan <pembandingan> adalah ekspresi string “=”, “>”,


“>=”, “<”, atau “<=”. Jika yang digunakan adalah string “=”, “<” atau
“<=”, maka pencarian dilakukan dari record pertama denganarah maju
53

(ke akhir). Sedangkan jika yang digunakan adalah “>” atau “>=”, maka
pencarian dilakukan dari akhir file dengan arah mundur (ke awal).
Pernyataan kunci1, kunci2, dan seterusnya adalah suatu nilai
yang dicari. Perhatikan bahwa pencarian index dapat menggunakan
beberapa kunci yang berurutan sesuai dengan kunci indexnya. Sebagai
contoh, jika data mempunyai index dengan kunci pertama nomor kode
dan kunci ke dua adalah nama makanan , maka bisa memberikan
perintah pencarian seperti berikut :

object.recordset.Seek “=”, MNoKode, MNamaMakanan

Apabila data mempunyai index dengan dua kunci field atau


lebih, maka pencarian harus ditulis lengkap sesuai dengan jumlah kunci
indexnya. Untuk memahami pencarian dengan index, kami memberikan
contoh program yang kami gunakan untuk pengembangan TA ini.

Gambar 3.11 Contoh Program yang dikembangkan

Tabel 3.1 Properti tool Data pada Gambar 3.11

Properti Setting
Name dbBeli
Caption Database Beli
Connect Acces
DatabaseName Database yang dipakai
54

misal D:\ta\beli.mdb
RecordsetType 0-Table (karena properti
0-Table (karena properti
Index dan metode Seek
hanya bisa dipakai pada
setting ini)
RecordSource Barang

Sekarang kita coba memahami baris baris isi prosedur


pencarian data yang akan dijalankan jika tombol Cari diklik, yaitu
sebagai berikut :

Dim MKode As String *6


MKode = txtCari.Text

Pertama kali program mendeklarasikan variable level prosedur


dengan nama MKode bertipe string dengan lebar 6 karakter. Setelah itu
program mengisi variable MKode dengan isi teks pencarian.

‘aktifkan index berdasar kode barang


dbPembelian.Recordset.Index = “KodeBrg”
‘cari data pertama yang nomornya sama
dengan MKode
dbPembelian.Recordset.Seek “=”, MKode

Program kemudian mengaktifkan index (urutan data) bernama


KodeBrg, yaitu index berdasar kode barang. Setelah itu program
melakukan pencarian data yang kode baranganya sama dengan isi
variable MKode.

If dbPembelian.Recordset.NoMatch Then
x = MsgBox("Data tak ditemukan ! ",
vbOKOnly, "Pencarian nama barang")
End If

Jika data tidak ditemukan, maka program akan menampilkan


pesan. Tetapi kalau ditemukan, program hanya akan menunjuk record
yang ditemukan.
Contoh program diatas selanjutnya dapat dikembangkan dalam
pembuatan Proyek Akhir ini sebagai media pemanggil database acces
55

yang terdapat dalam Visual Basic 6.0. Fasilitas ini dinamakan Visual
Data Manager.
Database yang ada di komputer dapur dan kasir tidak jauh
berbeda. Sistem utama yang dipakai ialah sama, yaitu pemanggilan
database yang berisi kode, nama, dan harga. Pemanggilan database ini
mengacu pada pemanggilan Index barang. Dimana sebelumnya pada
tabel di dalam Visual Data Manager ditambahkan index yang diberi
nama koderbg sebagai acuan dalam pemanggilan database yang lain.
Berikut gambar proses pembuatan index pada database Visual Data
Manager

Gambar 3.12 Pembuatan index pada Visual Data Manager

Sistem utama yang ada pada PC kasir ialah sama. Namun, ada
beberapa fitur yang ditambahkan disini antara lain :
1. Tombol Simpan yang befungsi menyimpan data
pembelian sesudah pembeli memesan menu menu
2. Tombol Print yang berfungsi mencetak nota pembelian.
3. Tombol Lihat database yang berfungsi melihat daftar
pembelian yang tersimpan setelah tombol simpan
ditekan dengan masuk ke form yang ke dua
4. Tombol Total yang berfungsi menjumlah semua
pembelian oleh pelanggan.
56

3.6 Perencanaan Program C pada Mikrokontroller


Perangkat lunak yang digunakan harus dapat mengintegrasikan
seluruh peralatan pendukung yang digunakan dalam sistem pemesan
menu ini. Mikrokontroller harus mampu mengolah data masukkan yang
selanjutnya dikirim ke PC untuk mengetahui instruksi data. Metode
pendekatan yang digunakan dalam penyelesaian proyek akhir ini adalah
1.Analisa pemrograman C pada Mikrokontroller AT89S51
yang melingkupi pengalamatn memori mikro, alamat memori
LCD, scanning keypad, dan komunikasi serial.
2.Analisa pembuatan database yag mengacu pada pemrograman
Visual Basic.
Program yang dipakai ialah menggunakan bahasa C. Proses
pembuatan program utama harus direncanakan secara atang dengan
memperhatikan karakteristikdari hardware pendukung. Berikut ini
adalah perencanaan program menu utama.
Program utama merupakan program yang dieksekusi setelah
pealatan diaktifkan. Dan program yang memegang seluruh subrutin
program. Flowchart dari program utama pemesan menu otomatis ini
dielaskan seperti terlihat dalam gambar 3.1 dari flowchart ini dapat
dilihat bagaimana alur eksekusi pemesan menu otomatis ini.
Diagram alir menjelaskan bagaimana mode operasi
difungsikan. Mode tersebut akan terus dieksekusi oleh sistem sampai
power supply dimatikan. Loopng ini menunjukkan bahwa pemesan
menu ini akan terus siaga sampai konsumen memakainya.
Setelah proses inisialisasi selesai, maka eksekusi program
selanjutnya memasuki program menu utama, yaitu pemilihan mode
operasi.
Mode pemesanan diawali dengan memasukkan kode makanan
dari keypad sebagai acuan untuk memesan menu. Masukan kode
direncanakan sebanyak 2 digit dan selanjutnya disimpan dalam data
internal dan diolah ke dalam pengkonversian menu. Proses ini
dilanjutkan dengan pengiriman dara ke PC.
Ketika proses pemasukan kode terjadi kesalahan, maka dapat
digunakan tombol up atau down untuk menuju baris yang dimaksud.
Lalu dengan menekan tobol CAN maka baris tersebut akan terhapus dan
selanjutnya dapat diisikan kode yang baru.
Data berupa kode kode tersebut akan terkrim ke PC dengan
menekan tombol SEND. Kode kode yang dimasukkan akan tampil pada
LCD dan akan tampil pula isi dari kode tersebut jika setiap penekanan
diakhiri dengan menekan tombol ENT.
57

Untuk proses billing atau pembayaran, terjadi di komputer


kasir. Disitu akan tertera harga, nama makanan, banyak pesanan, total
pembelian berikut tanggal dan jam saat terjadi proses transaksi.
Algoritma program utama ini dapat dijelaskan sebagai berikut :
1). Persiapan
Dalam tahap ini meliputi proses inisialisasi semua alamat
alamat semua interface yang ada di min sistem.
2). Mode operasi
Seperti telah dijelaskan diatas bahwa langkah awal
penoperasian sistem ini adalah memilih mode pemesanan atau
ordering kemudian dilanjutkan dengan mode operasi billing.
3) Tampilan Menu pada LCD
Disini LCD akan menampilkan instruksi step by step yang
harus diikuti oleh pemesan. Setelah pemesan menu ini selesai
mengeksekusi pilihan pembeli, maka tampilan pada LCD akan
kembali lagi ke menu utama.
4). Pengiriman Data
Pada bagian ini terjadi 2 kali pengiriman data yaitu:
4.1). Min sistem ke PC dapur, dimana TxD dan Rxd dari IC
serial yang dipakai, dimanfaatkan sebagai fasilitas
pengiriman data menu PC dapur yang terhubung ke tombol
SEND pada keypad.
4.2). PC dapur ke PC kasir, dimana di PC kasir ini akan
memunculkan isi dari database yang telah dipanggil
sebelumnya.
58

-------------- halaman ini sengaja dikosongkan---------------


BAB 4
PENGUJIAN DAN ANALISA

4.1 Tujuan
Dalam proyek akhir ini dilakukan dua macam pengujian, yaitu
pengujian database dan perangkat keras.. Tujuan dari pengujian ini
adalah untuk mengetahui kinerja yang berupa kehandalan dan ketepatan
eksekusi antara program dengan modul yang telah dibuat. Sehingga akan
diperoleh kesimpulan apakah program yang dibuat dapat mengontrol
sistem yang ada.

4.2 Pengujian Database


Database yang akan kita analisa berikut ini berbasis Visual
Basic 6.0. Sistem yang dari database ini prosesnya hanya melakukan
pemanggilan saja. Jadi data data yang sudah diisikan sebelumnya akan
dipanggil dengan memakai kode sebagai index. Untu penyimpanan data
data menu digunakan fasilitas Visual Data Manager. Yaitu fasilitas yang
menghubungkan Microsoft Acces dengan Visual Basic.
Berikut merupakan tampilan database yang ada di computer
kasir.

Gambar 4.1 Tampilan Form Database Pada PC Kasir

Dilihat dari gambar diatas, proses pemanggilan dilakukan


dengan mengisi kolom kode dengan kode angka yang sudah diisikan.

59
60

Setelah itu klik tombol cari maka semua data akan membuka. Kolom
banyak sebagai variable tinggal menyesuaikan berapa harga yang tertera
pada kolom harga dan menjumlahkannya di kolom jumlah dengan
memberikan program hitung didalamnya.
Fungsi fungsi tombol lain yang ada di tampilan PC kasir diatas
ialah sebagai berikut :
♠ Tombol Total berfungsi sebagai menotal harga keseluruhan
pesanan.
♠ Tombol Print berfungsi mencetak nota pembelian
♠ Tombol Simpan berfungsi menyimpan data pembelian setiap kali
terjadi pembelian.
♠ Tombol End untuk menutup program
Database yang ada di PC dapur sistemnya sama dengan yang
ada di kasir, namun perbedaanya tidak sekompleks yang ada di kasir.
Berikut tampilan database yang ada di PC dapur.

Gambar 4.2 Tampilan Form Database Pada PC Dapur

4.3 Proses Penulisan dan Kompile program


Software yang digunakan pada bab ini ialah menggunakan
Ride51. Ride51 merupakan suatu software yang dikembangkan oleh
suatu perusahaan yang bernama Raisonance. Proses proses penulisan
hingga mencompile programnya adalah sebagai berikut :
1. Buka software Ride51
2. Pilih menu Project > New
3. Kemudian pilih lokasi folder yang akan ditempati oleh
project. Setelah itu beri nama project tersebut.
61

4. Klik OK
5. Pilih menu File > New > C Files
6. Tulis listing program pada kotak dialog yang muncul
setelah proses no 5 di atas.
7. Setelah penulisan listing program pilih menu File > Save,
maka file yang disimpan tersebut akan berekstensi dot C
( .C )
8. Karena untuk dapat didownload ke Mikrokontroller harus
berekstensi .HEX maka harus diubah dulu dengan
mengkompile program.
9. Pada kota dialog Project, klik kanan pada nama project
yang dibuat dan pilih Add node Source /Aplication. Hal ini
dilakukan untuk memasukkan file dot C kedalam project .
Cari file yang tadi dibuat dan pilih Open.
10. Setelah itu pilih menu Project > Build All atau klik pada
ikon yang sudah tertera pada toolbar.
11. Sekarang file dot HEX dan siap untuk didownload ke
mikrokontroller.
Berikut merupakan contoh tampilan dari Ride51 yang
membuka salah satu contoh program.

Gambar 4.3 Contoh Tampilan Ride51


62

4.4 Proses Download ke dalam Mikrokontroller


Pada sub bab diatas telah dijelaskan bagaimana membuat file
yang berekstensi dot hex . Sekarang tinggal dijelaskan bagaimana
program tersebut didownload ke dalam AT89S51. Software yang
dipakai ialah menggunakan ISP - Flash Programmer Version 3.0a
yang merupakan keluaran dari ATMEL yaitu sebuah peruasahaan IC.
Langkah langkahnya adalah sebagai berikut
1. Siapkan rangkaian downloader dengan menghubungkan
port pararel ke PC dan memberikan supply tegangan
ke rangakaian serta tancapkan IC AT89S51 ke soket.
2. Buka software ISP - Flash Programmer Version 3.0a
3. Cari file program yang akan didownload dengan meng-klik
Open File. Setelah itu, pilih tombol read
4. Setelah itu pilih tombol Write untuk memulai download ke
AT89S51
5. IC siap untuk dipindah ke dalam rangkaian
Mikrokontroller

Berikut merupakan tampilan software downloader ISP - Flash


Programmer Version 3.0a

Gambar 4.4 ISP - Flash Programmer Version 3.0a


63

4.5 Pengujian Perangkat Keras


Dalam proses ini modul modul yang akan diuji harus dirangkai
sedemikian rupa sehingga layak dan bisa diuji secara sempurna. Modul
modul yang harus disiapkan adalah keypad, LCD, Minimum Sistem
AT89S51 dan Komputer serta kabel serial sebagai pengujian hubungan
antara Minimum Sistem dengan komputer.

4.5.1 Pengujian Hubungan antara Keypad dengan LCD dan PC


Dapur
Pengujian kali ini mengacu pada keypad, LCD dan
hyperterminal yang ada di windows untuk mengetahui berhasil tidaknya
koneksi. Dengan listing program di bawah ini, dapat diketahui bahwa
koneksi antara keypad dengan LCD sudah berhasil baik kedua module
tersebut maupun rangkaian mikrokontroller serta proses pengiriman data
ke PC. Tinggal bagaimana pengembangan selanjutnya. Proses dari
pecobaan ini hanya mengirimkan karakter atau angka sesuai dengan
yang ada di keypad. Missal, ketika ditekan angka “1” maka di LCD
tampil angka 1 sedangkan tampilan pada hiperteminal ialah angka “1”
yang terkirim secara terus menerus.

#include<reg51.h>

void delay(int tunda);


void kirim(int kar);
void ins(int gf);
void printf(int gg);

void keypad();

sbit c4=P1^0;
sbit c3=P1^1;
sbit c2=P1^2;
sbit c1=P1^3;
sbit r4=P1^4;
sbit r3=P1^5;
sbit r2=P1^6;
sbit r1=P1^7;

sbit rs=P3^4;
sbit e=P3^5;

char fkey,tombol;

void main()
{
TMOD=0x20;//Timer1,mode2
64
SCON=0x52;
TH1=0xf4;
TR1=1;//meangktifkan timer;
ES=1;//mengaktifkan interupsi port serial
EA=1; //mengaktifkan

ins(2);
ins(0x3f);
ins(6);
ins(1);
ins(0x0C);

while(1)
{ keypad();
ins(0x80);
printf(tombol);
kirim(tombol);

void keypad()
{ fkey=0;

P1=0xff;
c1=0;
if(r1==0)
{fkey=1;tombol='1';}
if(r2==0)
{fkey=1;tombol='4';}
if(r3==0)
{fkey=1;tombol='7';}
if(r4==0)
{fkey=1;tombol='*';}//cancel

P1=0xff;
c2=0;
if(r1==0)
{fkey=1;tombol='2';}
if(r2==0)
{fkey=1;tombol='5';}
if(r3==0)
{fkey=1;tombol='8';}
if(r4==0)
{fkey=1;tombol='0';}

P1=0xff;
c3=0;
if(r1==0)
{fkey=1;tombol='3';}
65
if(r2==0)
{fkey=1;tombol='6';}
if(r3==0)
{fkey=1;tombol='9';}
if(r4==0)
{fkey=1;tombol='#';} //enter

P1=0xff;
c4=0;
if(r1==0)
{fkey=1;tombol=' ';}
if(r2==0)
{fkey=1;tombol='$';}//ok
if(r3==0)
{fkey=1;tombol='<';}//up
if(r4==0)
{fkey=1;tombol='>';}//down

if(fkey==1)
delay(20000);
}

void delay(int tunda)


{ while(tunda>0)
tunda--;
}

void kirim(int kar)


{while(TI==0)
{}
SBUF=kar;
TI=0;
}

void printf(int gg)


{rs=1;
e=1;
P2=gg;
delay(50);
e=0;
delay(50);
e=1;
delay(50);
}

void ins(int gf)


{rs=0;
e=1;
P2=gf;
delay(50);
66
e=0;
delay(50);
e=1;
delay(50);
}

4.5.2 Keypad
Pada bagian ini akan dibahas fungsi fungsi dari tombol tombol
yang ada pada keypad.
■ Tombol ENT berfungsi untuk menyimpan data
sementara pada AT89S51 sebelum dikirim ke
computer dapur.
■ Tombol angka 0 sampai 9 berfungsi menampilkan data
data berupa angka yang akan dikirim ke PC dapur.
■ Tombol Up dan Down berfungsi untuk berpindah baris
■ Tombol CAN berfungsi untuk mengedit data yang sudah
dimasukkan ke memori sementara atau yang data yang
diinputkan dengan penekanan tombol ENT.
■ Tombol SEND berfungsi untuk mengirimkan data yang
sudah disiapkan memori sementara ke PC yang ada di
dapur.

4.5.3 Tampilan pada LCD


Pada baris 1 pada LCD akan tampil tulisan KODE dan
JUMLAH. Pada baris 1 ini tulisan tersebut tidak dapat di edit dengan
tombol tombol keypad. Karena pada program, baris pertama dibuat
sebagai tampilan tetap.
Untuk bagian bagian yang dapat diedit hanya di baris kedua
saja.
Tampilan tampilan yang terjadi pada LCD melalui keypad
■ Angka 0 sampai 9 akan ditampilkan pada LCD setiap
ada penekanan tombol angka pada keypad
■ Setiap kali pergantian baris pesanan terdapat no pesanan
dengan maksimal di angka empat. Untuk pergantian ini
digunakan tombol UP dan DOWN pada
keypad.
■ Kursor akan bergerak ke bawah tulisan jumlah setiap
selesai mengisi angka dibawah tulisan kode bila ditekan
tombol ENT pada keypad. Selanjutnya akan berpindah
baris setiap kali selesai mengisi data di bawah tulisan
jumlah dengan penekanan tombol yang sama
67

■ Setiap angka yang sudah ditampilkan oleh keypad akan


terhapus apabila ada penekanan tombol CAN
■ Tampilan pada LCD ketika tombol SEND ditekan ialah
kembali seperti semula. Yaitu, no baris menunjuk ke
angka 1 dan tulisan di bawah kode dan jumlah semuanya
hilang (reset).

4.5.4 Tampilan Pada PC Dapur


Berikut ini merupakan tampilan pada PC dapur yang telah
terkoneksi dan menerima inputan dari keypad yang ada di
mikrokontroller

Gambar 4.5 Tampilan PC Dapur setelah menerima inputan dari


Mikrokontroller

Variable yang dimasukkan pada kolom kolom VB pada gambar


di atas ialah pada kolom kode dan kolom banyak. Jadi pada percobaan
pemesanan kali ini, data yang diinputkan adalah kode 11 dengan banyak
6, kode 17 dengan banyak 7, kode 15 dengan banyak 6, dan kode 20
dengan banyak 4.

4.5.5 Pengujian Hubungan Minimum Sistem Dengan PC (Serial)

Untuk mengetahui bisa terkoneksinya minimum sistem dengan


PC maka perlu diadakan pengujian dengan menggunakan program serial
yang sedikit ini. Dengan program dibawah ini, maka akan diketahui
68

bahwa rangkaian mikrokontroller sudah benar dapat terhubung dengan


PC.
Hasil dari percobaan kali ini ialah terkirimnya huruf ”a” di
hyperterminal secara terus menerus ketika menghidupkan dan
menghubungkan rangkaian ke PC untuk pertama kali.
#include<reg52.h>

void kirim(int kar);

void main()
{
TMOD=0x20;//Timer1,mode2
SCON=0x52;
TH1=0xf4;
TR1=1;//meangktifkan timer;
ES=1;//mengaktifkan interupsi port serial
EA=1; //mengaktifkan

while(1)
kirim('a');
}

void kirim(int kar)


{while(TI==0)
{}
SBUF=kar;
TI=0;
}

Dibawah ini merupakan tampilan dari hasil pengujian program


diatas dengan memakai fasilitas hyperterminal yang ada di windows.
69

Gambar 4.6 Tampilan pada hyperterminal yang bersamaan dengan


dinyalakannya rangkaian Minimum Sistem
70

-------------- halaman ini sengaja dikosongkan---------------


BAB 5
PENUTUP

5.1 Kesimpulan
Dari Pengujian Perangkat lunak dan perangkat keras yang telah
dilakukan pada pembuatan sistem layanan pada restoran ini diperoleh
kesimpulan yaitu :
1. Rangkaian Mikrokontroller AT89S51 digunakan sebagai media
penghubung antar module seperti keypad dan LCD.
Mikrokontroller AT89S51 juga digunakan sebagai pengendali,
karena disinilah tempat program di download untuk mengatur
seluruh proses baik yang ada di rangkaian itu sendiri maupun
pada PC.
2. Untuk menguji komunikasi serial antara PC dengan
Mikrokontroller maka digunakan tampilan pada hyperterminal.
3. Interval pada propertise Timer yang merupakan fasilitas dari VB
dapat menentukan kecepatan pengiriman data dari
Mikrokontroller ke PC. Jadi semakin kecil interval, maka
kecepatan pengiriman data akan semakin cepat.
5. Penggunaan MSCom pada tiap komputer bergantung pada
kebutuhan port yang akan digunakan. Karena pada PC dapur
menggunakan 2 port, maka MSCom yang digunakan sebanyak 2.
Sedangkan pada PC kasir cukup 1 buah karena hanya memakai 1
port.
6. Proses yang ada di database merupakan aplikasi dari fungsi
pemanggilan data dengan menggunakan index, sedangkan untuk
PC yang ada di PC kasir ditambah dengan program record data,
print data, dan program billing.
7. Untuk men-sinkronkan komunikasi antar Mikrokontroller dan PC
Baudrate. Baudrate yang digunakan pada komunikasi disini
adalah 2400 Kbps.
8. Pengiriman data ke PC dilakukan secara serial, yaitu satu per
satu. Karena pengaruh dari kecepatan pengiriman data, maka data
yang tampil pada PC terlihat seperti bersamaan.

71
72

5.2 Saran
Untuk penyempurnaan lebih lanjut maka beberapa saran perlu
ditambahkan antara lain :
1. Untuk pengoperasian sistem ini masih digunakan jasa
manusia pada pangantaran pesanan. Hal ini dapat
disempurnakan dengan sebuah robot pengantar makanan.
2. Sistem pemesan menu ini masih terbatas pada rumah
makan yang berskala besar. Dimana biasanya hanya ada
sepuluh meja. Jadi untuk pelanggannya pun sangat sedikit.
3. Sistem ini dapat juga digunakan pada rumah makan yang
menyediakan fasilitas drive thru . Pemesanan dengan
sistem ini dilakukan dengan masih mengendarai atau
berada di dalam mobil. Jadi, pelanggan tersebut mengakses
keypad yang dirancang sedemikan rupa dengan LCD dan
mikro tersebut untuk kemudian dapat mengambilnya pada
bagian pengambilan pesanan yang berlainan tempat.
DAFTAR PUSTAKA

[1] Retna Prsetia, Catur Edi Widodo, Teori dan Praktek Interfacing
Port Pararel dan Port Serial Komputer dengan Visual Basic 6.0,
ANDI Yogyakarta, 2004.
[2] M.Agus J. Alam, Manajemen Database dengan Microsoft Visual
Basic Versi 6.0, ELEX MEDIA - JAKARTA, 2003.
[3] Julia Case Bradley, Anita C. Millspaugh, Programming in Visual
Basic 6.0, McGraw – HILL INTERNATIONAL EDITIONS, 1999
[4] Atmel, 8-bit Microcontroller with 4K Bytes
In System Programmable Flash.
[5] Henri S.V. Simanjuntak, Dasar – dasar
Mikroprosesor.
[6] Paulus Andi Nalwan, Panduan praktis teknik
antarmuka dan pemrograman mikrokontroler
AT89C51.

73
LAMPIRAN

Listing Program VB
mkode3 = txtcari3.Text
mkode4 = txtcari4.Text

If dbbeli.Recordset.NoMatch Then
txtcari.Text = ""
End If

If dbbeli4.Recordset.NoMatch Then
txtcari4.Text = ""
End If

hey = "tekan enter untuk melanjutkan"

If dbbeli.Recordset.NoMatch Then
If dbbeli2.Recordset.NoMatch Then
End If
If dbbeli3.Recordset.NoMatch Then
End If
If dbbeli4.Recordset.NoMatch Then
End If

End Sub
Private Sub cmdend_Click()
End
End Sub

txtcari2.Text = ""
txtcari4.Text = ""

txthitung.Text = Val(txthitung.Text) + 1
End Sub

Private Sub Form_Activate()


End Sub

Private Sub Timer3_Timer()


karakter = MSComm1.Input

awal = InStr(serial, "qs") + 1

awal = InStr(serial, "lw") + 1

awal = InStr(serial, "wa") + 1

awal = InStr(serial, "wq") + 1


End If
If kode2 = "" Then
End If
If kode3 = "" Then
End If
If kode4 = "" Then
End If

End If

End Sub

Listing Program C

#include<reg51.h>

void main()
{

koljum1=-1;
baris=1;
kj=0;

while(1)
{ keypad();
menu();
if(fkey==
{ kj=0;
baris--;
if(baris==0)
baris=4;
else
{ baris++;
if(baris==5)
baris=1;
kj=0;
}
}
if(tombol=='$')
{ kirim('a');
kirim_kar(kode3);

bersih=0;
while(kode1[bersih]!=0)
{ kode1[bersih]=0;
bersih++;
}
bersih=0;
while(kode3[bersih]!=0)
{ kode3[bersih]=0;
}

bersih=0;
while(jml1[bersih]!=0)
{ jml1[bersih]=0;
bersih++;
}

bersih=0;
while(jml2[bersih]!=0)
{ jml2[bersih]=0;
bersih++;
}

bersih=0;
while(jml4[bersih]!=0)

koljum1=-1;
koljum2=-1;
koljum3=-1;
koljum4=-1;

void keypad()
{ fkey=0;

if(r1==0)

if(r3==0)
{fkey=1;tombol='9';}
if(r4==0)
{fkey=1;tombol='#';} //enter

if(r1==0)
{fkey=1;tombol=' ';}
if(r2==0)

if(fkey==1)
delay(20000);
{int x;
x=0;
while(kar1[x]!=0)
{ kirim(kar1[x]);
x++;
}
}

e=1;
delay(50);
}

e=1;
P2=gf;
delay(50);
e=0;
x++;
}
}

{ gambar(" ",0xc0);
gambar("3.",0xc0);
gambar(kode3,0xc2);
if(kj==0)
printf('_');
gambar(jml3,0xca);

if(baris==4)
{ if(kj==0)
{ kolkod4++;
kode4[kolkod4]=tombol;
}
}

if(baris==2)
{ if(kj==0)
{ if(kolkod2<0)
goto xx;
kode2[kolkod2]=0;
kolkod2--;
}
else
{ if(koljum2<0)
goto xx;
jml2[koljum2]=0;
koljum2--;
}
}
4X4 P1.4 (Pin 7 PORT 1) R1 (J3)
Keypad Module P1.5 (Pin 8 PORT 1) R2 (J3)
P1.6 (Pin 9 PORT 1) R3 (J3)
P1.7 (Pin 10 PORT 1) R4 (J3)
4 x 4 Keypad Module merupakan suatu modul keypad
berukuran 4 kolom x 4 baris. Modul ini dapat difungsikan sebagai
input dalam aplikasi seperti pengaman digital, datalogger, absensi, DT-51™ Minimum System v3.0 DT-I/O 4x4
pengendali kecepatan motor, robotik, dan sebagainya. dan PetraFuz Keypad Module
VCC (Pin 1 Port CONTROL) VCC (J5)
Spesifikasi Hardware PC.0 (Pin 1 PORT C & PORT 1) C1 (J3)
PC.1 (Pin 2 PORT C & PORT 1) C2 (J3)
1. Memiliki 16 tombol (fungsi tombol tergantung aplikasi).
2. Memiliki konfigurasi 4 baris (input scanning) dan 4 kolom (output PC.2 (Pin 3 PORT C & PORT 1) C3 (J3)
scanning).
3. Kompatibel penuh dengan DT-51™ Low Cost Series dan DT- PC.3 (Pin 4 PORT C & PORT 1) C4 (J3)
AVR Low Cost Series. Mendukung DT-51™ Minimum System PC.4 (Pin 5 PORT C & PORT 1) R1 (J3)
(MinSys) ver 3.0, DT-51™ PetraFuz, DT-BASIC Series, dan lain-
lain. PC.5 (Pin 6 PORT C & PORT 1) R2 (J3)
PC.6 (Pin 7 PORT C & PORT 1) R3 (J3)
Tata Letak
PC.7 (Pin 8 PORT C & PORT 1) R4 (J3)

Contoh Program

Berikut ini merupakan contoh program menggunakan DT-51™


Low Cost Series Port 1. Program akan mengirimkan hasil penekanan
secara UART dengan baud rate 19200 bps, 8 bit data, tanpa
bit parity, 1 bit stop, dan tanpa flow control.

$TITLE(4x4 KEYPAD MODULE TESTING PROGRAM)


$MOD51
CSEG
ORG 0000H
LJMP Start

ORG 0100H

LDelay: PUSH 06H


PUSH 07H
MOV R6,#080H
LDel: MOV R7,#0FFH
DJNZ R7,$
DJNZ R6,LDel
POP 07H
Alokasi Pin J3 POP 06H
RET
R4 R3
R2 R1 TxByte: MOV SBUF,A
JNB TI,$
C4 C3 CLR TI
C2 C1 RET
VCC NC
InitSerial: ORL TMOD,#00100000B
2
1

ANL TMOD,#00101111B
NC = tidak terhubung MOV TH1,#0FDH
ke mana-mana MOV TL1,#0FDH
Cx = kolom ke-x MOV SCON,#01010000B
Rx = baris ke-x MOV PCON,#10000000B
Contoh Koneksi SETB TR1
RET
Pada dasarnya pin Cx dan Rx pada J3 bebas dihubungkan ke
pin input/output manapun pada mikrokontroler. Koneksi berikut Start: MOV P1,#0FFH
ini hanya contoh dan tidak mutlak. MOV SP,#40H
LCALL InitSerial
DT-51™ Low Cost Series DT-I/O 4x4
dan DT-AVR Low Cost Series Keypad Module ChkB1: SETB P1.7
VCC (Pin 2 PORT1) atau +5VDC VCC (J3) CLR P1.4
ChkB1K1: JB P1.0,ChkB1K2
P1.0 (Pin 3 PORT1) C1 (J3) MOV A,#'1'
P1.1 (Pin 4 PORT1) C2 (J3) LCALL LDelay
P1.2 (Pin 5 PORT1) C3 (J3) LCALL LDelay
P1.3 (Pin 6 PORT1) C4 (J3)
LCALL TxByte LCALL LDelay
ChkB1K2: JB P1.1,ChkB1K3 LCALL LDelay
MOV A,#'2' LCALL TxByte
LCALL LDelay ChkB3K3: JB P1.2,ChkB3K4
LCALL LDelay MOV A,#'9'
LCALL TxByte LCALL LDelay
ChkB1K3: JB P1.2,ChkB1K4 LCALL LDelay
MOV A,#'3' LCALL TxByte
LCALL LDelay ChkB3K4: JB P1.3,ChkB4
LCALL LDelay MOV A,#'C'
LCALL TxByte LCALL LDelay
ChkB1K4: JB P1.3,ChkB2 LCALL LDelay
MOV A,#'A' LCALL TxByte
LCALL LDelay
LCALL LDelay ChkB4: SETB P1.6
LCALL TxByte CLR P1.7
ChkB4K1: JB P1.0,ChkB4K2
ChkB2: SETB P1.4 MOV A,#'*'
CLR P1.5 LCALL LDelay
ChkB2K1: JB P1.0,ChkB2K2 LCALL LDelay
MOV A,#'4' LCALL TxByte
LCALL LDelay ChkB4K2: JB P1.1,ChkB4K3
LCALL LDelay MOV A,#'0'
LCALL TxByte LCALL LDelay
ChkB2K2: JB P1.1,ChkB2K3 LCALL LDelay
MOV A,#'5' LCALL TxByte
LCALL LDelay ChkB4K3: JB P1.2,ChkB4K4
LCALL LDelay MOV A,#'#'
LCALL TxByte LCALL LDelay
ChkB2K3: JB P1.2,ChkB2K4 LCALL LDelay
MOV A,#'6' LCALL TxByte
LCALL LDelay ChkB4K4: JB P1.3,LoopChk
LCALL LDelay MOV A,#'D'
LCALL TxByte LCALL LDelay
ChkB2K4: JB P1.3,ChkB3 LCALL LDelay
MOV A,#'B' LCALL TxByte
LCALL LDelay
LCALL LDelay LoopChk: AJMP ChkB1
LCALL TxByte
AJMP $
ChkB3: SETB P1.5 END
CLR P1.6
ChkB3K1: JB P1.0,ChkB3K2
MOV A,#'7' Terima Kasih atas kepercayaan Anda menggunakan produk
LCALL LDelay kami, bila ada kesulitan, pertanyaan atau saran mengenai produk
LCALL LDelay ini silahkan menghubungi technical support kami :
LCALL TxByte
ChkB3K2: JB P1.1,ChkB3K3 support@innovativeelectronics.com
MOV A,#'8'
VCC
J5

1
Keypad Rubber 4X4

VCC
1
2
3
4
5
6
7
8

47K

47K

47K

47K

47K

47K
R1

47K

47K
J1

R2

R3

R4

R5

R6

R7

R8

Copyright © 2005 Innovative Electronics


CR1
CR2
CR3
CR4
C1
C2
C3
C4
C2
C4
R2
R4

C1

C2

C3

C4
VCC
Header 5x2

2
4
6
8
10
J3

1
3
5
7
9

IN4148

IN4148

IN4148

IN4148
D1

D2

D3

D4
CR1

CR2

CR3

CR4
C1
C3
R1
R3

R1

R2

R3

R4





    




    
     










          
 

 
          
 

 
          
 


    
 
















    

  
" 
       ! 
#
    


 
   


                                                     

    
     
     
            
 ! " #     $  % &! %                                       
'( )    * ++                                                  
,%- .   &*
  &,  
* .        /0                                                    
12         *)++*34+2+2456++**7!++228                       
9
:     ,;1 <,;252.   8
3  $     9 !   
+=   #      +<,+  
    #      +<*+  
=  #    > $      ;     
 - ;         *2.   4/     
  "           +,,4+,+5##8  
' ! .          +*+4+,,5##8    
,: "          3,4' ,5##8  
*: ! .         *,4,+,5##8    
1? .                  


2  . 
.  @
 #    %%  












&' #  ( 













































 
  





         
  


                                          
   
                                             

                                         
   

 

                                           
                                             

 

                                          

                                          


                                          
 

                                          


  
   
                                                   

                                          
                                          















, ' -# !













































.#' +/!'!  

A # 
#@ - - ; 7  > # 


! 
(   ( (

 +  1+
(
/2%(   (  +   +

=   #   
>    + <,+
 

2  
    #   
>  
 + <*+

























0# #     '                             
*0   .     
A # 
#@ - 
 - ; 7 


(  
( (

 ', ,+ ,, (


5/8


(  
(   '1  (
5/2% 8

(
B. +1(   ( <+  (
A   ( C,+ 
 
(   (
/
 +   +(  (
( C,+


   A
 ,  #)
5/8 ( (

C,+


  
A  +'+  #)
5/2% 8

   A
   9* #)
5/0% 8 (  C'















*A $   

! 
#@ / %    
 ( +( 
 ( ,+( ! 
%  $ /25<8
  (  + ( ! 
%  $/258
' > B&/      5B  / A  8
, >&? B&/      
* 0 B&/   &   @  
1 + B&/  @ +
9  B&/  @ 
3  B&/  @ 
+   B&/  @ 
 ' B&/  @ '
 , B&/  @ ,
  * B&/  @ *
' 1 B&/  @ 1
! ) '( ! 
%  $/05<8
 6 +( ! 
%  $/058
   

   
   
   
   
   

  

   






6.3 Interface Timing Chart
AC Characteristics(V =4.5V~5.5V,Ta=-30~+85 7


0RGH &KDUDFWHULVWLF 6\PERO 0LQï 7\Sï 0D[ï 8QLW

(ý&\FOHý7LPH WF èíí ð ð

 (ý5LVHýîý)DOOý7LPH W5ñW) ð ð ëí
 (ý3XOVHý:LGWKýõ+LJKñý/RZô WZ ëêí ð ð
 :ULWHý0RGH 5î:ýDQGý56ý6HWXSý7LPH WVXì éí ð ð QV
õ5HIHUýWRý)LJðçô
 5î:ýDQGý56ý+ROGý7LPH W+ì ìí ð ð
 'DWDý6HWXSý7LPH WVXë åí ð ð

'DWDý+ROGý7LPH W+ë ìí ð ð

(ý&\FOHý7LPH WF èíí ð ð

 (ý5LVHýîý)DOOý7LPH W5ñW) ð ð ëí
 (ý3XOVHý:LGWKýõ+LJKñý/RZô WZ ëêí ð ð
 5HDGý0RGH 5î:ýDQGý56ý6HWXSý7LPH WVX éí ð ð QV
õ5HIHUýWRý)LJðæô
 5î:ýDQGý56ý+ROGý7LPH W+ ìí ð ð
 'DWDý2XWSXWý'HOD\ý7LPH W' ð ð ìëí

'DWDý+ROGý7LPH W'+ è ð ð
































 56 9 , +ì
9 , /ì
 W68ì W Kì

 5î: 9 , /ì
9 , /ì
 WZ W Kì
 WI
9 , +ì 9 , +ì
 ( 9 , /ì 9 , /ì 9 , /ì
 WU W 68ë W Kë
 9 , +ì 9 , +ì
'%ía'%æ
 9 , /ì
9DOLG 'DWD
9 , /ì
 W&


 )LJXUHýçýïýý:ULWHý0RGHý7LPLQJý'LDJUDP


 56 9 , +ì
9 , /ì
 W 68 WK

9 , +ì 9 , +ì
 5î:
 WZ WK
WI

9 , +ì 9 , +ì
 ( 9 , /ì 9 , /ì 9 , /ì
WU W' W' +

 9 , +ì 9 , +ì
'%ía'%æ
 9 , /ì
9DOLG 'DWD
9 , /ì
W&


 )LJXUHýæýïýý5HDGý0RGHý7LPLQJý'LDJUDP












 

+(>  1 

ýý,QVWUXFWLRQý7DEOH

 ,QVWUXFWLRQý&RGH ([HFXWLRQý
,QVWUXFWLRQ 'HVFULSWLRQ WLPHýõIRVF ý

56 5î: '%æ '%ç '%è '%é '%ê '%ë '%ì '%í ëæíýN+]ô

&OHDU
 ý:ULWHý¦ëí+§ýWRý''5$0ýDQGýVHWý
í í í í í í í í í ì ìïèêýPVý
'LVSOD\ ý''5$0ýDGGUHVVýWRý¦íí+§ýIURPý$&

 ý6HWý''5$0ýDGGUHVVýWRý¦íí+§ý
 ýIURPý$&ýDQGýUHWXUQýFXUVRUýWRýLWV
5HWXUQý
í í í í í í í í ì ð ýRULJLQDOýSRVLWLRQýLIýVKLIWHGïý ìïèêýPV
+RPH
 ý7KHýFRQWHQWVýRIý''5$0ýDUHýQRWý
 ýFKDQJHGï

(QWU\ý0RGHý ý$VVLJQýFXUVRUýPRYLQJýGLUHFWLRQý
 6HWý í í í í í í í ì ,î' 6+ êäýPV
ýDQGýHQDEOHýWKHýVKLIWýRIýHQWLUHýGLVSOD\ïý

ý6HWýGLVSOD\õ'ôñýFXUVRUõ&ôñý

'LVSOD\ý21î êäýPV
í í í í í í ì ' & % ýDQGýEOLQNLQJýRIýFXUVRUõ%ôýRQîRIIý
2))ý&RQWURO
 ýFRQWUROýELWï

&XUVRUýRU ý6HWýFXUVRUýPRYLQJýDQGýGLVSOD\ý
 êäýPV
ý'LVSOD\ý í í í í í ì 6î& 5î/ ð ð ýVKLIWýFRQWUROýELWñýDQGýWKHýGLUHFWLRQñý
6KLIW ýZLWKRXWýFKDQJLQJýRIý''5$0ýGDWDïý

ý6HWýLQWHUIDFHýGDWDýOHQJWKýõ'/ãý

ýåðELWîéðELWôñýQXPEHUVýRIýGLVSOD\ýOLQH êäýPV
)XQFWLRQý6HW
 í í í í ì '/ 1 ) ð ðý
ýõ1ãýëðOLQHîìðOLQHôýDQGñýGLVSOD\
 ýIRQWýW\SHýõ)ãèuììGRWVîèuåýGRWVô

6HWý&*5$0ý ý6HWý&*5$0ýDGGUHVVýLQýDGGUHVVý
í í í ì $&è $&é $&ê $&ë $&ì $&í êäýPV

$GGUHVV ýFRXQWHUï

6HWý''5$0ý ý6HWý''5$0ýDGGUHVVýLQýDGGUHVVý êäýPV
 í í ì $&ç $&è $&é $&ê $&ë $&ì $&í
$GGUHVV ýFRXQWHUï

ý:KHWKHUýGXULQJýLQWHUQDOýRSHUDWLRQ

5HDGý%XV\ý
ýRUýQRWýFDQýEHýNQRZQýE\ýUHDGLQJý%)ïý
)ODJýDQGý
 í ì %) $&ç $&è $&é $&ê $&ë $&ì $&í íýPV
ý7KHýFRQWHQWVýRIýDGGUHVVýFRXQWHU
$GGUHVV
 ýFDQýDOVRýEHýUHDGï

:ULWHý'DWDýWRý ý:ULWHýGDWDýLQWRýLQWHUQDOý5$0ý
 ì í 'æ 'ç 'è 'é 'ê 'ë 'ì 'í éêýPV
5$0 ýõ''5$0î&*5$0ôï

5HDGý'DWDý ý5HDGýGDWDýIURPýLQWHUQDOý5$0ý
 ì ì 'æ 'ç 'è 'é 'ê 'ë 'ì 'í éêýPV
IURPý5$0 ýõ''5$0î&*5$0ôï

ýýýýýýýýýýýýóý¦ð¦ãýGRQ©WýFDUH

127(ãý:KHQýDQý038ýSURJUDPýZLWKýFKHFNLQJýWKHý%XV\ý)ODJõ'%æôýLVýPDGHñýLWýPXVWýEHýQHFHVVDU\ýìîë)RVFýLV

ýýýýýýýýýýýýýQHFHVVDU\ýIRUýH[HFXWLQJýWKHýQH[WýLQVWUXFWLRQýE\ýWKHýIDOOLQJýHGJHýRIýWKHýö(öýVLJQDOýDIWHUýWKHý%XV\ý)ODJýõ'%æôý

ýýýýýýýýýýýýýJRHVýWRý¦/RZ§ïý






)+0-      ;:,6D**))?**7
)+0-      ;:,6D**))?**7












































1 #   
1=  2.                                        C, 

A # 
#@ 2  - 
 - ; 7 

  C+   ,      +
( )  2≥2  
  C+   +      +

 C+ 
2   >  2 '+   
 C+ 


   ,+

>    C+ 
#
#   C+ 

   ,+
$$
























1 $ $=  2.    
1 $ $( ) 
                                              

                 #                           #
1 $ $2   > 

   
 


  
     
 
 
- 2       
   8)#@   #   , F   8: # $ G 
*'B"  
1  $ $>   # 

     #      C     <        $$ #      C     <                       


    - 2  
       8/2=  (  '1(   8: # $ G 
*'B"  


2## 
92  $>  @
                                 C, 
   A # 2  $       
 B. #    0     
 . .. *+ 
         #   $  #  3*B
/ #    0     
 .  + 

        #   $  #  3*B
0     
 . 

B. #        5%      8
 ,+ 
=    .  . #     . 
3*B
 #  $  # 
0     
 . 
/ #    + 
'      
=   3*B
#   $  # 
0     
 . .. '+ 
B. #   
, #    ...#
 3+H>B
&B#
   
   $  #  3*B
0     
 . 
.. #   
  
 #    + , *+ ,   + &*+ 
*
2
  +# ,#  +# ,# +
 
 

 
+B"D,+B"E
(@    0     
 . 
1 ,+#&E
5    8 %@    
'+#
B $  % E
.   0     
 . .
9 ++#&E
5    8    
#
0     
 . 
) #.  '+! 
3 #.    
!     *B
  @
 










9:  I#  2 

2    A #


:  I #  2 
A #    ' , * 1 9 3

 
√ √ √ √ √ √ √ √ √ = $ . @  $ 
 $ 

0    = $ .     


√ √ √ √ √    
 $   $  

- .   = $ . # .  


       √ √ 
 $   $   

=  
√ √ √ √ √ √   √ = $ .    $  
2.    

  :   # $  9

> #     $  C =    $  < - .  


  $   
















345*67**

0; #  )  C,  A  


   5  .   8 - - ; 7  A/ )J/
7  #  #  - K
0;      

.   E .  +
(   ) ;)
AA
   @  
  -
A  
/2,# ,
7  #  #  - K

 
.   E +
 ) ;
AA
 $   
   -
,
 - K $   =  #  ##E. E  #  E/   
     -  $   = . 
      #  $# 99
























$8'  5* +'# 
+B !    
+ .  
     #   $      @K       # .  
.@
 $# ..  E  
+A$ . 
   #    . G
 @    
  E@      

# .E$ . @  # 
    .
 . E# 
 . $$ 
  
+   
 ; % $   . 
$   .  K  
  .#
   .    % 
 
+'.  " %  . 
$  $ . /2# $  

 . B   . "   $
  
+,A$ . 
$   # E@ .  . $     

   . $ 
 .A$  # 
 E#  .
 . $ . $%                                            
          A
 .       
          0 .
 .   
     %    .  .  .  #    @%  #
  #   .   "   
0  
E   . $       
          ?                                                           
          6                                                           
          )# %                                                
+*  #    #@  . /2- 
+1A$ .   $$E  
 .       
+9 %     $ .   #  @
    
E@   $ 
#    ## %#                 
         . @
. .  . /2-  
     @ G $  #@
E.  E# @  

                   
          .  #  $     
    E     
 #@
  .  
              
     . /2-   . $#    . 
$  
   .  $$ .  % $#     
#

@                            






+                                                        
+?.   . /2# E % ;    .  
. . $$    #                             
+. /2# .@     .     #     
A$ .  /2 #   @     $   # E .   ## 
                                    
              #           +   '+                              
             >  % 
.#
  9+H           
+ . /2# .@    . # .  E   
. #$      
+  .  /2 #  . @   $   %   . 
  E   . % ; %   E  E  # 
.     






























 /
A   #   $     $  


A # 2   2  

/        # 

> @   )  . #  # 

 ? "    # 


.#  

@@ @      - ;  $    
! "    "   
φL+ ## + ## φ +,##

 . $ )  . #  # 


 " 

       - ;     


5% 
4L+## +## 4 +,## - ; 
 8
 
 4C5 <@8& 5 8
  
       - ;    
5% 
 8 ++## ++,##
 L++##
        @ +##

! %  
 
  # 











 /-
A   #   $
 $  


A # 2   2  

=  #   ##   # 

.    # 

?%      # 

2     %  )  . #  # 

2  )  . #  # 


 
   - ;    
 
 4L+## +## 4 +## 
 
  
  4C5 <@8& - ; 
! .   
    
  #      - ;   
5=8  
 )L+## +## ) +##
 L+,##


  
   - ;    
    
5%  4L+## +## 4 +## 
 8 
- ; 
4C5 <@8&  
  5 8
   - ;      
   
5%  ++## ++,##
 8 L++##
         @ +,##




 /-
A   #   $
 $  5  8

A # 2   2  
    - ; $     
 
 ; +## +## ; +## 
 
 ;C5 <@8& 
 
  
 - ; 
  $  
   - ; $    
  
  
 +## +## +##
 $        M+
# 
$ #  
 
 
- ; $    
+9? ?


C#  %  $ .
?C# %  $ .


  
 
       

SLLS047K − FEBRUARY 1989 − REVISED JANUARY 2004

D Meet or Exceed TIA/EIA-232-F and ITU MAX232 . . . D, DW, N, OR NS PACKAGE


Recommendation V.28 MAX232I . . . D, DW, OR N PACKAGE
(TOP VIEW)
D Operate With Single 5-V Power Supply
D Operate Up To 120 kbit/s C1+ 1 16 VCC
D Two Drivers and Two Receivers VS+ 2 15 GND
C1− 3 14 T1OUT
D ±30-V Input Levels
C2+ 4 13 R1IN
D Low Supply Current . . . 8 mA Typical C2− 5 12 R1OUT
D ESD Protection Exceeds JESD 22 VS− 6 11 T1IN
− 2000-V Human-Body Model (A114-A) T2OUT 7 10 T2IN
D Applications R2IN 8 9 R2OUT
− TIA/EIA-232-F, Battery-Powered Systems,
Terminals, Modems, and Computers

description/ordering information
The MAX232 is a dual driver/receiver that includes a capacitive voltage generator to supply TIA/EIA-232-F
voltage levels from a single 5-V supply. Each receiver converts TIA/EIA-232-F inputs to 5-V TTL/CMOS levels.
These receivers have a typical threshold of 1.3 V, a typical hysteresis of 0.5 V, and can accept ±30-V inputs.
Each driver converts TTL/CMOS input levels into TIA/EIA-232-F levels. The driver, receiver, and
voltage-generator functions are available as cells in the Texas Instruments LinASIC library.

ORDERING INFORMATION
ORDERABLE TOP-SIDE
TA PACKAGE†
PART NUMBER MARKING
PDIP (N) Tube of 25 MAX232N MAX232N
Tube of 40 MAX232D
SOIC (D) MAX232
Reel of 2500 MAX232DR
0°C to 70°C
Tube of 40 MAX232DW
SOIC (DW) MAX232
Reel of 2000 MAX232DWR
SOP (NS) Reel of 2000 MAX232NSR MAX232
PDIP (N) Tube of 25 MAX232IN MAX232IN
Tube of 40 MAX232ID
SOIC (D) MAX232I
−40°C
−40 C to 85
85°C
C Reel of 2500 MAX232IDR
Tube of 40 MAX232IDW
SOIC (DW) MAX232I
Reel of 2000 MAX232IDWR
† Package drawings, standard packing quantities, thermal data, symbolization, and PCB design
guidelines are available at www.ti.com/sc/package.

Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of
Texas Instruments semiconductor products and disclaimers thereto appears at the end of this data sheet.

LinASIC is a trademark of Texas Instruments.


      !"#   $"%&! '#( Copyright  2004, Texas Instruments Incorporated
'"! !  $#!! $# )# #  #* "#
'' +,( '"! $!#- '#  #!#&, !&"'#
#-  && $##(

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 1


  
 
       

SLLS047K − FEBRUARY 1989 − REVISED JANUARY 2004

Function Tables

EACH DRIVER
INPUT OUTPUT
TIN TOUT
L H
H L
H = high level, L = low
level

EACH RECEIVER
INPUT OUTPUT
RIN ROUT
L H
H L
H = high level, L = low
level

logic diagram (positive logic)


11 14
T1IN T1OUT

10 7
T2IN T2OUT

12 13
R1OUT R1IN

9 8
R2OUT R2IN

2 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265


  
 
       

SLLS047K − FEBRUARY 1989 − REVISED JANUARY 2004

absolute maximum ratings over operating free-air temperature range (unless otherwise noted)†
Input supply voltage range, VCC (see Note 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . −0.3 V to 6 V
Positive output supply voltage range, VS+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VCC − 0.3 V to 15 V
Negative output supply voltage range, VS− . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . −0.3 V to −15 V
Input voltage range, VI: Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . −0.3 V to VCC + 0.3 V
Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ±30 V
Output voltage range, VO: T1OUT, T2OUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VS− − 0.3 V to VS+ + 0.3 V
R1OUT, R2OUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . −0.3 V to VCC + 0.3 V
Short-circuit duration: T1OUT, T2OUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unlimited
Package thermal impedance, θJA (see Notes 2 and 3): D package . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73°C/W
DW package . . . . . . . . . . . . . . . . . . . . . . . . . . 57°C/W
N package . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67°C/W
NS package . . . . . . . . . . . . . . . . . . . . . . . . . . . 64°C/W
Operating virtual junction temperature, TJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150°C
Storage temperature range, Tstg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . −65°C to 150°C
† Stresses beyond those listed under “absolute maximum ratings” may cause permanent damage to the device. These are stress ratings only, and
functional operation of the device at these or any other conditions beyond those indicated under “recommended operating conditions” is not
implied. Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability.
NOTES: 1. All voltages are with respect to network GND.
2. Maximum power dissipation is a function of TJ(max), θJA, and TA. The maximum allowable power dissipation at any allowable
ambient temperature is PD = (TJ(max) − TA)/θJA. Operating at the absolute maximum TJ of 150°C can affect reliability.
3. The package thermal impedance is calculated in accordance with JESD 51-7.

recommended operating conditions


MIN NOM MAX UNIT
VCC Supply voltage 4.5 5 5.5 V
VIH High-level input voltage (T1IN,T2IN) 2 V
VIL Low-level input voltage (T1IN, T2IN) 0.8 V
R1IN, R2IN Receiver input voltage ±30 V
MAX232 0 70
TA Operating free-air temperature °C
MAX232I −40 85

electrical characteristics over recommended ranges of supply voltage and operating free-air
temperature (unless otherwise noted) (see Note 4 and Figure 4)
PARAMETER TEST CONDITIONS MIN TYP‡ MAX UNIT
VCC = 5.5 V, All outputs open,
ICC Supply current 8 10 mA
TA = 25°C
‡ All typical values are at VCC = 5 V and TA = 25°C.
NOTE 4: Test conditions are C1−C4 = 1 µF at VCC = 5 V ± 0.5 V.

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 3


  
 
       

SLLS047K − FEBRUARY 1989 − REVISED JANUARY 2004

DRIVER SECTION

electrical characteristics over recommended ranges of supply voltage and operating free-air
temperature range (see Note 4)
PARAMETER TEST CONDITIONS MIN TYP† MAX UNIT
VOH High-level output voltage T1OUT, T2OUT RL = 3 kΩ to GND 5 7 V
VOL Low-level output voltage‡ T1OUT, T2OUT RL = 3 kΩ to GND −7 −5 V
ro Output resistance T1OUT, T2OUT VS+ = VS− = 0, VO = ±2 V 300 Ω
IOS§ Short-circuit output current T1OUT, T2OUT VCC = 5.5 V, VO = 0 ±10 mA
IIS Short-circuit input current T1IN, T2IN VI = 0 200 µA
† All typical values are at VCC = 5 V, TA = 25°C.
‡ The algebraic convention, in which the least-positive (most negative) value is designated minimum, is used in this data sheet for logic voltage
levels only.
§ Not more than one output should be shorted at a time.
NOTE 4: Test conditions are C1−C4 = 1 µF at VCC = 5 V ± 0.5 V.

switching characteristics, VCC = 5 V, TA = 25°C (see Note 4)


PARAMETER TEST CONDITIONS MIN TYP MAX UNIT
RL = 3 kΩ to 7 kΩ,
SR Driver slew rate 30 V/µs
See Figure 2
SR(t) Driver transition region slew rate See Figure 3 3 V/µs
Data rate One TOUT switching 120 kbit/s
NOTE 4: Test conditions are C1−C4 = 1 µF at VCC = 5 V ± 0.5 V.

RECEIVER SECTION

electrical characteristics over recommended ranges of supply voltage and operating free-air
temperature range (see Note 4)
PARAMETER TEST CONDITIONS MIN TYP† MAX UNIT
VOH High-level output voltage R1OUT, R2OUT IOH = −1 mA 3.5 V
VOL Low-level output voltage‡ R1OUT, R2OUT IOL = 3.2 mA 0.4 V
Receiver positive-going input
VIT+ R1IN, R2IN VCC = 5 V, TA = 25°C 1.7 2.4 V
threshold voltage
Receiver negative-going input
VIT− R1IN, R2IN VCC = 5 V, TA = 25°C 0.8 1.2 V
threshold voltage
Vhys Input hysteresis voltage R1IN, R2IN VCC = 5 V 0.2 0.5 1 V
ri Receiver input resistance R1IN, R2IN VCC = 5, TA = 25°C 3 5 7 kΩ
† All typical values are at VCC = 5 V, TA = 25°C.
‡ The algebraic convention, in which the least-positive (most negative) value is designated minimum, is used in this data sheet for logic voltage
levels only.
NOTE 4: Test conditions are C1−C4 = 1 µF at VCC = 5 V ± 0.5 V.

switching characteristics, VCC = 5 V, TA = 25°C (see Note 4 and Figure 1)


PARAMETER TYP UNIT
tPLH(R) Receiver propagation delay time, low- to high-level output 500 ns
tPHL(R) Receiver propagation delay time, high- to low-level output 500 ns
NOTE 4: Test conditions are C1−C4 = 1 µF at VCC = 5 V ± 0.5 V.

4 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265


  
 
       

SLLS047K − FEBRUARY 1989 − REVISED JANUARY 2004

PARAMETER MEASUREMENT INFORMATION


VCC

R1OUT RL = 1.3 kΩ
R1IN
or
or
Pulse R2OUT See Note C
R2IN
Generator
(see Note A)

CL = 50 pF
(see Note B)

TEST CIRCUIT

≤10 ns ≤10 ns

3V
90% 90%
Input 50% 50%
10% 10%
0V
500 ns
tPLH
tPHL
VOH
Output 1.5 V 1.5 V
VOL
WAVEFORMS
NOTES: A. The pulse generator has the following characteristics: ZO = 50 Ω, duty cycle ≤ 50%.
B. CL includes probe and jig capacitance.
C. All diodes are 1N3064 or equivalent.

Figure 1. Receiver Test Circuit and Waveforms for tPHL and tPLH Measurements

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 5


  
 
       

SLLS047K − FEBRUARY 1989 − REVISED JANUARY 2004

PARAMETER MEASUREMENT INFORMATION


T1IN or T2IN T1OUT or T2OUT
Pulse
Generator EIA-232 Output
(see Note A)
CL = 10 pF
RL
(see Note B)

TEST CIRCUIT
≤10 ns ≤10 ns
3V
90% 90%
Input 50% 50%
10% 10%
0V
5 µs
tPLH
tPHL

90% VOH
90%
Output
10% 10%
VOL
tTHL tTLH

0.8 (V –V ) 0.8 (V –V )
OH OL OL OH
SR + or
t t
TLH THL
WAVEFORMS

NOTES: A. The pulse generator has the following characteristics: ZO = 50 Ω, duty cycle ≤ 50%.
B. CL includes probe and jig capacitance.

Figure 2. Driver Test Circuit and Waveforms for tPHL and tPLH Measurements (5-µs Input)

Pulse
Generator EIA-232 Output
(see Note A)
3 kΩ CL = 2.5 nF

TEST CIRCUIT

≤10 ns ≤10 ns
Input
90% 90%
10% 1.5 V 1.5 V 10%
20 µs
tTLH
tTHL

VOH
3V 3V
Output
−3 V −3 V
VOL

6V
SR +
t or t
THL TLH

WAVEFORMS
NOTE A: The pulse generator has the following characteristics: ZO = 50 Ω, duty cycle ≤ 50%.

Figure 3. Test Circuit and Waveforms for tTHL and tTLH Measurements (20-µs Input)

6 POST OFFICE BOX 655303 • DALLAS, TEXAS 75265


  
 
       

SLLS047K − FEBRUARY 1989 − REVISED JANUARY 2004

APPLICATION INFORMATION
5V

+
CBYPASS = 1 µF

16
C3† 1 µF
VCC
1 2
C1+ 8.5 V
C1 1 µF 3 VS+
C1−
4 6
VS− −8.5 V
C2+
C2 1 µF 5 C4 1 µF
C2− +

11 14
EIA-232 Output
From CMOS or TTL
10 7
EIA-232 Output
12 13
EIA-232 Input
To CMOS or TTL
9 8
EIA-232 Input
0V

15
GND
† C3 can be connected to VCC or GND.
NOTES: A. Resistor values shown are nominal.
B. Nonpolarized ceramic capacitors are acceptable. If polarized tantalum or electrolytic capacitors are used, they should be
connected as shown.

Figure 4. Typical Operating Circuit

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265 7


MECHANICAL

MPDI002C – JANUARY 1995 – REVISED DECEMBER 20002

N (R-PDIP-T**) PLASTIC DUAL-IN-LINE PACKAGE


16 PINS SHOWN

PINS **
14 16 18 20
DIM

0.775 0.775 0.920 1.060


A A MAX
(19,69) (19,69) (23,37) (26,92)

16 9 0.745 0.745 0.850 0.940


A MIN
(18,92) (18,92) (21,59) (23,88)

0.260 (6,60) MS-100


AA BB AC AD
0.240 (6,10) C VARIATION

1 8
0.070 (1,78)
D
0.045 (1,14)

0.045 (1,14) 0.325 (8,26)


0.020 (0,51) MIN
0.030 (0,76) D 0.300 (7,62)
0.015 (0,38)

0.200 (5,08) MAX Gauge Plane

Seating Plane

0.125 (3,18) MIN 0.010 (0,25) NOM

0.100 (2,54) 0.430 (10,92) MAX


0.021 (0,53)
0.015 (0,38)
0.010 (0,25) M

14/18 PIN ONLY


20 pin vendor option D
4040049/E 12/2002

NOTES: A. All linear dimensions are in inches (millimeters).


B. This drawing is subject to change without notice.
C. Falls within JEDEC MS-001, except 18 and 20 pin minimum body lrngth (Dim A).
D. The 20 pin end lead shoulder width is a vendor option, either half or full width.

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265


MECHANICAL DATA

MSOI002B – JANUARY 1995 – REVISED SEPTEMBER 2001

D (R-PDSO-G**) PLASTIC SMALL-OUTLINE PACKAGE


8 PINS SHOWN

0.020 (0,51)
0.050 (1,27) 0.010 (0,25)
0.014 (0,35)
8 5

0.244 (6,20) 0.008 (0,20) NOM


0.228 (5,80)
0.157 (4,00)
0.150 (3,81)

Gage Plane

1 4 0.010 (0,25)

A 0°– 8°
0.044 (1,12)
0.016 (0,40)

Seating Plane

0.010 (0,25)
0.069 (1,75) MAX 0.004 (0,10)
0.004 (0,10)

PINS **
8 14 16
DIM

0.197 0.344 0.394


A MAX
(5,00) (8,75) (10,00)
0.189 0.337 0.386
A MIN
(4,80) (8,55) (9,80)

4040047/E 09/01

NOTES: A. All linear dimensions are in inches (millimeters).


B. This drawing is subject to change without notice.
C. Body dimensions do not include mold flash or protrusion, not to exceed 0.006 (0,15).
D. Falls within JEDEC MS-012

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265


MECHANICAL DATA

MSOI003E – JANUARY 1995 – REVISED SEPTEMBER 2001

DW (R-PDSO-G**) PLASTIC SMALL-OUTLINE PACKAGE


16 PINS SHOWN

0.020 (0,51)
0.050 (1,27) 0.010 (0,25)
0.014 (0,35)
16 9

0.419 (10,65)
0.400 (10,15)
0.299 (7,59) 0.010 (0,25) NOM
0.291 (7,39)

Gage Plane

0.010 (0,25)
1 8
0°– 8° 0.050 (1,27)
A 0.016 (0,40)

Seating Plane

0.012 (0,30)
0.104 (2,65) MAX 0.004 (0,10)
0.004 (0,10)

PINS **
16 18 20 24 28
DIM

0.410 0.462 0.510 0.610 0.710


A MAX
(10,41) (11,73) (12,95) (15,49) (18,03)

0.400 0.453 0.500 0.600 0.700


A MIN
(10,16) (11,51) (12,70) (15,24) (17,78)

4040000/E 08/01

NOTES: A. All linear dimensions are in inches (millimeters).


B. This drawing is subject to change without notice.
C. Body dimensions do not include mold flash or protrusion not to exceed 0.006 (0,15).
D. Falls within JEDEC MS-013

POST OFFICE BOX 655303 • DALLAS, TEXAS 75265


IMPORTANT NOTICE

Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications,
enhancements, improvements, and other changes to its products and services at any time and to discontinue
any product or service without notice. Customers should obtain the latest relevant information before placing
orders and should verify that such information is current and complete. All products are sold subject to TI’s terms
and conditions of sale supplied at the time of order acknowledgment.

TI warrants performance of its hardware products to the specifications applicable at the time of sale in
accordance with TI’s standard warranty. Testing and other quality control techniques are used to the extent TI
deems necessary to support this warranty. Except where mandated by government requirements, testing of all
parameters of each product is not necessarily performed.

TI assumes no liability for applications assistance or customer product design. Customers are responsible for
their products and applications using TI components. To minimize the risks associated with customer products
and applications, customers should provide adequate design and operating safeguards.

TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right,
copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process
in which TI products or services are used. Information published by TI regarding third-party products or services
does not constitute a license from TI to use such products or services or a warranty or endorsement thereof.
Use of such information may require a license from a third party under the patents or other intellectual property
of the third party, or a license from TI under the patents or other intellectual property of TI.

Reproduction of information in TI data books or data sheets is permissible only if reproduction is without
alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction
of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for
such altered documentation.

Resale of TI products or services with statements different from or beyond the parameters stated by TI for that
product or service voids all express and any implied warranties for the associated TI product or service and
is an unfair and deceptive business practice. TI is not responsible or liable for any such statements.

Following are URLs where you can obtain information on other Texas Instruments products and application
solutions:

Products Applications
Amplifiers amplifier.ti.com Audio www.ti.com/audio
Data Converters dataconverter.ti.com Automotive www.ti.com/automotive
DSP dsp.ti.com Broadband www.ti.com/broadband
Interface interface.ti.com Digital Control www.ti.com/digitalcontrol
Logic logic.ti.com Military www.ti.com/military
Power Mgmt power.ti.com Optical Networking www.ti.com/opticalnetwork
Microcontrollers microcontroller.ti.com Security www.ti.com/security
Telephony www.ti.com/telephony
Video & Imaging www.ti.com/video
Wireless www.ti.com/wireless

Mailing Address: Texas Instruments


Post Office Box 655303 Dallas, Texas 75265

Copyright  2004, Texas Instruments Incorporated


PROFILE PENULIS

ADIB KARISMA PUTRA


Penyusun lahir di Madiun, pada tanggal 7
Juni 1984. Sebagai anak pertama dari 3
bersaudara seorang ibu bernama Sri
Handayani dan ayah bernama Waris Susanto.
Saat ini bertempat tinggal di Jl Raya
Ponorogo No. 56, Geger, Madiun.

Riwayat pendidikan formal yang pernah ditempuh:


‰ SD Negeri 1 Slambur, Geger, Madiun lulus tahun 1997.
‰ SMP Negeri 1 Geger, Madiun lulus tahun 2000.
‰ SMK Telekomunikasi Darul Ulum Jombang lulus tahun
2003.
‰ D3 Jurusan Telekomunikasi, Politeknik Elektronika
Negeri Surabaya, Institut Teknologi Sepuluh Nopember
Surabaya (ITS).

Pada tanggal 2 Agustus 2003 mengikuti Seminar Proyek Akhir


sebagai salah satu persyaratan untuk mendapatkan gelar Ahli
Madya (A.Md.) di Politeknik Elektronika Negeri Surabaya,
Institut Teknologi Sepuluh Nopember Surabaya (ITS).

You might also like