Cara menggunakan python mysql connector project

Aplikasi Create, Read, Update, Detele (CRUD) adalah aplikasi standar yang pasti ada jika kita ingin membuat aplikasi web dinamis. Dengan fungsi CRUD kita dapat melakukan manipulasi data di dalam database melalui aplikasi yang dibuat. Pada artikel kali ini kita akan belajar bagaimana membuat aplikasi CRUD dengan menggunakan Python dengan database yang dipakai adalah MySQL.

Sampai saat ini untuk di indonesia python bukanlah bahasa pemrograman yang populer untuk membuat aplikasi web, kebanyakan dari kita lebih memilih PHP karena lebih mudah dan mempunyai dokumentasi yang banyak. Namun jangan salah di luar negeri trends bahasa python sudah sangat tinggi bahkan lebih tinggi trendnya jika dibandingkan dengan PHP. Buat teman-teman yang ingin benar-benar serius belajar Python kelasprogrammer.com sudah membahasa materi-materi dasar mengenai python, kalian bisa belajar untuk meningkatkan skil dan wawasan dalam dunia web development.

Untuk membuat aplikasi web CRUD di python kalian perlu menyiapkan beberapa hal seperti:

  • Server Database MySQL
  • Modul PyMySQL
  • Flask
  • Bootstrap

Untuk pembahasan masing-masing komponen tersebut , simak pembahasan dibawah ini:

  • Siapkan Database
  • Apa itu PIP
  • Apa itu PyMySQL
  • Menginstal Modul PyMySQL
  • Apai itu Flask?
  • Cara Menginstal Flask
  • Membuat Aplikasi CRUD Python dengan MySQL
  • Menjalankan Aplikasi
  • Kesimpulan
  • Dodwnload Source Code & Database

Siapkan Database

Buat database dengan nama db_penjualan.

create database db_penjualan;

Setelah itu buat tabel barang di dalam database db_penjualan

create table barang (
id_barang int not null auto_increment primary key,
nama_barang varchar(20) not null,
harga int,
stok int
);

Baca juga : Cara membuat database mysql

Apa itu PIP

Pip merupakan program manejer paket yang ada di python digunakan untuk menginstall modul yang kita butuhkan dalam hal ini adalah Flask dan PyMySQL.

Apa itu PyMySQL

PyMySQL merupakan salah satu interface atau modul yang tersedia di dalam python, library ini berfungsi untuk menghubungkan ke server database mysql dengan menggunakan python. Requirements yang dibutuhkan untuk menggunakan interface ini adalah kita sudah menggunakan pythonn dengan versi >=2.7 atau 3.5 dan database mysql server dengan versi diatas 5.5.

Menginstal Modul PyMySQL

Untuk menginstall modul PyMySQL sangatlah mudah, kita hanya perlu menginstall lewat program pip. Langkah-langkahnya seperti berikut:

Buka Command Prompt dan ketikan perintah:

python -m pip install PyMySQL

Atau bisa juga

pip install PyMySQL
Cara menggunakan python mysql connector project

Jika berhasil output yang di hasilkan seperti pada screenshot di atas.

Apai itu Flask?

Flask adalah kerangka kerja aplikasi web (web framework) yang bersifat micro, istilah ini dipakai karena flask menyediakan pustaka atau alat bantu inti yang digunakan untuk proses membangun sebuah aplikasi web, jadi istilah micro ini bukan berarti bahwa mengembangkan aplikasi web dengan flask hanya dilakukan dalam skala kecil. Apabila ada kebutuhan lain yang dibutuhkan, flask mengizinkan kita untuk menambah fitur lain yang spesifik sebagai ekstensi.

Cara Menginstal Flask

Kita bisa menginstal flask melalui program pip. Berikut ini adalah cara menginstal flask di pyhton:

  • Buka command prompt (cmd)
  • Ketik pip install flask

Cara menggunakan python mysql connector project

  • Tekan enter dan proses instalasi akan berjalan, tunggu hingga selesai dengan output ‘succsessfully installed flask-1.1.2′
  • Untuk mengecek apakah flask sudah benar-benar berhasil di instal coba masuk ke dalam IDLE (python shell) dengan cara ketik python untuk masuk ke program python interpreter setelah masuk yang ditandai dengantanda >>> ketik perintah import flask

Cara menggunakan python mysql connector project

Jika tidak ada pesan error itu berarti Flask sudah terpasang dengan benar dan siap untuk digunakan.

Langkah pertama kalian buat sebuah folder project dalam di rektori komputer kalian, terserah kalian bisa menempatkan di direktori manapun.

Sebagai contoh disini saya membuat folder crud di dalalam sub foder web_python.

D:\web_python\crud

Buat file app.py

Setelah itu buat file app.py menggunakan teks editor. File ini berfungsi sebagai objek aplikasi (kalo di dalam framework lain bisa kita sebut sebagai controller).

from flask import Flask, render_template, \
  request, redirect, url_for
import pymysql.cursors, os

application = Flask(__name__)

conn = cursor = None
#fungsi koneksi database
def openDb():
   global conn, cursor
   conn = pymysql.connect("localhost","root","","db_penjualan" )
   cursor = conn.cursor()	
#fungsi untuk menutup koneksi
def closeDb():
   global conn, cursor
   cursor.close()
   conn.close()
#fungsi view index() untuk menampilkan data dari database
@application.route('/')
def index():   
   openDb()
   container = []
   sql = "SELECT * FROM barang"
   cursor.execute(sql)
   results = cursor.fetchall()
   for data in results:
      container.append(data)
   closeDb()
   return render_template('index.html', container=container,)

#fungsi view tambah() untuk membuat form tambah
@application.route('/tambah', methods=['GET','POST'])
def tambah():
   if request.method == 'POST':
      nama = request.form['nama']
      harga = request.form['harga']
      stok = request.form['stok']
      openDb()
      sql = "INSERT INTO barang (nama_barang, harga,stok) VALUES (%s, %s, %s)"
      val = (nama, harga, stok)
      cursor.execute(sql, val)
      conn.commit()
      closeDb()
      return redirect(url_for('index'))
   else:
      return render_template('tambah.html')
#fungsi view edit() untuk form edit
@application.route('/edit/<id_barang>', methods=['GET','POST'])
def edit(id_barang):
   openDb()
   cursor.execute('SELECT * FROM barang WHERE id_barang=%s', (id_barang))
   data = cursor.fetchone()
   if request.method == 'POST':
      id_barang = request.form['id_barang']
      nama = request.form['nama']
      harga = request.form['harga']
      stok = request.form['stok']
      sql = "UPDATE barang SET nama_barang=%s, harga=%s, stok=%s WHERE id_barang=%s"
      val = (nama, harga, stok, id_barang)
      cursor.execute(sql, val)
      conn.commit()
      closeDb()
      return redirect(url_for('index'))
   else:
      closeDb()
      return render_template('edit.html', data=data)
#fungsi untuk menghapus data
@application.route('/hapus/<id_barang>', methods=['GET','POST'])
def hapus(id_barang):
   openDb()
   cursor.execute('DELETE FROM barang WHERE id_barang=%s', (id_barang,))
   conn.commit()
   closeDb()
   return redirect(url_for('index'))
      
if __name__ == '__main__':
   application.run(debug=True)

File app.py adalah file yang menjadi file utama atau bisa kita sebut sebagai controllernya. Dimana file ini sebagai objek aplikasi yang menghubungkan antara template melalui fungsi view() dengan data yang kita ambil dari database MySQL.

Membuat Template

Pada tahap ini kita akan membuat template untuk menampilkan interface aplikasi kepada pengguna. ada 3 template yang akan kita buat yaitu index.html, tambah.html dan edit.html.

Langkah awal kalian harus buat dulu folder templates untuk menyimpan semua file template di dalam satu folder.

Cara menggunakan python mysql connector project

1. index.html

Template index.html berfungsi sebagai halama awal untuk menampilkan daftar barang dari database.

Buatlah file index.html menggunakan teks editor, kode nya seperti di bawah ini:

<!-- Code by Kelas Programmer
Author: Setiawan Dimas Arimurti
Author URL: https://kelasprogrammer.com
License: Creative Commons Atribusi-NonKomersial 4.0 Internasional
License URL: http://creativecommons.org/licenses/by-nc/4.0/
-->
<html>
<head>
   <title>Aplikasi CRUD python Menggunakan Flask | Kelasprogrammer.com </title>
   <link rel="stylesheet" href="{{ url_for('static', filename='bootstrap/css/bootstrap.min.css') }}">
</head>
<body>
   <div class="container">
   <h2>Aplikasi CRUD python Menggunakan Flask</h2>
   <table class="table table-bordered table-hover">
      <thead>
      <tr>
          <th>ID Barang</th>
          <th>Nama Barang</th>
          <th>Harga</th>
          <th>Stok</th>
          <th width="10%" colspan="2">Aksi</th>
      </tr>
      </thead>
   
          <tbody>
            {% for row in container %}
            <tr>
               <td>{{ row[0] }}</td>
               <td>{{ row[1] }}</td>
               <td>{{ row[2] }}</td>
               <td>{{ row[3] }}</td>
               <td><a href="http://localhost:5000/edit/{{row[0]}}" class="btn btn-warning" role="button">Ubah</a></td>
               <td><a href="http://localhost:5000/hapus/{{row[0]}}" class="btn btn-danger" role="button">Hapus</a></td>
            </tr>
         {% endfor %}
          </tbody>
   </table>
   <a href="http://localhost:5000/tambah" class="btn btn-primary" role="button">Tambah Data</a>
   </div>
</body>
</html>

2. tambah.html

Template yang kedua adalah tambah.html yang akan berfungsi sebagai from input tambah data ke database. Lakukan cara yang sama seperti langkah sebelumnya.

<!-- Code by Kelas Programmer
Author: Setiawan Dimas Arimurti
Author URL: https://kelasprogrammer.com
License: Creative Commons Atribusi-NonKomersial 4.0 Internasional
License URL: http://creativecommons.org/licenses/by-nc/4.0/
-->
<html>
<head>
   <title>Aplikasi CRUD python Menggunakan Flask | Kelasprogrammer.com </title>
   <link rel="stylesheet" href="{{ url_for('static', filename='bootstrap/css/bootstrap.min.css') }}">
</head>
<body>
   <div class="container">
      <div class="col-sm-5">
      <h2>Tambah Data Barang</h2>
         <form action="{{ url_for('tambah') }}" method="post">
            <div class="form-group">
               <label>Nama Barang:</label>
               <input type="text" name="nama" class="form-control" placeholder="Masukan nama barang" required />
            </div>
            <div class="form-group">
               <label>Harga:</label>
               <input type="number" name="harga" class="form-control" placeholder="Masukan harga" required />
            </div>
            <div class="form-group">
               <label>Stok:</label>
               <input type="number" name="stok" class="form-control" placeholder="Masukan stok" required />
            </div>
            <button type="submit" id="Submit" name="submit" class="btn btn-primary">Tambah Barang</button>
      </form>
   </div>
</div>
</body>
</html>

3. edit.html

Pada template yang ketiga kita membuat edit.html yang berfungsi untuk menampilkan form edit data.

<!-- Code by Kelas Programmer
Author: Setiawan Dimas Arimurti
Author URL: https://kelasprogrammer.com
License: Creative Commons Atribusi-NonKomersial 4.0 Internasional
License URL: http://creativecommons.org/licenses/by-nc/4.0/
-->
<html>
<head>
   <title>Aplikasi CRUD python Menggunakan Flask | Kelasprogrammer.com </title>
   <link rel="stylesheet" href="{{ url_for('static', filename='bootstrap/css/bootstrap.min.css') }}">
</head>
<body>
   <div class="container">
      <div class="col-sm-5">
      <h2>Ubah Data Barang</h2>
         <form action="url_for('edit', id_barang={{data[0]}})" method="post">
            <div class="form-group">
               <input type="hidden" name="id_barang"  value="{{data[0]}}" class="form-control" />
            </div>
            <div class="form-group">
               <label>Nama Barang:</label>
               <input type="text" name="nama"  value="{{data[1]}}" class="form-control" placeholder="Masukan nama barang" required />
            </div>
            <div class="form-group">
               <label>Harga:</label>
               <input type="number" name="harga"  value="{{data[2]}}" class="form-control" placeholder="Masukan harga" required />
            </div>
            <div class="form-group">
               <label>Stok:</label>
               <input type="number" name="stok"  value="{{data[3]}}" class="form-control" placeholder="Masukan stok" required />
            </div>
            <button type="submit" id="Submit" name="submit" class="btn btn-primary">Edit Barang</button>
      </form>
   </div>
</div>
</body>
</html>

Kita tidak membuat fungsi view() hapus karena sudah langsung kita definisikan dari objek aplikasi (lihat pada file app.py).

Konfigurasi Bootstrap

Jika kalian perhatikan pada setiap file template kita menggunakan bootstrap yang di panggil dari tag <head> pada setiap template.

Agar dapat menggunakan bootstrap, silahkan kalian download dulu ya di website nya.

Setelah kalian berhasil mendownload, selanjutnya buatlah folder static lalu simpan file bootstrap di dalam folder tersebut.

Cara menggunakan python mysql connector project

Menjalankan Aplikasi

Untuk menjalankan aplikasi kita menggunakan command prompt dengan cara arahkan direktori ke folder project yang kita buat lalu jalankan objek aplikasi menggunakan perintah

python app.py
Cara menggunakan python mysql connector project

Aplikasi akan di jalankan lewat server http://localhost:5000/ atau pada alamat yang tertera di layar saat aplikasi running.

Cara menggunakan python mysql connector project

Cara menggunakan python mysql connector project

Cara menggunakan python mysql connector project

Kesimpulan

Dengan demikian kita telah berhasil membuat aplikasi web di python dengan mengimplementasi flask sebagai web framewrok dan database mysql untuk membuat aplikasi CRUD sederhana ini, kalian tentunya bisa mengembangkan lebih jauh dari apa yang saya bahas disini.

Dodwnload Source Code & Database

Buat teman-teman yang masih bingung untuk tutorial yang saya bahasa di atas, untuk lebih mudah kalian bisa mendownload secara gratis dibawah ini:

[sociallocker id=”5349″] [/sociallocker]