Kulgram I - · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ......

27
Kulgram I Pemrograman Delphi I: Koneksi database dengan Zeos https://t.me/PascalI D Dosen: Mas Kofa

Transcript of Kulgram I - · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ......

Page 1: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

Kulgram IPemrograman Delphi I:Koneksi database dengan Zeos

https://t.me/PascalID

Dosen: Mas Kofa

Page 2: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 3: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 4: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 5: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

(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

Page 6: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 7: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 8: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 9: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 10: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 11: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 12: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 13: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 14: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 15: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 16: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 17: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 18: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 19: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 20: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 21: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 22: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 23: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 24: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 25: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 26: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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

Page 27: Kulgram I -   · PDF filedisunting seperlunya, sebagai bahan belajar untuk publik. 2. ... sampai pada delphi xe7, namun masih bisa di install di berlin, link download ada di :

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