01.08.08
Posted in Technical at 5:08 pm by yud1
pembaca, masih ingat tentang cerita mengenai notebook saya yang mendadak bermasalah beberapa waktu yang lalu? ini kelanjutan ceritanya.
untuk anda yang masih belum nyambung, cerita ini berawal sejak beberapa waktu yang lalu, di mana notebook saya (aka: M-E-T-E-O-R-[1] ) mendadak bermasalah. di antara pekerjaan yang semakin menumpuk dan deadline yang masih belum bosan mengejar, notebook saya crash, mengakibatkan hilangnya sebagian besar data yang akhirnya tidak dapat di-recover.
…bagusnya, tidak sampai ada masalah berarti gara-gara itu, sih. tapi untuk seterusnya sampai akhir semester, praktis saya meminimalkan penggunaan M-E-T-E-O-R- sampai waktu yang tidak ditentukan.
::
nah. itu cerita pengantarnya. silakan lihat link di bawah untuk detailnya kalau berminat. sekarang, saya akan menceritakan kelanjutannya.
insiden tersebut akhirnya baru bisa ditindaklanjuti setelah saya benar-benar punya waktu luang yang cukup layak. ya, ya, apa lagi kalau bukan liburan akhir semester!
…apa, service center? nanti dulu. itu pilihan terakhir, pembaca.
1. observasi masalah…
observasi kali ini dilakukan terhadap M-E-T-E-O-R-, sebuah laptop alias notebook Acer TravelMate 4020NWLCi. memori SODIMM[2] DDR2 256 MB, prosesor Pentium M 715 1.5 GHz, harddisk 60 GB. tidak pernah jatuh, terinjak, apalagi sampai terbanting dari atas tempat tidur. sumpah, saya nggak bohong.
gejalanya agak susah dideteksi, mengingat kemunculannya yang tidak menentu. kadang OS berjalan lancar untuk waktu yang lama, sebelum akhirnya terjadi blue screen. di lain kesempatan, komputer tidak bisa melakukan boot… tapi kemunculan gejala ini tidak memiliki pola yang jelas sehubungan dengan penggunaan aplikasi tertentu pada OS.
2. memori atau harddisk?
berhadapan dengan gejala berupa blue screen, kecurigaan langsung terarah ke dua komponen calon tersangka: memori, atau harddisk. berdasarkan pengalaman, masalah pada komponen lain (misalnya modem atau sejenisnya) paling parah hanya menyebabkan komputer hang dan tidak bereaksi terhadap input mouse atau keyboard. mungkin juga saya saja yang kurang pengalaman sih, tapi asumsi sementara adalah bahwa kemungkinan masalahnya berada di antara dua komponen tersebut.
![[harddisk notebook] [harddisk notebook]](http://i111.photobucket.com/albums/n147/yud1/1103_171211.jpg)
ini harddisk notebook saya. covernya dua sisi, jadi isinya tidak bisa dilihat. ada juga yang covernya satu sisi, sih.
kecurigaan terhadap memori berkurang setelah ditemukan bahwa setiap kali proses boot, tidak ditemukan gejala berupa BIOS beep[3] untuk masalah memori. hal ini menyisakan kecurigaan terhadap harddisk yang kini menjadi tersangka utama.
kecurigaan semakin diperkuat oleh timbulnya gejala lain yang terlihat belakangan: pesan Delayed Write Failed[4] yang ditampilkan oleh OS. selanjutnya, pengecekan BIOS ketika boot gagal memastikan sumber masalah: harddisk tidak dikenali untuk setiap proses boot yang gagal.
sekarang, diketahui bahwa masalahnya ada pada komunikasi harddisk dengan komponen lain. tapi, di mana? fisik harddisk? sambungan ke board? atau yang lain?
3. pertolongan pertama
asumsi sementara, masalah terletak pada harddisk atau sambungannya dari atau ke board. ada tiga kemungkinan: masalah pada board (terutama pada port interface ke harddisk), masalah pada harddisk (fisik harddisk memang sudah menurun fungsinya), atau masalah pada sambungannya (kabel kurang kencang? mungkin saja). mengingat bahwa hanya kemungkinan terakhir yang bisa ditangani secara mandiri, maka notebook pun dibongkar. sambungan kabel diperkencang, dan pengujian dilakukan kembali.
setelah beberapa kali utak-atik, gejala serupa masih terjadi. meskipun demikian, penggunaan pengganjal kertas untuk menstabilkan dudukan harddisk ternyata mampu mengurangi jumlah kemunculan gejala secara cukup signifikan.
![[mount hdd] [mount hdd]](http://i111.photobucket.com/albums/n147/yud1/1103_164043.jpg)
dudukan harddisk di notebook saya. pengganjal kertas dipasang di bawah dudukan, tidak kelihatan di gambar. tidak menyelesaikan masalah, tapi bisa meredakan gejala.
4. dan diagnosisnya adalah…
segera setelah urusan kabel dan sambungannya dipastikan beres, kecurigaan langsung terarah ke harddisk yang jadi korban. penggunaan ganjalan yang mengubah karakteristik gejala jelas bukan karena masalah di board. kemungkinan besar, masalahnya ada pada fisik harddisk: entah pada jarum, atau pelat magnetik, atau yang lain.
untuk yang ini, saya angkat tangan. jeroan harddisk sudah bukan mainan yang bisa dioprek sembarangan… untuk yang seperti ini, biasanya solusinya satu: ganti saja harddisknya!
sayangnya, diagnosis ini tidak dapat dipastikan karena tidak adanya pemilik notebook lain yang mau merelakan notebooknya untuk dipreteli harddisk-nya bisa dicoba ke notebook saya.
5. akhirnya, service center
tadi saya menyebutkan soal ‘service center itu upaya terakhir’? benar sekali. akhirnya, saya memang pergi ke sana, pembaca.
yah, akhirnya saya pergi ke service center untuk Acer, dengan tujuan utama untuk mengganti harddisk. pelayanannya oke, teknisinya lumayan ramah dan membumi (baca: tidak terkesan sombong atau sok tahu
), dan saya pun menitipkan notebook saya… lengkap dengan obrolan mengenai perkiraan saya mengenai komponen yang mungkin rusak berikut gejala-gejala yang timbul.
akhirnya saya ditelepon, bahwa ternyata masalahnya terletak pada harddisk tersebut (sesuai perkiraan), tepatnya pada pembaca pelat magnetik yang memang sudah lemah (tuh kan) dan kenyataan bahwa harddisk saya harus diganti (sudah diduga).
6. akhirnya…
saya kembali mendatangi service center, kali ini dengan notebook saya sudah menggunakan harddisk baru. sekalian sambil jalan, sekeping SODIMM DDR2 sebesar 1 GB jadi penghuni baru notebook saya. harga memorinya sendiri cukup oke, tapi harddisk baru ini terpaksa agak mahal… sehubungan dengan kurs dolar AS yang memang sedang tinggi. tapi secara umum, harga yang ditawarkan masih masuk akal, sih. overall, untuk harga komponen tidak ada masalah.
dan bagian terakhirnya adalah… charge untuk jasa servis. ongkos sekian rupiah akhirnya dikeluarkan untuk sebuah jasa servis dari teknisi ofisial, dengan pemeriksaan sampai ke fisik komponen dan pemasangan komponen baru berikut instalasi ulang OS. sudah sewajarnya sih, tapi agak sayang juga… mengingat sebenarnya saya bisa membeli komponen baru saja tanpa urusan servis yang lain.
…tapi belakangan, saya jadi berpikir-pikir lagi. ternyata, skill saya itu mahal juga, ya? mungkin asyik juga kalau saya bisa kerja sambilan sebagai teknisi spesialis notebook.
___
[1] Mobility-Enhanced, TFT-Equipped with Optimized Resource… entah kenapa, saya jadi agak-agak terbawa semangat singkatan ala Gundam di sini.
[2] ini jenis memori yang biasa digunakan untuk notebook. dilihat sepintas, bentuknya agak lebih kecil daripada memori untuk desktop.
[3] kalau ada komponen yang tidak terpasang dengan benar, komputer akan mengeluarkan bunyi beep yang bervariasi, tergantung komponen yang bersangkutan. beep untuk memori berbeda dengan beep untuk video adapter, misalnya.
[4] Delayed Write Failed terjadi ketika OS tidak bisa menulis informasi ke harddisk. disebut ‘delayed write’ karena data tidak langsung ditulis ke disk, melainkan di-buffer dulu. alasannya sih demi efisiensi akses I/O, tapi mekanisme ini tergantung OS, sih.
___
baca juga:
11.03.07 | lag of update… due to some ‘accident’
by yud1 5:08 pm
09.06.07
Posted in Technical at 9:38 pm by yud1
beberapa hari terakhir ini, saya mencoba melakukan modifikasi terhadap beberapa option yang ada di engine WordPress yang digunakan oleh website ini. namanya juga iseng-iseng bongkar, kalau nggak rusak nggak belajar, kan?
nah, salah satu ‘korban’ keisengan saya kali ini adalah feature permanent link yang disediakan oleh WordPress sejak saya melakukan upgrade engine beberapa waktu yang lalu[1]. yah, detailnya ada di salah satu entry di sini.
kalau anda memperhatikan, sebelumnya post yang saya tulis selalu menggunakan permanent link yang ‘tidak bersahabat’: hanya menggunakan ID dari post yang saya tulis sebagai parameternya, dengan angka-angka yang cenderung membingungkan. yah, begitulah pokoknya.
gampangnya begini. ini alamat untuk salah satu entry yang saya tulis beberapa waktu yang lalu.
http://yud1.csui04.net/?p=193
sekarang, jadi bisa seperti ini. tadinya sih nggak bisa, karena kustomisasi di engine lama tidak memungkinkan struktur seperti harapan saya[2]. whatever, pokoknya akhirnya bisa.
http://yud1.csui04.net/2007/08/26/back-on-the-rocks-at-last/
yang dilakukan oleh engine baru (dan tidak dilakukan engine lama) ini adalah menambahkan kemampuan untuk modifikasi file .htaccess[3] yang ada di server tempat engine ini di-deploy. cut the crap, akhirnya permanent link dari entry-entry yang ada di sini sekarang menggunakan bentuk yang (harusnya) lebih enak dipandang.
::
…sialnya, timbul masalah. setelah saya menggunakan bentuk permanent link yang baru, saya tidak bisa lagi menulis post di sini. saya bahkan tidak bisa menuliskan comment untuk melakukan comment-reply. aneh, pokoknya.
anehnya lagi, tiba-tiba saya menyadari hal yang tak kalah ‘absurd’: saya tidak bisa memasukkan pesan dengan metode POST[4], kalau saya memasukkan tag HTML dalam tulisan saya. setiap kali meng-klik ‘Submit’, saya hanya menemukan pesan berikut:
Error 406: Not Acceptable
aneh, padahal biasanya tidak ada masalah. file-nya masih ada, sebab kalau tidak seharusnya error 404: File Not Found. hal ini membingungkan, tapi dapat dipastikan bahwa gejala ini timbul setelah saya menambahkan file .htaccess berikut modifikasinya ke server.
selidik punya selidik (baca: main-main ke support WordPress.org, search di Google), akhirnya ditemukan kemungkinan bahwa hal tersebut disebabkan oleh security policy dari pihak penyedia hosting csui04.net. solusinya, coba modifikasi file .htaccess di server.
OK, mari kita coba. katanya sih, tambahkan code ini di .htaccess:
<ifmodule mod_security.c>
SecFilterInheritance Off
</ifmodule>
save .htaccess, lalu… voila. halaman error 406 tidak lagi muncul, dan saya bisa kembali menuliskan entry maupun comment dengan tag HTML.
OK, bagus. akhirnya masalah selesai.
…tapi anehnya, kenapa error 406 tadi cuma muncul kalau saya memasukkan tag HTML, yah?
___
[1] feature untuk kustomisasi permanent link ini sudah ada sejak lama. hanya saja, engine versi lama tidak bisa menyediakan kustomisasi seperti yang saya inginkan. saya baru bisa meng-kustomisasi sesuai keinginan sejak menggunakan WordPress 2.2.
[2] di engine lama, permanent link dengan struktur paling mendekati adalah
[alamat]/index.php/[tahun]/[bulan]/[tanggal]/[nama-post].
menurut saya ini nggak asyik, kelihatan bohongnya
[3] file ini berada di server, digunakan untuk mengatur penanganan request sebuah halaman. bisa digunakan untuk berbagai keperluan, tapi saya sendiri jarang berhubungan dengan benda ini.
[4] salah satu metode untuk mengolah input pengguna dari sebuah form HTML. contoh sederhananya, misalnya untuk comment di blog atau membuat entry baru.
by yud1 9:38 pm
04.18.07
Posted in Technical at 9:51 am by yud1
tulisan ini merupakan bagian dari pengalaman yang sempat ditulis di sini beberapa waktu yang lalu, dan sempat disinggung dalam salah satu post yang ada di sini. sebagai informasi, tulisan ini akan berhubungan erat dengan troubleshooting pada komputer, dan pengetahuan dasar akan hardware akan memudahkan anda dalam memahami apa yang akan saya tuliskan di sini.
jadi, untuk anda yang tertarik dan berminat dengan pembahasan mengenai troubleshooting, silakan melanjutkan membaca tulisan ini… lagipula, siapa yang perlu pergi ke service center kalau anda bisa menangani sendiri masalah pada komputer anda? =)
1. awalnya…
seorang pengguna yang bernama wiki mengeluhkan mengenai perilaku komputernya yang tiba-tiba mulai bersikap aneh: komputer menjadi sangat sering hang, khususnya ketika melakukan multitasking. fenomena hang ini meliputi seluruh komponen OS: proses berhenti berjalan, mouse menjadi tidak berfungsi, demikian juga input dari keyboard tidak dapat dikenali.
sebagai mahasiswi Informatics Engineering, beberapa asumsi langsung dipertimbangkan: serangan virus, atau error yang bersifat resident pada OS. proses instalasi ulang OS dilakukan, namun gejala yang timbul tidak juga hilang.
sebagai tambahan, beberapa orang rekan kuliah yang ditanyai pengguna menyatakan kemungkinan adanya kesalahan pada pemasangan hardware, namun hal ini belum dapat dipastikan. instalasi ulang OS format hard-disk tidak mampu menghilangkan gejala yang ada. utak-atik konfigurasi OS juga tidak membawa hasil, demikian juga utak-atik BIOS tidak berpengaruh.
ini bukan masalah untuk ditangani teknisi amatiran, maka Special Response Team (lagaknyaaa! =P ) untuk troubleshooting pun dipanggil dari Jakarta ke lokasi di Bandung untuk observasi.
2. observasi masalah!
setelah mendapatkan gambaran umum mengenai keadaan, observasi segera dilakukan di lokasi. masalah yang ada: PC sering hang dengan gejala seperti yang telah disebutkan.
proses boot berjalan tanpa masalah, demikian juga login ke OS. setelah beberapa lama, terjadilah gejala yang ditunggu: komputer hang tanpa syarat, tanpa blue screen dan tanpa peringatan. percobaan ulang dengan login ke OS dan menjalankan berbagai program secara multitasking memberikan hasil yang sama: komputer hang setelah beberapa saat, tanpa peringatan.
spesifikasi komputer terdiri atas prosesor Pentium4 @ 2.4 GHz, board dengan chipset Intel i865G, dan memori DDR-SDRAM PC-3200, 512 MB.
3. masalah memori?
asumsi pertama adalah bahwa gejala yang timbul disebabkan oleh hardware, bukan dari OS yang dipergunakan. instalasi ulang OS telah dilakukan, dan tidak menghilangkan gejala yang ada. jelas masalahnya bukan di OS. sasaran kecurigaan pertama adalah memori, yang terdiri atas satu keping DDR-SDRAM 512 MB. kemungkinan, dudukan memori yang tidak stabil mengakibatkan sistem hang di tengah jalan.

slot memori DDR: asumsi awal, pemasangan memori pada slot kurang tepat. meskipun demikian, tidak ada tanda-tanda kesalahan pemasangan memori dari BIOS
langkah pertama yang dilakukan adalah mencoba penggantian slot memori yang digunakan. percobaan di semua slot tetap tidak menghilangkan gejala, demikian juga tidak ada sinyal mengenai kesalahan pemasangan memori dari BIOS. selain itu, proses boot selalu berhasil tanpa masalah, demikian juga dengan sinyal POST dari BIOS.
kesimpulan sementara, masalah bukan disebabkan oleh kesalahan pemasangan memori.
4. penggunaan hardware monitor
setelah memori dinyatakan bebas dari dakwaan, kecurigaan beralih pada komponen lain. tapi, yang mana? sementara itu, penyebab hang belum dapat dipastikan. maka, digunakanlah tool yang hampir selalu disisipkan dalam setiap pembelian mainboard: sebuah paket hardware monitor yang meliputi kontrol terhadap suhu prosesor, board, dan putaran CPU fan serta chassis fan.
tool ini belum sempat di-install oleh pengguna, hal yang wajar sehubungan dengan penggunaannya yang memang lebih banyak dilakukan oleh power user. instalasi hardware monitor akhirnya dilakukan, dan uji ketahanan kembali dimulai. berbagai program dijalankan secara multitasking, mulai dari image editor sampai compiler dan audio player.
dan masalah-pun terdeteksi: komputer selalu hang setelah peringatan dari hardware monitor karena suhu prosesor melewati batas: 760 C, jauh di atas suhu prosesor Pentium4 pada umumnya yang berkisar antara 400 - 450 C.
5. HSF yang tidak berfungsi
setelah dipastikan bahwa tingkah komputer yang aneh ini disebabkan oleh suhu prosesor yang terlalu tinggi, masalah menjadi lebih sempit. jelas masalahnya ada pada distribusi panas yang tidak berjalan lancar dari prosesor ke sistem pendinginan yang membawa aliran udara panas keluar.
kecurigaan terarah kepada satu buah fan yang tidak tersambung pada power supply. pemasangan kabel power dari power supply ke fan dilakukan, namun ternyata suhu prosesor masih tetap tinggi, tidak ada perubahan signifikan. jelas, masalah ini tidak ada hubungannya dengan fan yang tidak menyambung.
akar masalah ditemukan setelah meletakkan board pada posisi horizontal. pencahayaan yang lebih baik dari sinar lampu langsung menunjukkan penyebabnya: kipas pada HSF berjalan normal, namun celah-celah pada HSF yang tersambung ke prosesor tertutup debu, mengakibatkan aliran udara yang digerakkan oleh HSF tidak sampai ke prosesor. ini dia masalahnya!

HSF pada Pentium4: celah-celah horizontal di bawah kipas berfungsi sebagai jalur perpindahan udara panas dari prosesor. tertutupnya celah dapat mengakibatkan panas terperangkap di prosesor.
6. akhirnya…
masalah dibereskan dengan menggunakan sikat gigi bekas (barang yang sangat murah, kalau dibandingkan dengan pergi ke service center), dan debu yang menumpuk disapu bersih dari HSF. untuk lebih memastikan, knop HSF pada prosesor dilonggarkan terlebih dahulu (lihat dua knop berwarna putih di atas fan? itu… =) ), dan debu dibersihkan.
setelah bebas-debu dan knop dikencangkan kembali, masalah-pun menghilang. suhu prosesor kembali berada di level normal 420 C, dan percobaan berikutnya dengan login ke OS dan pengujian dengan multitasking berjalan lancar tanpa masalah.
::
overall, masalah yang di-troubleshoot kali ini memang bukan masalah yang bisa diatasi oleh sembarang orang dengan sekali jalan. kalau anda membawa komputer dengan masalah seperti ini ke service center, kemungkinan komputer anda akan disuruh ‘menginap’ paling tidak semalam… lengkap dengan pemeriksaan menyeluruh dan cross-checking antar komponen, berikut fee untuk teknisi yang memperbaiki komputer anda.
..tapi kalau bisa melakukannya sendiri, buat apa pergi ke service center? 
by yud1 9:51 am
12.28.06
Posted in Technical at 4:20 pm by yud1
percayakah anda, bahwa hal yang kelihatannya sepele kadang-kadang bisa meningkatkan coding speed? saya sih percaya. apalagi kalau hal tersebut berkaitan dengan ‘menemukan salah apa di mana’ dalam program yang panjangnya bisa sampai ratusan baris (atau bahkan bisa ribuan, kalau dihitung dari semua file yang ada). yah, pokoknya program yang bisa berlembar-lembar kalau di-print semuanya.
euh… anda yang tidak atau kurang familiar dengan programming mungkin agak bingung dengan judulnya yang ‘aneh’. jadi sebelumnya, mari kita bicarakan dulu apa yang akan saya tulis di sini.
dalam programming, seorang programmer menuliskan perintah-perintah dalam sebuah file. anggap saja file ini kayak daftar perintah yang harus dikerjakan oleh komputer, jadi sang komputer ini bisa bertindak sesuai kemauan kita. bahasa-bahasa yang digunakan bisa dibilang ‘kaku’ dan ‘aneh’ untuk ukuran manusia ‘normal’, jadi sebaiknya tidak usah dipikirkan kalau anda memang tidak berkepentingan dengan hal tersebut =P.
jadi, dalam program yang jumlahnya bisa sampai ratusan atau ribuan baris (yang sekarang sedang gw kerjakan sih 800an baris, dan ada file lain 200an baris, dan masih ada beberapa file lagi yang lain, jadi kayaknya 1000 baris lewat tuh =P), perlu ada suatu pengecekan per bagian: ada yang salah nggak sih?
nah, kadang-kadang, sebagian (besar?) programmer lebih suka untuk (atau secara tidak sadar) melakukan pengecekan error yang tidak menjelaskan error-nya ada di mana, misalnya dengan penggunaan kata-kata seperti “salah tuh” atau “hoiii” yang dicetak ke layar. atau ketika ada kesalahan query dalam input ke database, pesan error-nya hanya “query-nya salah tuh”.
dan sejujurnya, gw termasuk yang demikian juga… kadang-kadang =).
dan gw berakhir dengan bingung sendiri, karena akhirnya harus sering-sering ctrl+F (ini fungsi find , tahu kan, misalnya untuk mencari kata tertentu di notepad atau sejenisnya) untuk mencari kesalahan pada program yang sedang gw kerjakan.
yah, gw sih merasa lebih terbantu kalau misalnya query database yang bermasalah ditampilkan ke layar (soalnya mungkin saja gw kurang tanda kutip ‘ atau sejenisnya, jadi kan salah tuh).
dan yang lebih mengganggu lagi, kalau anda menggunakan try-catch dalam Java (ini salah satu bahasa pemrograman, banyak kok yang lain =) ). hal yang menyebalkan bisa terjadi, misalnya sebagai berikut.
try {
//…blok program
} catch (Exception e) { }
ada masalah kecil. ketika ada exception (yang biasanya terjadi karena kesalahan dalam programming, walaupun tidak selalu) yang terjadi di program tersebut. kenapa? jelas, kan. ketika terjadi exception, tidak ada pesan yang ditampilkan! mau NumberFormatException, IOException, atau NullPointerException juga akan terasa baik-baik saja… kecuali sebegitu fatalnya sampai program yang dibuat menjadi crash.
jadi mungkin ada baiknya kalau pesan yang diberikan lebih jelas. kalau query-nya salah, tuliskan query yang salah itu apa-adanya. kalau ada percabangan, tuliskan dengan jelas status dan variabel yang ada. pokoknya apapun yang ada sejelas mungkin, sehingga rekan programmer anda cukup terbantu untuk memperbaiki program yang anda kerjakan.
dan yang jelas, sebagai programmer, dengan demikian anda akan menguntungkan rekan anda yang bertugas untuk membenahi program yang anda buat. iyalah, rekan anda mungkin masih harus belajar dulu mengenai istilah “hoii” “wahh” atau “lewat sini” yang anda buat. dan percayalah, rekan anda mungkin akan sedikit frustrasi kalau harus membolak-balik ratusan baris program demi mengetahui arti dari ‘kata-kata sakti’ yang anda tuliskan =).
kembali ke contoh tadi, sebenarnya lebih efisien dengan menggunakan printStackTrace(). iyalah, dengan demikian anda langsung tahu anda salah apa, di mana, bahkan sampai ke baris berapa. jauh lebih informatif dibandingkan dengan contoh pertama tadi.
try {
//…blok program
} catch (Exception e) { e.printStackTrace(); }
jadi sebenarnya, hidup itu bisa dibuat mudah. setidaknya, lebih mudah untuk rekan anda yang mungkin masih harus memperbaiki program yang masih harus di-debug, dengan atau tanpa ‘kata-kata sakti’ yang anda tuliskan.
___
footnote:
- bug - kesalahan pada program, mengakibatkan hasil yang dikerjakan komputer tidak sesuai harapan programmer.
- query - perintah yang dimasukkan pada database, misalnya untuk mencari data dengan kriteria yang diinginkan.
- exception - hal yang terjadi karena perintah yang tidak dapat di-handle oleh komputer, misalnya input alfabet atau huruf untuk variabel yang diolah secara numerik.
___
pengalaman pribadi. mari kita budayakan programming yang bertenggang-rasa =)
by yud1 4:20 pm