Title: BAB I
Author: Imel
Last saved by: asd
Company: STMIK Akakom Yogyakarta

1

BAB I
PENDAHULUAN

1.1		Latar Belakang Masalah
	Saat ini pemanfaatan aplikasi database client/server sudah banyak diterapkan oleh kalangan bisnis, terutama pada perusahaan-perusahaan besar untuk mengefisienkan pekerjaan mereka dalam memperoleh data secara aktual. Informasi  yang disajikan dari data tersebut sangat menunjang dalam proses pengambilan keputusan yang tepat. Sebab dengan menggunakan arsitektur client/server, semua proses pengolahan data dapat dilakukan dari satu tempat saja. dan menghindarkan dari perolehan informasi yang kadaluarsa akibat terpisahnya tempat untuk penyimpanan data. Dengan menggunakan arsitektur ini, dimungkinkan untuk mendapatkan integritas data yang cukup tinggi karena semua pemakai bekerja dengan informasi yang sama. Pemeliharaan data akan lebih dimudahkan karena tugas seperti itu dapat dilakukan pada satu tempat saja.
	MySQL sebagai database relasional yang merupakan pendukung pembuatan aplikasi client/server, akhir-akhir ini sedang naik daun karena banyak digunakai para pembuat aplikasi web, jaringan lokal maupun aplikasi stand alone. Ketertarikan para pengguna tersebut disebabkan oleh kemudahan dalam memakai database MySQL dan juga MySQL merupakan software yang gratis dan open source. 
	Untuk  pemakai tingkat pemula, MySQL memiliki kekurangan yaitu penggunaanya hanya berbasis pada mode text tidak seperti pada Oracle, SQL Server 2000 dan lain-lain yang menggunakan dengan editor yang berbasis grafis (GUI). 

1.2  	Rumusan Masalah
	Bentuk penyelesaian dari keterbatasan dari MySQL tersebut adalah sebuah Tool Administrasi MySQL yang dapat digunakan sebagai alat untuk mempermudah  pemakaian MySQL database. Perintah-perintah standar MySQL yang biasanya menggunakan teks dikembangkan dalam mode grafis.

1.3 	Batasan Masalah
	Fasilitas yang tersedia dalam 	Tool Administrasi MySQL ini adalah sebagai berikut ; 
1.	Koneksi ke server MySQL.
2.	Administrasi user.
3.	Pembuatan tabel dalam beberapa tipe tabel (MyISAM, BDB, InnoDB, ISAM, Merge, Heap ). 
4.	Informasi mengenai proses, variabel dan status MySQL server.
5.	Diagnosa dan utilitas  tabel. 
6.	Utilitas database.
7.	Kemudahan dalam pembuatan query.
8.	Panduan pemakaian Tool Administrasi MySQL dan informasi mengenai MySQL.
1.4	Metode Pengumpulan Data
	Untuk mempermudah penyusunan karya tulis ini digunakan metode dalam usaha pengumpulan data, yaitu Studi Pustaka. Metode ini ditujukan selain untuk memperoleh referensi yang mendukung kearah penyelesaian dari permasalahan yang ada, juga untuk mempelajari langkah-langkah pembuatan keseluruhan karya tulis secara baik.

1.5 	Sistematika Penulisan Karya Tulis
	Sistematika yang digunakan sebagai acuan dalam penyusunan karya tulis ini adalah sebagai berikut :

	BAB I.   PENDAHULUAN
Pada bab ini membahas tentang latar belakang masalah, rumusan masalah, batasan masalah, metode pengumpulan data, dan sistematika penulisan karya tulis.

	BAB II.   LANDASAN TEORI
Pada bab ini membahas tentang MySQL dan sejarah perkembangannya, sintaksis SQL,  konsep client/server dan sekilas mengenai bahasa pemrograman Borland Delphi 6.

	BAB III.   ANALISA DAN PERANCANGAN SISTEM
Pada bab ini membahas mengenai definisi sistem, kebutuhan sistem, flowchart program, penjelasan flowchart, perancangan berkas, perancangan antar muka output.

	BAB IV.  PEMBAHASAN DAN IMPLEMENTASI PROGRAM
Bab ini membahas mengenai implementasi program.

	BAB V.   PEMBAHASAN DAN IMPLEMENTASI PROGRAM
Bab ini berisi kesimpulan dan saran.

DAFTAR PUSTAKA
LAMPIRAN

5

BAB II
LANDASAN TEORI

2.1	MySQL dan sejarah perkembangannya
	MySQL adalah open source SQL database yang populer dan banyak digunakan pada aplikasi web. MySQL dibuat oleh sebuah perusahaan komersial dibidang perangkat lunak yaitu MYSQL AB. Pada mulanya MySQL bernama mSQL yang menggunakan perintah tingkat rendah (low-level) yaitu ISAM  untuk mengakses tabel, tetapi setelah melalui pengujian ditemukan beberapa masalah dan kurang fleksibel dalam akses ke tabel tersebut. dan menghasilkan antarmuka SQL yang baru dengan menggunakan antarmuka API sebagai antarmuka mSQL, pemilihan antarmuka API ini dimaksudkan untuk mempermudah akses oleh pihak ketiga. Perubahan nama dari mSQL menjadi SQL tidak diketahui siapa pencetus atau  pemberi awalan "my" tersebut.

2.2  Apa Itu MySQL ?
MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL ( General Public Licence ). Dimana setiap orang bebas untuk menggunakan MySQL, namum tidak boleh dijadikan produk turunan yang bersifat closed source atau komersial.
MySQL sebenarnya turunan dari salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan/seleksi dan pemasukan data, yang memungkinkan pengoperasian dataa dikerjakan dengan mudah secara otomatis. 
Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user maupun program-program aplikasiny. Sebagai database server, MySQL dapat dikatakan lebih unggul dibanding database server lainya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan query dapat sepuluh kali lebih cepat dibandingkan dengan PostgreSQL dan lima kali lebih cepat dibandingkan dengan Interbase. Ini merupakan kemampuan yang sangat menguntungkan untuk sebuah perangkat lunak yang gratis.

2.3  Sejarah Singkat MySQL.
MySQL dikembangkan sekitar tahun 1994 oleh sebuah perusahaan pengembang software dan konsultan database yang bernama MySQL AB yang bertempat di Swedia. Pada saat itu perusahaan tersebut masih bernama TcX DataKonsult AB, dan tujuan awal pengembangan MySQL adalah untuk pengembangan aplikasi berbasis web pada client.
Awalnya Michael Widenius “Monthy”, pengembang satu-satunya di TcX, memiliki subuah aplikasi UNIREG dengan rutin ISAM buatanya sendiri sedang mencari antarmuka SQL yang cocok untuk diimplementasikan kedalamny. Mula-mula Monthy memakai miniSQL (mSQL) pada eksperimennya itu, namun mSQL dirasa kurang sesuai, karena terlalu lambat dalam pemrosesan query.
Akhirnya Monthy menghubungi David Hughes, pembuat mSQL yang sedang merilis versi kedua mSQL. Kemudian Monthy mencoba membuat sendiri mesin SQL yang memiliki antarmuka mirip dengan SQL, tetapi dengan kemampuan lebih sesuai, dan lahirlah MySQL. Tentang pengambilan nama MySQL sampai sekarang ini belum jelas asal-usulnya. Ada yang berpendapat nama My diambil dari nama depan dan belakang Monthy, tetapi versi lain mengatakan bahwa nama itu diambil dari nama putri dari Monthy yang kebetulan bernama My.
	
2.4  Tipe Tabel pada MySQL
MySQL memiliki enam tipe tabel yang masing-masing memiliki kelebihan tersendiri. Dengan beragamnya tipe tabel ini pengguna MySQL dapat menentukan tipe tabel sesuai dengan kebutuhannya. Arsitektur tabel pada MySQL memungkinkan tiap tabel ditangani dengan handler yang berbeda. Handler ini menerima perintah akses dan modifikasi dari lapisan MySQL yang lebih atas dan mewujudkannya dalam bentuk fisik dari dan ke disk. 
Secara garis besar tipe-tipe tabel dapat digolongkan dalam dua kelompok, yaitu : 
•	Transaction Safe Tables ( TST )
Contoh : BDB ( Barkeley DB ) dan InnoDB.
Keuntungan dari pemakaian tabel denan tipe TST ini adalah :
-	Jika terjadi crash pada MySQL atau ada masalah dengan perangkat keras, kita dapat mendapatkan kembali data yang ada dengan recovery otomatis.
-	Kita dapat melakukan kombinasi beberapa perintah SQL dengan sekali perintah, yaitu COMMIT.
-	Kita dapat membatalkan perubahan yang telah dilakukan dengan perintah ROLLBACK jika terjadi kesalahan pemasukan data.

•	Not Transaction Safe Tables ( NTST )
Contoh : HEAP, ISAM, MERGE dan MyISAM
Keuntungan dari pemakaian tabel denan tipe NTST ini adalah :
-	Lebih cepat, karena tidak ada transaksi yang over.
-	Pemakaian ruang di disk lebih sedikit.
-	Penggunaan memory yang lebih sedikit.

2.5  Kelebihan MySQL
Sebagai database server yang memiliki konsep database modern, MySQL memiliki banyak keistimewaan sebagai berikut :
-	Portability
MySQL dapat berjalan stabil pada berbagai sistem operasi. Diantaranya seperti Windows, Linux, FreeBSD, Mac OS X Server, Solaris, Amiga, HP-UX dan masih banyak lagi.
-	Open Source
MySQL didistrubusikan secara Open Source ( gratis ), dibawah lisensi GPL sehingga dapat kita gunakan tanpa harus mengeluarkan biaya.
-	Multiuser
MySQL dapat digunakan oleh beberapa user dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
-	Perfomance Tuning
MySQL memiliki kecepatan yang menakjubkan dalam menangani query yang sederhana, dengan kata lain dapat memproses banyak SQL dalam satuan waktu.
-	Columns  Type
MySQL memiliki tipe kolom/field yang sangat kompleks, seperti signed/unsigned integer, float, double, char, varchar, text, blob, date, time, datetime, timestamp, year, set serta enum.
-	Command dan Function
MySQL memiliki operator dan fungsi secara penuh yang mendukung untuk perintah SELECT  dan WHERE dalam query.
-	Security
MySQL memiliki bebarapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi.
-	Scalability dan Limits
Mampu menangani database dalam skala besar, dengan jumlah kolom/field lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris/record. Selain itu, batas indeks yang dapat ditampung dalam setiap tabelnya mencapai 32 indeks pertabel.
-	Connectivity
MySQL dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, Unix Soket (Unix) dan Named Pipes ( NT ).
-	Localization
MySQL dapat mendeteksi pesan kesalahan  (error code) pada client dengan menggunakan lebih dari dua puluh bahasa. Meskipun demikian, bahasa Indonesia belum termasuk didalamnya.
-	Struktur Tabel
MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingakan dengan database lainnya seperti PostgreSQL, ataupun ORACLE.

2.6	 Sintaksis SQL
SQL ( Structured Query Language ) merupakan bahasa ANSI ( American National Standard Input ) yang digunakan untuk melakukan query pada database. Semua pengoperasian data dapat dikerjakan secara mudah dengan menggunakan bahasa ini, terutama dalam pemasukan dan seleksi data. Hampir semua software database menggunakan bahasa ini sebagai komponen utama dari produknya, contohnya adalah database server modern semacam MySQL, PostgreSQL, Oracle, Informik, dan beberapa database lainnya termasuk Microsoft Acces yang merupakan database stand-alone juga mendukung bahasa SQL.
Perintah SQL terbagi dalam dua jenis, yaitu :
a.  DDL ( Data Definition Language )
Merupakan perintah SQL yang digunakan untuk mendefinisikan data seperti CREATE DATABASE, CREATE TABLE, DROP DATABASE, DROP TABLE, ALTER TABLE, RENAME TABLE, CREATE INDEX, DROP INDEX.
b.	DML ( Data Definition Language )
Merupakan perintah SQL yang digunakan untuk memanipulasi data seperti SELECT, INSERT, UPDATE, DELETE, GRANT, SHOW.  

2.7	Konsep client/server 
Dalam kosep client/server , perpindahan data berlangsung karena adanya permintaan ( request ) dari salah satu komputer ke komputer lain yang menyimpan data. Sebagai tanggapan akan permintaan ini, maka komputer penyimpan data akan memberikan balasan ( response ). Balasan ini berupa pengiriman data yang ingin diakses oleh komputer yang melakukan permintaan data.
Hal tersebut dapat terjadi jika kedua komputer tersebut terhubung dalam satu jaringan komputer seperti jaringan internet atau jaringan lokal. Pada konsep ini, komputer penerima data disebut sebagai client dan komputer yang mengirimkan data disebut server. Datanya sendiri dapat berupa antara lain web, file, data dari tabel yang berada dalam suatu database dan lain-lain. 

2.8	 Bahasa pemrograman Borland Delphi 6.
Delphi adalah sebuah aplikasi untuk pengembangan yang memanfaatkan keistimewaan konsep-konsep antar muka grafis dalam Microsoft Windows. Aplikasi yang dihasilkan Delphi berkaitan erat dengan Windows itu sendiri sehingga dibutuhkan pengetahuan bagaimana cara kerja dari Windows bila dipandang dari kacamata pemakai. Karena Delphi merupakan pengembangan dari Turbo Pascal maka perintah-perintah yang digunakan hampir sama dengan perintah-perintah yang digunakan pada pemrograman Turbo Pascal.

2.8.1  Dasar-dasar Pemrograman Delphi
Secara umum dalam lingkungan kerja Delphi terdapat 4 buah Windows yang dirancang sebagai sebuah aplikasi Multi Window Single Documen Interface ( SDI ). Satu Window utama dalam Delphi mengatur beberapa Window yang saling berhubungan, 4 Window akan muncul saat Delphi pertama kali dipanggil.
1.	Window Utama
Window utama merupakan pusat pengaturan di dalam Delphi, dalam window ini terdapat 3 buah elemen yang masing-masing memiliki fungsi khusus, yaitu Menu bar, Speedbar, Palet komponen.
2.	Window Object Inspector
Lokasi window ini biasanya di bagian kiri bawah  window ini memiliki 2 buah halaman yaitu halaman properties dan halaman events. Halaman properties menampilkan semua property untuk obyek yang terpilih dalam windows form, sedangkan halaman events mendaftar semua even yang akan ditanggapi oleh obyek yang bersangkutan.
3.	Window Form
Untuk obyek yang baru window ini biasanya ditampilkan dengan judul “form1” dan terletak di bagian kiri atas window editor program. Window form dipakai untuk merancang window bagi aplikasi baru yang sedang dibuat. Sebuah aplikasi dapat berisi beberapa form dan minimal memiliki sebuah form.
4.	Window Editor Program
Window ini digunakan untuk menyunting program obyek pascal. Window ini dapat memiliki beberapa halaman yang masing-masing menyimpan sebuah unit program proyek yang aktif. Untuk menampilkan program pada file yang lain cukup dengan klik pada Tab nama unit program yang bersangkutan yang ada dibagian bawah window ini. Secara default, saat pertama kali Delphi dipanggil window hanya berisi sebuah Tab untuk unit pertama.
2.8.2  Tipe Data Dalam Pemrograman Delphi
Di dalam Borland Delphi harus menggunakan tipe data yang tepat agar variabel dapat berfungsi seperti apa yang diinginkan. Tipe data yang digunakan dalam pemrograman Delphi adalah :
1.   Tipe Bilangan Bulat
Tipe bilangan bulat pada Delphi dibagi menjadi yaitu tipe Fundamental dan tipe Generik. Perbedaan 2 macam tipe  ini terletak pada panjang bitnya. Jenis tipe bilangan bulat yaitu Shortint, Smallint, Longint, Byte, Word, Integer, Cardinal. Kita bisa menuliskan bilangan bulat dalam format heksadesimal dengan cara menambahkan karakter $ di depannya.
2.   Tipe Bilangan Real
Tipe data ini digunakan untuk jenis bilangan real. Selain bisa menampung bilangan bulat, tipe data ini juga dapat menampung bilangan dengan koma desimal ( bilangan pecahan ). Seperti juga pada tipe data integer, tipe data ini masih terbagi lagi dalam beberapa tipe, dimana masing-masing tipe memiliki perbedaan jangkauan data yang mampu menyimpannya, yang termasuk tipe data ini adalah Real, Single, Double, Extended, Comp, Currency.

3. 	Tipe Boolean
Tipe Boolean adalah tipe data yang hanya dapat bernilai benar atau salah. Tipe data ini merupakan tipe data yang paling sederhana karena data yang disimpannya hanya dipresentasikan 2 buah keadaan. Delphi menyediakan 4 macam tipe Boolean yaitu Boolean, ByteBool, WordBool, LongBool.   
4. 	Tipe Karakter
Tidak seperti tipe bilangan bulat dan bilangan real yang digunakan untuk menyimpan data bilangan, tipe karakter digunakan untuk menyimpan data alphanumerik, seperti ‘A’, ‘Z’ dan sebagainya. Tipe data karakter ini di desain hanya dapat menyimpan sebuah karakter dengan konsumsi memori satu byte. Karena satu byte dapat memberikan 256 kemungkinan, jenis karakter yang bisa disimpan dalam tipe ini sebanyak 256 karakter sesuai dengan aturan ASCII.
5. 	Tipe String
Berbeda dengan tipe karakter string digunakan untuk menyimpan lebih banyak karakter. Jumlah karakter yang dapat disimpan tergantung dari tipe data yang digunakan, adapun tipe data yng termasuk tipe data string adalah Shortstring, Ansistring, String dan Widestring.

2.8.3  Pemrograman Even Driven
Dalam even-driven telah ada sebelum GUI (Graphical User Interface) dibuat dan diimplementasikan dalam beberapa cara dengan diperkenalkannya mouse, pemrograman even-driven banyak disukai oleh pemakai dan perancangan program.
Dalam pemrograman ini harus ditentukan evennya terlebih dahulu untuk dapat bekerja. Tentunya hanya even tertentu saja yang harus diproses yang berhubungan dengan aplikasi. Delphi dapat menangani semua even perekaman tombol ketik dan tombol mouse, tinggal menentukan proses yang akan dikerjakan.

2.8.4  Pemrograman Berorientasi Obyek
Definisi sebuah obyek tidak memerlukan istilah khusus dari pemrograman. Arti yang mudah dari sebuah obyek adalah sesuatu yang dapat melakukan hal-hal tertentu. Didalam Delphi contoh-contoh obyek adalah Button, Label-box, Field dan lain-lain. Obyek adalah komponen-komponen untuk membuat sebuah aplikasi. Obyek dalam pemrograman Delphi ini diartikan segala yang terdapat di dalam form, bahkan form itu sendiri dapat disebut obyek.
Pemrograman visual dapat membuat aplikasi yang langsung membuat obyek-obyek di layar sebelum dijalankan. Dengan lingkungan pengembangan visual, obyek yang kita buat dapat langsung ditampilkan dilayar. Dalam Delphi obyek yang diletakan dalam sebuah form maka, secara otomatis akan dihasilkan kode program, dikompile untuk mendapatkan petunjuk kerja yang lebih cepat.

2.8.5  Pengertian Properti
Selain memiliki kemampuan untuk menanggapi event obyek memiliki properti. Dalam properti antara lain didapatkan informasi warna, lebar dan posisi dari sebuah obyek. Nilai dari tiap properti dapat mempengaruhi cara obyek ditampilkan atau dengan obyek bekerja.
Bagi sebuah obyek, properti mirip variabel lokal dalam prosedur properti langsung berkaitan dengan obyek dan digunakan oleh proses-proses yang ada dalam obyek. Properti adalah atribut dari obyek yang menerangkan detail sebuah obyek. Mengubah sebuah properti hanya berpengaruh pada obyek tersebut, namun pengubahan properti dengan sebuah variabel lokal mengakibatkan properti proyek dapat diakses oleh obyek lain. Sifat dari obyek dapat diubah pada saat eksekusi atau pada saat didesain untuk mengubah propertinya.

2.8.6  Visual Component Library ( VCL ) Dalam Borland Delphi
Sesuai dengan singkatannya, Visual component Library merupakan pustaka berisi komponen visual yang bisa digunakan untuk membangun aplikasi. Sebenarnya VCL tidak hanya berisi komponen visual, ada beberapa komponen yang bersifat non visual. VCL yang disertakan pada Delphi merupakan pengembangan dari OWL ( Objek Windows Library ) dengan kata lain, VCL pada dasarnya adalah mengkapsulan fungsi-fungsi windows API ke dalam komponen-komponen. Komponen-komponen VCL yang diletakan pada komponen pallete dibagi menjadi beberapa Tab yaitu :
1.	Standard, berisi kontrol-kontrol standar milik windows seperti perintah  
( Tbutton ), kotak edit ( Tedit ), kotak cek ( TcheckBox ) dan sebagainya.
2.	Win 32, berisi kontrol-kontrol standart yang hanya dimiliki oleh windows 9x/NT.
3.	Additional, berisi kontrol-kontrol tambahan dari Borland untuk melengkapi kontrol-kontrol standart milik windows.
4.	Data Acces, berisi komponen-komponen untuk menampilkan akses basis data pada aplikasi.
5.	Data Controls, berisi kontrol-kontrol untuk menampilkan tabel  basis data.
6.	Win 3.1. , berisi kontrol-kontrol standart milik windows 3.x.

2.8.7  Dasar-dasar Pemrograman Basis Data
Pemrograman basis data pada Delphi memerlukan suatu mesin basis data yang dinamakan BDE ( Borland Database Engine ), melalui BDE inilah kita dapat mengakses Tab basis data tanpa harus tahu format basis data yang sedang kita akses. Secara tekhnis BDE merupakan DLL yang berisi rutin-rutin untuk membaca atau menulis basis data. Secara mudah kita dapat menganalogikan BDE dengan ODBC 
( Open Database Connection ). Bedanya BDE dirilis oleh inprise, sedangkan ODBC dirilis oleh Microsoft. Bahkan pada kenyataannya BDE bisa juga mengakses sumber data dari ODBC.
Borland Database Engine adalah data perantara yang memberikan akses terpisah atas format data yang sedang diakses, kunci dari pengaksesan tersebut dilakukan oleh BDE dan fasilitas aliasnya. Setelah BDE dikonfigurasikan maka pengaksesan data menjadi lebih sederhana. Sebuah alias adalah sebuah nama yang diberikan untuk sebuah database, baik itu yang berada pada harddisk local ( drive C ) atau pada jaringan. Alias sangat berguna untuk mendefinisikan data local. Disamping menyederhanakan penulisan direktori, alias juga memberikan keuntungan yang fleksibel yaitu :
1.	Kemampuan untuk memisahkan data dengan kode program.
2.	Kemampuan aplikasi menggunakan sekumpulan data yang berbeda yang hanya mengganti referensi alias.
3.	Kemampuan untuk memudahkan data aplikasi dari database local ke database client/server.
Borland Database Engine ( BDE ) digunakan untuk mengakses file basis data yang terdapat dalam sebuah harddisk. Komponen data visual yang berhubungan dengan basis data antara lain :
1.	Komponen Dbtext, digunakan untuk menampilkan data sebuah field-field tertentu. Field yang datanya akan ditampilkan namanya dimasukan dalam property DataSource milik komponen ini. Guna komponen ini untuk menampilkan informasi sebuah record bagi pemakai.
2.	Komponen Dbedit, digunakan agar kita dapat mengubah sebuah field data untuk menghubungkan komponen ini dengan field yang akan dirubah, maka berikan nama field tersebut pada properti Datafield dan pada properti DataSource nama komponen dataSource yang dikehendaki.
3.	Komponen Dbmemo, memberikan presentasi visual dari sebuah field memo milik sebuah database. Tanpa memperhatikan bagaimana field diimplememtasikan dalam database tersebut komponen Dbmemo memberikan format yang konsisten.