rachmat

Current Date:11 December, 2019

Tutorial Lengkap Cara Menggunakan cURL pada PHP

PHP: Hypertext Preprocessor adalah bahasa skrip yang dapat ditanamkan atau disisipkan ke dalam HTML. PHP banyak dipakai untuk memprogram situs web dinamis. PHP dapat digunakan untuk membangun sebuah CMS.
5
(14)

Hallo sobat, pada tulisan kali ini Saya ingin berbagi tutorial tentang bagaimana cara menggunakan cURL pada PHP. Kenapa Saya ingin membahas ini? karena topik ini sangat hits di kalangan developer PHP di seluruh penjuru dunia. cURL sangat sering digunakan oleh developer-developer handal dalam membuat sebuah komunikasi data tanpa harus membuat sebuah interface aplikasi, jadi komunikasi data terjadi di background proses aplikasi.

Menarik kan? pasti Anda sudah mulai penasaran dan gak sabar ingin segera berkenalan dengan cURL ini. Yuk, mari baca dan simak tulisan ini sampai habis. Di jamin akan memberikan manfaat yang besar untuk menambah pengetahuan Anda. Oke, langsung saja ya.

Apa itu cURL ?

cURL adalah singkatan dari client URL, sebelum berganti nama menjadi cURL, cURL dulunya bernama HttpGet. Secara gambaran umum cURL merupakan sebuah program dan library yang berfungsi untuk mengirim dan mengambil data melalui URL.

cURL program adalah sebuah program atau tools yang digunakan pada command line (CMD). Syntax dasarnya seperti berikut ini:

curl [OPTIONS] [URL]

cURL library adalah sekumpulan fungsi cURL yang dibungkus dalam sebuah paket libcurl dan bisa digunakan dalam berbagai macam bahasa pemrograman.

Sekarang Anda sudah tau kan? cURL itu ada 2 versi yaitu versi program yang di jalankan melalui command line (CMD) dan versi library yang disematkan ke dalam compiler atau script bahasa pemrograman. Pada pemrograman PHP, cURL digunakan untuk membuat sebuah HTTP Request dan juga biasa digunakan untuk mengakses sebuah Web Services atau Application Programming Interface (API). Pada fokus tulisan ini Saya akan coba memberikan tutorial, bagaimana cara menjalankan cURL dengan script bahasa pemrograman PHP.

Cara Instalasi dan Konfigurasi cURL pada PHP

Untuk menjalankan cURL dengan script PHP, Anda harus instal library cURL terlebih dahulu. Jika Anda menggunakan sistem operasi Linux, Anda bisa gunakan perintah seperti berikut ini:

apt install php-curl

Pada sistem operasi Linux, setelah instal selesai secara default cURL akan otomatis diaktifkan.

Selanjutnya jika Anda menggunakan sistem operasi Windows, Anda bisa menggunakan Xampp. Kenapa menggunakan Xampp? karena cURL sudah terinstal pada Xampp, jadi Anda cukup mengaktifkannya saja. Sekedar informasi, di tutorial ini environment system yang Saya gunakan adalah 64x / 64bit. Saya menggunakan Windows 10 dan Xampp dengan versi 7.2.16. Berikut ini adalah cara mengaktifkan cURL di Xampp, mari simak langkah-langkah dibawah ini:

Langkah 1

Buka file php.ini yang berada pada direktori “C:\xampp\php“. Pada contoh kasus ini, Xampp Saya berada di drive C, jadi sesuaikan dengan lokasi instalasi Xampp Anda masing-masing.

Langkah 2

Kemudian cari baris extension seperti berikut ini:

;extension=php_curl.dll 
atau 
;extension=curl

Langkah 3

Hapus tanda titik koma (;) dan SAVE.

Langkah 4

Restart Apache dan cek phpinfo().

Untuk melakukan pengecakan cURL sudah aktif atau belum, Anda bisa membuat script phpinfo() seperti dibawah ini:

<?php phpinfo(); ?>

Lalu SAVE dan letakan di htdocs atau /var/www/html, kemudian cobalah buka melalui localhost di browser, atau jika Anda menggunakan Xampp biasanya phpinfo() sudah tersedia di localhost. Jika muncul phpinfo() seperti tampilan dibawah ini, berarti cURL pada Web Server Anda sudah Aktif.

Tutorial Lengkap Cara Menggunakan cURL pada PHP

Baca Juga: Cara Membuat Koneksi PHP 7 ke SQL Server

Cara Menggunakan cURL pada PHP

Untuk menggunakan cURL pada bahasa pemrograman PHP, ada 4 langkah mendasar yang perlu Anda ketahui, diantaranya yaitu:

  1. Inisialisasi, melakukan inisialisasi dengan fungsi curl_init();
  2. Set Option, memberikan nilai options seperti alamat URL destinasi, format hasil, header dan lainnya dengan fungsi curl_setopt()
  3. Eksekusi, melakukan HTTP Request sesuai dengan options yang diberikan dan mengeksekusinya dengan fungsi curl_exec()
  4. Tutup, setelah selesai mengeksekusi cURL sudah tidak digunakan lagi dan ditutup dengan fungsi curl_close()

Lihat script dibawah ini, ini adalah contoh sederhana penggunaan cURL library pada PHP.

<?php 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "https://sandbox.rachmat.id/curl/");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($ch); 
    curl_close($ch);      
    echo $output;
?>

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); Set Option pada cURL yang berfungsi untuk mengembalikan transfer menjadi bentuk String.

Hasilnya:

Tutorial Lengkap Cara Menggunakan cURL pada PHP

Script cURL diatas bertujuan untuk menampilkan isi halaman dari URL https://sandbox.rachmat.id/curl/.

Cara Membungkus cURL dengan Fungsi

Kenapa harus dibungkus dengan fungsi? jawabnya adalah agar script memiliki tata kelola yang baik, terlihat rapih dan menghindari penulisan script yang berulang-ulang, hal ini membuat pemanggilan script tersebut lebih ringkas. Lihat script dibawah ini:

<?php 
function curl($url){
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($ch); 
    curl_close($ch);      
    return $output;
}

echo curl("https://sandbox.rachmat.id/curl/");
?>

Hasilnya:

Tutorial Lengkap Cara Menggunakan cURL pada PHP

Cara Mengambil Data JSON dengan cURL

Pada contoh sederhana ini Saya akan coba mengambil data dari sebuah Web Service atau API yang memiliki respon berupa data berbentuk JSON, lalu akan ditampilkan kembali menjadi sebuah Array. Lihat contoh script dibawah ini:

<?php 
function curl($url){
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($ch); 
    curl_close($ch);      
    return $output;
}

$send = curl("https://sandbox.rachmat.id/curl/get/");

// merubah JSON menjadi array
$data = json_decode($send, TRUE);

echo "<pre>";
print_r($data);
echo "</pre>";
?>

Hasilnya:

Tutorial Lengkap Cara Menggunakan cURL pada PHP

Cara Mengubah Data JSON menjadi HTML dengan cURL

Pada contoh sederhana ini Saya akan coba mengambil data lagi dari sebuah Web Service atau API yang memiliki respon berupa data berbentuk JSON, lalu akan ditampilkan kembali menjadi sebuah HTML. Lihat contoh script dibawah ini:

<?php 
function curl($url){
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($ch);  
    curl_close($ch);      
    return $output;
}

$curl = curl("https://sandbox.rachmat.id/curl/get/");

// merubah JSON menjadi array
$data = json_decode($curl, TRUE);

?>

<!DOCTYPE html>
<html>
<body>

<table border="1">
<tr>
	<th> ID </th>
	<th> Title </th>
	<th> URL </th>
</tr>
<?php foreach($data as $row){ ?>
<tr>
	<td><?php echo $row["ID"]; ?></td>
	<td><?php echo $row["Title"]; ?></td>
	<td><a href="<?php echo $row["URL"]; ?>" target="_blank"><?php echo $row["URL"] ?></a></td>
</tr>
<?php } ?>
</table>

</body>
</html>

Hasilnya:

Tutorial Lengkap Cara Menggunakan cURL pada PHP

Cara Mengirim Data JSON dengan cURL

Pada contoh sederhana ini Saya akan coba mengirimkan data ke sebuah Web Service atau API dengan cURL, menggunakan Method POST. Contoh yang Saya buat ini di analogikan untuk melakukan update stok barang, setelah proses update stok barang berhasil, akan muncul respon data berbentuk JSON. Lihat contoh script dibawah ini:

<?php 
function curl($url, $data){
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($ch); 
    curl_close($ch);      
    return $output;
}

// Data Parameter yang Dikirim oleh cURL
$data = array("nama_barang"=>"Komputer","stok"=>"50");
$send = curl("https://sandbox.rachmat.id/curl/post/",json_encode($data));

echo json_encode(array('respon'=>$send),JSON_UNESCAPED_SLASHES);
?>

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); Set Option pada cURL yang berfungsi untuk mendeklarasikan Method yang digunakan saat proses kirim data.
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); Set Option pada cURL yang berfungsi untuk menampung data dan parameter yang akan dikirimkan melalui cURL.
JSON_UNESCAPED_SLASHES berfungsi untuk menghilangkan backslash pada hasil respon Web Service atau API.

Hasilnya:

Tutorial Lengkap Cara Menggunakan cURL pada PHP

Cara Menerima Data JSON Hasil dari Pengiriman cURL

Jika Anda lihat pada contoh “Cara Mengirim Data JSON dengan cURL”, data dan parameter dikirim ke Web Service atau API dengan alamat URL https://sandbox.rachmat.id/curl/post/. URL tersebut berisi script untuk menerima data dan parameter yang dikirim melalui cURL. Berikut ini adalah script untuk menerima data dan parameter dari cURL, lihat dibawah ini:

<?php
$arr = json_decode(file_get_contents("php://input"));
if (empty($arr->nama_barang) OR empty($arr->stok)){
    echo "Submit gagal! Kolom barang / stok tidak boleh kosong.";
} else {
    echo "Submit berhasil! Stok barang dengan nama <b>".$arr->nama_barang."</b> ditambah sebanyak <b>".$arr->stok."</b>.";
}
?>

Baca Juga: Cara Membuat Data Berbentuk JSON dengan PHP

Cara Setting Proxy pada cURL

Penggunaan Proxy pada jaringan internet terkadang tanpa kita sadari bisa menjadi penyebab cURL tidak bekerja dengan baik, untuk Anda yang jaringan internetnya menggunakan Proxy bisa menambahkan satu baris Set Option seperti berikut ini:

curl_setopt ($ch, CURLOPT_PROXY, "XXX.XXX.XXX.XXX:8080");

Letakan Set Option Proxy tersebut tepat dibawah fungsi curl_init();

Cara Mengatasi Masalah SSL saat Menjalankan cURL dari Localhost

Tutorial ini dijamin WORK 100%, namun bila saat mencoba tutorial ini Anda mengalami “Blank Page” itu bisa jadi karena masalah pengaturan SSL pada Web Server Anda, pastikan extension openssl di php.ini telah aktif. Bila openssl sudah aktif namun masih “Blank Page”, dari pengalaman Saya menggunakan cURL permasalahan ini di sebabkan oleh certificates SSL-nya. Anda bisa download certificates SSL pengganti di https://curl.haxx.se/ca/cacert.pem.

Setelah selesai download, letakan file cacert.pem (file hasil download) di folder Xampp Anda agar mudah di jangkau. Lalu buka php.ini dan cari 2 baris script seperti dibawah ini:

curl.cainfo="C:\xampp\apache\bin\curl-ca-bundle.crt"
openssl.cafile="C:\xampp\apache\bin\curl-ca-bundle.crt"

Dirubah menjadi seperti berikut ini:

curl.cainfo="C:\xampp\cacert.pem"
openssl.cafile="C:\xampp\cacert.pem"

Lalu SAVE dan Restart Apache.

Mudah kan? pastikan jangan sampai ada langkah yang terlewat ya.

Demikian pembahasan tentang Tutorial Lengkap Cara Menggunakan cURL pada PHP, silahkan tinggalkan komentar pada tulisan ini bila ingin bertanya atau memberi masukan. Semoga tulisan ini bisa memberikan manfaat untuk Anda yang membaca, sampai bertemu di tulisan berikutnya. Terima Kasih

Apakah tulisan ini membantu Anda?

klik bintang untuk memberikan nilai

Total nilai 5/5 dari 14 suara

12 Komentar

  1. Lucky Palace Reply

    I loveⅾ this post! I read your blog fairⅼy often and you are always coming out wiith some gгeat stuff.
    I will shares this on my facebook, instagram and some
    of my loylty followerѕ. Grerat jobs! Keep work
    it with it.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *