Saturday, April 19, 2014

Cara koneksi Python (PyQt) dengan MySQL di Ubuntu

Cara koneksi Python (PyQt) dengan MySQL di Ubuntu 

Berikut ini cara koneksi Python dengan GUI Qt ke MySQL di Sistem Operasi Ubuntu :



Sumber : https://upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Python_and_Qt.svg/164px-Python_and_Qt.svg.png

Pada penjelasan ini, saya menggunakan program sebagai berikut :
  • python 2.7.6
    • sudo apt-get install python2.7 python2.7-dev
  • pyqt4
    • sudo apt-get install pyqt4-dev-tools
  • mysql
    • sudo apt-get install mysql-server-5.5
  • library myql untuk qt4
    • sudo apt-get install libqt4-sql-mysql


Buat program python dengan kode sebagai berikut :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from PyQt4 import QtSql

db = QtSql.QSqlDatabase.addDatabase("QMYSQL")
db.setHostName("localhost")
db.setDatabaseName("rflogger")
db.setUserName("root")
db.setPassword("1234")
db.open()
model = QtSql.QSqlQueryModel()
model.setQuery("SELECT * FROM rf;")
print model.record(0).value("name").toString()

Pada program ini menggunakan konfigurasi mysql pada komputer saya. Jika rekan-rekan ingin mencoba, silahkan sesuaikan parameternya.
  • setHostName
  • setDatabaseName
  • setUsername
  • setPassword
  • setQuery
  • model.record(0).value("...").toString

Jika tidak belum punya database, bisa gunakan contoh database ini. Kemudian sesuaikan
  • setHostName
  • setUsername
  • setPassword

Setelah itu save kode program python tersebut, dan jalankan di program terminal :
python namaProgram.py



atau program ini jika menggunakan visual :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from PyQt4 import QtGui, QtSql, QtCore
import sys

class cobaMysql(QtGui.QWidget):
 def __init__(self):
  super(cobaMysql, self).__init__()
  self.initUI()
  
 def connectDB(self):
  self.db.setHostName("localhost")
  self.db.setDatabaseName("rflogger")
  self.db.setUserName("root")
  self.db.setPassword("1234")
  self.db.open()
  self.model.setQuery("SELECT * FROM rf;")
  self.model.setHeaderData(0, QtCore.Qt.Horizontal, QtCore.QObject.tr(self.model,"ID"))
  self.model.setHeaderData(1, QtCore.Qt.Horizontal, QtCore.QObject.tr(self.model,"ID Card"))
  self.model.setHeaderData(2, QtCore.Qt.Horizontal, QtCore.QObject.tr(self.model,"Nama"))
  self.model.setHeaderData(3, QtCore.Qt.Horizontal, QtCore.QObject.tr(self.model,"ID Kendaraan 1"))
  self.model.setHeaderData(4, QtCore.Qt.Horizontal, QtCore.QObject.tr(self.model,"ID Kendaraan 2"))
  self.model.setHeaderData(5, QtCore.Qt.Horizontal, QtCore.QObject.tr(self.model,"Jatuh Tempo"))
  self.model.setHeaderData(6, QtCore.Qt.Horizontal, QtCore.QObject.tr(self.model,"No. Tlpn"))
  
 def initUI(self):
  # konek database
  self.db = QtSql.QSqlDatabase.addDatabase("QMYSQL")
  #query mode
  self.model = QtSql.QSqlQueryModel()
  self.connectDB()
  #membuat table view untuk query model
  self.view = QtGui.QTableView();
  self.view.setModel(self.model)
  self.view.resizeColumnsToContents()
  self.view.verticalHeader().hide()
  
  #layout utama
  grid = QtGui.QGridLayout()
  grid.setSpacing(10)
  grid.addWidget(self.view,1,0)
  
  #form utama
  self.setLayout(grid) 
  self.resize(700,300)
  self.setWindowTitle('MYSQL DEMO [Rattosoft 2014]')
  self.center()
  self.show()
  
 def center(self):
  frameGm = self.frameGeometry()
  centerPoint = QtGui.QDesktopWidget().availableGeometry().center()
  frameGm.moveCenter(centerPoint)
  self.move(frameGm.topLeft())
  
  
def main():
 app=QtGui.QApplication(sys.argv)
 ex=cobaMysql()
 sys.exit(app.exec_())

if __name__ == '__main__':
 main()



Mudah bukan?
Selamat mencoba...

0 comments:

Post a Comment