Menghitung Usia Naya dengan Perl

Saat ini saya sedang ada di Pekanbaru dalam rangka tugas kerja seperti biasa. Nah minggu ini adalah jadwal anak kami (Naya) diimunisasi tapi berhubung lagi di luar kota akhirnya ibundanyalah yang harus mengantar ke rumah sakit bersama Yeti (adik ipar). Dari pada bengong saya buat program Perl sederhana untuk menghitung usia Naya saat ini. Hasilnya terlihat di akhir tulisan ini. Naya sudah berusia 1 tahun 2 bulan (Naya lahir 18 Agustus 2009) dan sekarang lagi lucu-lucunya. sudah bisa bermain sendiri dan terkadang larut dalam permainannya sendiri. Namun jika bundanya ada di rumah maka Naya selalu ingin bermanja-manja ria, terkadang tidak mau bermain sendiri(harus ditemani bundanya).

Saya sendiri telah banyak kehilangan masa-masa pertumbuhan Naya. Tapi saya masih terus berusaha untuk berkomunikasi dengan Naya dan bundanya pada layar HP (video call). Saya hanya mendengar perkembangannya dari bundanya seperti kelucuan-kelucuan yang dia lakukan setiap saat, dll.

kari@debian:~$ vi usia_naya.pl
<pre>#!/usr/bin/perl -w
#
# October 2010 kari\@kawananu.com
#
use strict;</pre>
<pre>###################################
# Scalar variables
###################################
my $naya_year_born = "2009";
my $date_today;
my $recent_old_year;
my $recent_month;</pre>
<pre>###################################
# Hash variable
###################################
my %months;</pre>
<pre>####End of variables definition#####
%months =(Jan =&gt; 1,
          Feb =&gt; 2,
          Mar =&gt; 3,
          Apr =&gt; 4,
          May =&gt; 5,
          Jun =&gt; 6,
          Jul =&gt; 7,
          Aug =&gt; 8,
          Sep =&gt; 9,
          Oct =&gt; 10,
          Nov =&gt; 11,
          Dec =&gt; 12);</pre>
<pre>##########################################################
# Output of "date" command : Sun Oct 31 10:31:07 WIT 2010#
##########################################################</pre>
<pre>$date_today = `date`;                                                            
my ($Day, $Month, $Date_, $Time_, $Zone, $Year) = split(/\s+/,$date_today);      
$recent_old_year = join (",",$Year-$naya_year_born,$months{$Month}-$months{Aug});
print "Myisha Kallista Abinaya telah berumur $recent_old_year tahun \n";</pre>
<pre>__END__
:wq</pre>
kari@debian:~$ chmod +x usia_naya.pl
kari@debian:~$ ./usia_naya.pl

Myisha Kallista Abinaya telah berumur 1,2 tahun

Dari program di atas ternyata masih adalah kelemahannya yakni jika bulan saat ini lebih kecil (<) dari bulan Agustus (8) maka program akan menampilkan contoh keluaran berikut.

Myisha Kallista Abinaya telah berumur 2, -2 tahun

Sebenarnya tidak ada masalah dengan keluaran tersebut tapi pembaca akan mengalami kesulitan dalam penerjemahannya jika dibanding dengan 1 tahun 10 bulan. Berkut skrip Perl versi lengkap untuk kasus di atas.

 

<pre>#!/usr/bin/perl -w</pre>
<pre>#</pre>
<pre># October 2010 kari\@kawananu.com</pre>
<pre># GNU/Linux Version</pre>
<pre>#</pre>
<pre>use strict;</pre>
<pre>use diagnostics;</pre>
<pre>###################################</pre>
<pre># Scalar variables</pre>
<pre>###################################</pre>
<pre>my $naya_year_born = "2009";</pre>
<pre>my $date_today;</pre>
<pre>my $recent_old_year;</pre>
<pre>my $recent_old_month;</pre>
<pre>my $recent_month;</pre>
<pre>###################################</pre>
<pre># Hash variable</pre>
<pre>###################################</pre>
<pre>my %months;</pre>
<pre>####End of variables definition#####</pre>
<pre>%months =(Jan =&gt; 1,</pre>
<pre>          Feb =&gt; 2,</pre>
<pre>          Mar =&gt; 3,</pre>
<pre>          Apr =&gt; 4,</pre>
<pre>          May =&gt; 5,</pre>
<pre>          Jun =&gt; 6,</pre>
<pre>          Jul =&gt; 7,</pre>
<pre>          Aug =&gt; 8,</pre>
<pre>          Sep =&gt; 9,</pre>
<pre>          Oct =&gt; 10,</pre>
<pre>          Nov =&gt; 11,</pre>
<pre>          Dec =&gt; 12);</pre>
<pre>##########################################################</pre>
<pre># Output of "date" command : Sun Oct 31 10:31:07 WIT 2010#</pre>
<pre>##########################################################</pre>
<pre>$date_today = `date`; # backquotes</pre>
<pre> my ($Day, $Month, $Date_, $Time_, $Zone, $Year) = split(/\s+/,$date_today);</pre>
<pre> if ($months{$Month} &lt; $months{Aug}){</pre>
<pre>     $recent_old_year  = (($Year-1)-($naya_year_born));</pre>
<pre>     $recent_old_month =((12)+($months{$Month}-$months{Aug}));</pre>
<pre>       if ($recent_old_year == 0){</pre>
<pre>          print "Myisha Kallista Abinaya telah berumur $recent_old_month bulan \n"}</pre>
<pre>          else {</pre>
<pre>               print "Myisha Kallista Abinaya telah berumur $recent_old_year tahun, $recent_old_month bulan \n";}</pre>
<pre> }</pre>
<pre> else { $recent_old_year = join (",",$Year-$naya_year_born,$months{$Month}-$months{Aug});</pre>
<pre>       print "Myisha Kallista Abinaya telah berumur $recent_old_year tahun \n";}</pre>
<pre>__END__</pre>

Penjelasan program di atas sbb.

<pre>if ($months{$Month} &lt; $months{Aug})</pre>

Baris di atas akan memeriksa bulan saat ini apakah lebih kecil (<) dari bulan Agustus (8), jika ya berarti akan menjalankan deretan skrip di bawahnya yakni.

<pre>{
   $recent_old_year  = (($Year-1)-($naya_year_born));</pre>
<pre>     $recent_old_month =((12)+($months{$Month}-$months{Aug}));</pre>
<pre>       if ($recent_old_year == 0){</pre>
<pre>          print "Myisha Kallista Abinaya telah berumur $recent_old_month bulan \n"}</pre>
<pre>          else {</pre>
<pre>               print "Myisha Kallista Abinaya telah berumur $recent_old_year tahun, $recent_old_month bulan \n";}</pre>
<pre> }</pre>

Jika bulan saat ini lebih besar (>) dari bulan Agustus maka program akan menjalankan skrip berikut.

<pre> else { $recent_old_year = join (",",$Year-$naya_year_born,$months{$Month}-$months{Aug});</pre>
<pre>       print "Myisha Kallista Abinaya telah berumur $recent_old_year tahun \n";}</pre>
<pre></pre>

Kode sumbernya dapat di-download pada link ini

Toko Online debianIndonesia.org

Sesuai dengan judul tulisan di atas, penulis mencoba peruntungan dengan berdagang di Internet. Semoga kedepannya toko tersebut bisa berkembang. Update barang-barangnya memang belum selesai karena waktu yang belum memungkinkan, tapi pengunjung sudah bisa melakukan pesanan ke toko kami. Link-nya ada disini.

Untuk sementara barang-barang yang bisa kami sediakan adalah buku penulis sendiri, komponen elektronika untuk membangun kamera pengawas berbasis open source, merchandise GNU/Linux, Komputer PC/Laptop/Netbook dengan sistem operasi GNU/Linux serta DVD/CD GNU/Linux & BSD.

sumber gambar: http://www.oshoppingdirectory.com/

Naya harus makan ikan laut

Setelah perjalanan dari Bandar Lampung hari sabtu kemarin,saya istirahat di rumah seharian dan bercengkrama dengan anak-istri karena badan masih terasa lelah setelah perjalanan jauh. Keesokan harinya mengantar istri untuk belanja kebutuhan sehari-hari dan mengajak Naya untuk makan ikan laut. Tempatnya di RM. Sulawesi Jl. Setiabudi Bandung. Kami memutuskan untuk makan di tempat tersebut karena tersedianya  ikan yang relatif masih segar. Sambil menunggu ikannya dibakar, Naya duduk di atas meja makan sambil bermain garpu dan sendok yang telah disediakan sebelumnya.

Begitu makanannya telah siap, kami suapi Naya dengan ikan+ kecap yang telah kami pesan sebelumnya dan Alhamdulillah Naya suka (soalnya ia termasuk orang yang sedikit pilih-pilih makanan).

Di Bandung, untuk mendapatkan ikan laut yang segar memang susah disamping karena harganya yang relatif mahal. Biasanya kalau ada penugasan di Makassar, saya bawakan Naya ikan dan udang dari sana. Tapi karena persediaan sudah habis maka kami harus mencarikannya di Bandung. Saya memang harus membiasakan/memaksakan Naya makan ikan laut karena itu sudah menjadi tradisi kami sebagai orang Sulawesi pada umumnya. Oh iya, Naya juga termasuk anak yang suka makan ikan lele padahal di Makassar kami jarang makan ikan lele. Saya sendiri baru makan ikan tersebut setelah sekolah di Bandung. Naya..Naya..

Jalan-Jalan (outing) bersama Ericsson Indonesia

Baru sempat menulis artikel tentang outing atau jalan-jalan bersama teman kerja di PT. Ericsson Indonesia. Tahun ini merupakan tahun terakhir bersama teman-teman di departemen OI. Perubahan organisasi di perusahaan kami membuat departemen ini dilebur dengan departemen lain. Perjalanan kali ini ke Sukabumi Jawa Barat dan menginap di hotel Desa Resort. Acaranya cukup padat seperti arum jeram di sungai Citarik kemudian mampir di pantai Pelabuhan Ratu.Photo ini dipotret oleh Arthur Simbolon setelah arum jeram dan makan siang.

Kalau photo  berikutnya adalah sesaat sebelum berangkat outing ke Bali tahun 2008. dan tulisannya sudah pernah dimuat di weblog ini.