Kulgram I Pemrograman Delphi I: Koneksi database dengan Zeos https://t.me/PascalI D Dosen: Mas Kofa
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
Mas Kofa
7:47:36 PM
monggo diabsen dulu
Acim Kompor
7:48:13 PM
hadir
Mas Kofa
7:53:07 PM
cuman 1?
Didi Kurniadi
7:55:02 PM
Hadir om
Tigor Manurung
7:55:46 PM
Halo selamat malam temen2
7:55:48 PM
terimakasih bagi yang sudah bergabung disini. Sebentar lagi kita
7:56:23 PM
akan mengikuti kulgram yang akan dibawakan oleh @maskofa dengan topik "Pemrograman database delphi dengan zeos".
Sebelum itu, kulgram ini ada beberapa peraturan yang harus
7:58:00 PM
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
7:58:39 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
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
7:59:12 PM
Mas Kofa
7:59:53 PM
Assalammu'alaikum wr wb...
Selamat malam man-teman....
8:00:05 PM
sebelum ku mulai penyampaian materi..sebelumnya saya minta
8:00:55 PM
maaf...jika nanti di dalam penyampaian kurang optimal dan kurang fit serta kurang baik....
Patlisan
8:01:00 PM
Hadir
Mas Kofa
8:01:28 PM
dikarenakan saya meriang mendadak..sehabis mandi...gerges dan pusing
ok. kuliah kita mulai
8:01:35 PM
metode kuliah kali ini sebenarnya menggunakan metode
8:02:37 PM
workshop....
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
di mana peserta mengikuti langkah2 apa yg saya katakan...
8:03:01 PM
di mana dengan asumsi para peserta telah siap dengan laptop
8:03:31 PM
dan app pendukung, antara lain :
1. Delphi (saya pakai Berlin 10.1 starter)
8:03:58 PM
yg bisa di download di https://www.embarcadero.com/products
8:04:15 PM
/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. Crossplatform solutions for development and management.
2. componen Zeos (saya pakai versi 1.7 yang di mana dukungan
8:05:35 PM
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
8:05:38 PM
http://zeoslib.sourceforge.net/viewtopic.php?f=40&t=3795&
8:05:48 PM
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
8:06:41 PM
download di :
Mysql : http://dev.mysql.com/downloads/ (http://dev.mysql.com
8:06:41 PM
/downloads/) Mariadb : https://mariadb.org/download/ (https://mariadb.org /download/)
yang ke - 4
8:08:04 PM
4. mysql manager, bisa pakai heidi, mysql workbench, dll, atau
8:08:50 PM
pakai sqlyog (yang saya pakai versi comminity)
sqlyog bisa di download di :
8:08:58 PM
SQLyog : https://github.com/webyog/sqlyog-community
8:09:13 PM
/wiki/Downloads (https://github.com/webyog/sqlyog-community /wiki/Downloads) GitHub
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
(https://github.com/webyog/sqlyog-community
/wiki/Downloads) webyog/sqlyog-community (https://github.com/webyog/sqlyogcommunity/wiki/Downloads) Contribute to sqlyog-community development by creating an account on GitHub.
saya menemukan masalah saat install zeos di berllin, yakni error
8:10:15 PM
'rtl not found'
namun bisa di atasi dengan tutorial berikut :
8:10:51 PM
Permasalahan sekitar install Zeos
8:11:01 PM
Rtl not found : https://ibeblog.com/2010/09/20/delphi-requiredpackage-rtl-not-found/ (https://ibeblog.com/2010/09/20/delphirequired-package-rtl-not-found/)
selanjutnya kita langsung mulai ke praktek :
8:12:07 PM
I. install mysql....
8:12:21 PM
sesi ini kita lewati..karena dengan asumsi semua sudah siap
8:12:45 PM
mysqlserver
saat kita instalasi mysql..maka sistem mysql akan memberikan
8:14:39 PM
file library (libmysql) yang berada pada folder C:\Program Files\MySQL\MySQL Server 5.6\lib
Muchana Evolution joined the group
8:15:07 PM
Mas Kofa
nah library ini nanti kita butuhkan saat development
8:15:27 PM
Muchana Evolution
ME Izin gabung sesepu
8:15:41 PM
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
8:16:16 PM
bisa dipakai di zeos nantinya..
karena zeos tidak support library x64
8:16:30 PM
[^berdasar ujicob saya]
8:17:00 PM
Lazuardi Nugraha joined the group
Edy Sutrisno
ijin interupsi
8:17:21 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
Dio Affriza
8:17:30 PM
隆 司
#Pengumuman (tg://search_hashtag?hashtag=Pengumuman) Bagi yang baru gabung dan terlewat pembahasannya, nanti akan ada log kulgram.
8:17:38 PM
Edy Sutrisno
x64 maka libmysqlnya juga versi 64
8:17:43 PM
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)
8:17:54 PM
Edy Sutrisno
jadi bisa jalan juga zeosnya
Ikhsan Falakh joined the group
8:19:21 PM
Mas Kofa
biasa nya, sebelum saya memulai menggunakan mysql server, saya perlu melakukan konfigurasi autoinc_lock_mode
apa itu fungsi nya??
8:19:33 PM
begini penjelasannya :
8:19:53 PM
rata2 design (structur database) hampir semuanya menggunaka
8:20:38 PM
PK (promary Key) berupa AI (auto increament)
Dio Affriza
隆 司
edited 8:20:47 PM
Edy Sutrisno
ijin interupsi Interupsi tidak diizinkan selama kulgram berlangsung. Silakan menambahkan pada sesi tanya-jawab.
Mas Kofa
8:21:41 PM
nah hal saat saat kita menambah kan data (insert), ada kala nya PK nya sudah ada sebelumnya....
sehingga terjadi error....
8:21:50 PM
namun error ini akan meng-increament AI nya....
8:22:09 PM
jadi diakibatkan akan terjadi pelompatan AI
8:22:23 PM
simulasi nya spt ini
8:22:29 PM
insert into test values(1, 'saya');
8:22:44 PM
pada awal table kosong
8:22:55 PM
maka akan terisi
8:23:01 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
namun kalo kita eksekusi lagi..maka akan error...duplicate
8:23:22 PM
primary key
di dlm sistem (mysql) otomatis AI nya nambah...
8:23:44 PM
jadi AI skrg = 1;
8:23:52 PM
*maaf koreksi = 2;
8:24:01 PM
lalu kita eksekusi lagi 6 kali...
8:24:16 PM
maka akan error 6 kali pula
8:24:22 PM
nah skrg AI = menjadi 8 (kalo gak salah hitung)
8:24:43 PM
lalu kita isi lagi dengan :
8:24:59 PM
INSERT INTO test VALUES(NULL, 'saya');
8:25:11 PM
di mana PK nya kit kasih null (karena AI)...
8:25:27 PM
nah yg akan masuk datanya bukan 2....tapi 8....
8:25:43 PM
nah itu tadi simulasi tentang : autoinc_lock_mode
8:26:00 PM
knp harus di lock??
8:26:24 PM
nanti tujuannya adalah untuk insert data secara serempak atau
8:27:02 PM
istilah betawi nya : 'insert bulk'
coba bayangkan..kita insert bulk 1000rows sekaligus....lalu error
8:27:28 PM
maka sistem akan mengalami kehilangan AI sebanyak 1000
8:27:50 PM
untuk satu kali kesalahan.
skrg bagaimana cara membuat autoinc_lock_mode
8:28:28 PM
a. kita buka my.ini
8:28:47 PM
bagaimana cara membuka myini dengan cepat,
8:28:58 PM
karena di windows terbaru : my.ini disembunyikan di folder
8:29:28 PM
/ProgramData/
yg mana folder ini dihidden oleh system
8:29:38 PM
cara buka my.ini, kita coba masuk lewat cmd
8:30:03 PM
8:30:45 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
lalu kita klik run as admin
8:31:05 PM
lalu kita tuliskan skrip service.msc
8:31:23 PM
8:32:02 PM
sehingga muncul windows service
8:32:13 PM
lalu kita cari service mysql..lalu kita double klik
8:32:29 PM
Yudhi Heriyadi joined the group
Mas Kofa
8:33:06 PM
dan lihat textbox : Path To Executeblae
di sana ada alamat file my.ini
8:33:20 PM
lalu tinggal kita copy paste ke windows explorer
8:33:33 PM
sehingga terbuka pada text editor default
8:33:50 PM
8:34:33 PM
8:35:10 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
lalu pada bagian innodb section kita tambahin baris :
8:35:51 PM
innodb_autoinc_lock_mode=0
di gambar di atas terlihat pada baris 246
8:36:18 PM
lalu restart mysq service
8:36:31 PM
dan siap..di gunakan
8:36:42 PM
[info] : untuk ysql versi terbaru (saya coba di versi
8:38:03 PM
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
8:38:18 PM
Achmad Taufik joined the group
Mas Kofa
8:39:06 PM
mari kita melangkah ke development
kita siapkan dulu database developmen
8:39:28 PM
mariiiiiiiiiiiiiiiiiiiiiiiii kita buka mysql manager (saya pakai sqlyog)
8:39:48 PM
8:40:19 PM
tampilan awal sqlyog
8:40:26 PM
8:41:36 PM
lalu kita klik tombo create new connection..lalu kita pilih dari konesi yang sudah ada atau membuat koneksi baru...
8:42:08 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
yg selain pakai sqlyog monggo menyesuaiakan
8:42:26 PM
lalu kita membuat database development
8:43:15 PM
8:43:18 PM
misal nama database nya kulgram
8:43:28 PM
8:44:58 PM
untuk development lebih baik kita membuat user baru dengan
8:46:21 PM
hak akses terbatas..misal DELE INSERT UPDATE SELECT,
disesuikan dengan kebutuh
8:46:28 PM
[^auto post]
8:47:00 PM
untuk itu kita membuat user development misal dengan nama
8:47:32 PM
kul_gram
8:48:34 PM
^add user
8:48:40 PM
8:49:54 PM
atur hak akses.....
8:50:02 PM
skrg kita saat nya membuat mendesain database....
8:50:35 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
*membuat desain
8:50:43 PM
karena materi dan kemampuan ku juga pada kulgram ini tentang
8:51:19 PM
dasar2..maka akan saya ambil contoh project super simple
sebagai contoh kasus saya ambil pengolahan data fakultas dan
8:52:29 PM
prodi di sini ada dua table yakni table : fakultas dan table prodi
8:53:15 PM
begini isi tale fakultas
8:53:32 PM
8:54:00 PM
berikut DDL Information nya :
8:54:44 PM
http://pastebin.com/DgQw97Kf (http://pastebin.com/DgQw97Kf)
8:55:03 PM
CREATE TABLE `fakultas` ( `fakultas_id` int(11) NOT NULL AUTO_INCREMENT, ` - Pastebin.com (http://pastebin.com/DgQw97Kf)
Lalu untuk table prodi nya adalah :
8:55:37 PM
8:56:04 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
berikut DDL informationnya :
8:56:54 PM
http://pastebin.com/zm51Zpnc (http://pastebin.com/zm51Zpnc)
8:56:55 PM
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...
8:57:37 PM
bagaimana cara mengisi data prodi..dengan menggunakan
8:58:14 PM
TDBLookupCombobox sebagai sumber fakultas nya
di sini saya pragakan tanpa koding
8:58:31 PM
karena masih sangat2 dasar
8:58:40 PM
kita buka delphi berlin...........
8:59:11 PM
Loooooaaaaadddddddddddddddddddiiiiiiinnnnnggggggggggggggg
8:59:19 PM
g
8:59:54 PM
^berlin 10.1 starter aka gratisan
9:00:03 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
[pre-info]:
9:00:30 PM
burhanudin rabbani al-afghani joined the group
Mas Kofa
9:01:04 PM
dalam contoh ini saya hanya menggunaklan komponen (yg dr zeos) : TZConnection, TZTable
kita ambil 1 TZConnection
9:01:22 PM
dan 2 TZTable (tabel fakultas, table prodi)
9:01:48 PM
9:02:46 PM
untuk pencarian komponen cara cepat bisa find (ketik) langsung
9:03:15 PM
pada search yang ada di tool palette
9:04:30 PM
setelah pengambilan zconn sama ztable dan sekalian dikasih
9:04:50 PM
nama lalu tambah kan 2 TDatasouce
9:05:06 PM
1 DBGrid
9:05:32 PM
1 TDBNavigator
9:05:40 PM
2 TDBedit
9:05:58 PM
1 TDBLooukupCombobox
9:06:14 PM
dan 3 label
9:06:30 PM
lalu beri nama sesuai fungsi nya masing
9:06:56 PM
9:07:45 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
nah di sini perlu kita perhatikan baik2...
9:07:58 PM
antara label dan edit (TDBEdit1) di gambar, kita perlu
9:08:25 PM
meratakan..sehingga sejajar atau lurus
bagai mana cara cepat nya?
9:08:32 PM
Asep Mulyana joined the group
9:09:03 PM
Mas Kofa
di semua delphi ada tool yang namanya align
tapi secara default tool (bar) tersebut tidak dimuncul kan
9:09:25 PM
sekarang kita coba munculkan
9:09:37 PM
Mr Lee joined the group
Mas Kofa
9:10:57 PM
yaitu dengan cara (lihat gambar diatas) klik sub menu View ->
9:11:25 PM
Toolbars -> Align
9:11:50 PM
lalu akan keluat toolbars align
9:11:58 PM
sekarang kita terapkan pada label dan edit di atas
9:12:12 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
cara nya:
9:12:22 PM
1. yang jadi acuan harus kita pilih terlebih dahulu dalam hal ini
9:12:42 PM
label
2. lalu pilih yang lain (satu atau banyak) sehingga aka ter-select
9:13:10 PM
semua
9:13:29 PM
lalu kita klik icon align vertical center yang ada di toolbars
9:14:27 PM
align..dan jreng....rata tengah secara vertical alias lurus
9:15:16 PM
setelah semua komponen sudah kita tambahkan sesuai perintah
9:16:16 PM
di atas td, dan setelah dikasih nama..sekarang kita memberi nilai2 (property) masing2 komponen
9:16:43 PM
tampilan setelah ditata
9:16:57 PM
property2 yang perlu diisi :
9:17:15 PM
a. TZConnection
9:17:31 PM
saya copas aja *.dfm format nya gak perlu nulisa satu-satu
9:18:27 PM
object conn: TZConnection
9:19:11 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
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)
9:19:43 PM
object tbfakultas: TZTable
9:19:56 PM
Connection = conn Active = True TableName = 'fakultas' Left = 328 Top = 288 end
table 2 (table prodi)
9:20:10 PM
object tbprodi: TZTable
9:20:24 PM
Connection = conn Active = True TableName = 'prodi' Left = 288 Top = 248 end
secara lengkap nya monggo diintip di mari :
9:21:02 PM
http://pastebin.com/UVVp9JqN (http://pastebin.com/UVVp9JqN)
9:21:09 PM
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
dari komponen2 tersebut saya kira sudah jelas dari property2 nya
9:21:53 PM
di sini coba saya jelas kan componen TDBLookupCombobox yang
9:22:26 PM
menurut saya sedikit tidak simple
yg perlu ditekan kan adalah property Data SOurce,
9:23:26 PM
Data Field
9:23:40 PM
List source
9:24:01 PM
KeyField
9:24:13 PM
dan ListFiedl
9:24:23 PM
Data Source : source sebagai tujuan untuk menyimpan / update
9:25:32 PM
data dari Data Field
List Source : sumber data yang akan dmasukan ke dalam
9:26:16 PM
combobox bersangkutan (items combo)
untuk lebih jelas nya ini saya copas dr file materi :
9:27:09 PM
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
9:27:41 PM
setelah dijalan kan...
9:29:00 PM
9:29:05 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
app sudah siap di isi, edit, hapus, atau delete melalui DBNavigator
9:29:25 PM
Pak @tigor : cukup sampai sini sesi awal ini....
9:29:57 PM
nanti jika masih memungkikan saya lanjut setelah sesi tanya
9:30:25 PM
jawab
tentang function trigger view dan bulkinsert, insert on duplicate
9:30:54 PM
key update
9:31:18 PM
ngisi materi dengan kondisi badan demam
9:31:34 PM
monggo waktu saya serahkan ke moderator
9:31:54 PM
Tigor Manurung
9:32:47 PM
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...
9:35:58 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
9:36:10 PM
Iwan CS
bisa
9:36:11 PM
Mas Kofa
bisa sekali
9:36:13 PM
Iwan CS
dan disarankan begitu
9:36:20 PM
Mas Kofa
[^ooo monggo]
9:37:16 PM
Wak Ilham Safiudin
#tanya (tg://search_hashtag?hashtag=tanya) apa keistimewaan tztable dibanding tzquery?
9:37:20 PM
Mas Elkhanza (RS Sadewa Yogyakarta)
waduh, malah gak pernah pakai datamodule. biasanya saya kumpulkan di form utama
9:37:33 PM
Edy Sutrisno
zeos kalo aplikasi dibiarkan lama dia akan los koneksi.. mungkin ada antisipasi..?
#tanya (tg://search_hashtag?hashtag=tanya)
9:37:58 PM
Erwin Rianto
9:38:03 PM
#Tanya (tg://search_hashtag?hashtag=Tanya) Apa keunggulan TZTabel di banding TZQuery ? Kok pake TZTable ?
9:38:03 PM
Ali Andriana
#tanya kalau zeos disimpan di datamodule bisa kah ? Jd buka
…
Bisa, tinggal di use unit di form tertentunya ke DM
9:38:35 PM
Wak Ilham Safiudin
yupe tztable
9:38:37 PM
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
9:39:20 PM
Mas Kofa
9:41:07 PM
[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
9:41:11 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
ExtractFilePath(paramstr(0)) + 'libmysql.dll'; Arti dri paramstr(0) ?
Edy Sutrisno
9:46:53 PM
disitu akan muncul sisi enak dan tidak enak
Wak Ilham Safiudin
9:47:00 PM
#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
9:47:19 PM
paramstr(0) = nama file app nya
Wak Ilham Safiudin
9:47:32 PM
Edy Sutrisno
disitu akan muncul sisi enak dan tidak enak sisi enak dan enaknya kayak gimana?
Mas Kofa
9:47:38 PM
sama juga dengan Application.ExeName
Wak Ilham Safiudin
9:47:42 PM
*gak enaknya
Edy Sutrisno
9:47:58 PM
kalo pake table semakin besar data semakin berat
lodingnya
9:48:02 PM
kalo query bisa di limit
9:48:10 PM
Mas Kofa
9:48:15 PM
Edy Sutrisno
kalo pake table semakin besar data semakin berat main kan filter om
Edy Sutrisno
9:48:37 PM
select * from pegawai limit 1
open;
9:48:40 PM
append;
9:48:43 PM
...
9:48:44 PM
post;
9:48:46 PM
Erwin Rianto
9:48:58 PM
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
9:49:32 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
9:50:06 PM
Mas Kofa
9:50:11 PM
itu kan tergantung bandwidth om
9:50:14 PM
Erwin Rianto Wawan Hermanto
#tanya kenapa waktu koneksi ke data mysql di webhosting se
…
Waduh
9:50:57 PM
Wak Ilham Safiudin Edy Sutrisno
zeos kalo aplikasi dibiarkan lama dia akan los koneksi.. mungkin mungkin reconnect zeosnya saat lost atau timeout
9:51:11 PM
Wawan Hermanto
Beda soalnya kalau kita pake php
9:52:42 PM
Wak Ilham Safiudin Wawan Hermanto
#tanya kenapa waktu koneksi ke data mysql di webhosting se
…
pake metode apa? tunnel/rest api apa direct langsung?
9:52:53 PM
Tigor Manurung Wawan Hermanto
Beda soalnya kalau kita pake php beda arstitektur, php->mysql 1 server biasanya
sedangkan app desktop ke hosting beda tempat
9:53:07 PM
butuh koneksi internet
9:53:12 PM
tigorworks.com (http://tigorworks.com)
9:53:19 PM
pascal
9:53:21 PM
Erwin Rianto
9:53:26 PM
#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
9:53:41 PM
Wawan Hermanto
Pake direct
9:54:07 PM
Mas Kofa Erwin Rianto
#tanya Brrti klw pke TZTable hrus pke navigator trus ya bang
…
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
nggak...di sii saya pakai navigator bisa gak perlu koding
Mas Elkhanza (RS Sadewa Yogyakarta)
9:54:08 PM
Zeos bisa buat tuneling kah?
Mas Kofa
9:54:19 PM
bisa pakai perintah append
delete
9:54:20 PM
update
9:54:24 PM
dll
9:54:25 PM
Ali Andriana
9:54:55 PM
Mas Kofa
sama juga dengan Application.ExeName Jd libmysql.dll nya di copy jg bersamaan di folder exename nya ?
Wawan Hermanto
9:55:26 PM
Ok siap
Iwan CS
9:56:00 PM
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
9:56:07 PM
#pesan (tg://search_hashtag?hashtag=pesan) kopi 2
Mas Kofa
9:56:57 PM
bisa minta waktu sebentar
untuk melanjutkan sesi ke2
9:57:03 PM
Ali Andriana
9:57:22 PM
Oke..
Mas Kofa
9:57:36 PM
yg lain tahan dulu yah
Tigor Manurung
9:58:03 PM
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,
9:58:23 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
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
9:58:26 PM
sesi kedua ada 2 materi singkat yg ingin saya sampaikan
1. Bulk Insert
9:58:41 PM
di beberapa client..saya sering mereplace ssitem (developer)
9:59:12 PM
lama dengan sistem yg baru yang saya bikin
ada satu client punya app..waktu insert data dia bisa sampai
9:59:42 PM
hampir satu jam bahkan bisa lebih
biasa nya pakai app saya cuman hitungan 1 - 2 -3 menit
10:00:05 PM
rahasia nya adalah indert bulk
10:00:22 PM
kadang kita punya data ribuan (misal di grid)...kita akan
10:00:49 PM
memsukkan ke database
umumnya yg kita lakukan adalah meloopin sejumlah rowcount
10:01:05 PM
kita melakukan insert sebanyak rowcount...
10:01:20 PM
ini sangat bahaya
10:01:24 PM
bisa menjadi 'leher botol'
10:01:33 PM
insert yang pertama belum selesai..sudah insert selanjutnya...
10:01:50 PM
makin lanjut makin berat...karena memori terus bertambah
10:02:03 PM
saya sering insert ribuan rows cuma itungan detik
10:02:26 PM
ok, kita ke inti
10:02:40 PM
kita bisa insert data langsung secara bersamaan denga format
10:03:02 PM
sebagai berikut
insert into tabel1 vaues(valuea1, valuea2, value3), (valuea1,
10:04:02 PM
valuea2, value3),(valuea1, valuea2, value3),(valuea1, valuea2, value3),....
itu tidak ada batasan..batasan ada pada konfigurasi mysql
10:04:21 PM
spt setingan max_allowed_packet=4M (di my.ini) dll
10:04:51 PM
atau juga bisa insert into tabel (field1, field2, field3, ) values
10:05:42 PM
...sama spt di atas
dia hanya melakukan sekali query
10:05:57 PM
nah yg jadi pertanyaan..itu kan dinamis query nya?
10:06:13 PM
gmn cara bikinnya
10:06:18 PM
?
10:06:19 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
gampang..bisa kita generate misal dr grid nya :
10:06:33 PM
sss := '';
10:07:06 PM
for iii := 1 to grid.rowcount - 1 do
if sss <> '' then
10:08:33 PM
sss := sss + ', '; //separator antar row; sss := sss + format('("%s", "%s)",...., [nil1, nil2..]))
dr kodi di atas akan menghasil kan
10:08:58 PM
(valuea1, valuea2, value3), (valuea1, valuea2, value3),(valuea1,
10:09:00 PM
valuea2, value3),(valuea1, valuea2,
lalu dibawah nya tinggal kita tambah kan
10:09:29 PM
sss := 'insert into table values'+sss;
spt itu kawan2
10:09:35 PM
Tigor Manurung
10:09:55 PM
mantap
Mas Kofa
10:10:06 PM
lalu yg ke dua....
bagaimana kita mengecek apakah suatud ata sudah ada apa
10:10:27 PM
belum? *suatu data
10:10:36 PM
biasa nya akan kita select dulu datanya
10:10:46 PM
jika ketemu kita pakai insert
10:10:58 PM
^koreksi
10:11:12 PM
jika ketemu update
10:11:17 PM
jika tidak ketemu inset
10:11:24 PM
kita melakukan 3 langkah....
10:11:40 PM
ada cara praktis..kita cukup lakukan 1 langkah
10:11:52 PM
misal ambil contoh data table fakultas td
10:12:05 PM
baris tiga :
10:12:25 PM
id : 3
10:12:28 PM
nama fakultas : Teknik
10:12:37 PM
nah kita ingin merubah Teknik menjadi 'Teknik Terapan'
10:12:57 PM
bagaimana cara nya....spt ini
10:13:11 PM
insert into fakultas values(3, 'Teknik Terapan') on duplicate keu
10:14:12 PM
update fakultas_name=values(fakultas_name)
cara di atas bisa diterapkan juga untuk row ribuan
10:14:30 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
tinggal ambahkan values nya
10:14:43 PM
insert into fakultas values(1, 'kedokdokteran'), (3, 'Teknik
10:15:07 PM
Terapan') on duplicate keu update fakultas_name=values(fakultas_name)
coba kita pikir...kalo kita harus update ribuan data dengan
10:15:38 PM
update 1-1 makan berapa memory dan berapa lama
dengan cara di atas cukup 1 query...
10:15:48 PM
sekian Pak @tigor
10:15:58 PM
monggo waktu saya serahkan ke moderator
10:16:10 PM
Tigor Manurung
10:16:31 PM
oke terimakasih @MasKofa atas materi tambahannya
silahkan yang mau lanjut bertanya
10:16:39 PM
Mas Kofa
10:16:52 PM
aku pamit dulu yah...kayak nya udah ndak kuta
*kuat
10:16:54 PM
Tigor Manurung
10:16:56 PM
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?
10:16:58 PM
Mas Kofa
Selamat malam....
Assalammu'alaikum
10:17:05 PM
Tigor Manurung
10:17:16 PM
ini untuk database apa saja mas yang support? sudah dicoba
…
baru dicoba di mysql
Edy Sutrisno
10:17:22 PM
waalaikumsalam
Iwan CS
10:17:43 PM
Mas Kofa
baru dicoba di mysql setauku cuman di mysql yang bisa gitu
Dani Amarullah
10:17:43 PM
Waalaikumsalam, terima kasih mbah
Wawan Hermanto
Firebird?
10:17:59 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
10:18:02 PM
Iwan CS Iwan CS
setauku cuman di mysql yang bisa gitu setidaknya di FB dan SQL Server gak bisa
10:18:09 PM
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
10:18:09 PM
(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
10:19:37 PM
Wawan Hermanto
Bulkinsert di fb juga ga signifikan
10:20:50 PM
Mas Elkhanza (RS Sadewa Yogyakarta)
kalau dibandingkan dengan diatur auto commitnya lebih cepetan mana juragan?
10:24:03 PM
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
10:28:10 PM
kirim dan bersifat bulk (massal). jadi selanjutnya akan diproses oleh server
kalo dengan looping per record, pada saat post itu memerlukan
10:28:23 PM
waktu
insert into blabla;
10:28:58 PM
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
10:30:51 PM
Telegram Web
https://web.telegram.org/#/im?p=@PascalID
kalo di fb kan gak ada format value (), value() ... nah itu perlu
10:31:31 PM
di insert per baris dunk yah
10:32:08 PM
Tigor Manurung
wah saya kbtulan tidak begitu tahu fb
10:32:10 PM
10:32:34 PM
Riki Kurniawan Mas Kofa
coba kita pikir...kalo kita harus update ribuan data dengan u
…
Lagi jelasin insert atau update? Sorry baru baca2...
10:32:51 PM
Tigor Manurung Riki Kurniawan
Lagi jelasin insert atau update? Sorry baru baca2... bulkinsert
10:33:17 PM
Riki Kurniawan
Soalnya kata2nya "update ribuan"
10:33:45 PM
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 /
10:34:10 PM
ratusan worker (thread)
dan saya membuat komponen (delphi) untuk berkomunikasi
10:34:38 PM
dengan service tsb
10:35:00 PM
Riki Kurniawan Tigor Manurung
saya biasanya utk kasus aplikasi realtime yang memerlukan i
…
Service windows?
Tigor Manurung
10:35:36 PM
aplikasi service, blm tentu berbentuk service os
aplikasi pembantu hihi
10:35:43 PM
Riki Kurniawan
10:36:34 PM
Oh ok... Mantabs...
Tigor Manurung
10:37:26 PM
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
10:37:49 PM