SlideShare a Scribd company logo
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

PPTX
Belajar pemrograman berbasis web menggunakan DHTMLX, PHP dan MySQL
DOCX
Belajar pemrograman berbasis web menggunakan dhtmlx 2
DOCX
Belajar pemrograman berbasis web php dhtmlx part 9 Transaction pada Grid
DOCX
Belajar pemrograman berbasis web php dhtmlx part 10 simple crud dhtmlx dan co...
DOCX
Belajar pemrograman web menggunakan dhtmlx dan php part 4 galeri gambar & upl...
DOCX
Belajar pemrograman berbasis web php dhtmlx part 5 grafik
DOCX
Belajar pemrograman berbasis web php dhtmlx part 6 export data
DOCX
Belajar Pemrograman Berbasis Web PHP DHTMLX Part 7 - Join Tables CRUD
Belajar pemrograman berbasis web menggunakan DHTMLX, PHP dan MySQL
Belajar pemrograman berbasis web menggunakan dhtmlx 2
Belajar pemrograman berbasis web php dhtmlx part 9 Transaction pada Grid
Belajar pemrograman berbasis web php dhtmlx part 10 simple crud dhtmlx dan co...
Belajar pemrograman web menggunakan dhtmlx dan php part 4 galeri gambar & upl...
Belajar pemrograman berbasis web php dhtmlx part 5 grafik
Belajar pemrograman berbasis web php dhtmlx part 6 export data
Belajar Pemrograman Berbasis Web PHP DHTMLX Part 7 - Join Tables CRUD

What's hot (19)

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

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

PDF
Fungsi fungsi pada php - pemrograman php my sql
PPTX
Cara membuat koneksi PHP dan database MySQL
DOCX
Ansanwan form sederhana php
PDF
Entri, Edit, Delete, Tampil (CRUD) dengan PHP dan Ajax JQuery
DOCX
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMIN
PDF
Laporan_PHP-MySQL
DOCX
Laporan
PPTX
PDO (php data object)
PDF
Jquery Ajax Part 1 by Yussan
PDF
Koneksi PHP ke Database MySQL menggunakan MySQLi Extension
PDF
php and mysql
PDF
aplikasi teknologi online - aplikasi database berbasis web
PPTX
PDF
Laporan tugas besar pbw
PDF
Laporan Project Pemrograman Berbasis Web
DOCX
modul pemrograman web dengan dreamweaver, sql & php
PDF
PHP (Input Data) dan MySQL
PPTX
Php kel23
PPTX
Database Operation di VB.NET
Fungsi fungsi pada php - pemrograman php my sql
Cara membuat koneksi PHP dan database MySQL
Ansanwan form sederhana php
Entri, Edit, Delete, Tampil (CRUD) dengan PHP dan Ajax JQuery
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMIN
Laporan_PHP-MySQL
Laporan
PDO (php data object)
Jquery Ajax Part 1 by Yussan
Koneksi PHP ke Database MySQL menggunakan MySQLi Extension
php and mysql
aplikasi teknologi online - aplikasi database berbasis web
Laporan tugas besar pbw
Laporan Project Pemrograman Berbasis Web
modul pemrograman web dengan dreamweaver, sql & php
PHP (Input Data) dan MySQL
Php kel23
Database Operation di VB.NET
Ad

Recently uploaded (8)

PPTX
Implementasi Microservices pada Manufaktur
PPT
pengantar-sistem-informasi manajemen.ppt
DOCX
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
PPTX
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
PPTX
PERANCANGAN DAN PENGEMBANGAN VIDEO GAME SEBAGAI MEDIA TERAPI DEPRESI
PPTX
PEMAHAMAN MAPEL KODING DAN KECERDASAN ARTIFICIAL
PPTX
Materi_Array_Karakter_String untuk kelas XI sma.pptx
DOCX
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
Implementasi Microservices pada Manufaktur
pengantar-sistem-informasi manajemen.ppt
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
PERANCANGAN DAN PENGEMBANGAN VIDEO GAME SEBAGAI MEDIA TERAPI DEPRESI
PEMAHAMAN MAPEL KODING DAN KECERDASAN ARTIFICIAL
Materi_Array_Karakter_String untuk kelas XI sma.pptx
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...

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: [email protected]