Manajemen Database SQLite dengan Qt

Sekarang kita latihan Qt lagi, kali ini bermain dengan database SQlite. Saya sudah belajar pemrograman C++ dengan Qt Framework sejak beberapa waktu lalu. Tapi belum banyak yang saya hasilkan sih, karena tidak fokus.

Program kali ini adalah program sederhana yang menampilkan tabel dari data yang ada di database SQlite. SQlite saya pilih karena drivernya sudah disertakan bersama installer Qt Framework (Windows). Tapi kalau Ubuntu, kita perlu menginstalnya terlebih dahulu. Paket driver SQlite adalah libqt4-sql-sqlite untuk Qt4 dan libqt5sql5-sqlite untuk Qt5.

Sebenarnya kita bisa mencontoh kode dari Examples yang ada di Qt Creator, yaitu project SQL Browser.

snapshot53
Tampilan SQL Browser
snapshot52
Project SQL Browser

Program sederhana ini saya beri nama Adol Pulza, yang fungsinya untuk manajemen pelaporan penjualan pulsa elektronik.  Ya, berhubung saya jualan pulsa 😀 . Sebagai awalan, program ini hanya bisa menampilkan data yang ada di file adolpulza.sqlite yang sudah dibuat oleh SQLiteman (Ubuntu). Untuk Windows ada SQLite Administrator.

snapshot51
SQliteMan di Ubuntu Linux
SQLite Administrator
SQLite Administrator di Windows

Kode Program dan Penjelasan

File .pro harus ditambah ‘sql‘:

QT       += core gui sql

Pada form, widget yang paling perlu ditambahkan adalah QTableView. Tombol-tombol dan yang lainnya opsional, sesuaikan dengan kebutuhan.

snapshot54
Pembuatan desain form

Pada file header (mainwindow.h) tambahkan baris:

#include <QtSql>

dan

QSqlDatabase tabel;

Dan isi dari mainwindow.cpp adalah:

#include "mainwindow.h"
#include "ui_mainwindow.h"
//#include <QDebug>;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    tabel = QSqlDatabase::addDatabase("QSQLITE");
    QString tabelFile = "/home/bedouin/Apps/AdolPulza/adolpulza.sqlite";
                        // ^tempat file sqlite
                        // sesuaikan untuk Windows, misalnya 
                        // D:/Proyek/AdolPulza/aolpulza.sqlite  
                        // bisa forward-slash atau pun back-slash
    tabel.setDatabaseName(tabelFile);

    QFileInfo infoTabel(tabelFile);
    if(infoTabel.isFile())
    {
        if(tabel.open())
        {
            //qDebug() << "Database siap gan...";

        }else{
            //qDebug() << "Ada kesalahan";
        }
    }
    QSqlTableModel *model = new QSqlTableModel(ui->tableView);

    model->setTable("laporan");
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    model->setHeaderData(0,Qt::Horizontal,tr("No"));
    model->setHeaderData(1,Qt::Horizontal,tr("Tanggal"));
    model->setHeaderData(2,Qt::Horizontal,tr("Nomer"));
    model->setHeaderData(3,Qt::Horizontal,tr("Biaya"));
    model->setHeaderData(4,Qt::Horizontal,tr("Keterangan"));
    model->select();
    ui->tableView->setModel(model);

    ui->tableView->resizeColumnToContents(0);
    ui->tableView->setColumnWidth(1,100);
    ui->tableView->setColumnWidth(2,200);
    ui->tableView->horizontalHeader()->setStretchLastSection(true);
    ui->tableView->show();
}

MainWindow::~MainWindow()
{
    delete ui;
}

QSqlDatabase::addDatabase("QSQLITE"); adalah untuk menggunakan driver database, di sini adalah SQlite.

Lalu kita membuat model untuk QTableView dengan QSqlTableModel *model.

model->setTable("laporan"); adalah memilih tabel ‘laporan’ yang ada dalam file SQLite.

model->select(); adalah untuk memuat seluruh data dalam file SQLite ke tabel.

ui->tableView->setModel(model); untuk menerapkan model tabel ke QTableView.

Terakhir, kita menampilkan tabel di QWidget dengan ui->tableView->show();

snapshot50
Tampilan program
adolpulza
Hasil kompilasi di Windows

Sekian tulisan singkat ini, semoga bermanfaat. Kode sumber contoh program ada di https://github.com/baddwin/adolpulza

nb: tulisan ini tadinya mau diposting ke cotetan.com, tapi kayaknya lagi dimainin tenis sama teman saya 😀 

Advertisements

Published by

Badwi

A Muslim, sober, a Javanese

5 thoughts on “Manajemen Database SQLite dengan Qt”

Share your idea here (markdown enabled)

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s