BAB II
LANDASAN TEORI

2.1	Sejarah Singkat Optik Mutiara

6

Optik Mutiara berdiri sejak 15 Oktober tahun 2001. yang merupakan sebuah unit usaha dalam bidang kesehatan yang dituntut untuk memberikan layanan yang memuaskan kepada konsumen. Dengan demikian Optik dituntut untuk memberikan tingkat pelayanan yang tinggi kepada konsumen. Dalam proses transaksi Optik Mutiara melakukan pembelian secara langsung. Dalam hal pengadaan kaca mata Optik Mutiara telah menjalani kerjasama dengan berbagai supplier atau penyalur. Bahkan tidak menutup kemungkinan untuk menjalin kerjasama dengan supplier atau penyalur yang lainnya.
	Melihat perkembangan Optik Mutiara dari segi frekuensi kegiatan penjualan dan pembelian yang semakin meningkat dari waktu-kewaktu maka dirasa diperlukan sebuah alat yang dapat mendukung kinerja pelayanan kepada konsumen dan untuk mempercepat dalam mendapatkan informasi yang akurat serta dalam hal pengolahan data yang ada di Optik Mutiara

2.2	Sistem Penjualan Kaca Mata 
	Sedangkan proses pegeluaran Kaca Mata di Optik Mutiara dengan melalui sistem penjualan.. Setelah terjadi kegiatan transaksi tersebut tentunya persediaan dalam Optik akan mengalami perubahan dalam hal ini adalah berkurangnya stock yang ada sehingga perlu dilakukan pendataan yang keluar dengan cara mencatat satu-persatu barang yang keluar atau terjual. Barang yang belum terjual atau masih ada dalam stock tentunya akan mengalami perubahan jumlah dan tentunya akan semakin berkurang. Bila persediaan di Optik mencapai batas minimal maka harus segera melakukan pembelian kembali supaya tidak terjadi kehabisan stock.
	Sesuai dengan yang diuraikan diatas tujuan untuk memberikan pelayanan yang baik bagi pelanggan atau konsumen serta mempermudah dalam pengolahan data yaitu data pemasukan dan data pengeluaran yang terjadi melalui proses transaksi sehingga disini penulis akan mencoba menyelesaikan permasalahan tersebut supaya proses  yang dilakukan secara manual dapat diselesaikan menggunakan sistem komputerisasi.

2.3	Tahap Pengolahan Data
	Semua data yang telah diolah secara manual akan direkam kedalam komputer dan dimuat kedalam tabel-tabel data yang sudah dirancang. Dalam hal tahap ini dilakukan pembaharuan data yang meliputi penambahan data, pengeditan dan penghapusan data yang dirasa tidak akurat lagi.

2.4	Tahap Pembuatan Laporan
	Dalam tahap ini semua data yang sudah dimasukan ke dalam tabel tersebut akan diolah sehingga menghasilkan laporan-laporan yang diperlukan dan relevan dengan informasi yang dibutuhkan saat ini. Laporan ini akan ditampilkan pada layar komputer.

2.5	Konsep Basis Data
2.5.1	Pengertian Basis Data
Basis Data (Database) adalah kumpulan file yang mempunyai kaitan antara satu file dengan file yang lain sehingga membentuk satu bangunan data atau sistem informasi untuk menginformasikan data dari satu perusahaan atau instansi dalam suatu batasan tertentu.
Dalam membentuk basis data tersebut apabila ada satu atau lebih file yang lainnya maka sebaiknya dibangun sebuah file baru yang berdiri sendiri.

2.5.2	Perancangan Basis Data
Sebelum membangun basis data terlebih dahulu harus membuat rancangan basis data yang akan di buat, didalam perancangan basis data ini harus menyesuaikan dengan kebutuhan konsumen serta mempertimbangkan kebutuhan saat ini dan masa yang akan datang, sehingga apabila suatu waktu dibutuhkan pengembangan tidak perlu lagi membangun sebuah basis data baru.
Pada perancangan basis data secara konseptual akan menggambarkan entitas dan relasi berdasarkan proses yang diinginkan oleh konsumen (organisasi) sehingga sebelum menentukan entitas dan relasi tersebut terlebih dahulu harus dilakukan analisa secara mendalam terhadap obyek yang akan dibuat rancangan basis datanya.

2.5.3	Definisi Dalam Basis Data
1.	File adalah kumpulan record-record sejenis yang mempunyai panjang elemen yang sama, atribut yang sama, namun berbeda-beda datanya.
2.	Entity adalah orang, tempat, kejadian atau konsep yang informasinya direkam. 
3.	Record adalah kumpulan elemen-elemen yang saling berkaitan dan menginformasikan tentang suatu entity secara lengkap.  Satu record mewakili satu data atau informasi.
4.	Atribut adalah sebutan untuk mewakili Entity
5.	Data value adalah aktual atau informasi yang pada element atau atribut
Basis data dan lemari arsip sesungguhnya memiliki prinsipkerja dan tujuan yang sama. Prinsip utamanya adalah pengaturan data/arsip. Dan tujuan utamanya adalah kemudahan dan kecepatan dalam pengambilan kembali data/arsip. Perbedaanya hanya terletak pada media penyimpanan yang digunakan, jika lemari arsip menggunakan lemari dari besi atau kayu sebagai media penyimpanan, maka basis data menggunakan media penyimpanan elektronik seperti disk (disket atau harddisk).

2.6	Teknik Perancangan Basis Data
Administrator basis data memiliki tugas merancang model konseptual basis data. Model tersebut bukanlah pendekatan informasi seorang pemprogram aplikasi, tetapi merupakan kombinasi beberapa cara untuk memproses data untuk beberapa aplikasi. Pada perancangan model konseptual penekanan tinjauan dilakukan pada struktur data dan relasi antar file.

2.6.1	Teknik Normalisasi
Proses normalisasi mempunyai pengelompokan data element menjadi tabel-tabel yang menunjukan entitas dan relasi. Proses normalisasi selalu diuji pada beberapa kondisi, yaitu kemungkinan adanya kesulitan pada saat menambah, menghapus, mengubah, mengambil data pada suatu basis data. 
Sebuah teknik normalisasi digunakan untuk memproduksi sebuah model data yang memenuhi kriteria kualitas sebagai berikut :
•	Model data yang bagus adalah data yang modelnya sederhana. Sebagai aturan yang umum, atribut-atribut data yang akan mendeskripsikan sebuah entitas harus mendeskripsikan hanya entitas tersebut. 
•	Model data yang baik secara esensi adalah tidak rangkap (redundansi). Ini berarti setiap atribut data, selain foreign key, mendeskripsikan paling banyak satu entitas.
•	Model data yang baik harus fleksibel dan dapat disesuaikan dengan kebutuhan masa depan.
Kunci (key) dalam sebuah file yang akan dijadikan relasi dibedakan menjadi beberapa bagian yaitu :
•	Kunci primer (primery key)
Merupakan kunci yang dibentuk dari sebuah field (atribut) yang selain bersifat unik juga dapat mewakili kejadian dari suatu entitas.
•	Kunci alternatif (alternate key)
Merupakan suatu kunci kandidat yang tidak terpakai (tidak dipilih) sebagai primery key.
•	Kunci tamu (foreign key)
Merupakan suatu atribut (field) yang melengkapi satu relasi yang menunjukan ke induknya.

2.6.2	Teknik Entity Relational Diagram (ERD)
ERD menggunakan sejumlah notasi dan simbol untuk menggambarkan struktur dan hubungan antar data, pada dasarnya ada 3 macam simbol yaitu :
•	Entity (entitas), adalah suatu objek yang dapat diidentifikasikan dalam lingkungan pemakai.
•	Atribut, entitas mempunyai element yang disebut atribut, dan berfungsi mendeskripsikan karakter entitas.
•	Hubunagn relasi, sebagaimana halnya entitas maka dalam hubungannyapun harus dibedakan hubungan atau bentuk hubungan antar entitas dengan isi dari hubungan itu sendiri.
Relasi atau hubungan antara tabel dengan tabel lainnya terdiri dari 3 yaitu 
1.	One to One
Hubungan antara file atau tabel pertama dengan file atau tabel kedua adalah satu berbanding satu. Hubungan tersebut dapat ditunjukkan dengan tabel dan relasi antara keduanya dihubungkan dengan tanda panah tunggal.
2.	One to Many
Hubungan antara file atau tabel pertama dengan file atau tabel kedua adalah satu berbanding banyak atau dapat pula dibalik banyak lawan satu. Hubungan tersebut dapat ditunjukkan dengan tabel dan relasi antara keduanya dihubungkan dengan tanda panah ganda untuk menunjukkan hubungan banyak tersebut.

3.	Many to Many
Hubungan antara file pertama dengan file kedua adalah banyak berbanding banyak. Hubungan tersebut dapat ditunjukkan dengan tabel dan relasi antara keduanya dihubungkan dengan tanda panah ganda untuk menunjukkan hubungan banyak tersebut.

2.7	Sekilas Visual Basic 6.0
	Microsoft Visual Basic 6.0 adalah bahasa pemprograman yang digunakan untuk membuat aplikasi Windows yang berbasis grafis (GUI – Graphical User Interface) dan memungkinkan para pengembang atau programer untuk membuat aplikasi yang berbasis Windows dengan sangat mudah. Disamping itu Visual Basic 6.0 merupakan event-driven programing (pemprograman terkendali kejadian) artinya program menunggu sampai adanya respon dari pemakai berupa event / kejadian tertentu (tombol klik, menu dipilih). Ketika event terdeteksi, kode yang berhubungan dengan event (prosedur) akan dijalankan (Kusumo, 2000). Microsoft Visual Basic 6.0 banyak digunakan oleh para programer karena adanya fasilitas editor yang serba fungsi. Fasilitas tersebut adalah Integrated Development Environment (IDE) yang memberikan kemudahan dalam mengelola sumber program dan menyediakan apa yang akan dibutuhkan programer seperti membuat aplikasi, menulis kode, mencoba eksekusi program dan mengkompilasi kode program hingga menjadi file exe (Hadi, 2003).

2.8	Bahasa Pemprograman dan IDE
Visual Basic 6.0 menambah banyak koleksi fungsi, antara lain Filter, FormatCurrency, FormatDateTime, FormatNumber, FormatPercent, InstrRev, Join, MounthName, Replace, Round, Split, StrReverse, dan WeekdayName. Hal ini sangat berguna untuk pekerjaan pembuatan dan debugging kontrol ActiveX yang terkait dengan fungsi relasi beberapa aplikasi. Anda bisa menggunakan Setup Wizard dalam mengemas komponen untuk di Web.
Visual Basic 6.0 menyediakan tiga macam interface yang bisa anda gunakan untuk merancang aplikasi sesuai kebutuhan. Selain MDI (Multi Document Interface) dan SDI (Single Document Interface), kini tersedia Explorer Document Interface dengan gaya seperti Windows Explorer. 
Integrated Development Environment Visual Basic 6.0 menggunakan tampilan baru sehingga bagian-bagiannya bisa ditampilkan dalam kondisi docking atau floating (melayang). Modifikasi karakter masing-masing bagian juga lebih lengkap sehingga bisa memenuhi selera anda yang beragam pada komposisi bidang kerja. Hasil akhirnya tentu saja produktifitas kerja yang meningkat karena bidang kerja sesuai selera anda sendiri. Selain IDE, cakupan yang terkait dengan kemampuan modifikasi ini adalah pengontrolan project, event, kode, dan visuall element.
Beberapa peningkatan yang diterapkan pada Code Editor adalah :
•	Auto Quick Info menampilkan syntax untuk statement dan fungsi.
•	Procedure View dan tombol full Module View memudahkan pilihan untuk keseluruhan atau hanya procedure terpilih saja
•	Drag dan drop antara window code dan window Watch
•	Instant Watch dalam mode Debug bisa tampil sebagai tooltip
2.8.1	Integrated Development Integration
Integrated Devlopment Integration (IDE) adalah bidang kerja tempat kita bekerja untuk menghasilkan program aplikasi.

									Window
Toolbox	Form							Properties

								Window	Project
							     Form Layout       Explorer          

Gambar 2.1 Tampilan IDE VB6

2.8.2	Baris Menu
Baris menu terletak paling atas pada IDE. Menu merupakan kumpulan perintah-perintah yang dikelompokan dalam kriteria operasi yang dihasilkan. VB6 menyediakan tiga belas menu. 

Nama	Keterangan	
File	Kelompok perintah yang berfungsi untuk mengatur suatu file, seperti New, Save, Open dan sebagainya.	
Edit	Kelompok perintah untuk pengeditan, baik pengeditan obyek, komponen maupun kode pada Code Editor, Contohnya Cut, Paste, Align.	
View	Perintah-perintah untuk mengaktifkan bagian-bagian dari integrated Development Environment VB6.	
Project	Berfungsi untuk manajemen proyek serta pendukungnya	
Format	Kelompok perintah untuk melakukan proses format	
Debug	Untuk pengaturan dalam pencarian kesalahan program	
Run	Berfungsi untuk menangani proses kompilasi program, seperti Run, Build, Step, Over, Debug dan sebagainya	
Query	Kumpulan perintah untuk mengakses data yang diperlukan pada aplikasi database. Menu ini adalah menu baru pada versi 6	
Diagram	Menyediakan perintah untuk pengaturan diagram. Diagram yang merupakan menu baru pada versi 6 ini sangat menolong dalam proses perancangan	
Tools	Sebagai penyedia perlengkapan tambahan yang diperlukan dalam penyusunan program	
Add-Ins	Untuk mengatur program tambahan bagi VB6	
Window	Penganturan window yang sedang terbuka	
Help	Menyediakan informasi untuk menolong pemakai dalam menggunakan VB6	
Tabel 2.1 Baris Menu

2.8.3	Toolbar
Kehadiran tombol-tombol speed pada toolbar akan sangat membantu dalam mempercepat akses perintah (yang bisa jadi tersembunyi di dalam tingkat-tingkat hierarki). Sebab tombol speed berfungsi sama dengan perintah yang tersedia (dan tersembunyi) di dalam menu.

Gambar 2.2 Toolbar

2.8.4	Toolbox
Toolbox adalah tempat penyimpanan kontrol yang akan kita gunakan pada program yang dipasangkan pada form.

Gambar 2.3 Toolbox

Tombol Toolbox yang digunakan dalam program
1.	Pointer        ini bukan kontrol melainkan petunjuk kontrol sehingga kita bisa memindah letak atau mengubah ukuran kontrol yang terpasang pada form
2.	Label       untuk menampilkan gambar statis maupun gambar aktif dari sumber di luar dirinya
3.	Text Box       untuk membuat area text dimana textnya bisa dirubah oleh pemakai
4.	Frame    untuk mengelompokkan beberapa kontrol. Kontrol ini harus dipasang lebih dulu sebelum kontrol yang dilingkupinya
5.	Command Button          untuk membuat sebuah tombol pelaksanaan perintah.
6.	Option Button        untuk pemilihan doa keadaan dari banyak pilihan, namun hanya satu pilihan saja yang bisa diaktifkan pada satu saat
7.	Data Combo           untuk menampilkan salah satu field yang ada di dalam tabel.
8.	Image        untuk menampilkan gambar bitmap, icon, ataupun metafile pada form. Kontrol PictureBox menyediakan lebih banyak fasilitas dibanding kontrol ini.
9.	Data Grid          untuk menampilkan isi yang ada di dalam tabel
10.	DT Picker          salah satu komponen yang digunakan untuk format date/time
11.	ADODC            salah satu komponen yang digunakan untuk mengkoneksikan program dengan database

2.8.5	Form
Form adalah bahan untuk pembuatan window. Kita meletakan kontrol pada form. Kontrol ini misalnya tombol, check box, radio button, memo, label, panel dan sebagainya. Pada form tersedia tombol Minimize, Miximize/Restore dan Close, ketiga terletak di pojok kanan atas. Lihat gambar 2.4

Gambar 2.4 Form

2.8.6	Window Code
Window Code adalah tempat kita menuliskan program. Pada window ini terdapat fasilitas editing yang cukup lengkap. Jika kita melakukan klik ganda pada sebuah obyek yang berupa kontrol atau form maka window code ini akan langsung aktif dan membawa kursor kita ke tempat penulisan program yang terkait dengan obyek tersebut. Tempat penulisan berada di antara kata Private Sub dan End Sub;.  

Gambar 2.5 Window Code
Untuk mengaktifkan Window Code, ada beberapa cara :
•	Klik tombol View Code pada window Project.
•	Dari menu View klik perintah Code
Pada window Code ini terdapat dua buah fasilitas utama yaitu pemilihan Object dan Prosedur

Gambar 2.6 Pemilihan Object dan Prosedur
Hasil pemilihan akan membawa kursor ke lokasi penulisan kode program sesuai pemilihan kita.

2.8.7	Project Explorer
Project Explorer berfungsi sebagai sarana pengakses bagian-bagian pembentuk project. Pada window ini terdapat tiga tombol pengaktifan untuk window Code, window Object dan Toggle Folder. Juga terdapat diagram yang menampilkan susunan folder penyimpanan file-file project.

Gambar 2.7 Project Explorer

Untuk menampilkan window ini, caranya :
•	Dari menu View pilihlah Project Explorer.
•	Tekan tombol CTRL+R pada keyboard.

2.8.8	Window Properties
Window ini bertugas menyiapkan segala properti dari obyek yang diperlukan dalam perancangan user interface maupun pemprograman.

Gambar 2.8 Window Properties

2.8.9	Window Form Layout
Bisa digunakan untuk mengatur tataletak form pada layar monitor. Seringkali kita salah menempatkan form sehingga untuk mendapatkan posisi yang kita inginkan, setiap kali kita harus menjalankan program untuk mengetahui posisi dari hasil penyetelan yang kita lakukan. Dengan adanya window form layout ini pekerjaan berulang-ulang yang tidak kita inginkan tersebut bisa kita hindari.

Gambar 2.9 Window Form Layout

2.8.10	Window Immediate
Berguna untuk mencoba beberapa instruksi program pada window ini. Pada saat anda menguji program. Window ini bisa anda gunakan sebagai window debug.

                         Gambar 2.10 Window Immediate

Mari kita mencoba cara kerjanya. Aktifkan Window Immediate jika belum tampil, lalu tuliskan kode sederhana ini :
Print 30/5
Kemudian tekan Enter, VB6 akan menampilkan jawaban berupa : 6
Kali ini tuliskan kode berikut :
Print *Aku paling tekun belajar VB6*
VB6 akan menampilkan hasilnya demikian :
Aku paling tekun belajar VB6

2.9	Tipe data, Variabel, Operator, Deklarasi Variabel dan Alur Program
Visual Basic 6.0 menyediakan beberapa tipe data yaitu tipe data numeric, string, date, variant, array, object dan boolean yang masing-masing tipe data ini penggunaanya harus disesuaikan dengan kebutuhannya masing-masing.
Variabel adalah unsur penting dalam pemprograman. Untuk mengolah suatu data atau informasi, diperlukan tempat penyimpanan. Tempat ini adalah variabel. Dalam pengolahan data Visual Basic menyediakan beberapa macam operator yaitu operator matematika, operator penjumlahan dan pengurangan, operator perkalian dan pembagian, dan operator exponent.
Dalam deklarasi variabel, untuk membuat program kita harus membuat variabel terlebih dahulu. Caranya dengan menuliskan kode seperti ini :
Dim namavariabel As namadata
Kalau anda ingin membuat beberapa variabel sekaligus yang bertipe sama, penulisan Di cukup sekali dan seluruh variabel ditulis dalam satu baris, misalnya :
Dim hari As Date, minggu As Date, bulan As Date, tahun As Date 
	Deklarasi variabel untuk mengkoneksikan dengan data access dengan menggunakan adodc.connection caranya :
                                klik kanan pada adodc lalu piliha ADODC Properties, maka akan keluar Property Pages lalu pilih Record Sourcenya pada Command Text (SQL) kita tuliskan SELECT * FROM Nama Tabel. Setelah itu kita pilih General, pilih Use Connection String trus kita tekan tombol Build, maka akan keluar Data Link Properties, kita pilih Provider kita pilih  Microsoft.Jet.OLEDB.4.0 Provider, trus pada Connectionya pada select on enter a database namenya kita isikan sesuai dengan Nama_Database Setelah semuanya dikerjakan kita tekan tombol test connection habis itu tekan OK.
	Perintah-perintah lainya adalah :
•	Select, digunakan untuk menampilkan field-field yang terdapat pada tabel dalam database yang dasar perintahnya adalah :
SELECT * FROM nama_tabel
•	Inner join on, digunakan untuk penggabungan nama tabel yang terdapat pada tabel dalam database kemudian dimasukan dalam tabel lain yang mana dasar perintahnya adalah :
INNER JOIN “nama_tabel”nama_tabel
ON (nama_tabel.nama_field=nama_tabel.nama_field)
•	Where, didalam melakukan proses seleksi atau pemilihan dengan menggunakan statement select, untuk menambah sebuah kondisi tertentu yang mana dasar perintahnya adalah :
SELECT * FROM nama_tabel
WHERE nama_field
Alur program dalam Visual Basic 6.0 terdiri dari bermacam-macam antara lain alur If - Then - Else yang berguna untuk menilai dua atau beberapa keadaan sekaligus, alur if bertingkat dengan adanya ini akan diperoleh lebih banyak alternatif alur, alur Switch – Case alur ini pada dasarnya digunakan untuk percabangan yang banyak, untuk perulangan Visual Basic menyediakan 3 sarana perulangan yautu Do..... Loop, For...... Next, dan While...... Wend.

2.10	Crystal Reports  8.5
	Sofware yang digunakan dalam pembutan laporan pada program ini adalah Crystal Reports 8.5. crystal Reports 8.5 merupakan salah satu aplikasi perangkat lunak yang dikhususkan untuk membuat laporan. Pada dasarnya elemen layar dari Crystal Reports sebetulnya tidak jauh dari elemen layar Data Report (salah satu fasilitas default yang disediakan Visual Basic untuk membuat laporan). Hanya saja Crystal Reports dilengkapi dengan fasilitas yang lebih lengkap untuk mengembangkan jenis laporan (Hadi, 2003). Crystal Reports dirancang untuk membuat laporan yang dapat digunakan dengan bahasa pmprograman berbasis Windows, seperti Borland Delphi, Visual Basic, Visual C/C++ (Hadi, 2003).

2.11	Microsof Access
	DBMS (Data Management System) merupakan program management database yang dikontrol dan dikendalikan oleh bahasa pemprograman. Microsoft Access merepakan salah satu program database (DBMS) yang dibuat oleh Microsoft. Didalam Microsoft Access banyak terdapat fasilitas untuk membuat table, query, form, report, pages, modules, dan macro. Selain itu Microsoft Access menyediakan driver untuk dapat diakses oleh pemegang untuk membuat aplikasi program (Permana, 2000). 
Field name
Digunakan untuk menuliskan nama-nama field yang akan diisikan ke dalam table. Dan perlu untuk diperhatikan bahwa dalam mengisikan nama field, dalam pengisian nama field tidak boleh menggunakan spasi
Type
Digunakan menentukan tipe data dari field yang diisikan, misal tipe data Text, Number, Date/Time, Memo, Currency AutoNumber, Yes/No dan masih banyak lagi menu-menu yang dapat digunakan dalam pembuatan table di dalam database access.
Size
File ini digunakan untuk menentukan lebar atau ukuran karakter dari suatu field.

Key
Digunakan untuk menentukan suatu field menjadi sebuah primary key. Tanda asterisk (*) menunjukan bahwa field tersebut bertindak sebagai primary key, yaitu field yang membedakan antara record yang satu dengan record yang lainnya.

Gambar 2.11 Tampilan Microsof Access
Element-element Microsoft Access :
•	Baris judul (Title Bar)
Berisi nama-nama file dan nama program aplikasi yang sedang aktif
•	Kontrol menu (Control Menu)
Digunakan untuk mengontrol menu yang sedang aktif
•	Baris toolbar (Toolbar)
Tombol-tombol yang digunakan untuk menjalankan suatu perintah
•	Baris menu (Menu Bar)
Berisi perintah-perintah seperti File, Edit, View, Insert, Tool, Window, dan Help
•	Baris penggulung (Scrool Bar)
Digunakan untuk menggerakan layer kekiri/kekanan menggunakan (Horizontal Srool Bar) sedangkan digeser keatas dan kebawah menggunakan (Vertical Scrool Bar)