Selamat Datang di blog sederhana saya,Semoga apa yang Kalian Inginkan dapat terpenuhi disini.

PHP : Perulangan

Pernahkah kita melakukan suatu pekerjaan berulang-ulang, seperti mandi tiap pagi dan sore hari, tidur di malam hari, dan rutinitas yang lain yang itu berulang ulang ? di dalam pemrograman kita pasti akan sering menemui berbagai permasalahan yang membutuhkan perulangan. 

Di pemrograman PHP, untuk mengimplementasikan perulangan / looping, ada beberapa fungsi / syntax yang disediakan antara lain for, foreach, while dan do.... while. Mari kita pelajari satu persatu. Adapun Flow / tahapan perulangan jika digambar berupa flowchart adalah seperti gambar berikut.

Contoh Kasus

Misalnya kita akan menampilkan kalimat "Aku Cinta Padamu" 10 kali di layar komputer, bagaimana kodenya dengan PHP ? mungkin seperti kode berikut.
<?php 

echo "Aku Cinta Padamu </br/>";
echo "Aku Cinta Padamu </br/>";
echo "Aku Cinta Padamu </br/>";
echo "Aku Cinta Padamu </br/>";
echo "Aku Cinta Padamu </br/>";
echo "Aku Cinta Padamu </br/>";
echo "Aku Cinta Padamu </br/>";
echo "Aku Cinta Padamu </br/>";
echo "Aku Cinta Padamu </br/>";
echo "Aku Cinta Padamu </br/>";

?>
kode di atas jika kita jalankan akan menghasilkan tampilan seperti berikut.

itu jika 10 kali, kalau harus menampilkan 100 kali ? 1000 kali ? atau lebih ? apa masih mungkin kita menulis kode sebanyak itu ?

For

Perintah for mempuyai struktur syntax sebagai berikut : 
<?php 

for ( variabel counter; check variabel counter; increment variabel counter) {
// perintah yang dijalankan berulang
}
?>
pada bagian variabel counter merupakan bagian untuk mendefinisikan variabel / membuat variabel bertipe integer yang kemudian dilakukan checking pada bagian check variabel counter. Jika checking bernilai true, maka perintah yang berada di dalam blok kode / kurung kurawal "{ }" akan dijalankan dan setelah di jalankan akan melakukan increment / decrement variabel dan diulang terus menerus sampai hasil check variabel counter bernilai false. Untuk lebih jelasnya mari kita langsung praktek: 
<?php 
$max = 10;
for ( $i = 0; $i < $max ; $i++) {
echo "Aku Cinta Padamu <br/>";
}
?>
dan coba dijalankan di browser, maka hasilnya akan mengeluarkan kalimat "Aku Cinta Padamu" sebanyak 10 kali. Sekarang mari kita bedah jalannya program: 
  1. pertama kita definisikan variabel $max yang berisi batas maksimal perulangan yang dalam hal ini kita hanya akan menampilkan kalimat "Aku Cinta Padamu" sebanyak 10 kali
  2. for adalah perintah untuk melakukan perulangan
  3. kemudian kita membuat valiabel $i = 0; yang kita set nilainya 0
  4. kemudian variabel $i di cek dan dibandingkan apakah $i lebih kecil dari $max.
  5. jika $i lebih kecil dari $max maka jalankan perintah echo "Aku Cinta Padamu";
  6. kemudian $i dilakukan increment / penambahan nilai 1 dengan perintah $i++ sehingga nilai variabel $i menjadi 1
  7. kemudian berulang terus ke poin nomor 4, 5, 6 sampai nilai $i sama dengan nilai $max
  8. selesai

While

Untuk perintah while, struktur kodenya seperti berikut : 
<?php 

while (condition is true) {
code to be executed;
}

?>
kemudian untuk implementasi studi kasus di atas, seperti baris kode berikut: 
<?php 

$i = 0;
$max = 10;
while ( $i < $max ) {
echo "Aku Cinta Padamu <br/>";
$i++;
}

?>
dan coba dijalankan di browser, maka hasilnya akan mengeluarkan kalimat "Aku Cinta Padamu" sebanyak 10 kali. Sekarang mari kita bedah jalannya program:

  1. pertama, kita buat variabel $i sebagai counter dan $max sebagai batas maksimal menjalankan program
  2. while adalah perintah untuk melakukan perulangan
  3. $i < $max adalah melakukan pengecekan, apakah nilai dari $i lebih kecil dari nilai $max. Jika Iya / True / Benar, maka jalankan poin nomor 4 dan Jika Salah / False maka jalankan poin 5
  4. jalankan perintah echo "Aku Cinta Padamu <br/>"; dan lakukan increment / penambahan  1 nilai pada variabel $i dengan perintah $i++; sehingga $i menjadi bernilai 1. Kemudian ulang / kembali ke poin 3.
  5. selesai.

Do... While

Perbedaan While dengan Do While adalah pada kode while, nilai variabel di bandingkan dulu / di cek, jika benar baru kode yang di dalam blok akan dijalankan sedangkan pada Do... While blok kode dijalankan dulu baru dilakukan cek nilai variabel. Adapun perintah Do... while mempunyai struktur kode seperti berikut.
<?php 

do {
code to be executed;
} while (condition is true);

?>
dan untuk implementasi studi kasus adalah seperti berikut :
<?php 

$i = 0;
$max = 10;

do {
echo "Aku Cinta Padamu <br/>";
$i++;
} while ($i <= $max);

?>
dan coba dijalankan di browser, maka hasilnya akan mengeluarkan kalimat "Aku Cinta Padamu" sebanyak 10 kali. Sekarang mari kita bedah jalannya program:


    1. pertama, kita buat variabel $i sebagai counter dan $max sebagai batas maksimal menjalankan program
    2. do adalah blok program yang akan di jalankan, yaitu menjalankan perintah echo "Aku Cinta Padamu <br/>"; dan melakukan penambahan nilai 1 angka terhadap variabel $i dengan perintah $i++; sehingga $i bernilai 1.
    3. kemudian cek nilai variabel $i dengan kode $i <= $max. Jika $i lebih kecil atau sama dengan $max maka jalankan kembali perintah nomor 2, dan Jika tidak maka jalankan perintah nomor 4.
    4. selesai.

    Menggabungkan Perulangan Dengan Percabangan

    Studi Kasus : Menghitung Bilangan Ganjil Dan Genap Antara 0 sampai 10

    For : 

    <?php 

    $max = 10;

    for ($i = 0; $i <= $max; $i++) {
    if ($i % 2 == 0){
    echo $i . " Genap <br/>";
    } else {
    echo $i . " Ganjil <br/>";
    }
    }

    ?>

    While:

    <?php 

    $i = 0;
    $max = 10;

    while ($i <= $max) {
    if ($i % 2 == 0){
    echo $i . " Genap <br/>";
    } else {
    echo $i . " Ganjil <br/>";
    }
    $i++;
    }

    ?>

    Do...While:

    <?php 

    $i = 0;
    $max = 10;

    do {
    if ($i % 2 == 0){
    echo $i . " Genap <br/>";
    } else {
    echo $i . " Ganjil <br/>";
    }
    $i++;
    } while ($i <= $max);

    ?>
    dan ketiganya apabila di jalankan akan menghasilkan seperti gambar berikut :

    sementara cukup sekian dulu ya, untuk perulangan foreach nanti saya bahas bareng sama membahas array. Sekian dari saya, kita lanjut membahas Function pada tulisan saya selanjutnya.

    Share:

    PHP : Percabangan

    Di dunia nyata, sering kali kita harus membuat keputusan atas beberapa pilihan. Contoh : 
    • Jika uang tinggal sedikit, maka makan mie instan ( anak kos )
    • Jika hari minggu, maka libur kerja
    • Jika ada adzan, maka sholat
    dan masih banyak lagi situasi-situasi yang mengharuskan kita untuk mengambil tindakan.

    Di dalam dunia pemrograman, contoh kasus seperti di atas biasa disebut percabangan. Adapun percabangan mempunyai skema seperti pada gambar berikut.
    alurnya bisa dijelaskan seperti berikut : 
    • saat ada kondisi tertentu terpenuhi, maka kita akan menjalankan suatu proses namun jika kondisi tidak terpenuhi maka kita akan menjalankan proses yang lain.
    di pemrograman PHP, untuk menjalankan percabangan ada beberapa syntax antara lain if ... else .... ,dan switch...case.. mari kita pelajari satu per satu.

    Contoh Kasus

    Kita di sekolah pasti pernah di ajari untuk menghitung tahun kabisat kan ? hayo... ingat apa tidak ? 
    Tahun kabisat adalah tahun yang habis di bagi 4 dan sebagai tandanya pasti di bulan februari jumlahnya ada 29 hari. Bagaimana kalau kita coba buat algoritmanya dan implementasikan ke program PHP. Algoritmanya antara lain seperti berikut : 
    1. Buat variabel $tahun dan isi dengan tahun yang akan dihitung dan $label yang akan diisi hasil dari perhitungan
    2. Cari sisa bagi $sisa_bagi = $tahun % 4; dengan asumsi bahwa tahun kabisat adalah tahun yang habis di bagi 4.
    3. Jika $sisa_bagi == 0 Maka $label = "Kabisat", Selain Itu $label = "Bukan Kabisat".
    4. Tampilkan $hasil ke layar
    gimana ? mudah bukan ? sekarang kita implementasikan ke dalam program PHP.

    If ... Else 

    Di pemrograman PHP, patern atau pola penggunaan If else adalah seperti berikut : 
    <?php 

    if ( kondisi ) { // periksa kondisi apakah bernilai true atau false
    // kode yang di jalankan jika kondisi bernilai true
    } else {
    // kode yang dijalankan jika kondisi bernilai false
    }
    ?>
    Pada kode di atas, sudah saya sertakan penjelasannya, nah sekarang kita implementasikan algoritma menghitung kabisat menggunakan If Else seperti pada kode di atas.
    <?php 

    $tahun = 2018; // tahun yang akan dihitung
    $hasil = null; // variabel untuk menyimpan hasil perhitungan
    $sisa_bagi = $tahun % 4; // menghitung sisa bagi dengan modulo
    if ( $sisai_bagi == 0) { // periksa apakah habis dibagi 4
    $hasil = "Kabisat"; // jika ya
    } else {
    $hasil = "Bukan Kabisat"; // jika tidak
    }

    echo $tahun . " " . $hasil; // tampilkan ke layar
    ?>
    gimana ? gampang bukan ? sekarang coba buat dengan contoh kasus yang lain seperti Menghitung bilangan prima atau bukan.

    Switch .. Case ...

    Setelah kita mencoba implementasi If Else, sekarang kita coba gunakan Switch... Case. Syntax atau pola penggunaan Switch Case adalah sebagai berikut : 
    <?php 

    switch ( kondisi ) {

    case pembanding_1:
    // jalankan jika sama dengan pembanding_1
    break;
    case pembanding_2:
    // jalankan jika sama dengan pembanding_2
    break;
    default:
    // jalankan jika tidak ada yang sesuai
    break;

    }
    ?>
    sekarang coba kita implementasikan contoh kasus bilangan kabisat tadi memakai Switch Case. 
    <?php 

    $tahun = 2018;
    $hasil = null;
    $sisa_bagi = $tahun % 4;

    switch ( $sisa_bagi ) {

    case 0:
    $hasil = "Kabisat";
    break;
    default:
    $hasil = "Bukan Kabisat";
    break;

    }

    echo $tahun . " " . $hasil;
    ?>
    pada kode di atas, pembandingnya hanya 0 ( karena jika tahun % 4 === 0), dan jika sisa baginya selain 0 maka yang di jalankan adalah blok kode default. Terlihat lebih panjang kalau pakai Switch Case ya ? iya kalau percabangannya cuma 2 kondisi. Kalau percabangannya punya beberapa kondisi lebih baik kita pakai Switch Case daripada If Else karena kode lebih mudah dibaca sekaligus proses komputasi lebih cepat. Contoh Kasus :

    "Kita minta dibelikan Handphone baru ke orang tua. Kita mintanya handphone IPhone. Tapi kalaupun tidak IPhone bolehlah Xiaomi atau Samsung. Selain itu kita tidak mau."

    Bagaimana Algoritmanya ?

    1. Buat variabel $permintaan yang berisi merk permintaan kita (IPhone), variabel $jawaban yang berisi jawaban kita atas barang yang dibelikan orang tua, dan variabel $pembelian yang berisi merk handphone yang dibelikan orang tua.
    2. Periksa Apakah $pembelian sesuai dengan $permintaan.
    3. Jika $pembelian == $permintaan Maka $jawaban = "Diterima"
    4. Selain itu, Jika $pembelian == "Samsung" Maka $jawaban = "Diterima"
    5. Selain itu, Jika $pembelian == "Xiaomi", Maka $jawaban = "Diterima"
    6. Selain itu Maka $jawaban = "Ditolak"
    7. Tampilkan $jawaban
    sekarang kita coba pakai If Else dan Switch Case
    • If Else :
    <?php 

    $permintaan = "IPhone";
    $pembelian = "Iphone";
    $jawaban = null;

    if ($pembelian == $permintaan) {
    $jawaban = "Diterima";
    } elseif ($pembelian == "Samsung") {
    $jawaban = "Diterima";
    } elseif ($pembelian == "Xiaomi") {
    $jawaban = "Diterima";
    } else {
    $jawaban = "Ditolak";
    }

    echo $pembelian . " " . $jawaban ;
    ?>
    • Switch Case :
    <?php 

    $permintaan = "IPhone";
    $pembelian = "Iphone";
    $jawaban = null;

    switch ( $pembelian ) {

    case $permintaan:
    $jawaban = "Diterima";
    break;
    case "Samsung":
    $jawaban = "Diterima";
    break;
    case "Xiaomi":
    $jawaban = "Diterima";
    break;
    default:
    $jawaban = "Ditolak";
    break;

    }

    echo $pembelian . " " . $jawaban ;
    ?>
    karena kode yang dijalankan antara case $permintaan, case "Samsung", dan case "Xiaomi" sama persis maka bisa di ringkas menjadi seperti berikut :
    <?php 

    $permintaan = "IPhone";
    $pembelian = "Iphone";
    $jawaban = null;

    switch ( $pembelian ) {

    case $permintaan:
    case "Samsung":
    case "Xiaomi":
    $jawaban = "Diterima";
    break;
    default:
    $jawaban = "Ditolak";
    break;

    }

    echo $pembelian . " " . $jawaban ;
    ?>
    gimana ? lebih ringkas yang mana ?

    sementara cukup sekian dulu, saya lanjut pada pembahasan perulangan pada tulisan saya selanjutnya.

    Update : 
    Selanjutnya : PHP Perulangan / Looping => https://catatan-pemrograman.blogspot.com/2018/12/php-perulangan.html
    Share:

    PHP : Type Data dan Operator

    Setelah pada tulisan saya sebelumnya saya membahas tentang variabel, pada tulisan kali ini saya akan membahas tentang type data dan operator aritmatika. Anda bisa membuka tulisan saya sebelumnya di tautan berikut : https://catatan-pemrograman.blogspot.com/2018/12/php-variabel.html

    Type Data

    Di PHP, data yang disimpan di variabel mempunyai beberapa type dengan penggunaan yang berbeda pula, antara lain : 

    • Integer
    Tipe data integer / angka adalah tipe data yang berupa angka bulat. Contoh angka 1, 2, 3, 4, 5, 10, dst. Contoh penggunaan tipe data integer di PHP adalah seperti berikut : 
    <?php 
    $angka_1 = 5;
    $angka_2 = 10;
    $angka_3 = 30;
    $angka_4 = $angka_1 + $angka_2 + $angka_3;
    echo $angka_4;
    ?>
    pada kode diatas, ada beberapa variabel yang berisi data integer dan contoh penggunaannya ( diatas contoh penjumlahan ). Tipe data integer dapat dikenai operasi aritmatika seperti tambah, bagi, kurang dan kali seperti perhitungan matematika pada umumnya.
    • Float
    Tipe data Float adalah tipe data angka desimal yang biasa memiliki angka dibelakang koma. 
    Yang perlu diperhatikan adalah penulisan koma pada bilangan float adalah menggunakan tanda titik (.). Contoh : 0.5, 1.5, 10.4. Sama seperti tipe data integer, tipe data float dapat juga dikenai operasi perhitungan aritmatika. Contoh di PHP : 
    <?php 
    $angka_1 = 5.1;
    $angka_2 = 10.5;
    $angka_3 = 30.2;
    $angka_4 = $angka_1 + $angka_2 + $angka_3;
    echo $angka_4;
    • String
    String adalah tipe data text atau kalau kita biasa menyebut kalimat atau kata. Berbeda dengan Integer dan Float, String tidak bisa dikenai operasi aritmatik seperti penjumlahan dsb. Namun String bisa dikenakan operasi seperti menyambung, membalik kata, menghilangkan huruf tertentu, dsb. Cara penulisan String adalah harus diapit tanda petik satu (') atau petik atas dobel ("). Contoh : 

    <?php 
    $nama_depan = "Nur";
    $nama_belakang = "Hidayatullah";
    $nama_lengkap = $nama_depan . " " . $nama_belakang;
    echo $nama_lengkap;
    ?>
    kode di atas merupakan kode untuk menyambung dua variabel ber tipe String kemudian menampilkannya ke layar.
    • Boolean
    Tipe data boolean adalah tipe data yang hanya berisi true dan false. Tipe data ini biasanya dipakai saat percabangan atau menyimpan status tertentu. Contoh : 
    <?php 
    $nama_depan = "Nur";
    $nama_belakang = "Hidayatullah";
    $status_kawin = true; // ini adalah tipe data boolean
    echo $status_kawin;
    ?>
    • Array
    Tipe data Array merupakan tipe data yang bisa berisi data lebih dari satu. Array biasa digunakan dalam pemrograman modern karena sifatnya yang dinamis. Array terdiri dari key dan value. Contoh data array : 

    <?php 
    $siswa = array(
    "NUR HIDAYATULLAH",
    "RIAN TRI C",
    "IRFAN HARIS"
    );

    $siswa_2 = array(
    array(
    "nama" => "NUR HIDAYATULLAH",
    "kelas"=> "D",
    "umur" => 27
    ),
    array(
    "nama" => "RIAN TRI C",
    "kelas"=> "D",
    "umur" => 26
    ),
    array(
    "nama" => "IRFAN HARIS",
    "kelas"=> "D",
    "umur" => 29
    )
    );
    ?>
    kedepan, kita akan banyak menggunakan tipe data array ini.

    Operator

    Operator merupakan tanda / kode untuk melakukan operasi terhadap variabel. Operator ada beberapa, antara lain : 

    • Operator Aritmatika
    Operator arimatika berfungsi untuk melakukan perhitungan matematika terhadap variabel / data bertipe integer atau float. Ada beberapa operator aritmatika antara lain : 
    1. +, yaitu tanda tambah, digunakan untuk melakukan penjumlahan antara dua data.
    2. - , yaitu tanda kurang, digunakan untuk melakukan pengurangan antara dua data.
    3. * , digunakan untuk perkalian
    4. / , digunakan untuk pembagian
    5. % , digunakan untuk mencari sisa bagi / modulo
    6. ** , duginakan untuk mencari exponential
    contoh penggunaan oerator aritmatika : 

    <?php 
    $angka_1 = 10;
    $angka_2 = 20;

    // penjumlahan
    $angka_3 = $angka_1 + $angka_2;
    echo $angka_3;
    echo "<br/>";
    // pengurangan
    $angka_4 = $angka_1 - $angka_2;
    echo $angka_4;
    echo "<br/>";
    // perkalian
    $angka_5 = $angka_1 * $angka_2;
    echo $angka_5;
    echo "<br/>";
    // pembagian
    $angka_6 = $angka_1 / $angka_2;
    echo $angka_6;
    echo "<br/>";
    ?>
    • Operator Perbandingan
    Digunakan untuk melakukan perbandingan terhadap dua buah data. Adapun macam-macam operator perbandingan antara lain : 
    1. == , contoh $x == $y akan menghasilkan true jika $x dan $y bernilai sama
    2. === , contoh $x === $y bernilai true jika kedua variabel / data bernilai sama persis
    3. != , contoh $x != $y bernilai true jika kdua variabel bernilai beda
    4. !== , bernilai true jika dua variabel identik / sama persis
    5. <> , sama dengan poin nomor 3
    6. > , lebih besar dari. Contoh $x > $y
    7. < , lebih kecil dari. Contoh $x < $y
    8. >=, lebih besar sama dengan
    9. <=, lebih kecil sama dengan
    contoh penggunaan operator perbandingan : 
    <?php 

    $x = 5;
    $y = 5;
    $z = "5";

    echo $x == $y; // true, karena 5 sama dengan 5
    echo $x === $z; // false, karena $x bertipe integer dan $z bertipe string
    echo $x != $y; // false
    echo $x !== $y; // false
    echo $x < $y; // false, karena 5 sama dengan 5
    echo $x <= $y; // true, karena 5 lebih kecil atau sama dengan 5
    echo $x >= $y; // true, karena 5 lebih besar atau sama dengan 5
    ?>
    • Operator Penugasan
    Operator penugasan merupakan operator yang digunakan untuk mengisi data pada sebuah variabel. Adapun Operator penugasan antara lain : 
    1. =, contoh $x = 1; $y = 5;
    2. += , contoh $x += $y; sama dengan $x = $x + $y;
    3. -= , contoh $x -= $y; sama dengan $x = $x - $y;
    4. *= , contoh $x *= $y; sama dengan $x = $x * $y;
    5. %= , contoh $x %= $y; sama dengan $x = $x % $y;

    <?php 
    $x = 1;
    $y = 5;
    $x += $y; // sama dengan $x = $x + $y;
    $x -= $y; // sama dengan $x = $x - $y;
    $x *= $y; // sama dengan $x = $x * $y;
    $x /= $y; // sama dengan $x = $x / $y;
    $x %= $y; // sama dengan $x = $x % $y;
    ?>
    • Operator Logika
    Operator Logika merupakan Operator yang digunakan untuk membandingkan dua buah variabel bernilai boolean berdasarkan gerbang logika, Antara lain : 
    1. and, akan menghasilkan true jika dua duanya bernilai true
    2. or, akan menghasilkan false jika dua duanya bernilai false
    3. &&, bentuk lain dari and (poin nomor 1)
    4. ||, bentuk lain dari or (poin nomor 2)
    5. ! , not bernilai kebalikan dari variabel tersebut
    Contoh : 
    <?php 

    echo "<br/> operator logika <br/>";
    echo "and <br/>";
    echo true and true; // true
    echo "<br/>";
    echo true and false; // false
    echo "<br/>";
    echo false and true; // false
    echo "<br/>";
    echo false and false; // false
    echo "<br/>";
    echo "or <br/>";
    echo true or true; // true
    echo "<br/>";
    echo true or false; // true
    echo "<br/>";
    echo false or true; // true
    echo "<br/>";
    echo false or false; // false
    echo "<br/>";

    ?>
    • Operator Increment / Decrement
    Increment merupakan operator yang digunakan untuk menaikkan nilai 1 angka ke atas, sedangkan Decrement merupakan operator yang digunakan untuk menurunkan nilai 1 angka ke bawah. Contoh : 
    <?php 

    // operator increment
    $x = 1;
    $x++;
    echo $x;
    echo "<br/>";
    // operator decrement
    $y = 10;
    $y--;
    echo $y;
    echo "<br/>";

    ?>

    cukup sekian tulisan saya kali ini, kita lanjutkan pembahasan percabangan di tulisan saya selanjutnya.

    Update :
    Selanjutnya : Percabangan => https://catatan-pemrograman.blogspot.com/2018/12/php-percabangan.html

    Share:

    PHP : Variabel

    Kembali lagi pada seri tulisan PHP, kali ini saya akan bahas mengenai penggunaan variabel. Apa itu variabel ? Kalau di dunia nyata, jika kita akan mengolah sesuatu pasti kita butuh wadah / tempat untuk menyimpan benda yang akan kita olah. Sebagai contoh : 

    "kita akan memasak mie instan. pasti mie instan tersebut dibungkus plastik dari pabrik pembuatnya. Kemudian kita memasak air kita juga butuh panci dan mangkok tempat memasak dan mencampur mie instan beserta bumbu. Nah..... di sini, variabel dalam kasus memasak mie instan adalah plastik bungkus, panci, dan mangkok." 

    Di dalam dunia pemrograman, yang kita olah adalah data. Dalam mengolah data, kita perlu wadah / tempat menyimpan data tersebut untuk di olah dan di distribusikan ke kode lain / ke pengguna aplikasi. Tempat menyimpan data adalah Variabel

    Variabel di PHP

    di PHP, penulisan variabel dtandai dengan karakter $ (dollar). penamaan variabel adalah bebas terserah anda sendiri. Contoh : 

    $nama             = "Nur Hidayatullah";
    $umur             = 27;
    $tempat_lahir = "LAMONGAN";

    nah pada contoh di atas, $nama, $umur, dan $tempat_lahir adalah variabel. DI atas merupakan contoh pembuatan variabel beserta cara mengisi data. Sekarang saya coba beri contoh dengan program. Ketik kode dibawah ini : 
    <?php 
    $nama = "Nur Hidayatullah";
    $umur = 27;
    $tempat_lahir = "Lamongan";

    echo 'Nama : ' . $nama;
    echo "<br/>";
    echo 'Umur : ' . $umur;
    echo "<br/>";
    echo 'Tempat Lahir : ' . $tempat_lahir;
    ?>
    kemudian simpan pada folder latihan_php dan beri nama variabel.php. Kemudian jalankan di browser dengan URL berikut :

    http://localhost/latihan_php/variabel.php

    maka akan muncul hasil seperti berikut:

    Penjelasan Kode

    • Awali kode php dengan <?php dan ditutup dengan ?>
    • $nama, $umur, dan $tempat_lahir adalah variabel dan "Nur Hidayatullah", "27", "Lamongan" adalah data yang akan di olah.
    • echo 'Nama : '. $nama;  adalah kode untuk menampilkan variabel $nama dan disambung dengan String 'Nama : ' di depannya. Dan di akhir baris harus ditutup dengan tanda titik koma (;)
    • echo "<br/>"; adalah menampilkan kode html <br/>  untuk menghasilkan baris baru.
    sekian dulu tulisan saya kali ini, saya lanjut pada mengenai Tipe Data dan Operator Aritmatik pada tulisan saya selanjutnya. Terima kasih.

    Update : 
    Selanjutnya : Tipe Data dan Operator => https://catatan-pemrograman.blogspot.com/2018/12/php-type-data-dan-operator-aritmatika.html
    Share:

    Pengenalan PHP

    PHP merupakan bahasa pemrograman yang biasa dipakai untuk membuat website dinamis. Untuk penjelasan mengenai bahasa PHP, saya tidak akan menjelaskan terlalu panjang dan bisa anda baca sendiri di website resmi atau artikel pada blog yang lain. Pada seri tulisan saya ini, saya akan fokus pada syntax atau cara penggunaan PHP. Untuk menjalankan PHP kita perlu menginstall Apache dan PHP pada komputer kita. Untuk lebih mudahnya anda bisa menginstall XAMPP yang bisa di download di halaman berikut : https://www.apachefriends.org/download.html. Dan untuk tutorial instalasi anda bisa baca pada blog / tutorial pada halaman web yang lain. 

    Hello Word

    Untuk memulai ngodinh, kurang afdol rasanya kalau belum membuat tulisan "Hello Word". Sebenarnya kata tersebut tidak baku, hanya merupakan contoh untuk memulai latihan pemrograman. Untuk memulai program PHP, pertama buat folder baru bernama latihan_php di folder htdocs yang berada di dalam folder instalasi XAMPP anda. Di sini folder instalasi XAMPP saya ada di 
    F:\xampp_72 sehingga folder kode program php saya tempatkan di folder F:\xampp_72\htdocs\latihan_php dan tuliskan kode berikut :
    <?php 
    echo "Hello World !";
    ?>
    kemudian simpan di dalam folder latihan_php dengan nama hello.php. Kemudian nyalakan service Apache yang ada di Xampp Control.

    Kemudian buka dengan URL berikut pada browser:

    http://localhost/latihan_php/hello.php

    jika muncul seperti gambar di bawah ini, maka kode anda sudah benar.

    mudah bukan ?, saya jelaskan satu persatu.


    • kode PHP harus ditulis diawali dengan kode <?php dan ditutup dengan kode ?>
    • kode PHP disimpan di dalam file dengan type / extensi .php
    • syntax echo merupakan perintah untuk menampilkan kata / kalimat di dalam bahasa PHP
    • kalimat / kata yang di dalam bahasa pemrograman di sebut String harus diapit tanda petik satu (') atau dobel petik (").
    • setiap satu baris kode PHP, harus di akhiri dengan tanda titik koma (;).
    sekian dulu tulisan saya kali ini, saya lanjut pada tulisan saya selanjutnya tentang Variabel.

    Update : 
    selanjutnya : Variabel => https://catatan-pemrograman.blogspot.com/2018/12/php-variabel.html
    Share:

    Service Container di Symfony 4

    Tulisan ini merupakan lanjutan dari tulisan saya sebelumnya mengenai symfony 4, kali ini saya lanjutkan menulis tentang Service Container yang kalau gampangnya menurut bahasa saya adalah, kita bisa membuat class kita sendiri dengan berbagai fungsi untuk membantu pekerjaan kita yg bisa di akses di berbagai tempat seperti Controller, Event, atau di akses dari Service yang lain. Contoh beberapa Service bawaan Symfony seperti Mail, Logger, dll. Nah kali ini saya mau coba tulis cara bagaimana kita bisa membuat Service kita sendiri di Symfony 4.

    Notes : 
    Untuk project latihan, silahkan download sorce code latihan dari seri tulisan symfony ini di akun github saya di https://github.com/kematjaya0/tutorial

    dan untuk seri tulisan saya sebelumnya bisa dibaca di : 

    Artikel resimi mengenai Service Container bsia dilihat di halaman berikut https://symfony.com/doc/current/service_container.html, oke sekarang kita lanjutkan membuat Service.

    Membuat Service

    Pada tulisan saya kali ini, saya akan coba membuat service yang bertugas untuk melakukan pencatatan log. Sebagai contoh, saya membuat Controller baru HelloController.php di dalam folder src/Controller:
    <?php

    namespace App\Controller;

    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
    /**
    * Description of HelloController
    *
    * @author NUR HIDAYAT
    */
    class HelloController {

    /**
    *
    * @Route("/hello", name="hello")
    */
    public function index()
    {
    $number = random_int(0, 100);
    return new Response(
    '<html><body>Lucky number: '.$number.'</body></html>'
    );
    }
    }
    kode diatas merupakan controller sederhana yang akan menghasilkan halaman html berisi angka random / acak antara 0 sampai 100. Kemudian untuk menjalankan, jalankan perintah berikut melalui CMD di dalam folder project symfony kita,
    php bin/console server:run
    kemudian akses di browser dengan url berikut:
    http://localhost:8000/hello
    Selanjutnya kita gunakan Service Logger untuk mencatat ip address yang sedang mengakses halaman tersebut , ubah controller sehingga menjadi seperti berikut :
    <?php

    namespace App\Controller;

    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
    use Symfony\Component\HttpFoundation\Request; // tambahkan class Request
    use Psr\Log\LoggerInterface; // tambahkan class LoggerInterface
    /**
    * Description of HelloController
    *
    * @author NUR HIDAYAT
    */
    class HelloController {

    /**
    *
    * @Route("/hello", name="hello")
    */
    public function index(LoggerInterface $logger, Request $request) // Inject class LoggerInterface dan Request sebagai parameter
    {
    $number = random_int(0, 100);
    // fungsi untuk menampilkan log
    $logger->info(date('d M Y H:i:s').' : '.$request->getClientIp().' access path => '.$request->getRequestUri());
    return new Response(
    '<html><body>Lucky number: '.$number.'</body></html>'
    );
    }
    }
    pada kode di atas sudah saya tandai dan juga beri keterangan, kemudian akses kembali halaman di browser dan periksa di CMD kita yang tadi menjalankan server:
    pada gambar di atas, bisa dilihat bahwa aplikasi menampilkan pesan ke CMD. Kode di atas adalah contoh penggunaan Service Container bawaan symfony. Sekarang kita coba buat Service Container sendiri, Cekidot.

    Membuat Container Sendiri

    Pada tulisan saya kali ini, saya ingin membuat Service Container berupa Class Calculator.php yang berisi fungsi-fungsi perhitungan aritmatika sederhana seperti perkalian, pembagian, penjumlahan dll. Pertama kita buat folder Service di dalam folder src. Kemudian buat class Calculator.php di dalam folder Service seperti berikut : 
    <?php // src/Service/Calculator.php

    /**
    * Description of Calculator
    *
    * @author NUR HIDAYAT
    */

    namespace App\Service;

    class Calculator {

    public function tambah($a, $b)
    {
    return $a + $b;
    }

    public function kurang($a, $b)
    {
    return $a - $b;
    }

    public function kali($a, $b)
    {
    return $a * $b;
    }

    public function bagi($a, $b)
    {
    return $a/$b;
    }

    public function percen($percen, $nilai)
    {
    return $nilai * $percen / 100;
    }
    }
    kemudian ubah controller HelloController.php sehingga menjadi seperti berikut:
    <?php //src/Controller/HelloController.php

    namespace App\Controller;

    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
    use Symfony\Component\HttpFoundation\Request;
    use Psr\Log\LoggerInterface;
    use App\Service\Calculator; // tambahkan class Calculator
    /**
    * Description of HelloController
    *
    * @author NUR HIDAYAT
    */
    class HelloController {

    /**
    *
    * @Route("/hello", name="hello")
    */
    public function index(LoggerInterface $logger, Request $request, Calculator $calculator) // Inject class Calculator sebagai parameter
    {
    $a = 10; // variabel pertama yang akan dihitung
    $b = 100;// variabel kedua yang akan dihitung
    $number = $calculator->tambah($a, $b); // memanggil fungsi tambah
    $logger->info(date('d M Y H:i:s').' : '.$request->getClientIp().' access path => '.$request->getRequestUri());
    return new Response(
    '<html><body>Lucky '.$a.' + '.$b.' : '.$number.'</body></html>'
    );
    }
    }
    pada kode di atas sudah saya sertai penjelasan baris kode yang ditambahkan. Kode di atas saya memanggil fungsi tambah untuk melakukan penjumlahan dua buat variabel. Kemudian jalankan kembali di browser sehingga jika jalan hasilnya akan seperti berikut:
    untuk melihat daftar Service Container yang ada, kita bisa menjalankan kode berikut pada CMD:
    php bin/console debug:autowiring
    kurang lebih akan muncul seperti berikut.

    Menggunakan Service Container pada Service

    Kita bisa menggunakan Service Container lain bawaan symfony atau buatan yang lain pada Service buatan kita dengan cara melakukan Dependency Injection pada class buatan kita. Sebagai contoh, saya akan memasukkan class LoggerInterface pada class Calculator yang baru saja kita buat. Ubah class Calculator.php sehingga menjadi seperti berikut.
    <?php // src/Service/Calculator.php

    /**
    * Description of Calculator
    *
    * @author NUR HIDAYAT
    */

    namespace App\Service;

    use Psr\Log\LoggerInterface; // tambahkan class LoggerInterface

    class Calculator {

    private $logger; // buat variabel $logger

    public function __construct(LoggerInterface $logger) { // buat fungsi __construct dengan memasukkan class LoggerInterface sebagai parameter
    $this->logger = $logger;
    }
    public function tambah($a, $b)
    {
    $this->logger->info('tambah : '.$a.' + '.$b.' = '. ($a + $b)); // menggunakan logger
    return $a + $b;
    }

    public function kurang($a, $b)
    {
    $this->logger->info('kurang : '.$a.' - '.$b.' = '. ($a - $b)); // menggunakan logger
    return $a - $b;
    }

    public function kali($a, $b)
    {
    $this->logger->info('kali : '.$a.' * '.$b.' = '. ($a * $b)); // menggunakan logger
    return $a * $b;
    }

    public function bagi($a, $b)
    {
    $this->logger->info('bagi : '.$a.' / '.$b.' = '. ($a / $b)); // menggunakan logger
    return $a/$b;
    }

    public function percen($percen, $nilai)
    {
    return $nilai * $percen / 100;
    }
    }
    pada kode di atas, saya memasukkan class LoggerInterface sebagai parameter function __construct(), kemudian saya memanggilnya saat function tambah(), kurang(), bagi(), kali(). Tehnik ini dinamakan Dependency Injection yang bisa anda pelajari lebih lanjut pada halaman berikut https://phptherightway.com/#dependency_injection

    Menggunakan Alias

    Pada tulisan saya di atas, saya mencoba membuat dan memanggil Service Container yang kita buat dengan cara Dependency Injection. Untuk memanggil, kita bisa juga menggunakan alias sehingga kita tidak perlu menambahkan Class Calculator yang kita buat di bagian atas Controller. Untuk membuat alias, kita buka file services.yaml yang ada di folder config. Buka dan tambahkan kode berikut di dalam tag services : 
        # membuat alias untuk class Calculator
    app.calculator:
    public: true
    class: App\Service\Calculator
    arguments: ['@logger']
    # ------- end alias class Calculator ----
    sehingga file services.yaml menjadi seperti berikut: 
    # config/services.yaml

    # This file is the entry point to configure your own services.
    # Files in the packages/ subdirectory configure your dependencies.

    # Put parameters here that don't need to change on each machine where the app is deployed
    # https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
    parameters:
    locale: 'en'
    app_locales: en|id
    locale_supported: ['en','id']

    services:
    # default configuration for services in *this* file
    _defaults:
    autowire: true # Automatically injects dependencies in your services.
    autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
    public: false # Allows optimizing the container by removing unused services; this also means
    # fetching services directly from the container via $container->get() won't work.
    # The best practice is to be explicit about your dependencies anyway.

    # makes classes in src/ available to be used as services
    # this creates a service per class whose id is the fully-qualified class name
    App\:
    resource: '../src/*'
    exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'

    # controllers are imported separately to make sure services can be injected
    # as action arguments even if you don't extend any base controller class
    App\Controller\:
    resource: '../src/Controller'
    tags: ['controller.service_arguments']

    # membuat alias untuk class Calculator
    app.calculator:
    public: true
    class: App\Service\Calculator
    arguments: ['@logger']
    # ------- end alias class Calculator --------
    App\EventSubscriber\LocaleSubscriber:
    arguments: ['%kernel.default_locale%']

    App\EventSubscriber\LocaleRewriteListener:
    arguments: ["@router", "%kernel.default_locale%", "%locale_supported%"]
    tags:
    - { name: kernel.event_subscriber }
    # add more service definitions when explicit configuration is needed
    # please note that last definitions always *replace* previous ones
    kemudian ubah controller sehingga menjadi seperti berikut: 
    <?php //src/Controller/HelloController.php

    namespace App\Controller;

    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Annotation\Route;
    use Symfony\Component\HttpFoundation\Request;
    use Psr\Log\LoggerInterface;
    use Symfony\Bundle\FrameworkBundle\Controller\Controller; // tambahkan class Controller
    /**
    * Description of HelloController
    *
    * @author NUR HIDAYAT
    */
    class HelloController extends Controller{ // class diubah sehingga menjadi extends Controller

    /**
    *
    * @Route("/hello", name="hello")
    */
    public function index(LoggerInterface $logger, Request $request)
    {
    $a = 10; // variabel pertama yang akan dihitung
    $b = 100;// variabel kedua yang akan dihitung
    $calculator = $this->get('app.calculator'); // memanggil service calculator sesuai nama di service.yml
    $number = $calculator->tambah($a, $b); // memanggil fungsi tambah
    $logger->info(date('d M Y H:i:s').' : '.$request->getClientIp().' access path => '.$request->getRequestUri());
    return new Response(
    '<html><body>Lucky '.$a.' + '.$b.' : '.$number.'</body></html>'
    );
    }
    }
    pada kode di atas, saya melakukan beberapa perubahan, antara lain Class HelloController saya ubah sehingga menjadi extends ke Class Controller sehingga bisa memanggil Service Container menggunakan nama id / alias yang kita tulis di file services.yaml.

    Kesimpulan

    Dengan menggunakan Service Container, Controller kita bisa lebih bersih karena kita memisahkan fungsi-fungsi yang bisa dipakai ulang ke dalam Service Container. Kita bisa membuat beberapa fungsi seperti kirim email, upload file, atau yang lain menjadi sebuah Service sehingga bisa kita pakai ulang pada modul / Controller yang lain.

    Terima kasih sudah membaca tulisan saya kali ini, semoga bermanfaat
    Share:
    • ()
    • ()
    Show more

    Halaman