Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

logika aplikasi antrian 1 speaker

bro sis.. salam kenal semua, saya pendatang baru disini, saya masih awam dan mau belajar program sama suhu2 disini, hehe..,

saya mau bertanya gimana logika aplikasi antrian pasien di puskesmas yg hanya menggunakkan 1 speaker saja dimana program yg saya gunakan PHP, jadi nantinya tiap tiap ruangan dengan memasukkan no.antrian di ruangan tersebut speaker yg hanya terhubung ke server bisa menyala,

terima kasih sebelumnya buat suhu suhu disini..salam

avatar STNK
@STNK

28 Kontribusi 2 Poin

Diperbarui 7 tahun yang lalu

17 Jawaban:

PHP bahasa Server side. kalau mau Play audio ke Speaker berati harus memanfaatkan HTML, agar lebih interaktif pakai Javascript.

Proses Create antrian sesuai SOP - saya belum tau disitu designya seperti apa. Mungkin kalau bisa dijelaskan Design manualnya rencananya seperti apa lebih enak dibantu, kebetulan pernah mengerjakan projek yg seperti ini.

Perjelas : beda ruangan apakah beda antrian, atau untuk antrian yang sama. misal ada Doketer umum/gigi/dll.. beda ruangan ini beda antrian.

Tapi kalau sekedar cara Play audio ya tinggal pakai HTML5, biar lebih interaktif pakai javascript.

Kalau Triger manggilnya kalau bisa pake websocket keren, bagus. kalau ngga berati harus set interval tiap berapa detik request ajax ke server antrian yang perlu dipanggil yang mana, kalau ada play audionya.

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 7 tahun yang lalu

terima kasih sebelumnya gan, jd begini speaker di colokkin ke comp server , untuk masing2 ruangan hanya dapat akses content ruangan tersebut untuk mengetikkan no.antrian yg mau di play ke speaker server. klo untuk play speaker dari server bisa gan ga ada masalah

masalahnya sewaktu dari comp client yg tidak bisa, saya coba pake database untuk memasukan 4 ruangan tersebut ke tabel ruangan, jd jika salah satu ruangan menclick maka field status di tabel untuk ruangan yg memanggil berubah jadi Y dan saya sudah coba pake auto refresh fungsi dari jquery yg scripnya membaca jika ada status Y di tabel ruangan maka nyalakkan speaker, tp ga bisa jg..

avatar STNK
@STNK

28 Kontribusi 2 Poin

Dipost 7 tahun yang lalu

1. Coba jangan pakai Auto Refresh tapi pakai Set Interval di Javascript, request AJAX kalau responya sesuai lalu menggunakan javascript mainkan audio. ini lebih aman dan enteng dibanding refresh halaman. (optional)

2. Lebih baik tunjukan codinganya, perlu di urut masalahnya itu dimana, - di Query saat select table ruangan statusnya 1/0 sudah sesuai belum ? - script/kondisi untuk play videonya sesuai atau belum ?

ini lagi senggang aja, klo pada sibuk paling malas dimana2 bantuin programing tanpa liat codingannya. cuma nebak - nebak, bertele tele. semoga jadi ya.

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 7 tahun yang lalu


// index.php
<script type="text/javascript">

jQuery(document).ready(function($) {
	$("#antrian").load("get.php?get=cekantrian");
	var pgl=setInterval(function(){
	var query="get=panggil";
		$.ajax({
			type:"post",
			url:"getautorefresh.php",
			data:query,
			cache:false,
			success: function(msg){
					data=msg.split("|");
					if(data[2]=="Y"){
						$("#KodeRuangan").val(data[0]);
						$("#txtnoantri").val(data[1]);
						$("#antrian").load("getautorefresh.php?get=cekantrian");
						clearInterval(pgl);
						panggilantrian();
					}
				}
			});
	}, 3000);

});

function panggilantrian(){
	var audioElement = document.createElement('audio');
	audioElement.setAttribute('src', 'rekaman/bell.mp3');
	audioElement.play();
	setTimeout(fnnourut, 7000);
}

</script>

avatar STNK
@STNK

28 Kontribusi 2 Poin

Dipost 7 tahun yang lalu


file getautorefresh.php

function panggil(){
	$z=mysql_query("select * from ruangan where Menyala='Y'");
	$t=mysql_fetch_array($z);
	$KodeRuangan=$t['KodeRuangan'];
	$NoAntrian=$t['NoAntrian'];
	$Menyala=$t['Menyala'];
	echo $KodeRuangan."|".$NoAntrian."|".$Menyala;
}

avatar STNK
@STNK

28 Kontribusi 2 Poin

Dipost 7 tahun yang lalu

tuh di atas codingnya gan.. fiedl menyala akan update menjadi N dulu semua , lalu akan mengupdate field Menyala Menjadi Y sewaktu ruangan memanggil no.antrian, jadi intinya field menyala hanya ada 1 = Y selainya N

avatar STNK
@STNK

28 Kontribusi 2 Poin

Dipost 7 tahun yang lalu



<?php
   echo "Untuk kasus seperti ini gw saranin harus banyak2 doa gan";
?>

avatar AbangGanteng
@AbangGanteng

17 Kontribusi 1 Poin

Dipost 7 tahun yang lalu

hahaha.. uda gan

avatar STNK
@STNK

28 Kontribusi 2 Poin

Dipost 7 tahun yang lalu

krna ga dpt script full, jdi pertama coba pastiin liat di network return ajaxnya gmna, ada record hsilnya ngga ?

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 7 tahun yang lalu

trus biasakan responya format json jdi enak ngolahnya

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 7 tahun yang lalu

terus di javascriptnya udah ajax autorefresh tpi klo sukses kamu ajax lg pake fungsi load. itu 2x buat apa ?

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 7 tahun yang lalu

 function panggil(){
	$z=mysql_query("select * from ruangan where Menyala='Y'");
	$out=array();
	while($t=mysql_fetch_array($z)){
		$out[] = $t;
	}
	echo json_encode($out);
}
/* outputnya :
	block array bisa lebih dari 1
	[{KodeRuangan:'',NoAntrian:'',Menyala:''},{KodeRuangan:'',NoAntrian:'',Menyala:''}]

*/

Klo PHPnya harusnya sudah sesuai, ini share menurut saya bersihnya gitu

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 7 tahun yang lalu

kalau ini itu buat apa ? get.php?get=cekantrian

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 7 tahun yang lalu

api.php :


<?php
$data=array();
$random=$_POST['random'];
if($random>5){
	$data[] = array('ruangan'=>1, 'nourut'=>123);
	$data[] = array('ruangan'=>2, 'nourut'=>125);
	$data[] = array('ruangan'=>2, 'nourut'=>127);
}
echo json_encode($data);

View nya.. semoga membantu

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>

<audio id="media_call" controls>
  <source src="https://www.w3schools.com/html/horse.mp3" type="audio/mpeg">
</audio>

<script type="text/javascript" src="jquery-3.2.1.min.js"></script>
<script type="text/javascript">

	//variabel global menyimpan antrian
	var antrian = [];
	var urut_antrian = 0;
	$(document).ready(function(){
		var audio_call = document.getElementById("media_call");
		get_antrian();

		function get_antrian(){
			//reset variabel global
			antrian =[];
			urut_antrian=0;
			console.log('Cek Antrian');
			$.ajax({
	            url: 'api.php',
	            data : { random : Math.floor(Math.random()*10) },
	            method: 'POST',
	            success: function (respons) {
	                var obj = JSON.parse(respons);
	                if(obj.length > 0 ){ //ada record
	                	antrian=obj;
	                	console.log('Antrian ada '+antrian.length);
	                	call();
	                }else{
	                	//jika tidak ada antrian cek kembali nanti
	                	console.log('tidak ada antrian, 10 detik cek kembali');
						setTimeout(function(){ get_antrian(); }, 10000);
	                }
	            },
	            error: function (error) {
	               console.log(error);
	            }
	        });
		}

		function call(){
			console.log(antrian[urut_antrian]);
			audio_call.play();
			urut_antrian++;
			audio_call.onended = function() {
				if(antrian.length>urut_antrian){
			    	call(); //panggil antrian selanjutnya
				}else{
					//cek antrian kembali
					get_antrian();
				}
			};

		}
	});

</script>
</body>
</html>

itu contohnya

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 7 tahun yang lalu

ga bisa juga, sama aja dengan yg saya buat,

 $("#antrian").load("getautorefresh.php?get=cekantrian");

fungsi diatas di ajaxnya hanya untuk meload ke content <div id="antrian"> </div>

jadi jika ada status Y diantara 4 ruangan maka ruangan tersebut berwarna hijau, content ini nantinya ada di monitor utamanya

Field Di Tabel ruangan [ Kode, NamaRuangan, NoAntrian, Menyala ]

SOP nya.

1. ada 4 ruangan di puskesmas Ruangan A Ruangan B Ruangan C Ruangan D

2. Masing-masing ruangan hak aksesnya hanya content ke ruangan tersebut, cotohnya jika user di Ruangan A memasukkan No. antrian dan mengclick tombol "Panggil" maka status field menyala di ruangan A akan menjadi Y

3. Fungsi setinterval akan membaca ke tabel ruangan jika ada field menyala = Y maka akan memanggil function panggil antrian di java script dan interval di stop dulu sampai pemanggilan selesai, jika pemanggilan selesai 10 detik kemudian akan mengupdate lagi field Menyala di tabel ruangan kembali menjadi N trus reload halaman, untuk start lagi setintervalnya

source yang agan buat sama aja dengan yang saya buat hasilnya, speaker di server tidak menyala, jadinya sewaktu computer client memanggil no.antrian..! yang menyala itu malah SOUND atau Speaker di comp client itu sendiri ada icon sound di title bar nya , saya juga pada awalnya berpikir itu bisa, tp waktu di coba ga bisa.., sound yg menyala itu malah sound di comp klien itu sendiri, contoh kecilnya sama seperti kita mutar youtube gan soundnya nyala di comp kita sendiri


avatar STNK
@STNK

28 Kontribusi 2 Poin

Dipost 7 tahun yang lalu

Jawaban Terpilih

harusnya kamu pakenya 2 pc. yg saya buat itu halaman dibuka di server.

terus di clientnya buka halamam yg cuma buat update.

avatar sifai
@sifai

80 Kontribusi 24 Poin

Dipost 7 tahun yang lalu

ok gan makasih, ternyata auto refresh dan play soundnya di buat di file terpisah,

avatar STNK
@STNK

28 Kontribusi 2 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban