Minggu, 16 September 2012

Mempercantik Tampilan dengan Alpha Skin

Urusan Tampilan Tentu merupakan hal yang utama bagi kebanyakan orang. Dalam Merancang Sebuah Aplikasi dengan bahasa Pemrograman Delphi, Anda Dapat mempercantik tampilan aplikasi anda dengan menggunakan component Alpha Skin untuk delphi.

Pada Postingan ini admin ingin sharing component delphi yaitu Alpha skin sekaligus panduan penggunaannya. Biar gak Panjang Lebar, Bagi Anda yang belum punya componentnya silahkan Download dulu disini selanjutnya extrack file hasil download anda dan mari kita belajar cara menggunakannya

1. Buka Delphi Anda
2. Klik Menu File -> Open -> Browse di File Hasil Extrack -> Cari Folder D7 -> Kemudian Buka File acntD7 -> Install -> OK

Mempercantik Tampilan dengan Alpha Skin

Mempercantik Tampilan dengan Alpha Skin

Setelah Proses Instalasi diatas selesai, Secara Otomatis component-component Alpha Skin telah ditambahkan kedalam Delphi. Biasanya akan berada pada pallete terakhir. Selanjutnya mari kita belajar bagaimana menggunakan Alpha skin.

Step 1. Masuk Ke Pallete Alpha Tools Kemudian Tambahkan Dua Buah Komponen kedalam Form Anda (sSkinManager dan sSkinProvider)

step 2. Klik 1 kali pada Komponen sSkinManager didalam Form Anda Kemudian Ubah Property pada Object inspector :

a) Skin Directory -> Cari Lokasi Folder Skin (ada didalam Folder hasil extrack)
b) Skin Name -> Ganti Sesuai Selera

Note :
- Jika terjadi Error File *.dcu Not Found, lihat solusinya disini

Mempercantik Tampilan dengan SuiPack

Kadangkala kita bosan melihat tampilan aplikasi yang kita buat dengan delphi terlihat itu itu saja.maka terlintas dibenak kita bagaimana memperindah tampilan yang kita buat dengan bahasa delphi menjadi lebih user friendly alias lebih menarik.

Nah, Pada Postingan ini Admin ingin berbagi trik untuk mempercantik tampilan aplikasi yang kita buat dengan delphi agar terlihat lebih manis. Untuk itu kita membutuhkan sebuah komponen bernama Suipack. bagi anda yang belum punya komponen-nya silahkan download disini Gratis dan Full Versi.

Selesai Download. extrack dulu foldernya kemudian Instal. Selanjutnya ikuti step step dibawah ini tentang cara menggunakan komponen Suipack.

Tahap Pertama, Buka delphi 7 Anda

Tahap Kedua, Klik Menu File -> Open -> Browse Komponen-nya pada Folder yang Sudah Anda Extrack (Pilih Folder Package -> SuiPackD7)

Tahap Ketiga, Install -> Lalu Klik OK

Pilih Salah Satu Komponen Suipack yang ingin anda pasang dalam Form anda. Udah. Gitu aja. :)

Sebenarnya saya heran dengan orang Indonesia. Kok malah mengutamakan tampilan ya ? Padahal Skin Membuat Aplikasi yang kita buat menjadi sedikit berat (Loading Lama). Intinya Sebuah Aplikasi Bukan Pada Tampilan bukan ? tapi pada Proses yang cepat serta kemampuan yang hebat. tapi sudahlah jangan hiraukan perkataan saya karena selama itu baik, kenapa tidak ? hehe

Penggunaan Statusbar Pada Delphi

Statusbar biasanya digunakan untuk menampilkan Informasi dari aplikasi yang sedang dijalankan. Statusbar diletakkan dikaki aplikasi tepatnya dibagian bawah Form. Sobat dapat melihat contohnya jika sedang menjalankan Microsoft Office. Lihatlah pada bagian bawah Jendela Lembar Kerja ada disana ada informasi tentang bahasa yang digunakan, Informasi Halaman serta jumlah kata yang telah diketikan, serta Utilitas untuk melakukan Zoom ini dan Zoom Out (Office 2010 / Word).

Sebenarnya bukan hanya Microsoft Office yang menampilkan Statusbar karena rata-rata hampir semua aplikasi keren menggunakan Satusbar. Di Delphi, Untuk Membuat Statusbar tidaklah begitu rumit. Berikut Admin Ingin Sharing tentang cara penggunaan komponen statusbar pada Delphi.

1. Silahkan Tambahkan Komponen Statusbar pada Form Anda. Komponen Statusbar sendiri ada di pallete Win32

2. Pada Object TreeView -> Statusbar -> Panel -> Tambahkan sesuai Kebutuhan Anda -> Pada Contoh ini saya menggunakan 3 Panel

Penggunaan Statusbar Pada Delphi

Penggunaan Statusbar Pada Delphi

3. Atur Lebar Panel Pada Object Inspector -> Width = Sesuai kebutuhan
4. Untuk Menambahkan Teks, Silahkan Masuk Ke Event FormCreate dan Tambahkan Code ini :
StatusBar1.Panels[0].Text:=' Ini Contoh';
StatusBar1.Panels[1].Text:=' Penggunaan Komponen';
StatusBar1.Panels[2].Text:=' Status Bar Pada Delphi';

Sabtu, 15 September 2012

Form Login Dengan MD5 di Delphi

Form Login Sering digunakan untuk memprotek aplikasi agar tidak dapat digunakan oleh sembarang orang. Biasanya dalam Proses login akan meminta authentikasi Username dan Password. Untuk Keamanan Proses Authentikasi. Biasanya Programmer akan menambahkan Metode Ekripsi / Hash didalamnya. Metode Hash sendiri Salah satunya adalah dengan MD5.

Pada Postingan ini Admin Mau Sharing tentang cara membuat Form Loading sederhan Dengan MD5 di Delphi.Sebelumnya. Anda Membutuhkan Komponen-nya. Silahkan Download Disini Selesai Download Silahkan ditambahkan. Hasil Penambahan biasanya langsung berada di pallete terakhir. Jika Anda Berhasil, Nama Palletenya adalah (Kiyat).

Silahkan Tambahkan Komponennya kedalam Form Anda !

Untuk Desain Tampilan Saya Seperti ini :

Form Login Dengan MD5 di Delphi

Selanjutnya pada tombol login. tambahkan Code dibawah ini :
var
user,pass : string;
begin
user:=MD51.MD5Print(MD51.MD5String('admin'));
pass:=MD51.MD5Print(MD51.MD5String('masuk'));
If (MD51.MD5Print(MD51.MD5String(Edit1.Text))=user) and (MD51.MD5Print(MD51.MD5String(Edit2.Text))=pass) then
ShowMessage('Login Berhasil !!') else
ShowMessage('Login Gagal !!');
end;

Akan Lebih Bagus Jika anda mengganti Property Edit Password menjadi Password Char (*) sehingga Teks yang diinputkan akan berubah menjadi karakter *.

Form Login Dengan MD5 di Delphi

Kalkulator Sederhana Dengan Delphi

Sebenarnya postingan ini admin buat hanya sekedar iseng saja. Ya bisa dibilang gak penting. tapi saya kira tidak ada salah untuk berbagi pengetahuan meskipun sekecil biji sawi karena tingkat pengetahuan seseorang berbeda-beda. tidak semua orang memiliki kecerdasan yang sama (Kok Malah Ceramah Sih). Ok. Kita kembali ke topik pembahasan. Sesuai dengan judulnya kali ini admin ingin berbagi pengetahuan bagaiamana membuat kalkulator sederhana dengan menggunakan Delphi.

Sekedar info, Kalkulator yang akan kita buat hanya mampu mengoperasikan empat Operasi Matematika (Kali, Bagi, Tambah dan Kurang). Hitung-hitung Menambah pengetahuan. Untuk Desain Tampilannya tidak usah yang ribet-ribet. Punya saya sendiri seperti ini

Kalkulator Sederhana Dengan Delphi

Selanjutnya. Tambahkan Code dibawah ini dalam Tombol Proses
// STRTOINT Untuk Mengkonvert String Menjadi Integer karena pada dasarnya semua
// inputan dari edit akan dibaca string Kita perlu mengkonvert menjadi integer agar
// dapat dioperasikan secara matematis.
// Dalam Pembagian akan Menjadi FLOATTOSTR/STRTOFLOAT. karena Hasil pembagian belum tentu bilangan bulat

Edit3.Text:=IntToStr(StrToInt(Edit1.Text)*StrToInt(Edit2.Text));
Edit4.Text:=FloatToStr(StrToFloat(Edit1.Text)/StrToFloat(Edit2.Text));
Edit5.Text:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));
Edit6.Text:=IntToStr(StrToInt(Edit1.Text)-StrToInt(Edit2.Text));

Ok. Sudah Selesai. Silahkan dijalankan! Hasil Punya Saya Seperti Ini

Kalkulator Sederhana Dengan Delphi

Senin, 10 September 2012

Membuat Laporan Dengan QuickReport Delphi

Fungsi Sebuah Laporan Tentu Sudah Sobat Pahami Bukan?
Pada Postingan ini. Admin Ingin Sedikit Share Bagaimana Membuat Laporan dengan Memanfaatkan Component QuickReport Dari Delphi. Caranya Bagaimana? Ikuti saja Langkah dibawah ini :

Pertama. Dan Yang paling Utama. Pastikan Anda Sudah Memahami Bagaimana Koneksi Database Ke Delphi Berikut Tentang CRUD (Create Read Insert Update dan Delete) Data pada Database Tersebut. Kenapa Penting? Karena Report alias Laporan akan Mengambil Data Dari Database. Jika Anda Belum Faham Bagaimana Koneksi Database dan CRUD Data Silahkan Baca Postingan Sebelumnya !

Kedua, Silahkan Tambahkan Component QuickReport dengan Cara Klik Menu Component > Install Package > Add > Silahkan Cari Komponen-nya Pada "C:\Program Files\Borland\Delphi7\Bin" > Nama Componentnya adalah dclqrt70.bpl
Selesai Menambahkan Component Silahkan Lihat Komponen yang sudah anda tambahkan Pada Pallete Terakhir.


Ketiga, Buka Menu File > Other > Report.
Keempat, Klik Dua Kali Pada Report Tersebut Lalu Atur Sesuai Kebutuhan > Apply > OK

Membuat Laporan Dengan QuickReport Delphi

Kelima, Tambahkan 1 Buah AdoQuery/AdoTable (Atur Koneksinya). Selanjutnya Masuk Ke Pallete QReport > Tambahkan Beberapa Komponen QRLabel > Atur Property-nya

Keenam, Tambahkan Beberapa Komponen QRDBText > Atur Property-nya.
Yang Perlu Diganti dalam Mengatur Property dari QRDBText adalah :

Dataset dan DataFiled pada Object Inspector.

Contoh Desain saya Seperti ini (Saya Memanfaatkan AdoQuery yang ada di Datamodule sehingga tidak perlu menambahkannya ke Form Quick Report)

Membuat Laporan Dengan QuickReport Delphi

Yang Terakhir, Untuk Memanggil laporan Yang Sudah Kita Buat Dengan Button, Tambahkan Kode ini
QReport.QuickReport2.Preview;

Hasil saya Seperti ini

Membuat Laporan Dengan QuickReport Delphi

NB : Jika pada laporan anda hanya muncul 1 data sedangkan pada tabel database anda memiliki beberapa data, anda perlu mengatur setting Quickreport di Object inspector Dataset -> AdoQuery/AdoTable

Membuka File Dengan Code Delphi

Dalam Membangun Sebuah Aplikasi. Kadangkala Kita Perlu Membuka Suatu File yang berhubungan dengan aplikasi yang kita bangun. Suatu Misal membuka File Help yang banyak dibuat dengan Format *.chm meski tidak jarang berformat *.Pdf, Membuka Browser atau Kalkulator dan semacamnya. Pada Postingan Kali ini Admin Ingin Sharing tentang bagaimana membuka Sebuah File Dengan Delphi.

Tidak ada teknik khusus untuk melakukan hal tersebut diatas karena Pada Dasarnya Untuk membuka sebuah File didalam komputer dengan Coding Delphi dilakukan dengan cara menggunakan ShellApi. Untuk menggunakannya anda bisa langsung menambahkannya pada uses ShellApi.

Setelah Menambahkan Library-nya Pada Uses, kemudian anda hanya tinggal memanggil file yang akan anda buka. untuk code nya seperti dibawah ini :
ShellExecute(Handle, 'open', 'C:\Windows\System32\calc.exe',nil,nil,SW_SHOWNORMAL);

Kode diatas akan membuka tools kalkulator bawaan windows.

Letakkan Kode tersebut pada event yang anda inginkan untuk membuka file yang anda inginkan. suatu misal anda ingin membuka file pada saat penekanan tombol maka tambahkan kode diatas pada event onclick tombol tersebut. mudah bukan? selamat mencoba.


Penggunaan Popup Menu Pada Delphi

Popup Menu seringkali dibutuhkan dalam membangun aplikasi. dalam hal ini penggunaan popup menu seringkali menjadi masalah untuk mereke yang masih pemula. apalagi bagi mereka yang baru mengenal Delphi.

Popup menu yang dimaksud disini adalah menu yang muncul ketika kita melakukan klik kanan pada sebuah Program aplikasi. Iseng iseng saya membuat postingan ini siapa tahu ada yang bingung tentang cara membuat popup menu dengan menggunakan Delphi.

pada dasarnya. penggunaan Popup menu Pada delphi tidak jauh berbeda dengan menggunakan komponen main menu. Hanya saja. Ketika kita Sudah membuat menu dengan popup menu, yang kerap menjadi masalah adalah. popup menu tersebut tidak muncul ketika kita klik kanan Form Aplikasi kita. Trus Bagaimana Solusinya ?

Ternyata Sangat mudah kawan. Caranya : Klik 1 kali pada Form Aplikasi > Masuk Ke Object Inspector > didalam Object inspector isi Popupmenu dengan Popup menu yang ingin dimunculkan pada saat mengklik Form Aplikasi. Selesai.

Penggunaan Popup Menu Pada Delphi

Hasil (Klik Kanan Pada Form Anda)

Penggunaan Popup Menu Pada Delphi

Membuat Form Loading Smadav Dengan Delphi

Form Loading Smadav Itu Keren ya Ternyata. Belum Lama Ini Iseng iseng saya membuat aplikasi dan mencontek gaya Form Loading milik Smadav. Pada Postingan Kali Ini Saya Ingin Berbagi ilmu dengan sobat Delphi Tutor tentang cara membuat Form Loading Mirip SMADAV dengan Menggunakan IDE kesayangan Kita yaitu Delphi.

Form Loading Biasanya digunakan di awal aplikasi dijalankan. Progress Loadingnya akan menginformasikan proses-proses yang sedang dikerjakan sebelum membuka tampilan utama. Namun Pada Postingan ini saya hanya akan mencontohkan bagaimana memanfaatkan komponen Progressbar saja untuk membuat form loading sederhana. Oke deh, Ikuti Step dibawah ini.

Pertama. Atur Property Form Anda Seperti dibawah ini :

Property Pada Form :
BorderStyle : BsNone
Position : poScreenCenter

Tambahkan Komponen yang dibutuhkan :

1 Buah Timer ->> Ubah Interval Timer Jadi 500
1 Buah Progresbar
Komponen Label seperlunya
1 Buah XPManifest

Tambahkan Dua Buah Variabel Global
waktu,pb:integer;

Letakan Kode ini didalam TIMER (Klik 2 kali)
pb:=pb+10;
ProgressBar1.Position:=pb;
waktu:=waktu-1;
if pb=100 then
begin
form1.Close;
end;

Hasilnya Seperti ini :

Membuat Form Loading Smadav Dengan Delphi

Minggu, 09 September 2012

Input Gambar Kedalam Database di Delphi

Dalam Membuat Aplikasi. Kadangkala Kita Butuh Untuk Menyimpan File Data Gambar Kedalam Database Program. Suatu Misal Jika Sobat Membuat Aplikasi PMB Maka File Foto Calon MABA Tentu Perlu disimpan didalam Database. Pertanyaanya. Bagaimana Cara Menyimpan File Gambar Kedalam Database. Entah Itu Database Desktop, Acces atau MySQL.

Pertama, Tipe Field yang digunakan dalam Menyimpan File Gambar didalam Database Desktop adalah "O", Sedangkan dalam Database Acces adalah "OLE" MySQL dengan tipe "BLOB". Pokok gak Jauh-jauh dari OLE dan BLOB dahh.. huhu :)

Kedua, Tipe Gambar yang dapat disimpan adalah *.bmp
Gunakan Komponen OpenPicture Dialog untuk mengambil gambar dari file dan dan Image untuk menampilkannya.

Truss. Tahap Pengkodingan. Pada tahap ini saya Anggap Sobat sudah Faham Bagaimana Menyimpan Data Kedalam Database (Desktop, Acces dan MYSQL) Jika Belum Silahkan Baca Postingan Sebelumnya.

Jika Sudah, Koding Untuk Menyimpan Gambarnya adalah :
// Contoh Database Acces
AdoTable1.Append;
AdoTable1.FieldByName('Foto').Assign(Image1.Picture);
AdoTable1.Post;

Untuk Database yang lain silahkan disesuaikan Saja.

Sebenarnya ada Cara Lain Yaitu dengan Menyimpan Lokasi Filenya Saja pada Field Tabel Database dan ditampilkan dengan menggunakan Komponen Image.

Kamis, 23 Agustus 2012

Frame di dalam Form Delphi

Dalam Membuat Aplikasi. Teknik Desain Tentu Perlu dipertimbangkan Untuk Membuat Sebuah Aplikasi Menjadi Lebih User Friendly. Pada Postingan ini Admin Akan Mencoba Sharing Tentang Teknik Desain Yang Sering Admin Gunakan Dalam Membangun Aplikasi Menggunakan IDE Delphi.

Seperti Judul diatas, Pada Teknik Desain Ini Kita Akan Meletakkan Frame didalam Form. Sehingga Penggunaan Form Menjadi Lebih Hemat agar Resource Aplikasi Menjadi Lebih Kurus. ;)

Begini, Sobat Tentu Sering Membuka Website kan? didalam Website Tersebut Terdapat Banyak Menu. Jika Kita Tekan Salah Satu Menu, Hanya Bagian Isi Yang Menampilkan Isi dari Menu Tersebut yang akan Berubah (Singkatnya Hanya Isi Kontennya yang berubah).

Selanjutnya Mari Kita Mulai.

Pertama Silahkan Desain Form Anda :
1. Tambahkan 3 Buah SpeedButton
2. Tambahkan 1 Buah Toolbar dibawah SpeedButton
3. Tambahkan 1 Buah Panel

Frame di dalam Form Delphi

4. Tambahkan Dua Buah Frame (1. Frame About dan 2. Frame Profile)

Frame di dalam Form Delphi

5. Klik 1 Kali Pada Panel yang Sudah ditambahkan Pada Form 1
6. Masuk Ke Pallete Standard => Klik Frame => Tambahkan Didalam Panel

Frame di dalam Form Delphi

7. Pada Gambar dibawah ini Pilih Frame2 => OK

Frame di dalam Form Delphi

8. Ulangi Langkah 5,6,7 Untuk Frame Selanjutnya

9. Pada Event On Form Create Tambahkan Code ini :
Frame21.Visible:=false;
Frame31.Visible:=false;

10. Klik Dua Kali Pada Button Profile Lalu Tambahkan Code ini :
Frame21.Visible:=false;
Frame31.Visible:=true;

11. Klik Dua Kali Pada Button About Lalu Tambahkan Code ini :
Frame21.Visible:=True;
Frame31.Visible:=false;

Membuat Laporan Dengan Rave Report Delphi

Laporan Merupakan Hal yang wajib ada dalam sebuah Aplikasi. Laporan memungkinkan Data-Data yang ada didalam Database dicetak kedalam kertas. Pada Postingan Ini Admin Mau Sharing tentang Bagaimana Cara Membuat Laporan di Delphi Dengan Memanfaatkan Komponen RaveReport. Tentang Cara Membuat laporan dengan Quick Report Silahkan Baca disini.

Selain Quick Report dan Fast Report, Rave Report adalah satu komponen Default Bawaan Delphi yang dapat kita manfaatkan untuk membuat laporan. Komponennya tidak perlu anda instal karena sudah ada didalam Pallete Rave.

Pertama, Pastikan Aplikasi Anda Sudah tidak bermasalah dengan koneksi Database

Kedua, Pastikan Juga Aplikasi anda Sudah Bisa Input, Update dan Delete Data yang ada didalam Database, Jika Anda Belum Faham Silahkan Baca Postingan Sebelumnya Tentang Koneksi Database dan Input Data Dalam Database.

Ketiga, Pastikan Dalam Tabel di Database anda terdapat beberapa data.

Contoh Kali Ini Admin Akan digunakan Projek yang telah Kita Buat Pada Postingan Input, Update dan Delete Pada Database Desktop.

Langkah - Langkah Membuat Laporan dengan Rave Report

1. Tambahkan Dua Buah Komponen Pada Form (RvProject dan RvDataSetConnection) yang ada pada Pallete Rave

2. Pada Object Inspector => Ubah Property RvDatasetconnection => Dataset => AdoTable

3. Klik Dua Kali Pada Komponen RvProject

4. Klik Menu View =>

Membuat Laporan Dengan Rave Report Delphi

Membuat Laporan Dengan Rave Report Delphi

5. Selanjutnya. Klik Menu Tools => Report Wizard => Simple Table

Membuat Laporan Dengan Rave Report Delphi

Membuat Laporan Dengan Rave Report Delphi

Membuat Laporan Dengan Rave Report Delphi

Membuat Laporan Dengan Rave Report Delphi

Membuat Laporan Dengan Rave Report Delphi

6. Simpan/Save Report yang Sudah Anda Buat didalam Folder Projek Anda.

7. Tambahkan Sebuah Button Untuk Memanggil Report yang Sudah Kita Buat.

8. Klik 1 Kali Pada Komponen RvProject. Pada Objek Inspector Ubah Property Project File => Isi Dengan File Laporan Yang Sudah Anda Simpan Barusan.

9. Klik Dua Kali Pada Button Cetak Kemudian Tambahkan Code ini
RvProject1.Execute;

Rabu, 22 Agustus 2012

Input, Update dan Delete Pada Database MySQL

Sebelumnya Admin Sudah Membahas Bagaimana Koneksi Antara Database MySQL dengan Delphi. Jika Anda Belum Membacanya, Silahkan Lihat Disini Selanjutnya Pada Postingan Ini, Admin Mau Melanjutkan Postingan Tersebut. Setelah Kita Bersama-sama Belajar Bagaimana Koneksi Delphi dengan Database Ke MySQL, Admin Mau Sharing Sedikit Pengetahuan tentang Bagaimana Input, Edit dan menghapus data Dalam Database MySQL. Singkat Kata Kita Akan Membuat Sebuah software Sederhana CRUD Data Buku.

Sekedar Informasi tentang Proses Input, Update dan Delete pada postingan disini kita tidak akan menggunakan Query MySQL. Coding yang kita gunakan sama dengan ketika kita melakukan Proses CRUD pada database Access dan Database Desktop.

Pertama, Untuk Desain Aplikasinya Seperti Ini :

Input, Update dan Delete Pada Database MySQL

Kedua, Silahkan Membuat Database. Tentu Anda Sudah Paham Jika Membaca Postingan Sebelumnya.

Ketiga, Silahkan Dikoneksikan. Lagi Lagi Tentang Cara Mengkoneksikan ada Pada Postingan Sebelumnya.

Keempat,
Masukan Code ini dalam Buttom Simpan
ADOQuery1.Append;
ADOQuery1.FieldByName('Nomor').AsString:=Edit1.Text;
ADOQuery1.FieldByName('Judul').AsString:=Edit2.Text;
ADOQuery1.FieldByName('Pengarang').AsString:=Edit3.Text;
ADOQuery1.FieldByName('Penerbit').AsString:=Edit4.Text;
ADOQuery1.FieldByName('TahunTerbit').AsString:=Edit5.Text;
ADOQuery1.Post;

Masukan Code ini dalam Buttom Hapus :
ADOQuery1.Delete;

Masukan Code ini dalam Buttom Batal :
ADOQuery1.Cancel;

Masukan Code ini dalam Buttom Edit :
// Misal Mau Edit Penerbit
ADOQuery1.Edit;
ADOQuery1.FieldByName('Penerbit').AsString:=Edit4.Text;
ADOQuery1.Post;

Maksud Coding Update diatas adalah Value dari Field Penerbit yang dipilih pada DBGRID akan diganti dengan isi Edit4.Text; Jadi Pastikan Isi Inputan Edit4.Text itu tidak kosong sebelum melakukan Proses Edit Data.

Untuk Hasil Akhir Saya Seperti Ini :

Input, Update dan Delete Pada Database MySQL