[SHARE] Unit 7: Do-while anda sendiri (sesuai pentunjuk tentang dadu)

Oleh coe2sagita 131 14 pada Senin, 23 Mei 2016, 17:10:50


Kembali ke forum soal ini

#php #array-loop-di-php #loop-while-dan-do-while


Petunjuk Diskusi
Silahkan masuk untuk berdiskusi



$end=0;
$akhir=0;
do {
	$dadu  = rand(1,6);
	if ($dadu != $end){
		echo $dadu." ";
      	$end=$dadu;
	}
	else {
      	echo $end." ";
        $akhir=1;
	}
} while ( $akhir!=1 );
11 jempol


agmon
80
1
· 8 tahun, 6 bulan yang lalu · 1 jempol

maaf saya masih nubie...
gan.. kenapa saya belum paham dengan script diatas ya... coba jangan menggunakan end dan akhir..  atau mungkuin agan ada yang mau menjelaskan script diatas

mteguh23
72
3
· 8 tahun, 4 bulan yang lalu · 0 jempol

bisa dijelaskan?

bramanto
300
1157
· 8 tahun, 4 bulan yang lalu · 3 jempol

Hai coder @agmon, @mteguh23. Kita coba pahami bersama yaa sintaks code dari coder @coe2sagita.

1. Disini kita definisikan variabel $end bernilai 0 dan variabel $akhir bernilai 0.

2. Kemudian kita membuat perulangan dengan menggunakan do while. Yang mana perulangan ini akan terus dieksekusi minimal 1 kali dan akan berhenti jika nilai dari variabel akhir tidak sama dengan 1.

3. Masuk ke dalam block do while. Kita membuat sebuah variabel $dadu dengan nilai random yang terdiri antara nilai 1 hingga 6 (berarti nilainya bisa 1, 2, 3, 4, 5, dan 6).

4. Setelah nilai random di simpan ke variabel $dadu. Disini kita coba melakukan perbandingan dengan menggunakan if. 

Kondisinya adalah :
Jika nilai variabel $dadu tidak sama dengan variabel $end. Maka cetak nilai dadu. Dan beri nilai pada variabel $end sama dengan variabel $dadu.

Jika tidak memenuhi kondisi, maka cetak variabel $end dan beri nilai variabel $akhir sama dengan 1. 

5. Setelah itu while akan mengecek, apakah nilai dari variabel $akhir tidak sama 1. 

Jika tidak sama dengan 1, maka program akan lanjut ke awal.

Jika sama dengan 1 maka program akan berhenti.

nauvalshidqi
66
1
· 8 tahun, 4 bulan yang lalu · 1 jempol

kok itu bisa tau kalo 2x sama akan berenti? itu dibagian yang mana ya?

arief.hasbi
142
3
· 8 tahun, 3 bulan yang lalu · 1 jempol

kalo mau bikin 3 kali angka yang sama gimana ya?

HTH
68
2
· 8 tahun, 2 bulan yang lalu · 1 jempol

iya gmn carany untuk hentikan lemparan saat tiga angka yang sama berturut-turut.

bramanto
300
1157
· 8 tahun, 2 bulan yang lalu · 2 jempol

Hai coder @nauvalshidqi, Dadu akan mengeluarkan 2 angka yang sama jika nilai random dadu (sebelum terakhir)  tidak sama dengan nilai dari $end. Sehingga akan tercetak 2 angka yang sama pada terakhir kocokan.

Halo coder @aried.hasbi dan coder @MTH. Pertanyaan yang bagus sekali. Cukup mencetak hasilNya kembali pada akhir program. Sintaks sederhanaNya seperti ini : 

$end=0;
$akhir=0;
do {
	$dadu  = rand(1,6);
	if ($dadu != $end){
		echo $dadu." ";
      	$end=$dadu;
	}
	else {
      	echo $end." ";
        $akhir=1;
	}
} while ( $akhir!=1 );
echo $end;

sylvia93
150
0
· 8 tahun yang lalu · 0 jempol

https://codesaya.com/php/array-l...

Mentok ni teman gimana ya??
help me :(

bramanto
300
1157
· 8 tahun yang lalu · 0 jempol

Halo coder @sylvia93. Kalau boleh tau mentok di bagian mananya ? Jika ada, bisa disertakan sintaks code programnya ? Agar teman-teman coder yang lain dapat membantu.. ^_^

Sebagai referensi sederhana bisa dilihat pada sintaks code berikut ini : 

$kondisi = true;
while ( $kondisi ){
	// tulis pesan di bawah
	echo "Loop sedang jalan!";
      
	// untuk mencegah
	// loop tak terbatas
	$kondisi = false;
	echo "\n";
}
echo "Dan loop pun berakhir";

Joe_
43
0
· 7 tahun, 11 bulan yang lalu · 0 jempol

Saya masih pemula dan masih bingung gan.

$end=0;
$akhir=0;
do {
	$dadu  = rand(1,6);
	if ($dadu != $end){
		echo $dadu." ";
      	$end=$dadu;
	}
	else {
      	echo $end." ";  >>disini kemungkinan keluar angka ran dom 1-6
        $akhir=1; >>angka ini pun tidak harus 1, asal *
	}
} while ( $akhir!=1 ); >> *sama dgn angka disini.

nah , padahal nilai $end itu random dan di pemisalan ditulis hanya angka 1. lalu kenapa bisa berhenti (else) di angka kembar selain 1 ?

mohon bimbingannya, terimakasih.

Joe_
43
0
· 7 tahun, 11 bulan yang lalu · 0 jempol

do {
	$dadu  = rand(1,6);
  	$dadu1 = rand(1,6);
	if ($dadu != $dadu1){
		echo $dadu." ";
	}
	else {
      	$dadu = $dadu1;
      	echo $dadu1." ";
      	echo $dadu." ";
	}
} while ( $dadu != $dadu1);



saya mencoba kode di atas dan work juga.

rizal.chan97
276
1
· 7 tahun, 10 bulan yang lalu · 1 jempol

$sama=0;
do{
  $dadu=rand(1,6);
 if ($dadu != $sama){
		echo $dadu." ";
      	$sama=$dadu;
   		$flag=0;
	}
	else {
      	echo $sama." ";
        $flag=-1;
	}
}while($flag!=-1);

ersalputraa
143
5
· 7 tahun, 10 bulan yang lalu · 1 jempol

$balon = 5;

do{
  rand(1,0);
  if ($balon > 3);
  echo "balonku ada ";
  echo $balon."\n";
  echo "rupa rupa warnanya"."\n";
  $balon=$balon - 1;
  echo "balonku meledak"."\n";
  echo "balon ku tinggal ";
  echo $balon."\n";
}
  	while($balon!=4);
echo "kupegang erat-erat";

dierja
50
0
· 2 tahun, 12 bulan yang lalu · 0 jempol

Manteman, mohon koreksi kode saya:

//Alih-alih koin, lemparlah sebuah dadu! 
// Hentikan lemparan anda ketika lemparan dadu anda menunjukkan dua angka yang sama berturut-turut.

echo "Kita akan melempar dadu selama tidak ada sisi muncul berturut-turut...\n";
$lempar = 0;
$sebelumnya = 0;
$n = 1;
$nilaisama = 0;

do {
	$lempar = rand(1, 6);
	// memeriksa apakah keluar nilai berurutan
	
	if ( $lempar != $sebelumnya ) {
		echo "Lemparan ke " . $n . " - Nilai lemparan adalah " . $lempar . ", nilai sebelumnya adalah " . $sebelumnya . "\n";
	// nilai dadu yang sudah keluar disimpan menjadi $sebelumnya
		$sebelumnya = $lempar;
      $n++;
    // kondisi ketika keluar angka berturut-turut  
	} else {
      echo "Lemparan ke " . $n . " - Nilai lemparan adalah " . $lempar . ", nilai sebelumnya adalah " . $sebelumnya . "\n";
		$nilaisama = 1;
  }
} while ($nilaisama != 1);
echo 'Muncul nilai dadu berulang. Dan lemparan pun berakhir.';