Kulgram I - · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ......
Transcript of Kulgram I - · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ......
Kulgram IPemrograman Delphi I:Koneksi database dengan Zeos
https://t.me/PascalID
Dosen: Mas Kofa
7:47:36 PM
7:48:13 PM
7:53:07 PM
7:55:02 PM
7:55:46 PM
7:55:48 PM
7:56:23 PM
7:58:00 PM
7:58:39 PM
Mas Kofa
monggo diabsen dulu
Acim Kompor
hadir
Mas Kofa
cuman 1?
Didi Kurniadi
Hadir om
Tigor Manurung
Halo selamat malam temen2
terimakasih bagi yang sudah bergabung disini. Sebentar lagi kita
akan mengikuti kulgram yang akan dibawakan oleh @maskofa
dengan topik "Pemrograman database delphi dengan zeos".
Sebelum itu, kulgram ini ada beberapa peraturan yang harus
diperhatikan seperti ada sesi penyampaian materi dan tanya
jawab, selama sesi materi TIDAK BOLEH ADA YANG MENYELA
/MEMOTONG (tg://bot_command?command=MEMOTONG).
Nah berikut ini peraturan lengkapnya :
ATURAN DAN TATA TERTIB KULGRAM
I. Istilah
- Dosen adalah pemateri kulgram.
- Moderator adalah pengarah kulgram.
- Topik adalah materi bahasan kulgram.
- Peserta adalah anggota grup yg mengikuti kulgram.
II. Sesi Kulgram
1. Pembukaan.
Moderator membuka dengan penyampaian profil dosen dan
topik kulgram. Moderator menandai sesi kulgram dengan tagar
#kulgram (tg://search_hashtag?hashtag=kulgram) #judul
(tg://search_hashtag?hashtag=judul) #dosen
(tg://search_hashtag?hashtag=dosen)
2. Kulgram topik oleh dosen.
a. Sesi kulgram bersifat searah. Dosen menyampaikan, peserta
menyimak.
b. Peserta tidak boleh mengobrol dengan peserta lain atau
dengan dosen selama kulgram.
c. Moderator berhak menyela dan menghentikan kulgram dari
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 3 из 34 16/01/2017 23.02
7:59:12 PM
7:59:53 PM
8:00:05 PM
8:00:55 PM
8:01:00 PM
8:01:28 PM
8:01:35 PM
8:02:37 PM
dosen jika diperlukan.
3. Tanya jawab (tanja) dosen dengan peserta.
a. Tanja bersifat dua arah. Peserta bertanya, dosen menjawab.
b. Jika tidak bisa atau tidak bersedia menjawab, dosen bisa memberi
kesempatan pada peserta lain untuk membantu menjawab pertanyaan.
c. Peserta tidak boleh ikut menjawab pertanyaan tanpa ijin dan
kesempatan dari dosen atau moderator.
d. Pertanyaan peserta harus sesuai dengan topik yg sedang dibahas.
e. Setiap pertanyaan peserta harus ditandai dengan tagar #tanya
(tg://search_hashtag?hashtag=tanya)
f. Tanja dilaksanakan dalam suasana serius tapi santai dan sopan.
g. Moderator mengatur proses tanja agar berlangsung dengan tertib dan
teratur.
h. Moderator berhak menegur dan menendang peserta yg dianggap tak
mematuhi aturan dan tata tertib kulgram.
4. Penutup.
Moderator menutup kulgram dengan menyampaikan kesimpulan ringkas
topik kulgram.
III. Tindak Lanjut
1. Panitia akan menerbitkan materi kulgram, berikut tanya jawab yg telah
disunting seperlunya, sebagai bahan belajar untuk publik.
2. Setelah sesi kulgram selesai, bisa dilanjutkan dengan diskusi bebas tanpa
moderator, baik dengan atau tanpa dosen.
#kulgram (tg://search_hashtag?hashtag=kulgram) #maskofa
(tg://search_hashtag?hashtag=maskofa) #delphidb1
(tg://search_hashtag?hashtag=delphidb1)
Oke, @MasKofa silahkan mulai
Mas Kofa
Assalammu'alaikum wr wb...
Selamat malam man-teman....
sebelum ku mulai penyampaian materi..sebelumnya saya minta
maaf...jika nanti di dalam penyampaian kurang optimal dan
kurang fit serta kurang baik....
Patlisan
Hadir
Mas Kofa
dikarenakan saya meriang mendadak..sehabis mandi...gerges
dan pusing
ok. kuliah kita mulai
metode kuliah kali ini sebenarnya menggunakan metode
workshop....
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 4 из 34 16/01/2017 23.02
8:03:01 PM
8:03:31 PM
8:03:58 PM
8:04:15 PM
8:05:35 PM
8:05:38 PM
8:05:48 PM
8:06:41 PM
8:06:41 PM
8:08:04 PM
8:08:50 PM
8:08:58 PM
8:09:13 PM
di mana peserta mengikuti langkah2 apa yg saya katakan...
di mana dengan asumsi para peserta telah siap dengan laptop
dan app pendukung, antara lain :
1. Delphi (saya pakai Berlin 10.1 starter)
yg bisa di download di https://www.embarcadero.com/products
/delphi/starter/promotional-download
(https://www.embarcadero.com/products/delphi/starter
/promotional-download)
Embarcadero
Delphi Starter Edition - Promotional Download -
Embarcadero Website (https://www.embarcadero.com
/products/delphi/starter/promotional-download)
Advanced software tools for application developers. Cross-
platform solutions for development and management.
2. componen Zeos (saya pakai versi 1.7 yang di mana dukungan
sampai pada delphi xe7, namun masih bisa di install di berlin, link
download ada di : https://sourceforge.net/projects/zeoslib
/?source=typ_redirect (https://sourceforge.net/projects/zeoslib
/?source=typ_redirect)
SourceForge
ZeosLib (https://sourceforge.net/projects/zeoslib
/?source=typ_redirect)
ZeosLib download. ZeosLib 2017-01-11 19:14:33.480000 free
download. ZeosLib The ZeosLib is a set of database
components for MySQL, PostgreSQL, Interba...
atau
http://zeoslib.sourceforge.net/viewtopic.php?f=40&t=3795&
start=405#p62768 (http://zeoslib.sourceforge.net
/viewtopic.php?f=40&t=3795&start=405#p62768)
3. Mysqlserver, bisa pakai mysql atau mariadb, di mana bisa di
download di :
Mysql : http://dev.mysql.com/downloads/ (http://dev.mysql.com
/downloads/)
Mariadb : https://mariadb.org/download/ (https://mariadb.org
/download/)
yang ke - 4
4. mysql manager, bisa pakai heidi, mysql workbench, dll, atau
pakai sqlyog (yang saya pakai versi comminity)
sqlyog bisa di download di :
SQLyog : https://github.com/webyog/sqlyog-community
/wiki/Downloads (https://github.com/webyog/sqlyog-community
/wiki/Downloads)
GitHub
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 5 из 34 16/01/2017 23.02
(https://github.com/webyog/sqlyog-community
/wiki/Downloads)
8:10:15 PM
8:10:51 PM
8:11:01 PM
8:12:07 PM
8:12:21 PM
8:12:45 PM
8:14:39 PM
8:15:07 PM
ME8:15:27 PM
8:15:41 PM
8:16:16 PM
8:16:30 PM
8:17:00 PM
8:17:21 PM
webyog/sqlyog-community (https://github.com/webyog/sqlyog-
community/wiki/Downloads)
Contribute to sqlyog-community development by creating an account on
GitHub.
saya menemukan masalah saat install zeos di berllin, yakni error
'rtl not found'
namun bisa di atasi dengan tutorial berikut :
Permasalahan sekitar install Zeos
Rtl not found : https://ibeblog.com/2010/09/20/delphi-required-
package-rtl-not-found/ (https://ibeblog.com/2010/09/20/delphi-
required-package-rtl-not-found/)
selanjutnya kita langsung mulai ke praktek :
I. install mysql....
sesi ini kita lewati..karena dengan asumsi semua sudah siap
mysqlserver
saat kita instalasi mysql..maka sistem mysql akan memberikan
file library (libmysql) yang berada pada folder C:\Program
Files\MySQL\MySQL Server 5.6\lib
Muchana Evolution joined the group
Mas Kofa
nah library ini nanti kita butuhkan saat development
Muchana Evolution
Izin gabung sesepu
Mas Kofa
maka perlu kita ambil yang nanti nya akan kita copy paste ke
folder project kita nanti
namun....jika anda menginstal mysql x64...maka library nya tidak
bisa dipakai di zeos nantinya..
karena zeos tidak support library x64
[^berdasar ujicob saya]
Lazuardi Nugraha joined the group
Edy Sutrisno
ijin interupsi
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 6 из 34 16/01/2017 23.02
8:17:30 PM
8:17:38 PM
8:17:43 PM
8:17:54 PM
8:19:21 PM
8:19:33 PM
8:19:53 PM
8:20:38 PM
edited 8:20:47 PM
8:21:41 PM
8:21:50 PM
8:22:09 PM
8:22:23 PM
8:22:29 PM
8:22:44 PM
8:22:55 PM
8:23:01 PM
Dio Affriza 隆 司
#Pengumuman (tg://search_hashtag?hashtag=Pengumuman)
Bagi yang baru gabung dan terlewat pembahasannya, nanti akan
ada log kulgram.
Edy Sutrisno
x64 maka libmysqlnya juga versi 64
Mas Kofa
bagi anda yg sudah terlanjur install mysql x64, bisa download lib
x32 di : Libmysql versi 5.5 dan 5.7 x32 bisa didownload di mari
http://version.maskofa.com/libmysql/32/libmysql55.dll
(http://version.maskofa.com/libmysql/32/libmysql55.dll)
http://version.maskofa.com/libmysql/32/libmysql57.dll
(http://version.maskofa.com/libmysql/32/libmysql57.dll)
Edy Sutrisno
jadi bisa jalan juga zeosnya
Ikhsan Falakh joined the group
Mas Kofa
biasa nya, sebelum saya memulai menggunakan mysql server,
saya perlu melakukan konfigurasi autoinc_lock_mode
apa itu fungsi nya??
begini penjelasannya :
rata2 design (structur database) hampir semuanya menggunaka
PK (promary Key) berupa AI (auto increament)
Dio Affriza 隆 司
Edy Sutrisno
ijin interupsi
Interupsi tidak diizinkan selama kulgram berlangsung.
Silakan menambahkan pada sesi tanya-jawab.
Mas Kofa
nah hal saat saat kita menambah kan data (insert), ada kala nya
PK nya sudah ada sebelumnya....
sehingga terjadi error....
namun error ini akan meng-increament AI nya....
jadi diakibatkan akan terjadi pelompatan AI
simulasi nya spt ini
insert into test values(1, 'saya');
pada awal table kosong
maka akan terisi
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 7 из 34 16/01/2017 23.02
8:23:22 PM
8:23:44 PM
8:23:52 PM
8:24:01 PM
8:24:16 PM
8:24:22 PM
8:24:43 PM
8:24:59 PM
8:25:11 PM
8:25:27 PM
8:25:43 PM
8:26:00 PM
8:26:24 PM
8:27:02 PM
8:27:28 PM
8:27:50 PM
8:28:28 PM
8:28:47 PM
8:28:58 PM
8:29:28 PM
8:29:38 PM
8:30:03 PM
8:30:45 PM
namun kalo kita eksekusi lagi..maka akan error...duplicate
primary key
di dlm sistem (mysql) otomatis AI nya nambah...
jadi AI skrg = 1;
*maaf koreksi = 2;
lalu kita eksekusi lagi 6 kali...
maka akan error 6 kali pula
nah skrg AI = menjadi 8 (kalo gak salah hitung)
lalu kita isi lagi dengan :
INSERT INTO test VALUES(NULL, 'saya');
di mana PK nya kit kasih null (karena AI)...
nah yg akan masuk datanya bukan 2....tapi 8....
nah itu tadi simulasi tentang : autoinc_lock_mode
knp harus di lock??
nanti tujuannya adalah untuk insert data secara serempak atau
istilah betawi nya : 'insert bulk'
coba bayangkan..kita insert bulk 1000rows sekaligus....lalu error
maka sistem akan mengalami kehilangan AI sebanyak 1000
untuk satu kali kesalahan.
skrg bagaimana cara membuat autoinc_lock_mode
a. kita buka my.ini
bagaimana cara membuka myini dengan cepat,
karena di windows terbaru : my.ini disembunyikan di folder
/ProgramData/
yg mana folder ini dihidden oleh system
cara buka my.ini, kita coba masuk lewat cmd
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 8 из 34 16/01/2017 23.02
8:31:05 PM
8:31:23 PM
8:32:02 PM
8:32:13 PM
8:32:29 PM
8:33:06 PM
8:33:20 PM
8:33:33 PM
8:33:50 PM
8:34:33 PM
8:35:10 PM
lalu kita klik run as admin
lalu kita tuliskan skrip service.msc
sehingga muncul windows service
lalu kita cari service mysql..lalu kita double klik
Yudhi Heriyadi joined the group
Mas Kofa
dan lihat textbox : Path To Executeblae
di sana ada alamat file my.ini
lalu tinggal kita copy paste ke windows explorer
sehingga terbuka pada text editor default
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 9 из 34 16/01/2017 23.02
8:35:51 PM
8:36:18 PM
8:36:31 PM
8:36:42 PM
8:38:03 PM
8:38:18 PM
8:39:06 PM
8:39:28 PM
8:39:48 PM
8:40:19 PM
8:40:26 PM
8:41:36 PM
8:42:08 PM
lalu pada bagian innodb section kita tambahin baris :
innodb_autoinc_lock_mode=0
di gambar di atas terlihat pada baris 246
lalu restart mysq service
dan siap..di gunakan
[info] : untuk ysql versi terbaru (saya coba di versi
5.6)...innodb_autoinc_lock_mode=0 secara default sudah tidak
digunakan lagi..jadi langkah2 di atas tidak perlu dilakukan
langkah2-langkah ini masih aku lakukan di mysql versi 4
Achmad Taufik joined the group
Mas Kofa
mari kita melangkah ke development
kita siapkan dulu database developmen
mariiiiiiiiiiiiiiiiiiiiiiiii kita buka mysql manager (saya pakai sqlyog)
tampilan awal sqlyog
lalu kita klik tombo create new connection..lalu kita pilih dari
konesi yang sudah ada atau membuat koneksi baru...
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 10 из 34 16/01/2017 23.02
8:42:26 PM
8:43:15 PM
8:43:18 PM
8:43:28 PM
8:44:58 PM
8:46:21 PM
8:46:28 PM
8:47:00 PM
8:47:32 PM
8:48:34 PM
8:48:40 PM
8:49:54 PM
8:50:02 PM
8:50:35 PM
yg selain pakai sqlyog monggo menyesuaiakan
lalu kita membuat database development
misal nama database nya kulgram
untuk development lebih baik kita membuat user baru dengan
hak akses terbatas..misal DELE INSERT UPDATE SELECT,
disesuikan dengan kebutuh
[^auto post]
untuk itu kita membuat user development misal dengan nama
kul_gram
^add user
atur hak akses.....
skrg kita saat nya membuat mendesain database....
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 11 из 34 16/01/2017 23.02
8:50:43 PM
8:51:19 PM
8:52:29 PM
8:53:15 PM
8:53:32 PM
8:54:00 PM
8:54:44 PM
8:55:03 PM
8:55:37 PM
8:56:04 PM
*membuat desain
karena materi dan kemampuan ku juga pada kulgram ini tentang
dasar2..maka akan saya ambil contoh project super simple
sebagai contoh kasus saya ambil pengolahan data fakultas dan
prodi
di sini ada dua table yakni table : fakultas dan table prodi
begini isi tale fakultas
berikut DDL Information nya :
http://pastebin.com/DgQw97Kf (http://pastebin.com/DgQw97Kf)
CREATE TABLE `fakultas` ( `fakultas_id` int(11) NOT
NULL AUTO_INCREMENT, ` - Pastebin.com
(http://pastebin.com/DgQw97Kf)
Lalu untuk table prodi nya adalah :
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 12 из 34 16/01/2017 23.02
8:56:54 PM
8:56:55 PM
8:57:37 PM
8:58:14 PM
8:58:31 PM
8:58:40 PM
8:59:11 PM
8:59:19 PM
8:59:54 PM
9:00:03 PM
berikut DDL informationnya :
http://pastebin.com/zm51Zpnc (http://pastebin.com/zm51Zpnc)
CREATE TABLE `prodi` ( `prodi_id` int(11) NOT NULL
AUTO_INCREMENT, `fakult - Pastebin.com
(http://pastebin.com/zm51Zpnc)
skrg saat nya kita.....ke delphi berlin...
bagaimana cara mengisi data prodi..dengan menggunakan
TDBLookupCombobox sebagai sumber fakultas nya
di sini saya pragakan tanpa koding
karena masih sangat2 dasar
kita buka delphi berlin...........
Loooooaaaaadddddddddddddddddddiiiiiiinnnnnggggggggggggggg
g
^berlin 10.1 starter aka gratisan
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 13 из 34 16/01/2017 23.02
9:00:30 PM
9:01:04 PM
9:01:22 PM
9:01:48 PM
9:02:46 PM
9:03:15 PM
9:04:30 PM
9:04:50 PM
9:05:06 PM
9:05:32 PM
9:05:40 PM
9:05:58 PM
9:06:14 PM
9:06:30 PM
9:06:56 PM
9:07:45 PM
[pre-info]:
burhanudin rabbani al-afghani joined the group
Mas Kofa
dalam contoh ini saya hanya menggunaklan komponen (yg dr
zeos) : TZConnection, TZTable
kita ambil 1 TZConnection
dan 2 TZTable (tabel fakultas, table prodi)
untuk pencarian komponen cara cepat bisa find (ketik) langsung
pada search yang ada di tool palette
setelah pengambilan zconn sama ztable dan sekalian dikasih
nama
lalu tambah kan 2 TDatasouce
1 DBGrid
1 TDBNavigator
2 TDBedit
1 TDBLooukupCombobox
dan 3 label
lalu beri nama sesuai fungsi nya masing
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 14 из 34 16/01/2017 23.02
9:07:58 PM
9:08:25 PM
9:08:32 PM
9:09:03 PM
9:09:25 PM
9:09:37 PM
9:10:57 PM
9:11:25 PM
9:11:50 PM
9:11:58 PM
9:12:12 PM
nah di sini perlu kita perhatikan baik2...
antara label dan edit (TDBEdit1) di gambar, kita perlu
meratakan..sehingga sejajar atau lurus
bagai mana cara cepat nya?
Asep Mulyana joined the group
Mas Kofa
di semua delphi ada tool yang namanya align
tapi secara default tool (bar) tersebut tidak dimuncul kan
sekarang kita coba munculkan
Mr Lee joined the group
Mas Kofa
yaitu dengan cara (lihat gambar diatas) klik sub menu View ->
Toolbars -> Align
lalu akan keluat toolbars align
sekarang kita terapkan pada label dan edit di atas
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 15 из 34 16/01/2017 23.02
9:12:22 PM
9:12:42 PM
9:13:10 PM
9:13:29 PM
9:14:27 PM
9:15:16 PM
9:16:16 PM
9:16:43 PM
9:16:57 PM
9:17:15 PM
9:17:31 PM
9:18:27 PM
9:19:11 PM
cara nya:
1. yang jadi acuan harus kita pilih terlebih dahulu dalam hal ini
label
2. lalu pilih yang lain (satu atau banyak) sehingga aka ter-select
semua
lalu kita klik icon align vertical center yang ada di toolbars
align..dan jreng....rata tengah secara vertical alias lurus
setelah semua komponen sudah kita tambahkan sesuai perintah
di atas td, dan setelah dikasih nama..sekarang kita memberi
nilai2 (property) masing2 komponen
tampilan setelah ditata
property2 yang perlu diisi :
a. TZConnection
saya copas aja *.dfm format nya gak perlu nulisa satu-satu
object conn: TZConnection
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 16 из 34 16/01/2017 23.02
9:19:43 PM
9:19:56 PM
9:20:10 PM
9:20:24 PM
9:21:02 PM
9:21:09 PM
ControlsCodePage = cCP_UTF16
Catalog = ''
Connected = True
HostName = 'localhost'
Port = 3325
Database = 'kul_gram'
User = 'kulgram'
Password = '********'
Protocol = 'mysql'
LibraryLocation = 'D:\materi kulgram\source berlin\kulgram i
zeos\libmysql.dll'
Left = 280
Top = 120
end
lalu untuk tabel1 (tabfakultas)
object tbfakultas: TZTable
Connection = conn
Active = True
TableName = 'fakultas'
Left = 328
Top = 288
end
table 2 (table prodi)
object tbprodi: TZTable
Connection = conn
Active = True
TableName = 'prodi'
Left = 288
Top = 248
end
secara lengkap nya monggo diintip di mari :
http://pastebin.com/UVVp9JqN (http://pastebin.com/UVVp9JqN)
object Form6: TForm6 Left = 0 Top = 0 Caption = 'Zeos
- Mysql' Clien - Pastebin.com (http://pastebin.com
/UVVp9JqN)
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 17 из 34 16/01/2017 23.02
9:21:53 PM
9:22:26 PM
9:23:26 PM
9:23:40 PM
9:24:01 PM
9:24:13 PM
9:24:23 PM
9:25:32 PM
9:26:16 PM
9:27:09 PM
9:27:41 PM
9:29:00 PM
9:29:05 PM
dari komponen2 tersebut saya kira sudah jelas dari property2 nya
di sini coba saya jelas kan componen TDBLookupCombobox yang
menurut saya sedikit tidak simple
yg perlu ditekan kan adalah property Data SOurce,
Data Field
List source
KeyField
dan ListFiedl
Data Source : source sebagai tujuan untuk menyimpan / update
data dari Data Field
List Source : sumber data yang akan dmasukan ke dalam
combobox bersangkutan (items combo)
untuk lebih jelas nya ini saya copas dr file materi :
DataSource, diisi dengan nama control datasource
DataField, diisi dengan nama field yanga kan disimpan
ListSource, diisi dengan nama control datasource yang
berfungsi sebagai sumber data untuk pilihan comboc
KeyField, data yang akan diambil nilainya untuk disimpan
ListField, merupakan fiels yang tampil dalam pilihan
setelah semua sudah disetting....mari kita jalan kan applikasi
setelah dijalan kan...
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 18 из 34 16/01/2017 23.02
9:29:25 PM
9:29:57 PM
9:30:25 PM
9:30:54 PM
9:31:18 PM
9:31:34 PM
9:31:54 PM
9:32:47 PM
9:35:58 PM
app sudah siap di isi, edit, hapus, atau delete melalui DBNavigator
Pak @tigor : cukup sampai sini sesi awal ini....
nanti jika masih memungkikan saya lanjut setelah sesi tanya
jawab
tentang function trigger view dan bulkinsert, insert on duplicate
key update
ngisi materi dengan kondisi badan demam
monggo waktu saya serahkan ke moderator
Tigor Manurung
oke @MasKofa, terimakasih atas materi yang telah disampaikan.
nah bagi temen2 yang mungkin masih merasa bingung, atau
error pada saat mencoba silahkan langsung ditanyakan, sessi
tanya jawab akan diberi waktu 30 menit. pertanyaan tidak harus
selalu dijawab oleh moderator, temen2 yang lain juga bisa
menjawab. mohon menyertakan tagar (hashtag) #tanya
(tg://search_hashtag?hashtag=tanya) pada setiap pertanyaan
#delphidb1_tanyajawab
(tg://search_hashtag?hashtag=delphidb1_tanyajawab)
Ali Andriana
#tanya (tg://search_hashtag?hashtag=tanya) kalau zeos
disimpan di datamodule bisa kah ? Jd bukan di form tertentu...
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 19 из 34 16/01/2017 23.02
9:36:10 PM
9:36:11 PM
9:36:13 PM
9:36:20 PM
9:37:16 PM
9:37:20 PM
9:37:33 PM
9:37:58 PM
9:38:03 PM
9:38:03 PM
9:38:35 PM
9:38:37 PM
9:39:20 PM
9:41:07 PM
9:41:11 PM
Iwan CS
bisa
Mas Kofa
bisa sekali
Iwan CS
dan disarankan begitu
Mas Kofa
[^ooo monggo]
Wak Ilham Safiudin
#tanya (tg://search_hashtag?hashtag=tanya)
apa keistimewaan tztable dibanding tzquery?
Mas Elkhanza (RS Sadewa Yogyakarta)
waduh, malah gak pernah pakai datamodule. biasanya saya
kumpulkan di form utama
Edy Sutrisno
zeos kalo aplikasi dibiarkan lama dia akan los koneksi.. mungkin
ada antisipasi..?
#tanya (tg://search_hashtag?hashtag=tanya)
Erwin Rianto
#Tanya (tg://search_hashtag?hashtag=Tanya) Apa keunggulan
TZTabel di banding TZQuery ? Kok pake TZTable ?
Ali Andriana
#tanya kalau zeos disimpan di datamodule bisa kah ? Jd buka
Bisa, tinggal di use unit di form tertentunya ke DM
Wak Ilham Safiudin
yupe tztable
Tigor Manurung
Erwin Rianto
#Tanya Apa keunggulan TZTabel di banding TZQuery ? Kok p
TZTabel itu langsung menunjuk ke table spesifik, tidak
diperlukan query/sql
keunggulan? lebih mudah digunakan
Mas Kofa
[numpang lewat]berikut source kulgram hari ini :
http://tutorial.maskofa.com/directory.html?dir=/delphi/Kul
Gram/kulgram i zeos (http://tutorial.maskofa.com
/directory.html?dir=/delphi/Kul%20Gram/kulgram%20i%20zeos)
Maskofa
…
…
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 20 из 34 16/01/2017 23.02
9:46:53 PM
9:47:00 PM
9:47:19 PM
9:47:32 PM
9:47:38 PM
9:47:42 PM
9:47:58 PM
9:48:02 PM
9:48:10 PM
9:48:15 PM
9:48:37 PM
9:48:40 PM
9:48:43 PM
9:48:44 PM
9:48:46 PM
9:48:58 PM
ExtractFilePath(paramstr(0)) + 'libmysql.dll';
Arti dri paramstr(0) ?
Edy Sutrisno
disitu akan muncul sisi enak dan tidak enak
Wak Ilham Safiudin
#tanya (tg://search_hashtag?hashtag=tanya)
saat kita melakukan proses insert 100000 data ke tabel, apa
menggunakan tztable.post (http://tztable.post) + looping
disarankan?
Mas Kofa
paramstr(0) = nama file app nya
Wak Ilham Safiudin
Edy Sutrisno
disitu akan muncul sisi enak dan tidak enak
sisi enak dan enaknya kayak gimana?
Mas Kofa
sama juga dengan Application.ExeName
Wak Ilham Safiudin
*gak enaknya
Edy Sutrisno
kalo pake table semakin besar data semakin berat
lodingnya
kalo query bisa di limit
Mas Kofa
Edy Sutrisno
kalo pake table semakin besar data semakin berat
main kan filter om
Edy Sutrisno
select * from pegawai limit 1
open;
append;
...
post;
Erwin Rianto
Ali Andriana
#tanya kl.libmysql.dll apakah harus disimpan di folder project ?
Bsa jg tdk usah d isi. Cukup copy file libmysql ke folder projectny
/ bin di embarcadero
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 22 из 34 16/01/2017 23.02
9:49:32 PM
9:50:06 PM
9:50:11 PM
9:50:14 PM
9:50:57 PM
9:51:11 PM
9:52:42 PM
9:52:53 PM
9:53:07 PM
9:53:12 PM
9:53:19 PM
9:53:21 PM
9:53:26 PM
9:53:41 PM
9:54:07 PM
Wawan Hermanto
#tanya (tg://search_hashtag?hashtag=tanya) kenapa waktu
koneksi ke data mysql di webhosting selalu pelan, adakah
settingannya di server
Dengan standar query / komponen
Mas Kofa
itu kan tergantung bandwidth om
Erwin Rianto
Wawan Hermanto
#tanya kenapa waktu koneksi ke data mysql di webhosting se
Waduh
Wak Ilham Safiudin
Edy Sutrisno
zeos kalo aplikasi dibiarkan lama dia akan los koneksi.. mungkin
mungkin reconnect zeosnya saat lost atau timeout
Wawan Hermanto
Beda soalnya kalau kita pake php
Wak Ilham Safiudin
Wawan Hermanto
#tanya kenapa waktu koneksi ke data mysql di webhosting se
pake metode apa? tunnel/rest api apa direct langsung?
Tigor Manurung
Wawan Hermanto
Beda soalnya kalau kita pake php
beda arstitektur, php->mysql 1 server biasanya
sedangkan app desktop ke hosting beda tempat
butuh koneksi internet
tigorworks.com (http://tigorworks.com)
pascal
Erwin Rianto
#tanya (tg://search_hashtag?hashtag=tanya)
Brrti klw pke TZTable hrus pke navigator trus ya bang u/ olah
datanya. Kn tdk bisa pke perintah Query
Wawan Hermanto
Pake direct
Mas Kofa
Erwin Rianto
#tanya Brrti klw pke TZTable hrus pke navigator trus ya bang
…
…
…
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 23 из 34 16/01/2017 23.02
9:54:08 PM
9:54:19 PM
9:54:20 PM
9:54:24 PM
9:54:25 PM
9:54:55 PM
9:55:26 PM
9:56:00 PM
9:56:07 PM
9:56:57 PM
9:57:03 PM
9:57:22 PM
9:57:36 PM
9:58:03 PM
9:58:23 PM
nggak...di sii saya pakai navigator bisa gak perlu koding
Mas Elkhanza (RS Sadewa Yogyakarta)
Zeos bisa buat tuneling kah?
Mas Kofa
bisa pakai perintah append
delete
update
dll
Ali Andriana
Mas Kofa
sama juga dengan Application.ExeName
Jd libmysql.dll nya di copy jg bersamaan di folder exename nya ?
Wawan Hermanto
Ok siap
Iwan CS
Wak Ilham Safiudin
#tanya saat kita melakukan proses insert 100000 data ke tabel,
fungsi post itu ada tambahan rutin yang mungkin di perlukan
mungkin tidak, tapi kenapa disarankan karena dataset tersebut
ada tambahan fungsi yang dilakukan, sedangkan query insert,
semua menjadi tanggung jawab kita. tentunya ada cost yang
harus diperhitungkan dengan post. Tepatnya berapa banyak
costnya, saya lom pernah uji coba.
Indra Gunawan
#pesan (tg://search_hashtag?hashtag=pesan) kopi 2
Mas Kofa
bisa minta waktu sebentar
untuk melanjutkan sesi ke2
Ali Andriana
Oke..
Mas Kofa
yg lain tahan dulu yah
Tigor Manurung
btw, pada saat tanya jawab..bagi yang mau menjawab tolong
quote pertanyaan yang mau dijawab ya
Indra Gunawan
Wak Ilham Safiudin
#tanya saat kita melakukan proses insert 100000 data ke tabel,
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 24 из 34 16/01/2017 23.02
9:58:26 PM
9:58:41 PM
9:59:12 PM
9:59:42 PM
10:00:05 PM
10:00:22 PM
10:00:49 PM
10:01:05 PM
10:01:20 PM
10:01:24 PM
10:01:33 PM
10:01:50 PM
10:02:03 PM
10:02:26 PM
10:02:40 PM
10:03:02 PM
10:04:02 PM
10:04:21 PM
10:04:51 PM
10:05:42 PM
10:05:57 PM
10:06:13 PM
10:06:18 PM
10:06:19 PM
Tidak disarankan karena setiap operasi post = satu statement.
Utk bulk rekomendasi sy generate insert script kemudian execute sebagai
multistatements, jangan lupa tambahkan BEGIN TRANS dan END TRANS
Mas Kofa
sesi kedua ada 2 materi singkat yg ingin saya sampaikan
1. Bulk Insert
di beberapa client..saya sering mereplace ssitem (developer)
lama dengan sistem yg baru yang saya bikin
ada satu client punya app..waktu insert data dia bisa sampai
hampir satu jam bahkan bisa lebih
biasa nya pakai app saya cuman hitungan 1 - 2 -3 menit
rahasia nya adalah indert bulk
kadang kita punya data ribuan (misal di grid)...kita akan
memsukkan ke database
umumnya yg kita lakukan adalah meloopin sejumlah rowcount
kita melakukan insert sebanyak rowcount...
ini sangat bahaya
bisa menjadi 'leher botol'
insert yang pertama belum selesai..sudah insert selanjutnya...
makin lanjut makin berat...karena memori terus bertambah
saya sering insert ribuan rows cuma itungan detik
ok, kita ke inti
kita bisa insert data langsung secara bersamaan denga format
sebagai berikut
insert into tabel1 vaues(valuea1, valuea2, value3), (valuea1,
valuea2, value3),(valuea1, valuea2, value3),(valuea1, valuea2,
value3),....
itu tidak ada batasan..batasan ada pada konfigurasi mysql
spt setingan max_allowed_packet=4M (di my.ini) dll
atau juga bisa insert into tabel (field1, field2, field3, ) values
...sama spt di atas
dia hanya melakukan sekali query
nah yg jadi pertanyaan..itu kan dinamis query nya?
gmn cara bikinnya
?
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 25 из 34 16/01/2017 23.02
10:06:33 PM
10:07:06 PM
10:08:33 PM
10:08:58 PM
10:09:00 PM
10:09:29 PM
10:09:35 PM
10:09:55 PM
10:10:06 PM
10:10:27 PM
10:10:36 PM
10:10:46 PM
10:10:58 PM
10:11:12 PM
10:11:17 PM
10:11:24 PM
10:11:40 PM
10:11:52 PM
10:12:05 PM
10:12:25 PM
10:12:28 PM
10:12:37 PM
10:12:57 PM
10:13:11 PM
10:14:12 PM
10:14:30 PM
gampang..bisa kita generate misal dr grid nya :
sss := '';
for iii := 1 to grid.rowcount - 1 do
if sss <> '' then
sss := sss + ', '; //separator antar row;
sss := sss + format('("%s", "%s)",...., [nil1, nil2..]))
dr kodi di atas akan menghasil kan
(valuea1, valuea2, value3), (valuea1, valuea2, value3),(valuea1,
valuea2, value3),(valuea1, valuea2,
lalu dibawah nya tinggal kita tambah kan
sss := 'insert into table values'+sss;
spt itu kawan2
Tigor Manurung
mantap
Mas Kofa
lalu yg ke dua....
bagaimana kita mengecek apakah suatud ata sudah ada apa
belum?
*suatu data
biasa nya akan kita select dulu datanya
jika ketemu kita pakai insert
^koreksi
jika ketemu update
jika tidak ketemu inset
kita melakukan 3 langkah....
ada cara praktis..kita cukup lakukan 1 langkah
misal ambil contoh data table fakultas td
baris tiga :
id : 3
nama fakultas : Teknik
nah kita ingin merubah Teknik menjadi 'Teknik Terapan'
bagaimana cara nya....spt ini
insert into fakultas values(3, 'Teknik Terapan') on duplicate keu
update fakultas_name=values(fakultas_name)
cara di atas bisa diterapkan juga untuk row ribuan
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 26 из 34 16/01/2017 23.02
10:14:43 PM
10:15:07 PM
10:15:38 PM
10:15:48 PM
10:15:58 PM
10:16:10 PM
10:16:31 PM
10:16:39 PM
10:16:52 PM
10:16:54 PM
10:16:56 PM
10:16:58 PM
10:17:05 PM
10:17:16 PM
10:17:22 PM
10:17:43 PM
10:17:43 PM
10:17:59 PM
tinggal ambahkan values nya
insert into fakultas values(1, 'kedokdokteran'), (3, 'Teknik
Terapan') on duplicate keu update
fakultas_name=values(fakultas_name)
coba kita pikir...kalo kita harus update ribuan data dengan
update 1-1 makan berapa memory dan berapa lama
dengan cara di atas cukup 1 query...
sekian Pak @tigor
monggo waktu saya serahkan ke moderator
Tigor Manurung
oke terimakasih @MasKofa atas materi tambahannya
silahkan yang mau lanjut bertanya
Mas Kofa
aku pamit dulu yah...kayak nya udah ndak kuta
*kuat
Tigor Manurung
Mas Kofa
insert into fakultas values(1, 'kedokdokteran'), (3, 'Teknik Ter
ini untuk database apa saja mas yang support? sudah dicoba di
db apa saja?
Mas Kofa
Selamat malam....
Assalammu'alaikum
Tigor Manurung
ini untuk database apa saja mas yang support? sudah dicoba
baru dicoba di mysql
Edy Sutrisno
waalaikumsalam
Iwan CS
Mas Kofa
baru dicoba di mysql
setauku cuman di mysql yang bisa gitu
Dani Amarullah
Waalaikumsalam, terima kasih mbah
Wawan Hermanto
Firebird?
…
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 27 из 34 16/01/2017 23.02
10:18:02 PM
10:18:09 PM
10:18:09 PM
(https://github.com/t1g0r/Tutorial-Pascal
/tree/master/BulkInsert)
10:19:37 PM
10:20:50 PM
10:24:03 PM
10:28:10 PM
10:28:23 PM
10:28:58 PM
10:30:51 PM
Iwan CS
Iwan CS
setauku cuman di mysql yang bisa gitu
setidaknya di FB dan SQL Server gak bisa
Tigor Manurung
untuk bulkinsert ini saya pernah buat library yang bisa
diimplementasikan di semua grid dengan cukup custom simple
https://github.com/t1g0r/Tutorial-Pascal/tree/master/BulkInsert
(https://github.com/t1g0r/Tutorial-Pascal/tree/master
/BulkInsert)
GitHub
t1g0r/Tutorial-Pascal (https://github.com/t1g0r
/Tutorial-Pascal/tree/master/BulkInsert)
Tutorial-Pascal - Tutorial Pascal/Delphi
Wawan Hermanto
Bulkinsert di fb juga ga signifikan
Mas Elkhanza (RS Sadewa Yogyakarta)
kalau dibandingkan dengan diatur auto commitnya lebih
cepetan mana juragan?
Tigor Manurung
Mas Elkhanza (RS Sadewa Yogyakarta)
kalau dibandingkan dengan diatur auto commitnya lebih cep
dibandingkan dengan apa mas?
pada intinya, @MasKofa mengajarkan untuk membuat query 1x
kirim dan bersifat bulk (massal). jadi selanjutnya akan diproses
oleh server
kalo dengan looping per record, pada saat post itu memerlukan
waktu
insert into blabla;
insert into blabla;
lebih lambat dibanding
insert into values(),(),()
silahkan bagi yang mau bertanya, masih dibuka sampai 5 menit
lagi. setelah itu tetap tanya2 gpp, tp bukan lagi kewajiban
moderator / pemateri utk menjawab
Iwan CS
…
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 28 из 34 16/01/2017 23.02
10:31:31 PM
10:32:08 PM
10:32:10 PM
10:32:34 PM
10:32:51 PM
10:33:17 PM
10:33:45 PM
10:34:10 PM
10:34:38 PM
10:35:00 PM
10:35:36 PM
10:35:43 PM
10:36:34 PM
10:37:26 PM
10:37:49 PM
kalo di fb kan gak ada format value (), value() ... nah itu perlu
di insert per baris dunk yah
Tigor Manurung
wah saya kbtulan tidak begitu tahu fb
Riki Kurniawan
Mas Kofa
coba kita pikir...kalo kita harus update ribuan data dengan u
Lagi jelasin insert atau update? Sorry baru baca2...
Tigor Manurung
Riki Kurniawan
Lagi jelasin insert atau update? Sorry baru baca2...
bulkinsert
Riki Kurniawan
Soalnya kata2nya "update ribuan"
Tigor Manurung
saya biasanya utk kasus aplikasi realtime yang memerlukan
insert data yang cepat, saya buat 1 aplikasi service dimana
khusus memproses query2 insert / update yang masuk
service itu memiliki queue dimana dihandle oleh puluhan /
ratusan worker (thread)
dan saya membuat komponen (delphi) untuk berkomunikasi
dengan service tsb
Riki Kurniawan
Tigor Manurung
saya biasanya utk kasus aplikasi realtime yang memerlukan i
Service windows?
Tigor Manurung
aplikasi service, blm tentu berbentuk service os
aplikasi pembantu hihi
Riki Kurniawan
Oh ok... Mantabs...
Tigor Manurung
oke temen2, sesi tanya jawab sudah berakhir ya. setelah ini
silahkan apabila masih ada pertanyaan2 disampaikan saja, nanti
temen2 disini akan bantu menjawab
maksih @MasKofa dan temen2 yang sudah mengikuti telegram
ini, semoga ilmunya berguna. salam sukses buat kita semua
…
…
Telegram Web https://web.telegram.org/#/im?p=@PascalID
Стр. 29 из 34 16/01/2017 23.02