Penggunaan Semafor

Program ini berjalan layaknya permainan Hompimpah yang telah kita kenal. Adapun yang dilakukan dalam permainan hompimpah adalah sebagai berikut:

  1. Peranan

    Gambar 27.1. Peranan yang terdapat dalam permainan

    Peranan yang terdapat dalam permainan


    Dalam permainan Hompimpah kita mengenal dua peranan, yaitu pemain-pemain yang melakukan hompimpah (gambar sebelah kanan yang berjumlah 5) dan seorang bandar (gambar sebelah kiri), yang berfungsi menetukan, kapan permainan dimulai dan kapan permainan berakhir. Dalam hal ini bandar bertindak sebagai pengatur jalannya permainan.

  2. Memulai permainan

    Gambar 27.2. Bandar memulai permainan

    Bandar memulai permainan


    Permainan mulai ketika bandar menyerukan Hompimpah. Ketika itu secara serentak pemain-pemain akan melakukan hompimpah dengan tangannya. Kemudian bandar akan menyerukan gambreng sebagai penanda hompimpah berhenti, sehingga pemain pun menghentikan hompimpah dan masing-masing akan menunjukan tangannya, apakah telapak atau punggung.

  3. Pengecekan pemenang

    Gambar 27.3. Bandar memeriksa pemenang

    Bandar memeriksa pemenang


    Terlihat pada gambar, setelah bandar menyerukan gambreng dan hompimpah berhenti, bandar akan melakukan perhitungan banyaknya telapak dan punggung. Apabila bandar menemukan ada diantara telapak atau punggung yang berjumlah satu, maka satu-satunya pemain itu akan keluar sebagai pemenang. Namun apabila tidak ada diantara telapak atau punggung yang berjumlah satu, seperti pada gambar maka bandar akan mengulang permainan dengan menyerukan gambreng. Hal tersebut akan berulang terus-menerus hingga terdapat 1 tangan yang berbeda. Dengan kata lain, bandar akan terus menyerukan gambreng dan mengulang permainan hingga menemukan pemenang.

    Gambar 27.4. Bandar mengulang gambreng

    Bandar mengulang gambreng


Seperti halnya permainan Hompimpah yang diilustrasikan di atas, program Hompimpah juga berjalan demikian layaknya permainan Hompimpah sebenarnya. Tetapi, ada perbedaan terhadap jumlah bandamya. Program Hompimpah memiliki jumlah bandar yang sama dengan jumlah pemainnya, sehingga setiap pemain memiliki satu bandar. Adapun tujuan sinkronisasi dua arah adalah mengendalikan thread-thread sesuai dengan keinginan kita melalui kendali bandarGambreng() yang diimplementasikan pada program Hompimpah.