• Tidak ada hasil yang ditemukan

2. TEORI PENUNJANG. Tabel 2.1. Spesifikasi RabbitCore RCM3200. Low-EMI Rabbit 3000 at 44.2 MHz. 512K 8, surface mount

N/A
N/A
Protected

Academic year: 2021

Membagikan "2. TEORI PENUNJANG. Tabel 2.1. Spesifikasi RabbitCore RCM3200. Low-EMI Rabbit 3000 at 44.2 MHz. 512K 8, surface mount"

Copied!
30
0
0

Teks penuh

(1)

6 2.1. Mikroprosesor Rabbit 3000

Mikroprosesor yang akan digunakan adalah mikroprosesor Rabbit 3000 mempunyai kemampuan yang tinggi, low-EMI microprocessor yang didesain secara spesifik untuk embedded control, komunikasi, dan koneksi dengan ethernet (mendukung internet).

Tabel 2.1. Spesifikasi RabbitCore RCM3200

Parameter Specification Microprocessor Low-EMI Rabbit 3000 at 44.2 MHz

Ethernet Port 10/100Base-T, RJ-45, 3 LEDs Flash Memory 512K × 8, surface mount Data SRAM 256K × 8, surface mount Program Execution

SRAM 512K × 8, surface mount

Backup Battery Connection for user-supplied backup battery (to support RTC and data SRAM)

General-Purpose I/O

52 parallel digital I/0 lines: 44 configurable I/O 4 fixed inputs 4 fixed outputs

Additional Inputs Startup mode (2), reset in Additional Outputs Status, reset out

Auxiliary I/O Bus Can be configured for 8 data lines and 6 address lines (shared with parallel I/O lines), plus I/O read/write

Serial Ports

6 shared high-speed, CMOS-compatible ports: all 6 configurable as asynchronous (with IrDA), 4 as clocked serial (SPI), and 2 as SDLC/HDLC (with IrDA) 1 asynchronous clocked serial port dedicated for

programming

(2)

Tabel 2.2. Spesifikasi RabbitCore RCM3200 (sambungan)

Parameter Specification Serial Rate Maximum asynchronous baud rate = CLK/8

Slave Interface

A slave port allows the RCM3200 to be used as an intelligent peripheral device slaved to a master processor, which may either be another Rabbit 3000 or any other type of processor

Real-Time Clock Yes

Timers Ten 8-bit timers (6 cascadable), one 10-bit timer with 2 match registers Watchdog/Supervisor Yes

Pulse-Width

Modulators 10-bit free-running counter and four pulse-width registers Input Capture 2- channel input capture can be used to time input signals from various port pins

Quadrature Decoder 2-channel quadrature decoder accepts inputs from external incremental encoder modules

Power 3.15 V to 3.45 V DC 255 mA @ 3.3 V Operating

Temperature -40°C to +70°C

Humidity 5% to 95%, noncondensing Connectors Two 2 × 17, 2 mm pitch Board Size 1.850" × 2.725" × 0.86" (47 mm × 69 mm × 22 mm)

(3)

2.1.1. I/O Buffer Sourcing dan Sinking

Buffer I/O Rabbit mempunyai batas kemampuan arus sourcing dan sinking sebesar 6.8 mA per pin dengan batas tegangan maksimum untuk semua I/O adalah 5.5 V.

Tabel 2.3. Kemampuan I/O Buffer Sourcing dan Sinking

Output Drive (Full AC Switching) Sourcing/Sinking Limits (mA)

Pin Name

Sourcing Sinking All data, address, and I/O

lines with clock doubler

enabled 6.8 6.8

Sumber : http://www.rabbitsemiconductor.com 2.1.2. Input dan Output Digital RCM3200

RCM3200 mempunyai I/O parallel sebanyak 52 buah yang dikelompokkan menjadi 7 port (masing-masing 8 bit) yang tersedia pada header J1 dan J2. Sebanyak 44 bidirectional I/O terletak pada pin PA0-PA7, PB0, PB2-PB7, PD2-PD7, PE0-PE1, PE3-PE7, PF0-PF7, dan PG0-PG7.

Gambar 2.1. Pin RCM3200 pada header J1 dan J2 Sumber : RabbitCore RCM3200 Getting Started

Header J1 dan J2 mengikuti bentuk standard header 2 × 34 dengan jarak tiap pin 2mm dan sebuah jack Ethernet RJ-45 juga terdapat pada seri RCM3200.

(4)

Pin dengan label PD2, PD3, PD6, and PD7 pada header J1 (pin 29-32) dan pin yang tidak terhubung sama sekali (pin 33-34 pada header J1 dan pin 33 pada header J2) tidak dipergunakan dengan alasan untuk keperluan yang akan datang.

Gambar 2.2. Penggunaan Port pada Rabbit 3000 Sumber : RabbitCore RCM3200 Getting Started

Semua port pada mikroprosesor Rabbit 3000 yang digunakan pada RCM3200 dapat dikonfigurasi ulang dan berikut ini adalah daftar dari konfigurasi penggunaan port-port pada mikroprosesor Rabbit 3000 secara default dan penggunaan alternatifnya.

(5)

Tabel 2.4. Konfigurasi Pin RCM3200

Pin Pin Name Default Use Alternate Use Notes 1 GND

2 STATUS Output (Status) Output

3-10 PA[7:0] Parallel I/O

External data bus

(ID0-ID7) Slave port data bus (SD0-SD7) 11 PF3 Input/Output QD2A 12 PF2 Input/Output QD2B 13 PF1 Input/Output QD1A CLKC 14 PF0 Input/Output QD1B CLKD

15 PC0 Output TXD Serial Port D

16 PC1 Input RXD

17 PC2 Output TXC Serial Port C

18 PC3 Input RXC

19 PC4 Output TXB Serial Port B

20 PC5 Input RXB

21 PC6 Output TXA Serial Port A (programming port)

22 PC7 Input RXA

23 PG0 Input/Output TCLKF Serial Clock F output 24 PG1 Input/Output RCLKF Serial Clock F input 25 PG2 Input/Output TXF Serial Port F

26 PG3 Input/Output RXF

27 PD4 Input/Output ATXB

28 PD5 Input/Output ARXB

29 PD2 Input/Output TPOUT- * Ethernet transmit port 30 PD3 Input/Output TPOUT+ *

31 PD6 Input/Output TPIN- * Ethernet receive port 32 PD7 Input/Output TPIN+ * Header J1 33-34 * n.c. Reserved for future use * Pins 29-34 are reserved for future use.

(6)

Tabel 2.5. Konfigurasi Pin RCM3200 (sambungan)

Pin Pin Name Default Use Alternate Use Notes 1 /RES Reset output Reset input Reset output from Reset

Generator 2 PB0 Input/Output CLKB 3 PB2 Input/Output IA0 /SWR External Address 0 Slave port write 4 PB3 Input/Output IA1 /SRD External Address 1

Slave port read 5 PB4 Input/Output IA2 SA0

External Address 2 Slave port Address 0 6 PB5 Input/Output IA3 SA1

External Address 3 Slave port Address 1 7 PB6 Input/Output IA4 External Address 4

8 PB7 Input/Output IA5 /SLAVEATTN

External Address 5 Slave Attention 9 PF4 Input/Output AQD1B PWM0 10 PF5 Input/Output AQD1A PWM1 11 PF6 Input/Output AQD2B PWM2 12 PF7 Input/Output AQD2A PWM3 13 PE7 Input/Output I7 /SCS 14 PE6 Input/Output I6 15 PE5 Input/Output I5 INT1B 16 PE4 Input/Output I4 INT0B 17 PE3 Input/Output I3 Header

J2

18 PE1 Input/Output I1 INT1A I/O Strobe 1 Interrupt 1A Sumber : http://www.rabbitsemiconductor.com

(7)

Tabel 2.6. Konfigurasi Pin RCM3200 (sambungan)

Pin Pin Name Default Use Alternate Use Notes 19 PE0 Input/Output I0 INT0A I/O Strobe 0 Interrupt 0A 20 PG7 Input/Output RXE Serial Port E

21 PG6 Input/Output TXE

22 PG5 Input/Output RCLKE Serial Clock E input 23 PG4 Input/Output TCLKE Serial Clock E ouput 24 /IOWR Output External write strobe

25 /IORD Input External read strobe

26-27

SMODE0, SMODE1

(0,0)-start executing at address zero

(0,1)-cold boot from slave port (1,0)-cold boot from clocked Serial Port A

SMODE0 =1, SMODE1 = 1 Cold boot from asynchronous Serial Port A at 2400 bps (programming cable connected)

Also connected to

programming cable

28 /RESET_IN Input Input to Reset Generator

29 VRAM Output

Maximum Current Draw 50 µA

30 VBAT_EXT 3 V battery Input Minimum battery voltage 2.7 V

31 +3.3V Input 3.15-3.45 V DC

32 GND

33 n.c. Reserved for future use

Header J2

34 GND

Sumber : http://www.rabbitsemiconductor.com 2.2. Dynamic C1

Dynamic C merupakan integrated development system yang dirancang khusus untuk embedded software. Software ini didesain untuk digunakan pada kontroler Z-World dan kontroler lainnya yang berbasiskan mikroprosesor Rabbit.

(8)

Rabbit 2000 dan Rabbit 3000 merupakan mikroprosesor 8 bit yang mempunyai performa yang tinggi yang dapat menerima aplikasi bahasa C sampai dengan 50.000 statements atau 1 MB.

Dynamic C terintegrasi dari beberapa fungsi yaitu editing, compiling, linking, loading, dan debugging dalam 1 program. Pada kenyataannya, compiling, linking, loading adalah 1 fungsi. Di dalam Dynamic C terdapat editor teks yang mudah untuk digunakan. Program dapat dieksekusi dan debugged secara interaktif pada level kode mesin. Menu-menu dan keyboard shortcut tersedia juga dalam Dynamic C.

Selain itu, bahasa assembly juga didukung oleh Dynamic C dan dapat digunakan bersama-sama dengan bahasa C.

Compiler Dynamic C mengcompile secara langsung pada memori. Pada komputer PC yang cepat, Dynamic C mampu mengirimkan kode sebanyak 30.000 byte dalam 5 detik pada baud rate 115.000 bps.

Berikut ini pengenalan beberapa graphical user interface pada software Dynamic C.

2.2.1. Menu Bar

Dynamic C mempunyai 8 menu sama seperti tampilan standar pada sistem menu Windows. Semua menu dapat digunakan dengan mengklik pada menu atau dengan menekan tombol ‘Alt’ untuk mengaktifkan menu, lalu tekan tombol ‘panah kiri’ atau ‘kanan’, atas atau bawah kemudian tekan tombol ‘enter’ atau dengan menekan tombol ‘Alt’ kemudian menekan huruf yang digaris bawahi pada nama menu yang ada, contoh : <Alt+F> untuk menu File.

Gambar 2.3. Menu 2.2.2. Editing

Dynamic C menyediakan editor teks yang cara penggunaan sama seperti standar editor teks pada aplikasi software Windows.

(9)

Gambar 2.4. Menu Edit 2.2.3. Compile

Setelah selesai membuat listing program (baik dalam bahasa C atau assembly), maka langkah selanjutnya program di-compile agar dapat di-download pada mikroprosesor.

Gambar 2.5. Menu Compile

2.2.3.1. Compile to Target. Mengcompile program kemudian me-load pada target memori kontroler (RAM atau flash) atau dengan menekan tombol F5. 2.2.3.2. Compile to .bin file. Meng-compile program dan menulis image-nya pada

file berekstensi ‘.bin’. File ini dapat digunakan oleh programmer untuk memprogram banyak mikroprosesor. Program Rabbit Field Utility dapat dipergunakan untuk me-load file ‘.bin’ pada target.

(10)

2.2.4. Run

Dapat dilakukan dengan cara mengklik judul menu atau dengan menekan tombol <Alt+R> untuk memilih menu Run.

Gambar 2.6. Menu Run

2.2.4.1. Run. Untuk memulai mengeksekusi (compile, load dan menjalankan) program atau dengan menekan tombol F9.

2.2.4.2. Stop. Menghentikan eksekusi program yang sedang berjalan.

2.3. Liquid Crystal Display (LCD)

Liquid Crystal Display (LCD) digunakan sebagai media visualisasi informasi (yang menyediakan sebuah interface yang mudah ke mikrokontroler menggunakan 8 bit data bus, DB0 – DB7, dan 3 sinyal kontrol, RS, R/W, dan E). Hampir semua LCD module adalah standar, termasuk susunan kaki/pin dan cara pemrogramannya (meskipun dengan model dan dari pabrik yang berbeda). Berikut ini adalah tabel susunan pin LCD SEIKO M1632.

(11)

Tabel 2.7. Susunan Pin LCD M1632

Pin Simbol Level Deskripsi

1 VSS 0V Ground

2 VDD 5.0V Supply Voltage for logic 3 VO (Variable) Operating voltage for LCD 4 RS H/L H: DATA, L: Instruction code

5 R/W H/L H: Read(MPU←Module) L: Write(MPU→Module) 6 E H,H→L Chip enable signal

7 DB0 H/L Data bit 0 8 DB1 H/L Data bit 1 9 DB2 H/L Data bit 2 10 DB3 H/L Data bit 3 11 DB4 H/L Data bit 4 12 DB5 H/L Data bit 5 13 DB6 H/L Data bit 6 14 DB7 H/L Data bit 7 15 A 4.2V-4.6V LED + 16 K 0V LED -

Mode baca atau tulis ditentukan oleh RW. Bila RW berlogika “0”, data dikirim/ditulis ke DD RAM. Sedang bila RW berlogika “1”, berarti data dibaca dari DD RAM. Perlu diketahui bahwa pada LCD, data karakter di-multiplex dengan data alamat. Sehingga untuk membedakan data yang dikirim, digunakan RS. Jika RS = “1”, maka data yang ada adalah alamat dari DD RAM. Sedangkan bila RS = “0”, maka data pada DB7 –DB0 adalah karakter yang akan disimpan pada DD RAM. E merupakan pin untuk mengaktifkan LCD. Pin E harus berlogika high terlebih dahulu, kemudian diubah menjadi low (transisi turun) untuk men-trigger LCD menjalankan instruksi yang dikehendaki. Tabel di bawah ini menunjukkan hubungan antara RS, R/W, dan E.

(12)

Tabel 2.8. Hubungan antara RS, R/W, dan E

RS R/W E Operasi

0 0 Tulis kode instruksi

0 1 Baca busy flag dan address counter

1 0 Tulis data

1 1 Baca data

Tabel 2.9. Kode Instruksi Kode Instruksi Instruksi

RS R/

W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Deskripsi

Clear Display 0 0 0 0 0 0 0 0 0 1 Write “00H” to DDRAM and set DDRAM address to “00H” from AC

Return Home 0 0 0 0 0 0 0 0 1 *

Set DDRAM address to “00H” from AC and return cursor to its original position if shifted. The contents of DDRAM are not changed.

Entry Mode Set 0 0 0 0 0 0 0 1 I/D S Assign cursor moving direction and enable the shift of entire display. Display

ON/OFF Control

0 0 0 0 0 0 1 D C B Set display (D), cursor (C ), and blinking of cursor (B) on/off control bit.

Cursor or

Display Shift 0 0 0 0 0 1 S/C R/L * *

Set cursor moving and display shift control bit, and the direction, without changing of DDRAM data.

(13)

Tabel 2.10. Kode Instruksi (sambungan) Kode Instruksi Instruksi RS R/ W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 Deskripsi Function Set 0 0 0 0 1 DL N F * *

Set interface data length (DL:8-bit/4-bit), numbers of display line (N:2-line/1-line)and, display font type (F:5×11 dots/5×8 dots) Set CGRAM

Address 0 0 0 1 ACG Set CGRAM address in address counter. Set DDRAM

Address 0 0 1 ADD

Set DDRAM address in address counter.

Read Busy Flag

and Address 0 1 BF AC

Whether during internal operation or not can be known by reading BF. The contents of address counter can also be read.

Write Data to

RAM 1 0 D7 D6 D5 D4 D3 D2 D1 D0 Write data into internal RAM (DDRAM/CGRAM). Read Data from

RAM 1 1 D7 D6 D5 D4 D3 D2 D1 D0 Read data from internal RAM (DDRAM/CGRAM). * : don't care

Tabel 2.11. Nama Bit

Nama Bit Setting

I/D 0 = Decrement cursor position 1 = Increment cursor position S 0 = No display shift 1 = Display shift

D 0 = Display off 1 = Display on C 0 = Cursor off 1 = Cursor on B 0 = Cursor blink off 1 = Cursor blink on S/C 0 = Move cursor 1 = Shift display R/L 0 = Shift left 1 = Shift right

(14)

Tabel 2.12. Nama Bit (sambungan)

Nama Bit Setting

N 0 = 1/8 or 1/11 Duty (1 line) 1 = 1/16 Duty (2 lines)

F 0 = 5x7 dots 1 = 5x10 dots

BF 0 = Can accept instruction 1 = Internal operation in progress

Tabel 2.13. Lokasi Alamat DDRAM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Baris 1 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F Baris 2 C0 C1 C2 C3 C4 C5 C6 C7 CC C9 CA CB CC CD CE CF

Dipilihnya LCD ini karena kelebihan pada LCD yang mempunyai ROM yang merupakan satu perpustakaan yang menyimpan 160 karakter alfanumerik. ROM tersebut menyimpan karakter alphabet (A-Z) huruf besar maupun huruf kecil, numerik (0-9), symbol matematika, tanda baca, alphabet Jepang (Kana symbols), karakter Yunani yang digunakan dalam matematika. Perpustakaan tersebut mempunyai 256 lokasi alamat (0-255), dimana hanya 160 lokasi yang telah diprogram sebelumnya dan tersisa 96 lokasi yang tidak digunakan. Dari 160 lokasi alamat tersebut lokasi 0-7 dapat diisi pola tertentu yang dikehendaki oleh pemakai lewat fasilitas karakter generator (CG RAM) dari LCD. Isi lokasi 8-15 tidak dapat diprogram oleh pemakai. Demikian juga lokasi 16-31 dan lokasi 128-159 yang tidak terpakai tidak dapat diprogram.

Cara menjalankan LCD module adalah sebagai berikut :

Inisialisasi LCD. Setiap kali LCD module dinyalakan atau direset, proses inisialisasi harus dijalankan. Proses ini terdiri dari Function Set, Entry Mode Set, Display ON/OFF,dan Clear Display. Kondisi RS dan R/W dalam keadaaan logika ‘0’.

Arahkan cursor ke alamat DDRAM yang dikehendaki.

Tuliskan data ke LCD module, maka karakter akan muncul pada alamat tersebut.

LCD module dapat dijalankan dengan menggunakan mode 8 bit (DB7-DB0) dan mode 4 bit (DB7-DB4). Dalam mode 4 bit, maka proses pengiriman

(15)

data dilakukan 2 kali (karena hanya menggunakan format 4 bit dari bus data DB7-DB4). Berikut ini adalah diagram alir dari mode 8 bit dan mode 4 bit.

Start

Power On

Reset Sequence

Entry Mode Set Function Set Alamat DDRAM Clear Display Display ON/OFF Data Inisialisasi Ret

(16)

2.4. LM35

LM35 adalah IC yang berfungsi sebagai sensor suhu yang akan menghasilkan tegangan output yang linier dengan suhu derajat celcius. Fitur yang ada pada LM35 adalah :

• Dapat dikalibrasi dalam celcius • Faktor skala 10mV/oC

• Keakuratan 0.5oC

• Jangkauan dari -55o sampai dengan +150oC • Dapat digunakan dari jarak yang jauh • Beroperasi pada tegangan 4 – 30 volt • Nonlinearitasnya ±1/4oC

• Impedansi output kecil ( 0,1Ω untuk beban sebesar 1mA)

Gambar 2.8. LM35 (dilihat dari bawah)

(17)

2.5. Operational Amplifier (Op-Amp)

Op-Amp merupakan rangkaian penguat tegangan dengan elemen tahanan, kapasitor, dan transistor yang dibuat secara integrated circuit (IC). Op-Amp memiliki 2 buah terminal input, yaitu input non-inverting (+), input inverting (-) dan sebuah terminal output.

Gambar 2.10. Simbol Op-Amp

Ada beberapa karakteristik yang dimiliki Op-Amp hingga berfungsi sebagai amplifier ideal :

• Impedansi input yang tinggi (Zi). • Impedansi output yang rendah (Zo).

• Mempunyai penguatan tegangan yang tinggi. • Tegangan output = 0, jika input = 0.

Sebagai amplifier, Op-Amp mempunyai 2 rangkaian dasar yaitu inverting dan non-inverting amplifier.

2.5.1. Inverting Amplifier

Besar tegangan output ditentukan dari rumus berikut :

Rf

Vout = - x Vin ( 2.1 )

(18)

Dari rumus di atas dapat disimpulkan bahwa tegangan output (Vout) berbalik fasa dengan Vin dan besar penguatan tegangan ditentukan dari nilai tahanan input (Ri) dan tahanan feedback (Rf).

Gambar 2.11. Rangkaian Inverting Amplifier 2.5.2. Non-Inverting Amplifier

Besar tegangan output ditentukan dari rumus berikut :

Rf

Vout = ( + 1 ) x Vin ( 2.2 ) Ri

Dari rumus di atas dapat disimpulkan bahwa tegangan output (Vout) sefasa dengan Vin dan besar penguatan tegangan ditentukan dari nilai tahanan input (Ri) dan tahanan feedback (Rf).

(19)

Gambar 2.12. Rangkaian Non-Inverting Amplifier 2.6. ADC 0804

Sistem mikroprosesor hanya dapat mengolah (memproses) data dalam bentuk biner saja (atau lebih sering disebut besaran digital). Oleh sebab itu setiap data analog yang akan diproses oleh mikroprosesor harus diubah terlebih dahulu ke dalam bentuk kode biner (digital).

Tegangan analog yang merupakan masukan dari ADC berasal dari transducer. Tranducer inilah yang mengubah besaran kontinyu seperti temperatur, tekanan, kecepatan, ataupun putaran motor menjadi tegangan listrik. Tegangan listrik yang dihasilkan oleh transducer yang berubah secara kontinyu pada suatu range tertentu disebut tegangan analog. Dan tegangan analog ini diubah oleh IC ADC menjadi bentuk digital yang sebanding dengan tegangan analog-nya.

IC ADC yang digunakan dalam tugas akhir ini adalah jenis ADC 0804 yang merupakan IC A/D Converters 8-Bit. Adapun range tegangan input-nya antara 0 sampai 5 volt dan data keluaran digital yang dihasilkan adalah 8 bit. Untuk mengkonversi nilai “Y” volt menjadi desimal digunakan rumus berikut.

Y x 5.0

X = ( 2.3 ) 256

Hasil dari ADC adalah 1/255 (28 - 1) dari skala penuh tegangan 5 Volt. Untuk setiap penambahan 0,02 volt (1/255 x 5 volt = 0,002 volt ). Jika input analog diberi 0,1 volt, maka keluaran binernya = 0000 0101 ( 0,1 volt/0,002 volt

(20)

= 5 desimal, maka binernya = 0000 0101 ). Untuk mendapatkan resolusi yang lebih baik, maka dilakukan penguatan tegangan input sebelum dimasukkan pada ADC.

Cara pengoperasian dari ADC 0804 berdasarkan Timing Diagram adalah sebagai berikut :

• Pin CS (Chip Select) = 0, kondisi ini dipertahankan terus selama proses konversi.

• Pin 3 (WR) diberi logika low dan dikembalikan menjadi logika high. Proses konversi dimulai saat terjadi pin WR transisi naik (rising edge triggered).

• Pada saat proses konversi selesai, logika pin 5 (INTR) menjadi low. • Saat pin INTR terbaca low, maka dengan memberi logika low pada

pin 2 (RD) akan didapatkan nilai konversi pada D0 sampai D7.

(21)

2.7. MM74C922 16-Key Encoder

IC CMOS MM72C922 merupakan 16-key encoder yang dapat digunakan untuk membaca sebuah saklar yang ditekan yang berada pada keypad matriks 4x4. IC MM72C922 melakukan scanning keypad matriks 4x4 secara kontinyu sampai ada saklar yang ditekan. Hal tersebut membuat logika pin DATA AV menjadi high (yang mengindikasikan bahwa data telah siap untuk dibaca pada keempat pin output). Dan pin DATA AV akan menjadi low, ketika saklar dilepas. Jika pin DATA AV kembali menjadi high, hal ini menandakan bahwa ada data baru yang diterima setelah periode normal debounce.

Gambar 2.14. IC MM72C922

Tabel 2.14. Tabel Kebenaran

2.8. Database MySQL

MySQL adalah salah satu jenis database server yang sangat terkenal. Kepopulerannya disebabkan MySQL menggunakan SQL (Structured Query Language) sebagai bahasa dasar untuk mengakses database-nya. Selain itu

(22)

software ini bersifat open source sehingga tidak perlu membayar untuk menggunakannya. MySQL termasuk jenis RDBMS (Relational Database Management System). Itulah sebabnya istilah seperti tabel, baris dan kolom digunakan pada MySQL. Pada MySQL, sebuah database mengandung satu atau sejumlah tabel. Tabel terdiri dari sejumlah baris dan setiap baris mengandung satu atau beberapa kolom.

2.8.1. Tipe Data MySQL

Berbagai tipe data pada MySQL dapat dilihat pada tabel berikut. Tabel 2.15. Tipe Data untuk Bilangan

Tipe Data Keterangan

TINYINT Ukuran 1 byte. Integer yang sangat kecil. Jika signed, jangkauannya adalah -128 sampai 127. Jika unsigned, jangkauannya adalah 0 sampai 255.

SMALLINT Ukuran 2 byte. Integer yang kecil. Jika signed, jangkauannya adalah -32768 sampai 32767. Jika unsigned, jangkauannya adalah 0 sampai 65535.

MEDIUMINT Ukuran 3 byte. Integer dengan ukuran

menengah. Jika signed, jangkauannya adalah -8388608 sampai 8388608. Jika unsigned, jangkauannya adalah 0 sampai 16777215.

INT Ukuran 4 byte. Integer dengan ukuran

normal. Jika signed, jangkauannya adalah -2147483648 sampai -2147483648. Jika unsigned, jangkauannya adalah 0 sampai 4294967295.

INTEGER Sama dengan INT.

BIGINT Ukuran 8 byte. Integer yang besar. Jika signed, jangkauannya adalah

-9223372036854775808 sampai

9223372036854775807. Jika unsigned, jangkauannya adalah 0 sampai

18446744073709551615.

FLOAT(4) Ukuran 4 byte. Bilangan floating point. Tidak dapat dijadikan unsigned. Angka precision dapat diisi <= 24 untuk bilangan floating point presisi tunggal dan diantara 25 dan 53 untuk bilangan floating point presisi ganda.

(23)

Tabel 2.16. Tipe Data untuk Bilangan (sambungan)

Tipe Data Keterangan

FLOAT(8) Ukuran 8 byte. Bilangan floating point yang kecil (presisi tunggal). Tidak dapat dijadikan unsigned. Jangkauan nilai yang diizinkan adalah

-3.402823466E+38 sampai

-1.175494351E-38, 0, dan 3.402823466E+38 sampai 1.175494351E-38

DOUBLE Ukuran 8 byte. Bilangan floating point. Tidak dapat dijadikan unsigned. Jangkauan nilai yang diizinkan: -1.7976931348623157E+308 sampai -2.2250738585072014E-308, 0, dan 1.7976931348623157E-308 sampai

2.2250738585072014E+308.

DOUBLE PRECISION Ukuran 8 byte. Bilangan floating point dengan ukuran normal (presisi ganda).

REAL Ukuran 8 byte. Sinonim dari DOUBLE

DECIMAL (M,D) Ukuran M byte (D+2, jika M < D). Bilangan unpacked floating point. Tidak dapat dijadikan unsigned. Berlaku sama seperti CHAR: “unpacked” berarti bilangan disimpan sebagai string.

NUMERIC (M,D) Ukuran M byte (D+2, jika M < D). Sinonim dari decimal.

Tabel 2.17. Tipe Data untuk Tanggal dan Jam

Tipe Data Keterangan

DATE Ukuran 3 byte. Data berupa tanggal.

Jangkauannya adalah dari’1000-01-01’ sampai ‘9999-12-31’. MySQL menampilkan format tanggal dalam bentuk ‘YYYY-MM-DD’.

DATETIME Ukuran 8 byte. Kombinasi dari tanggal dan waktu. Jangkauannya adalah dari ‘1000-01-01 00:00:00’ sampai ‘9999-12-31 23:59:59’ MySQL menampilkan nilai DATETIME dalam format ‘YYYY-MM-DD HH:MM:SS’.

TIMESTAMP Ukuran 4 byte. Kombinasi dari tanggal dan jam dengan jangkauan dari ‘1970-01-01 00:00:00’ sampai suatu waktu pada tahun 2037.

TIME Ukuran 3 byte. Data berupa waktu.

Jangkauannya adalah dari ‘-838:59:59’ sampai ‘838:59:59’.

(24)

Tabel 2.18. Tipe Data untuk Tanggal dan Jam (sambungan)

Tipe Data Keterangan

YEAR Ukuran 1 byte. Bentuk tahun dalam format 2 atau 4-digit (default adalah 4-digit). Nilai yang diizinkan adalah dari 1901 sampai 2155 Tabel 2.19. Tipe Data untuk Karakter

Tipe Data Keterangan

CHAR(M) Ukuran M byte. Sebuah string dengan

panjang yang tetap. Sisa jumlah karakter yang belum memenuhi akan diisi dengan spasi, akan tetapi spasi ini dibuang jika data dipanggil. Jangkauan nilai M adalah 1 sampai 255 karakter.

VARCHAR(M) Ukuran L+1 byte dengan L<=M dan

1<=M<=255. String dengan panjang variabel.

TINYBLOB, TINYTEXT Ukuran L+1 byte dengan L<28. Sebuah BLOB atau TEXT dengan panjang maksimum 255 karakter.

BLOB, TEXT Ukuran L+1 byte dengan L<216. Sebuah BLOB atau TEXT dengan panjang maksimum 65535 karakter.

MEDIUMBLOB, MEDIUMTEXT

Ukuran L+1 byte dengan L<224. Sebuah BLOB atau TEXT dengan panjang maksimum 1677215 karakter.

LONGBLOB, LONGTEXT Ukuran L+1 byte dengan L<232. Sebuah BLOB atau TEXT dengan panjang maksimum 4294967295 karakter.

ENUM(‘value1’,’value2’,...) Ukuran 1 atau 2 byte tergantung jumlah nilai enumerasinya. Sebuah enumeration. Sebuah ENUM dapat menampung 65535 pilihan nilai.

SET(‘value1’,’value2’,...) Ukuran 1,2,3,4, atau 8 byte tergantung jumlah anggota himpunan. Sebuah SET dapat menampung hingga 64 anggota.

2.8.2. Referensi Bahasa MySQL 2.8.2.1. Create Database

Perintah ini digunakan untuk membuat sebuah database. Sintaksnya adalah sebagai berikut:

(25)

Jika pernyataan If Not Exist tidak disertakan, maka akan terjadi error apabila ternyata database dengan nama yang sama telah ada pada server. 2.8.2.2. Drop Database

Perintah ini digunakan untuk menghapus sebuah database. Sintaksnya adalah sebagai berikut:

DROP DATABASE [IF EXIST] namadatabase

MySQL tidak akan memberikan peringatan sebelum perintah ini akan dijalankan.

2.8.2.3. Create Table

Perintah Create Table digunakan untuk membuat tabel. Sintaksnya secara sederhana adalah sebagai berikut:

CREATE DATABASE [IF NOT EXIST] namatabel (definisi)

Parameter definisi meliputi hal-hal diantaranya sebagai berikut:

Namafield tipe [NOT NULL | NULL] [DEFAULT nilai default] [AUTO_INCREMENT] [PRIMARY KEY]

atau PRIMARY KEY (namafield)

atau KEY [namaindex] (namafield)

atau INDEX [namaindex] (namafield)

atau UNIQUE [INDEX] [namafield] (namafield)

2.8.2.4. Alter Table

Perintah ini digunakan untuk memodifikasi tabel yang pernah dibuat. Sintaksnya adalah sebagai berikut:

ALTER[IGNORE]TABLE namatabel spesifikasi [, spesifikasi...]

Pernyataan IGNORE digunakan untuk mengatur bagaimana perintah ALTER TABLE bekerja (jika ada duplikasi pada kunci unik sebuah tabel). Jika IGNORE tidak disertakan, perintah akan dibatalkan. Tetapi jika disertakan, maka hanya baris pertama saja yang digunakan dan yang lain dihapus (jika ada duplikat).

Parameter spesifikasi dapat berisi salah satu dari beberapa pernyataan berikut ini:

• ADD [COLUMN] definisi [FIRST | AFTER namafield]

• ADD [COLUMN] (definisi, definisi,...)

• ADD INDEX [namaindex] (namafield,...)

(26)

• ADD UNIQUE [namaindex] (namafield,...)

• ADD FULLTEXT [namaindex] (namafield,...)

• ALTER [COLUMN] namafiled {SET DEFAULT literal | DROP DEFAULT}

• CHANGE [COLUMN] fieldlama definisi

• MODIFY [COLUMN] definisi

• DROP [COLUMN] namafield

• DROP PRIMARY KEY

• DROP INDEX nama index

• RENAME [TO] nama tabel

• ORDER BY field

2.8.2.5. Drop Table

Perintah ini digunakan untuk menghapus sebuah tabel. Sintaksnya adalah sebagai berikut:

DROP TABLE [IF EXIST] namatabel

2.8.2.6. Insert

Perintah ini digunakan untuk menyisipkan suatu data ke dalam tabel. Data yang disisipkan dapat berupa data yang diambil dari tabel lain, ataupun data yang berupa nilai-nilai tertentu yang disebutkan secara eksplisit. Untuk data yang diambil dari tabel lain, sintaksnya sebagai berikut:

INSERT [INTO] namatabel [(namafield,...)]

Untuk data yang disebutkan secara eksplisit, sintaksnya sebagai berikut:

INSERT [INTO] namatabel [(namafield,...)] VALUES ekspresi

2.8.2.7. Select

Perintah ini digunakan untuk mengambil data dari suatu tabel. Sintaksnya secara sederhana adalah sebagai berikut:

SELECT {*|namafield} FROM namatabel [INTO tabeltujuan] [WHERE kondisi]

Tanda bintang (*) menandakan bahwa semua field yang ada akan dipilih. 2.8.2.8. Delete

Perintah ini digunakan untuk menghapus sebuah record dari tabel. Sintaksnya adalah sebagai berikut:

DELETE FROM namatabel WHERE kondisi

(27)

Perintah ini digunakan untuk memperbarui nilai suatu data. Sintaksnya adalah sebagai berikut:

UPDATE namatabel SET kriteria WHERE kondisi

2.8.2.10. Replace

Perintah ini hampir sama dengan INSERT, perbedaannya adalah jika record lama pada tabel memiliki nilai yang sama dengan record baru pada sebuah indeks unik, maka record lama akan dihapus dan diganti dengan record yang baru.

2.8.2.11. Use

Perintah ini digunakan untuk memilih database yang akan digunakan. Sintaksnya adalah sebagai berikut:

USE namatabel

2.8.2.12. Show

Perintah ini digunakan untuk menampilkan informasi tentang database yang sedang digunakan. Sintaksnya adalah salah satu dari daftar berikut: • SHOW DATABASE [LIKE kondisi]

• SHOW [OPEN] TABLES [FROM namadatabase] [LIKE kondisi]

• SHOW [FULL] COLUMNS FROM namatabel [FROM namadatabase] [LIKE kondisi]

• SHOW INDEX FROM namatabel [FROM namadatabase]

• SHOW TABLE STATUS [FROM namadatabase] [LIKE kondisi]

• SHOW STATUS [LIKE kondisi]

• SHOW VARIABLES [LIKE kondisi]

• SHOW LOGS

• SHOW [FULL] PROCESSLIST

• SHOW GRANTS FOR user

• SHOW CREATE TABLE namatabel

• SHOW MASTER STATUS

• SHOW MASTER LOGS

• SHOW SLAVE STATUS

(28)

PHP adalah bahasa pemrograman (scripting) yang menyatu dengan HTML dan dijalankan pada server side. Artinya sintaks dan perintah-perintah yang diberikan sepenuhnya dijalankan di server (namun disertakan pada halaman web biasa). Tujuan dari bahasa pemrograman PHP adalah untuk membuat aplikasi-aplikasi yang dijalankan di atas teknologi web. Dalam hal ini seluruh proses dijalankan seluruhnya pada server, yang kemudian hasil proses tersebut dikirimkan dan ditampilkan pada web browser.

Gambar 2.15. Diagram Kerja PHP

Berikut ini adalah cara menyisipkan kode PHP pada halaman HTML biasa.

<script language="php"> kode PHP

</script>

Cara yang lebih singkat adalah : <?php kode PHP ?> Atau, <? kode PHP ?>

2.9.1. Fungsi koneksi PHP dengan database MySQL

PHP telah menyediakan fasilitas koneksi dengan database MySQL. Sejumlah fungsi yang berawalan mysql_ yang digunakan adalah sebagai berikut. 2.9.1.1. Mysql_connect( )

(29)

Mysql_connect() digunakan untuk melakukan koneksi ke program database MySQL. Sintaksnya :

mysql_connect(host,user,password)

Fungsi ini kan menghasilkan nilai true, jika koneksi berhasil dilakukan dan false jika gagal.

2.9.1.2. MySQL_create_db( )

Fungsi mysql_create_db( ) digunakan untuk membuat database dari skrip PHP. Sintaksnya :

Mysql_create_db(namadatabase).

2.9.1.3. Mysql_select_db( )

Fungsi ini digunakan untuk memilih database yang akan digunakan (seperti perintah USE dalam program client MySQL). Sintaksnya :

mysql_select_db(namadatabase[,koneksi])

Parameter koneksi boleh tidak dituliskan. Jika tidak dituliskan, maka koneksi yang terakhir yang akan dianggap sebagai koneksi aktif.

2.9.1.4. Mysql_query( )

Fungsi ini digunakan untuk mengeksekusi query/permintaan dari sebuah database. Sintaksnya :

$query=mysql_query(perintah sql[,koneksi])

2.9.1.5. Mysql_fetch_array( )

Fungsi ini digunakan untuk mengambil record dari database dan memasukkannya ke dalam array asosiatif, array numeris, atau keduanya. Sintaksnya :

mysql_fetch_array($query)

2.9.1.6. Mysql_fetch_row( )

Fungsi ini hampir sama dengan fungsi mysql_fetch_array( ), hanya saja yang dihasilkan array numeris. Sintaksnya adalah sebagai berikut:

mysql_fetch_row($query)

2.9.2. Pemrograman Socket dengan PHP

Tugas akhir ini mencoba untuk mengaplikasikan PHP terutama penggunaan pemrograman socket. Socket menyediakan jalan bagi client dan server untuk saling berkomunikasi di dalam jaringan komputer. Socket membuat jalur end to end communication (yang memungkinkan client untuk mengirim

(30)

request ke server dan server menerima request tersebut dan memberikan respon kepada client). Sebagai contoh adalah sebuah web server melayani request client dengan membuka sebuah socket (biasanya port 80) dan client (web browser) berkomunikasi dengannya melalui socket tersebut. Untuk dapat mengaktifkan fitur socket pada PHP, maka perlu menghilangkan tanda “;” pada baris extension=php_sockets.dll dalam file ‘php.ini’.

Beberapa fungsi yang dipakai adalah sebagai berikut : 2.9.2.1. Socket_create() untuk membentuk socket.

resource socket_create ( int domain, int type, int protocol)

2.9.2.2. Socket_bind() untuk memberi nama pada socket (mempunyai nilai balik,

TRUE saat sukses atau FALSE saat gagal).

bool socket_bind ( resource socket, string address [, int port])

2.9.2.3. Socket_listen() untuk mendengar koneksi pada socket (mempunyai nilai balik TRUE saat sukses atau FALSE saat gagal).

bool socket_listen ( resource socket [, int backlog]) 2.9.2.4. Socket_accept() untuk menerima koneksi pada socket.

resource socket_accept ( resource socket) 2.9.2.5. Socket_close() untuk menutup socket.

void socket_close ( resource socket)

2.9.2.6. Socket_read() untuk membaca bytes yang ada pada socket.

string socket_read ( resource socket, int length [, int type])

2.9.2.7. Socket_write() untuk menulis pada socket.

int socket_write ( resource socket, string buffer [, int

Gambar

Tabel 2.1. Spesifikasi RabbitCore RCM3200
Tabel 2.2. Spesifikasi RabbitCore RCM3200 (sambungan)
Gambar 2.1. Pin RCM3200 pada header J1 dan J2  Sumber : RabbitCore RCM3200 Getting Started
Gambar 2.2. Penggunaan Port pada  Rabbit 3000  Sumber : RabbitCore RCM3200 Getting Started
+7

Referensi

Dokumen terkait

Puji syukur kepada panjatkan kepada Tuhan Yang Maha Esa atas rahmat, yang selalu mendampingi, bimbing dan penjagaan-Nya selama ini sehingga penulis dapat menyelesaikan proyek

Islam agama yang diwahyukan oleh Allah swt(1m) bukan ciptaan manusia(1m).. Islam satu pegangan yang bersih(1m) dari kekurangan supaya hidup lebih

Penentuan varians bersyarat dari sebuah peubah acak diberikan peubah acak lainnya, baik diskrit maupun kontinu dijelaskan dalam Definisi 7.12... 2 FUNGSI PEMBANGKIT

Halaman 6 LAMPIRAN II PENJABARAN PERTANGGUNGJAWABAN - PENJABARAN LAPORAN REALISASI ANGGARAN PENDAPATAN DAN

besar.Salah satu solusi untuk menangani kendala-kendala tersebut adalah dengan menggunakan aplikasi basis data yang diintegrasikan dengan tampilan berbasis web untuk

Momentum inilah yang menjadi dasar untuk diselenggarakannya Kongres Ikatan Alumni UPN “Veteran” Jakarta disertai dengan Reuni Akbar Alumni UPN “Veteran” Jakarta

Dalam studi manajemen, kehadiran konflik pendidikan tidak bisa terlepas dari permasalahan keseharian yang dirasakan oleh pengelola lembaga pendidikan. Konflik tersebut

( Pedoman Pemanfaatan Kawasan Sekitar TPA Sampah dari Dinas PU). Luas lahan utilitas dapat dilihat pada Tabel 42 di bawah ini. Lokasi layak 4 mempunyai alokasi lahan