People Innovation Excellence

Penggunaan fungsi sleep() sebagai timer

Di dalam pengembangan aplikasi yang memanfaatkan socketAPI kadang diperlukan tundaan atau timer untuk menunggu paket yang datang dari sisi server atau mengecek apakah paket yang dikirimkan oleh clientsudah diterima oleh server atau tidak. Hal ini tidak masalah bila protokol yang digunakan adalah Transmission Control Protocol (TCP) yang mempunyai mekanisme three-way handshake untuk melakukan koneksi antara server dan client. Tetapi hal tersebut tidak dimungkinkan untuk  connectionless protocol seperti User Datagram Protocol (UDP) sehingga timer digunakan untuk melakukan terminasi bila tidak ada respon ketika melakukan transmisi data.

Ada beberapa metoda untuk membuat timerseperti dengan menggunakan  perulangan dengan jumlah perulangan yang sangat besar,blocking, dan non-blocking. Metoda dengan menggunakan looping yang sangat besar dapat digunakan bila waktu tunggunya tidak terlalu besar dan masih dalam orde mikro (us) dan milliseconds (ms). Tetapi bila waktu tunggu sudah sekian ratus milliseconds dan seconds maka metoda ini tidak dapat digunakan kembali karena keakurasian yang terbatas dan biasanya langsung dihilangkan oleh compiler yang melakukan optimisasi terhadap perulangan tersebut. Metodablocking adalah metoda perulangan atau fungsi lain sehingga aplikasi utama tidak dapat mengerjakan tugas lain sampai waktu yang digunakan oleh timer sudah habis. Perulangan yang sebelumnya dibahas dapat dikategorikan sebagai metoda Blocking. Tulisan ini akan berfokus pada metoda ini.

Di dalam pemrograman C, fungsi yang digunakan untuk timer dengan blocking adalah adalah sleep(). Bentuk umum dari fungsi ini adalah sebagai berikut,

bk 1

Fungsi sleep() mempunyai parameter dalam satuan detik dan mempunyai return value0 atau sisa waktu yang tersisa bila di-interupsi oleh signal handler. Contoh penggunaannya dalam program C adalah sebagai berikut,

bk 2

Luaran dari program tersebut dimulai dengan menampilkan kata “Tidur”  terlebih dahulu kemudian dengan fungsi sleep() selama lima detik untuk memunculkan kata “Bangun”.

Demikianlah penggunaan fungsi sleep() sebagai timer untuk memberikan tundaan atau delay selama lima detik. Seperti yang telah dijelaskan sebelumnya, fungsi ini termasuk kategori blocking sehingga aplikasi utama tidak dapat mengerjakan task atau tugas lain.


Published at :
Written By
Bayu Kanigoro, S.Kom., S.T.
Concentration Content Coordinator - Network | School of Computer Science

Periksa Browser Anda

Check Your Browser

Situs ini tidak lagi mendukung penggunaan browser dengan teknologi tertinggal.

Apabila Anda melihat pesan ini, berarti Anda masih menggunakan browser Internet Explorer seri 8 / 7 / 6 / ...

Sebagai informasi, browser yang anda gunakan ini tidaklah aman dan tidak dapat menampilkan teknologi CSS terakhir yang dapat membuat sebuah situs tampil lebih baik. Bahkan Microsoft sebagai pembuatnya, telah merekomendasikan agar menggunakan browser yang lebih modern.

Untuk tampilan yang lebih baik, gunakan salah satu browser berikut. Download dan Install, seluruhnya gratis untuk digunakan.

We're Moving Forward.

This Site Is No Longer Supporting Out-of Date Browser.

If you are viewing this message, it means that you are currently using Internet Explorer 8 / 7 / 6 / below to access this site. FYI, it is unsafe and unable to render the latest CSS improvements. Even Microsoft, its creator, wants you to install more modern browser.

Best viewed with one of these browser instead. It is totally free.

  1. Google Chrome
  2. Mozilla Firefox
  3. Opera
  4. Internet Explorer 9
Close