Menu Navigasi

Tutorial Tutorial Pemrograman Part 67: PHP Streams: Membaca dan Menulis Data Secara Efisien

AI Generated
28 Desember 2025
14 views
Tutorial Tutorial Pemrograman Part 67: PHP Streams: Membaca dan Menulis Data Secara Efisien

Pendahuluan

Selamat datang di part 67 dari seri tutorial Tutorial Pemrograman! Di part ini, kita akan membahas tentang PHP Streams, sebuah fitur powerful yang memungkinkan kita untuk membaca dan menulis data dari berbagai sumber dan tujuan secara efisien. Jika pada part sebelumnya kita telah belajar tentang bagaimana membangun RESTful API sederhana, kini kita akan melihat bagaimana PHP Streams dapat meningkatkan performa dan fleksibilitas dalam menangani data, terutama dalam konteks API yang kompleks. Prasyarat untuk tutorial ini adalah pemahaman dasar tentang file handling dan networking dalam PHP.

Konsep Dasar

Bayangkan PHP Streams seperti aliran air. Air (data) dapat mengalir dari sumber (misalnya, file, jaringan, memori) ke tujuan (misalnya, file lain, output browser, database). Streams menyediakan abstraksi yang memungkinkan kita untuk berinteraksi dengan sumber dan tujuan data secara seragam, tanpa perlu khawatir tentang detail implementasi masing-masing. Dalam dunia nyata, ini seperti menggunakan selang air untuk menyiram tanaman. Anda tidak perlu tahu dari mana air berasal (sumur, sungai, atau keran), selang air akan memastikan air sampai ke tanaman dengan efisien.

Hands-on Coding

Membaca Data dari File Menggunakan Streams

Contoh berikut menunjukkan bagaimana membaca data dari file menggunakan streams:


";
    }
    fclose($stream);
} else {
    echo "Tidak dapat membuka file.";
}
?>

Penjelasan:

  • $file = 'data.txt';: Mendefinisikan nama file yang akan dibaca.
  • $stream = fopen($file, 'r');: Membuka file dengan mode baca ('r') dan membuat stream resource.
  • while (!feof($stream)): Melakukan perulangan selama belum mencapai akhir file (end-of-file).
  • $line = fgets($stream);: Membaca satu baris dari stream.
  • echo $line . "<br>";: Menampilkan baris yang dibaca ke browser.
  • fclose($stream);: Menutup stream resource.

Menulis Data ke File Menggunakan Streams

Contoh berikut menunjukkan bagaimana menulis data ke file menggunakan streams:



Penjelasan:

  • $file = 'output.txt';: Mendefinisikan nama file yang akan ditulis.
  • $stream = fopen($file, 'w');: Membuka file dengan mode tulis ('w') dan membuat stream resource. Jika file tidak ada, file akan dibuat. Jika file sudah ada, isinya akan ditimpa.
  • $data = "Ini adalah contoh data yang akan ditulis ke file.\n";: Mendefinisikan data yang akan ditulis.
  • fwrite($stream, $data);: Menulis data ke stream.
  • fclose($stream);: Menutup stream resource.

Menggunakan Streams untuk HTTP Request

Contoh berikut menunjukkan bagaimana mengirim HTTP request menggunakan streams:


 [
        'method'  => 'GET',
        'header'  => "Content-type: application/json\r\n"
    ]
];
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);

if ($result === FALSE) { 
    echo "Gagal mengambil data dari API.";
} else {
    echo $result;
}
?>

Penjelasan:

  • $url = 'https://api.example.com/data';: Mendefinisikan URL API yang akan diakses.
  • $options: Mendefinisikan opsi HTTP request, termasuk method dan header.
  • $context = stream_context_create($options);: Membuat stream context dengan opsi yang telah didefinisikan.
  • $result = file_get_contents($url, false, $context);: Mengirim HTTP request dan membaca response.
  • Pengecekan error dan menampilkan response.

Common Pittfalls

  • Lupa Menutup Stream: Selalu pastikan untuk menutup stream menggunakan fclose() setelah selesai menggunakannya. Jika tidak, dapat menyebabkan memory leak atau masalah resource lainnya.
  • Mode Stream yang Salah: Memilih mode stream yang salah (misalnya, menggunakan 'r' untuk menulis) dapat menyebabkan error atau perilaku yang tidak diharapkan.
  • Tidak Menangani Error: Selalu periksa apakah fopen() berhasil membuka stream sebelum melakukan operasi lain.

Challenge

Buatlah sebuah script PHP yang membaca data dari sebuah file CSV, memproses data tersebut (misalnya, menghitung rata-rata dari kolom tertentu), dan menulis hasilnya ke file lain menggunakan streams. Gunakan fungsi fgetcsv() untuk membaca data dari file CSV.

Sumber Referensi

Bagikan: