Perancangan Sistem Kontrol Lampu Dengan Memanfaatkan Modem Wavecome Sebagai Sms Gateway

BAB II
LANDASAN TEORI

Dalam Bab ini penulis akan membahas tentang komponen- komponen yang di
gunakan dalam seluruh unit alat ini. Agar pembahasan tidak melebar dan
menyimpang dari topic utama laporan ini, maka setiap komponen hanya di bahas
sesuai fungsi nya pada masing- masing unit nya.
2.1 Mikrokontroler ATMega32
Mikrokontroler adalah sebuah sistem komputer fungsional dalam sebuah
chip. Didalamnya terkandung sebuah inti prosesor, memori (sejumlah kecil RAM,
memori program, atau keduanya), dan perlengkapan input output. Mikrokontroler
merupakan komputer didalam chip yang digunakan untuk mengontrol peralatan
elektronik, yang menekankan efisiensi dan efektifitas biaya.Secara harfiahnya bisa
disebut “pengendali kecil” dimana sebuah sistem elektronik yang sebelumnya
banyak memerlukan komponen-komponen pendukung, mikrokontroler bisa
mereduksi komponen IC TTL dan CMOS yangseringkali masih diperlukan untuk
aplikasi kecepatan tinggi atau sekedarmenambah jumlah saluran masukan dan
keluaran (I/O). Dengan kata lain,mikrokontroler adalah versi mini atau mikro dari
sebuah komputer karenamikrokontroler sudah mengandung beberapa periferal
yang langsung bisadimanfaatkan, misalnya port paralel, port serial, komparator,
konversi digital keanalog (DAC), konversi analog ke digital dan sebagainya hanya

menggunakansistem minimum yang tidak rumit atau kompleks.

19

Universitas Sumatera Utara

2.1.1 Arsitektur Mikrokontroler AVR ATmega32
Mikrokontroler AVR ATMega32 merupakan sebuah mikrokontroler low
power CMOS 8 bit berdasarkan arsitektur AVR RISC. Mikrokontroler ini
memiliki karakteristik sebagai berikut.
1. Menggunakan arsitektur AVR RISC
*131 perintah dengan satu clock cycle
*32 x 8 register umum
2. Data dan program memori
*32 Kb In-System Programmable Flash
*2 Kb SRAM
*1 Kb In- System EEPROM
3. 8 Channel 10-bit ADC
4. Two Wire Interface
5. USART Serial Communication

6. Master/Slave SPI Serial Interface
7. On-Chip Oscillator
8. Watch-dog Timer
9. 32 Bi-directional I/O
10. Tegangan operasi 2,7 – 5,5 V
Arsitektur AVR ini menggabungkan perintah secara efektif dengan 32
register umum. Semua register tersebut langsung terhubung dengan Arithmetic
Logic Unit (ALU) yang memungkinkan 2 register terpisah diproses dengan satu
perintah tunggal dalam satu clock cycle. Hal ini menghasilkan kode yang efektif

Universitas Sumatera Utara

dan kecepatan prosesnya 10 kali lebih cepat dari pada mikrokontroler CISC
biasa..arsitektur mikrokontroler AVR atmega32 yaitu seperti berikut :

Gambar 2.1 Arsitektur AVR ATMega32

2.1.2 Fitur ATMega32
Berikut ini adalah fitur-fitur yang dimiliki oleh ATMega32:
1. Frekuensi clock maksimum 16 MHz

2. Jalur I/O 32 buah yang terbagi dalam Port A,Port B,Port C,Port D.
3. Analog to Digital Converter 10 bit sebanyak 8 input,4 chanel PWM
4. Timer/Counter sebanyak 3 buah

Universitas Sumatera Utara

5. CPU 8 bit yang terdiri dari 32 register
6. SRAM sebesar 2K Byte
7. Memori flash sebesar 32K Byte dengan kemampuan read while write
8. Port komunikasi SPI
9. EEPROM sebesar 512 byte yang dapat diprogram saat operasi
10. Analog Comparator
11. Komunikasi serial standar USART dengan kecepatan maksimal 2,5 Mbps.

2.1.3 Konfigurasi Pin ATMega32
Konfigurasi pin ATMega32 dengan kemasan 40 pin DIP (Dual In-line Package)
dapat dilihat pada Gambar 2.1. Dari gambar tersebut dapatdijelaskan fungsi
darimasing – masing pin ATMega32 sebagai berikut :
1.VCC merupakan pin yang berfungsi sebagai masukan catu daya
2.GND merupakan pin Ground

3.Port A (PA0…PA7) merupakan pin input/output dua arah danpin masukan
ADC
4.Port B (PB0…PB7) merupakan pin input/output dua arah danpin fungsi khusus
yang akan dibahas selanjutnya
5.Port C (PC0…PC7) merupakan pin input/output dua arah danpin fungsi khusus
yang akan dibahas selanjutnya
6.Port D (PD0…PD7) merupakan pin input/output dua arah danpin fungsi khusus
yang akan dibahas selanjutnya
7.RESET merupakan pin yang digunakan untuk me-reset mikrokontroler
8.XTAL1 dan XTAL2 merupakan pin masukan clock eksternal

Universitas Sumatera Utara

9.AVCC merupakan pin masukan tegangan untuk ADC
10.AREF merupakan pin masukan tegangan untuk ADC
Selain fitur tersebut diatas, masing – masing pin pada

mikrokontroler memiliki

fungsi khusus diantaranya :

Tabel 2.1 : Fungsi Khusus Port B
Pin

Fungsi Khusus

PD7

SCK (SPI Bus Serial Clock)

PD6

MISO (SPI Bus Master Input/Slave Output)

PD5

MOSI (SPI Bus Master Output/Slave Input)

PD4

SS (SPI Slave Select Input )

AIN1 (Analog Comparator Negative Input )

PD3

OC0 (Timer/Counter0 Output Compare Match Output )
AIN0 (Analog Comparator Positive Input )

PD2

INT2 (External Interrupt 2 Input)

PD1

T1 (Timer/Counter1 External Counter Input )
T0 T1 (Timer/Counter0 External Counter Input )

PD0

XCK (USART External Clock Input/Output)


Tabel 2.2 : Fungsi Khusus Port C
Pin

Fungsi Khusus

PD7

TOSC2 (Timer Oscillator Pin2)

PD6

TOSC1 (Timer Oscillator Pin1)

PD5

TDI (JTAG Test Data In)

Universitas Sumatera Utara

PD4


TDO (JTAG Test Data out )

PD3

TMS (JTAG Test Mode Select )

PD2

TCK (JTAG Test Clock)

PD1

SDA (Two-wire Serial Bus Data Input/Output Line)

PD0

SCL (Two-wire Serial Bus Cock Line)

Tabel 2.3 : Fungsi Khusus Port D

Pin

Fungsi Khusus

PD7

OC2 (Timer/Counter2 Output Compare Match Output )

PD6

ICP (Timer/Counter1 Input Capture Pin)

PD5

OC1A (Timer/Counter1 Output Compare A Match Output )

PD4

OC1B (Timer/Counter1 Output Compare B Match Output)


PD3

INT1 (External Interrupt 1 Input)

PD2

INT0 (External Interrupt 0 Input )

PD1

TXD (USART Output Pin)

PD0

RXD (USART Input Pin)

Universitas Sumatera Utara

Gambar 2.2 Konfigurasi Pin ATMega32
2.1.4 Deskripsi pin-pin pada mikrokontroler ATMega32:

1. Port A
Port A adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
memilki internal pull-up resistor. Output buffer port A dapat mengalirkan arus
sebesar 20 mA. Ketika port A digunakan sebagai input dan di pull-up secara
langsung, maka port A akan mengeluarkan arus jika internal pull-up resistor
diaktifkan. Pin-pin dari port A memiliki fungsi khusus yaitu dapat berfungsi
sebagai channel ADC (Analog to Digital Converter) sebesar 10 bit. Fungsi-fungsi
khusus pin-pin port A dapat ditabelkan seperti yang tertera pada table.
Tabel 2.4 Fungsi khusus port A
Port

Alternate Function

PA7

ADC7 (ADC input channel 7)

PA6

ADC6 (ADC input channel 6)

PA5

ADC5 (ADC input channel 5)

Universitas Sumatera Utara

PA4

ADC4 (ADC input channel 4)

PA3

ADC3 (ADC input channel 3)

PA2

ADC2 (ADC input channel 2)

PA1

ADC1 (ADC input channel 1)

PA0

ADC0 (ADC input channel 0)

2. Port B
Port B adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
mengandung internal pull-up resistor.Output buffer port B dapat mengalirkan arus
sebesar 20 mA. Ketika port B digunakan sebagai input dan di pull-down secara
external, port B akan mengalirkan arus jika internal pull-up resistor diaktifkan.
Pin-pin port B memiliki fungsi-fungsi khusus, diantaranya :


SCK port B, bit 7

Input pin clock untuk up/downloading memory.


MISO port B, bit 6

Pin output data untuk uploading memory.


MOSI port B, bit 5

Pin input data untuk downloading memory.
Fungsi-fungsi khusus pin-pin port B dapat ditabelkan seperti pada table
Tabel 2.5 Fungsi khusus port B
Port

Alternate Function

PB7

SCK (SPI Bus Serial Clock)

PB6

MISO (SPI Bus Master Input/Slave Output)

Universitas Sumatera Utara

PB6

MOSI (SPI Bus Master Output/Slave Input)

PB5

SS (SPI Slave Select Input)
AIN1 (Analog Comparator Negative Input)

PB3
OCO (Timer/Counter0 Output Compare Match Output)
AIN0 (Analog Comparator Positive Input)
PB2
INT2 (External Interrupt 2 Input)
PB1

T1 (Timer/Counter1 External Counter Input)
T0 (Timer/Counter External Counter Input) XCK (USART

PB0
External Clock Input/Output)

3. Port C
Port C adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor.Output buffer port C dapat mengalirkan arus
sebesar 20 mA. Ketika port C digunakan sebagai input dan di pull-down secara
langsung, maka port C akan mengeluarkan arus jika internal pull-up resistor
diaktifkan. Fungsi-fungsi khusus pin-pin port C dapat ditabelkan seperti yang
tertera pada tabel dibawah ini.
Tabel 2.6 Fungsi khusus port C
Port

Alternate Function

PC7

TOSC2 (Timer Oscillator Pin 2)

PC6

TOSC1 (Timer Oscillator Pin 1)

PC6

TD1 (JTAG Test Data In)

PC5

TD0 (JTAG Test Data Out)

Universitas Sumatera Utara

PC3

TMS (JTAG Test Mode Select)

PC2

TCK (JTAG Test Clock)

PC1

SDA (Two-wire Serial Bus Data Input/Output Line)

PC0

SCL (Two-wire Serial Bus Clock Line)

4. Port D
Port D adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor.Output buffer port D dapat mengalirkan arus
sebesar 20 mA. Ketika port D digunakan sebagai input dan di pull-down secara
langsung, maka port D akan mengeluarkan arus jika internal pull-up resistor
diaktifkan. Fungsi-fungsi khusus pin-pin port D dapat ditabelkan seperti yang
tertera pada tabel dibawah ini.
Tabel 2.7 Fungsi khusus port D
Port

Alternate Function

PD7

OC2 (Timer / Counter2 Output Compare Match Output)

PD6

ICP1 (Timer/Counter1 Input Capture Pin)

PD6

OCIB (Timer/Counter1 Output Compare B Match Output)

PD5

TD0 (JTAG Test Data Out)

PD3

INT1 (External Interrupt 1 Input)

PD2

INT0 (External Interrupt 0 Input)

PD1

TXD (USART Output Pin)

PD0

RXD (USART Input Pin)

Universitas Sumatera Utara

5. RESET
RST pada pin 9 merupakan pin reset yang akan bekerja bira diberi pulsa rendah
(aktif Low) selama minimal 1,5us.
6. XTAL2
Merupakan out put dari penguat dari osilator pembalik
7. XTAL1
Merupakan input ke penguat osilator pembalik dan input ke internal clock.
8. AVcc
Avcc adalah pin masukan catu daya yang digunakan untuk masukan analog ADC
yang terhubung ke Port A. Kaki ini harus secara eksternal terhubung ke Vcc
melalui lowpass filter.
9. AREF
AREF adalah pin masukan referensi analog untuk ADC. Untuk operasionalisasi
ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.
10. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali
jika board memiliki anlaog ground yang terpisah.

2.1.5 Peta Memory ATMega32
Mikrokontroller ATMega32 memiliki 3 jenis memori yaitu memori
program, memori data dan memori EEPROM. Ketigannya memiliki ruang-ruang
tersendiri dan terpisah seperti terlihat pada gambar 2.3

Universitas Sumatera Utara

Gambar 2.3 Organisasi memori ATMega32

1. Memori Program
ATMega32 memiliki kapasitas memori program sebesar 8 Kbyte yang
terpetakan dari alamat 0000h – 0FFFh dimana masing-masing alamat memiliki
lebar data sebesar 16 bit.Sehingga organisasi memori program seperti ini sering
dituliskan dengan 4K x 16 bit.Memori program ini juga terbagi menjadi dua yaitu
program boot dan juga bagian program aplikasi.
2. Memori Data
ATMega32 memiliki kapasitas memori data sebesar 608 byte yang
terbagi menjadi 3 bagian yaitu register serba guna,register I/O dan SRAM.32 byte
alamat terendah digunakan untuk register serbaguna yaitu R0 –14 R31. 64 byte
berikut nya digunakan untuk register I/O yang digunakan untuk mengatur fasilitas

Universitas Sumatera Utara

timer /counter, interrupsi, ADC, USART, SPI, EEPROM dan port I/O seperti Port
A, Port B, Port C, dan Port D.Selanjutnya 512 byte diatasnya digunakan untuk
memory data SRAM .
Jika register-register I/O diatas diakses seperti mengakses data pada
memori ( Jika kita menggunakan instruksi LD atau ST ) maka register I/O diatas
menempati alamat 0020-005F. Tetapi jika registerregister I/O diakses seperti
mengakses I/O pada umumnya (menggunakan instruksi IN/IOUT) maka register
I/O diatas menempati alamat memori0000h – 003Fh.

32 Register
64 I/O Register

$0000 - $001F
$0020 - $005F
$0060

$0000
64 I/O Register
$003F
(b)

Internal SRAM
(512 x 8)

$025F
(a)

Gambar 2.4 (a) Register I/O Sebagai Memori Data, (b) Register I/O sebagai
I/O
3.Memori EEPROM

ATMega32 memiliki memori EEPROM sebesar 512 byte yang terpisah
dari memori program maupun dari memori data.Memori EEPROM ini hanaya
dapat diakses dengan menggunakan register-register I/O yaitu register EEPROM
Addres ( EEARH-EEARL),register EEPROM Data (EEDR) dan register

Universitas Sumatera Utara

EEPROM control ( EECR). Untuk megakses memory EEPROM ini diperlakukan
sperti mengakses data eksternal sehingga waktu dari eksekusi relatif lebih lama
dibadingkan jika kita mengakses data dari SRAM.
2.1.6 Status Register ( SREG)
Register SREG digunakan untuk menyimpan informasi dari hasil operasi
aritmatika yang terakhir .Informasi-informasi dari register SREG dapat digunakan
untuk mengubah alur program, yang sedang dijalankan dengan mengunakan
instruksi percabangan . Data SREG akan selalu berubah jika setiap instruksi atau
operasi pada ALU dan datanya tidak otomatis tersimpan apabila terjadi instruksi
percabangan baik karena instruksi maupun lompatan.

Gambar 2.5 Status Register

Status Register ATMega32 :


Bit 7 – I : Global Interrupt Enable

Bit I digunakan untuk mengaktifkan interrupsi secara umum ( interrupsi global)
.Jika bit I benilai „1‟ maka interrupsi secara umum akan aktif , tetapi jika bernilai
„0‟ maka tidak ada satupun interrupsi yang aktif.Pengaturan jenis-jenis interrupsi
apa sja yang akan aktif dilakukan dengan mengatur register kontrol yang sesuai
dengan jenis interrupsi tersebut, dengan terlebih dahulu mengaktifkan interupsi
global ,yaitu bit I diset‟1‟.

Universitas Sumatera Utara



Bit 6 – T : Bit Copy Storage

Bit T digunakan untuk mementukan bit sumber atau bit tujuan pada instruksi bit
copy.Pada instruksi BST ,data akan dicopy dari register ke bit T( Bit T sebagai
tujuan) sedangkan pada instruksi BLD, bit T akan di copy ke register ( Bit T
Sebagai Sumber).


Bit 5 – H : Half carry Flag

Bit H digunakan untuk menunjukkan ada tidaknya setengah carry pada operasi
aritmatika BCD ,yaitu membagi satu byte data menjadi dua bagian ( masingmasing 4 bit) dan masing-masing bagian dianggap sebagai 1 digit desimal.
4.Bit 4 – S: Sign bit
Bit S merupakan kombinasi antara bit V dan bit N, yaitu dengan meng-XOR-kan
bit V dan bit N.


Bit 3 – V : Two‟s Complement over flow flag

Bit V digunakan untuk mendukun operasi aritmatika komplemen 2.Jika terjadi
luapan pada operasi aritmatika bilangan komplemen 2 maka akan menyebabkan
bit V bernilai „1‟.


Bit 2 - N : Negative Flag

Bit N digunakan untuk menunjukkan apakah hasil sebuah operasi aritmatika
ataupun operasi logika bernilai negatif atau tidak.Jika hasilnya negatif maka bit N
bernilai „1‟ dan jika hasilnya bernilai positif maka bit N bernila‟0‟.


Bit 1 - Z : Zero Flag

Bit Z digunakan untuk menunjukkan hasil operasi aritmatika ataupun operasi
logika apakah bernilai nol atau tidak.Jika hasilnya nol maka bit Z bernilai „1‟ dan
jika hasilnya tidak nol maka bit Z bernilai‟0‟.

Universitas Sumatera Utara



Bit 0 – C : Carry flag

Bit C digunakan untuk menunjukkan hasil operasi aritmatika ataupun logika
apakah ada carry atau tidak.Jika ada carry maka bit C bernilai‟1‟ dan jikatidak
ada carry maka bit C akan bernilai „0‟.

2.1.7 Register Serba guna ( General Purpose Register)
ATMega32 memiliki 32 byte register serbaguna yang terletak pada awal
alamat RAM. Dari 32 byte register serba guna 6 byte terakhir juga digunakan
sebagai register pointer yaitu register pointer X,register pointer Y dan Register
pointer Z.

Gambar 2.6 Register Serba guna

2.1.8USART ( Universal Synchronous and Asynchoronous Serial Receiver
And Transmitter)
Universal Synchronous Serial Receiver and Transmitter (USART) juga
merupakan

salah

satu

metode

komunikasi

serial

yang

dimiliki

oleh

Universitas Sumatera Utara

ATMega32.USART merupakan komunikasi yang memiliki fleksibilitas yang
tinggi, yang dapat kita gunakan untuk melakukan transfer data baik antara
mikrokontroler maupun dengan modul-modul eksternal termasuk PC yang
memiliki fitur UART.
USART memungkinkan transmisi data baik secara synchronous maupun
asynchronous sehingga dengan demikian USART pasti kompatibel dengan
UART. Pada ATMega32,pengaturan secara umum pengaturan mode komunikasi
baik Synchronous maupun Asynchronous adalah sama , perbedaannya hanya
terletak pada sumber clocknya saja. Pada mode Asynchronous masing – masing
Peripheral memiliki sumber clock sendiri sedang kan pada mode Synchronous
hanya ada satu sumber clock yang digunakan secra bersama- sama. Dengan
demikian secara hardware untuk mode Asynchronous hanya membutuhkan 2 pin
yaitu TXD dan RXD sedangkan untuk mode Synchronous harus 3 pin yaitu
TXD,RXD dan XCK
2.2 Modem GSM
Modem

adalah

sebuah

alat

yang

dapat

membuat

komputer

terkoneksidengan internet melalui line telepon standar. Modem banyak
digunakankomputer rumah dan jaringan sederhana untuk dapat berkomunikasi
denganjutaan komputer lain dalam lalu lintas internet. Kata Modem itu
sendirimerupakan

kependekan

dariModulator

Demodulator.

Ini

berarti

Modembekerja dengan cara mengubah informasi digital dari komputer pengirim
kedalam bentuk sinyal analog yang ditransmisikan melaluli line telepon.
Selanjutnya Modem pada komputer penerima akan mengubah ulang sinyal
analog ke sinyal digital.Modem GSM adalah sebuah perangkat Modem Wireless

Universitas Sumatera Utara

Plug andPlay dengan konektivitas GSM/GPRS untuk aplikasi-aplikasi machine
tomachine. GSM Modul atau Modem GSM adalah jenis khusus dari modemyang
menerima kartu SIM, dan mengoperasikan selama berlangganan keoperator
mobile, seperti ponsel. Modem GSM dihubungkan dengan suatuinterface yang
memungkinkan aplikasi seperti SMS untuk mengirim danmenerima pesan melalui
Modem. Beberapa fungsi kegunaan modem ini dimasyarakat adalah antara lain:
· SMS Broadcast application
· SMS Quiz application
· SMS Polling
· SMS auto-reply
· M2M integration
· Aplikasi Server Pulsa
· Telemetri
· Payment Point Data
Pada

pembuatan

proyek

ini,

digunakan

Modem

GSM

Serial

WavecomFastrack M1306B.Untuk Modem seri ini memiliki dua type konektor
yaitu
serial dan USB[12].

Gambar 2.7Modem GSM Fastrack M1306B

Universitas Sumatera Utara

Spesifikasi modem WAVECOM FASTRACK M1306B:
· Dual-band GSM 900/1800MHZ & GPRS Class 10
· GSM Dual Band antenna
· Power Supply with 4 pin connector (untuk serial)
· Standard USB 2.0 interface (untuk USB)
· Input Voltage : 5V-32V
· Maximum transmitting speed 253KBps
· Support AT-Command
· Dimensi : 74×54×25mm

2.2.1 AT-Command
AT-Command adalah singkatan dari Attention Command.ATCommand adalah
perintah yang digunakan dalam komunikasi dengan serialport. Pada awalnya
standar perintah ini untuk modem-modem telepon PSTN,akan tetapi perintah ini
sekarang dikembangkan juga untuk modem-modemGSM. Perintah AT-Command
dapat diberikan kepada handphone atauGSM/CDMA modem untuk melakukan
sesuatu hal, termasuk untukmengirim dan menerima SMS.Dengan memberikan
perintah ini di dalamkomputer/mikrokontroller maka perangkat kita dapat
melakukan pengirimanatau penerimaan SMS secara otomatis untuk mencapai
tujuan tertentu.Untuk memulai suatu perintah AT-Command, diperlukan prefiks
“AT” atau “at” dalam setiap perintah AT-Command.[6]

Universitas Sumatera Utara

Tabel 2.8 Tabel Set AT-Command

2.2.2Short Message Service (SMS)
Short Message Service (SMS) merupakan salah satu tipe InstantMessaging
(IM) yang memungkinkan user untuk bertukar pesan singkat. SMSdihantarkan
pada channel signal Global System for Mobile Communication(GSM). Dewasa
ini perkembangan teknologi yang sangat pesat membuatteknologi SMS ini banyak
digemari masyarakat karena teknologi ini bersifatpraktis, murah dan mudah untuk
digunakan.Sebuah pesan SMS maksimal terdiri dari 140 bytes, yang berarti
dapatmemuat 140 karakter 8-bit, 160 karakter 7-bit atau 70 karakter 16-bit
untukbahasa Jepang, bahasa Mandarin dan bahasa Korea yang memakai
Hanzi(Aksara Kanji/Hanja). User pun dapat mengirim pesan SMS yang lebih
dari140 bytes dengan catatan membayar lebih dari sekali biaya kirim
SMS.[5]21SMS menjamin pengiriman pesan oleh jaringan, jika terjadi
kegagalanmaka disimpan di jaringan atau yang disebut SMS Center (SMSC). Di
SMSCpesan disimpan dan dicoba untuk mengirimkannya selama beberapa

Universitas Sumatera Utara

kali.Batas waktu yang telah ditentukan untuk menyimpannya biasanya sekitar
1hari atau 2 hari, lalu pesan dihapus.
2.2.3 Database
Database merupakan sekumpulan data yang terintegrasi yang diorganisasi
untuk memenuhi kebutuhan pemakai untuk keperluan organisasiyang dimana
dapat dipakai hanya sekali atau berulang yang dimana dalambentuk digital.Salah
satu komponen penting dalam penggunaan databaseadalah DataBase Management
System (DBMS).DBMS ini bertugas untukmenangani semua akses ke database
dan bertanggug jawab untuk menerapkanpemeriksaan otorisasi dan prosedur
validasi.
2.2.4 Microsoft Office Access
Salah satu software atau aplikasi yang banyak digunakan untukmembuat
suatu database sederhana adalah Microsoft Access. Micosoft Access merupakan
software yang dikeluarkan oleh microsoft untuk membuat aplikasidatabase.
Sofware ini cocok untuk kalangan industri kecil atau rumah tangga,
karena kapasitas datanya yang mencapai 4 GB. Program ini banyak dipakaikarena
kemudahannya dalam mengolah database.
2.3ICMAX232
MAX232 merupakan salah satu jenis IC rangkaian antar muka dual RS232 transmitter / receiver yang memenuhi semua spesifikasi standar EIA-232-E.
IC MAX232 hanya membutuhkan power supply 5V ( single power supply )
sebagai catu. IC MAX232 di sini berfungsi untuk merubah level tegangan pada
COM1 menjadi level tegangan TTL / CMOS. IC MAX232 terdiri atas tiga bagian
yaitu dual charge-pump voltage converter, driver RS232, dan receiver

Universitas Sumatera Utara

Pengubahan tingkat tegangan listrik dari tingkat serial CMOS/TTL ke tingkat
teganganRS-232 seringkali gampang-gampang susah untuk dilakukan. Gampang
karena sekarang sudah banyak tersedia IC yang sudah siap pakai tetapi susah
karena kadang orang lupa dan salah melakukan konfigurasi jalur komunikasi.

Gambar 2.8 fisik IC MAX232

2.4 Komunikasi Serial
Pada PC / laptop standar, biasanya terdapat sebuah port untuk komunikasi
serial.Pada prinsipnya, komunikasi serial ialah komunikasi dimana pengiriman
data dilakukan per bit, sehingga lebih lambat dibandingkan komunikasi parallel
seperti pada port printer yang mampu mengirim 8 bit sekaligus dalam sekali
detak. Beberapa contoh penerapan komunikasi serial ialah mouse, scanner dan
sistem akuisisi data yang terhubung ke port serial COM1/COM2. Sistem antar
muka komunikasi serial RS232 sering digunakan sebagai antar muka antara
komputer dengan mikrokontroler. Agar level tegangan data serial dari
mikrokontroler setara dengan level tegangan komunikasi port serial PC,
diperlukan MAX232 untuk mengubah ke tegangan TTL/CMOS logic level

Universitas Sumatera Utara

RS232. MAX232 menggunakan sistim komunikasi simplex sehingga difungsikan
untuk mengubah dari arus dan tegangan logika TTL menjadi arus tegangan logika
komputer (RS232).

2.4.1 Karakteristik Sinyal Port Serial
Standar sinyal komunikasi serial yang banyak digunakan adalah Standar
RS232 yang dikembangkan oleh Electronic Industri Association (EIA/TIA) yang
pertama kali dipublikasikan pada tahun 1962.Ini terjadi jauh sebelum IC TTL
populer sehingga sinyal ini tidak ada hubungan sama sekali dengan level tegangan
IC TTL. Standar ini hanya menyangkut komunikasi antara (Data Terminal
Equipment – DTE) dengan alat – alat pelengkap komputer (Data Circuit
Terminating Equipment – DCE). Standar sinyal RS232 memiliki ketentuan level
tegangan sebagai berikut :
• Logika 1 disebut „Mark‟ terletak antara -3 Volt sampai -25 Volt
• Logika „0‟ disebut „space‟ terletak antara +3 Volt samapai +25 Volt.
• Daerah tegangan antara -3 Volt sampai +3 Volt adalah invalid level, yaitu daerah
tegangan yang tidak memiliki level logika pasti sehingga harus dihindari.
Demikian juga level tegangan dibawah -25 Volt dan diatas +25 Volt juga harus
dihindari karena bisa merusak line driver pada saluran RS232
Gambar dibawah adalah contoh level tegangan RS232 pada pengiriman huruf “A”
dalam format ASCII tanpa bit paritas.

Universitas Sumatera Utara

Gambar 2.9 Level Tegangan RS232 pada Pengiriman Huruf “A” Tanpa Bit
Paritas

2.4.2 Port Komunikasi Serial
Komunikasi serial membutuhkan port sebagai saluran data. Berikut tampil port
serial DB9 yang umum digunakan sebagai port serial

Gambar 2.10Port DB9 Jantan

Gambar 2.11 Port DB9 Betina

Universitas Sumatera Utara

Untuk menghubungkan antara 2 buah PC, biasanya digunakan format null mode,
dimana pin TxD dihubungkan dengan RxD pasangan, pin Sinyal ground (5)
dihubungkan dengan SG di pasangan, dan masing masing pin DTR, DSR dan CD
dihubung singkat, dan pin RTS dan CTS dihubung singkat di setiap devais.

Gambar.2.12 Susunan Pin Konektor DB9

Tabel 2.9 Fungsi Susunan Konektor DB9

Universitas Sumatera Utara

Untuk dapat menggunakan port serial harus diketahui dahulu alamat dari
port serial tersebut.Biasanya tersedia dua port serial pada CPU, yaitu COM1 dan
COM2.Base Address COM1 biasanya 1016 (3F8h) dan COM2 biasanya 760
(2F8h).Alamat tersebut adalah alamat yang biasa digunakan, tergantung komputer
yang digunakan.Tepatnya kita bisa melihat pada peta memori tempat menyimpan
alamat tersebut, yaitu memori 0000.0400h untuk COM1 dan 0000.0402h untuk
COM2. Berikut adalah nama – nama register yang digunakan beserta alamatnya
Tabel 2.10 Nama – Nama Register.

Keterangan Register
• RX Buffer , digunakan untuk menampung dan menyimpan data dari DCE.
• TX Buffer , digunakan untuk menampung dan menyimpan data yang akan
dikirim ke port serial.
• Baud Rate Divisor Latch LSB , digunakan untuk menampung byte bobot rendah
untuk pembagi clock pada IC UART agar didapat baud rate yang tepat.
• Baud Rate Divisor Latch MSB , digunakan untuk menampung byte bobot tinggi
untuk pembagi clock pada IC UART sehingga total angka pembagi adalah 4 byte
yang dapat dipilih dari 0001h sampai FFFFh.
Berikut adalah tabel angka pembagi yang sering digunakan :

Universitas Sumatera Utara

Tabel 2.11Angka Pembagi

2.4.3Koneksi Ke RS232 Port
Koneksi TXD dan RXD MCU MCS-51 dengan port serial komputer selain level
tegangannya harus disesuaikan, cara koneksikan juga perlu diperhatikan. Ada
semacam protokol komunikasi, bila DTE hendak menghubungi DCE atau
sebaliknya, untuk ‟DCE‟ yang berupa MCU MCS-51 ini, protokol perlu diakali,
lebih sederhana prosesnya, sehingga tidak memrlukan software yang rumit, tetapi
masih tetap handal. Selain sinyal data, terdapat sinyal – sinyal protokol
komunikasi serial pada komputer dan dihubungkan keluar melalui konektor male
DB9 (komputer baru) dan DB25 (Komputer lama), nama sinyal – sinyal tersebut
adalah:
• RD, Receive Data (RXD).
• TD, Transmit Data
• SG, Signal Ground
• DTR, Data Terminal Ready
• DSR, Data Set Ready
• CD, Carrier Detect
• RTS, Request To Send

Universitas Sumatera Utara

• CTS, Clear To Send.
Tabel 2.12 Koneksi Null Mode

Komunikasi asinkron yang sederhana yang disebut sebagai null modem, adalah
dengan menghubungkan pin- pin DTR, DSR dan CD serta RTS dengan CTS.
Sedangkan sinyal data input masuk RD dan sinyal transmit output adalah TD.
Konvertor level untuk saat ini tersedia dalam bentuk ic, contoh adalah ICL232
dari Harris semikonduktor, MAX232 dari Maxim.

Gambar 2.13IC MAX232
Protokol standar yang mengatur komunikasi melalui serial port disebut
RS-232 (Recommended Standard-232) yang dikembangkan oleh EIA (Electronic

Universitas Sumatera Utara

Industries

Association).Interfacing

RS-232

menggunakan

komunikasi

asyncronous di mana sinyal clock tidak dikirimkan bersamaan dengan data. Setiap
word data disingkronisasikan menggunakan sebuah start bit dan sebuah stop bit.
Jadi, sebuah frame data terdiri dari sebuah start bit, diikuti bit-bit data dan diakhiri
dengan stop bit. Jumlah bit data yang digunakan dalam komunikasi serial adalah 8
bit. Encoding yang digunakan dalam komunikasi serial adalah NRZ (Non-Returnto-Zero), di mana bit 1 dikirimkan sebagai high value dan bit 0 sebagai low value.
Komunikasi serial merupakan hal yang penting dalam system embedded, karena
dengan

komunikasi

serial

kita

dapat

dengan

mudah

menghubungkan

mikrokontroler dengan devais lainnya. Port serial pada mikrokontroler terdiri atas
dua pin yaitu RXD dan TXD. RXD berfungsi untuk mengirim data dari komputer
atau perangkat lainnya, standard komunikasi serial untuk computer adalah RS232, RS-232 mempunyai standard tegangan yang berbeda dengan serial port
mikrokontroler, sehingga agar sesuai dengan RS-232 maka dibutuhkan suatu
rangkaian level converter, IC yang digunakan bermacam-macam, tapi yang paling
mudah dan sering digunakan ialah IC MAX232/HIN232. Pada prinsipnya,
komunikasi serial ialah komunikasi dimana pengiriman data dilakukan per bit,
sehingga lebih lambat dibandingkan komunikasi parallel seperti pada port printer
yang mampu mengirim 8 bit sekaligus dalam sekali detak. Beberapa contoh
komunikasi serial ialah mouse, scanner, dan system akuisisi data yang terhubung
ke port COM1/COM2.
Jika ingin menggunakan mikrokontroler untuk berkomunikasi dengan komputer
atau device lainnya maka Rx dan Tx tidak bisa langsung dihubungkan begitu saja
dengan device tersebut karena level sinyal yang digunakan berbeda-beda.

Universitas Sumatera Utara

Contohnya komunikasi serial untuk komputer menggunakan sinyal RS232 yaitu
sinyal yang gelombang level sinyalnya antara +25V sampai -25V. Oleh karena
itu, jika ingin diharapkan terjadi komunikasi antara mikrokontroler dengan
komputer dibutuhkan sebuah buffer yang dapat mengubah sinyal level TTL dari
mikrokontroler menjadi sinyal level RS232. Salah satu Buffer yang sering
digunakan adalah IC MAX232CPE dan menggunakan transistor NPN maupun
PNP.

Gambar 2.14merupakan penggunaan ic max 232 dalam rangkaian sebagai
komunikasi serial.

2.5 Bahasa Pemograman C
Bahasa C dikembangkan pada Lab Bell pada tahun 1978, oleh Dennis
Ritchi dan Brian W. Kernighan. Pada tahun 1983 dibuat standar C yaitu stnadar
ANSI ( American National Standards Institute ), yang digunakan sebagai referensi
dari berbagai versi C yang beredar dewasa ini termasuk Turbo C.
Dalam beberapa literature, bahasa C digolongkan bahasa level menenganh
karena bahasa C mengkombinasikan elemen bahasa tinggi dan elemen bahasa

Universitas Sumatera Utara

rendah. Kemudahan dalam level rendah merupakan tujuan diwujudkanya bahasa
C. pada tahun 1985 lahirlah pengembangan ANSI C yang dikenal dengan C++
(diciptakan oleh Bjarne Struostrup dari AT % TLab). Bahasa C++ adalah
pengembangan dari bahasa C. bahasa C++ mendukung konsep pemrograman
berorientasu objek dan pemrograman berbasis windows.
Sampai

sekarang

bahasa

C++

terus

brkembang

dan

hasil

perkembangannya muncul bahasa baru pada tahun 1995 (merupakan keluarga C
dan C++ yang dinamakan java). Istilah prosedur dan fungsi dianggap sama dan
disebut dengan fungsi saja. Hal ini karena di C++ sebuah prosedur pada dasanya
adalah sebuah fungsi yang tidak memiliki tipe data kembalian (void). Hingga kini
bahasa ni masih popular dan penggunaannya tersebar di berbagai platform dari
windows samapi linux dan dari PC hingga main frame.
Ada pun kekurangan dan Kelebihan Bahasa C sebagai berikut :\


Kelebihan Bahasa C:
·

Bahasa C tersedia hampir di semua jenis computer.

·

Kode bahasa C sifatnya adalah portable dan fleksibel untuk semua
jenis computer.

·

Bahasa C hanya menyediakan sedikit kata-kata kunci. hanya
terdapat 32 kata kunci.

·

Proses executable program bahasa C lebih cepat

·

Dukungan pustaka yang banyak.

·

C adalah bahasa yang terstruktur

·

Bahasa C termasuk bahasa tingkat menengah

Universitas Sumatera Utara

penempatan ini hanya menegaskan bahwa c bukan bahasa pemrograman
yangberorientasi pada mesin. yang merupakan ciri bahasa tingkat rendah.
Melainkan
berorientasi pada obyek tetapi dapat dinterprestasikan oleh mesin dengan
cepat.secepat bahasa mesin. inilah salah satu kelebihan c yaitu memiliki
kemudahan dalammenyusun programnya semudah bahasa tingkat tinggi namun
dalam mengesekusiprogram secepat bahasa tingkat rendah.


Kekurangan Bahasa C:
·

Banyaknya operator serta fleksibilitas penulisan program kadangkadangmembingungkan pemakai.

·

Bagi pemula pada umumnya akan kesulitan menggunakan pointer.

·
2.5.1 Struktur Bahasa C
a. Program bahasa C tersusun atas sejumlah blok fungsi.
b. Setiap fungsi terdiri dari satu atau beberapa pernyataan untuk melakukan
suatu proses tertentu.
c. Tidak ada perbedaan antara prosedur dan fungsi.
d. Sstiap program bahasa C mempunyai suatu fungsi dengan nama “main”
(Program Utama).
e. Fungsi bisa diletakkan diatas atau dibawah fungsin “main”.
f. Setiap statemen diakhiri dengan semicolon (titik koma).

Universitas Sumatera Utara

2.5.2 Pengenal
Pengenal (identifier) merupakan sebuah nama yang didefenisikan oleh
pemrograman untuk menunjukkan indetitas dari sebuah konstanta, variable,
fungsi, label atau tipe data khusus. Pemberian nama sebuah pengenal dapat
ditentukan bebas sesuai keinginan pemrogram tetapi harus memenuhi atura
berikut :





Karakter pertama tidak boleh menggunakan angka
Karakter kedua dapat berupa huruf, angka, atau garis bawah.
Tidak boleh menggunakan spasi.
Bersifat Case Sensitive, yaitu huru capital dan huruf kecil dianggap
berbeda.



Tidak boleh mengunakan kata – kata yang merupakan sitaks maupun
operator dalam pemrograman C, misalnya : Void, short, const, if, static, bit,
long, case, do, switch dll.

2.5.3 Tipe Data
Tipe data merupakan suatu hal yang penting untuk kita ketahui pada saat
belajar bahasa pemrograman.Kita harus dapat menentukan tipe data yang tepat
untuk menampung sebuah data, baik itu data berupa bilangan numerik ataupun
karakter.Hal ini bertujuan agar program yang kita buat tidak membutuhkan
pemesanan kapling memori yang berlebihan. Seorang programmer yang handal
harus dapat memilih dan menentukan tipe data apa yang seharusnya digunakan
dalampembuatan sebuah program. Secara garis besar tipe data pada bahasa C
dibagi menjadi beberapa bagian antara lain sebagai Berikut

Universitas Sumatera Utara

Macam-Macam Tipe Data Pada Bahasa C :
1. Tipe Data Karakter
Sebuah karakter, baik itu berupa huruf atau angka dapat disimpan pada
sebuah variabel yang memiliki tipe data char dan unsigned char. Besarnya data
yang dapat disimpan pada variabel yang bertipe data char adalah -127 - 127.
Sedangkan untuk tipe data unsigned char adalah dari 0 - 255. Pada dasarnya setiap
karakter memiliki nilai ASCII, nilai inilah yang sebetulnya disimpan pada variabel
yang bertipe data karakter ini.
2. Tipe Data Bilangan Bulat
Tipe data bilangan bulat atau dapat disebut juga bilangan desimal
merupakan sebuah bilangan yang tidak berkoma. Pada bahasa C terdapat
bermacam-macam tipe data yang dapat kita gunakan untuk menampung bilangan
bulat. Kita dapat menyesuaikan penggunaan tipe data dengan terlebih dahulu
memperhitungkan seberapa besar nilai yang akan kita simpan. Contohnya seperti
berikut, kiata akan melakukan operasi penjumlahan nilai 300 dan 100 dan
hasilnya akan disimpan pada variabel c.
Jika dilihat, hasil dari penjumlahan tersebut nilainya akan lebih besar dari
255 dan nilainya pasti positif, oleh karena itu sebaiknya kita menggunakan tipe
data unsigned int. Namun berbeda halnya jika saya ingin melakukan operasi
pengurangan -5 - 300, jika dilihat hasilnya akan negatif maka selayaknya
digunakan variabel dengan tipe data int.
3. Tipe Data Bilangan Berkoma
Pada bahasa C terdapat dua buah tipe data yang berfungsi untuk
menampung data yang berkoma. Tipe data tersebut adalah float dan double.

Universitas Sumatera Utara

Double lebih memiliki panjang data yang lebih banyak dibandingkan float. Tipe
data double dapat digunakan jika kita membutuhkan variabel yang dapat
menampung tipe data berkoma yang bernilai besar.
Tabel 2.13Tipe Data
Tipe Data

Ukuran

Jangkauan Nilai

Bit

1 byte

0 atau 1

Char

1 byte

-128 s/d 127

Unsigned Char

1 byte

0 s/d 255

Signed Char

1 byte

-128 s/d 127

Int

2 byte

-32.768 s/d 32.767

Short Int

2 byte

-32.768 s/d 32.767

Unsigned Int

2 byte

0 s/d 65.535

Signed Int

2 byte

-32.768 s/d 32.767

Long Int

4 byte

-2.147.483.648 s/d 2.147.483.647

Unsigned Long Int

4 byte

0 s/d 4.294.967.295

Signed Long Int

4 byte

-2.147.483.648 s/d 2.147.483.647

Float

4 byte

1.2*10-38 s/d 3.4*10+38

Double

4 byte

1.2*10-38 s/d 3.4*10+38

2.5.4 Konstanta Dan Variabel
Konstanta dan variable merupakan sebuah tempat untuk menyimpan data
yang berada di dalam memori.Konstanta berisi data yang nilainya tetap dan tidak
dapat diubah selama program dijalankan, sedangkan variable berisi data yang bisa
berubah nilainya pada saat program dijalankan.

Universitas Sumatera Utara

2.5.5IDENTIFIER
Identifier atau nama pengenal adalah nama yang ditentukan sendiri oleh
pemrogram yang digunakan untuk menyimpan nilai, misalnya nama variable,
nama konstanta, nama suatu elemen (misalnya: nama fungsi, nama tipe data, dll).
Identifier punya ketentuan sebagai berikut :
1. Maksimum 32 karakter (bila lebih dari 32 karakter maka yang
diperhatikan hanya 32 karakter pertama saja).
2. Case sensitive: membedakan huruf besar dan huruf kecilnya.
3.

Karakter pertama harus karakter atau underscore ( _ ) . selebihnya boleh
angka.

4. Tidak boleh mengandung spasi atau blank.
5. Tidak boleh menggunakan kata yang sama dengan kata kunci dan fungsi.

Universitas Sumatera Utara