Mungkin Anda sedang mencari cara agar aplikasi Delphi kita (yang sudah berbentuk executable file/exe) dapat berjalan secara otomatis pada waktu-waktu tertentu sesuai jadwal. Pada salah satu case project saya, aplikasi ini running di server yang menyala 24 jam, dan hanya akan running pada jam-jam tertentu saja sesuai jadwal. Untuk solving case ini ada dua alternatif, yaitu membuat aplikasi yang berjalan at the background dalam bentuk windows service atau membuat aplikasi exe biasa namun hanya berjalan (running) saat-saat tertentu saja. Jika aplikasi running terus, juga tidak mungkin karena unpredictable condition, dimana kadang saat peak memory usage atau karena suatu hal aplikasi bisa hang dan closed sendiri. Kalau ada kejadian seperti ini, siapa yang akan menjalankan aplikasi? TIDAK ADA. Karena aplikasi berjalan di server, dimana tidak ada seorang pun yang aware terhadap aplikasi
Untuk case project kali ini saya memilih opsi kedua, dengan pertimbangan aplikasi tidak akan membebani resource memory di server. Coba Anda bayangkan jika aplikasi Anda terus-terusan running di laptop Anda sendiri. Ini tentunya akan menghabiskan memory (RAM) bukan? Belum lagi aplikasi tiba-tiba hang karena suatu hal. Ingat, aplikasi berjalan di server, jadi harus kita antisipasi agar aplikasi tetap dapat bekerja dengan sentuhan tangan manusia yang minimal. Jika aplikasi hanya berjalan saat dibutuhkan dan langsung dimatikan tentunya hanya akanmembutuhkan memory saat berjalan saja, dan ketika dimatikan (aplikasi saya diprogram terminated sendiri dalam waktu 5 detik), akan membebaskan memory sehingga dapat digunakan server untuk keperluan yang lain.
[AdSense-A]
Aplikasi Delphi
Bagaimana membuat aplikasi seperti ini dengan Delphi? Hmm, cukup mudah membuatnya. Anda cukup membuat timer sebagai delay (misal 5 detik) untuk kemudian mengeksekusi script Application.Terminate; agar aplikasi mati sendiri. Contoh script-nya sebagai berikut
Ambil komponen Timer di Component Pallete di tab ’System’. Letakkan di Form Designer, dan double click untuk mengisi event handler onTimer sebagai berikut:
procedure TForm1.Timer1Timer(Sender: TObject); begin application.Terminate; end;
Di jendela Object Inspector, atur properti ‘Enabled’ menjadi ‘false’ dan properti ‘Interval’ menjadi ‘5000’ (5 detik) atau berapapun sesuai kebutuhan Anda. Kemudian double click form Anda untuk masuk ke event ‘onCreate’ milik komponen Form, dan isikan event handler sebagai berikut:
procedure TForm1.FormCreate(Sender: TObject); begin timer1.Enabled:=true; end;
Sudah selesai 🙂 . Udah, gitu doang. Jadi dengan dua event handler di atas, jika pertama kali aplikasi running maka form akan diciptakan. Pada saat ini even onCreate miliknya komponen Form akan terpicu sehingga akan mengaktifkan timer (timer1.Enabled:=true;). Karena Timer1 diset intervalnya 5000, maka 5 detik kemudian Timer1 event onTimer-nya akan terpicu dan akan mengeksekusi perintah di dalamnya, yakni ‘application.Terminate;’. Dengan demikian, otomatis aplikasi akan mati sendiri. Gimana? Mudah bukan? 🙂 . Anda dapat menambahkan script yang lain sesuai kebutuhan Anda sebelum Timer mematikan aplikasi.
[AdSense-A]
Windows Task Scheduler
Untuk sisi aplikasi Delphi sudah selesai. Mungkin Anda bertanya-tanya, aplikasi Delphi kan hanya mengeksekusi script tertentu termasuk script untuk mematikan dirinya sendiri. Trus, siapa yang menjalankan aplikasi Delphi? Apakah harus membuat aplikasi Delphi lagi untuk menjalankan aplikasi Delphi tadi. Duh… tidak usah, nanti malah jadi lingkaran setan 🙂 . Anda cukup membuat scheduler dengan aplikasi bawaan Windows yakni ‘Task Scheduler’. Dengan aplikasi ini Anda dapat membuat semacam jadwal berbasis waktu yang presisi dengan action yang dapat diatur sendiri (programmable action). Bagaimana caranya? Simak langkah-langkah berikut ini (Windows 7)
- Buka Control Panel, double click Administrative Tools dan pilih Task Scheduler
- Buat task baru dengan memilih ‘Create Basic Task’
- Isikan nama task Anda (mandatory), dan isi deskripsinya (opsional).
Buat nama task yang mudah diingat dan sesuai peruntukannya agar suatu saat jika terjadi apa-apa, Anda dapat dengan mudah menemukannya.
- Pilih ‘daily’, untuk menjalankan aplikasi tiap harinya
- Atur waktu eksekusi aplikasi
- Atur action dengan ‘Start Program’
- Pilih aplikasi yang akan dijalankan. Pada contoh ini saya memilih aplikasi ‘Genset Reminder’, yakni semacam aplikasi yang akan mengingatkan para engineer/teknisi untuk segera maintenance genset (ganti oli, filter udara, cek solar, dll) sesuai jadwalnya. Notifikasi dikirim menggunakan SMS.
- Klik ‘Finish’ untuk mengakhiri settingan task scheduler dan memulai schedule-nya
Untuk settingan ‘basic task’, scheduler hanya akan dieksekusi jika komputer dalam keadaan mendapat tegangan dari power adapter. Jika Anda menggunakan laptop dan dalam posisi discharge (power dari baterai), scheduler tidak akan jalan. Untuk mengatasinya, saat sebelum finish pilih (centang) opsi ‘Open the properties dialog for this task when I click Finish’ (angka ‘1’ pada gambar di atas). Kemudian cari tab ‘Condition’ dan uncheck opsi ‘Start the task only if the computer is on AC power’.
Semua settingan sudah selesai, kini aplikasi Delphi Anda akan dieksekusi tepat sesuai jadwal yang sudah Anda buat tadi. Dengan demikian aplikasi Delphi tidak akan membebani server, tidak menghabiskan banyak resource dan tentunya lebih reliable untuk running on the server.
Jika Anda menggunakan OS Linux di server, Anda dapat menggunakan ‘CRON’ untuk menggantikan fungsi Task Scheduler di Windows.
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com