Seven Stars Group

Konsultan IT, Travelling, Shop Online, Event Organizer, Etc.

Seven Stars Group

Konsultan IT, Travelling, Shop Online, Event Organizer, Etc.

Seven Stars Group

Konsultan IT, Travelling, Shop Online, Event Organizer, Etc.

Seven Stars Group

Konsultan IT, Travelling, Shop Online, Event Organizer, Etc.

Seven Stars Group

Konsultan IT, Travelling, Shop Online, Event Organizer, Etc.

Rabu, 10 Agustus 2011

Pantun Buat Sahabat

Mengintai kejora dimalam hari
Hanya kelihatan menjelang pagi
Terimakasih sahabat kerana memahami
Segala kelemahan diriku ini

Suara si pungguk mendayu-dayu
Memuja bulan tak pernah jemu
Biar di dunia kuhimpun rindu
Di akhirat sana kupohon bertemu

Anak haruan mati terperangkap
Jangan keli dikatakan sepat
Padamu sahabat daku berharap
Di sudut hatimu namaku terpahat

Yang merah itu dikatakan saga
Yang indah itu dikatakan bahasa
Bagaimana akhirnya persahabatan kita?
Mampukah meruntun hingga ke Syurga?

Meleret senyum manis di bibirmu
Hilanglah duka terpancar rindu
Ku ukir namamu di dasar qalbu
Ukhwah fillah menjadi dambaku

Indah sungguh bunga di t aman
Disusun orang buat jambangan
Ingin kuselam hatimu teman
Begitu sukarnya mencari jawapan

Merenung langit di kala senja
Mengharap fajar akan menjelma
Padamu Tuhan kupanjatkan doa
Persahabatan ini subur selamanya

Sabtu, 06 Agustus 2011

Setting Linux PPP Dial Up

Ini adalah artikel tentang settingDial Up PPP di Linux yang ditulis oleh rekan CyberBug

(Kecoak Elektronik). Tanpa bermaksud mengaudit atau melanggar hak cipta (apalagi meniru Malaysia :D ), saya posting disini agar semua orang bisa membaca dan semoga bermanfaat bagi yang memerlukan.Thx.

=== ready to read it===

oleh CyberBug [Kecoak Elektronik]
Tux

Berikut ini adalah script-script yang diperlukan :
1. /usr/sbin/ppp-on
2. /usr/sbin/ppp-off
3. /etc/ppp/ppp-on-dialer
4. /etc/ppp/options
5. /etc/ppp/options.ttyS3 {ttyS3=COM4,ttyS2=COM3,ttyS1=COM2,ttyS0=COM1}
6. /etc/ppp/login

Kalau file-file diatas tidak ada di Linux Box anda, buat saja dengan
mengikuti contoh berikut :) … BTW anda musti root utk buat script ini

1. ppp-on: edit bagian TELEPHONE, ACCOUNT, PASSWORD (dibagian awal script)
dan edit /dev/ttyS? dan speed (dibagian akhir script),
/dev/ttyS0 = COM1, /dev/ttsS1 = COM2 dst (di mesin saya /dev/ttyS3)
speed dimesin saya diset 115200.
Yang lainnya biarkan (jangan diganti),
Kalo modem 14400 set jadi 38400, modem 33600 set jadi 115200

———————– begin ppp-on script ————————–
#!/bin/sh
#
# Script to initiate a ppp connection. This is the first part of the
# pair of scripts. This is not a secure pair of scripts as the codes
# are visible with the ‘ps’ command. However, it is simple.
#
# These are the parameters. Change as needed.
TELEPHONE=666666 # Ganti dengan nomor telp. dial up anda.
ACCOUNT=namaanda # Ganti dengan loginname anda mis: joe
PASSWORD=passwordanda # Ganti dengan password anda mis: j0nd03
LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0
NETMASK=255.255.255.0 # The proper netmask if needed
#
# Export them so that they will be available at ‘ppp-on-dialer’ time.
export TELEPHONE ACCOUNT PASSWORD
#
# This is the location of the script which dials the phone and logs
# in. Please use the absolute file name as the $PATH variable is not
# used on the connect option. (To do so on a ‘root’ account would be
# a security hole so don’t ask.)
#
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#
# Initiate the connection
#
# I put most of the common options on this command. Please, don’t
# forget the ‘lock’ option or some programs such as mgetty will not
# work. The asyncmap and escape will permit the PPP link to work with
# a telnet or rlogin connection. You are welcome to make any changes
# as desired. Don’t use the ‘defaultroute’ option if you currently
# have a default route to an ethernet gateway.
#
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS3 115200 \
asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT
———————— end ppp-on script —————————
2. ppp-off tidak perlu diedit/diutak-atik, isinya sbb:

———————– begin ppp-off script ————————-
#!/bin/sh
######################################################################
#
# Determine the device to be terminated.
#
if [ "$1" = "" ]; then
DEVICE=ppp0
else
DEVICE=$1
fi

######################################################################
#
# If the ppp0 pid file is present then the program is running. Stop it.
if [ -r /var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
#
# If the kill did not work then there is no process running for this
# pid. It may also mean that the lock file will be left. You may wish
# to delete the lock file at the same time.
if [ ! "$?" = "0" ]; then
rm -f /var/run/$DEVICE.pid
echo “ERROR: Removed stale pid file”
exit 1
fi
#
# Success. Let pppd clean up its own junk.
echo “PPP link to $DEVICE terminated.”
exit 0
fi
#
# The ppp process is not running for ppp0
echo “ERROR: PPP link is not active on $DEVICE”
exit 1
———————– end ppp-off script ————————
3. ppp-on-dialer:
Bentuk asli dari dua (2) baris terakhir adalah:
ogin:–ogin: $ACCOUNT \
assword: $PASSWORD
Tapi karena beberapa provider saya mempunyai standar login sbb:
login :
password :
(Perhatikan ada spasi sesudah login dan password), thus tidak bisa
didetect ppp-on-dialer, jadi saya mencoba bentuk
:–: $ACCOUNT \
: $PASSWORD
Dan sampai sekarang tidak ada masalah (utk semua provider saya).

——————- begin ppp-on-dialer script ——————-
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec chat -v \
TIMEOUT 3 \
ABORT ‘\nBUSY\r’ \
ABORT ‘\nNO ANSWER\r’ \
ABORT ‘\nRINGING\r\n\r\nRINGING\r’ \
” \rAT \
‘OK-+++\c-OK’ ATH0 \
TIMEOUT 30 \
OK ATDT$TELEPHONE \
CONNECT ” \
:–: $ACCOUNT \
: $PASSWORD
——————– end ppp-on-dialer script ——————–
4. /etc/ppp/options :

———————- begin options script ———————-
asyncmap 0
lock
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
———————— end options script ———————-
5. /etc/ppp/options.ttyS3 :

——————– begin options.ttyS3 script ——————
115200
/etc/ppp/login
defaultroute
noipdefault
——————— end options.ttyS3 script ——————-

6. /etc/ppp/login :

———————— begin login script ———————-
dummy {yg ini bisa diisi sembarang teks}
dummy {ini juga}
————————– end login script ———————-
7. Berikut permission utk masing2 script

cyberservices:/usr/sbin# ls -la ppp-*
-r-x–x–x 1 root root 967 Jun 14 1995 ppp-off*
-r-x–x–x 1 root root 1639 Aug 30 22:42 ppp-on*

cyberservices:/etc/ppp# ls -la
total 16
drwxr-xr-x 2 root root 1024 Aug 31 23:13 ./
drwxr-xr-x 9 root root 2048 Sep 2 22:00 ../
-rw-r–r– 1 root root 0 Aug 30 22:41 connect-errors
-rw-r–r– 1 root root 12 Aug 31 23:22 login
-rw-r–r– 1 root root 9672 Aug 31 22:06 options
-rw-r–r– 1 root root 51 Aug 31 23:21 options.ttyS3
-rwx—— 1 root root 384 Aug 30 22:41 ppp-on-dialer*
8. Untuk dial gunakan :
ppp-on

9. Oya untuk ngintip lognya coba:
tail -f /var/adm/messages

atau anda bisa bikin script yg isinya:
#!/bin/sh
exec tail -f /var/adm/messages
beri nama misalnya ppplog, whatever you want, kemudian chmod +x ppplog

10. Untuk kembali ke shell, break saja (^C)

11. Untuk off koneksi ketik :
ppp-off
Happy Dialing,
CyberBug
[http://www.k-elektronik.org]

Terbitan Online KEcoak Elektronik
http://k-elektronik.org

Minggu, 17 Juli 2011

Keutamaan Surah Al-Waqi'ah, Ar-Rahman, dan Al-Mulk

Semoga Aku dan Keluargaku termasuk orang golongan kanan. Karna Allah telah menjanjikan kepada orang golongan kanan Surga. (QS : Al-Waqi'ah)
Ketika mengucapkan Fabiayyi alai Rabbikuma tukadzdziban” - “La bisyay-in min alaika rabbi akadzibu. (QS : Ar-Rahman)

Habis baca Surat itu. Yang belum membacanya. Bacalah dengan terjemahannya.
Insya Allah kita termasuk golongan kanan. Amin ya ALLAH

Keutamaan Surah Al-Waqi'ah, Ar-Rahman, dan Al-Mulk

  1. Surat Al-Waqi’ah :
  2. - Ubay bin ka’b berkata bahwa Rasullulah saw bersabda:” barang siapa yang membaca surat Al-Waqi’ah, ia akan dicatat tidak tergolong pada orang-orang yang lalai.”
  3. - Abdullah bin Mas’ud berkata bahwa Rasullulah saw bersabda”barang siapa yang membaca surat Al-Waqi’ah,ia tidak akan tertimpa oleh kefakiran selamanya”
  4. - Imam Ja’far Ash- Shadiq berkata :”barang siapa yang membaca surat Al-Waqi’ah pada malam jum’at ,ia akan dicintai oleh Allah, dicintai oleh manusia,tidak melihat kesengsaraan, kefakiran,kebutuhan,dan penyakit dunia,surat ini adalah bagian dari sahabatAmirul Mukimin (sa) yang bagi beliau memiliki keistimewan yang tidak tertandingi oleh yang lain.”
  5. - Imam Ja’far Ash-Shadiq (sa)berkata: “barang siapa yang merindukan surga dan sifatnya, maka bacalahsurat Al-Waqi’ah; dan barang siapa yang ingin melihat sifat neraka,maka bacalah surat As-Sajadah.”
  6. - Imam Muhammad Al-Baqir (sa) berkata:”barang siapa yang membaca surat Al-Waqi’ah sebelum tidur,ia akan berjumpa dengan Allah dalam keadaan wajahnya seperti bulan purnama.”
  7. Surat Al-Mulk:
  8. - Ibnu Abbas berkata:” Pada suatu hari ada seseorang menghampar jubahnya di atas kuburan dan dan ia tidak tahu bahwa tempat itu adalah kuburan, ia membaca surat Al-Mulk, kemudian ia mendengar suara jeritan dari dalam kuburan itu: inilah yang menyelamatkan aku. Kemudian kejadian itu diceriterakan kepada Rasullulah SAW,lalu beliau bersabda : surat Al-Mulk dapat menyelamatkan penghuni kubur dari azab kubur.”
  9. - Imam Muhammad Al-Baqir (sa) berkata:”surat Al-Mulk adalah penghalang dari siksa kubur, surat ini termaktub di dalam taurat, barang siapa yang membacanya di malam hari ia akan memperoleh banyak manfaat dan kebaikan. Sungguh aku membacanya dalam shalat sunnah sesudah Isya’ dalam keadaan duduk. Ayahku membacanya pada sian dan malam. Barang siapa yang membacanya, maka ketika malaikat Munkar dan Nakir akan masuk ke kuburnya dari arah kedua kakinya, kedua kakinya berkata kepada mereka: kalian tidak ada jalan kearahku, karena hamba ini berpijak kepadaku lalu ia membaca surat Al-Mulk pada siang dan malam hari; ketika mereka datang kepadanya dari rongganya, rongganya berkata kepada mereka: kalian tidak ada jalan kearahku, karena hamba ini telah menjagaku dengan surat Al-Mulk; ketika mereka datang kepadanya dari arah lisannya, lisannya berkaya kepada mereka: kalian tidak ada jalan ke arahku, karena hamba ini telah membaca surat Al-Mulk setiap siang dan malam denganku.”
  10. - Imam Muhammad Al-Baqir (sa) :” bacalah surat Al-Mulk, karena surat ini menjadi penyelamat dari siksa kubur.”
  11. Surat Ar-Rahman:
  12. - Rasullulah SAW bersabda :”barang siapa yang membaca surat Ar-Rahman, Allah akan menyayangi kelemahannya dan meridhai nikmat yang dikaruniakan kepadanya.”
  13. - Imam Ja’far Ash-Shadiq (sa):” barang siapa yang membaca surat Ar-Rahman, dan ketika membaca kalimat”Fabiayyi alai Rabbikuma tukadzdziban”ia mengucapkan “La bisyay-in min alaika rabbi akadzibu (tidak ada satupun nikmat-Mu duhai tuhanku yang aku dustakan), jika saat membacanya itu pada malam dan siang hari kemudian ia mati,maka matinya seperti matinya orang yang syahid.

Rabu, 29 Juni 2011

Isra’ Mi’raj Nabi Muhammad SAW

Maha suci Allah, yang telah memperjalankan hamba-Nya pada suatu malam dari Masjidil Haram ke Masjidil Aqsha yang telah Kami berkahi sekelilingnya agar Kami pertihatkan kepadanya sebagian dari tanda-tanda (kebesaran) Kami. Sesungguhnya Dia adalah Maha Mendengar lagi Maha Melihat” (Q.S.Al-Israa’:1)

Isra’ Mi’raj adalah peristiwa luar biasa yang dialami Rasulullah pada malam 27 Rajab
tahun ke 12 kenabian, begitu luar biasanya sehingga Allah mengfirmankan ayat yang menjadi petunjuk mengenai hal tersebut dengan kata SUBHANA, sebuah ungkapan ketika melihat kejadian yang menakjubkan. Menurut imam Al Harits : Tasbih itu berfungsi sebagai bantahan yang menolak kepada orang-or-ang kafir, karena setelah nabi Muhammad SAW menceritakan kepada mereka tentang Isra’ mereka mendustakannya. Jadi artinya adalah bahwa Maha Suci Allah dari menjadikan seorang Rasul yang bohong.

Isra’ dan Mi’raj merupakan dua kejadian yang berkesinambungan dan kesatuan yang tidak terpisahkan. Isra’ berarti perjalanan dimalam hari sedang mi’raj adalah tangga alat naik. Peristiwa Isra’ Mi’raj bermula ketika Malaikat Jibril AS mendapat perintah dari Allah untuk menjemput Nabi Muhammad SAW untuk menghadap Allah SWT. Jibril membangunkan Rasul dan membimbing-nya keluar Masjidil Haram ternyata diluar masjid telah menunggu kendaraan bernama Buraq sebuah kendaraan yang kecepatannya lebih cepat dari kecepatan rambat cahaya dan setiap langkahnya sejauh mata memandang.

Perjalanan dimulai Rasulullah mengendarai buraq bersama Jibril. Jibril berkata, “turunlah dan kerjakan shalat”.
Rasulullahpun turun. Jibril berkata, “dimanakah engkau sekarang ?”
“tidak tahu”, kata Rasul.
“Engkau berada di Madinah, disanalah engkau akan berhijrah “, kata Jibril.
Perjalanan dilanjutkan ke Syajar Musa (Masyan) tempat penghentian Nabi Musa ketika lari dari Mesir, kemudian kembali ke Tunisia tempat Nabi Musa menerima wahyu, lalu ke Baitullhmi (Betlehem) tempat kelahiran Nabi Isa AS, dan diteruskan ke Masjidil Aqsha di Yerussalem sebagai kiblat nabi-nabi terdahulu.

Jibril menurunkan Rasulullah dan menambatkan kendaraannya. Setelah rasul memasuki masjid ternyata telah menunggu Para nabi dan rasul. Rasul bertanya : “Siapakah mereka ?”
“Saudaramu para Nabi dan Rasul”.
Kemudian Jibril membimbing Rasul kesebuah batu besar, tiba-tiba Rasul melihat tangga yang sangat indah, pangkalnya di Maqdis dan ujungnya menyentuh langit. Kemudian Rasulullah bersama Jibril naik tangga itu menuju kelangit tujuh dan ke Sidratul Muntaha.

Dan sesungguhnya nabi Muhammad telah melihatJibril itu (dalam rupanya yang asli) pada waktu yang lain, yaitu di Sidratul Muntaha. Di dekatnya ada surga tempat tinggal, (Muhammad melihat Jibril) ketika Sidratull Muntaha diliputi oleh sesuatu yang meliputinya. Penglihatannya (Muhammad) tidak berpaling dariyang dilihatnya itu dan tidakpula melampauinya. Sesungguhnya dia telah melihat sebahagian tanda-tanda (kekuasaan) Tuhannya yang paling besar.” (QS. An-Najm : 13 – 18).

Selanjutnya Rasulullah melanjutkan perjalanan menghadap Allah tanpa ditemani Jibril Rasulullah membaca yang artinya : “Segala penghormatan adalah milikAllah, segala Rahmat dan kebaikan“.
Allah berfirman yang artinya: “Keselamatan bagimu wahai seorang nabi, Rahmat dan berkahnya“.
Rasul membaca lagi yang artinya: “Keselamatan semoga bagi kami dan hamba-hamba Allah yang sholeh. Rasulullah dan ummatnya menerima perintah ibadah shalat“.
Berfirman Allah SWT : “Hai Muhammad Aku mengambilmu sebagai kekasih sebagaimana Aku telah mengambil Ibrahim sebagai kesayanagan dan Akupun memberi firman kepadamu seperti firman kepada Musa Akupun menjadikan ummatmu sebagai umat yang terbaik yang pernah dikeluarkan pada manusia, dan Akupun menjadikan mereka sebagai umat wasath (adil dan pilihan), Maka ambillah apa yang aku berikan kepadamu dan jadilah engkau termasuk orang-orang yang bersyukur“.

“Kembalilah kepada umatmu dan sampaikanlah kepada mereka dari Ku”.
Kemudian Rasul turun ke Sidratul Muntaha.
Jibril berkata : “Allah telah memberikan kehormatan kepadamu dengan penghormatan yang tidak pernah diberikan kepada seorangpun dari makhluk Nya baik malaikat yang terdekat maupun nabi yang diutus. Dan Dia telah membuatmu sampai suatu kedudukan yang tak seorangpun dari penghuni langit maupun penghuni bumi dapat mencapainya. Berbahagialah engkau dengan penghormatan yang diberikan Allah kepadamu berupa kedudukan tinggi dan kemuliaan yang tiada bandingnya. Ambillah kedudukan tersebut dengan bersyukur kepadanya karena Allah Tuhan pemberi nikmat yang menyukai orang-orang yang bersyukur”.
Lalu Rasul memuji Allah atas semua itu.

Kemudian Jibril berkata : “Berangkatlah ke surga agar aku perlihatkan kepadamu apa yang menjadi milikmu disana sehingga engkau lebih zuhud disamping zuhudmu yang telah ada, dan sampai lah disurga dengan Allah SWT. Tidak ada sebuah tempat pun aku biarkan terlewatkan”. Rasul melihat gedung-gedung dari intan mutiara dan sejenisnya, Rasul juga melihat pohon-pohon dari emas. Rasul melihat disurga apa yang mata belum pernah melihat, telingan belum pernah mendengar dan tidak terlintas dihati manusia semuanya masih kosong dan disediakan hanya pemiliknya dari kekasih Allah ini yang dapat melihatnya. Semua itu membuat Rasul kagum untuk seperti inilah
mestinya manusia beramal. Kemudian Rasul diperlihatkan neraka sehingga rasul dapat melihat belenggu-belenggu dan rantai-rantainya selanjutnya Rasulullah turun ke bumi dan kembali ke masjidil haram menjelang subuh.

Mandapat Mandat Shalat 5 waktu

Agaknya yang lebih wajar untuk dipertanyakan, bukannya bagaimana Isra’ Mi’raj, tetapi mengapa Isra’ Mi’raj terjadi ? Jawaban pertanyaan ini sebagaimana kita lihat pada ayat 78 surat al-lsra’, Mi’raj itu untuk menerima mandat melaksanakan shalat Lima waktu. Jadi, shalat inilah yang menjadi inti peristiwa Isra’Mi’raj tersebut.

Shalat merupakan media untuk mencapai kesalehan spiritual individual hubungannya dengan Allah. Shalat juga menjadi sarana untuk menjadi keseimbangan tatanan masyarakat yang egaliter, beradab, dan penuh kedamaian. Makanya tidak berlebihan apabila Alexis Carrel menyatakan : “Apabila pengabdian, sholat dan do’a yang tulus kepada Sang Maha pencipta disingkirkan dari tengah kehidupan bermasyarakat, hal itu berarti kita telah menandatangani kontrak bagi kehancuran masyarakat tersebut“. Perlu diketahui bahwa A. Carrel bukanlah orang yang memiliki latar belakang pendidikan agama, tetapi dia adalah seorang dokter dan pakar Humaniora yang telah dua kali menerima nobel atas hasil penelitiannya terhadap jantung burung gereja dan pencangkokannya. Tanpa pendapat Carrel pun, Al – Qur’an 15 abad yang lalu telah menyatakan bahwa shalat yang dilakukan dengan khusu’ akan bisa mencegah perbuatan keji dan mungkar, sehingga tercipta tatanan masyarakat yang harmonis, egaliter, dan beretika.

Sumber : Risalah Dakwah Mau’izah Hasanah No. 525 – 8 Agustus 2008

NSIS Error

Mungkin ini cerita lama yang udah tua, karena pasti udah banyak blog ato web lain menerangkan cerita ini.
tapi ini adalah pengalaman gue, jadi gag papa buat pengingat kita semua.
Pengalamanku bercerita : Gara - gara kena tangtop (panggilan sayang buat Laptopku hehehe) kenA virus RENOUCE, hancur semua program (yang berextensi .exe) gue, setelah gue berusaha keras buat ngapus tu virus, akhirnya selesai juga. dikira bakal sudah selesai ternyata aplikasi yang udah gue instal di tangtop pada rusak semua, pas mau dibuka keluar yang kayak gini












Nah bingung lagi, maklum gag pandai dengan masalah kayak gini......
Permasalahannya adalah NSIS itu apa? gimana agar aplikasi gue itu bisa digunakan lagi?

NSIS itu apa?
NSIS kepanjangan dari Nullsoft Scriptable Install Sistem adalah suatu software installer suatu aplikasi. NSIS bukan bawaan dari OS. klo sobast mau tau lengkapnya NSIS itu apa silahkan buka berkunjungi di web resminya http://nsis.sourceforge.net/.
NSIS error bisa dikarena file instaler programnya rusak karenaa download yang tidak sempurna atau pun karena terkena virus.
Jadi dalam masalah ini, NSIS gue rusak karena virus.

terus gimana agar aplikasi gue yang rusak NSIS bisa dipergunakan lagi??

Dari pengalaman gue, mungkin sobat bisa ngikutin langkah-langkah kayak gini.
Satu, Uninstal dulu aplikasi kita yang rusak tersebut dengan cara buka Command Prompt (CMD), klik start -->run-->ketik cmd-->enter. nanti akan keluar CMD dengan latar hitam.
Dua, CMD masih terbuka lalu cari tempat penyimpanan file instalasi aplikasi yang rusak tersebut caranya buka windows explorer (klik kanan pada start-->explorer) masuk ke local disc (c:) pilih program file, jika aplikasi kamu tersimpan C: (disesuaikan yah).
Tiga, cari file Uninstal.exe di file-file aplikasi yang rusak tersebut.
Empat, klo udah ketemu, drop down Unistal.exe ke CMD (taukan caranya).
















Maka di CMD akan tampil "C:\program files\uninstal.exe"


Lima, diujung tulisan "C:\program files\uninstal.exe" tambahkan "/NCRC" (tanpa tanda petik) lalu enter.



maka aplikasi tersebut akan mengunistal sendiri.
Enam, Jika aplikasi sudah berhasil diuninstal, silahkan instal kembali aplikasi tersebut.
Tujuh, Selesai...(hore berhasil)

Tapi, gimana klo difile aplikasinya tidak ada Uninstal.exenya????
Klo gag ada uninstal.exenya berarti aplikasi tersebut bisa langsung diinstal ulang tanpa penggunaan cara-cara diatas.

Ok, mungkin segitu aja sobat, maklum masih baru...silahkan kasi saran, pendapat ato komentar kamu dibawah ini.

Selasa, 28 Juni 2011

Sedikit Tentang QS Ar-Rahman

Sumber : Ika Maya Susanti

Sejak saya mengenal Surat Ar Rahman, saya sering penasaran dengan surat tersebut yang berulang-ulang menyebutkan ayat yang berarti, “Maka nikmat Tuhanmu yang manakah yang kamu dustakan?”

Hingga ketika sekitar bulan Februari 2009 lalu, suatu ketika, saya mencoba mencari tahu tentang ayat tersebut. Catatan ini sendiri baru terkulik semalam dari buku catatan kecil milik saya. Subhanallah, setelah saya coba mengetikkannya semalam, ada hal lain yang saya temukan dan akhirnya saya bagi kepada teman-teman.

Setelah saya hitung-hitung, ayat tersebut ternyata bisa berulang kali terbaca hingga 31 kali banyaknya. Anda bisa mendapatkannya di ayat ke-13, 16, 18, 21, 23, 25, 28, 30, 32, 34, 36, 38, 40, 42, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, dan 77.

Melihat angka dalam ayat tersebut, entah kenapa saya tiba-tiba teringat buku Numerologi Al Quran. Dalam buku tersebut intinya, kita memang diajak untuk menguak kecantikan Al Quran dari sisi numerologinya.

Akhirnya dalam surat Ar Rahman, saya pun mencoba mengulik makna angka yang ada. Angka 31 yang menyatakan jumlah ayat dari surat tersebut pun saya coba telusuri dengan melihat Surat 31 dari Al Quran. Ketemulah Surat Luqman. Saat melirik ke ayat ke 31 dari surat tersebut, subhanallah… inilah yang saya temukan!

“Tidaklah engkau memperhatikan bahwa sesungguhnya kapal itu berlayar di laut dengan nikmat Allah agar diperlihatkan-Nya kepadamu sebagian dari tanda-tanda (kebesaran)-Nya. Sungguh, pada yang demikian itu terdapat tanda-tanda (kebesaran)-Nya bagi setiap orang yang sangat sabar dan banyak bersyukur.”

Bismillah… Ketika saya coba tangkap maksud dari hubungan dua ayat tersebut, sebetulnya ada yang ingin Allah tunjukkan kepada kita. Bahwa bagaimana kapal bisa berlayar di laut sesungguhnya adalah satu dari tanda kebesaran Allah dengan bentuknya yaitu berupa nikmat.

Dari sana, Allah ingin menunjukkan kepada kita, makhluk-Nya, tentang nikmat dari-Nya. Coba saja, kita yang tidak punya perangkat dalam tubuh kita untuk bisa berjalan di atas air, ternyata kemudian mampu melakukannya dengan perantara alat yaitu sebuah kapal yang mengapung di atas air.

Jika dikaitkan ke Surat Ar Rahman, jadi, nikmat Tuhan mana yang akan kita dustakan? Tanda-tanda kebesaran Allah yang ada, hanyalah bisa kita lihat, tidak kita dustai, kita anggap sebagai nikmat, jika kita termasuk dalam golongan yang sabar dan banyak bersyukur.

Yang saya tangkap, jika kita semua bisa mampu bersabar dan mudah bersyukur akan apa yang Allah berikan, insya Allah, akan kita tangkap kebesaran Allah dan menjadi rasa nikmat yang kita rasakan. Terkadang, apa yang Allah berikan saat mungkin berupa kenikmatan, ujian, atau cobaan yang sedang kita terima, bisa menjadi sebentuk kekaguman kita, kenikmatan tiada tara bagi kita, jika kita bisa melihatnya sebagai bentuk kebesaran Allah.

Eit, masih ada lagi nih… Surat Ar Rahman di dalam Al Quran adalah surat ke-55. Jika dijumlahkan, 5 ditambah 5, kita bisa menemukan angka 10. Dan, cobalah buka surat ke-10 dalam Al Quran yaitu Surat Yunus, lalu bukalah ayat ke-10. Subhanallah… ketakjuban lain saya temukan dalam surat tersebut!

“Doa mereka di dalamnya ialah,”Subhanakallahumma” (Maha Suci Engkau, ya Tuhan Kami), dan salam penghormatan mereka ialah, “Salam (salam sejahtera). Dan penutup doa mereka ialah, “Al-hamdu lillahi Rabbil ‘alamin,” (segala puji bagi Allah Tuhan seluruh alam).

Mungkin jika Anda hanya langsung membaca ayat ini saja, Anda bisa jadi bingung dengan kata-kata awal, “Doa mereka.” Siapakah yang dimaksud “mereka” itu? Silakan baca ayat sebelumnya dari ayat tersebut yang berbunyi seperti ini…

“Sesungguhnya orang-orang yang beriman dan mengerjakan kebajikan, niscaya diberi petunjuk oleh Tuhan karena keimanannya. Mereka di dalam surga yang penuh kenikmatan, mengalir di bawahnya sungai-sungai.”

Lagi-lagi, kita menemukan kata “nikmat” di dalamnya. Nikmat ini bisa dirasakan oleh mereka yang berada di dalam surga dengan sungai-sungai yang mengalir di dalamnya. Terlepas keberadaan surga atau neraka di dunia nanti yang akan kita jalani, dunia tempat kita hidup sekarang ini pun bisa berupa surga dan neraka.

Surga bisa kita sebut jika kita dapat hidup dekat dengan sungai. Sejak masa purbakala saja, manusia kerap terbukti membuat sebuah komunitas kehidupan yang berada di sepanjang sungai. In tak lain karena sungai merupakan bagian dari sumber kehidupan. Air yang tawar dan aneka makhluk air yang ada di dalamnya, bisa menjadi sumber kehidupan untuk manusia.

Kata surga pun sering diidentikkan dengan kenikmatan. Analoginya, nikmat bukan jika kita bisa hidup di tepi sungai, hidup di dekat alam yang bisa kita tuai segalanya untuk kelangsungan hidup kita?

Dalam ayat ke-9 Surat Yunus, mereka yang bisa merasakan kenikmatan surga itu adalah orang-orang yang beriman, yang melakukan kebajikan, sehingga diberi petunjuk oleh Tuhan. Tidak ada kenikmatan memang dalam hidup ini, jikalau kita berada dalam sesuatu dan bisa mendapatkan petunjuk dari Allah.

Dan dalam surat tersebut kita bisa memetik janji Allah, jika kita beriman dan melakukan kebajikan, niscaya Allah akan memberikan petunjuk untuk kita. Cobalah saja kita renungkan, apa sih yang kita miliki sekarang ini? Meskipun harta melimpah, memiliki anak yang pintar, cantik, atau bagus rupanya, pekerjaan yang terhormat, telahkah kita merasakan bahagia? Atau justru ada yang terasa kosong pada diri kita?

Sungguh berbeda jika kita mendapatkan petunjuk dari Allah. Apapun kondisi kita yang mungkin terlihat tidak ‘wah’ di mata masyarakat umum, namun kita bahagia, insya Allah, sepertinya kita sudah mendapatkan petunjuk dari Allah. Dan tentu saja, itu nikmat bukan?

Ah, baru sedikit itu saja saya berhasil mengulik Surat Ar Rahman, sebuah surat yang berkali-kali bertanya kepada kita, nikmat Tuhan yang mana sih yang mau kita dustakan? Seperti arti Ar Rahman itu sendiri yang berarti ‘Yang Maha Pemurah’, sungguh, Allah Tuhan kita itu adalah Tuhan yang memang Maha Pemurah, yang gemar memberi nikmat untuk makhluknya. Saking murahnya, sebetulnya begitu banyak nikmat yang bisa kita rasakan.

Tentunya berkali-kali ayat “Maka nikmat Tuhanmu yang manakah yang kamu dustakan?” itu bisa ada dalam Al Quran, dalam Surat Ar Rahman, karena memang demikianlah keadaan kita manusia dari zaman dulu hingga sekarang yang kerap mendustakan kenikmatan dari Tuhan. Surat Ar Rahman ini membuat kita sadar, mengingatkan kita, ayo, kita cari nikmat apa yang sebetulnya sudah kita miliki, yang bisa kita lihat atau rasakan, yang memang sudah diberikan Tuhan untuk kita!

Yah, semoga ini memang petunjuk yang diberikan Allah melalui saya. Jikalau salah, itulah kesalahan yang datang dari saya sendiri. Meski demikian lepas dari itu semua, sebetulnya ada sih beberapa pertanyaan yang ingin saya tanyakan kepada teman-teman sekalian. Telahkah teman-teman pernah mengetahui apa yang telah saya tulis di atas tadi? Jika ya, bisakah kita sama-sama menolong untuk mendapatkan bahasan lebih lengkap tentang Surat Ar Rahman terutama jika mengulik melalui numerologinya?

Harapan saya, semoga teman-teman yang memiliki hal menakjubkan lain tentang Al Quran, bisa saling berbagi kepada saya ataupun yang lain. Kan asyik tuh kalau dibagi sehingga kita bisa sama-sama menikmati indahnya Al Quran.

Ehem, maksud saya, jika selama ini mungkin kita hanya sering berbagi cerita berhikmah dari negeri antah berantah saja, kenapa kita tidak membagi hal-hal seperti ini yang membuat kita jadi makin yakin akan Al Quran yang bukanlah sebuah kitab biasa? Bukankah hal seperti ini bisa bermanfaat juga kan kepada kita dan makin membuat kita yakin bahwa Islam memang pilihan keyakinan kita yang tepat?








Kamis, 23 Juni 2011

Bash

1. Pendahuluan

Apa itu shell ? shell adalah program (penterjemah perintah) yang menjembatani user dengan sistem operasi dalam hal ini kernel (inti sistem operasi), umumnya shell menyediakan prompt sebagai user interface, tempat dimana user mengetikkan perintah-perintah yang diinginkan baik berupa perintah internal shell (internal command), ataupun perintah eksekusi suatu file progam (eksternal command), selain itu shell memungkinkan user menyusun sekumpulan perintah pada sebuah atau beberapa file untuk dieksekusi sebagai program.

Macam - macam shell?

Tidak seperti sistem operasi lain yang hanya menyediakan satu atau 2 shell, sistem operasi dari keluarga unix misalnya linux sampai saat ini dilengkapi oleh banyak shell dengan kumpulan perintah yang sangat banyak, sehingga memungkinkan pemakai memilih shell mana yang paling baik untuk membantu menyelesaikan pekerjaannya, atau dapat pula berpindah-pindah dari shell yang satu ke shell yang lain dengan mudah, beberapa shell yang ada di linux antara lain:

Bourne shell(sh),
C shell(csh),
Korn shell(ksh),
Bourne again shell(bash),
dsb.

Masing - masing shell mempunyai kelebihan dan kekurangan yang mungkin lebih didasarkan pada kebutuhan pemakai yang makin hari makin meningkat, untuk dokumentasi ini shell yang digunakan adalah bash shell dari GNU, yang merupakan pengembangan dari Bourne shell dan mengambil beberapa feature (keistimewaan) dari C shell serta Korn shell, Bash shell merupakan shell yang cukup banyak digunakan pemakai linux karena kemudahan serta banyaknya fasilitas perintah yang disediakan.versi bash shell yang saya gunakan adalah 2.04

[fajar@linux$]echo $BASH_VERSION
bash 2.04.12(1)-release

Mungkin saat anda membaca dokumentasi ini versi terbaru dari bash sudah dirilis dengan penambahan feature yang lain.

2. Pemrograman Shell ?

Yaitu menyusun atau mengelompokkan beberapa perintah shell (internal atupun eksternal command) menjadi kumpulan perintah yang melakukan tugas tertentu sesuai tujuan penyusunnya. Kelebihan shell di linux dibanding sistem operasi lain adalah bahwa shell di linux memungkinkan kita untuk menyusun serangkaian perintah seperti halnya bahasa pemrograman (interpreter language), melakukan proses I/O, menyeleksi kondisi, looping, membuat fungsi, dsb. adalah proses - proses yang umumnya dilakukan oleh suatu bahasa pemrograman, jadi dengan shell di linux kita dapat membuat program seperti halnya bahasa pemrograman, untuk pemrograman shell pemakai unix atau linux menyebutnya sebagai script shell.

3. Kebutuhan Dasar

Sebelum mempelajari pemrograman Bash shell di linux sebaiknya anda telah mengetahui dan menggunakan perintah - perintah dasar shell baik itu internal command yang telah disediakan shell maupun eksternal command atau utility, seperti

cd, pwd, times, alias, umask, exit, logout, fg, bg, ls, mkdir, rmdir, mv, cp, rm, clear, ...
utilitas seperti cat, cut, paste, chmod, lpr,...
redirection (cara mengirim output ke file atau menerima input dari file), menggunakan operator redirect >, >>, <, <<, contohnya: ls > data
hasil ls dikirim ke file data, jika file belum ada akan dibuat tetapi jika sudah ada isinya akan ditimpa.

ls >> data
hampir sama, bedanya jika file sudah ada maka isinya akan ditambah di akhir file.

cat < data file data dijadikan input oleh perintah cat pipa (output suatu perintah menjadi input perintah lain), operatornya : | , contoh: ls -l | sort -s ouput perintah ls -l (long) menjadi input perintah sort -s (urutkan secara descending), mending pake ls -l -r saja :-) ls -l | sort -s | more cat databaru
Wildcard dengan karakter *, ?, [ ], contohnya:

ls i*
tampilkan semua file yang dimulai dengan i

ls i?i
tampilkan file yang dimulai dengan i, kemudian sembarang karakter tunggal, dan diakhiri dengan i

ls [ab]*
tampilkan file yang dimulai dengan salah satu karakter a atau b

4. Simple Bash Script

Langkah awal sebaiknya periksa dulu shell aktif anda, gunakan perintah ps (report process status)

[fajar@linux$]ps
PID TTY TIME CMD
219 tty1 00:00:00 bash
301 tty1 00:00:00 ps

bash adalah shell aktif di system saya, jika disystem anda berbeda misalnya csh atau ksh ubahlah dengan perintah change shell

[fajar@linux$]chsh
Password:
New shell [/bin/csh]:/bin/bash
Shell changed

atau dengan mengetikkan bash

[fajar@linux$]bash

sekarang coba anda ketikkan perintah dibawah ini pada prompt shell

echo "Script shell pertamaku di linux"

[fajar@linux$]echo "Script shell pertamaku di linux"
Script shell pertamaku di linux

string yang diapit tanda kutip ganda (double quoted) akan ditampilkan pada layar anda, echo adalah statement (perintah) built-in bash yang berfungsi menampilkan informasi ke standard output yang defaultnya adalah layar. jika diinginkan mengulangi proses tersebut, anda akan mengetikkan kembali perintah tadi, tapi dengan fasilitas history cukup menggunakan tombol panah kita sudah dapat mengulangi perintah tersebut, bagaimana jika berupa kumpulan perintah yang cukup banyak, tentunya dengan fasilitas hirtory kita akan kerepotan juga mengulangi perintah yang diinginkan apalagi jika selang beberapa waktu mungkin perintah-perintah tadi sudah tertimpa oleh perintah lain karena history mempunyai kapasitas penyimpanan yang ditentukan. untuk itulah sebaiknya perintah-perintah tsb disimpan ke sebuah file yang dapat kita panggil kapanpun diinginkan.

coba ikuti langkah - langkah berikut:

Masuk ke editor anda, apakah memakai vi,pico,emacs,dsb...
ketikkan perintah berikut

#!/bin/bash
echo "Hello, apa khabar"

simpan dengan nama file tes
ubah permission file tes menggunakan chmod

[fajar@linux$]chmod 755 tes

jalankan

[fajar@linux$]./tes

kapan saja anda mau mengeksekusinya tinggal memanggil file tes tersebut, jika diinginkan mengeset direktory kerja anda sehingga terdaftar pada search path ketikkan perintah berikut

PATH=$PATH:.

setelah itu script diatas dapat dijalankan dengan cara

[fajar@linux$]tes
Hello, apa khabar

tanda #! pada /bin/bash dalam script tes adalah perintah yang diterjemahkan ke kernel linux untuk mengeksekusi path yang disertakan dalam hal ini program bash pada direktory /bin, sebenarnya tanpa mengikutkan baris tersebut anda tetap dapat mengeksekusi script bash, dengan catatan bash adalah shell aktif. atau dengan mengetikkan bash pada prompt shell.

[fajar@linux$]bash tes

tentunya cara ini kurang efisien, menyertakan path program bash diawal script kemudian merubah permission file sehingga dapat anda execusi merupakan cara yang paling efisien.

Sekarang coba kita membuat script shell yang menampilkan informasi berikut:

Waktu system
Info tentang anda
jumlah pemakai yang sedang login di system

contoh scriptnya:

#!/bin/bash
#myinfo

#membersihkan tampilan layar
clear

#menampilkan informasi
echo -n "Waktu system :"; date
echo -n "Anda :"; whoami
echo -n "Banyak pemakai :"; who | wc -l

sebelum dijalankan jangan lupa untuk merubah permission file myinfo sehingga dapat dieksekusi oleh anda

[fajar@linux$]chmod 755 myinfo
[fajar@linux$]./myinfo
Waktu system : Sat Nov 25 22:57:15 BORT 2001
Anda : fajar
Banyak pemakai : 2

tentunya layout diatas akan disesuaikan dengan system yang anda gunakan statement echo dengan opsi -n akan membuat posisi kursor untuk tidak berpindah ke baris baru karena secara default statement echo akan mengakhiri proses pencetakan ke standar output dengan karakter baris baru (newline), anda boleh mencoba tanpa menggunakan opsi -n, dan lihat perbedaannya. opsi lain yang dapat digunakan adalah -e (enable), memungkinkan penggunaan backslash karakter atau karakter sekuen seperti pada bahasa C atau perl, misalkan :

echo -e "\abunyikan bell"

jika dijalankan akan mengeluarkan bunyi bell, informasi opsi pada statement echo dan backslash karakter selengkapnya dapat dilihat via man di prompt shell.

[fajar@linux$]man echo

5. Pemakaian Variabel

Secara sederhana variabel adalah pengenal (identifier) berupa satuan dasar penyimpanan yang isi atau nilainya sewaktu-waktu dapat berubah baik oleh eksekusi program (runtime program) ataupun proses lain yang dilakukan sistem operasi. dalam dokumentasi ini saya membagi variabel menjadi 3 kategori:

Environment Variable
Positional Parameter
User Defined Variable

5.1. Environment Variable

atau variabel lingkungan yang digunakan khusus oleh shell atau system linux kita untuk proses kerja system seperti variabel PS1, PS2, HOME, PATH, USER, SHELL,dsb...jika digunakan akan berdampak pada system, misalkan variabel PS1 yang digunakan untuk mengeset prompt shell pertama yaitu prompt tempat anda mengetikkan perintah - perintah shell (defaultnya "\s-\v\$"), PS2 untuk prompt pelengkap perintah, prompt ini akan ditampilkan jika perintah yang dimasukkan dianggap belum lengkap oleh shell (defaultnya ">"). anda dapat mengeset PS1 dan PS2 seperti berikut.

simpan dahulu isi PS1 asli system anda, sehingga nanti dapat dengan mudah dikembalikan

[fajar@linux$]PS1LAMA=$PS1

sekarang masukkan string yang diinginkan pada variabel PS1

[fajar@linux$]PS1="Hi ini Promptku!"
Hi ini Promptku!PS2="Lengkapi dong ? "

maka prompt pertama dan kedua akan berubah, untuk mengembalikan PS1 anda ke prompt semula ketikkan perintah

[fajar@linux$]PS1=$PS1LAMA

Jika anda ingin mengkonfigurasi prompt shell, bash telah menyediakan beberapa backslash karakter diantaranya adalah:
\a ASCII bell character (07)
\d date dengan format "Weekday Month Date" (misalnya "Tue May 26")
\e ASCII escape character (033)
\H hostname (namahost)
\n newline (karakter baru)
\w Direktory aktif
\t time dalam 24 jam dengan format HH:MM:SS
dll man bash:-)

contoh pemakaiannya:

[fajar@linux$]PS1="[\t][\u@\h:\w]\$"

agar prompt shell hasil konfigurasi anda dapat tetap berlaku (permanen) sisipkan pada file .bashrc atau .profile
5.2. Positional Parameter

atau parameter posisi yaitu variabel yang digunakan shell untuk menampung argumen yang diberikan terhadap shell baik berupa argumen waktu sebuah file dijalankan atau argumen yang dikirim ke subrutin. variabel yang dimaksud adalah 1,2,3,dst..lebih jelasnya lihat contoh script berikut :

#!/bin/bash
#argumen1

echo $1 adalah salah satu $2 populer di $3

Hasilnya

[fajar@linux$]./argumen1 bash shell linux
bash adalah salah satu shell populer di linux

ada 3 argumen yang disertakan pada script argumen1 yaitu bash, shell, linux, masing2 argumen akan disimpan pada variabel 1,2,3 sesuai posisinya. variabel spesial lain yang dapat digunakan diperlihatkan pada script berikut:

#!/bin/bash
#argumen2

clear
echo "Nama script anda : $0";
echo "Banyak argumen : $#";
echo "Argumennya adalah: $*";

Hasilnya:

[fajar@linux$]./argumen 1 2 3 empat
Nama script anda : ./argumen
Banyak argumen : 4
Argumennya adalah : 1 2 3 empat

5.3. User Defined Variable

atau variabel yang didefinisikan sendiri oleh pembuat script sesuai dengan kebutuhannya, beberapa hal yang perlu diperhatikan dalam mendefenisikan variabel adalah:

dimulai dengan huruf atau underscore
hindari pemakaian spesial karakter seperti *,$,#,dll...
bash bersifat case sensitive, maksudnya membedakan huruf besar dan kecil, a berbeda dengan A, nama berbeda dengan Nama,NaMa,dsb..

untuk mengeset nilai variabel gunakan operator assignment (pemberi nilai)"=", contohnya :

myos="linux" #double-quoted
nama='pinguin' #single-quoted
hasil=`ls -l`; #back-quoted
angka=12

kalau anda perhatikan ada 3 tanda kutip yang kita gunakan untuk memberikan nilai string ke suatu variabel, adapun perbedaannya adalah:

dengan kutip ganda (double-quoted), bash mengizinkan kita untuk menyisipkan variabel di dalamnya. contohnya:

#!/bin/bash

nama="pinguin"
kata="Hi $nama, apa khabarmu" #menyisipkan variabel nama
echo $kata;

Hasilnya:

Hi pinguin, apa khabarmu

dengan kutip tunggal (single-quoted), akan ditampilkan apa adanya. contohnya:

#!/bin/bash

nama="pinguin"
kata='Hi $nama, apa khabarmu' #menyisipkan variabel nama
echo $kata;

Hasilnya:

Hi $nama, apa khabarmu

dengan kutip terbalik (double-quoted), bash menerjemahkan sebagai perintah yang akan dieksekusi, contohnya:

#!/bin/bash

hapus=`clear`;
isi=`ls -l`; #hasil dari perintah ls -l disimpan di variabel isi

#hapus layar
echo $hapus

#ls -l
echo $isi;

Hasilnya: silahkan dicoba sendiri

Untuk lebih jelasnya lihat contoh berikut:

#!/bin/bash
#varuse

nama="fajar"
OS='linux'
distro="macam-macam, bisa slackware,redhat,mandrake,debian,suse,dll"
pc=1
hasil=`ls -l $0`

clear
echo -e "Hi $nama,\npake $OS\nDistribusi, $distro\nkomputernya, $pc buah"
echo "Hasil ls -l $0 adalah =$hasil"

Hasilnya:

[fajar@linux$]./varuse
Hi fajar,
pake linux Distribusi, macam-macam, bisa slackware,redhat,mandrake,debian,suse,dll
komputernya, 1 buah
Hasil ls -l ./varuse adalah -rwxr-xr-x 1 fajar users 299 Nov 21 06:24 ./varuse

untuk operasi matematika ada 3 cara yang dapat anda gunakan, dengan statement builtin let atau expr atau perintah subtitusi seperti contoh berikut:

#!/bin/bash
#mat1

a=10
b=5
#memakai let
let jumlah=$a+$b
let kurang=$a-$b
let kali=$a*$b

#memakai expr
bagi=`expr $a / $b`

#memakai perintah subtitusi $((ekspresi))
modul =$(($a%$b)) #sisa pembagian

echo "$a+$b=$jumlah"
echo "$a-$b=$kurang"
echo "$a*$b=$kali"
echo "$a/$b=$bagi"
echo "$a%$b=$mod"

Hasilnya:

[fajar@linux$]./mat1
10+5=15
10-5=5
10*5=50
10/5=2
10%5=0

fungsi expr begitu berdaya guna baik untuk operasi matematika ataupun string contohnya:

[fajar@linux$]mystr="linux"
[fajar@linux$]expr length $mystr
5

Mungkin anda bertanya - tanya, apakah bisa variabel yang akan digunakan dideklarasikan secara eksplisit dengan tipe data tertentu?, mungkin seperti C atau pascal, untuk hal ini oleh Bash disediakan statement declare dengan opsi -i hanya untuk data integer (bilangan bulat). Contohnya:

#!/bin/bash

declare -i angka
angka=100;
echo $angka;

apabila variabel yang dideklarasikan menggunakan declare -i ternyata anda beri nilai string (karakter), maka Bash akan mengubahnya ke nilai 0, tetapi jika anda tidak menggunakannya maka dianggap sebagai string.
6. Simple I/O

I/O merupakan hal yang mendasar dari kerja komputer karena kapasitas inilah yang membuat komputer begitu berdayaguna. I/O yang dimaksud adalah device yang menangani masukan dan keluaran, baik itu berupa keyboard, floppy, layar monitor,dsb. sebenarnya kita telah menggunakan proses I/O ini pada contoh -contoh diatas seperti statement echo yang menampilkan teks atau informasi ke layar, atau operasi redirect ke ke file. selain echo, bash menyediakan perintah builtin printf untuk mengalihkan keluaran ke output standard, baik ke layar ataupun ke file dengan format tertentu, mirip statement printf kepunyaan bahasa C atau perl. berikut contohnya:
6.1 Output dengan printf

#!/bin/bash
#pr1

url="pemula.linux.or.id";
angka=32;

printf "Hi, Pake printf ala C\n\t\a di bash\n";
printf "My url %s\n %d decimal = %o octal\n" $url $angka $angka;
printf "%d decimal dalam float = %.2f\n" $angka $angka

Hasilnya:

[fajar@linux$]./pr1
Hi, Pake printf ala C
di bash
My url pemula.linux.or.id
32 decimal = 40 octal
32 decimal dalam float = 32.00

untuk menggunakan format kontrol sertakan simbol %, bash akan mensubtitusikan format tsb dengan isi variabel yang berada di posisi kanan sesuai dengan urutannya jika lebih dari satu variabel, \n \t \a adalah karakter sekuen lepas newline,tab, dan bell,
Format control keterangan
%d untuk format data integer
%o octal
%f float atau decimal
%x Hexadecimal

pada script diatas %.2f akan mencetak 2 angka dibelakang koma, defaultnya 6 angka, informasi lebih lanjut dapat dilihat via man printf
6.2 Input dengan read

Setelah echo dan printf untuk proses output telah anda ketahui, sekarang kita menggunakan statement read yang cukup ampuh untuk membaca atau menerima masukan dari input standar

syntax :

read -opsi [nama_variabel...]

berikut contoh scriptnya:

#!/bin/bash
#rd1

echo -n "Nama anda :"
read nama;

echo "Hi $nama, apa khabarmu";
echo "Pesan dan kesan :";
read
echo "kata $nama, $REPLY";

Hasilnya:

[fajar@linux$]./rd1
Nama anda : pinguin
Hi pinguin, apa khabarmu
Pesan & kesan :
pake linux pasti asyk - asyk aja
kata pinguin, pake linux pasti asyk - asyk aja

jika nama_variabel tidak disertakan, maka data yang diinput akan disimpan di variabel REPLY contoh lain read menggunakan opsi
-t(TIMEOUT), -p (PROMPT), -s(SILENT), -n (NCHAR) dan -d(DELIM)

#!/bin/bash

read -p "User Name : " user
echo -e "Password 10 karakter,\njika dalam 6 second tidak dimasukkan pengisian password diakhiri"
read -s -n 10 -t 6 pass
echo "kesan anda selama pake linux, _underscore=>selesai"
read -d _ kesan

echo "User = $user"
echo "Password = $pass"
echo "Kesan selama pake linux = $kesan"

Hasilnya: silahkan dicoba sendiri :-)
Opsi Keterangan
-p memungkinkan kita membuat prompt sebagai informasi pengisian
-s membuat input yang dimasukkan tidak di echo ke layar (seperti layaknya password di linux)
-n menentukan banyak karakter yang diinput
-d menentukan karakter pembatas masukan

informasi secara lengkap lihat man bash
6.3. Output dengan konstanta ANSI
6.3.1. Pengaturan Warna

Untuk pewarnaan tampilan dilayar anda dapat menggunakan konstanta ANSI (salah satu badan nasional amerika yang mengurus standarisasi).

syntaxnya:

\033[warnam

Dimana:
m menandakan setting color

contohnya:

[fajar@linux$]echo -e "\033[31m HELLO\033[0m"
HELLO

konstanta 31m adalah warna merah dan 0m untuk mengembalikan ke warna normal (none), tentunya konstanta warna ansi ini dapat dimasukkan ke variabel PS1 untuk mengatur tampilan prompt shell anda, contohnya:

[fajar@linux$]PS1="\033[34m"
[fajar@linux$]

berikut daftar warna yang dapat anda gunakan:

foreground
None 0m
Black 0;30 Dark Gray 1;30
Red 0;31 Light Red 1;31
Green 0;32 Light Green 1;32
Brown 0;33 Yellow 1;33
Blue 0;34 Light Blue 1;34
Purple 0;35 Light Purple 1;35
Cyan 0;36 Light Cyan 1;36
Light Gray 0;37 White 1;37
background
dimulai dengan 40 untuk BLACK,41 RED,dst
lain-lain
4 underscore,5 blink, 7 inverse

tentunya untuk mendapatkan tampilan yang menarik anda dapat menggabungkannya antara foreground dan background

[fajar@linux$]echo -e "\033[31;1;33m Bash and ansi color\033[0m"

Bash and ansi color
6.3.2 Pengaturan posisi kursor

sedangkan untuk penempatan posisi kursor, dapat digunakan salah satu cara dibawah.

Menentukan posisi baris dan kolom kursor:

\033[baris;kolomH

Pindahkan kursor keatas N baris:

\033[NA

Pindahkan kursor kebawah N baris:

\033[NB

Pindahkan kursor kedepan N kolom:

\033[NC

Pindahkan kursor kebelakang N kolom:

\033[ND

Contohnya:

#!/bin/bash

SETMYCOLOR="\033[42;1;37m"
GOTOYX="\033[6;35H"
clear
echo -e "\033[3;20H INI DIBARIS 3, KOLOM 20"
echo -e "\033[44;1;33;5m\033[5;35H HELLO\033[0m";
echo -e "$SETMYCOLOR$GOTOYX ANDA LIHAT INI\033[0m"

Hasilnya: Silahkan dicoba sendiri
Menggunakan utulity tput untuk penempatan posisi kursor

kita dapat pula mengatur penempatan posisi kursor di layar dengan memanfaatkan utility tput,

syntaxnya:

tput cup baris kolom

contohnya:

#!/bin/bash

clear
tput cup 5 10
echo "HELLO"
tput cup 6 10
echo "PAKE TPUT"

jika dijalankan anda akan mendapatkan string HELLO di koordinat baris 5 kolom 10, dan string PAKE TPUT dibaris 6 kolom 10. informasi selengkapnya tentang tput gunakan man tput, atau info tput
7. Seleksi dan Perulangan

Bagian ini merupakan ciri yang paling khas dari suatu bahasa pemrograman dimana kita dapat mengeksekusi suatu pernyataan dengan kondisi terntentu dan mengulang beberapa pernyataan dengan kode script yang cukup singkat.
7.1 test dan operator

test adalah utility sh shell yang berguna untuk memeriksa informasi tentang suatu file dan berguna untuk melakukan perbandingan suatu nilai baik string ataupun numerik

syntaxnya: test ekspresi

proses kerja test yaitu dengan mengembalikan sebuah informasi status yang dapat bernilai 0 (benar) atau 1 (salah) dimana nilai status ini dapat dibaca pada variabel spesial $?.

[fajar@linux$]test 5 -gt 3
[fajar@linux$]echo $?
0

pernyataan 5 -gt (lebih besar dari) 3 yang dievaluasi test menghasilkan 0 pada variabel status $? itu artinya pernyataan tersebut benar tetapi coba anda evaluasi dengan expresi berikut

[fajar@linux$]test 3 -lt 1
[fajar@linux$]echo $?
1

status bernilai 1, berarti pernyataan salah.

anda lihat simbol -gt dan -lt, itulah yang disebut sebagai operator, secara sederhana operator adalah karakter khusus (spesial) yang melakukan operasi terhadap sejumlah operand, misalkan 2+3, "+" adalah operator sedangkan 2 dan 3 adalah operandnya, pada contoh test tadi yang bertindak sebagai oparatornya adalah -lt dan -gt, sedangkan bilangan disebelah kiri dan kanannya adalah operand. cukup banyak operator yang disediakan bash antara lain:
7.1.1. Operator untuk integer
Operator Keterangan
bil1 -eq bil2 Mengembalikan Benar jika bil1 sama dengan bil2
bil1 -ne bil2 -||- Benar jika bil1 tidak sama dengan bil2
bil1 -lt bil2 -||- Benar jika bil1 lebih kecil dari bil2
bil1 -le bil2 -||- Benar jika bil1 lebih kecil atau sama dengan bil2
bil1 -gt bil2 -||- Benar jika bil1 lebih besar dari bil2
bil1 -ge bil2 -||- Benar jika bil1 lebih besar atau sama dengan bil2
7.1.2. Operasi string
Operator Keterangan
-z STRING Mengembalikan Benar jika panjang STRING adalah zero
STRING1 == STRING2 -||- Benar jika STRING1 sama dengan STRING2
7.1.3 Operator file
Operator Keterangan
-f FILE Mengembalikan Benar jika FILE ada dan merupakan file biasa
-d FILE -||- Benar jika FILE ada dan meruapakan direktory
7.1.3 Operator logika
ekspr1 -o ekspr2 Benar jika jika salah satu ekspresi benar (or,||)
ekspr1 -a ekspr2 Benar jika ekspresi1 dan ekspresi2 benar (and,&&)
! ekspresi Mengembalikan Benar jika ekspresi tidak benar (not!)

untuk informasi lebih lengkap man bash atau info bash di prompt shell anda.
7.2. Seleksi
7.2.1 if

Statement builtin if berfungsi untuk melakukan seleksi berdasarkan suatu kondisi tertentu

syntax:

if test-command1;
then
perintah1;
elif test-command2;
then
perintah2;
else
alternatif_perintah;
fi

contoh script if1:

#!/bin/bash
#if1

clear;
if [ $# -lt 1 ];
then
echo "Usage : $0 [arg1 arg2 ...]"
exit 1;
fi

echo "Nama script anda : $0";
echo "Banyak argumen : $#";
echo "Argumennya adalah: $*";

Hasilnya:

[fajar@linux$]./if1

Usage : ./if1 [arg1 arg2 ...]

statement dalam blok if...fi akan dieksekusi apabila kondisi if terpenuhi, dalam hal ini jika script if1 dijalankan tanpa argumen. kita tinggal membaca apakah variabel $# lebih kecil (less than) dari 1, jika ya maka eksekusi perintah di dalam blok if ..fi tsb. perintah exit 1 akan mengakhiri jalannya script, angka 1 pada exit adalah status yang menandakan terdapat kesalahan, status 0 berarti sukses, anda dapat melihat isi variabel $? yang menyimpan nilai status exit, tetapi jika anda memasukkan satu atau lebih argumen maka blok if...fi tidak akan dieksekusi, statement diluar blok if..filah yang akan dieksekusi.

contoh script if2:

#!/bin/bash

kunci="bash";
read -s -p "Password anda : " pass
if [ $pass==$kunci ]; then
echo "Sukses, anda layak dapat linux"
else
echo "Wah sorry, gagal nih";
fi

Hasilnya

[fajar@linux$]./if2
Password anda : bash
Sukses, anda layak dapat linux
[fajar@linux$]./if2
Password anda : Bash
Wah sorry, gagal nih

klausa else akan dieksekusi jika if tidak terpenuhi, sebaliknya jika if terpenuhi maka else tidak akan dieksekusi

contoh script if3: penyeleksian dengan kondisi majemuk

#!/bin/bash

clear
echo "MENU HARI INI";
echo "-------------";
echo "1. Bakso ";
echo "2. Gado-Gado ";
echo "3. Exit ";
read -p "Pilihan anda [1-3] :" pil;

if [ $pil -eq 1 ];
then
echo "Banyak mangkuk =";
read jum
let bayar=jum*1500;
elif [ $angka -eq 2 ];
then
echo "Banyak porsi =";
read jum
let bayar=jum*2000;
elif [ $angka -eq 3 ];
then
exit 0
else
echo "Sorry, tidak tersedia"
exit 1
fi

echo "Harga bayar = Rp. $bayar"
echo "THX"

Hasilnya:

[fajar@linux$]./if3
MENU HARI INI
-------------
1. Bakso
2. Gado-Gado
3. Exit
Pilihan anda :2

Banyak porsi = 2

Harga bayar = Rp. 4000
THX

7.2.2. statement builtin case

seperti halnya if statement case digunakan untuk menyeleksi kondisi majemuk, dibanding if, pemakaian case terasa lebih efisien

syntax:

case WORD in [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]...
esac

contoh script cs1

#!/bin/bash

clear
echo -n "Masukkan nama binatang :";
read binatang;

case $binatang in
pinguin | ayam | burung ) echo "$binatang berkaki 2"
break
;;
onta | kuda | anjing ) echo "$binatang berkaki 4"
break
;;
*) echo "$binatang blom didaftarkan"
break
;;
esac

Hasilnya:

[fajar@linux$]./cs1
Masukkan nama binatang : pinguin
pinguin berkaki 2

7.3. Perulangan
7.3.1. statement for

syntax:
for NAME [in WORDS ...]; do perintah; done
contoh script for1

#!/bin/bash

for angka in 1 2 3 4 5;
do
echo "angka=$angka";
done

Hasilnya:

[fajar@linux$]./for1
angka=1
angka=2
angka=3
angka=4
angka=5

contoh script for2 berikut akan membaca argumen yang disertakan waktu script dijalankan

#!/bin/bash

for var
do
echo $var
done

Hasilnya:

[fajar@linux$]./for2 satu 2 tiga
satu
2
tiga

atau variasi seperti berikut

#!/bin/bash

for var in `cat /etc/passwd`
do
echo $var
done

Hasilnya: hasil dari perintah cat terhadap file /etc/passwd disimpan ke var dan ditampilkan menggunakan echo $var ke layar, mendingan gunakan cat /etc/passwd saja biar efisien. :-)
7.3.2. statement while

selama kondisi bernilai benar atau zero perintah dalam blok while akan diulang terus

syntax:

while KONDISI; do perintah; done;

contoh script wh1 mencetak bilangan ganjil antara 1-10

#!/bin/bash

i=1;
while [ $i -le 10 ];
do
echo "$i,";
let i=$i+2;
done

Hasilnya:

[fajar@linux$]./wh1
1,3,5,7,9,

kondisi tidak terpenuhi pada saat nilai i=11 (9+2), sehingga perintah dalam blokwhile tidak dieksekusi lagi
contoh script wh2 akan menghitung banyak bilangan genap dan ganjil yang ada.

#!/bin/bash

i=0;
bil_genap=0;
bil_ganjil=0;

echo -n "Batas loop :";
read batas

if [ -z $batas ] || [ $batas -lt 0 ]; then
echo "Ops, tidak boleh kosong atau Batas loop harus >= 0";
exit 0;
fi

while [ $i -le $batas ];
do
echo -n "$i,";
if [ `expr $i % 2` -eq 0 ]; then
let bil_genap=$bil_genap+1;
else
let bil_ganjil=$bil_ganjil+1;
fi
let i=$i+1; #counter untuk mencapai batas
done

echo
echo "banyak bilangan genap = $bil_genap";
echo "banyak bilangan ganjil = $bil_ganjil";

Hasilnya:

[fajar@linux$]./wh2
Batas loop : 10
0,1,2,3,4,5,6,7,8,9,10,
banyak bilangan genap = 6
banyak bilangan ganjil = 5

untuk mengetahui apakah nilai i berupa bilangan genap kita cukup menggunakan operasi matematika % (mod), jika nilai i dibagi 2 menghasilkan sisa 0 berarti i adalah bilangan genap (semua bilangan genap yang dibagi dengan 2 mempunyai sisa 0) maka pencacah (bil_genap) dinaikkan 1, selain itu i bilangan ganjil yang dicatat oleh pencacah bil_ganjilproses ini dilakukan terus selama nilai i lebih kecil atau samadengan nilai batas yang dimasukkan. script juga akan memeriksa dahulu nilai batas yang dimasukkan apabila kosong atau lebih kecil dari 0 maka proses segera berakhir.tentunya dengan statement while kita sudah dapat membuat perulangan pada script kedai diatas agar dapat digunakan terus-menerus selama operator masih ingin melakukan proses perhitungan. lihat contoh berikut:

#!/bin/bash
#kedai

lagi='y'
while [ $lagi == 'y' ] || [ $lagi == 'Y' ];
do
clear
echo "MENU HARI INI";
echo "-------------";
echo "1. Bakso ";
echo "2. Gado-Gado ";
echo "3. Exit ";
read -p "Pilihan anda [1-3] :" pil;

if [ $pil -eq 1 ];
then
echo -n "Banyak mangkuk =";
read jum
let bayar=jum*1500;
elif [ $pil -eq 2 ];
then
echo -n "Banyak porsi =";
read jum
let bayar=jum*2000;
elif [ $pil -eq 3 ];
then
exit 0
else
echo "Sorry, tidak tersedia"
exit 1
fi

echo "Harga bayar = Rp. $bayar"
echo "THX"
echo
echo -n "Hitung lagi (y/t) :";
read lagi;

#untuk validasi input
while [ $lagi != 'y' ] && [ $lagi != 'Y' ] && [ $lagi != 't' ] && [ $lagi != 'T' ];
do
echo "Ops, isi lagi dengan (y/Y/t/Y)";
echo -n "Hitung lagi (y/t) :";
read lagi;
done

done

proses pemilihan menu dan perhitungan biaya akan diulang terus selama anda memasukkan y/Y dan t/T untuk berhenti. dalam script terdapat validasi input menggunakan while, sehingga hanya y/Y/t/T saja yang dapat diterima soalnya saya belum mendapatkan fungsi yang lebih efisien :-)
7.3.3. statement until

jika while akan mengulang selama kondisi benar, lain halnya dengan statement until yang akan mengulang selama kondisi salah.
berikut contoh script ut menggunakan until

#!/bin/bash

i=1;
until [ $i -gt 10 ];
do
echo $i;
let i=$i+1
done

Hasilnya:

[fajar@linux$]./ut
1,2,3,4,5,6,7,8,9,10,

perhatikan kodisi until yang salah [ $i -gt 10], dimana nilai awal i=1 dan akan berhenti apabila nilai i = 11 (bernilai benar) 11 -gt 10.
7.3.4. statement select

select berguna untuk pembuatan layout berbentuk menu pilihan, anda lihat contoh script pembuatan menu diatas kita hanya melakukannya dengan echo secara satu persatu, dengan select akan terlihat lebih efisien.

syntax:

select varname in (); do perintah; done

sewaktu dijalankan bash akan menampilkan daftar menu yang diambil dari item list, serta akan menampilkan prompt yang menunggu masukan dari keyboard, masukan tersebut oleh bash disimpan di variabel builtin REPLY, apabila daftar item list tidak dituliskan maka bash akan mengambil item list dari parameter posisi sewaktu script dijalankan. lebih jelasnya lihat contoh berikut:

#!/bin/bash
#menu1

clear
select menu
do
echo "Anda memilih $REPLY yaitu $menu"
done

Hasilnya:

layout:
[fajar@linux$]./menu1 Slackware Redhat Mandrake
1) Slackware
2) Redhat
3) Mandrake
#? 1
Anda memilih 1 yaitu Slackware

karena item list tidak disertakan dalam script, maka sewaktu script dijalankan kita menyertakan item list sebagai parameter posisi, coba gunakan statement select pada program kedai diatas.

#!/bin/bash
#kedai

lagi='y'
while [ $lagi == 'y' ] || [ $lagi == 'Y' ];
do
clear
select menu in "Bakso" "Gado-Gado" "Exit";
case $REPLY in
1) echo -n "Banyak mangkuk =";
read jum
let bayar=jum*1500;
;;
2) echo -n "Banyak porsi =";
read jum
let bayar=jum*2000;
;;
3) exit 0
;;
*) echo "Sorry, tidak tersedia"
;;
esac
do

echo "Harga bayar = Rp. $bayar"
echo "THX"
echo
echo -n "Hitung lagi (y/t) :";
read lagi;

#untuk validasi input
while [ $lagi != 'y' ] && [ $lagi != 'Y' ] && [ $lagi != 't' ] && [ $lagi != 'T' ];
do
echo "Ops, isi lagi dengan (y/Y/t/Y)";
echo -n "Hitung lagi (y/t) :";
read lagi;
done
done

8. Array

adalah kumpulan variabel dengan tipe sejenis, dimana array ini merupakan feature Bash yang cukup indah :-) dan salah satu hal yang cukup penting dalam bahasa pemrograman, anda bisa membayangkan array ini sebagai tumpukan buku - buku dimeja belajar. lebih jelasnya sebaiknya lihat dulu contoh script berikut:

#!/bin/bash
#array1

buah=(Melon,Apel,Durian);
echo ${buah[*]};

Hasilnya:

[fajar@linux$]./array1.
Melon,Apel,Durian

anda lihat bahwa membuat tipe array di Bash begitu mudah, secara otomatis array buah diciptakan dan string Melon menempati index pertama dari array buah, perlu diketahui bahwa array di Bash dimulai dari index 0, jadi array buah mempunyai struktur seperti berikut:

buah[0] berisi Melon
buah[1] berisi Apel
buah[2] berisi Durian

0,1,2 adalah index array, berarti ada 3 elemen pada array buah, untuk menampilkan isi semua elemen array gunakan perintah subtitusi seperti pada contoh diatas, dengan index berisi "*" atau "@". dengan adanya index array tentunya kita dapat mengisi array perindexnya dan menampilkan isi array sesuai dengan index yang diinginkan. anda lihat contoh berikut:

#!/bin/bash
#array2

bulan[0]=31
bulan[1]=28
bulan[2]=31
bulan[3]=30
bulan[4]=31
bulan[5]=30
bulan[6]=31
bulan[7]=31
bulan[8]=30
bulan[9]=31
bulan[10]=30
bulan[11]=31
echo "Banyak hari dalam bulan November adalah ${bulan[10]} hari"

Hasilnya:

[fajar@linux$]./array2
Banyak hari dalam bulan November adalah 30 hari

sebenarnya kita dapat mendeklarasikan array secara eksplisit menggunakan statement declare

contohnya:

declare -a myarray

mendeklarasikan variabel myarray sebagai array dengan opsi -a, kemudian anda sudah dapat memberinya nilai baik untuk semua elemen atau hanya elemen tertentu saja dengan perulangan yang telah kita pelajari pengisian elemen array dapat lebih dipermudah, lihat contoh :

#!/bin/bash
#array3

#deklarasikan variabel array
declare -a angka

#clear
i=0;
while [ $i -le 4 ];
do
let isi=$i*2;
angka[$i]=$isi;
let i=$i+1;
done

#tampilkan semua elemen array
#dengan indexnya berisi "*" atau "@"
echo ${angka[*]};

#destroy array angka (memory yang dipakai dibebaskan kembali)
unset angka


Hasilnya:

[fajar@linux$]./array3
0 2 4 6 8

9. Subrutin atau Fungsi

merupakan bagian script atau program yang berisi kumpulan beberapa statement yang melaksanakan tugas tertentu. dengan subrutin kode script kita tentunya lebih sederhana dan terstruktur, karena sekali fungsi telah dibuat dan berhasil maka akan dapat digunakan kapan saja kita inginkan. beberapa hal mengenai fungsi ini adalah:

Memungkinkan kita menyusun kode script ke dalam bentuk modul-modul kecil yang lebih efisien dengan tugasnya masing-masing.
Mencegah penulisan kode yang berulang - ulang.

untuk membuat subrutin shell telah menyediakan keyword function seperti pada bahasa C, akan tetapi ini bersifat optional (artinya boleh digunakan boleh tidak).

syntax:

function nama_fungsi() { perintah; }

nama_fungsi adalah pengenal (identifier) yang aturan penamaannya sama seperti pemberian nama variabel, setelah fungsi dideklarasikan atau dibuat anda dapat memaggilnya dengan menyebutkan nama fungsinya. lebih jelasnya lihat contoh script fungsi1 berikut:

#!/bin/bash

function say_hello() {
echo "Hello, apa kbabar"
}


#panggil fungsi
say_hello;

#panggil sekali lagi
say_hello;


Hasilnya:

[fajar@linux$]./fungsi1
Hello, apa khabar

Hello, apa khabar

jika keyword function disertakan maka kita boleh tidak menggunakan tanda kurung (), tetapi jika keyword function tidak disertakan maka tanda kurung harus digunakan, lihat contoh berikut:

#!/bin/bash

function say_hello{
echo "Hello,apa khabar"
}

balas(){
echo "Baik-baik saja";
echo "Bagaimana dengan anda ?";
}


#panggil fungsi say_hello
say_hello;

#panggil fungsi balas
balas;

Hasilnya:

[fajar@linux$]./fungsi2
Hello, apa khabar
Baik-baik saja
Bagaimana dengan anda ?

9.1. Mengirim argumen sebagai parameter ke fungsi

tentunya suatu fungsi lebih berdaya guna apabila dapat menerima argumen yang dikirim oleh pemanggilnya dan memproses argumen tsb didalam fungsinya, fungsi yang kita buat pada bash shell tentunya dapat melakukan hal tsb, apabila pada pemanggilan fungsi kita menyertakan argumen untuk diproses fungsi tsb, maka bash akan menyimpan argumen - argumen tsb pada parameter posisi 1,2,3,dst..., nah dengan memanfaatkan parameter posisi tsb tentunya kita dapat mengambil nilai yang dikirim. lebih jelasnya anda lihat contoh berikut:

#!/bin/bash

function hello{
if [ -z $1 ]; then
echo "Hello, apa khabar anda"
else
echo "Hello $1, apa khabar";
fi
}

#masukkan nama anda disini
echo -n "Nama anda :";
read nama

#panggil fungsi dan kirim isi variabel nama ke fungsi untuk dicetak
hello $nama;

Hasilnya:

[fajar@linux$]./fungsi3
Nama anda : pinguin
Hello pinguin, apa khabar

lihat fungsi hello, sebelum mencetak pesan kita melakukan pemeriksaan dengan if terhadap parameter posisi $1 apabila kosong maka pesan "Hello, apa khabar anda" yang akan ditampilkan, tetapi jika ada string yang kita input maka string tersebut akan dicetak di dalam blok else pada fungsi. argumen pertama diteruskan ke variabel 1, argumen kedua pada variabel 2, dst.. jika argumen yang dikirim lebih dari satu.
9.2. Cakupan Variabel

secara default variabel - variabel yang digunakan dalam script adalah variabel bersifat global, maksud global adalah bahwa variabel tsb dikenal dan dapat diakses oleh semua fungsi dalam script, tetapi bash menyediakan keyword local yang berfungsi membatasi cakupan (scope) suatu variabel agar dikenal hanya oleh fungsi yang mendeklarasikannya.coba lihat contoh berikut:

#!/bin/bash

proses(){
echo "Isi variabel a=$a";
}

a=2;
proses();
proses $a


Hasilnya:

Isi variabel a=2
Isi variabel a=2

coba anda tambahkan local a pada fungsi proses menjadi

proses(){
local a;
echo -e "a didalam fungsi, a=$a";
}


a=10;
proses()

echo "a diluar fungsi, a=$a"
proses $a

Hasilnya:

a didalam fungsi, a=
a diluar fungsi, a=10
a didalam fungsi a=

nah jelas perbedaannya jika mendeklarasikan variabel memakai keyword local menyebabkan variabel tersebut hanya berlaku pada fungsi yang mendekalarasikannya. pada contoh dalam fungsi proses variabel a dideklarasikan sebagai variabel local dan tidak diberi nilai.

Diakhir dokumentasi ini saya menyertakan contoh script sederhana untuk melakukan entry data-data KPLI (Kelompok Pencinta Linux Indonesia) dan menyimpannya ke sebuah file. perintah-perintah shell dan beberapa utility yang digunakan adalah:

apa yang telah anda pelajari diatas
utility test, touch
operator redirection ">>" untuk menambah data
sleep, grep (global regular expression parser), cut, cat, | (pipa), sort dan more
tput untuk menempatkan cursor pada koordinat tertentu (baris kolom)

sebagai latihan silahkan mengembangkan sendiri script dibawah ini:

#!/bin/bash
#------------------------------------------------------------------
#(C) Moh.fajar Makassar 2001, contoh script buat para linuxer
#file ini adalah public domain, silahkan mendistribusikan kembali
#atau mengubahnya asalkan anda mengikuti aturan - aturan dari GPL
#

menu(){
clear
tput cup 2 8;
echo "SIMPLE DATABASE KPLI"
tput cup 3 11;
echo "1. Entry Data"
tput cup 4 11;
echo "2. Cari Data"
tput cup 5 11;
echo "3. Cetak Data"
tput cup 6 11;
echo "4. Exit"
tput cup 7 9;
read -p "Pilihan anda [1-4] :" pil;
while [ -z $pil ] || [ $pil -lt 1 ] || [ $pil -gt 4 ];
do
tput cup 7 9
read -p "Pilihan anda [1-4] :" pil;
done

}

entry()
{

tput cup 9 27
echo "Enrty data"
tput cup 11 27
echo -n "Nama KPLI :";
read nama;

while [ -z $nama ] || grep $nama $data -q -i;
do
tput cup 13 27
echo "Ops Tidak boleh kosong atau $nama sudah ada";
sleep 3
clear
tput cup 11 27
echo -n "Nama KPLI :";
read nama;
done


tput cup 12 27
echo -n "Kota :";
read kota;
tput cup 13 27
echo -n "Alamat :";
read alamat;
tput cup 14 27
echo -n "Email :";
read email;
tput cup 16 27
echo "Rekam data ke file"
if !(echo $nama:$kota:$alamat:$email>>$data); then
echo "Ops, gagal merekam ke file"
exit 1;
fi
sleep 3;
}


cari(){
tput cup 9 27
echo "Cari data per record"
tput cup 11 27
echo -n "Nama KPLI :";
read nama;
while [ -z $nama ];
do
tput cup 13 27
echo "Ops, nama tidak boleh kosong"
sleep 3;
tput cup 11 27
echo -n "Nama KPLI :";
read nama;
done

if found=`grep $nama $data -n -i`; then
tput cup 12 27
echo -n "Kota :";
echo "$found" | cut -d: -f3
tput cup 13 27
echo -n "Alamat :";
echo "$found" | cut -d: -f4
tput cup 14 27
echo -n "Mail :";
echo "$found" | cut -d: -f5
tput cup 16 27
echo -n "Record ke- $found" | cut -d: -f1
else
tput cup 13 27
echo "Ops, data tidak ditemukan";
fi

}

cetak()
{
tput cup 12 27
echo "Tampilkan Data"
tput cup 13 27
echo -n "1->Ascendig, 2->Descending :"
read mode
clear;
if [ -z $mode ] || [ $mode -eq 1 ]; then
cat $data | sort | more -d
elif [ $mode -eq 2 ]; then
cat $data | sort -r | more -d
else
cat $data | sort | more -d
fi
}


#block utama

data="mydata"

if !(test -e $data); then
if !(touch $data); then
echo "gagal buat file database"
exit 1
fi
fi

lagi='y'
while [ $lagi == 'y' ] || [ $lagi == 'Y' ]
do
menu;
case $pil in
1) entry
;;
2) cari;
;;
3) cetak
;;
4) clear;
exit 0;
;;
*)
echo "$pil, tidak ada dalam pilihan"
;;
esac

tput cup 18 27
echo -n "Ke Menu (y/t): ";
read lagi;
done

clear

tentunya kemampuan script ini dapat kita tambahkan dengan mudah sehingga mendekati program database sesungguhnya, utility seperti tr, paste, egrep, lpr, dll.. cukup baik dan membantu untuk digunakan.