SlideShare a Scribd company logo
1 of 10
Belajar Pemrograman Web
menggunakan DHTMLX Part 8
“Transaction”
TULISAN UTAMA II
(SOURCE CODE)
TRANSACTION
PERHATIAN: TULISAN INI MEMBUTUHKAN DASAR-DASAR DHTMLX, SILAHKAN IKUTI MULAI
DARI TULISAN PERTAMA SERI BELAJAR PEMROGRAMAN WEB MENGGUNAKAN DHTMLX, PHP
DAN MYSQL
Transaction sangat diperlukan apabila kita melakukan lebih dari satu query pada saat
bersamaan. Misalkan saja 2 query bersamaan, dengan transaction dapat dipastikan semua
query berhasil atau semuanya gagal. Tidak boleh satu berhasil satu gagal.
Misalkan pada sebuah toko terjadi pembelian suatu barang, otomatis query yang pertama
adalah pembelian barang tersebut beserta jumlah dan tanggal pembeliannya (INSERT). Query
yang kedua adalah penambahan jumlah stok barang tersebut yang ada di gudang (UPDATE).
Apabila tanpa Transaction ada kemungkinan query pertama berhasil dan query kedua gagal
yang menyebabkan data hilang sebagian
Pada MySQL database Engine yang mendukung Transaction yaitu INNODB, sedangkan MyISAM
tidak mendukung Transaction. Lalu yang tidak kalah pentingnya yaitu variable “sql_mode” pada
MySQL. Default sql_mode pada MySQL mengizinkan :
 nilai null pada data not null
 format tanggal yang tidak jelas seperti 0000-00-00
 Karakter yang panjang dapat masuk tanpa error dengan pemotongan jumlah karakter
misalkan “BURHANUDIN” dapat masuk ke field VARCHAR(5) menjadi “BURHA”
Untuk menghindari hal-hal di atas kita harus mengubah sql_mode menjadi TRADITIONAL. Bisa
dilakukan dengan konfigurasi mysql.ini, Tapi disini kita akan mengubahnya pada script php. Jadi
setiap ada operasi terhadap database MySQL otomatis sql_mode diset menjadi TRADITIONAL
DHTMLX PHP Connector (render_table,render_sql) tidak bisa digunakan disini. Oleh karena itu
kita akan menulis script php sendiri tanpa Connector.
DATABASE
- Tabel input
*On DELETE RESTRICT = Apabila di tabel input ada record yang menggunakan produk_id dari
tabel stok maka produk tersebut tidak bisa di delete dari tabel stok
*On UPDATE RESTRICT = Karena produk_id AUTOINCREMENT dan tidak bisa diupdate maka ini
bisa diabaikan
- Tabel Stok
*Unsigned tidak boleh ada nilai dibawah 0
Ini merupakan TULISAN UTAMA YANG KEDUA (Proteksi Kesempurnaan Data pada MySQL
tidak pada sisi PHP), pesan error yang ditampilkan adalah dari MySQL bukan PHP
Pada tulisan ini akan digunakan komponen-komponen DHTMLX:
1. dhtmlXLayout (untuk menempatkan komponen).
2. dhtmlXGrid (tampilkan data berupa tabel)
3. dhtmlxCombo (komponen untuk memilih (select), dengan terlebih dahulu memuat data
dari database)
4. dhtmlXForm
Langsung pada kode/script di bawah ini
xconn.php (PERHATIKAN SET SESION sql_mode=”TRADITIONAL”)
index.html (dasar sebelum script ditulis, nanti akan ditulis pada bagian //---SCRIPT--)
Layout (tempatkan pada myDiv, pola 3L –kiri satu kanan dua)
Form dan Form DataProcessor
- Form ditempatkan pada Layout.cells(“a”)
- Form DataProcessor akan dieksekusi setelah tombol Tambah ditekan
- Form DataProcessor AfterUpdate event untuk memberi respon setelah proses pada
database (sukses atau gagal), variable msg pada script merupakan respon dari server
Berikut ini adalah script untuk Form dan Form DataProcessor
Setelah tombol “Tambah” ditekan
(ids = id unik autogenerate, dhx_security dari grid.php line ConnectorSecurity::$security_key = true;)
Dan respon dari server (apabila berhasil)
Form DataProcessor (input_form.php)
Pada script ada menggunakan
 dhx_security, merupakan token unik yang dihasilkan (generate) oleh perintah
ConnectorSecurity::$security_key = true; pada input_grid.php ataupun stok.php.
maksudnya untuk mencegah serangan CSRF and XSRF. Kalau DHTMLX PHP Connector cukup
menggunakan ConnectorSecurity::$security_key = true pada form.php maupun grid.php
 ConnectorSecurity::filter, ini karena kita tidak menggunakan DHTMLX PHP Connector.
Tujuan dari ConnectorSecurity::filter adalah untuk filter input apabila ada tag html ataupun
XSS
GRID (read only tbl input & tbl stok)
Tbl input pada kanan atas dan Tbl stok kanan bawah
input_grid.php
stok_grid.php
Combo (produk combo pada Form)
produk_combo.php
Kode lengkap secara berurutan silahkan download source code.
• Demo bisa dicoba di http://www.dhxapps.web.id/tutorial/8/index.html
• Source code dapat diperoleh di http://www.dhxapps.web.id/tutorial/8/trans.zip
PENULIS
Manuppak L. Tobing
Masih Newbie dalam DHTMLX Programming
http://tobingvps.com – Sadly VPS owner sold his company and price up
more 3x, moving tobingvps.com to shared hosting www.dhxapps.web.id
Email: lumban.tobing.m@gmail.com

More Related Content

What's hot

Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
nada_salwa
 

What's hot (19)

Menyimpan Data Ke Database Dengan Ajax Dan PHP
Menyimpan Data Ke Database Dengan Ajax Dan PHPMenyimpan Data Ke Database Dengan Ajax Dan PHP
Menyimpan Data Ke Database Dengan Ajax Dan PHP
 
16406 pertemuan17(konsep basis-data-di-web)
16406 pertemuan17(konsep basis-data-di-web)16406 pertemuan17(konsep basis-data-di-web)
16406 pertemuan17(konsep basis-data-di-web)
 
Tutorial Postgre SQL
Tutorial Postgre SQLTutorial Postgre SQL
Tutorial Postgre SQL
 
Tutorial crud PHP
Tutorial crud PHPTutorial crud PHP
Tutorial crud PHP
 
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
 
My sql python_cherrypy
My sql python_cherrypyMy sql python_cherrypy
My sql python_cherrypy
 
Tutorial my sql
Tutorial my sqlTutorial my sql
Tutorial my sql
 
Program hapus data barang
Program  hapus data barangProgram  hapus data barang
Program hapus data barang
 
manipulasi data
manipulasi data manipulasi data
manipulasi data
 
Database operation di C++
Database operation di C++Database operation di C++
Database operation di C++
 
Blog 10
Blog 10Blog 10
Blog 10
 
Working Instruction Instalation Owncloud On Centos 6
Working Instruction Instalation Owncloud On Centos 6Working Instruction Instalation Owncloud On Centos 6
Working Instruction Instalation Owncloud On Centos 6
 
Phppemula
PhppemulaPhppemula
Phppemula
 
Php dan MySQL 4
Php dan MySQL 4Php dan MySQL 4
Php dan MySQL 4
 
Mysql 2
Mysql 2Mysql 2
Mysql 2
 
Slide ppbd d3 pertemuan 3
Slide ppbd d3 pertemuan 3Slide ppbd d3 pertemuan 3
Slide ppbd d3 pertemuan 3
 
Dokumentasi komparasi incremental backup oracle dengan mysql
Dokumentasi komparasi incremental backup oracle dengan mysqlDokumentasi komparasi incremental backup oracle dengan mysql
Dokumentasi komparasi incremental backup oracle dengan mysql
 
Cara Membuat WebTools
Cara Membuat WebToolsCara Membuat WebTools
Cara Membuat WebTools
 
Tugas php
Tugas phpTugas php
Tugas php
 

Similar to Belajar pemrograman berbasis web php dhtmlx part 8 Transaction

Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
alqod
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
alqod
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
alqod
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced Servlets
Individual Consultants
 
Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)
Rifky A Ayub
 
Membuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan phpMembuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan php
Cahya Dwiana SN
 
Program database sederhana di android
Program database sederhana di androidProgram database sederhana di android
Program database sederhana di android
Into Setiawan
 
Modul pembuatan aplikasi login dengan php dan my sq lx
Modul pembuatan aplikasi login dengan php dan my sq lxModul pembuatan aplikasi login dengan php dan my sq lx
Modul pembuatan aplikasi login dengan php dan my sq lx
Mboard Philipe
 

Similar to Belajar pemrograman berbasis web php dhtmlx part 8 Transaction (20)

Tutorial lanjutan java netbeans 8 : Create Read Update Delete
Tutorial lanjutan java netbeans 8 : Create Read Update DeleteTutorial lanjutan java netbeans 8 : Create Read Update Delete
Tutorial lanjutan java netbeans 8 : Create Read Update Delete
 
Jquery Ajax Part 1 by Yussan
Jquery Ajax Part 1 by YussanJquery Ajax Part 1 by Yussan
Jquery Ajax Part 1 by Yussan
 
Membuat form login dengan php mysql
Membuat form login dengan php mysqlMembuat form login dengan php mysql
Membuat form login dengan php mysql
 
Laporan tugas akhir daspro kelompok
Laporan tugas akhir daspro kelompok Laporan tugas akhir daspro kelompok
Laporan tugas akhir daspro kelompok
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
 
Chapter 01 - Pembuatan Database
Chapter 01 - Pembuatan DatabaseChapter 01 - Pembuatan Database
Chapter 01 - Pembuatan Database
 
Jeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced ServletsJeni Web Programming Bab 3 Advanced Servlets
Jeni Web Programming Bab 3 Advanced Servlets
 
04. prak.-pemrograman-client-server
04. prak.-pemrograman-client-server04. prak.-pemrograman-client-server
04. prak.-pemrograman-client-server
 
F 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajriF 10011543 fathorazi nur fajri
F 10011543 fathorazi nur fajri
 
Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)Pertemuan 09 (procedure dan function database)
Pertemuan 09 (procedure dan function database)
 
Tugas 3 Pemrograman API
Tugas 3 Pemrograman APITugas 3 Pemrograman API
Tugas 3 Pemrograman API
 
Workshop PHP: Laporan HTML, Excel, PDF
Workshop PHP: Laporan HTML, Excel, PDFWorkshop PHP: Laporan HTML, Excel, PDF
Workshop PHP: Laporan HTML, Excel, PDF
 
Membuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan phpMembuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan php
 
Membuat Catatan Online dengan Cherrypy
Membuat Catatan Online dengan CherrypyMembuat Catatan Online dengan Cherrypy
Membuat Catatan Online dengan Cherrypy
 
Kolaborasi jQuery, AJAX, PHP, dan MySQL
Kolaborasi jQuery, AJAX, PHP, dan MySQLKolaborasi jQuery, AJAX, PHP, dan MySQL
Kolaborasi jQuery, AJAX, PHP, dan MySQL
 
Program database sederhana di android
Program database sederhana di androidProgram database sederhana di android
Program database sederhana di android
 
Kamus pl sql
Kamus pl sqlKamus pl sql
Kamus pl sql
 
Modul pembuatan aplikasi login dengan php dan my sq lx
Modul pembuatan aplikasi login dengan php dan my sq lxModul pembuatan aplikasi login dengan php dan my sq lx
Modul pembuatan aplikasi login dengan php dan my sq lx
 

Belajar pemrograman berbasis web php dhtmlx part 8 Transaction

  • 1. Belajar Pemrograman Web menggunakan DHTMLX Part 8 “Transaction” TULISAN UTAMA II (SOURCE CODE)
  • 2. TRANSACTION PERHATIAN: TULISAN INI MEMBUTUHKAN DASAR-DASAR DHTMLX, SILAHKAN IKUTI MULAI DARI TULISAN PERTAMA SERI BELAJAR PEMROGRAMAN WEB MENGGUNAKAN DHTMLX, PHP DAN MYSQL Transaction sangat diperlukan apabila kita melakukan lebih dari satu query pada saat bersamaan. Misalkan saja 2 query bersamaan, dengan transaction dapat dipastikan semua query berhasil atau semuanya gagal. Tidak boleh satu berhasil satu gagal. Misalkan pada sebuah toko terjadi pembelian suatu barang, otomatis query yang pertama adalah pembelian barang tersebut beserta jumlah dan tanggal pembeliannya (INSERT). Query yang kedua adalah penambahan jumlah stok barang tersebut yang ada di gudang (UPDATE). Apabila tanpa Transaction ada kemungkinan query pertama berhasil dan query kedua gagal yang menyebabkan data hilang sebagian Pada MySQL database Engine yang mendukung Transaction yaitu INNODB, sedangkan MyISAM tidak mendukung Transaction. Lalu yang tidak kalah pentingnya yaitu variable “sql_mode” pada MySQL. Default sql_mode pada MySQL mengizinkan :  nilai null pada data not null  format tanggal yang tidak jelas seperti 0000-00-00  Karakter yang panjang dapat masuk tanpa error dengan pemotongan jumlah karakter misalkan “BURHANUDIN” dapat masuk ke field VARCHAR(5) menjadi “BURHA” Untuk menghindari hal-hal di atas kita harus mengubah sql_mode menjadi TRADITIONAL. Bisa dilakukan dengan konfigurasi mysql.ini, Tapi disini kita akan mengubahnya pada script php. Jadi setiap ada operasi terhadap database MySQL otomatis sql_mode diset menjadi TRADITIONAL DHTMLX PHP Connector (render_table,render_sql) tidak bisa digunakan disini. Oleh karena itu kita akan menulis script php sendiri tanpa Connector.
  • 3. DATABASE - Tabel input *On DELETE RESTRICT = Apabila di tabel input ada record yang menggunakan produk_id dari tabel stok maka produk tersebut tidak bisa di delete dari tabel stok *On UPDATE RESTRICT = Karena produk_id AUTOINCREMENT dan tidak bisa diupdate maka ini bisa diabaikan - Tabel Stok *Unsigned tidak boleh ada nilai dibawah 0 Ini merupakan TULISAN UTAMA YANG KEDUA (Proteksi Kesempurnaan Data pada MySQL tidak pada sisi PHP), pesan error yang ditampilkan adalah dari MySQL bukan PHP Pada tulisan ini akan digunakan komponen-komponen DHTMLX: 1. dhtmlXLayout (untuk menempatkan komponen). 2. dhtmlXGrid (tampilkan data berupa tabel) 3. dhtmlxCombo (komponen untuk memilih (select), dengan terlebih dahulu memuat data dari database) 4. dhtmlXForm Langsung pada kode/script di bawah ini
  • 4. xconn.php (PERHATIKAN SET SESION sql_mode=”TRADITIONAL”) index.html (dasar sebelum script ditulis, nanti akan ditulis pada bagian //---SCRIPT--)
  • 5. Layout (tempatkan pada myDiv, pola 3L –kiri satu kanan dua) Form dan Form DataProcessor - Form ditempatkan pada Layout.cells(“a”) - Form DataProcessor akan dieksekusi setelah tombol Tambah ditekan - Form DataProcessor AfterUpdate event untuk memberi respon setelah proses pada database (sukses atau gagal), variable msg pada script merupakan respon dari server Berikut ini adalah script untuk Form dan Form DataProcessor
  • 6. Setelah tombol “Tambah” ditekan (ids = id unik autogenerate, dhx_security dari grid.php line ConnectorSecurity::$security_key = true;) Dan respon dari server (apabila berhasil)
  • 8. Pada script ada menggunakan  dhx_security, merupakan token unik yang dihasilkan (generate) oleh perintah ConnectorSecurity::$security_key = true; pada input_grid.php ataupun stok.php. maksudnya untuk mencegah serangan CSRF and XSRF. Kalau DHTMLX PHP Connector cukup menggunakan ConnectorSecurity::$security_key = true pada form.php maupun grid.php  ConnectorSecurity::filter, ini karena kita tidak menggunakan DHTMLX PHP Connector. Tujuan dari ConnectorSecurity::filter adalah untuk filter input apabila ada tag html ataupun XSS GRID (read only tbl input & tbl stok) Tbl input pada kanan atas dan Tbl stok kanan bawah
  • 10. Combo (produk combo pada Form) produk_combo.php Kode lengkap secara berurutan silahkan download source code. • Demo bisa dicoba di http://www.dhxapps.web.id/tutorial/8/index.html • Source code dapat diperoleh di http://www.dhxapps.web.id/tutorial/8/trans.zip PENULIS Manuppak L. Tobing Masih Newbie dalam DHTMLX Programming http://tobingvps.com – Sadly VPS owner sold his company and price up more 3x, moving tobingvps.com to shared hosting www.dhxapps.web.id Email: lumban.tobing.m@gmail.com