unit-8: Perlihatkan CodeMu

Oleh nasrulhamid 164 18 pada Rabu, 7 Agu 2013, 22:19:31


Kembali ke forum soal ini

#php #function-di-php #function-bagian-1


Petunjuk Diskusi
Silahkan masuk untuk berdiskusi



$teman = array("zegova","dwhite","rifkifahru","sunar","aiskand");
sort($teman);
$winner=rand(0,count($teman)-1);
$no=1;
for($i=0;$i<count($teman);$i++){
	echo $no++.". ".($i==$winner?strtoupper($teman[$i]):$teman[$i])."\n";
}
5 jempol


kidofdream
164
1
· 11 tahun, 4 bulan yang lalu · 1 jempol

Bukannya pemenang nya cuma 1 ya ? 

ane cuma gini doang gan :

$keluarga = array("iki", "deknong", "ayah", "nyanyak" );

sort($keluarga);

$acak = rand(0,count($keluarga)-1);
$arr = $keluarga[$acak];
echo strtoupper($arr);

ganis
198
841
· 11 tahun, 4 bulan yang lalu · 0 jempol

Iya, dua2nya benar. @nasrulhamid mencetak semua namanya, dan hanya pemenang yang dihurufbesarkan, @kidofdream hanya mencetak pemenangnya yang dihurufbesarkan juga.

Kerja yang bagus!! =)

beherocode_ID
111
9
· 11 tahun, 4 bulan yang lalu · 0 jempol

masih bingung

januridp
300
190
· 11 tahun, 4 bulan yang lalu · 3 jempol

aku gini kaka:
$fam = array("liot", "ibu","bapak","rasya","kalila");
sort($fam);
$random = rand(0,count($fam));
$win = $fam[$random];
echo strtoupper($win);

nasrulhamid
164
18
penanya
· 11 tahun, 4 bulan yang lalu · 2 jempol

@mystogan, 
error: Undefined offset: 5
Error di atas dikarenakan tidak ada index 5 dalam array $fam.
Fungsi rand($x, $y), akan mengacak integer dari $x sampai $y.
Index dalam array defaultnya dimulai dari 0 sampai jumlah member array -1.
Sehingga menurut saya baris ke-4 seharunya:
$random = rand(0,count($fam)-1);

Uko_Corleone
300
11
· 11 tahun, 4 bulan yang lalu · 2 jempol

Punya sayaaaaa :D
$family = array("Human", "Alien", "Ghost", "Mummy", "Vampire", "Robot", "Unicorn",
                  "Genie", "Werewolf", "Witch", "Fairy", "Imaginary Friend",
                  "Plant as Human", "Mermaid", "Plumbot", "Toad Human",
                  "Tragic Clown", "Zombie");

sort($family);
$winner = rand(0, count($family)-1);
$count = 0;

echo "Peserta Undian:\n \n";

foreach ($family as $element){
  $count++;
  
  	if($count === $winner + 1){
      $queue = $count;
    }

	echo $count . ". " . $element . "\n";
}

echo "\n\n Pemenangnya ada di urutan ke " . $queue . " dan namanya " . strtoupper($family[$winner]);

Uko_Corleone
300
11
· 11 tahun, 4 bulan yang lalu · 0 jempol

oh iya harusnya countnya 0 biar winnernya ga usah di + 1, lupa -_-

Uko_Corleone
300
11
· 11 tahun, 4 bulan yang lalu · 0 jempol

1 maksudnya maaf

Uko_Corleone
300
11
· 11 tahun, 4 bulan yang lalu · 0 jempol

eh engga deng bener, cara hapus post gimana?

zegova
192
16
· 11 tahun, 4 bulan yang lalu · 1 jempol

Iya nih, harusnya Mas Ganis bikin fitur edit dan hapus post biar enak posting diskusinya. :D

Uko_Corleone
300
11
· 11 tahun, 4 bulan yang lalu · 0 jempol

barusan ane udah request ke pak ganis di @CodeSaya terus favorite-in wkwk

DIJOPANLEE
164
1
· 11 tahun, 1 bulan yang lalu · 0 jempol

nih gan , sekedar menambahkan punya ane nih 


$teman=array('jofan','hasanudin','faizal','firman','maullana');

sort($teman);
$indeks=rand(0,count($teman)-1);
$ass=$teman[$indeks];
echo "Maka Pemenangnya adalah : ".strtoupper($teman[$indeks]);

DIJOPANLEE
164
1
· 11 tahun, 1 bulan yang lalu · 0 jempol

syntax : rand(x,y);
x dan y harus diisi integer ya ? kalo misal kan string bisa gak ? f-j gitu misalkan 

arifal
87
0
· 11 tahun yang lalu · 0 jempol

$winner = rand(0, count($family)-1);
kalo syntax di atas maksudnya gimana ya ? terus cara bacanya gimana ? 
tolong bantuannya

ganis
198
841
· 11 tahun yang lalu · 3 jempol

| $winner = rand(0, count($family)-1);

ada dua parameter di function rand()

| 0

sebagai awal dari nilai acaknya, dan

| count($family)-1

sebagai nilai akhirnya, count() adalah fungsi untuk menghitung jumlah unit/element dalam sebuah array. jadi fungsi ini mengembalikan total unit dalam array $family dan menguranginya dengan nilai 1. jadi kalau ada 5 unit di array $family maka kode ini akan mengambalikan nilai 4. 

sehingga kode ini akan meminta komputer untuk mengembalikan nilai acak dari 0 hingga "jumlah element di array kurangi 1"

nyoww
300
16
· 10 tahun, 10 bulan yang lalu · 0 jempol

kodenya nggak ngerti sama sekali nih ane yang ts buat itu tanda tanya fungsinya buat apa 
$i==$winner?strtoupper

ganis
198
841
· 10 tahun, 10 bulan yang lalu · 1 jempol

@nyoww 

itu disebut ternary. fungsinya sama seperti if else.

if ( $a == 5 ) {
 $b = 3;
} else {
 $b = 4;
}

bisa jadi

$a==5 ? $b = 3 : $b=4;

polanya:

kondisi ? jalankan jika kondisi benar : jalankan jika kondisi salah

perhatikan "?" dan ":", mereka adalah pembatasnya.

tambahan, bentuk diatas bisa jadi lebih singkat lagi dengan seperti ini.

$b = $a==5 ? 3 : 4;

kodjodesign.com
190
64
· 10 tahun, 8 bulan yang lalu · 1 jempol

kalo gini bener gak gan ane gak pake count

$kel = array('(ayah) ','(ibu) ','(tante) ','(paman) ','(istri) ','(bibi) ','(adik) ');

$i = sort($kel);
echo join ($kel)."\n";
$acak = rand(6,$i);
echo "Pemenangnya adalah ".strtoupper($kel[$acak]);

r_izal
99
0
· 9 tahun, 9 bulan yang lalu · 0 jempol

Saya pemula


$k = array();
array_push($k,"Rizal");
array_push($k,"Nasrulloh");
array_push($k,"Tammam");
array_push($k,"Pemula");

sort($k);

$ac = rand(0,count($k)-1);

echo strtoupper($k[$ac]);

neyh101
253
8
· 9 tahun, 8 bulan yang lalu · 0 jempol

 $winner = rand(0, count($family)-1);

masih bingung sama maksud kode di atas. Ini pembelajarannya ada di sebelah maan ya? yg saya temuin cuma rand () dan rand(0,10)

yg saya mau tanyakan adalah: -1 itu untuk mengurangi jumlah element di dalam aray? 

misalnya jumlahnya ada 5 element, lalu dikurang 1, kan hasilnya jadi 4 element. kenapa yg muncul bisa 1 element saja?

anefirman
208
96
· 9 tahun, 8 bulan yang lalu · 0 jempol

hai @neyh101

$winner = rand(0, count($family)-1);
saya jelasan dikit, jadi fungsi dari script di atas adalah

membuat angka acak dari 0 hingga jumlah elemet variabel $family dikurang 1 :)

jadi misal elemet variabel $family ada 5-1 maka nilai variabel $family adalah 4

jadi variabel $winner membuat angka acak dari 0 hingga 4 

jika salah mohon di maafkan :)

insanz01
67
8
· 9 tahun, 6 bulan yang lalu · 0 jempol

mas supaya hasilnya menjadi nama gimana yaa ?? masa cuman  integer -_-
$keluarga=array("mazaya","kamil","salma","darayani","insan","nuha");
  echo join(', ',$keluarga)."\n";
echo "berikut adalah nama yang akan mendapat arisan keluarga..\n";
sort($keluarga);
echo join(', ',$keluarga);
echo"\n dan nama yang mendapatkan arisan adalah.. ";
$acak_nama=rand(0,count($keluarga)-1);

$win_arisan=$acak_nama[$keluarga];
echo $acak_nama; echo"Congratulation, ".strtoupper($keluarga);

elcicko
36
6
· 9 tahun, 6 bulan yang lalu · 2 jempol

ganti strtoupper($keluarga) dengan strtoupper($keluarga[$win_arisan])

insanz01
67
8
· 9 tahun, 6 bulan yang lalu · 0 jempol

thanks udah selesai!
$keluarga=array("mazaya","kamil","salma","darayani","insan","nuha");
  echo join(', ',$keluarga)."\n";
echo "berikut adalah nama yang akan mendapat arisan keluarga..\n";
sort($keluarga);
echo join(', ',$keluarga);
echo"\n dan nama yang mendapatkan arisan adalah.. ";
$acak_nama=rand(0,count($keluarga)-1);
$win_arisan=$keluarga[$acak_nama];
echo"Congratulation, ".strtoupper($win_arisan)."!";

garasi177
66
1
· 9 tahun, 5 bulan yang lalu · 0 jempol

@kidofdream : mas mau minta penjelasan nih ko saya ubah jadi -2 hasilnya tetap 1 yah yang muncul :bingungs

januridp
300
190
· 9 tahun, 5 bulan yang lalu · 1 jempol

@garasi177

hasilnya atau yang akan dicetak ya tetap satu om 

marcel
111
0
· 8 tahun, 6 bulan yang lalu · 0 jempol

//kalo kode minimalis begini apa dibolehkan (notifnya sih codenya bener), misal masalah jika seandainya kodenya jd banyak, mohon masukkannya? :D
sort($fan = array('a','b','c','aba','asa','abu'));
echo strtoupper($fan[$acak1=rand(0,count($fan)-1)]);