Bahasa pemrograman script seperti PHP dan Python menyediakan fitur untuk menangani pengolahan string maupun array (list pada bahasa pemrograman python). Salah satu hal yang paling sering dihadapi adalah mereverse string.
Diasumsikan string berikut berisi tanggal dengan format dd-mm-YYYY
string = '28-10-2009'
dan ingin direverse menjadi YYYY-mm-dd
string = '2009-10-28'
Cara yang paling gampang untuk melakukannya adalah dengan split string tersebut menjadi array/list berdasarkan separatornya yaitu "-", kemudian reverse urutan dari array/list tersebut, dan setelah itu menjadikan array/list tersebut menjadi sebuah string berdasarkan separatornya yaitu "-". Pada bahasa pemrograman PHP kita bisa melakukannya dengan kode berikut:
<?php
$date = '28-10-2009';
$split = split('-', $date);
krsort($split);
$rev_date = implode('-', $split); // '2009-10-28'
?>Kebetulan project yang saya kerjakan ini menggunakan python, dan sayangnya saya tidak menemukan fungsi ataupun method dari modul string yang memiliki fungsi yang sama dengan fungsi implode() di php. Sampai akhirnya saya menemukan tautan berikut dan mengetahui bahwa string.join() sama dengan implode() di php .
date = '28-10-2009' rev_date = '-'.join(date.split('-')[::-1])
Ternyata proses tersebut lebih simple dilakukan di python :D
Itu karena proses reverse array hasil split (krsort()) menggunakan passing array by reference sehingga hanya bisa dilakukan di luar fungsi dan menambah banyaknya baris dari kode tersebut.
Wassalam
Comments
untuk convert tanggal, bisa
untuk convert tanggal, bisa juga kita convert dulu ke time kemudian convert balik ke string sesuai dengan format yg diinginkan, contoh :
$date = date("Y-m-d",strtotime('28-10-2009'));
mungkin di phyton kita bisa juga convert ke time dulu baru ke string
@kira Thanks
@kira
Thanks feedbacknya,
Emang lebih simple, tapi itu akan memakan resource yg lebih (walau gak bakalan kerasa). Karena strtotime() itu akan mengkonversi string ke unixtime (integer), trus dari unixtime itulah didapat string yang di inginkan dengan fungsi date(). Jadi aku milihnya maen di level string aja.
<?php$start_time = microtime();
$split = split('-', '28-10-2009');
krsort($split);
$rev_date = implode('-', $split); // '2009-10-28'
echo microtime() - $start_time, PHP_EOL;
?>
<?php$start = microtime();
$date = date("Y-m-d",strtotime('28-10-2009'));
echo microtime() - $start, PHP_EOL;
?>
Bila dieksekusi, contoh kode yang pertama akan memberikan waktu eksekusi 0.000154 detik, sedangkan untuk kode kedua memakan waktu 0.006871 detik. Memang perbedaan tersebut tidak akan terasa, tapi tetap saja kode pertama lebih optimize dari kode kedua karena hal yang sudah aku jelaskan sebelumnya.
Kalo di python sendiri, prosesnya bakal lebih panjang lagi kalo di konversi. Karena python mempunyai tipe data untuk date dan datetime. Jadi tidak bisa disamakan dengan contoh kode php di atas.
Wassalam
Nice artikel :-)
Nice artikel :-)
Kirim Komentar