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

Fungsi split di J2ME

Fungsi String.split() atau yang dikenal juga sebagi fungsi explode() oleh para programmer PHP. Fungsi ini berguna untuk memisahkan suatu String menjadi array (himpunan) string dengan memecah string sumber berdasarkan delimiter yang kita tentukan. Tidak seperti J2SE, J2ME tidak memiliki fungsi ini pada platform-nya. Berikut ini adalah kode yang saya tulis untuk mengisi kekosongan tersebut:

subnetmask untuk membatasi jumlah alamat (host) pada jaringan

Misal pada jaringan class C (yang artinya memiliki netmask 255.255.255.0) yang memiliki NetID 192.168.1.0 kita ingin membatasi jumlah host /komputer yang ada di jaringan tersebut menjadi 5. Maka yang pertama kita lakukan adalah mengubah bentuk desimal netmask menjadi bentuk biner NetID HostID 11111111 11111111 11111111 00000000 24 bit 8 bit Catatan: bit = digit biner Angka 5 (jumlah minimal yang dialokasikan) juga diubah ke bentuk biner: 5 10 = 101 2 Lalu hitung jumlah digit hasil pengubahan bentuk di atas, 101 ~ 3 digit biner. Dari 8 digit biner HostID kita isikan dari kanan kekiri 0 sebanyak 3 digit biner yang merupakan hasil penghitungan diatas, sedangkan 5 digit yang tersisa (= 8 – 3 digit) diisikan dengan nilai 1 .  Maka didapatlah HostID ini 11111000 yang bila di ubah bentuknya ke dalam desimal menjadi 248 . HostID diatas bila digabungkan dengan netmask induknya maka didapatlah subnetmask 255.255.255.248 Jumlah alamat yang disediakan netma...

Rekomendasi Untuk Mempersingkat Waktu Eksekusi Katalon Web Test

Latar Belakang Permasalahan Salah satu kriteria test yang baik adalah memiliki coverage yang baik. Tetapi lamanya waktu eksekusi seringkali jadi salah satu alasan untuk men- take out case - case yang ada agar test menjadi layak untuk ditunggu eksekusinya dan layak untuk dieksekusi sesering kebutuhan yang men- trigger -nya. Untuk itu diperlukan langkah-langkah untuk mempersingkat waktu tunggu test semaksimal mungkin tanpa harus mengeluarkan case - case yang telah disiapkan sebelumnya. Designed by Freepik Lingkungan Eksekusi Tes Pada tulisan ini diasumsikan test dieksekusi pada lingkungan CI/CD yang: 1. menggunakan commandline katalonc dari KRE (Katalon Runtime Engine). 2. Tiap job pipeline CI/CD bisa mengeksekusi beberapa test suite yang berbeda secara berurutan Rekomendasi Kesepakatan Sepakati dengan user , batas waktu test maksimum Batas waktu test perlu disepakati agar test bisa diakhiri dengan kesimpulan FAILED, jika melebihi batas waktu yang disepakati Sepakati dengan user , ...