| Tingkatan | Pemula | ||||||||||||||
| Kategori | System | ||||||||||||||
| Sub Kategori | Thread | ||||||||||||||
| Judul | Membuat thread sederhana | ||||||||||||||
| Oleh |
|
||||||||||||||
| Referensi | by Eko Indriyawan | ||||||||||||||
|
Tujuan
|
Mengajarkan kepada Delphier untuk membuat thread sederhana.
|
||||||||||||||
|
Overview
|
Pembahasan pada artikel ini masih sederhana, sehingga masih banyak kekurangan. Namun paling tidak dari contoh dan pembahasan yang diberikan sudah bisa sedikit memberikan gambaran kepada delphier untuk membuat thread sederhana.
Artikel ini sangatlah menarik, kenapa menarik? karena dari contoh program ini, anda diberikan wawasan tentang menghandle beberapa proses tanpa harus menunggu proses itu selesai. Fungsi thread disini sangatlah bermanfaat, karena selama proses eksekusi prosedur, aplikasi masih bisa dioperasikan.
Diharapkan dengan contoh yang sederhana ini mampu memberikan inspirasi kepada Delphier dalam membuat program aplikasi yang lebih stabil.
|
||||||||||||||
| Petunjuk : |
Silahkan anda ikuti langkah – langkah berikut ini dengan pelan – pelan agar bisa berjalan dengan lancar sesuai dengan petunjuk yang sudah diberikan.
|
||||||||||||||
|
Langkah 1
|
|||||||||||||||
|
Langkah 2
|
Tambahkan beberapa object kedalam Form
|
||||||||||||||
| Button1: TButton; Button2: TButton; Bevel1: TBevel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit; ProgressBar1: TProgressBar; ProgressBar2: TProgressBar; ProgressBar3: TProgressBar; ProgressBar4: TProgressBar; ProgressBar5: TProgressBar; ProgressBar6: TProgressBar; |
|||||||||||||||
|
Langkah 3
|
Atur desainnya seperti berikut ditampilkan pada gambar form dibawah ini
|
||||||||||||||
![]() |
|||||||||||||||
| Langkah 4 |
Silahkan anda deklarasikan object thread TCounter. Untuk lebih jelasnya silahkan anda lihat potongan kode program dibawah ini.
|
||||||||||||||
|
|||||||||||||||
|
Langkah 5
|
Tuliskan kode program pada prosedur Execute. Untuk lebih jelasnya silahkan anda lihat potongan kode program dibawah ini.
|
||||||||||||||
|
|||||||||||||||
|
Langkah 6
|
Tuliskan kode program pada constructor Counter. Untuk lebih jelasnya silahkan lihat potongan kode program dibawah ini.
|
||||||||||||||
|
|||||||||||||||
|
Langkah 7
|
Silahkan anda klik 2x tombol Proses. Setelah itu anda lanjutkan dengan menuliskan kode program didalam event OnTimerseperti terlihat pada potongan kode program dibawah ini.
|
||||||||||||||
|
|||||||||||||||
|
Langkah 8
|
Silahkan anda compile. Tekan tombol Ctrl + F9
|
||||||||||||||
|
Tunggu beberapa saat… ( Sedang di cek kode programnya )
|
|||||||||||||||
|
Apabila tidak muncul pesan error, berarti program yang anda buat telah berhasil dan silahkan anda tekan tombol F9 untuk menjalankan program aplikasinya.
|
|||||||||||||||
|
Langkah 9
|
Anda tentukan masing – masing batas maksimal progressbar.
|
||||||||||||||
|
Langkah 10
|
Tekan tombol Proses. Apabila program berhasil, maka akan didapatkan tampilan seperti berikut.
|
||||||||||||||
![]() |
|||||||||||||||
|
Langkah 11
|
Program sudah selesai anda buat. Sekarang silahkan anda tekan tombol Keluar.
|
||||||||||||||
|
Download
|
Silahkan anda download link diatas untuk mendapatkan contoh program aplikasi secara lengkap.
Ada beberapa masukan dan keluhan dari teman – teman, bahwa ada beberapa program contoh tidak bisa dijalankan dari delphi 7. Hal ini dikarenakan program contoh dibuat dengan menggunakan Delphi 2007 for win32.
Apabila anda menggunakan D7, sebaiknya anda mengikuti pandauan dari langkah – langkah yang sudah diberikan.
Atas perhatiannya, saya mengucapkan banyak terimakasih.
|
||||||||||||||
| Link terkait | |||||||||||||||
| Buku panduan |
|



Makasih banyak saya tunggu lagi program terbarunya buat inspirasi saya
Komentar oleh Joe — Februari 5, 2008 @ 12:47 am
sama sama mas joe
oke, silahkan sering – sering main ke blog ini untuk mendapatkan artikel – artikel terbaru
Komentar oleh ekoindri — Februari 5, 2008 @ 5:52 am
meletakkan
DataOut.Position=indek;
dalam eksekusi thread tanpa sinkronisasi dengan thread utama sangat berpeluang menyebabkan deadlock dan tampilan yang tidak diharapkan. Mengisi position akan menyebabkan TProgressBar visual diupdate. Update visual VCL selalu dilakukan dithread utama.
Lebih bagus lagi bila
Procedure TCounter.UpdateProgress;
begin
DataOut.Position=indek;
end;
di ekseskusi thread:
…
Synchronize(UpdateProgress);
…
good luck
Komentar oleh z — Februari 5, 2008 @ 12:15 pm
Memang tampilan akan berkedip, oleh karena itu dalam tips diatas di dublebuffer.
mungkin ini bisa jadi pelajaran dan menambah wawasan pengetahuan kepada delphier
mungkin masukan ini akan dijadikan tips baru untuk artikel selanjutnya…
buat mas z, makasih banyak, ditunggu komentar untuk artikel2 yang lainnya
Komentar oleh ekoindri — Februari 5, 2008 @ 3:15 pm
Masalah yang mungkin muncul tanpa sinkronisasi dengan thread utama bukan cuma kedipan (untuk buat fliker gak perlu multithreading). Tapi yang paling berbahaya seperti yang disebutkan sdr. z adalah deadlock. Dimana aplikasi tidak berjalan.
Selain itu, juga spt sdr. z sudah sebutkan, tampilan bisa berantakan. Bayangkan kalau satu thread menggambar “1″ pada canvas Label1 dan thread yang lain menulis “3″ pada canvas yang sama pada saat bersamaan.
Karena contoh program pada artikel ini masih sederhana masalah2 “besar” di atas tidak muncul. Namun seharusnya penanganan thread yang tepat juga harus ditekankan terlebih dahulu. Ibaratnya jangan beri Bazooka ama anak TK, kecuali kalo udah dikasih tau cara penggunaannya yang benar! Nah luh?!??.
Wassalam,
Luthfi B Hakim
Komentar oleh Luthfi — Februari 6, 2008 @ 10:52 am
wah dapat masukan dan kritikan membangun lagi nih..
makasih banyak mas luthfi…
Komentar oleh ekoindri — Februari 6, 2008 @ 3:27 pm
Benar adanya apa yg disampaikan saudara z & Luthfi…
Hati-hati mas Eko… maksud hati memang baik mengajarkan banyak hal.
Namun sebaiknya anda pastikan dulu kebenaran teori & contoh praktis atas apa yg anda tulis; jangan sampai “menjebak” delphier baru (newbie)…
Seperti halnya dalam kasus thread ini, apa yang anda tulis sangat berbahaya (access visual contents tanpa menggunakan synchronize); thread2 tersebut amat sangat mungkin menghancurkan program itu sendiri
Semangat!
Komentar oleh Indra Gunawan — Februari 12, 2008 @ 2:07 pm
thanxs mas indra
insyaallah nanti saya akan tambahkan artikel tentang synchronize
sehingga para Delphier bisa melihat sendiri
syukur2 kelemahan ini bisa menjadikan tambahan wawasan buat para Delphier
jangan jenuh2 kasih komentar ya mas…
Komentar oleh ekoindri — Februari 12, 2008 @ 3:38 pm
so gimana mas eko udah di update aritkelnya dengan mengacu komentar di atas..di tunggu ya
Komentar oleh devy — Maret 1, 2008 @ 9:36 am
sudah saya update mas, sekarang bisa download lagi
Komentar oleh ekoindri — Maret 1, 2008 @ 9:40 am