Mas Ellyx, mau tanya nie, contoh kasusnya bgini:
ada sejumlah karakter yg akan dberi nilai bobot dan ranking.
setelah nilai bobot dan rankingnya sdh berisi maka langsung dikalikan.
dari hasil perkalian itu kemudian ditentukan 3 nilai terbawah.
katakanlah:
s => nilai rankingnya 2; => nilai bobotnya 4; => hasil (ranking * bobot) = 8;
a => nilai rankingnya 5; => nilai bobotnya 0; => hasil (ranking * bobot) = 0;
y => nilai rankingnya 3; => nilai bobotnya 0; => hasil (ranking * bobot) = 0;
a => nilai rankingnya 5; => nilai bobotnya 0; => hasil (ranking * bobot) = 0;
setelah ketahuan 3 nilai terbawahnya maka tampilkan kembali 3 karakter yg mempunyai 3 nilai terbawah itu. . . .
permasalahannya: bagaimana cara menampilkan 3 karakter yang mempunyai 3 nilai terbawah itu? padahal kalau melakukan perbandingan maka nilainya sama2 nol, sehingga yg tampil hanya karakter dg yg berada pd posisi atas dlm array (hanya berupa a sebanyak 3, padahal yg diinginkan adalah menampilkan a, y, a)
mhn bantuannya mas,
|Terima ksh banyak sebelumnya,
Silahkan login untuk menjawab!
1
Loading...
Ellyx Christian · Aug 3, 2011 · 1 Suka · 0 Tidak Suka
saya binggung dengan yang kamu maksud, tolong diperjelas, dan tambahkan tipe data yang kamu pakai.
0
Loading...
Gabriel M Ulum · Aug 3, 2011 · 0 Suka · 0 Tidak Suka
begini mas,
saya akan memberi nilai ranking& nilai bobot pada kata yg diinputkan user secara dinamis melalui form index.php,
misalnya, user memasukkan kata: "saya" maka kata saya itu akan diproses melalui array utk dberi bobot&ranking (utk nilai bobot&ranking sy sndiri yg menentukan sesuai rule yg saya buat sndiri),
sehingga, s => $kar[0] a => $kar[1] y => $kar[2] a => $kar[3],
dari indeks array itu ditentukan nilai ranking& bobot, yaitu:
utk proses ranking:
if ($kar[0]){
$rankar1= 2;}
if ($kar[1]){
$rankar2= 5;}
if ($kar[2]){
$rankar3 = 3;}
if ($kar[3]){
$rankar4 = 5;}
utk proses bobot:
if ($kar[0]){
$bokar1 = 4;}
if ($kar[1]){
$bokar2 = 0;}
if ($kar[2]){
$bokar3 = 0;}
if ($kar[3]){
$bokar4 = 0;}
utk proses perkalian ranking dan bobot:
$hasil1 = $rankar1*$bokar1; // 2x4 = 8
$hasil2 = $rankar2*$bokar2; // 5x0 = 0
$hasil3 = $rankar3*$bokar3; // 3x0 = 0
$hasil4 = $rankar4*$bokar4; // 5x0 = 0
selanjutnya saya tentukan 3 nilai terkecilnya dg menghimpun variabel $hasil1- $hasil4 menjadi array, yaitu:
$urut3kecil = array($hasil1,$hasil2,$hasil3,$hasil4);
sort($urut3kecil);
kemudian sy akses dr indeks ke-0 sampe ke-3, yaitu: $urut3kecil[0],$urut3kecil[1],$urut3kecil[2] (sampai di sini programnya sdh sukses),
persoalannya skrg: saya ingin menampilkan kembali karakter yg mempunyai 3 nilai terkecil itu.sementara sy menentukan 3 nilai terbawahnya melalui variabel hasil.
nah, utk itu saya kebingungan mikirnya, mhn bantuannya mas. . . .
sy coba menggunakan perbandingan sprti ini, tp gk sesuai mas:
if ($urut3kecil[0] == hasil1){
echo"$kar[0]";} // hal ini karena $hasil1 linear dg $kar[0]
else
if($urut3kecil[0] == hasil2){
echo"$kar[1]";} // hal ini karena $hasil2 linear dg $kar[1]
else
if($urut3kecil[0] == hasil3){
echo"$kar[2]";} // hal ini karena $hasil3 linear dg $kar[2]
else
if($urut3kecil[0] == hasil4){
echo"$kar[3]";} // hal ini karena $hasil4 linear dg $kar[3]

if ($urut3kecil[1] == hasil1){
echo"$kar[0]";}
else
if ($urut3kecil[1] == hasil2){
echo"$kar[2]";}
else
dst (seperti proses $urut3kecil[0])

if ($urut3kecil[2] == hasil1){
echo"$kar[0]";}
else
if ($urut3kecil[2] == hasil2){
echo"$kar[2]";}
else
dst (seperti proses $urut3kecil[0])
nah, maksud sy seperti itu lagikanya (kurang lebih), tapi koding di atas tdk valid jika nilai terkecilnya tiga2nya bernilai nol,
maka yg tampil hanya karakter yg pertama ja, misal yg pertama a maka yg tampil hanya a a a,
padahal sy ingin menampilkan 3 karakter yg bernilai terkecil, yaitu a y a. . . .
mhn bantuannya mas,
terima ksh sebelumnya, maaf agak pnjang cz q jg bngung cara jelasinya, he he he. . .
0
Loading...
Ellyx Christian · Aug 3, 2011 · 0 Suka · 0 Tidak Suka
kembali saya bingung, tidak terdeskripsi dengan baik, apa itu $kar[0],$kar[1],$kar[2],$kar[3]? apa itu array? tolong ditulis dengan jelas.
0
Loading...
Gabriel M Ulum · Aug 3, 2011 · 0 Suka · 0 Tidak Suka
ini saya copy paste source code dummy-nya yg udh jalan mas, tp yg ini msh statis (terima ksh atas kesabarannya mas, mhn maaf sy jg bngung cara jelasinya cz br belajar php):

<?php
$kata = array(s,a,y,a);
$jumkar = count($kata);
for ($i=0;$i<$jumkar;$i++){
$kar[$i] = $kata[$i];
echo"$kar[$i] <br>";
}
// proses ranking
if ($jumkar %2 ==0){
$rankar1=2;
$rankar2=5;
$rankar3=3;
$rankar4=5;
}else{
$rankar1=1;
$rankar2=2;
$rankar3=3;
$rankar4=4;}
// proses bobot
if ($kar[0] == s){
$bokar1=4;
}else
if ($kar[1] == a){
$bokar2=0;
}else
if ($kar[2] == y){
$bokar3=0;
}else
if ($kar[3] == a){
$bokar4=0;
}
// hasil perkalian
$hasil1 = $rankar1 * $bokar1;
$hasil2 = $rankar2 * $bokar2;
$hasil3 = $rankar3 * $bokar3;
$hasil4 = $rankar4 * $bokar4;


echo "Nilai total utk karakter 1 (s): ".$hasil1." <br>";
echo "Nilai total utk karakter 2 (a): ".$hasil2." <br>";
echo "Nilai total utk karakter 3 (y): ".$hasil3." <br>";
echo "Nilai total utk karakter 4 (a): ".$hasil4." <br>";
echo"<br>";
// proses penentuan 3 nilai terkecil
$urut = array($hasil1,$hasil2,$hasil3,$hasil4);
sort($urut);

echo"Terkecil 1: ".$urut[0]." <br>";
echo"Terkecil 2: ".$urut[1]." <br>";
echo"Terkecil 3: ".$urut[2]." <br>";
?>

klo tdk merepotkan mhn dkompail dl mas cz sy blom bs jelasin ne,
oya, permaslahannya adalah: sy pengen menampilkan kembali 3 karakter yg mempunyai nilai total terkecil itu mas, cma klo yg diatas msh statis jd bs dtebak 3 nilai terkecilnya. yg saya maksud adalah sistem bersifat dinamis dan bisa memproses kata yg berbeda2. setiap kata akan mempunyai kombinasi nilai total yg berbeda2 (belum tentu urut sprti yg statis di atas itu).
mhn penjelasannya mas, sekali lg terima ksh atas kesabarannya. . . .:-)
0
Loading...
Ellyx Christian · Aug 4, 2011 · 0 Suka · 0 Tidak Suka
saya belum bisa kasi tahu, karena tidak mengerti dengan apa yang ingin kamu buat dan bagaimana proses rangkig dan penentuan bobot. Apakah hanya karater s,y,a saja yang diberi bobot? apakah hanya akan 4 karakter? dari yang saya lihat kode kamu hanya bisa memproses 4 karakter. Tolong perjelas dulu proses itu.
0
Loading...
Gabriel M Ulum · Aug 5, 2011 · 0 Suka · 0 Tidak Suka
-saya ingin membuat sistem yg bisa memberi nilai ranking dan bobot terhadap perkarakter dari kata yg dimasukkan user secara dinamis (kata bs berubah2/ tdk hanya terpaku pd 4 karakter )
-proses ranking& bobot persis sperti coding di atas, bedanya klo di sistem yg sebenarnya bs memproses kata/ perkarakternya secara dinamis (coding di atas sy bwt statis hanya biar lbh mudah visualisasinya karena sy blom bs jelasin scr deskriptif)
-proses penentuan nialai ranking& bobot sy bwt sndiri sesuai dg rule yg sy bwt sndiri jg
-karakter yg diberi bobot& ranking adalah semua karakter yg menyusun sebuah kata yg dimasukkan oleh user scr dinamis, kemudian nilai ranking& bobot itu dkalikan utk mndapatkan nilai total utk tiap karakter (persis sprti coding)
-lalu dr nilai totol utk tiap karakter itu dcari 3 nilai terbawahnya utk ditampilkan lagi karakter2 yg mempunyai 3 nilai terbawah itu, utk cntoh yg sy bwt di koding kebetulan sistem memproses kata: “saya”
-nah, setelah kata saya diberi ranking dan bobot utk tiap karakternya maka ditemukan bahwa 3 karakter yg mempunyai nilai terbawah adalah: a, y, a dg rincian nilai total sbg berikut (jk coding di atas dkompail):
S => nilai rankingnya = 2; nilai bobotnya = 4; nilai total (ddapat dr ranking*bobot) = 8;
A = nilai rankingnya = 5; nilai bobotnya = 0; nilai total (ddapat dr ranking*bobot) = 0;
Y => nilai rankingnya = 3; nilai bobotnya = 0; nilai total (ddapat dr ranking*bobot) = 0;
A = nilai rankingnya = 5; nilai bobotnya = 0; nilai total (ddapat dr ranking*bobot) = 0;

Coding di atas jk dkompail akan melakukan proses sprti itu dan menghasilkan nilai sprti itu, nah dr situ kan kelihan klo yg mempunyai nilai terbawah dr sekian karakter dr kata yg dmasukkan adalah: a, y, a
Nah, persoalannya bg sy skrg ingin menampilkan lg karakter2 sebanyak 3 karakter yg mempunyai nilai total terbawah itu???
(coding di atas msh statis shg nilai terbawahnya mudah ditebak, sdgkan sistem yg ingin sy buat adalah bersiat dinamis sehingga kata yg dproses bs berubah2, kepentingan sy hanya menampilkan kembali 3 karakter penyusun kata yg dmasukkan user dg niali terkecil/ 3 nilai terbawah). Sistem yg udh sy bwt persis sprti coding di atas prosesnya. . .
Terima ksh sebelumnya,
0
Loading...
Gabriel M Ulum · Aug 5, 2011 · 0 Suka · 0 Tidak Suka
Ini tampilan hasil compaile coding di atas mas:
s
a
y
a

Nilai total utk karakter 1 (s): 8
Nilai total utk karakter 2 (a): 0
Nilai total utk karakter 3 (y): 0
Nilai total utk karakter 4 (a): 0

Terkecil 1 : 0
Terkecil 2: 0
Terkecil 3:0

Nah, dari situ sy kan cuma bs menampilkan nilai terkecilnya saja (pencocokan nialai total dg karakter yg bersangkutan dtentukan dg menyiapkan sejumlah variabel sesuai kemunculan karakter dlm array), padahal stlh 3 nilai terbawahnya ketahuan sy ingin menampilkan/ memanggil kembali 3 karakter yg tlh divonis mempunyai nilai terbawah itu. Klo dlm contoh coding di atas kebetulan 3 nilai terbawahnya tiga2nya semuanya bernilai 0, sy ingin sistem bs mencocokkan sndiri karakter apa saja yg mempunyai nilai terbawah utk kemudian ditampilkan lagi karakter2nya/ dipanggil lg karakter2nya (klo pd contoh coding di atas karakter2 yg mempunyai nilai terkecil/3 nilai terbawah adalah: a, y, a). . .
Terima ksh,
0
Loading...
Ellyx Christian · Aug 5, 2011 · 0 Suka · 0 Tidak Suka
saya rasa solusinya adalah menggunakan associated array, tapi saya tidak bisa kasi tahu caranya karena kamu kasi kode static (hanya kode bayangan).
0
Loading...
Gabriel M Ulum · Aug 6, 2011 · 0 Suka · 0 Tidak Suka
Ini source code aslinya mas (maaf agak panjang), tapi msh terbatas pd 5 karakter dan hrs berisi semua (coding sy simpan dg nama: karakter.php):
<html>
<head>
<title> Sistem Pemroses Karakter </title>
</head>
<body>
<form action="karakter.php" method="post">
<table>
<tbody>
<tr>
<td>Kata </td>
<td><textarea name="input" cols="20" rows="3" id="input"></textarea></td>
<tr> </tr>
<td><input name="kirim" value="Proses" type="submit"></td>
</tr>
</tbody>
</table>
</form>
<?php
$kata = $_POST ;
function perkarakter($kata, $n) {
$jumSub = ceil(strlen($kata)/$n);
$hasil = array();
for ($i=0; $i<=$jumSub-1; $i++) {
$hasil[$i] = substr($kata, $i*$n, $n);
}
return $hasil;
}

$pekar = perkarakter($kata,1);
$jumkar = strlen($kata);
for ($i=0; $i<$jumkar; $i++){
$kar[] = $pekar[$i];
echo"$kar[$i] <br>";
}
// proses perankingan karakter
if ($jumkar %2 == 0){
$rankar1 = $jumkar;
$rankar2 = $jumkar +1;
$rankar3 = $jumkar +2;
$rankar4 = $jumkar +3;
$rankar5 = $jumkar +4;
}else{
$rankar1 = $jumkar;
$rankar2 = $jumkar-1;
$rankar3 = $jumkar-2;
$rankar4 = $jumkar-3;
$rankar5 = $jumkar-4;
}
// proses pembobotan karakter
//karakter ke-1
if($kar[0] == a or $kar[0]== b){
$bokar1 = 7;
}else
if($kar[0] == c or $kar[0] == d){
$bokar1 = 5.5;
}else{
$bokar1 =0;
}
//karakter ke-2
if($kar[1] == a or $kar[1]== b){
$bokar2 = 7;
}else
if($kar[1] == c or $kar[1] == d){
$bokar2 = 5.5;
}else{
$bokar2 =0;
}
//karakter ke-3
if($kar[2] == a or $kar[2]== b){
$bokar3 = 7;
}else
if($kar[2] == c or $kar[2] == d){
$bokar3 = 5.5;
}else{
$bokar3 =0;
}
//karakter ke-4
if($kar[3] == a or $kar[3]== b){
$bokar4 = 7;
}else
if($kar[3] == c or $kar[3] == d){
$bokar4 = 5.5;
}else{
$bokar4 =0;
}
//karakter ke-5
if($kar[4] == a or $kar[4]== b){
$bokar5 = 7;
}else
if($kar[4] == c or $kar[4] == d){
$bokar5 = 5.5;
}else{
$bokar5 =0;
}
// perkalian bobot dan ranking
$hasil1 = $rankar1*$bokar1;
$hasil2 = $rankar2*$bokar2;
$hasil3 = $rankar3*$bokar3;
$hasil4 = $rankar4*$bokar4;
$hasil5 = $rankar5*$bokar5;

echo"nilai total karakter ke-1: $hasil1 <br>";
echo"nilai total karakter ke-2: $hasil2 <br>";
echo"nilai total karakter ke-3: $hasil3 <br>";
echo"nilai total karakter ke-3: $hasil4 <br>";
echo"nilai total karakter ke-3: $hasil5 <br>";
echo"<br>";
// proses penentuan 3 nilai terbawah
$nilai_3terbawah = array($hasil1,$hasil2,$hasil3,$hasil4,$hasil5);
sort($nilai_3terbawah);
echo ">><< Inilah 3 nilai terkecil<br>";
echo "nilai terkecil 1 adalah: ".$nilai_3terbawah[0]." <br>";
echo "nilai terkecil 2 adalah: ".$nilai_3terbawah[1]." <br>";
echo "nilai terkecil 3 adalah: ".$nilai_3terbawah[2]." <br>";
echo "<br>";
?>
</body>
</html>

Coding di atas udh bs memproses kata scr dinamis tp msh terbatas pd 5 karakter (masalah lg, he he), mhn solusi utk mencocokkan 3 nilai terbawahnya dg karakternya (agar tiga karakter yg bersesuaian dg nilai terbawahnya bs dpanggil lg). . . .
Terima ksh,
0
Loading...
Ellyx Christian · Aug 6, 2011 · 0 Suka · 0 Tidak Suka

Untuk menyisipkan kode gunakanCara menyisipkan kode/skrip.

algoritma kamu sangat statis,jadi saya tidak bisa membantu banyak. Coba gunakan fungsi array_multisort, seperti:
ganti bagian:
$nilai_3terbawah = array($hasil1,$hasil2,$hasil3,$hasil4,$hasil5);
sort($nilai_3terbawah);
echo ">><< Inilah 3 nilai terkecil<br>";
echo "nilai terkecil 1 adalah: ".$nilai_3terbawah[0]." <br>";
echo "nilai terkecil 2 adalah: ".$nilai_3terbawah[1]." <br>";
echo "nilai terkecil 3 adalah: ".$nilai_3terbawah[2]." <br>";
echo "<br>";
menjadi:
$nilai_3terbawah = array($hasil1,$hasil2,$hasil3,$hasil4,$hasil5);
array_multisort($ranks,$kar);
echo ">><< Inilah 3 nilai terkecil<br>";
echo "nilai terkecil 1 adalah: ".$nilai_3terbawah[0].",Karakter: ".$kar[0]." <br>";
echo "nilai terkecil 2 adalah: ".$nilai_3terbawah[1].",Karakter: ".$kar[1]." <br>";
echo "nilai terkecil 3 adalah: ".$nilai_3terbawah[2].",Karakter: ".$kar[2]." <br>";
echo "<br>";