Langsung ke konten utama

implode ala PHP di C, Java, dan Visual Basic (VB6)


implode adalah salah satu fungsi bawaan PHP untuk mengubah/ menyatukan elemen-elemen array $pieces menjadi sebuah string. Dengan menggunakan fungsi implode ini kita juga bisa menentukan string penghubung atau $glue antar element-elemen array tersebut.

/**
 * @param string $glue - String yang menjadi penghubung antar element
 * @param string $pieces - array yang elemen-elemennya akan disatukan kedalam string
 * return string - Hasil penggabungan elemen-elemen pada $pieces
 */
implode($glue, array $pieces)

Fungsi ini sangat mudah digunakan dan berguna,
misal:
kita memiliki array $ternak
<?php
$ternak = array('sapi', 'ayam', 'kambing', 'kelinci');
$stringHasil = implode(', ', $ternak);
echo $stringHasil;
?>
akan menghasilkan tampilan seperti ini:
sapi, ayam, kambing, kelinci
Sayangnya di beberapa bahasa lain fungsi ini tidak tersedia, atau memiliki nama/ syntax yang berbeda, sehingga tidak diketahui keberadaannya. Meskipun cukup mudah dibuat tetapi sering kali malas untuk menulisnya, dan juga bagi beberapa programmer pemula mungkin agak kesulitan dalam membuat persamaan fungsi ini kedalam bahasa yang digunakannya, seperti C, Java, dan Visual Basic (VB6).

fungsi implode pada C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* implode(char* glue, char** pieces, int elementCount){
 int resultStringLength = 0;
 int elementStringLengths[elementCount];
 const glueLength = strlen(glue);
 int i = 0;
 int nextStringAdress = 0;
 for(i; i < elementCount; i++) {
  printf("%s\n", &(*(*pieces+nextStringAdress)));
  elementStringLengths[i] = strlen( &(*(*pieces + nextStringAdress)));
  nextStringAdress += elementStringLengths[i] + 1;
 }
 resultStringLength = nextStringAdress + elementCount - 1 + glueLength;

 char *concatenated = calloc(resultStringLength, sizeof(char));
 i = 0;
 nextStringAdress = 0;
 for(i; i < elementCount; i++){
  strncat(concatenated, &(*(*pieces+nextStringAdress)), elementStringLengths[i]);
  nextStringAdress += elementStringLengths[i] + 1;
  strncat(concatenated, glue, glueLength);
 }
 char *result = calloc(resultStringLength - glueLength, sizeof(char));
 memcpy(result, concatenated, resultStringLength - glueLength - 1);
 free(concatenated);
 return result;
}
Contoh penggunaan fungsi implode pada C:
char *ternak[] = {"sapi", "ayam", "kambing", "kelinci"};
char *stringHasil = implode(", ", ternak, 4);
printf("%s", stringHasil);

fungsi implode pada Java

public String implode(String glue, String[] pieces){
 StringBuilder buffer = new StringBuilder();
 // demi compability saya tidak menggunakan foreach (di Java ME tidak ada)
 for(int i = 0; i < pieces.length; i++){
  buffer.append(pieces[i]).append(glue);
 }
 if(buffer.length() > 0){
  buffer.setLength(buffer.length() - glue.length());
 }
 return buffer.toString();
}
Contoh penggunaan fungsi implode di Java:
String[] ternak = new String[]{"sapi", "ayam", "kambing", "kelinci"};
String stringHasil = implode(", ", ternak);
System.out.println(stringHasil);

fungsi implode pada Visual Basic (VB6)

Pada Visual Basic tidak perlu membuat fungsi baru, karena bawaannya telah terdapat fungsi Join yang memiliki kegunaan yang sama dengan fungsi implode di PHP
Syntax:
Function Join(SourceArray, [Delimiter]) As String
Contoh penggunaan fungsi Join pada Visual Basic (VB6):
Dim ternak(4) As String
dim stringHasil as String

ternak(0) = "sapi"
ternak(1) = "ayam"
ternak(2) = "kambing"
ternak(3) = "kelinci"

stringHasil = Join ternak, ", "

Komentar

Postingan populer dari blog ini

Memasang Android 4.4 KitKat di Samsung Galaxy W (Wonder) GT-I8150

Membuat backup Singkronisasikan handphone (contact, dll) Saya membuat backup SMS dengan SMS To Text, dan riwayat panggilan dengan Call Logs Backup and Restore Download Download Android SDK Tools Windows: http://dl.google.com/android/installer_r22.3-windows.exe Linux: http://dl.google.com/android/android-sdk_r22.3-linux.tgz Android SDK Tools juga terdapat dalam pake Android SDK Windows 32 bit: http://dl.google.com/android/adt/adt-bundle-windows-x86-20131030.zip Linux 32 bit: http://dl.google.com/android/adt/adt-bundle-linux-x86-20131030.zip Download ClockworkMod (CWM) Recovery Versi minimal untuk memasang CM 11 adalah versi 6.0.4.4. Jika menggunakan versi yang dibawah/sebelum itu, akan muncul pesan kesalahan "set_metadata_recursive: some changes failed" pada saat memasang CM nantinya. Download versi versi 6.0.4.5 di http://goo.im/devs/arco/ancora/cwm/recovery-clockwork-6.0.4.5-ancora.zip Download CyanogenMod (CM) 11 http://goo.im/devs/arco/ancor...

Perbandingan hasil findElements() Selenium yang menggunakan (XPath)[index] versus Xpath

Object hasil findElements() dari XPath dengan index lebih konsisten daripada yang didapat dari iterasi hasil findElements() XPath tanpa index. #selenium #web #automation

Memberi Border Putih Pada Foto (HTML + CSS)

Bagaimana cara membuat foto jadi terlihat memiliki border putih di blogger? Yang seperti ini? Cara termudahnya adalah memilih template yang menyediakan fasilitas untuk itu.. Ada cara lain? Ada sih, kalo bersedia mau agak repot... Pada saat mem-posting, di editornya PILIH tampilan HTML lalu untuk membuat foto yang ber-border putih ketik kode yang kira-kira seperti berikut ini <div id="background" style="background-color:gray;text-align:center;padding:10px 10px 10px 10px"> <div id="border" style="display: inline-block;background-color:fff;padding: 8px 8px 8px 8px"> <img src=http://twitpic.com/show/thumb/tq7m5.jpg" /> </div> </div> Penggunaan attribute id pada div di contoh ini tidak berpengaruh apa-apa hanya untuk mempermudah mengikuti penjelasan saja, jadi boleh dihapus. Pertama, jika border-nya nanti berwarna putih maka background/ ruang diluar diluar border itu sebaiknya diberi w...