65,600

Thursday, April 11, 2013

Tutorial Membuat Software MySQL Client (Windows, Linux, Mac) Menggunakan Qt Desktop

Pada tutorial berikut, kita akan membuat software desktop (GUI) menggunakan Qt untuk menampilkan database (MySQL) dari server. Berikut skemanya:

Tutorial ini ditujukan bagi yang sudah familiar dengan Qt dan sedikit tahu tentang MySQL. Bagi yang belum familiar dengan Qt, silakan pelajari dulu tutorial memulai membuat software GUI menggunakan Qt.

Install software yang dibutuhkan

Sebelum dilanjutkan, pastikan beberapa software ini telah terinstall, jika sudah terinstall bisa langsung masuk ke tutorial:

1. MySQL server

Untuk localhost, bisa install XAMPP disini. Setelah XAMPP terinstall, pastikan Apache dan MySQL server sudah dinyalakan.

2. MySQL Qt plugin

Untuk menginstall plugin MySQL di Qt, ikuti langkah pada tutorial disini. Untuk mengecek apakah MySQL plugin sudah terinstall atau belum, jalankan code berikut di Qt:

#include <QtCore/QCoreApplication>
#include <QtSQL>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << QSqlDatabase::drivers();
return a.exec();
}
view raw gistfile1.cpp hosted with ❤ by GitHub

Maka Qt akan mengeluarkan output berupa daftar DBMS yang telah terinstall (pastikan QMYSQL ada dalam daftar list tersebut).

Membuat Database

1. Buka http://localhost/phpmyadmin
2. Masuk ke Privileges, klik "Add a New User".
3. Masukkan data berikut (isi Password dengan password):

JANGAN LUPA: pilih "Create database with the same name and grant privileges", lalu "Check All" pada pilihan privileges-nya.

4. Dari home PhpMyAdmin, masuk ke database example yang sudah dibuat pada no.5
5. Masuk ke menu SQL
6. Copy/paste SQL command dibawah ini, lalu klik GO:

CREATE TABLE test (
name_id INT NOT NULL AUTO_INCREMENT,
forename VARCHAR(100) NOT NULL,
surename VARCHAR(100) NOT NULL,
PRIMARY KEY (name_id )
);
INSERT INTO test VALUES ( 1, "Yan", "Syafri" );
INSERT INTO test VALUES ( 2, "Syafri", "Hidayat" );
view raw gistfile1.sql hosted with ❤ by GitHub

Maka tabel test akan muncul seperti ini:

Membuat GUI

1. Buat file MysqlExample.pro, isikan dengan code berikut:
QT += core gui sql
TARGET = "Example"
TEMPLATE = app
UI_DIR = .ui
MOC_DIR = .moc
OBJECTS_DIR = .obj
DESTDIR = bin
DEFINES *= _AFXDLL _MBCS
DEFINES -= UNICODE
SOURCES += main.cpp
view raw gistfile1.mak hosted with ❤ by GitHub
2. Buat file main.cpp difolder yang sama dengan MysqlExample.pro, isikan dengan code berikut:
#include <QtGui/QApplication>
#include <QMainWindow>
#include <QtSQL>
#include <QTableWidget>
#include <QMessageBox>
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QTableWidget* table = new QTableWidget();
table->setWindowTitle("Connect to Mysql Database Example");
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("example");
db.setUserName("example");
db.setPassword("password");
if (!db.open())
{
QMessageBox::critical(0, QObject::tr("Database Error"),
db.lastError().text());
}
QSqlQuery query("SELECT forename, surename FROM test");
table->setColumnCount(query.record().count());
table->setRowCount(query.size());
int index=0;
while (query.next())
{
table->setItem(index,0,new QTableWidgetItem(query.value(0).toString()));
table->setItem(index,1,new QTableWidgetItem(query.value(1).toString()));
index++;
}
table->show();
return app.exec();
}
view raw gistfile1.cpp hosted with ❤ by GitHub
3. Jalankan aplikasinya, maka akan muncul GUI dengan tabel dimana isi tabelnya diambil dari MySQL database di localhost.

Karena software ini dibuat menggunakan Qt, maka code yang sama dapat dijalankan di WIndows, Linux, dan Mac. Enjoy! (ya2n)

5 comments:

  1. mas, saya nyoba script di atas muncul error begini

    main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: static class QStringList __cdecl QSqlDatabase::drivers(void)" (__imp_?drivers@QSqlDatabase@@SA?AVQStringList@@XZ) referenced in function main

    itu kenapa yah?

    ReplyDelete
  2. MySQL plugin untuk Qt sudah diinstall?

    ReplyDelete
  3. ow gitu ya mas, butuh driver mysql...
    saya pake MSVC 2012, cara compile drivernya gmn ya mas?

    ReplyDelete
    Replies
    1. Sementara bisa ikuti tutorial berikut:

      http://www.seppemagiels.com/blog/create-mysql-driver-qt-windows

      Hanya itu pakai MinGW, tinggal diadopsi sedikit, compilenya tidak pakai mingw32-make, tapi pakai Qt Creator (MSVC2012). Di Qt Creator, pada setting Projects, masuk ke Build Step, edit bagian qmake menjadi:

      qmake "INCLUDEPATH+=%mysql%\\include" "LIBS+=%mysql%\\lib\\libmysql.lib" -o Makefile mysql.pro

      Dimana %mysql% adalah PATH instalasi MySQL.

      Saya sendiri pakai MSVC 2010, hanya belum sempat buat tutorialnya. Silakan dicoba dulu :)

      Delete
  4. Positive site, where did u come up with the information on this posting?I have read a few of the articles on your website now, and I really like your style. Thanks a million and please keep up the effective work. SEO client management

    ReplyDelete