Angka
Menghasilkan suatu rentang
angka
Pada kasus ini, Anda
akan menggunakan dua titik-akhir dan menghasilkan suatu daftar angka yang ada
di antara kedua titik-akhir tersebut. Anda akan menggunakan fungsi PHP range().
<?php
// rentang_angka.php
// mendefinisikan batas-batas
rentang
$x = 10;
$y = 36;
// menghasilkan rentang sebagai
suatu array
// hasil: (10, 11, 12...35, 36)
$rentang = range($x, $y);
print_r($rentang);
?>
Fungsi range() menerima dua argumen, yakni
batas bawah dan batas atas. Fungsi ini menghasilkan sebuah array yang memuat
semua integer yang ada di antara kedua batas tersebut, termasuk integer pada
kedua batas itu. Anda dapat pula menciptakan sebuah rentang angka yang memiliki
nilai langkah tertentu, dengan melewatkan nilai langkah kepada fungsi range() sebagai argumen ketiga
(opsional). Contoh berikut mengilustrasikan hal ini.
<?php
// rentang_langkah.php
// mendefinisikan batas-batas
rentang
$x = 10;
$y = 30;
// menghasilkan rentang sebagai
suatu array
// memuat setiap angka ketiga
// hasil: (10, 13, 16, 19, 22,
25, 28)
$rentang = range($x, $y, 3);
print_r($rentang);
?>
Aplikasi sederhana
dari fungsi range() adalah untuk
menampilkan tabel perkalian. Kode berikut mengilustrasikan bagaimana
melakukannya, dengan menghasilkan semua angka antara 1 dan 10 dan kemudian
menggunakan angka-angka tersebut untuk menampilkan tabel perkalian untuk angka
5.
<?php
// tabel_perkalian.php
// menampilkan tabel perkalian
foreach (range(1, 10) as $angka)
{
echo "5 x $angka = " . (5 *
$angka) . "\n";
}
?>
Membulatkan angka pecahan
Di sini, Anda akan
membulatkan sebuah angka pecahan. Anda akan menggunakan fungsi round() untuk melakukannya.
<?php
// pembulatan_pecahan.php
// mendefinisikan angka pecahan
$angka = (2/3);
// membulatkan ke integer
// hasil: 1
$angkaBulat = round($angka);
echo $angkaBulat .
"\n";
// membulatkan ke 1 dijit di
belakang titik desimal
// hasil: 0.7
$angkaBulat = round($angka, 1);
echo $angkaBulat .
"\n";
// membulatkan ke 3 dijit di
belakang titik desimal
// hasil: 0.667
$angkaBulat = round($angka, 3);
echo $angkaBulat;
?>
Fungsi round() membulatkan sebuah angka
menjadi angka dengan sejumlah dijit di belakang titik desimal. Pemanggilan round() tanpa argumen kedua opsional
akan menghasilkan integer (0 dijit di belakang titik desimal). Ketika melakukan
pembulatan menjadi integer, fungsi round()
akan menghasilkan nilai integer terdekat. Untuk memaksa pembulatan menjadi
nilai integer bawah atau atas, Anda bisa menggunakan fungsi floor() atau ceil(), sebagai berikut:
<?php
// pembulatan_atas_bawah.php
// mendefinisikan angka-angka
pecahan
$angka = (1/3);
$r = round($angka);
$c = ceil($angka);
$f = floor($angka);
// hasil: "0 1 0"
echo "$r $c $f"
?>
Mencari nilai terendah dan
tertinggi pada runtun tak-terurut
Di sini, Anda akan
mencari nilai maksimum dan nilai minimum pada sebuah runtun angka yang
tak-terurut.
<?php
// nilai_maks_min.php
// mendefinisikan deret angka
$deret = array(76, 7348, 56, 2.6,
189, 67.59, 17594, 2648, 1929.79,54, 329, 820, -1.10, -1.101);
// mengurutkan array
sort($deret);
// mengekstrak nilai maks/min
dari array terurut
// hasil: "Nilai minimum
adalah -1.101 "
$min = $deret[0];
echo "Nilai minimum adalah
$min ";
// hasil: "Nilai maksimum
adalah 17594"
$maks = $deret[sizeof($deret)-1];
echo "Nilai maksimum adalah
$maks";
?>
Menguji angka genap atau
angka ganjil
Pada kasus ini, Anda
akan menguji apakah sebuah angka merupakan angka ganjil atau angka genap. Anda
bisa menggunakan operator bitwise PHP & untuk melakukannya.
<?php
// uji genap_ganjil.php
// mendefinisikan angka
$angka = 31;
// menguji apakah angka genjil
atau genap
// hasil: "Angka
ganjil"
echo (1&$angka) ? "Angka
ganjil" : "Angka genap";
?>
Kode alternatif yang
bisa Anda pakai untuk menguji sebuah angka merupakan angka ganjil atau angka
genap adalah sebagai berikut:
<?php
// uji_genap_ganjil2.php
// mendefinisikan angka
$angka = 10;
// menguji apakah angka mod 2
menghasilkan sisa atau tidak
// hasil: "Angka genap"
echo ($angka % 2) ? "Angka
ganjil" : "Angka genap";
?>
Memformat angka dengan koma
Pada kasus ini, Anda
akan membuat angka yang besar agar dapat lebih mudah dibaca dengan menggunakan
koma untuk mengelompokkan kelompok-kelompok ribuan. Anda bisa menggunakan
fungsi PHP number_format() untuk
melakukannya.
<?php
// format_angka.php
// mendefinisikan sebuah angka
besar
$angka = 3957459.7398;
// membulatkan dan memformat
angka dengan koma
// hasil: "3,957,460"
$angkaDiformat =
number_format($angka);
echo $angkaDiformat;
?>
Fungsi number_format() merupakan perangkat
pembantu yang dapat dipakai ketika melakukan pemformatan integer atau angka
pecahan besar. Ketika dipanggil dengan satu argumen, fungsi ini akan melakukan
pembulatan (jika diperlukan) dan kemudian menyisipkan koma di antara tiap grup
ribuan. Perhatikan bahwa keluaran fungsi merupakan sebuah string, bukan angka,
jadi hasil tersebut tidak dapat dipakai untuk perhitungan numerik.
Jika Anda memiliki
sebuah angka pecahan dan tidak menginginkan adanya pembulatan menjadi integer,
Anda dapat melewatkan kepada number_format()
sebuah argumen kedua, yang akan mengendalikan jumlah dijit yang ada di belakang
titik desimal.
<?php
// format_angka2.php
// mendefinisikan sebuah angka
$angka = 3957459.7398;
// memformat angka dengan koma
dan memiliki
// dua dijit di belakang titik
desimal
// hasil:
"3,957,459.74"
$angkaDiformat =
number_format($angka, 2);
echo $angkaDiformat;
?>
Untuk angka-angka yang
berlaku di Indonesia, Anda juga bisa menginginkan pemisah ribuan dan /atau
titik desimal yang berbeda. Anda dapat melakukannya dengan melewatkan kepada
fungsi number_format() dua argumen
lain, yakni untuk pemisah desimal dan untuk pemisah ribuan. Contoh berikut
mengilustrasikan hal ini:
<?php
// format_angka3.php
// mendefinisikan sebuah angka
$angka = 3957459.7398;
// memformat angka dengan pemisah
desimal
// dan pemisah ribuan yang
berbeda
// hasil:
"3.957.459,74"
$angkaDiformat =
number_format($angka, 2, ',', '.');
echo $angkaDiformat;
?>
Mengganjal angka dengan nol
Di sini, Anda akan
memformat sebuah angka dengan nol-nol kepala atau nol-nol ekor. Anda akan
menggunakan fungsi printf() atau sprintf() dengan penspesifikasi format
yang sesuai.
<?php
// ganjal_nol.php
// hasil: 00012
printf("%05d", 12);
// hasil: 00169.000
printf("%09.3f", 169);
// hasil: 00003475.986000
printf("%015.6f",
3475.986);
// hasil: 74390.99
printf("%02.2f",
74390.98647);
?>
Mengkonversi basis bilangan
Di sini, Anda akan
mengkonversi sebuah angka menjadi basis-basis yang berbeda, yakni basis biner,
oktal, heksadesimal, atau lainnya. Anda akan menggunakan fungsi decbin(), decoct(), dexhec(), atau
base_convert().
<?php
// konversi_basis_bilangan.php
// mendefinisikan sebuah angka
$angka = 100;
// konversi ke biner
// hasil: "Biner: 1100100
"
$bin = decbin($angka);
echo "Biner: $bin ";
// konversi ke oktal
// hasil: "Oktal: 144 "
$oct = decoct($angka);
echo "Oktal: $oct ";
// konversi ke heksadesimal
// hasil: "Heksadesimal: 64
"
$hex = dechex($angka);
echo "Heksadesimal: $hex
";
// konversi ke basis 6;
// hasil: "Basis 6:
244"
$basis6 = base_convert($angka,
10, 6);
echo "Basis 6:
$basis6";
?>
Aplikasi dari
konversi basis yang umum dijumpai adalah untuk mendapatkan nilai-nilai
heksadesimal untuk kode warna RGB (red, green, blue) untuk halaman HTML. Contoh
berikut mengilustrasikan hal ini.
<?php
// kode_warna_rgb.php
// fungsi untuk mengkonversi
warna RGB menjadi
// nilai heksadesimal
function rgb2hex($r, $g, $b) {
return sprintf("#%02s%02s%02s", dechex($r),
dechex($g), dechex($b));
}
// hasil: "#00ff40"
$hex = rgb2hex(0,255,64);
echo $hex;
?>
Mengkonversi derajat dan
radian
Di sini, Anda akan
mengkonversi pengukuran sudut dari dari derajat menjadi radian, atau
sebaliknya. Anda akan menggunakan fungsi PHP rad3deg() dan deg2rad().
<?php
// konversi_derajat_radian.php
// hasil: "90 derajat =
1.57079632679 radian "
$derajat = 90;
$radian = deg2rad($derajat);
echo "$derajat derajat =
$radian radian ";
// hasil: "1.57079632679491
radian = 90 derajat"
$radian = 1.57079632679491;
$derajat = rad2deg($radian);
echo "$radian radian =
$derajat derajat";
?>
Menghitung faktorial
Di sini, Anda akan
menghitung faktorial atas sebuah angka. Anda akan menggunakan loop
hitung-mundur dan mengaklikan angka tersebut dengan semua angka antara angka
tersebut sampai satu.
<?php
// faktorial.php
// mendefinisikan sebuah angka
$angka = 5;
// menginisialisasi variabel
$faktorial = 1;
// menghitung faktorial
// dengan mengalikan angka
tersebut dengan
// semua angka antara angka
tersebut dan 1
// hasil: "Faktorial dari 5
adalah 120"
for ($x=$angka; $x>=1; $x--) {
$faktorial = $faktorial * $x;
}
echo "Faktorial dari $angka
adalah $faktorial";
?>
Menghitung logaritma
Di sini, Anda akan
menghitung logaritma atas sebuah angka. Anda akan menggunakan fungsi PHP log() atau log10().
<?php
// hitung_algoritma.php
// menghitung log natural dari 6
// hasil: "Log natural dari
6 adalah 1.79175946923. "
$logBasisE = log(6);
echo "Log natural dari 6
adalah $logBasisE. ";
// menghitung log basis-10 dari 5
// hasil: "Log basis-10 dari
5 adalah 0.698970004336."
$logBasis10 = log10(5);
echo "Log basis-10 dari 5
adalah $logBasis10.";
?>
Menghitung nilai
trigonometri
Di sini, Anda akan
melakukan perhitungan trigonometrik, seperti menghitung sinus atau kosinus dari
sebuah sudut. Anda akan menggunakan pelbagai fungsi trigonometrik PHP.
<?php
// trigonometri.php
// mendefinisikan sebuah sudut
$sudut = 45;
// menghitung sinus
// hasil: "Sinus:
0.850903524534 "
$sine = sin($sudut);
echo "Sinus: $sine \n";
// menghitung kosinus
// hasil: "Kosinus:
0.525321988818 "
$csine = cos($sudut);
echo "Kosinus: $csine
\n";
// menghitung tangent
// hasil: "Tangent:
1.61977519054 "
$tangent = tan($sudut);
echo "Tangent: $tangent
\n";
// menghitung arc sinus
// hasil: "Arc sinus:
-1.#IND "
$arcSine = asin($sudut);
echo "Arc sinus: $arcSine
\n";
// menghitung arc kosinus
// hasil: "Arc kosinus:
-1.#IND "
$arcCsine = acos($sudut);
echo "Arc kosinus: $arcCsine
\n";
// menghitung arc tangent
// hasil: "Arc tangent:
1.54857776147 "
$arcTangent = atan($sudut);
echo "Arc tangent:
$arcTangent \n";
// menghitung sinus hiperbolik
sine
// hasil: "Sinus hiperbolik:
1.74671355287E+019 "
$hypSine = sinh($sudut);
echo "Sinus hiperbolik:
$hypSine \n";
// menghitung kosinus hiperbolik
// hasil: "Kosinus
hiperbolik: 1.74671355287E+019 "
$hypCsine = cosh($sudut);
echo "Kosinus hiperbolik: $hypCsine
\n";
// menghitung tangent hiperbolik
// hasil: "Tangent
hiperbolik: 1 "
$hypTangent = tanh($sudut);
echo "Tangent hiperbolik:
$hypTangent \n";
?>
Menghasilkan pengenal unik
Di sini, Anda akan
menghasilkan sebuah pengenal numerik acak yang unik dan tidak dapat ditebak.
Anda akan menggunakan kombinasi dari fungsi PHP uniqid(), md5(), dan rand().
<?php
// pengenal_unik.php
// menghasilkan ID unik dan acak
// hasil: "9f41529120ccec0855e2c75d13eb575d"
(contoh)
$id = md5(uniqid(rand(), true));
echo $id;
?>
Menghasilkan angka acak
Di sini, Anda akan
membangkitkan satu atau lebih angka acak. Anda akan menggunakan fungsi PHP rand().
<?php
// angka_acak.php
// membangkitkan sebuah angka
acak
// hasil: 18785 (contoh)
echo rand();
// membangkitkan sebuah angka
acak antara 0 dan 100
// hasil: 4 (contoh)
echo rand(0, 100);
?>
Untuk memperoleh
angka pecahan acak, Anda bisa membagi angka acak yang dihasilkan dengan sebuah
nilai yang besar. Fungsi getrandmax() merupakan
pilihan yang baik. Fungsi ini menghasilkan nilai makasimum yang dapat
dihasilkan oleh fungsi rand() pada
sistem Anda. Contoh berikut mengilustrasikan hal ini.
<?php
// angka_pecahan_acak.php
// menghasilkan sebuah angka pecahan
acak
// hasil: 0.97650074770348
(contoh)
echo rand()/getrandmax();
?>
Jika Anda memerlukan
lebih dari satu angka acak, Anda bisa menggunakan fungsi rand() yang dikombinasikan dengan loop dan array. Berikut adalah
contohnya.
<?php
// angka_acak_deret.php
// menghasilkan sebuah deret
dengan 10 angka acak
// di antara 0 dan 100
// hasil: "12 95 88 87 61 49
61 4 99 75" (contoh)
for ($x=0; $x<10; $x++) {
echo rand(0, 100) . " ";
}
?>
Menghasilkan angka prima
Pada kasus ini, Anda
akan membangkitkan sebuah deret angka prima. Anda akan menggunakan Sieve of
Erastosthenes untuk memfilter semua angka yang bukan prima dan yang prima.
<?php
// angka_prima.php
// menampilkan semua angka prima
dari 2 sampai
// angka tertentu menggunakan
Sieve of Erastothenes
function daftarPrima($akhir) {
// menghasilkan sebuah array yang memuat
// integer antara 2 sampai integer yang
disediakan
$sieve = range(2, $akhir);
// membaca ukuran array
$ukuran = sizeof($sieve);
// mereset pointer array internal
// agar menunjuk ke awal array
reset($sieve);
//
beriterasi di dalam array
while (list($kunci, $nil) = each($sieve)) {
// untuk tiap elemen
// periksa apakah elemen-elemen
tersebut dapat
// dibagi oleh angka tersebut
// hapus elemen terkait dari array jika
ya
for ($x=$kunci+1; $x<$ukuran; $x++)
{
if ($sieve[$x] % $nil == 0) {
unset($sieve[$x]);
}
}
}
// di akhir, elemen-elemen yang tertinggal
// di dalam array adalah prima
return $sieve;
}
// menampilkan semua prima antara
2 dan 100
// hasil: "2 3 5 7...83 89
97"
echo implode(" ",
daftarPrima(100));
?>
Berikut adalah kode
untuk memeriksa apakah sebuah angka adalah angka prima atau tidak.
<?php
// prima_atau_tidak.php
// memeriksa apakah sebuah angka
adalah
// angka prima atau tidak
function ujiPrima($angka) {
// membagi tiap angka
// dengan semua angka yang lebih rendah
darinya
// (kecuali 1) jika minimum salah satu
operasi
// tersebut tidak menghasilkan sisa maka
// angka tersebut bukan prima
for ($x=($angka-1); $x>1; $x--) {
if (($angka % $x) == 0) {
return false;
}
}
return true;
}
// menguji apakah 9 adalah prima
// hasil: "Angka bukan
prima"
echo ujiPrima(9) ? "Angka
prima" : "Angka bukan prima";
?>
Dengan memanfaatkan
fungsi ujiPrima() tersebut, akan menjadi mudah untuk menuliskan sebuah fungsi
yang memenuhi persyaratan umum: yaitu untuk menampilkan n buah angka prima
pertama.
<?php
// tampil_prima.php
// memeriksa apakah sebuah angka
adalah
// angka prima atau tidak
function ujiPrima($angka) {
// membagi tiap angka
// dengan semua angka yang lebih rendah
darinya
// (kecuali 1) jika minimum salah satu
operasi
// tersebut tidak menghasilkan sisa maka
// angka tersebut bukan prima
for ($x=($angka-1); $x>1; $x--) {
if (($angka % $x) == 0) {
return false;
}
}
return true;
}
// menampilkan N buah angka prima
pertama
function getNPrima($n) {
// mendefinisikan sebuah array kosong
// untuk menyimpan angka-angka prima
$arrayPrima = array();
// diawali dengan angka prima pertama
$hitung = 2;
// secara sekuensial menguji angka-angka
// sampai angka jumlah angka prima yang
// diminta diperoleh
while (sizeof($arrayPrima) < $n) {
if (ujiPrima($hitung)) {
$arrayPrima[] = $hitung;
}
$hitung++;
}
return $arrayPrima;
}
// menampilkan 60 angka prima
pertama
echo implode(" ",
getNPrima(90));
?>
Menghasilkan angka Fibonacci
Pada kasus ini, Anda
akan membangkitkan sebuah deret angka-angka Fibonacci. Anda akan mendefinisikan
dua angka pertama, dan menggunakan loop untuk menghitung angka-angka Fibonacci
berikutnya.
<?php
// angka_fibonacci.php
// menghasilkan N angka Fibonacci
pertama
function
bangkitkanAngkaFibonacci($size) {
// mendefinisikan array untuk menampung
// angka-angka Fibonacci
$arrayfibonacci = array();
$arrayfibonacci[0] = 0;
$arrayfibonacci[1] = 1;
// membangkitkan angka-angka
for ($x=2; $x<=$size; $x++) {
$arrayfibonacci[$x] =
$arrayfibonacci[$x-2] +
$arrayfibonacci[$x-1];
}
// menghasilkan array
return $arrayfibonacci;
}
// menampilkan 20 angka Fibonacci
pertama
// hasil: "0 1 1 2 3 5
8...2584 4181 6765"
echo implode(" ",
bangkitkanAngkaFibonacci(20));
?>
Projek menguji angka ganjil
atau genap
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
<head>
<title>Projek: Penguji Angka
Ganjil/Genap</title>
</head>
<body>
<h2>Projek: Penguji Angka
Ganjil/Genap</h2>
<?php
// jika form belum disubmit
// tampilkan form
if (!isset($_POST['submit'])) {
?>
<form method="post"
action="uji_genap_ganjil_form.php">
Masukkan nilai: <br />
<input type="text"
name="angka" size="3" />
<p>
<input type="submit"
name="submit" value="Submit" />
</form>
<?php
// jika form sudah disubmit
// proses masukan form
} else {
// membaca angka dari POST
$angka = $_POST['angka'];
// menguji nilai
// tampilkan pesan
if (($angka % 2) == 0) {
echo 'Anda memasukkan ' . $angka . ',
yang merupakan angka genap.';
} else {
echo 'Anda memasukkan ' . $angka . ',
yang merupakan angka ganjil.';
}
}
?>
</body>
</html>
Projek menentukan penempatan
tenda
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
<head>
<title>Projek: Penentuan
Tenda</title>
</head>
<body>
<h2>Projek: Penentuan
Tenda</h2>
<?php
// jika form belum disubmit
// tampilkan form
if (!isset($_POST['submit'])) {
?>
<form method="post"
action="tenda.php">
Masukkan usia Anda: <br />
<input type="text"
name="usia" size="3" />
<p>
<input type="submit"
name="submit" value="Submit" />
</form>
<?php
// jika form telah disubmit
// proses masukan form
} else {
// membaca usia dari POST
$usia = $_POST['usia'];
// menugaskan ke salah satu dari empat tenda
// berdasarkan usia yang dibaca
if ($usia <= 9) {
echo "Anda ditempatkan di tenda
merah.";
} elseif ($usia > 9 && $usia <= 11) {
echo "Anda ditempatkan di tenda
biru.";
} elseif ($usia > 11 && $usia <= 14) {
echo "Anda ditempatkan di tenda
hijau.";
} elseif ($usia > 14 && $usia <= 17) {
echo "Anda ditempatkan di tenda
hitam.";
} else {
echo "Anda sebaiknya menghubungi
panitia.";
}
}
?>
</body>
</html>
Projek menghitung faktorial
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en">
<head>
<title>Projek: Menghitung
Faktorial</title>
</head>
<body>
<h2>Projek: Menghitung
Faktorial</h2>
<?php
// jika form belum disubmit
// tampilkan form
if (!isset($_POST['submit'])) {
?>
<form method="post"
action="projek_faktorial.php">
Masukkan sebuah angka: <br />
<input type="text"
name="angka" size="3" />
<p>
<input type="submit"
name="submit" value="Submit" />
</form>
<?php
// jika form disubmit
// proses masukan form
} else {
// membaca dari masukan form
$angka = $_POST['angka'];
// memeriksa apakah angka tersebut positif
if ($angka <= 0) {
echo 'ERROR: Silahkan masukkan angka >
0';
exit();
}
// menghitung faktorial
// dengan mengalikan angka tersebut dengan
// semua angka antara dirinya dan 1
$faktorial = 1;
for ($x=$angka; $x>=1; $x--) {
$faktorial *= $x;
}
echo "Faktorial dari $angka adalah:
$faktorial";
}
?>
</body>
</html>
No comments:
Post a Comment