際際滷

際際滷Share 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

What's hot (19)

PDF
Menyimpan Data Ke Database Dengan Ajax Dan PHP
Ellyx Christian
PPT
16406 pertemuan17(konsep basis-data-di-web)
Universitas Bina Darma Palembang
DOCX
Tutorial Postgre SQL
Hari Setiaji
PDF
Tutorial crud PHP
Candra Adi Putra
DOCX
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
nada_salwa
PDF
My sql python_cherrypy
AGus Msln
PDF
Tutorial my sql
MIlaSusanti2
PDF
Program hapus data barang
Universitas Komputer Indonesia
PPTX
manipulasi data
Fransiskus Deddy
PPTX
Database operation di C++
FgroupIndonesia
PDF
Blog 10
iswan_di
PDF
Working Instruction Instalation Owncloud On Centos 6
Febi Gelar Ramadhan
PDF
Phppemula
Reno Agil
PDF
Php dan MySQL 4
Ali Muntaha
PPT
Mysql 2
Fajar Baskoro
PDF
際際滷 ppbd d3 pertemuan 3
Bina Sarana Informatika
PDF
Dokumentasi komparasi incremental backup oracle dengan mysql
Ahmad Haris
PDF
Cara Membuat WebTools
Mohammad Nur
DOC
Tugas php
Ahmad Logic
Menyimpan Data Ke Database Dengan Ajax Dan PHP
Ellyx Christian
16406 pertemuan17(konsep basis-data-di-web)
Universitas Bina Darma Palembang
Tutorial Postgre SQL
Hari Setiaji
Tutorial crud PHP
Candra Adi Putra
Tugas Pendahuluan Praktikum Data Mining Dan Warehousing Modul 5
nada_salwa
My sql python_cherrypy
AGus Msln
Tutorial my sql
MIlaSusanti2
Program hapus data barang
Universitas Komputer Indonesia
manipulasi data
Fransiskus Deddy
Database operation di C++
FgroupIndonesia
Blog 10
iswan_di
Working Instruction Instalation Owncloud On Centos 6
Febi Gelar Ramadhan
Phppemula
Reno Agil
Php dan MySQL 4
Ali Muntaha
Mysql 2
Fajar Baskoro
際際滷 ppbd d3 pertemuan 3
Bina Sarana Informatika
Dokumentasi komparasi incremental backup oracle dengan mysql
Ahmad Haris
Cara Membuat WebTools
Mohammad Nur
Tugas php
Ahmad Logic

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

DOCX
Tutorial lanjutan java netbeans 8 : Create Read Update Delete
SMK Negeri 6 Malang
PDF
Jquery Ajax Part 1 by Yussan
Yusuf A.H.
DOCX
Membuat form login dengan php mysql
Raja Putra Media
DOCX
Laporan tugas akhir daspro kelompok
Software Engineering Professionals (SEP)
PPTX
Kelompok 15
alqod
PPTX
Kelompok 15
alqod
PPTX
Kelompok 15
alqod
PDF
Chapter 01 - Pembuatan Database
Rakhmat Dedi Gunawan
PDF
Jeni Web Programming Bab 3 Advanced Servlets
Individual Consultants
PDF
04. prak.-pemrograman-client-server
Ayu Karisma Alfiana
PDF
F 10011543 fathorazi nur fajri
Syarif Fudin
PDF
Pertemuan 09 (procedure dan function database)
Rifky A Ayub
PDF
Tugas 3 Pemrograman API
1110651055
PPTX
Workshop PHP: Laporan HTML, Excel, PDF
Achmad Solichin
DOC
Membuat mvc framework sederhana dengan php
Cahya Dwiana SN
PDF
Membuat Catatan Online dengan Cherrypy
Ridwan Fadjar
PDF
Kolaborasi jQuery, AJAX, PHP, dan MySQL
I Putu Arya Dharmaadi
PDF
Program database sederhana di android
Into Setiawan
DOCX
Kamus pl sql
Teddy Soleh Susandi
PDF
Modul pembuatan aplikasi login dengan php dan my sq lx
Mboard Philipe
Tutorial lanjutan java netbeans 8 : Create Read Update Delete
SMK Negeri 6 Malang
Jquery Ajax Part 1 by Yussan
Yusuf A.H.
Membuat form login dengan php mysql
Raja Putra Media
Laporan tugas akhir daspro kelompok
Software Engineering Professionals (SEP)
Kelompok 15
alqod
Kelompok 15
alqod
Kelompok 15
alqod
Chapter 01 - Pembuatan Database
Rakhmat Dedi Gunawan
Jeni Web Programming Bab 3 Advanced Servlets
Individual Consultants
04. prak.-pemrograman-client-server
Ayu Karisma Alfiana
F 10011543 fathorazi nur fajri
Syarif Fudin
Pertemuan 09 (procedure dan function database)
Rifky A Ayub
Tugas 3 Pemrograman API
1110651055
Workshop PHP: Laporan HTML, Excel, PDF
Achmad Solichin
Membuat mvc framework sederhana dengan php
Cahya Dwiana SN
Membuat Catatan Online dengan Cherrypy
Ridwan Fadjar
Kolaborasi jQuery, AJAX, PHP, dan MySQL
I Putu Arya Dharmaadi
Program database sederhana di android
Into Setiawan
Kamus pl sql
Teddy Soleh Susandi
Modul pembuatan aplikasi login dengan php dan my sq lx
Mboard Philipe
Ad

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