Newest Post

Open sewa dlsr

| Selasa, 11 Desember 2018
Baca selengkapnya »
Hari sabtu minggu 110k 24 jam
Hari senin-jumat 100k 24 jam
Contact whatsap:088238186560
Facebook:Kevin reza jr
Instagram:kevin_ktimun_laut04
Pesan dulu sebelum mau sewa
Canon 60d
Lensa yong nuo55mm, dan tamron tele
Area semarang timur

Open sewa dlsr

Posted by : Unknown
Date :Selasa, 11 Desember 2018
With 0komentar

Kode CRUD dalam Satu File PHP

| Selasa, 27 November 2018
Baca selengkapnya »

Kode CRUD dalam Satu File PHP


# #
Pernah mebayangkan, tidak?
Membuat CRUD (Create, Read, Update, Delete) dalam satu file PHP.
Biasanya, membuat aplikasi CRUD dilakukan dengan membuat file terpisah. Masing-masing file mewakili CRUD.
Misalkan file create.php untuk menambahkan data, read.php untuk menampikan data, update.php untuk mengubah data, dan delete.php untuk menghapus data.
Bagaimana kalau, semuanya digabungkan ke dalam satu file PHP?
Pada kesempatan ini, saya ingin membagikan sebuah kode CRUD yang ditulis dalam satu file PHP. Kode ini, saya buat dengan koneksi database menggunakan API mysqli.
Dalam kode, terdapat empat fungsi yang mewakili CRUD:
  • Pertama fungsi tambah() untuk menambahkan data.
  • Kedua fungsi tampil_data() untuk membaca data dan menampilkanya dalam bentuk tabel.
  • Ketiga fungsi ubah() untuk mengubah data.
  • Terakhir ada fungsi hapus() untuk menghapus data.
Fungsi-fungsi tersebut dipanggil pada fungsi (program) utama.
Program utama bertindak sebagai router yang mengatur pemanggilan fungsi.
Misalkan, pada halaman Home, fungsi yang dipanggil adalah tambah_data() dan tampil_data(). Hal ini bisa dilakukan dengan stuktur pemilihan Switch/Case.
Kode lengkapnya bisa dicek di github.
<!DOCTYPE html>
<html>
<head>
    <title>CRUD Petani Kode</title>
    <link rel="icon" href="http://www.petanikode.com/favicon.ico" />
</head>
<body>

<?php
// --- koneksi ke database
$koneksi = mysqli_connect("localhost","root","kopi","pertanian") or die(mysqli_error());
// --- Fngsi tambah data (Create)
function tambah($koneksi){
    
    if (isset($_POST['btn_simpan'])){
        $id = time();
        $nm_tanaman = $_POST['nm_tanaman'];
        $hasil = $_POST['hasil'];
        $lama = $_POST['lama'];
        $tgl_panen = $_POST['tgl_panen'];
        
        if(!empty($nm_tanaman) && !empty($hasil) && !empty($lama) && !empty($tgl_panen)){
            $sql = "INSERT INTO tabel_panen (id,nama_tanaman, hasil_panen, lama_tanam, tanggal_panen) VALUES(".$id.",'".$nm_tanaman."','".$hasil."','".$lama."','".$tgl_panen."')";
            $simpan = mysqli_query($koneksi, $sql);
            if($simpan && isset($_GET['aksi'])){
                if($_GET['aksi'] == 'create'){
                    header('location: index.php');
                }
            }
        } else {
            $pesan = "Tidak dapat menyimpan, data belum lengkap!";
        }
    }
    ?> 
        <form action="" method="POST">
            <fieldset>
                <legend><h2>Tambah data</h2></legend>
                <label>Nama tanaman <input type="text" name="nm_tanaman" /></label> <br>
                <label>Hasil panen <input type="number" name="hasil" /> kg</label><br>
                <label>Lama tanam <input type="number" name="lama" /> bulan</label> <br>
                <label>Tanggal panen <input type="date" name="tgl_panen" /></label> <br>
                <br>
                <label>
                    <input type="submit" name="btn_simpan" value="Simpan"/>
                    <input type="reset" name="reset" value="Besihkan"/>
                </label>
                <br>
                <p><?php echo isset($pesan) ? $pesan : "" ?></p>
            </fieldset>
        </form>
    <?php
}
// --- Tutup Fngsi tambah data
// --- Fungsi Baca Data (Read)
function tampil_data($koneksi){
    $sql = "SELECT * FROM tabel_panen";
    $query = mysqli_query($koneksi, $sql);
    
    echo "<fieldset>";
    echo "<legend><h2>Data Panen</h2></legend>";
    
    echo "<table border='1' cellpadding='10'>";
    echo "<tr>
            <th>ID</th>
            <th>Nama Tanaman</th>
            <th>Hasil Panen</th>
            <th>Lama Tanam</th>
            <th>Tanggal Panen</th>
            <th>Tindakan</th>
          </tr>";
    
    while($data = mysqli_fetch_array($query)){
        ?>
            <tr>
                <td><?php echo $data['id']; ?></td>
                <td><?php echo $data['nama_tanaman']; ?></td>
                <td><?php echo $data['hasil_panen']; ?> Kg</td>
                <td><?php echo $data['lama_tanam']; ?> bulan</td>
                <td><?php echo $data['tanggal_panen']; ?></td>
                <td>
                    <a href="index.php?aksi=update&id=<?php echo $data['id']; ?>&nama=<?php echo $data['nama_tanaman']; ?>&hasil=<?php echo $data['hasil_panen']; ?>&lama=<?php echo $data['lama_tanam']; ?>&tanggal=<?php echo $data['tanggal_panen']; ?>">Ubah</a> |
                    <a href="index.php?aksi=delete&id=<?php echo $data['id']; ?>">Hapus</a>
                </td>
            </tr>
        <?php
    }
    echo "</table>";
    echo "</fieldset>";
}
// --- Tutup Fungsi Baca Data (Read)
// --- Fungsi Ubah Data (Update)
function ubah($koneksi){
    // ubah data
    if(isset($_POST['btn_ubah'])){
        $id = $_POST['id'];
        $nm_tanaman = $_POST['nm_tanaman'];
        $hasil = $_POST['hasil'];
        $lama = $_POST['lama'];
        $tgl_panen = $_POST['tgl_panen'];
        
        if(!empty($nm_tanaman) && !empty($hasil) && !empty($lama) && !empty($tgl_panen)){
            $perubahan = "nama_tanaman='".$nm_tanaman."',hasil_panen=".$hasil.",lama_tanam=".$lama.",tanggal_panen='".$tgl_panen."'";
            $sql_update = "UPDATE tabel_panen SET ".$perubahan." WHERE id=$id";
            $update = mysqli_query($koneksi, $sql_update);
            if($update && isset($_GET['aksi'])){
                if($_GET['aksi'] == 'update'){
                    header('location: index.php');
                }
            }
        } else {
            $pesan = "Data tidak lengkap!";
        }
    }
    
    // tampilkan form ubah
    if(isset($_GET['id'])){
        ?>
            <a href="index.php"> &laquo; Home</a> | 
            <a href="index.php?aksi=create"> (+) Tambah Data</a>
            <hr>
            
            <form action="" method="POST">
            <fieldset>
                <legend><h2>Ubah data</h2></legend>
                <input type="hidden" name="id" value="<?php echo $_GET['id'] ?>"/>
                <label>Nama tanaman <input type="text" name="nm_tanaman" value="<?php echo $_GET['nama'] ?>"/></label> <br>
                <label>Hasil panen <input type="number" name="hasil" value="<?php echo $_GET['hasil'] ?>"/> kg</label><br>
                <label>Lama tanam <input type="number" name="lama" value="<?php echo $_GET['lama'] ?>"/> bulan</label> <br>
                <label>Tanggal panen <input type="date" name="tgl_panen" value="<?php echo $_GET['tanggal'] ?>"/></label> <br>
                <br>
                <label>
                    <input type="submit" name="btn_ubah" value="Simpan Perubahan"/> atau <a href="index.php?aksi=delete&id=<?php echo $_GET['id'] ?>"> (x) Hapus data ini</a>!
                </label>
                <br>
                <p><?php echo isset($pesan) ? $pesan : "" ?></p>
                
            </fieldset>
            </form>
        <?php
    }
    
}
// --- Tutup Fungsi Update
// --- Fungsi Delete
function hapus($koneksi){
    if(isset($_GET['id']) && isset($_GET['aksi'])){
        $id = $_GET['id'];
        $sql_hapus = "DELETE FROM tabel_panen WHERE id=" . $id;
        $hapus = mysqli_query($koneksi, $sql_hapus);
        
        if($hapus){
            if($_GET['aksi'] == 'delete'){
                header('location: index.php');
            }
        }
    }
    
}
// --- Tutup Fungsi Hapus
// ===================================================================
// --- Program Utama
if (isset($_GET['aksi'])){
    switch($_GET['aksi']){
        case "create":
            echo '<a href="index.php"> &laquo; Home</a>';
            tambah($koneksi);
            break;
        case "read":
            tampil_data($koneksi);
            break;
        case "update":
            ubah($koneksi);
            tampil_data($koneksi);
            break;
        case "delete":
            hapus($koneksi);
            break;
        default:
            echo "<h3>Aksi <i>".$_GET['aksi']."</i> tidaka ada!</h3>";
            tambah($koneksi);
            tampil_data($koneksi);
    }
} else {
    tambah($koneksi);
    tampil_data($koneksi);
}
?>
</body>
</html>
Sementara untuk database yang digunakan bernama pertanian.
Database ini memiliki sebuah tabel bernama tabel_panen yang akan digunakan untuk menyimpan data panen pertanian.
Berikut ini stuktur tabel_penen.
Skema database pertanianFile SQL-nya tersedia di github: pertanian.sql
Tampilan atau hasil output kode masih dalam bentuk polos. Saya tidak menggunakan CSS maupun Javascript. Hanya terdapat PHP dan HTML saja.
Berikut ini cuplikan tampilannya.
Halaman Home atau halaman utama (index.php):
Halaman HomeHalaman (form) tambah data:
Halaman Create DataHalaman tampil data:
Halaman Read DataHalaman (form) ubah data:
Halaman Update

Kode CRUD dalam Satu File PHP

Posted by : Unknown
Date :Selasa, 27 November 2018
With 0komentar

Memahami 4 jenis perulangan php

|
Baca selengkapnya »

Belajar PHP: Memahami 4 Jenis Perulangan dalam Pemrograman PHP


# #
Apa yang akan kamu lakukan bila disuruh membuat daftar judul artikel dengan PHP?
Apakah akan mencetaknya satu per satu dengan perintah echo seperti ini:
<?php

echo "<h2>Belajar Pemrograman PHP untuk Pemula</h2>";
echo "<h2>Cara Menggunakan Perulangan di PHP</h2>";
echo "<h2>Memahami Struktur Kondisi IF di PHP</h2>";
echo "<h2>Memahami Perulangan di PHP</h2>";
echo "<h2>Prosedur dan Fungsi di PHP</h2>";

?>
Bisa saja itu dilakukan.
Tapi masalahanya…
Bagaimana kalau datanya ada 100 atau 1000?
Apakah kita mampu mengetik semuanya?
Pasti capek.
Karena itu, kita harus menggunakan perulangan.
Ada dua jenis perulangan dalam pemrograman:
  1. Counted loop;
  2. Uncounted loop.
Apa perbedaanya?
Counted loop adalah perulangan yang sudah jelas banyak pengulangannya. Sedangkan Uncounted loop tidak pasti berapa kali dia akan mengulang.
Pada PHP ada 4 jenis perulangan yang bisa kita gunakan:
  1. Perulangan For
  2. Perulangan While
  3. Perulangan Do/While
  4. Perulangan Foreach
Apa kamu bisa menebak?
Manakah diantara keempat perulangan tersebut yang termasuk ke dalam counted loop dan uncounted loop?
Untuk mengetahuinya, mari kita bahas saja satu per satu.

1. Perulangan For

Perulangan For adalah perulangan yang termasuk dalam counted loop, karena kita bisa menentukan jumlah perulangannya.
Bentuk dasar perulangan for:
<?php

for ($i = 0; $i < 10; $i++){
    // blok kode yang akan diulang di sini!
}

?>
Veriabel $i dalam perulangan For berfungsi sebagai counter yang menghitung berpa kali ia akan mengulang.
Hitungan akan dimulai dari nol (0), karena kita memberikan nilai $i = 0.
Lalu, perulangan akan diulang selama nilai $i lebih kecil dari 10. Artinya, perulangan ini akan mengulang sebanyak 10x.
Maksud dari $i++ adalah nilai $i akan ditambah 1 disetiap kali melakukan perulangan.
Contoh:
<?php

for($i = 0; $i < 10; $i++){
    echo "<h2>Ini perulangan ke-$i</h2>";
}

?>
Hasilnya:
Contoh Perulangan For

2. Perulangan While

Perulangan while adalah perulangan yang termasuk dalam uncounted loop. Karena biasanya digunakan untuk mengulang sesuatu yang belum jelas jumlah pengulangannya.
Namun, perulangan while juga bisa digunakan seperti perulangan for sebagai counted loop.
Bentuk dasarnya:
<?php

while (<kondisi>){
    // blok kode yang akan diulang di sini    
}

?>
Contoh:
<?php 

$ulangi = 0;

while($ulangi < 10){
    echo "<p>Ini adalah perulangan ke-$ulangi</p>";
    $ulangi++;
}

?>
Hasilnya:
Contoh perulangan while
Perulangan while akan terus mengulang selama nilai $ulangi lebih kecil dari 10.
Lalu di dalam perulangan kita melakukan increment nilai $ulangi dengan $ulangi++. Artinya: Tambah 1 disetiap pengulangan.
Hati-hati, jangan sampai lupa menambahkan increment, atau kode yang akan mempengaruhi pengulangan. Karena kalau tidak, pengulangannya tidak akan pernah berhenti dan akan membuat komputer kita hang.

3. Perulangan Do/While

Perulangan Do/While sama seperti perulangan while. Ia juga tergolong dalam uncounted loop.
Perbedaan Do/While dengan while terletak pada cara iya memulai pengulangan.
Perulangan Do/While akan selalu melakukan pengulangan sebanyak 1 kali, kemudian melakukan pengecekan kondisi.
Sedangkan perulangan while akan mengecek kondisi terlebih dahulu, baru melakukan pengulangan.
Bentuk perulangan Do/While:
<?php

do {
    // blok kode yang akan diulang    
} while (<kondisi>);
?>
Contoh:
<?php 

$ulangi = 10;

do {
    echo "<p>ini adalah perulangan ke-$ulangi</p>";
    $ulangi--;
} while ($ulangi > 0);

?>
Hasilnya:
Contoh perulangan do/while

4. Perulangan Foreach

Perulangan foreach sama seperti perulangan for. Namun, ia lebih khusus digunakan untuk mecetak array.
Bentuk perulangan foreach:
<?php

foreach($array as $data){
    echo $data;
}
Contoh:
<?php
$books = [
    "Panduan Belajar PHP untuk Pemula",
    "Membangun Aplikasi Web dengan PHP",
    "Tutorial PHP dan MySQL",
    "Membuat Chat Bot dengan PHP"
];

echo "<h5>Judul Buku PHP:</h5>";
echo "<ul>";
foreach($books as $buku){
    echo "<li>$buku</li>";
}
echo "</ul>";

?>
Hasilnya:
Contoh perulangan foreach di PHP

Bonus: Perulangan Bersarang

Perulangan bersarang adalah istilah untuk menyebut perulangan di dalam perulangan. Dalam bahasa inggris, perulangan bersarang disebut nested loop.
Contoh perulangan bersarang:
<?php

for($i = 0; $i < 5; $i++){
    for($j = 0; $j < 10; $j++){
        echo "Ini perulangan ke ($i, $j)<br>";
    }
}

?>
Contoh lain:
<?php

$i = 0;
while($i < 10){
    for($j = 0; $j < 10; $j++){
        echo "Ini perulangan ke ($i, $j)<br>";
    }

    $i++;
}
Hasilnya:
Hasil perulangan bersarang

Apa Selanjutnya?

Pengetahuan tentang perlulangan akan sangat membantumu belajar PHP ke tahapan berikutnya.
Artikel ini hanya membahas contoh-contoh dasar penggunakan perulangan dalam pemrograman PHP.
Agar semakin mantap, silahkan perbanyak latihan dengan perulangan.

Memahami 4 jenis perulangan php

Posted by : Unknown
Date :
With 0komentar
Next Prev
▲Top▲