Python merupakan bahasa pemrograman yang mendukung hampir semua platform seperti desktop, web dan yang terbaru yaitu mobile android dengan kivy, selain itu kebanyakan penggunan python sebagai dasar scripting untuk berbagai aplikasi.
Tentu sebagai bahasa scripting, python juga mensupport koneksi dengan database, sebagai contoh, python secara default mendukung penggunaan SQLite, dan tentu juga mensupport database lainnya seperti postgresql, mysql, ataupun database nosql seperti mongoDB dan sebagainya.
Persiapan Environtment
Untuk menggunakan Mysql pada Python, tentunya harus menginstall mysql server. Setelah itu, dapat menyiapkan mysql driver sebagai penghubung antara python dengan mysql-server. Ada banyak jenis driver untuk mysql, seperti Mysql-Connector, PyMysql, ataupun MysqlClient.
Install MysqlClient
Sebelum memulai, untuk pengguna linux berbasis linux, windows ataupun macOS, harus menginstall python dan mysql headers development dengan cara sebagai berikut :
atau pada MacOS
setelah menginstall development header dilanjutkan dengan menginstall mysqlclient melalu pip
Note Bagi pengguna Windows, jika mengalami eror dapat mecoba beberapa cara berikut :
- Install visual c++ (biasanya terjadi jika belum menginstall visual c++2010 atau ikuti requirement pada pesan erornya)
- Install menggunakan file whl
- downgrade versi mysqlclient dengan
Tentu secara umum python dapat menggunakan berbagai macam metode untuk memanggil suatu library, dengan metode direct, fungction ataupun model Objek orientasi.
Dalam bagian ini, akan menunjukkan 2 cara, menggunakan metode langsung dan metode OOP
Membuat Database
Untuk cara pertama, menggunakan cara koneksi langsung. Sebelumnya kita harus membuat database terlebih dahulu yaaaa XD,
ketikkan script berikut
lalu isikan dengan data menggunakan script berikut,
Direct Connection SELECT
Setelah data masuk kedalam database, langkah berikutnya akan melakukan query menggunakan python. Dalam contoh ini menggunakan metode direct connection yang artinya cara mengkoneksikannya langsung tanpa menggunakan kelas.
berikut ini contohnya :
pertama kali harus memanggil MysqlDB menggunakan syntax import.
kemudian mengkonekkan dengan database dan menyimpannya pada variabel connection.
Setelah itu mendefinisikan cursor pada object connection dan menyimpannya dengan nama yang sama yaitu cursor dimana cursor ini akan digunakan untuk mengesekusi query.
ketika query di eksekusi oleh kursor, maka dapat menampilnya dengan beberapa cara, fetchall yaitu mengambil semua baris pada database, kemudian ada fetchone yang mengambil data paling teratas.
dan result dari kode diatas adalah sebagai berikut
Direct Connection INSERT dan DELETE
Seperti umummnya koneksi dengan database, tentu ada yang namanya CRUD atau CREATE, READ, UPDATE Delete, maka kali ini akan mencoba untuk insert dan delete database.
Berikut contoh insert database ;
pada insert database , menggunakan syntax dasar mysql yaitu insert, yang diikuti string lateral dengan metode bind paramater, yaitu membuat paramater menggunakan list, bukan mempassing string, karena hal ini akan mudah di SQL Injection.
untuk contoh delete :
Direct Connection UPDATE
selanjutnya adalah update data pada database,
sama seperti sebelum-sebelumnya, memanfaatkan bind paramater, dengan membuat isinya menjadi bentuk list sebagai salah satu upaya menghindari sql injection,
Connection Class
Metode selanjutnya adalah menggunakan kelas untuk menginisialisasi koneksi pada database. Pada contoh ini hanya menggunakan kelas sebagai inisiator untuk menghubungkan ke database, untuk querynya tetap menggunakan metode biasa, sebagai catatan, ada 1 tools yang lebih baik dari segi efesiensi kode dan keamanan yaitu dengan menggunakan orm seperti sql-alchemy yang akan dibahas dalam tutorial Flask Versi 2.
Implementasi langsugn, pertama membuat kelas koneksi, dalam hal ini saya menamakan filenya connection.py
dalam kelas fungsi diatas, menginisialisasi paramater untuk koneksi yang dinisialisasi pada method init, Sedangkan untuk me-return hasil koneksi, menggunakan method getDB hal ini untuk mereturn cursor untuk dipanggil saat melakukan eksekusi, dan untuk memutuskan koneksi menggunakan method delcon, sedangkan sisa method lainnya hanya sebagai method pendukung, sebenernya untuk lebih memudahkan lagi, bisa membuat method-method khusus crud seperti method untuk melakukan select dan sebagainya, namun karena keterbatasan waktu, maka hanya membuat dasarnya saja.
Setelah itu, membuat file baru untuk mengetes apakah koneksi berhasil dan melakukan query.
dalam hal ini menggunakan connectionTes.py
dalam hal ini menggunakan connectionTes.py
dalam hal ini, mengimport kelas connection sebagai db. Setelah itu di inisialisasi dengan variabel baru bernaman mysqli.
dan membuat object cursor pada db dengan memanggil object kelas mysql.getDB()
untuk querynya hampir sama dengan yang sebelumnya. perbedannya adalah mengkoneksikannya menggunakan kelas