بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

Kumpulan Materi Management Informatika untuk SMA Islam Lembah Arafah

dan Kumpulan Hasil karya Siswa Lembah Arafah


Kategori php    
  • Standard Input di CLI PHP

    Apa itu STDIN di PHP?

    STDIN adalah singkatan dari Standard Input dan digunakan dalam PHP untuk membaca input dari pengguna saat menjalankan aplikasi melalui Command Line Interface (CLI). Ini adalah salah satu aliran standar yang disediakan oleh PHP, selain STDOUT (untuk output) dan STDERR (untuk error output).

    Ketika script PHP dijalankan di CLI, STDIN memungkinkan program untuk menerima data langsung dari terminal atau dari aliran input lain, seperti file atau pipeline.


    Bagaimana Cara Menggunakan STDIN?

    1. Membaca Input dari Pengguna

    Untuk membaca input dari STDIN, Anda biasanya menggunakan fungsi fgets():

    echo "Masukkan nama Anda: ";
    $nama = fgets(STDIN);
    echo "Halo, $nama!";
    

    Pada contoh di atas:

    • fgets(STDIN) membaca satu baris input dari terminal.
    • Input tersebut disimpan dalam variabel $nama.

    2. Membersihkan Input

    Input yang dibaca melalui STDIN biasanya mengandung karakter newline (\n) di akhir. Anda dapat menggunakan fungsi trim() untuk menghilangkan karakter tersebut:

    echo "Masukkan umur Anda: ";
    $umur = trim(fgets(STDIN));
    echo "Umur Anda adalah $umur tahun.";
    

    3. Membaca Data dari Pipeline

    Selain membaca input langsung dari terminal, STDIN juga bisa menerima data dari pipeline (misalnya saat menggunakan tanda | di terminal).

    Contoh:

    echo "John Doe" | php script.php
    

    Pada script PHP:

    $input = trim(fgets(STDIN));
    echo "Input dari pipeline: $input";
    

    Output:

    Input dari pipeline: John Doe
    

    Contoh Kasus Penggunaan STDIN

    1. Menghitung Total dari Input Angka:

      echo "Masukkan angka pertama: ";
      $angka1 = trim(fgets(STDIN));
      
      echo "Masukkan angka kedua: ";
      $angka2 = trim(fgets(STDIN));
      
      if (is_numeric($angka1) && is_numeric($angka2)) {
          $total = $angka1 + $angka2;
          echo "Totalnya adalah: $total" . PHP_EOL;
      } else {
          echo "Input harus berupa angka!" . PHP_EOL;
      }
      
    2. Membaca Data dari File Melalui Pipeline:

      cat data.txt | php script.php
      

      Script PHP:

      while (($line = fgets(STDIN)) !== false) {
          echo "Baris: " . trim($line) . PHP_EOL;
      }
      

    Kapan Menggunakan STDIN?

    • Saat membuat program berbasis CLI yang memerlukan input interaktif.
    • Untuk memproses data dari pipeline (misalnya file atau output dari program lain).
    • Ketika Anda ingin membuat skrip yang fleksibel untuk menerima input tanpa mengandalkan parameter dari argv.

    Kesimpulan

    STDIN adalah fitur penting di PHP untuk membaca input dari pengguna atau aliran data dalam konteks CLI. Ini memungkinkan pengembangan skrip CLI yang dinamis, interaktif, dan dapat digunakan dalam alur kerja otomatisasi.

    CONTOH CODE STDIN dengan FUNCTION

    <?php
    // Fungsi untuk menghitung luas persegi panjang
    function hitungLuasPersegiPanjang($panjang, $lebar) {
        return $panjang * $lebar;
    }
    
    // Mengecek apakah script dijalankan di CLI
    if (php_sapi_name() === 'cli') {
        // Meminta input panjang dari pengguna
        echo "Masukkan panjang: ";
        $panjang = trim(fgets(STDIN));
    
        // Meminta input lebar dari pengguna
        echo "Masukkan lebar: ";
        $lebar = trim(fgets(STDIN));
    
        // Validasi input apakah angka
        if (is_numeric($panjang) && is_numeric($lebar)) {
            $luas = hitungLuasPersegiPanjang($panjang, $lebar);
            echo "Luas persegi panjang adalah: " . $luas . PHP_EOL;
        } else {
            echo "Input harus berupa angka!" . PHP_EOL;
        }
    } else {
        echo "Script ini hanya dapat dijalankan melalui CLI." . PHP_EOL;
    }
    

    Cara Menjalankan program dengan di command promp

    c:\xampp\php\php.exe stdin.php
    

    Tugas

    1. Buatlah program rumus segitga dengan STDIN dan FUNCTION dengan nama file "stdinsegitiga.php"
    2. Jalankan Program tersebut di command promp dengan menjalankan perintah pada command promp
    	c:\xampp\php\php.exe stdinsegitiga.php
    
    1. upload tugas tersebut di github masing2 pada repositori "TUGAS"