BAB II TINJAUAN TEORITIS 2.1. Tinjauan Pustaka Realisasi SIM belum pernah dibuat sebagai Proyek Akhir di Politeknik Negeri Bandung khususnya program studi Teknik Telekomunikasi, tetapi ada beberapa Proyek Akhir yang mengunakan konsep dan sistem yang sama yaitu menggunakan visual basic, database, dan RFID reader. Berikut beberapa proyek yang telah drealisasikan: 1. Sistem absensi RFID dengan menggunakan Visual Basic6.0, Microsoft Access dan transmisi menggunakan transceiver tipe Tlp-Rlp jenis 315 MHz dan 433 MHz. dengan transmisi transceiver yang bersifat wireless memungkinkan sistem ini lebih fleksibel. 2. Sistem absensi RFID dengan media transmisi menggunakan wifi sebagi penghubung server dengan modul RFID. Server dibangun oleh tiga jenis aplikasi yaitu Visual Basic 6.0 sebagai otak dan hardware interface, PHP sebagi user interface, dan MYSQL sebagai database.User interface dan database sudah dalam bentuk web dan menghasilkan report otomatis berformat xlsx (Microsoft Offcie Excel 2007). 3. Sistem otomasi gerbang tol menggunakan RFID. Sistem ini menggunakan aplikasi perangkat lunak dengan bahasa basic dengan compiler Microsoft Visual Basic 6.0 dan menggunakan Microsoft access sebagai database. Sedangkan Proyek Akhir yang penulis realisasikan adalah perangkat lunak SIM berbasis RFID. Pada proyek akhir ini penulis menggunakan aplikasi Visual Basic 6.0 dan Php MyAdmin sebagai database. 2.2. Modulasi FSK Pada modulasi FSK (diterjemahkan sebagai penguncian penggeseran frekuensi), sinyal pemodulasi yang berupa sinyal digital digunakan untuk memodulasi frekuensi sinyal pembawa sinusoidal. Jika sinyal informasi mempunyai logika “0” maka sistem akan mentransmisikan suatu frekuensi 4 BAB II Tinjauan Teoritis tertentu misalnya f1, sedangkan jika sinyal informasi mempunyai logika “1” maka sistem akan mentransmisikan suatu frekuensi yang lain, misalnya f2. Dengan demikian, sinyal FSK yang ditransmisikan adalah sinyal sinusoidal dengan amplitudo konstan, tetapi dengan frekuensi berbeda sesuai dengan 68 arus data (sinyal pemodulasi). Berikut ilustrasi jenis modulasi FSK, dengan mentransmisikan frekuensi tinggi untuk arus data logika “1” dan frekuensi rendah untuk arus data logika “0”. Bit “1” → frekuensi tinggi (f2) Bit “0” → frekuensi rendah (f1) FSK seperti yang telah dibahas di atas biasa disebur Bynary FSK. Pada modulasi FSK frekuensi carrier digeser oleh input data yang berupa data biner. Ketika sinyal input biner berubah dari logika 0 ke 1 atau sebaliknya, maka output FSK bergeser antara dua frekuensi (frekuensi mark dan space). Output modulasi FSK akan mengalami perubahan frekuensi untuk setiap terjadinya perubahan kondisi logika dari sinyal input data. Sehingga kecepatan perubahan output modulasi FSK akan sama dengan kecepatan perubahan data pada input.[1] Gambar 2Sistem modulasi FSK biner 2.3. Visual Basic Microsoft Visual Basic merupakan sebuah bahasa pemograman yang menawarkan Integrated Development Environment (IDE) visual untuk membuat program perangkat lunak berbasis sistem operasi Microsoft Windows dengan Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 5 BAB II Tinjauan Teoritis menggunakan model pemrograman (COM), Visual Basic merupakan turunan bahasa pemrograman BASIC dan menawarkan pengembangan perangkat lunak komputer berbasis grafik dengan cepat, Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda. Para programmer dapat membangun aplikasi dengan menggunakan komponenkomponen yang disediakan oleh Microsoft Visual Basic Program-program yang ditulis dengan Visual Basic juga dapat menggunakan Windows API, tapi membutuhkan deklarasi fungsi luar tambahan. Dalam pemrograman untuk bisnis, Visual Basic memiliki pangsa pasar yang sangat luas[4]. Microsoft Visual Basic Merupakan sebuah bahasa pemrograman yang bersifat event driven dan menawarkan Integrated Development Environment (IDE) visual untuk membuat program aplikasi berbasis sistem operasiMicrosoft Windowsdengan menggunakan model pemrograman Common Object Model (COM). Visual Basic merupakan turunan bahasa BASIC dan menawarkan pengembangan aplikasi komputer berbasis grafik dengan cepat, akses ke basis data menggunakan Data Access Objects (DAO), Remote Data Objects(RDO), atau ActiveX Data Object(ADO), serta menawarkan pembuatan kontrol ActiveX dan objek ActiveX [4]. Keunggulan yang paling menonjol adalah kemudahan pemakaian, karena tergolong bahasa tingkat tinggi . Sisi lain keunggulanVisual Basic juga adalah mempunyai intelegent IDE yang selalu mengingatkan pada setiap syntax- syntax prosedur yang ditulis intelegent IDE ini antara lain Auto List dan AutoQuick. Visual Basic memungkinkan pembuatan aplikasi Graphical Use Interface (GUI) dalam menyajikan suatu interface (antarmuka), salah satunya aplikasinya adalah Visual basic bisa berkomunikasi dengan mikrokontroler menggunakan Microsoft Control Comm 6.0 dan juga bisa mengakses database dari Microsoft Access menggunakan Data Control[4]. 2.3.1 Tipe Data Data memiliki tipe yang berbeda‐beda dan biasanya data dikelompokkan pada kelompok yang sejenis agar tidak terjadi operasi matematika diantara data Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 6 BAB II Tinjauan Teoritis yang berbeda jenis tersebut, contohnya kita tidak bisa menjumlahkan nilai suatu jarak (Km) dengan Massa (Kg) karena keduanya memiliki tipe data yang berbeda. Begitu juga dalam suatu program, setiap nilai harus dikelompokkan pada jenis‐jenis tertentu yang disebut dengan tipe data [4]. Tipe-tipe data yang terdapat dalam visual basic antara lain : a.Integer, long : tipe data untuk angka bulat b.Single, double : tipe data untuk angka pecahan/desimal c.Currency : tipe data untuk angka mata uang d.String : tipe data untuk teks e.Boolean : tipe data logika ( True/False) f.Date : tipe data waktu/tangggal g.Object : tipe data untuk sebuah objek misalnya gambar h.Variant : tipe data variant Tabel 1 Tipe data Tipe Integer Jangkauan -32.768 s/d 32.768 Long -2.147.483.648 s/d 2.147.483.648 Single -3.403823 e38 s/d -1.401298 e-45 1.401298 e-45 s/d 3.403823 e38 ( positif) Double 4,9406564584127 e324 s / d 1.797,9313486232 e308 ( positif ) Currency 922.337,203,685,477.5807 s/d 922.337,203,685,477.5808 String 0 s/d 65.500 karakter ( win31) 0 s/d 232 Karakter ( Win95/NT) Boolean Date Object Byte Variant Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 True atau False 1 Januari 100 s/d 31 Desember 9999 Referensi Obyek 0 s/d 255 Null, Error, numeric dengan tipe 7 BAB II Tinjauan Teoritis double,karakter teks,obyek atau array 2.3.2 Variabel Setiap data yang disimpan dalam komputer memerlukan variabel sebagai sesuatu tempat untuk menyimpan nilai dari data tersebut, dan nilainya suatu variable dapat berubah-ubah selama proses program.misalnya kita bisa menyimpan nilai ujian mid di variable A dan nilai ujian akhir di variable B, dan setiap mahasiswa nilainya pasti berbeda. Dalam penamaan sebuah variabel tidak boleh ada 2 atau lebih variabel yang memiliki nama yang sama, pemberian nama variabel harus unik. Hal ini bertujuan agar tidak terjadi kesalahan pada program. Dalam visual basic dikenal adanya istilah variabel lokal dan variabel global : a) Variabel lokal yaitu variabel yang hanya dikenal pada satu bagian program saja, nilai data yang terdapat di dalamnya hanya hidup ketika bagian program tersebut dijalankan. b) Variabel global yaitu variabel yang dikenal pada seluruh bagian program dan waktu hidupnya selama program dijalankan. Selain itu masih ada aturan-aturan dalam penamaan sebuah variable yaitu sebagai berikut : a) Tidak boleh lebih dari 255 karakter. b) Nama harus unik tidak boleh menggunakan kata yang sudah digunakan dalam visual basic, seperti dim, procedure, dll. c) Tidak boleh menggunakan spasi atau tanda titik/dot (.) diantara kata jika nama variabel lebih dari satu kata. d) Harus dimulai dari huruf , bukan angka atau karakter lainnya Bentuk umum untuk mendeklarasikan sebuah variabel : Dim/Public/Private/Static NamaVariabel As TipeData Misalnya : Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 8 BAB II Tinjauan Teoritis Dim sngAngka As Single Dim strText As String Dim dblBilangan As Double Untuk sebuah variabel agar bisa digunakan di seluruh bagian program, harus dideklarasikan secara publik contohnya sebagai berikut : Public strNama As String Untuk memanggil variabel public perlu disertai nama form tempat variabel di deklarasikan. Misalnya kita mendeklarasikan variabel public di form1 maka untuk memanggilnya dari form2 caranya adalah sebagai berikut : nama = form1.strNama Variabel lokal hanya bisa digunakan pada bagian program dimana variabel tersebut dideklarasikan, sebaliknya variabel global bisa digunakan di seluruh bagian program [4]. 2.3.3 Konstanta Konstanta adalah variabel yang memiliki nilai tetap, sekali variabel konstanta diberi nilai maka selama proses program berjalan nilai konstanta tidak akan berubah. Konstanta biasanya digunakan untuk menyimpan nilai-nilai tertentu yang bersifat tetap sepert nilai gravitasi bumi, Fi, dan tetapan-tetapan dalam rumus fisika atau matematika lainnya. Cara pendeklarasian sebuah konstanta sama halnya dengan variabel, pendeklarasian konstanta data dilakukan secara private maupun public [4]. 2.4 SQL SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya[6]. Structured Query Language (SQL) merupakan bahasa yang banyak digunakan dalam berbagai produk database. SQL dibangun di laboratorium IBM-San Jose California sekitar akhir tahun 70-an. Pertama kali Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 9 BAB II Tinjauan Teoritis dikembangkan sebagai bahasa di produk database DB2 yang sampai saat ini merupakan produk database andalan IBM. SQL sering di lafalkan dengan “sequel”[6]. SQL adalah suatu bahasa komputer yang mengikuti standar ANSI, yaitu sebuah bahasa standar yang digunakan untuk mengakses dan melakukan manipulasi sistem database. Statement dalam SQL dapat digunakan untuk mengakses data atau meng-update data pada suatu database. Fungsi utama SQL digunakan untuk relational database seperti ; Oracle, SQL Server, DB2, Infomix, Sysbase, MS Acces, My SQL, dan lain-lain [6]. Query adalah perintah SQL yang dirancang untuk memanggil kelompok record atau baris tertentu dari 1 ( satu ) tabel atau lebih. Bahasa Query mulai dikembangkan oleh IBM pada tahun 1970 yang hingga saat ini telah digunakan hampir semua produk DBMS yaitu ; Structure Query Language yang dikenal dengan standar SQL. Secara umum umum SQL dibagi menjadi 3 ( tiga ) bagian yaitu : Data Definition Language ( DDL ), Data Manipulation Language ( DML ) dan Data Control Language ( DCL ) [6]. 2.4.1 Data Definition Language ( DDL ) DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya tabel, view, user, dan sebagainya. Secara umum, DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTERuntuk mengubah objek yang sudah ada, dan DROPuntuk menghapus objek. DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data [6]. CREATE TABLE, bertugas untuk membuat tabel. CREATE INDEX, bertugas untuk membuat suatu indeks dalam tabel. DROP TABLE, bertugas untuk menghapus suatu tabel. DROP INDEX, bertugas untuk menghapus suatu indeks dalam tabel. ALTER TABLE, bertugas untuk merubah struktur suatu tabel. Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 10 BAB II Tinjauan Teoritis DDL adalah merupakan suatu perintah yang berfungsi untuk mendefinisikan atribut-atribut basis data, tabel, atribut serta hubungan antar tabel dijelaskan sebagai berikut [6] 2.4.2 CREATE CREATE digunakan untuk membuat basis data maupun objek-objek basis data. SQL yang umum digunakan adalah: CREATE DATABASE nama_basis_data CREATE DATABASE membuat sebuah basis data baru. CREATE TABLE nama_tabel CREATE TABLE membuat tabel baru pada basis data yang sedang aktif. Secara umum, perintah ini memiliki bentuk CREATE TABLE [nama_tabel] ( nama_field1 tipe_data [constraints][, nama_field2 tipe_data, ...] ) atau CREATE TABLE [nama_tabel] ( nama_field1 tipe_data [, nama_field2 tipe_data, ...] ) dengan: nama_field adalah nama kolom (field) yang akan dibuat. Beberapa sistem manajemen basis data mengizinkan penggunaan spasi dan karakter nonhuruf pada nama kolom. tipe_data tergantung implementasi sistem manajemen basis data. Misalnya, pada MySQL, tipe data dapat berupa VARCHAR, TEXT, BLOB, ENUM, dan sebagainya. Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 11 BAB II Tinjauan Teoritis Constraintsadalah batasan-batasan yang diberikan untuk tiap kolom. Ini juga tergantung implementasi sistem manajemen basis data, misalnya NOT NULL, UNIQUE, dan sebagainya. Ini dapat digunakan untuk mendefinisikan kunci primer (primary key) dan kunci asing (foreign key). Satu tabel boleh tidak memiliki kunci primer sama sekali, namun sangat disarankan mendefinisikan paling tidak satu kolom sebagai kunci primer [6]. Sebagai tambahan setiap kolom pendefinisian tabel dapat dilengkapi dengan UNIQUE, NOT UNIQUE, NULL dan NOT NULL. NULL : untuk menyatakan nilai kolom dapat diisi. NOT NULL : untuk menyatakan nilai kolom harus diisi. UNIQUE : untuk menyatakan nilai pada kolom tidak ada yang sama. NOT UNIQUE: untuk menyatakan nilai pada kolom boleh sama. Contoh: CREATE TABLE user ( username VARCHAR(30) CONSTRAINT PRIMARY KEY, passwd VARCHAR(20) NOT NULL, tanggal_lahir DATETIME ); CREATE INDEX idx_Nama_Pengarang, ON tblPengarang(Nama_Pengarang) Pernyataan diatas : Idx_Nama_Pengarang merupakan Indeks yang akan diciptakan. tblPengarang merupakan nama tabel yang akan diindeks. Nama_Pengarang merupakan nama kolom untuk mengindeks. 2.4.3 DROP Pernyataan drop ini digunakan untuk menghapus tabel dan indeks, sedangkan sintaks SQL untuk melakukan penghapusan tabel dan indeks adalah sebagai berikut : Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 12 BAB II Tinjauan Teoritis DROP TABLE Nama_Table Di mana, Nama_Table adalah nama dari tabel yang akan dihapus. Contoh : DROP TABLE tblPengarang Perintah ini merupakan pernyataan untuk menghapus tabel pengarang. DROP INDEX idx_Nama_Pengarang ON tblPengarang Perintah ini merupakan pernyataan untuk menghapus indeks nama pengarang pada tabel pengarang. 2.4.4 Data Manipulation Language ( DML ) SQL adalah sekumpulan sintaks-sintaks atau statement untuk mengakses data dalam database, tetapi SQL sendiri juga bisa digunakan untuk melakukan proses insert, update, atau delete ke dalam suatu database. Sintaks-sintaks ini yang disebut dengan Data Manipulation Language ( DML ) yang merupakan bagian dari SQL. DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang umum dilakukan adalah [6] : 2.4.5 SELECT untuk menampilkan data INSERT untuk menambahkan data baru UPDATE untuk mengubah data yang sudah ada DELETE untuk menghapus data SELECT SELECT adalah perintah yang paling sering digunakan pada SQL, sehingga terkadang istilah query dirujukkan pada perintah SELECT. SELECT digunakan untuk menampilkan data dari satu atau lebih tabel, biasanya dalam sebuah basis data yang sama. Secara umum, perintah SELECT memiliki bentuk lengkap [6] : SELECT [nama_tabel|alias.]nama_field1 [AS alias1] [, nama_field2, ...] Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 13 BAB II Tinjauan Teoritis FROM nama_tabel1 [AS alias1] [INNER|LEFT|RIGHT JOIN tabel2 ON kondisi_penghubung] [, nama_tabel3 [AS alias3], ...] [WHERE kondisi] [ORDER BY nama_field1 [ASC|DESC][, nama_field2 [ASC|DESC], ...]] [GROUP BY nama_field1[, nama_field2, ...]] [HAVING kondisi_aggregat] dengan: kondisi adalah syarat yang harus dipenuhi suatu data agar ditampilkan. kondisi_aggregat adalah syarat khusus untuk fungsi aggregat. Kondisi dapat dihubungkan dengan operator logika, misalnya AND, OR, dan sebagainya. 2.4.6 SUBQUERY Query dapat menjadi kompleks, terutama jika melibatkan lebih dari satu tabel dan/atau fungsi aggregat. Beberapa SMBD mengizinkan penggunaan subquery[6]. Contoh: Tampilkan username pengguna yang memiliki jumlah transaksi terbesar. SELECT username FROM user WHERE jml_transaksi = ( SELECT MAX(jml_transaksi) FROM user ) 2.4.7 INSERT Insert digunakan untuk menambah sebuah baris pada suatu tabel, sintaks SQL untuk melakukan penambahan baris adalah sebagai berikut: INSERT INTO [NAMA_TABLE] ([DAFTAR_FIELD]) VALUES ([DAFTAR_NILAI]) Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 14 BAB II Tinjauan Teoritis Keterangan: INSERT mana : Klausa ini menspesifikasikan nama tabel di data bisa ditambahkan. VALUE : Klausa ini menspesifikasikan nilai data yang disisipkan ke dalam kolom pada suatu tabel. Daftar_Field : Merupakan daftar kolom yang dipisahkan oleh tanda koma menyatakan kolom-kolom yang akan diisi data. Jika tidak ada kolom yang dinyatakan, berarti semua kolom didalam akan diisi data. Jika hanya sebagian daftar yang dinyatakan, nilai null atau nilai default akan diisikan ke kolom yang tidak disebutkan dalam daftar kolom. Daftar Nilai : daftar nilai untuk kolom tabel yang akan disisipkan sebagai sebuah baris data dalam tabel. Data yang diberikan pada daftar nilai harus sesuai dengan daftar kolom. Banyak data harus sama dengan banyak kolom, tipe data, presisi, dan skala dari setiap data harus sesuai dengan kolomnya.[6] INSERT INTO tblPengarang VALUES(1,’Asnadi’,’Jl. Beo 34’,’Yogyakarta’,’P’) Perintah ini merupakan pernyataan untuk menambahkan data dalam 1 (satu ) baris. INSERT INTO tblPengarang (Kd_Pengarang, Nama_Pengarang) VALUES(11,’HENDI’) Contoh: INSERT INTO TEST (NAMA, ALAMAT, PASSWORD) VALUES ('test', 'alamat', 'pass'); 2.4.8 UPDATE Update digunakan untuk mengubah sebuah data pada suatu tabel, contoh SQL untuk melakukan pengubahan data adalah sebagai berikut [6] : Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 15 BAB II Tinjauan Teoritis UPDATE [NAMA_TABLE] SET [NAMA_KOLOM]=[NILAI] WHERE [KONDISI] Contoh: UPDATE tblPengarang SET Nama_Pengarang = ‘Hendi’ Where Kd_Pengarang = 11 Pernyataan di atas : SET, untuk menentukan kolom yang akan diubah dan nilai penggantinya. WHERE, untuk menentukan kondisi dari baris-baris yang akan diganti. Contoh: UPDATE Msuser set password="123456" where username="abc" 2.4.9 DELETE Delete digunakan untuk menghapus baris pada suatu tabel, contoh SQL untuk melakukan penghapusan baris sebagai berikut [6] : DELETE FROM [NAMA_TABLE] [KONDISI] DELETE FROM tblPengarang WHERE Kd_Pengarang = 11 Bila pernyataan WHERE tidak disebutkan, maka seluruh baris pada tabel akan terhapus. Contoh: DELETE FROM TEST WHERE NAMA='test'; Contoh: DELETE FROM tblPengarang Pernyataan ini akan membuat semua baris pada tabel pengarang akan terhapus. Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 16 BAB II Tinjauan Teoritis 2.5 RS 232 RS232 (Recommended Standart) merupakan standar yang menyangkut komunikasi antara Data Terminal Equipment (DTE) dengan alat-alatelektronik lainnya, Data Circuit Terminating Equipment (DCE). Dalam standarnya dicantumkan sinyal RS232 memiliki ketentuan level tegangan yaitu di antaranya - Logika 1 disebut ‘Mark’ terletak antara -3 Volt sampai -25 Volt - Logika 0 disebut ‘space’ terletak antara +3 Volt sampai +25Volt - Daerah tegangan antara -3 Volt sampai +3 Volt adalah invalidlevel, yaitu daerah tegangan yang tidak memiliki level logikapasti sehingga harus dihindari. Dengan demikian level tegangan dibawah -25 Volt dan di atas +25Volt juga harus dihindari karena bisa merusak line driver pada saluran RS232.[7] Gambar 3 Level tegangan RS232 pada proses pengiriman huruf 2.5.1 KONFIGURASI PORT SERIAL Berikut contoh RS232 yaitu konektor DB-9 pada bagian belakang komputer padaVGA Card. Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 17 BAB II Tinjauan Teoritis Gambar 4 Konektor DB9 Fungsi dari konfigurasi saluran RS232 pada konektor DB-9 : 1. Received Line Signal Detect : berfungsi sebagai pemberi signal atau tandapada terminal masukan terdapat data masukan. 2. Receive Data : saluran DTE dalam menerima data dari DCE 3. Transmit Data : saluran DTE mengirimkan data ke DCE 4. Data Termianal Ready : pada saluran ini DTE memberitahukan kesiapanterminalnya 5. Signal Ground : saluran ground 6. DCE ready : sinyal aktif pada saluran ini menunjukkan bahwa DCE sudahsiap 7. Request to Send : di saluran ini DCE diminta mengirim data oleh DTE 8. Clear to Send : pada saluran ini DCE memberitahukan bahwa DTE bolehmulai mengirim data 9. Ring Indicator : pada saluran ini DCE memberitahukan ke DTE bahwasebuah stasiun menghendaki hubungan dengannya.[7] Taufik HIdayat (091331029) Laporan Proyek Akhir 2012 18