Test Speed: Penggabungan string (concat dan implode)

Pada PHP kita bisa menggunakan 2 cara untuk menggabung string yaitu dengan operator titik(.) atau lebih dikenal dengan concatenate, dan menggunakan fungsi implode.Perbedaanya adalah pada fungsi implode string yang akan digabung adalah variabel array, sedangkan menggunakan concatenate kode jadi lebih mudah dimengerti dan tidak harus menggunakan array.

Saya penasaran dengan kedua fitur tersebut terutama dalam masalah kecepatan, berikut beberapa baris kode yang saya gunakan untuk test kecepatan diantara kedua fitur tersebut.

// (a) emaniacs  
define ('STR', 'satu');  
$COUNT = 10;  
$arr = array();  
   
function use_implode($arr) {  
    $res = '' ;  
  
    $s = microtime(true);  
    $res = implode ($arr);  
    $e = microtime (true) - $s;  
    return $e;  
}  
function use_concat ($arr, $count) {  
    $concat = '';  
  
    $s = microtime(true);  
    for ($n = 0; $n < $count; $n++)  
       $concat .= $arr[$n];  
    $e = microtime (true) - $s;  
    return $e;  
}  
  
for ($x = 1; $x < 5; $x++) {  
    $arr = array();  
  
    /* create array */  
    for ($i = 0; $i $lt; $COUNT; $i++)  
       $arr[] = STR;  
  
    /* tampilkan hasil */  
    echo "Jumlah looping " . $COUNT . "\n";  
    echo "implode = " . use_implode($arr) . "\n";  
    echo "concat  = " . use_concat($arr, $COUNT) . "\n";  
    echo "------------------\n";  
  
    /* naikkan nilai $COUNT */  
    $COUNT = $COUNT . '0';  
    $COUNT = (int) $COUNT ;  
}  

Versi PHP yang digunakan adalah versi 5.3.3 kompile dari source

![](http://4.bp.blogspot.com/-ElMmEh1UGMo/Tj76FodpoZI/AAAAAAAAAnE/NUKWB67cgaI/ s400/concat-vs-implode.00.png)

Berikut hasil testnya, dengan jumlah COUNT(jumlah array yang ingin digabung) yang berbeda.

![](http://1.bp.blogspot.com/-1Y8p4xq9PwQ/Tj76E2Gi1VI/AAAAAAAAAnA/kUO3bJGWip0/ s1600/concat-vs-implode.01.png)

Dari hasil output diatas bisa dilihat, kalo concat lebih hanya jika jumlah COUNT atau array yang akan digabung berjumlah tidak kecil (dalam test diatas COUNT=10), selebihnya implode lebih cepat meski perbedaannya tidak terlalu mencolok.