Pages

Subscribe:

Thursday, September 25, 2008

Cinta

Sayang.....
Saat pertama kali kumengenalmu
Saat pertama kali kujabat tangan mungilmu
Saat pertama kali kugenggam jari lentikmu
Kurasakan sesuatu dalam diri ini
Yang begitu dalam menelusup dalam hati
Hingga tak dapat terbendung lagi

Rasa rindu

Tiap detik kuteringat namamu
Tiap langkah kuterbayang wajah cantikmu
Tiap hembusan nafas kurindu senyum manismu
Hanya engkaulah pujaan dalam hatiku
Sungguh.....
Di tiap malam-malamku
Kurasakan rasa rindu yang menggebu
Kupandang slalu lukisan wajahmu
Dan kupanjatkan doa supaya slalu bersamamu
Berdua dan bersama hingga tak berujung waktu

Terima kasih sayang..

Dari dasar hati kecil ini
Dari mulut yang penuh janji
Atas nama cinta yang suci
Dan rasa sayang setulus hati
Kuucapkan beribu terima kasih
Terima kasih kau tambatkan perahu cintamu
Di pelabuhan hati kecilku
Terima kasih kau tapakkan rasa sayangmu
Di pulau kecil dalam diriku
Terima kasih kau tanam benih rindumu
Di gersangnya kalbuku
Kini....
Benih cinta yang kau tanam
Tumbuh subur dan menghujam kedalam
Takkan goyah oleh badai yang menghantam
Takkan sunyi oleh heningnya malam
Kuberdoa
Smoga kasih sayang kita
Takkan hilang spanjang masa
Takkan tercampur oleh semua dusta
Takkan luntur karna usia
Hingga kita selalu bersama
Merajut benang cinta
Menyulam kain sayang kita berdua
Abadi tuk selamanya....

Together & forever in love

BATAS PENGERTIAN

~ Pernahkah kau coba membaca,sorot mata dalam menyimpan rindu ?

~ Pernahkah kau menerka,apa yg tersembunyi disudut kalbu ?

Gejolak cinta...mengalir dalam jiwa,tapi kau tlah membuatnya kecewa !

Sejuta impian...berjuta harapan, mengapa tak pernah engkau hiraukan...

~ Gelisah...terus membayangi aku,tak bisa menghapuskan rasa rindu

Sepasang merpati terbang di sekitarku,seolah mengerti,iapun menghampiriku..

Mengajarkan ku tentang kesetiaan...

Menunjukan padaku tentang kasih sayang...

~ Aku iri dengan semua itu !!

Kasih...
Selama hari terus berganti,masih ada waktu untuk saling membuka diri

Sayang...
Sejauh batas pengertian,bukalah pintu hatimu,agar cinta mengalir sebening embun

ketika harapan jadi derita

ketika cahaya mu memancarkan pesona mu
ketika cinta mu bersemi di hati ku
berjuta-juta benih cinta tertanam di hati ku
beribu-ribu harapan mengelilingi jambangan di setia sudut hati ku
saat ku melihat mu sukar ku tuk melupakan mu
saat ku memandang mu bersemi bunga cinta di hati ku
namun bunga cinta di hati mu bukan lah untuk ku
kecantikan mu bukan lah yang membuat ku tak dapat melupakan mu
tak dapat ku miliki
ketika harapan jadi derita di hati
hingga bunga di hati ku layu dan berduri di hati
harapan dan cinta untuk ku tak ada lagi
hilang terbawa cinta yang terlindungi oleh duri
membuat ku tak berarti
memnyisahkan luka yang dalam tak terobati
hayut dalam lamunan mimpi terbuang dalam cambagan hati
yang di penuhi oleh rasa benci bercampur keletihan hati yang mengharapkan cinta sejati
cinta yang dimiliki seorang putri



ku torehkan sebait puisi ni untuk seseorang yang tak pernah bertemu dengan mimpi
yang tak bisa menimbang cinta ku yang suci puisi ni untuk mu agar kau mengerti arti cinta sejati

kau adalah suara hati ku

wahai kekasih......
kau bagaikan sebuah rahasia yangtak bisa lagi ku sembunyikan
kau bagaikan gaya-gaya indah yang tak bisa lagi ku lupakan
bila kau menggema di hati ku mengapa ku yang slalu heran
kau adalah suara hati ku
bila kau bisa mendengar maka dengarkanlah bahasa debaran hati ku
kini hanya kau yang ada dalam khayalan ku
kini kau yang ada dalam setiap impian ku kau ada dalam cahaya mata ku
dimana pun mata ku memandang hanya kau yang slalu ku lihat
hanya kau yang slalu trlihat dalam setiap pandangan ku
wahai kekasih ku.....
ku tambatkan cinta ku pada mu
ku berikan sluruh jiwa dan raga ku untuk mu
hanya satu pinta ku tetap kan lah cinta ku di dalam hati mu kekasih ku.

kan ku petik bulan dan bintang untuk mu kekasih ku

daku berbicara dengan mata dan hati ku
tiada yang tau bahasa cinta dalam hati ku
karena dengan perlahan-lahn kau singgah di hati kecil ku
meminta seorang kekasih seperti mu dengan kecantikan mu
kau meminjam nyawa ku
dengan kata-kata mu kau luluhkan hati ku yang tlah beku
dengan cinta mu yang membuat ku tak dapat hidup tanpa mu
jika kau meminta ku kan ku petik bulan dan bintang untuk mu kekasih ku
dan kan ku letak kan surga cinta di dalam hati mu
agar kau mencintai ku seperti ku yang begitu mencintai mu
setiap hari kau datang dalam setiap kenangan melalui mimpi-mimpi ku
dan setiap malam kau ganggu aku dengan kecantikan paras mu
hingga membuat mata ku tak bisa terpejam kala malam menjemput ku
dan menghatar kan ku dalam mimpi maniz ku

Ada apa dengan hati

Mungkin aku terinspirasi olehnya...

Seperti yg kita ketahui,dalam setiap asmara selalu ada kata "hati" karena kita memang sedang bermain hati...?!

~ Apakah engkau dapat menerka isi hati kekasihmu yg sesungguhnya ?

~ Apakah engkau dapat menebak isi hatimu terhadap kekasihmu ?

Betapapun intimnya seseorang terhadap pasangannya,ia tak akan mampu membaca isi hati yg sesungguhnya.

~ Darah kita sama merah,tapi hati seseorang siapa yg tahu.

Sungguh...aku telah memperhatikan isi hatinya melalui bahasa tubuhnya...

Sungguh aku telah membaca pikirannya melalui tatapan matanya yg menggoda,melalui tutur katanya yg memikat

Tetapi apa yg kudapat ? Semua jauh dari perkiraanku...?!!

Ucapanya...
Tatapannya...
Pikirannya...
Dan
Isi hatinya...tak selaras dengan jiwanya

Itulah sebabnya,mengapa aku tak dapat membaca hatinya

Itulah sebabnya,ku pertanyakan hatinya

Dan,
Karena itulah aku terinspirasi olehnya,karena akupun mengaguminya

Kembali Berpuisi ( Keacuhanmu )

Hari ini ku kembali berpuisi
Diamana hari yang telah lama ku tunggu
Dan kutunggu pula kabar indah dari merpati
Yang senantiasa selalu kirim kabar untukku
Tak kusangka hari yang ku kira indah
Berubah bagai letusan berapi
Entah apa dulu yang pernah ku perbuat
Hingga kau menganggap itu adalah kesalahan
Dan hari pertama ketemu dari sekian waktu yang terpisah
Kau mengacuhkan begitu saja
Dan merpatiku pulang saat ku tlah di rumah
Untuk menyampaikan kabar
Yang ternyata berisi surat darinya
merpatipun tak sempat untuk bercerita
Karena tahu bila ku mendengar ini
Aku akan sakit dan lemas tak berdaya
Kau tulis dalam goresan pena di atas kertas putih
Sebuah kata tak menggembirakan
Kau salahkanku dan kau curahkan semua kekesalanmu
dalam bait yang masih terhubung dengan api kesalahan
Kau mengacuhkanku karena itu
Dan ku mengerti
Aku bukanlah terbaik untukmu
Kusadari diriku adalah yang biasa di antara biasa
Kau katakan juga dalam surat
Ku tak pantas mencintaimu
Sungguh sakit hati ini
Dan lebih sakit dari tusukan tombak berapi
Ternyata cinta tak memandang hati
Tapi kau nilai hartalah yang memandang cinta

Cinta Terbalaskan Murka

Tak kusangka hariku penuh kesedihan
Tak lepas dari cinta yang kutangisi
Karena tak pernah terbalas dengan indah
Kau tolak cinta dengan tetesan madu pahit
Kau maki diriku dengan kata kasarmu
Tak pantas untukmu wahai insan yang cantik
Pernahkah kau berfikir tentangmu sendiri?
Kau cantik tapi tak secantik parasmu
Apakah kau jual kecantikanmu dengan segenggam harta???
Kau terbungkam dalam pertanyaanku
Apa sebenarnya yang kau banggakan wahai insan sesama???
Kita memang berbeda kecuali dalam cinta
Takan bermakna ucapanmu itu di depanku
Diriku sekarang tahu tentang asli jiwamu
Kau yang cantik dan selalu membahana di mata semua orang
Tapi kau buruk di setiap sendi kelakuanmu dan parasmu
Aku hanya ingin menyampaikan sesuatu
Dan cintalah yang kusamapaikan padamu
Tapi kau tak mengindahkan bahkan murka di hadapanku
Kuterima semua katamu
Dan kusimpan selalu kata itu
Sebagai kenangan bahwa ku salah mencintai terkasihku
Terimakasih wahai insan yang ku kagumi

hancur...

aku kehilanganmu
separuh jiwaku
sebagian semangatku

semenjak itu
duniaku tak lagi berputar
hari2ku gelap dan sepi

aku hancur!

tak sanggup berdiri
tersesat dalam hampa
menangis dan terus menangis

aku hancur!
saat kau beranjak pergi...

Janji cintaku

Janji cinta yang dulu pernah kita ucapkan sekarang tak ada artinya.
Janji cinta yang dulu pernah kita jaga sekarang hancur.
Hanya karena satu alasan yang aku pun tak pernah paham.
Kau pergi karena janjimu pada negara.
Kau pergi karena tugas mulia pada negara.
Sekarang,kau kembali dengan harapan baru cinta kita...
Kau pahlawan negara..
Kau cintaku..
Terima kasih,karena kau telah kembali kepadaku lagi..

“AKU TAK INGIN JADI PENCANDUMU”

Aku menyatakan kau hilang
Lebur bertebangan bersama khayal
Ku senda ia tahluk meringis
Mengusapi hati beku terkungkung kaku…

Sesungguhnya aku tak ingin mencarimu
Di pembuangan hatiku…
Milik yang pernah kau punya tlah mati
Dan aku tlah menghambur bunga di pusaranya…

Aku tak ingin jadi pencandumu
Biarkan aku menari bersama raga pembalik hati
Kau pergi…
Dan kini akan ku biarkan…

Sabda-sabdamu tak ingin ku dengar lagi
Bahkan rintihanmu
Aku pulang…Aku tak ingin lagi hiraukanmu
Dan ku akui kekalahanku…

Dengarkan ini…
Sakit ini tak terobati
Dan biarkan aku hidup
Tanpa kata maafmu…

Ada yg diputs'N, Ada yg mo dijdi'N


Kemarin malam,minggu malam
Menjadi malam yg kelam
Hanya karena masa silam
Semua harapan jadi tenggelam

Masa lalu yg suram..
Jangan kau ungkap luar dalam !
Hanya bikin runyam,
Akhirnya kita jadi berantem..!

Karena mulutku tak ingin bungkam,
Emosi pun tak dapat kuredam !

Maka ku katakan padanya: "malam ini kita putus saja..."
Iapun spontan menjawab: "oke kita putus...!!"
Dan langsung ia matikan telponnya.

"Aku putuskan hubungan ini dengannya,Tetapi...ku merasa,akulah yg diputusin olehnya."

Malam inilah aku mulai merenungkan,
Sambil kutulis dan kugoreskan,
Apa yg telah kulakukan.

Betapapun tegar raga ini,
Goncangannya tetap terasa dijiwa ini.

Tetapi...
Aku tak ingin putus asa,
Hanya karena putus bercinta.
Ini hanya sebuah asmara...
Dan ku tak ingin berduka !

"Tiba-tiba..."
Terlintas dipelupuk mata,
Nama dan wajah seorang wanita.
Walau kenalnya belum lama,
Aku yakin bisa mendekatinya..
Maka kususunlah rencana,
Untuk menebar pesona...

"Ternyata..."
Gugur satu tumbuh seribu
Ku punya gebetan baru...
Kan kucoba tuk berburu
Mencari pacar baru.
Adakah berkenan yg dituju..?
Itu aku tak tahu !!
Ini memang harus dicoba dulu !
Tapi jangan buru buru
Harus pake rayu rayu
Bukan pake nafsu !!

Jangan pernah ada air mata u/ mengakhirinya

Saat ini tidak lagi seperti kemarin
Saat aku kembali gagal meraihnya
Tak ada air mata saat ku putuskan u/ mengakhirinya
Kau tinggalkan ku dengan senyum kemenanganmu
Tapi aku berikan senyum ikhlas ku u/ mengiringi kepergianmu

Cinta datang dan pergi pada waktunya
Seiring berubahnya perasaan
Untuk apa mempertahankannya jika rasa itu sudah tak ada

Saat ini sudah tak ada lagi cinta untukmu
Kuikhlaskan kepergianmu untuk mencari penggantiku
Selamat tinggal cinta.................

impian indah yang tertunda

begitu banyak bintang
yang ingin kuraih bersamamu....
membawa panah cinta
menggapai sang surya...
bintang yang terindah
saat memancarkan cahaya
suci dari sang cinta.....
seperti saat ku melihat
kerlip bintang bersamamu....
tetapi semua tlah sirna
saat kau pergi....
bintang takkan pernah
kugapai bersamamu....
tak ada lagi bintang yang
ingin ku gapai.....
hAnya sebuah keinginan
terindah saat bersamamu....
yang takkan bisa ku raih...
kau yang terindah dihatiku...
kau cahaya terang yang
menghiasi seluruh jiwaku....
dan kau sebuah impian
yang tertunda atau
yang tak pernah ku raih...

SuaRa cINta

saat cinta berkumandang
mendamaikan hati ini....

saat cinta hanya diam
terasa sepi dihati,,,

dikala cinta bersuara
terdengar alunannya dihatiku....

saat cinta berkata
hanya kamu dihatiku...

cinta....
tak perlu diuji....
tak perlu diragukan...

cinta...
hanya harus di perjuangkan
hanya butuh keyakinan...

dengan cinta....
hidupku seperti alunan
lagu yang kan membuat
ku menari dalam bahagia....

tanpa cinta,,,,
hidupku bagai di hutan
yang dingin,sepi,tak berarti....

cinta......
jangan kau pergi
meninggalkan hidupku
yang sepi...........

Menduakan Hati

Bahagiaku bersamanya sampai detik ini
Masih memikirkanya
Tapi entah mengapa
Ada hawa indah
Yang mulai merasuk dalam pikiranku
Sesungguhnya tidak ingin terus memikirkanya
Ingin ku anggap angin lalu
Tapi entah mengapa
Di saat ia hilang
Dan di saat itulah dia hadir di hadapanku
Walau ku sadari sudah ada hawa
yang telah lama singgah di lubuk hatiku
Di satu sisi hatiku
Tapi satu hal
Aku tidak akan pernah tahu apa yang akan terjadi

Kisah Cintaku

Dalam kesunyian malam
Dalam kesendirian jiwa
Betapa butuhnya hidup ini akan dirimu kasih
Untuk menyongsong diriku di terangnya siang
Yang menyilaukan
Masa silam yang berjuta makna indah...
Buatku mengerti akan cinta
Yang selalu ada sudut indahnya
Ada pula sudut yang susah dimengerti akan
Kasih dan sayang...
Rasa dan kehilangan...
Semuanya membaur seiring waktu aku kehilanganmu
Kini hanyalah kenangan bersamamu
Mungkinkah waktu kan terulang
Tantang cinta kita berdua yang indah kita jalani dulu
Sungguh ku hanya menyayangimu dan mencintaimu
kau akan selalu terkenang dalam sedalamnya samudra
Di hati ini hingga akhir masa
Ku sadar kau telah pergi bersamanya
Masa-masa silam yang penuh dengan keindahan cinta
Keindahan dalam kenangan bersama
Tapi hanya satu yang tetap sama..
Tercipta dari masa dulu hingga sekarang...
Terkasihkulah, Cinta yang selama ini kurasakan
Terjalin indah, berakhir dengan kenangan indah
Dan kisah itulah yang paling bermakna
Dalam kisah cinta suciku dan kasih sayang tulusku

Air Mata Cinta

Sejak aku rasakan ku kehilangan cintamu
Kosong hati ini tanpa ada yang mengisinya
Kutahu aku tidak hanya sendirian
Dan kusadar semuanya mengalir apa adanya
tapi ku selalu lemah berjalan tanpa cintamu
Hingga kutakbisa berkata, ada cinta lagi
Membuatku buta akan segala rasa
Diriku kesepian akan kehangatan sang hawa
Tak kuasa kutahan jerit tangis air mata
Yang kurasa selalu ada dalam pikiran dan kenangan
Yang terkadang kumerasakan cinta penuh air mata
Ku telah mengatasnamakan cinta
Dan yang kukira tetes air mata adalah cinta
Diapun sangat menyayangiku di waktu dulu
Dan menyiramku dengan kesejukan air saat hatiku kering
Sayang kau pergi dariku karena demi kebaikan kita
Akupun mengerti kehilanganmu adalah ujian buatku
Dan cinta seperti inilah yang kucari
Sejati dan murni dari hati
Walau saat ini ku harus kehilangan dirinya
Ku akan berusaha mencari dari kekosongan hati ini
Untuk menggantikanmu di hati ini
Dengan berharap bisa mendapat seperti cintamu padaku
Dan cintaku padamu
Sedari hati...kuungkapkan semua..
Lewat untaian kata..
Walau kau pergi dari hati ini kuingin
Kelak yang kunanti, hati lain bisa hidupkan kembali
Dan meramaikan kembali kekosongan hati ini

Ketulusan Hati Yang Kosong

Agungnya hatimu wahai kau sobatku
Di antara seribu hati
Ialah anugrah yang tercipta di dunia

Wahai kau pemilik hati yang mulia
Indah hatimu menjadi sebuah pelagiat dalam hidup
Rangkaian kata yang terucap selalu beri sejuta kebaikan
Apa adanya itulah dirimu
Setiap kau pertahankan rasa ketulusanmu untuk memberi
Telah kau korbankan hingga kau rela jatuhkan dirimu demi
Orang yang kau banggakan hingga kau bangun dan terjatuh lagi
Naungan hatimu kau beriakan dengan tulus untuk dirinya
Objek sang pencipta yang ku bangga.....sahabat

Perpisahan....

Sekian lama kita bersama
Ternyata kau juga sama
Kau mengira ku percaya
Sgala bicaramu dan tipuanmu

Percuma....
Kau membuat
Tapi akhirnya
Datang juga Bencana

Selamat jalan
Aku ucapkan Semoga perpisahan ini
Membuatmu senang....!!

Kasih Tak Sampai

Senang dan bahagia
Saat ku melihat senyummu
Hatiku berdebar kencang
Saat aku menatap matamu
Binar matamu....
Mampu menakhlukkan hatiku
Manisnya senyummu
Mampu membuatku rindu
Tapi saat aku mulai jatuh cinta padamu
Kau pun mulai menyukai
Sahabat karipku
Sedih, sedih sekali
Tatapan matamu
Yang dulu membuatku rindu
Dan menakhlukkan hatiku
Dan senyummu....
Yang membuatku rindu
Kini tinggal kenangan
Kenangan yang tak mudah terlupakan
Dan kini aku yakin
Kasih Tak Sampai

Cinta Yang Hilang

Aku jatuh cinta padamu
Sejak pertama kali bertemu
Aku yang merindukan hatimu
Kau takkan pernah pedulikan aku
Tuhan kenapa engkau tak anugrahi cinta kita
Cinta yang tak mungkin bersama
Dia telah dicintai
Dia sudah dimiliki orang lain
Kenapa tidak aku yang memiliki
Kenapa harus orang lain
Memang cinta butuh pengorbanan
Dan apalagi cobaan untukku
Oh...Tuhan berilah aku kesempatan
Biar aku bisa bersama dengan dia
Mengapa engkau pisahkan aku dengan dia
Yang aku tunggu-tunggu dan kurindu
Kini dia hilang didalam hatiku
Kini dia hilang didalam mataku
Dan dia hilang slama-lamanya
Untuk ku......

Rasa Cinta

Cinta timbul dari hati
Rasa cinta timbul dari pandangan pertama
Rasa timbul dari jiwa
Yang tak terbohong
Cinta itu indah
Seindah bunga kejora yang mekar
Rasa cinta membius kita
Dari sgala hal atau kegiatan
Cinta hanya dimiliki
Oleh orang yang saling mencintai
Hati tidak parnah berbohong
Cinta tak pernah dimainkan
Sgala sesuatu bisa dipertimbangkan
Tapi cinta tak bisa dipaksakan

KESUCIAN CINTA

hujan turun disiang hari ketika panas masih menyinari bumi
awan pun enggan pergi dari surya yang melindungi hati
burung bernyanyi dan menari menghiasi rona pelangi
daun jatuh dari tangkai memberi salam untuk cinta yang abadi

kulihat ombak berkejaran sambil tersenyum simpu
batu batu karang mulai luluh terkikis cinta sucimu
biarkan hati ini menari dalam arung cinta sucimu
jangan kau biarkan jari jari ku lepas dari genggaman

kau buyarkan mimpi disaat ku masih tertidur dalam kedukaan
kau coba hiasi diri walau hati terasa sunyi
engkau lah cinta suciku yang mekar di saat musim mulai gugur
engkau lah penghibur hati di saat aku terpatri masa silamku

cinta dan kelembutanmu membuat hatiku tertanam dalam pelukanmu
jangan kau biarkan diri ini terbangun dalam duka
rangkul dan tidurkanlah aku dalam cinta sucimu
agar aku mampu menyibak raut wajahmu yang ayu
biarkan kubaca 1000 puisi cinta untukmu
inginku dendangkan lagu cinta agar kau tidur dalam suka
inginku sekat hatimu agar tak ada lagi duka

kesucian cintamu mempu mengobati hati yang layu
bantet karna kau adalah seorang putri yang mampu menghiburku
inginkujadikan hiasan dalam hidup yang penuh kepalsuan
kuraih cintamu dalam genggaman meskipun kau jauh.
kau adalah napasku yang selalu ku hirup dalam raga

SeBuaH raSa

Cinta memang tak bisa di paksa
Karna cinta datang dari sebuah rasa
Mengagumi adalah awal dari sebuah rasa
Selanjutnya terserah anda.............

Tapi jika sudah tak ada rasa
Lebih baik putuskan saja,,
Kan masih banyak cinta lain disana

Cinta sejati datang dari ketulusan hati
Terbentuk dari pertautan hati,,
Cinta sejati datang suatu hari nanti
Setelah kita lelah mencari

Sebuah kenangan hanya menyisakan kesedihan
Lalu untuk apa di kenang,,,,?
Lupakanlah jika ia menyakitimu!
Sejenak atau untuk selamanya

CARI LAGI

~ Ku taruh hati ditengah gurun pasir
* Yang tak terkendali mengikuti emosi..
~ Seperti air sungai yg mengalir
* Ku ucap semua tanpa sangsi..

Deburan ombak datang menabrak karang...
Bintang dilangit pun nampak cemerlang.
Kunikmati semua yg kupandang,Membuat hati sedikit tenang.

Kejadiaan semalam masih menjadi bayang bayang,
Tapi segera kutepis dan kubuang...
Lalu aku berjalan,tapi...seakan terbang
Demi menyabut hari yg gemilang...!!

Yang berlalu,biarlah berlalu...yg sekarang adalah masa depan !
Kalau dapat cinta yg baru..tak akan kusia-siakan !

ak kangen km.....

taw gag km Mang,,,ak mzi syang km...
taw gag km,,klw ak tersiksa kya gni...

taw gag km,,ak kecewa km menilai sbuah perasaan sedangkal itu...
taw gag km,,ak mzi mnunggu takdir itu...

gag pnah ak sangka ortumu setega itu...
gag pnah ak duga,,takdir mempertemukan n memisahkan kt...

sedalam apapun luka yang kau toreh dihatiku,,AK MZI SAYANG KM...


setahun dah berlalu,,perasaan ku k km gag pnah brubah...
seandeny km nemuin penggantiku,,apa ak rela???

kyakny gag dey Mang...
ak kngen km...

yang paling aku mau...

bukan karna tampangmu
aku mau....
bukan juga karna gayamu
atau hartamu
bukan karna senyummu
ataupun baikmu
bukan karna tulisanmu
ataupun suaramu
bukan pula karna tawamu
ataupun sedihmu
tapi karna mu
itu yang paling aku mau.....

Ingin Bersamamu Lagi

Dalam malam sepi ku seru namamu
Kau yang telah pergi dariku
Kini ku bernaung atas sedihku
Berbagi dengan rindu akan kehilanganmu
Dalam diam, ku bayangi wajahmu
Merangkai senyuman dan tatapmu yang lalu
Tuk coba getarkan jiwaku lagi
Untuk kembali ke semangatku
Dalam dinginku..
Ku coba dekap hangat bayang cintamu
Ku coba menyentuhmu dari anganku
Ku coba memelukmu dari anganku
Aku ingin memilikimu kembali
Aku ingin hidup bersamamu kasihku
Kau yang telah pergi akankah berpikir sama denganku
Yang sekian lama di dalam hati ini
Sempat menyatu yg namanya cinta

Satu Arti

Di gemuruh air yang turun dari langit
Aku terjebak diantaranya...

Duduk dengan tatapan hampa
Entah kemana otak kiriku
Yang ku ingat adalah masa lalu
Dan lihat masa depan yang tak ku tahu

Angin bangunkan aku...
Dan guyuran air itu belum reda
Aku berdiri, melangkah, dan ku sentuh
Air itu terasa hangat di ujung jari-jariku
Ku tengadah, berharap melihat akar air itu
Percuma... mataku dihujam miliaran liter air

BERHENTI... HENING... SUNYI...
Hanya kilatan cahaya tanpa suara
Dan irama gemericik air
Seperti tabuhan orkestra alam
Aku masih terdiam,
Memikirkan sesuatu
Dengan ribuan nama satu arti

CINTAKU DIUJUNG SEBERANG

angin berhembus semilir meniup gendang telingaku
suara merdu mendera dibalik kabut yang sunyi
dialah tambatan hati yang selalu kunanti
talita hati yang mengisi relung jiwa yang sunyi

kemericik air hujan menambah suara kehangatan di telinga
seiring kata kata yang penuh makna cinta
jemariku tergenggam dalam pelukan asmara
mulutku terbuka seakan tak ada lagi yang mendera

jam dinding berdetak kencang mengikuti irama asmara
sikuning roda duaku seakan bicara inilah cinta
suci,indah,tak ada dusta hanya hasrat jiwa yang tertata
kau adalah maha dewi yang mampu membuka hati

tak kan ku mengadu pada diri yang sunyi
kan ku raih cintamu yang sejati
ku kurung hati untukmu wanita suci
agar aku mampu membuka diri untuk cinta suci

deru ombak seakan tak lagi mencaci diri
burungpun ikut menari menyambut sang mentari
daun melambai dan bersorak menyambut tulusnya hati
hanya cinta sucimu yang mampu terpatri

wahai kau wanita diujung sebrang
jangan kau khianti diri untuk cintaku yang suci
agar kau lebih mengerti aku masih tetap sendiri
menunggumu hingga jiwa ini terpatri

khiasi cinta dengan kata
lindungi cinta dengan perasaan diri
agar kita dapat mengerti akan arti cinta yang suci
tanpa harus saling menodai dan caci maki
karna kau adalah tambatan hati
hingga jiwa ini takkan lagi menari
untuk cinta yang tak berarti.


puisi ini aku buat untuk seorang gadis yang mampu mengambil hatiku yang telah lama sunyi untuk cinta
hingga aku mampu meyakini diri untuk memiliki

LELAH HATI BERUJUNG NISTA

lelah hati ini mengembara diantara lumpur nista
dia datang dan pergi tanpa kata yang menyapa
kau hadir dalam kesunyian dikala hati sedang duka
kau pergi disaat jiwa sedang terpanah asmara

tak ada lagi kata kata yang tersisa
tinggal jiwa yang layu terus merana
rona pelangi bersinar redup di tepian telaga
seakan tak ada lagi yang mampu bersuara

suara adzan mulai bergema
menandakan hilangnya sinar surya
begitupun hatiku yang hilang tak ada yang menyapa
karna cinta nista aku terperosok diujung nista

langkah kakiku terhenti mengembara
mataku tertutup tak lagi menatap rona
jiwaku hancur karna khianatan cinta
jemariku terkepal takkan lagi terbuka

hanya sehelai rambutku yang jatuh di pinggir telaga
terkulai diri ini diantara rongga rongga dusta
biarkan jiwaku hancur dalam kedukaan
agar mampu menyibak alam kenistaan

istirahat lah dalam kerinduan
karna pengembaraan hanya sebuah perjalanan
untukku gapai rona kehidupan.

PUTUS berCINTA

Putus bercinta bukan berarti putus cerita,karena masih ada luka,didalam dada ! bagai kayu yg tlah membara oleh panasnya cinta asmara.

Putus bercinta bukan berarti putus harapan dalam menggapai impian,karena impian tak akan datang hari ini,melainkan kemudiaan !

Putus bercinta jangan dijadikan beban dalam kehidupan. Larut dalam duka yg berkepanjangan hanya akan merusak pikiran. Jadikan ini sebuah pelajaran bukan hukuman. Karena ini akan menambah pengalaman dalam kamus percintaan.

Jadi apa yg harus aku lakukan ?

Berdayung sampan ketepian,
Menggunakan rakit ke pelabuhan..
Putus cinta memang menyakitkan,dan yg sakit harus di sembuhkan.

" Sekarang aku punya jurus jitu,untuk menghapus rasa pilu.. Putus cinta akan segera berlalu,jika ku dapat kekasih yg baru !! "

Ku simpan hati di tengah lautan,
yang kembali sepi dalam kerinduan.
Ku lihat bintang yg bertebaran,
mungkin disitu kekasih pujaan..?!

meskipun jauhnya sampai kebulan,
akan ku raih walau kaki harus berjalan.
Karena aku punya tujuan,
Bukan hayalan !!

Didalam gelap aku renungkan.
apa yg sudah ku rencanakan.
Semoga ini jadi kenyataan.
Dan berakhir pada kebahagiaan !!

keraguan

sejujurnya aku benci dengan apa yang aku rasa...
aku bosan dengan semua yang terjadi...
aku tak ingin cinta ini ada untukmu...
tapi munafik jika tak ku akui rasa cinta ini ada karenamu...
jujur aku lelah...

andai pengorbanan adalah harga sebuah cinta

andaikan pengorbanan itu harga sebuah cinta
mengapa semakin sulit cinta itu aku miliki?
jika luka di hati ini pembalasan untuk semua kesalahanku
tidak cukupkah airmata ini membuatmu menjadi milikku?
aku memang bukan wanita sempurna
aku mungkin bukan wanita yang kamu inginkan
tapi ketulusan kasih sayangku untukmu
ku rasa cukup untuk meluluhkan hatimu yang masih membatu...
tapi mengapa tak jua ku dapati cintamu itu?
cinta yang dulu pernah kau minta dariku...

DENGAN RASA CEMBURUKU AKU MENCINTAIMU

mengingkarinya aku tak mampu
semakin kurasakan , semakin hatiku hancur
meninggalkanmu aku tak mau
tapi di sampingmu aku tak sanggup menerima kenyataan
dengan hati yang berkeping aku masih mengharapmu
dengan sakit hatiku tetap kucurahkan kasih sayangku
dengan rasa cemburuku aku tak mampu berbohong
bahwa saat ini aku mulai jatuh cinta padamu

SAKIT YANG PASTI

satu hal yang sma terulang lagi
ketika akal mencoba menyangkal
namun hati terus berlari
mengejar yang tak pasti

hanya ada satu hal yang pasti
luka yang kian menyakiti

dengan mata mencoba mengungkap tabir cinta
tapi ternyata semua tangan hampa
dengan kaki berlari mencari
kian menanti...
kian sepi...
kian sendiri...
sakit yang terulng lagi...

RASA DI ANTARA RASA

JIKA ITU SEJENAK
MOHON DILURUHKAN
JIKA ITU FATAMORGANA
MOHON DIHILANGKAN DARI PANDANGAN MATA

TAPI JIKA ITU NYATA
HARUS BERKATA APA?
HARUS BERBUAT APA?
AKU TAKUT MERASAKAN SAKIT ITU LAGI...

Someone

Terlalu manis pesonamu mencuri
Keheningan tempat cinta
Membara....
Semestinya jangan ada perkenalan
Diantara kita....
Oh,cinta....
Nikmatmu semakin semu
Aku ingin katakan kalau kau idamanku
Meskipun aku sadar dimana gemerlapmu
Berlabuh....
Kau tau tirai asmara
Dipalung naluriku,andaikan kau tau
Walaupun sakit bagiku
Untuk melawan gejolak asmara
Yang menggebu-gebu
Membuatku tak berdaya

JAUH

Aku sendiri disini
Merasakan betapa jauh darimu
Begitu jauh hingga merpati tak mampu
Membawa rindu yang kurasakan untukmu
Aku sendiri disini
Menatap malam hening
Masih setia menantimu
Tuk hadir dalam lamunanku
Menanti itu lama ternyata....
Begitu lama hingga
Ilalang dipekarangan kian mengering
Namun senyum yang gersang
Manis,manismu...
Senyum,senyummu...
Indah,indahmu...
Suburkan cinta indah nan suci
Tertanam dipekarangan 1 tahun yang lalu

Menanti Fajar

Menanti fajar
Dibawah singgahsana paduka malam
Aku berteriak...
Sepi...
Saat ini aku sendiri
Esok menanti kembali membakar kisahku
Rembulan kan jadi penyempurna akhir penyesalanku

Menanti fajar
Aku berteriak...
Sepi...
Aku,sang pemilik rindu
Menanti fajar yang pertama
Satu pertanyaan saja
Apakah esok aku akan tetap sendiri??

Doaku untuk "kita"

Kau yang selalu dihati
Menelusup kedalam ruang rindu
Menyentuh kalbu
Untuk tiap detik yang berlalu

Sayangku..........
Wahai pujaan hati
Penghibur hati yang sepi
Pelipur duka dalam diri
Hanya namamu yang slalu terukir
Hanya senyummu dalam benakku
Wajah cantikmu yang kurindu

Tiap malam kuhaturkan sujudku padamu Tuhan
Untuk sebuah permintaan
Yang terucap tulus dari dalam sanubari
Untuk sang pujaan hati
"Persatukanlah cinta&sayang kami
Dalam sebuah ikatan suci
Dalam lingkaran kebahagiaan dalam hati
Yang kan slalu abadi
Hingga ujung dunia dan akhirat nanti"
Kabulkanlah doa hambamu yang hina ini
Hambamu yang penuh lumpur dosa
Dari bibirku yang penuh dusta
Hanya padaMu kupasrahkan cinta dan sayangku
Hanya untuk mendapat ridho dan rahmatMu
Untuk kehidupan kami nanti
Hingga ajal menjemput kami
Dan akhirat nanti.Amin.....

Rindu

Saat mentari tenggelam
Malam yang kelam kan menjelang
Trasa dalam hati ini
Sbuah rasa yang ingin slalu terobati
Sbuah hasrat untuk slalu ditemani

Bidadariku sayang....
Malam ini kuterkenang dirimu
Aku rindu senyum manismu
Aku teringat canda tawamu
Aku terngiang belaian lembut tanganmu
Aku terbayang saat aku mencumbumu
Sungguh...
Kaulah pujaan hati
Pengisi rindu dalam sanubari
Penerang hati yang sunyi
Peneduh hati dalam terik mentari

Aku akan slalu mencintai & menyayangimu
Tulus dari dalam hatiku
Selamanya............

Cinta & Sayang

Cinta.....
Sayang.....
Milik smua insan
Terpendam dalam hati
Terngiang dalam angan
Terucap dalam doa
Terbawa dalam mimpi

Namun........
Apakah cinta dan sayang
Akan menjadi kenyataan
Bukan sekedar khayalan
Ataupun angan-angan ?

Berbahagialah orang yang mendapat cinta
Mendapat sayang yg tulus dari hati
Dalam sebuah ikatan suci
Yang kan slalu abadi

Tetap Kaulah Yang Ku Cintai

Kau.. bukanlah manusia terbaik di dunia
Tapi kau menjadi yang terindah dalam hidupku
Kau bukanlah pria idaman semua wanita
Tapi kau selalu ku rindukan
Setiap malam dalam mimpiku
Setiap hari di sisiku

Meski Tuhan menawarkan yang lebih baik darimu
Mungkin ku tak dapat menolaknya
Tapi hatiku tetap untukmu
Tetap kaulah yang ku cintai

Setiap kali kau melukaiku
Setiap kali kau membuatku menangis
Aku sama sekali tak berpaling darimu
Setiap kali kau menduakanku
Setiap kali kau mencampakkanku
Aku tetap cinta kamu..

Selalu Ada Untukku

Kau.. yang pernah ku maki
Kini ada di sisiku
Kau.. yang dulu ku jauhi
Kini ku dekati lagi
Maafkan sikapku dulu
Bukan maksudku untuk memusuhimu
Hanya saja diri ini
Tak sama dengan wanita yang lain
Banyak tragedi dalam hidupku
Membuatku jadi seperti ini

Ketika air mataku jatuh berlinang
Kau datang membasuh luka hatiku
Dengan kasih sayangmu
Kau kembalikan senyumku
Ketika ku jatuh dan tak berdaya
Kau hadir membantuku berdiri
Dengan semangat yang kau berikan
Kau kembalikan mimpiku
Terimakasih, Hey.. Kawanku..!
Kau selalu ada untukku

Tak Berani Berharap

Terkejut juga mendengar kabar itu
Kau mulai ada yang punya
Karena kau tak pernah cerita
Bahwa kau sudah jadi miliknya

Terkejut..
Begitu terkejutnya diriku
Padahal aku ingin lepas dirinya
Dan memulai lembaran baru denganmu

Ku urungkan keinginan itu
Dan tak berani berharap terlalu tinggi
Aku takut kecewa
Teruntukmu, Kasih..
Yang terbaik ku doakan saja
Semoga kau bahagia

Egoisme Cinta

Ku telah berpikir
Dan ku menemukan jawabannya
Ku harus meyakinkan hatiku lagi
Aku kini mencintaimu
Di saat ku sudah hidup dengannya
Ku menyadari ini salah
Tapi ku tak peduli

Padanya ku tak lagi menaruh hati
Entah apa sebabnya
Kini ku mencintaimu
Tak mau peduli pada perasaannya
Yang ku inginkan menjadi milikmu
Biarlah waktu yang menghukumku
Asal menjadi milikmu
Ku tak takut apapun

Ingin Segera Bertemu

Aku sungguh rindu kepadamu
Dalam hati terucap doa
Ingin segera bertemu
Begitu ada kesempatan
Tak ku lewatkan begitu saja

Langkahku semakin cepat
Sungguh ku ingin segera bertemu
Dengan kekasihku yang adalah kamu
Tak ku hiraukan meski malam begitu pekat

Sekian lama berpisah
Membuatku begitu rindu padamu
Setiap malam berharap sendiri
Ingin segera bertemu
Kalau saja waktu itu sayapku tak patah
Pasti ku kan terbang menuju kehangatan pelukanmu

Sejak Berpisah

Begitu banyak cerita
Penuh tawa dan air mata
Penuh suka dan duka
Selalu terekam dalam ingatanku
Begitu banyak yang terkisah
Di dalam catatan harianku
Ingin ku tunjukkan padamu
Bila bertemu suatu saat nanti

Sejak berpisah denganmu
Air mataku tak berhenti berlinang
Merindukanmu yang entah ada di mana
Ku berdoa pada Tuhan
Semoga kau kembali
Bila kembali jangan pergi lagi
Aku merindukanmu
Ingin sekali bertemu kembali

Sejak berpisah
Begitu banyak pertanyaan muncul di hatiku
Bila bertemu lagi suatu saat nanti
Ingin ku tanyakan semua
Apakah kau masih cinta aku..?

Sebenarnya Apa Yang Terjadi?

Kau telah berubah
Tak lagi seperti dulu
Sebenarnya apa yang terjadi?
Aku pun tak mengerti
Mungkin perpisahan waktu itu membuatmu sedih kehilanganku

Dulu kau begitu ceria
Kini wajahmu begitu suram
Ingin ku cium dirimu
Membuat nyaman perasaanmu
Aku telah kembali
Tersenyumlah untukku

Beritau Dia, Aku Mencintai Dia

Kadang, semakin kita mencintai seseorang
Kita akan mabuk
Dan, semakin membenci seseorang
Hati kita akan hancur
Hal yang paling menyiksa di dunia ini adalah penantian
Aku tak tau sudah berapa lama dia menungguku
Sejak dulu aku mengira
Tak kan ada kesempatan bertemu dia lagi
Tiba-tiba aku tak tau apa yang harus ku katakan
Tak tau bagaimana mengatakan kata itu
Beritau dia, aku mencintai dia

Kau Segalanya Bagiku


Engkaulah nafasku yang selalu didalam hidupku
Karena kau selalu mengajarkanku menjadi lebih baik
Engkaulah hatiku yang selalu hadir dalam jiwaku
Kerena kau selalu menjadi penenangku dalam tiap masalahku
Engkau tak pernah lelah sebagai pendampingku
Kau selalu berikanku semua yang terindah

Sayang…..
Aku hanya memangilmu saat aku kehilangan arah
Aku hanya mengingatmu bila aku jauh darimu
Aku hanya mau denganmu untuk berbahagia
Aku hanya mau kamu untuk menjadi pendampingku
Karena aku begitu mencintaimu

Bagiku…
Kau yang terbaik yang pernah kudapatkan
Kau yang terindah yang pernah kurasakan
Hanya dirimulah yang bisa menenangkan jiwaku yang membeku
Hanya hatimu yang bisa temani hatiku yang mudah layu
Karena kaulah segalanya bagiku.…

Wednesday, September 24, 2008

Tips Membuat Script PHP Pengolah Password dengan MD5

Setiap password pengguna aplikasi hendaknya dienkripsi untuk keperluan faktor keamanan. Mengapa password harus dienkripsi? atau apa sih enkripsi itu? OK… enkripsi adalah teknik penyandian pesan, yang semula pesan tersebut dapat dibaca dan bermakna, setelah dienkripsi menjadi tidak terbaca dan tidak bermakna. Lantas… mengapa password harus dienkripsi? Pertanyaan tersebut saya balik, bagaimana jika password tidak dienkripsi? Apabila password tidak dienkripsi, maka dapat dengan mudah dibaca, dan digunakan oleh orang lain yang tidak berhak untuk masuk ke dalam sistem atau aplikasi.

Dalam PHP, tentu kita tidak asing dengan perintah atau function md5(). Function ini sering digunakan para programmer untuk mengenkripsi password sebelum hasil enkripsi tersebut disimpan dalam database sistem, ketika registrasi user baru. Hasil enkripsi md5() berupa suatu string acak dengan panjang 32 karakter (256 bit). Sudah amankah penggunaan md5()? Artikel ini akan membahasnya, serta memberikan tips bagaimana cara membuat script PHP yang baik untuk mengolah password.

Nah… biasanya, struktur code untuk mengenkripsi password dengan md5 dan menyimpannya ke dalam database (pada registrasi user baru) adalah sebagai berikut:

1
2
3
4
5
6
7
8
9
10
11


// input username baru
// input password asli baru ($passAsli)

$passEnkrip = md5($passAsli);

/* procedure simpan data username
dan password hasil md5() ke db */


?>

Sedangkan struktur code untuk loginnya adalah

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


// input login username
// input login password asli ($passAsli)

if (md5($passAsli) == $passEnkrip)
{
// login sukses
// procedure jika login sukses
}
else {
// login gagal
// procedure jika login gagal
}

?>

Lantas… benar-benar sudah amankah penggunaan md5() dengan struktur code di atas?

Beberapa periode yang lalu, mungkin penggunaan struktur seperti di atas sudah dirasa aman. Namun saat ini tidak aman lagi, karena sudah banyak tool untuk mendekripsi hasil enkripsi md5(). Salah satu toolnya seperti yang ada di situs http://md5.rednoize.com. Apa akibatnya jika password ini didekripsi? wah bahaya… bisa-bisa password aslinya ketahuan.

So… gimana donk? apakah md5() tidak usah digunakan lagi? Tidak usah khawatir, kita tetap bisa menggunakan md5() namun perlu sedikit kreatif. Maksudnya adalah bahwa kita perlu mengkombinasikan penggunaan md5() dengan pengacak, misalnya kita gunakan md5() berulangkali, atau menggabungkan password asli dengan suatu string tertentu lalu dienkripsi.

Berikut ini contoh struktur code untuk menyimpan password terenkripsi menggunakan pengacak

1
2
3
4
5
6
7
8
9
10
11
12


// input username baru
// input password baru ($passAsli)

$pengacak = "AJWKXLAJSCLWLW";
$passEnkrip = md5($pengacak . md5($passAsli) . $pengacak );

/* procedure simpan data username
dan password $passEnkrip ke db */


?>

Sedangkan berikut ini adalah struktur untuk loginnya

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17


// input login username
// input login password asli ($passAsli)

$pengacak = "AJWKXLAJSCLWLW";

if (md5($pengacak . md5($passAsli) . $pengacak) == $passEnkrip)
{
// login sukses
// procedure jika login sukses
}
else {
// login gagal
// procedure jika login gagal
}
?>

Anda dapat mengubah isi pengacak atau mungkin mengubah format enkripsinya menjadi model lain, misalnya menggabungkan 3 atau lebih md5() dalam enkripsi. Dalam hal ini, hanya kita yang tahu format enkripsi atau pengacaknya. Intinya adalah jangan mengenkripsi password menggunakan md5() secara langsung, karena hal ini rawan untuk dihack pada saat ini.

Thursday, September 18, 2008


Jaringan nirkabel adalah hal yang relatif baru pada dunia komputer, namun banyak orang yang mulai meliriknya dengan membeli laptop dan menginginkan jaringan berjalann, tanpa harus bermain dengan kabel silang lama. Tren ini tidak akan surut. Sayangnya, jaringan nirkabel belumlah didukung sekuat jaringan kabel tradisional di Linux.

Terdapat tiga langkah dasar untuk mengkonfigurasi sebuah kartu Ethernet nirkabel 802.11:

  1. Dukungan perangkat keras untuk kartu nirkabel

  2. Mengkonfigurasi kartu untuk terhubung ke sebuah titik akses nirkabel

  3. Mengkonfigurasi jaringan

Dukungan Perangkat Keras

Dukungan perangkat keras untuk kartu nirkabel disediakan melalui kernel, baik dari sebuah modul atau disertakan pada kernel. Secara umum, sebagian besar kartu Ethernet baru disediakan melalui modul kernel, sehingga Anda harus menentukan nama modul kernel yang benar dan memuatnya melalui /etc/rc.d/rc.modules. netconfig mungkin tidak mendeteksi kartu jaringan Anda, sehingga Anda harus menentukan kartu Anda sendiri. Lihat http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ untuk informasi lebih banyak tentang driver kernel untuk berbagai kartu nirkabel.

Mengkonfigurasi Setting Nirkabel

Sebagian besar dari pekerjaan ini dikerjakan oleh iwconfig, sehingga seperti biasa bacalah halaman manual untuk iwconfig jika Anda membutuhkan informasi lebih banyak.

Pertama, Anda mungkin hendak mengkonfigurasi titik akses nirkabel Anda. Titik akses nirkabel cukup berbeda-beda dalam terminologinya, dan bagaimana mengkonfigurasinya, sehingga Anda perlu melakukan sedikit pengaturan untuk mengakomodasi perangkat keras Anda. Secara umum, setidaknya Anda membutuhkan informasi berikut:

  • ID domain, atau nama jaringan (disebut ESSID oleh iwconfig)

  • Kanal yang digunakan WAP

  • Setting enkripsi, termasuk kunci yang digunakan (disarankan dalam heksadesimal)

Peringatan

SEBUAH CATATAN TENTANG WEP. WEP cukup rawan, tetapi lebih baik daripada tidak sama sekali. Jika Anda menginginkan tingkat keamanan yang lebih baik pada jaringan nirkabel Anda, Anda harus menginvestigasi VPN atau IPSec, dimana keduanya diluar batasan dari dokumen ini. Anda mungkin juga mengkonfigurasi WAP Anda untuk tidak mengiklankan ID domain/ESSIDnya. Diskusi lebih dalam tentang aturan nirkabel diluar bahasan sub bagian ini, tetapi pencarian pada Google akan menghasilkan lebih dari yang Anda inginkan.

Setelah Anda mengumpulkan informasi diatas, dan mengasumsikan Anda telah menggunakan modprobe untuk memuat driver kernel yang sesuai, Anda bisa mengedit rc.wireless.conf dan menambahkan setting Anda. Berkas rc.wireless.conf agak tidak teratur. Usaha minimal yang bisa dilakukan adalah untuk memodifikasi bagian generik dengan ESSID dan KEY Anda, dan CHANNEL jika diperlukan oleh kartu Anda. (Coba untuk tidak melakukan setting CHANNEL, dan jika berjalan, bagus; jika tidak, setting CHANNEL sebagaimana diperlukan.) Jika Anda nekad, Anda bisa memodifikasi berkas sehingga hanya variabel yang diperlukan yang ditentukan. Nama variabel pada rc.wireless.conf berkorespondensi dengan parameter iwconfig, dan dibaca oleh rc.wireless dan digunakan pada perintah iwconfig.

Jika Anda memiliki kunci Anda pada heksadesimal, maka itulah idealnya, karena Anda bisa cukup yakin bahwa WAP Anda dan iwconfig akan setuju tentang kunci. Jika Anda hanya memiliki sebuah string, Anda tidak bisa yakin bagaimana WAP Anda akan menterjemahkannya kedalam kunci heksadesimal, sehingga beberapa usaha perlu dilakukan (atau dapatkan kunci WAP Anda dalam heksa).

Setelah Anda memodifikasi rc.wireless.conf, jalankan rc.wireless sebagai root, lalu jalankan rc.inet1, lagi-lagi sebagai root. Anda bisa menguji jaringan nirkabel Anda dengan perangkat pengujian standar seperti ping, bersamaan dengan iwconfig. Jika Anda memiliki antarmuka kabel, Anda juga bisa mencoba menggunakan ifconfig untuk menonaktifkan antarmuka tersebut selama Anda menguji jaringan nirkabel Anda untuk memastikan tidak ada interferensi. Anda juga bisa mencoba perubahan Anda melalui sebuah reboot.

Sekarang setelah Anda melihat bagaimana mengedit /etc/rc.d/rc.wireless untuk jaringan default Anda, mari kita lihat lebih dekat pada iwconfig dan melihat bagaimana semuanya bekerja. Hal ini akan mengajarkan Anda cara mudah untuk melakukan setting wifi ketika Anda berada pada warung Internet, toko kopi, atau hot spot wifi lainnya dan hendak online.

Langkah pertama adalah memberitahu kepada NIC nirkabel Anda tentang jaringan yang hendak dipakai. Pastikan Anda mengganti “eth0” dengan sembarang antarmuka jaringan nirkabel Anda dan ganti “mynetwork” dengan ESSID yang hendak Anda gunakan. Ya, kami tahu Anda lebih pintar dari itu. Berikutnya, Anda harus menentukan kunci enkripsi (jika ada) yang digunakan pada jaringan nirkabel Anda. Akhirnya tentukan channel yang digunakan (jika diperlukan).

# iwconfig eth0 essid "mynetwork"
# iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXXX
# iwconfig eth0 channel n

Itu seharusnya menjadi akhir dari nirkabel.

Sistem Berkas Jaringan

Pada titik ini, Anda seharusnya sudah memiliki koneksi TCP/IP yang bekerja pada jaringan Anda. Anda seharusnya sudah bisa melakukan ping kepada komputer lain pada jaringan internal Anda dan, jika Anda telah mengkonfigurasi sebuah gateway yang benar, Anda juga bisa melakukan ping pada komputer lain pada Internet. Seperti yang kita tahu, tujuan utama dalam menyambungkan sebuah komputer pada sebuah jaringan adalah untuk mengakses informasi. Sementara sebagian orang mungkin menghubungkan sebuah komputer pada sebuah jaringan hanya untuk bersenang-senang, sebagian besar orang berharap dapat berbagi berkas dan printer. Mereka berharap dapat menagkses dokumen pada Internet atau memainkan permainan online. Memiliki TCP/IP yang berfungsi pada sistem Slackware baru Anda adalah jalan menuju tujuan tersebut, tetapi jika hanya terinstall, fungionalitasnya akan sangat terbatas. Untuk berbagai berkas, kita harus mengirimnya dan menerimanya kembali menggunakan FTP atau SCP. Kita tidak bisa menjelajahi berkas-berkas pada komputer Slackware kita dari ikon Network Neighborhood atau My Network Places pada komputer Windows computers. Kita ingin agar bisa mengakses berkas pada komputer Unix lain sama seperti ini.

Idealnya, kita ingin agar dapat menggunakan sistem berkas jaringan untuk mengijinkan kita akses transparan pada berkas kita pada komputer lain. Program yang kita gunakan untuk berinteraksi dengan informais yang tersimpan pada komputer lain tidak harus mengerti pada komputer mana informasi tersebut disimpan; mereka hanya perlu mengetahui bahwa informasi itu ada dan bagaimana untuk mendapatkannya. Adalah tanggung jawab dari sistem operasi untuk mengelola akses pada berkas tersebut melalui sistem berkas yang ada dan sistem berkas jaringan. Dua sistem berkas jaringan yang paling umum digunakan adalah SMB (sebagaimana diimplementasi oleh Samba) dan NFS.

SMB/Samba/CIFS

SMB (untuk Server Message Block) adalah penerus dari protokol NetBIOS yang sebelumnya ada dan digunakan oleh IBM pada produk LAN Managernya. Microsoft cukup tertarik dengan NetBIOS dan penerusnya (NetBEUI, SMB dan CIFS). Proyek Samba telah ada sejak 1991, ketika proyek ini dibuat untuk menghubungkan PC IBM yang menjalankan NetBIOS dengan server Unix. Saat ini, SMB adalah metode yang disarankan untuk berbagi berkas dan layanan cetak pada sebuah jaringan untuk seluruh pengguna di seluruh dunia karena Windows mendukungnya.

Berkas konfigurasi Samba adalah /etc/samba/smb.conf; salah satu dari berkas konfigurasi yang paling penuh dengan catatan yang dapat Anda temukan. Contoh sudah disediakan untuk Anda lihat dan modifikasi sesuai kebutuhan Anda. Jika Anda membutuhkan kontrol yang lebih ketat, halaman manual dari smb.conf sangatlah berguna. Karena Samba terdokumentasi dengan baik, kami tidak akan menulis ulang dokumentasi tersebut disini. Kami akan membahas dasar-dasarnya.

smb.conf dibagi menjadi beberapa bagian: satu bagian per share, dan bagian global untuk opsi setting yang digunakan dimana-mana. Beberapa opsi hanya valid pada bagian global; beberapa hanya valid diluar bagian global. Harap diingat bahwa bagian global bisa ditimpa oleh bagian lain. Lihat halaman manual untuk informasi lebih lanjut.

Anda mungkin akan mengedit berkas smb.conf Anda untuk mencerminkan pengaturan jaringan pada LAN Anda. Saya menyarankan Anda memodifikasi beberapa hal yang tercetak dibawah ini:

[global]
# workgroup = Nama-Domain-NT atau Nama-Workgroup, Cth: LINUX2
workgroup = MYGROUP

Ganti nama workgroup untuk merefleksikan workgroup atau nama domain yang Anda gunakan secara lokal.

# server string is the equivalent of the NT Description field
server string = Samba Server

Ini adalah nama komputer Slackware Anda yang akan ditampilkan pada folder Network Neighborhood (atau My Network Places).

# Security mode. Most people will want user level security. See
# security_level.txt for details. NOTE: To get the behaviour of
# Samba-1.9.18, you'll need to use "security = share".
security = user

Anda sudah hampir pasti akan mengimplementasikan keamanan dengan level pengguna pada sistem Slackware Anda.

# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba
# documentation.
# Do not enable this option unless you have read those documents
encrypt passwords = yes

Jika enkripsi kata sandi tidak diaktifkan, Anda tidak akan bisa menggunakan Samba dengan NT4.0, Win2k, WinXP, dan Win2003. Sistem operasi Windows sebelumnya tidak memerlukan enkripsi untuk berbagi berkas.

SMB adalah protokol yang terauthentikasi, yang berarti Anda harus menyediakan nama pengguna dan kata sandi yang benar agar dapat menggunakan layanan ini. Kita memberitahu server samba nama pengguna dan kata sandi yang valid dengan perintah smbpasswd. smbpasswd menerima beberapa pilihan untuk memberitahukannya apakah menggunakan pengguna seperti biasa atau menambahkan pengguna komputer (SMB meminta Anda menambahkan nama NETBIOS komputer sebagai pengguna komputer, membatasi komputer mana yang dapat melakukan authentikasi).

Menambahkan seorang pengguna pada berkas /etc/samba/private/smbpasswd.
# smbpasswd -a user
Menambahkan nama komputer pada berkas /etc/samba/private/smbpasswd.
# smbpasswd -a -m machine

Sangatlah penting untuk dicatat bahwa nama pengguna atau nama komputer yang diberikan harus ada pada berkas /etc/passwd. Anda bisa melakukan hal ini dengan perintah adduser. Perhatikan ketika menggunakan perintah adduser untuk menambahkan nama komputer, seseorang harus menambahkan tanda dollar (“$”) pada nama komputer. Hal ini tidak however, dilakukan dengan smbpasswd. smbpasswd menambahkan tanda dollar dengan sendirinya. Kegagalan untuk memberikan nama komputer dengan adduser akan berakibat pada kesalahan ketika menambahkan nama komputer pada samba.

# adduser machine$ 

Network File System (NFS)

NFS (atau Network File System) pada awalnya dibuat oleh Sun untuk implementasi Solaris pada Unix. Meskipun lebih mudah untuk dikonfigurasi dibandingkan dengan SMB, namun jauh lebih tidak aman. Ketidak-amanan utama pada NFS adalah kemudahan untuk membuat tipuan ID pengguna dan grup dari satu komputer ke komputer lain. NFS adalah protokol yang tidak terauthentikasi. Versi masa depan dari protokol NFS sedang dibuat dan meningkatkan keamanan, tetapi tidaklah umum dipakai pada saat penulisan ini.

Konfigurasi NFS dikendalikan oleh berkas /etc/exports. Ketika Anda memuat berkas default /etc/exports pada sebuah editor, Anda akan melihat baris kosong dengan dua baris komentar pada bagian atas. Kita harus menambahkan sebuah baris pada berkas exports untuk setiap direktori yang hendak kita ekspor, dengan daftar workstation klien yang diijinkan untuk mengakses berkas. Sebagai contoh, jika kita ingin mengekspor direktori /home/foo pada workstation Bar, we kita cukup menambahkan baris:

/home/foo Bar(rw)

pada /etc/exports. Dibawah, Anda akan menemukan contoh dari halaman manual untuk berkas exports:

# sample /etc/exports file
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/usr *.local.domain(ro) @trusted(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)
/pub (ro,insecure,all_squash)

Seperti yang Anda lihat, terdapat beberapa opsi yang berbeda, tetapi sebagian cukup jelas dari contoh ini.

NFS bekerja pada asumsi bahwa pengguna yang diberikan pada satu komputer pada sebuah jaringan memiliki ID pengguna yang sama pada semua komputer pada jaringan. Ketika sebuah percobaan untuk membaca atau menulis dilakukan dari klien NFS pada server NFS, sebuah UID dikirimkan sebagai bagian dari permintaan baca/tulis. UID ini dianggap sama jika permintaan baca/tulis dilakukan pada komputer lokal. Seperti yang Anda lihat, jika seseorang dapat menentukan UID ketika mengakses sumber daya pada sistem remote, Hal Buruk dapat dan akan terjadi. Sebagai solusi untuk mengatasi ini, setiap direktori di-mount dengan opsi root_squash. Opsi ini memetakan UID untuk setiap pengguna yang mengklaim sebagai root pada UID yang berbeda, sehingga mencegah akses root pada berkas atau folder pada direktori yang diekspor. root_squash tampaknya diaktifkan sebagai default sebagai usaha keamanan, tetapi penulis menyarankan untuk menyebutkannya pada berkas /etc/exports Anda.

Anda juga bisa mengekspor direktori secara langsung dari perintah baris pada server dengan menggunakan perintah exportfs seperti berikut:

# exportfs -o rw,no_root_squash Bar:/home/foo 

Baris ini mengekspor direktori /home/foo pada komputer “Bar” dan mengijinkan akses baca/tulis. Sebagai tambahan, server NFS tidak akan memanggil root_squash, yang berarti sembarang pengguna pada Bar dengan sebuah UID dari “0” (UID root) akan memiliki hak yang setara dengan root pada server. Sintaks tampaknya aneh (biasanya ketika sebuah direktori ditentukan pada sintaks computer:/direktori/berkas, Anda mengacu pada sebuah berkas pada direktori pada komputer yang diberikan).

Anda akan menemukan informasi lebih banyak pada halaman manual dari berkas exports.

Konfigurasi X

Sejak Slackware-10.0, Lingkungan X Window pada Slackware disediakan oleh Xorg. X bertanggung jawab untuk menyediakan antarmuka grafis. Aplikasi ini tidak tergantung dari sistem operasi, tidak seperti Windows atau MacOS.

Sistem X Window diimplementasikan melalui banyak program yang berjalan pada sisi pengguna. Dua komponen utama adalah server dan window manager. Server menyediakan fungsi tingkat rendah untuk berinterasi dengan perangkat keras video Anda, sehingga spesifik terhadap sistem tertentu. Window manager terletak diatas server dan menyediakan antarmuka. Keunggulannya adalah Anda bisa memiliki banyak antarmuka grafis dengan mengganti window manager yang Anda gunakan.

Mengkonfigurasi X bisa jadi tugas yang kompleks. Alasannya adalah banyaknya kartu grafis yang tersedia untuk arsitektur PC, yang sebagian besar menggunakan pemrograman antarmuka yang berbeda. Untungnya, sebagian besar kartu grafis sekarang ini mendukung standar video dasar yang dikenal dengan nama VESA, dan jika kartu Anda termasuk didalamnya, Anda bisa langsung menjalankan X menggunakan perintah startx.

Jika hal ini tidak bekerja untuk kartu Anda, atau jika Anda hendak mengambil keuntungan dari fitur performa tinggi dari kartu grafis Anda seperti akselerasi perangkat keras atau rendering perangkat keras secara 3D, maka Anda harus mengkonfigurasi X.

Untuk mengkonfigurasi X, Anda harus membuat berkas /etc/X11/xorg.conf. Berkas ini berisi banyak detail tentang perangkat keras video, mouse, dan monitor Anda. Berkas ini sangatlah kompleks, tetapi terdapat beberapa program untuk membantu Anda membuatnya. Kami akan menyebutkan sebagian dari program itu disini.

xorgconfig

Ini adalah antarmuka berbasis menu sederhana yang serupa dengan installer Slackware. Aplikasi ini akan meminta X server melihat kartu grafis, dan menentukan berkas konfigurasi awal yang paling bagus yang dapat dibuat berdasarkan informasi yang didapat. Berkas /etc/X11/xorg.conf yang dihasilkan merupakan langkah awal yang cukup bagus untuk sebagian besar sistem (dan seharusnya bekerja tanpa modifikasi apapun).

Ini adalah program konfigurasi X berbasis teks yang didesain untuk administator sistem yang lebih handal. Berikut adalah contoh langkah-langkah menggunakan xorgconfig. Pertama, jalankan program:

# xorgconfig 

Ini akan menampilkan layar yang penuh dengan informais tentang xorgconfig. Untuk melanjutkan, tekan ENTER. xorgconfig akan menanyakan apakah Anda telah menentukan PATH Anda dengan benar. Seharusnya sudah baik, jadi lanjutkan dan tekan ENTER.

Gambar xorgconfig Konfigurasi Mouse

xorgconfig

Pilih mouse Anda dari menu yang ditampilkan. Jika Anda tidak melihat mouse serial Anda pada daftar, pilihlah protokol Microsoft -- adalah yang paling sering dan mungkin akan jalan. Berikutnya xorgconfig akan bertanya tengan penggunaan ChordMiddle dan Emulate3Buttons. Anda akan menentukan opsi ini seperti yang dijelaskan pada layar. Gunakan jika tombol tengah pada mouse Anda tidak bekerja pada X, atau jika mouse Anda hanya memiliki dua tombol. Emulate3Buttons mengijinkan Anda mensimulasikan tombol tengah dengan menekan kedua tombol secara bersamaan. Lalu, masukkan nama perangkat mouse Anda. Pilihan default, /dev/mouse, seharusnya bekerja karena link dikonfigurasikan selama setup Slackware. Jika Anda menjalankan GPM (server mouse Linux) pada mode repeater, Anda bisa menentukan jenis mouse Anda pada /dev/gpmdata agar X mendapatkan informasi mouse melalui gpm. Pada beberapa kasus (dengan busmice terutama) hal ini bisa bekerja dengan lebih baik, tetapi sebagian besar pengguna tidak perlu melakukan hal ini.

xorgconfig akan menanyakan apakah Anda hendak mengaktifkan binding kunci khusus. Jika Anda memerlukan, jawab “y”. Sebagian besar pengguna bisa menjawab “n” -- masukkan ini jika Anda tidak yakin.

Gambar xorgconfig Horizontal Sync

xorgconfig

Pada bagian berikutnya Anda masukkan jangkauan sync untuk monitor Anda. Untuk memulai mengkonfigurasi monitor Anda, tekan ENTER. Anda akan melihat sebuah daftar jenis monitor -- pilih salah satu. Berhati-hatilah untuk tidak melebihi spesifikasi dari monitor Anda. Melakukan hal tersebut bisa merusak perangkat keras Anda.

Gambar xorgconfig Vertical Sync

xorgconfig

Menentukan jangkauan sync vertikal untuk monitor Anda (Anda seharusnya menemukan ini pada manual monitor). xorgconfig akan menanyakan Anda untuk memasukkan string untuk mengidentifikasi jenis monitor pada berkas xorg.conf. Masukkan apapun yang Anda inginkan pada 3 baris ini (termasuk kosong).

Gambar xorgconfig Kartu Grafis

xorgconfig

Sekarang Anda telah memiliki kesempatan untuk melihat basis data dari jenis kartu grafis. Anda mungkin perlu melakukan hal ini, jadi jawab “y”, dan pilih sebuah kartu dari daftar yang ditampilkan. Jika Anda tidak melihat kartu Anda, cobalah memilih yang menggunakan chipset yang sama dan mungkin akan berjalan dengan baik.

Berikutnya, beritahu xorgconfig seberapa banyak RAM yang Anda miliki pada kartu grafis Anda. xorgconfig meminta Anda untuk memasukkan lebih banyak teks deskripsi tentang kartu grafis Anda. Jika Anda ingin, Anda bisa memasukkan deskripsi pada tigas baris ini.

Anda akan ditanya resolusi tampilan apa yang hendak Anda gunakan. Lagi-lagi, menggunakan default yang disediakan sudahlah cukup untuk memulai. Selanjutnya, Anda bisa mengedit berkas /etc/X11/xorg.conf dan mengatur ulang mode sehingga 1024x768 (atau mode apapun yang Anda inginkan) adalah defaultnya.

Pada titik ini, program xorgconfig akan bertanya apakah Anda hendak menyimpan berkas konfigurasi aktual. Jawab ya (yes) dan berkas konfigurasi X akan disimpan, menyelesaikan proses setup. Anda bisa memulau X dengan perintah startx.

xorgsetup

Cara kedua untuk mengkonfigurasi X adalah dengan menggunakan xorgsetup, sebuah program konfigurasi otomatis yang datang pada Slackware.

Untuk menjalankan xorgsetup, login sebagai root dan ketikkan:

# xorgsetup 

Jika Anda telah memiliki sebuah berkas /etc/X11/xorg.conf (karena Anda telah pernah mengkonfigurasi X), Anda akan diminta konfirmasi apakah Anda hendak membuat cadangan berkas konfigurasi sebelum melanjutkan. Berkas asli akan diberi nama /etc/X11/xorg.conf.backup.

xinitrc

xinit(1) adalah program yang menjalankan x; program ini dipanggil oleh startx(1), sehingga Anda mungkin tidak menyadarinya (dan mungkin tidak perlu untuk menyadarinya). Berkas konfigurasinya menentukan program apa (termasuk dan terutama window manager) yang dijalankan ketika X dijalankan. xinit pertama-tama menguji direktori home Anda untuk sebuah berkas .xinitrc. Jika berkas ditemukan, maka akan dijalankan; jika tidak, /var/X11R6/lib/xinit/xinitrc (default sistem) akan digunakan. Berikut adalah contoh dari berkas xinitrc:

#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi

# start some nice programs

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

Semua blok “if” disebutkan disana untuk digabung pada beberapa setting konfigurasi dari berkas-berkas lain. Bagian yang menarik dari berkas tersebut adalah bagian akhir dari file, dimana beberapa program dijalankan. Sesi X akan dimulai dengan twm(1) window manager, sebuah jam, dan tiga terminal. Perhatikan bahwa exec sebelum xterm terakhir. Apa yang dilakukannya adalah mengganti shell yang saat ini dijalankan (yang menjalankan script xinitrc) dengan perintah xterm(1). Ketika pengguna keluar dari xterm, Sesi X akan berakhir.

Untuk mengkustomisasi X Anda, salin berkas default /var/X11R6/lib/xinit/xinitrc ke ~/.xinitrc dan editlah, mengganti program tersebut dengan apa yang Anda inginkan. Akhir dari milik saya seperti ini:

# Start the window manager:
exec startkde

Perhatikan bahwa terdapat beberapa berkas xinitrc.* pada /var/X11R6/lib/xinit yang berkoresponden pada berbagai window manager dan GUI. Anda bisa menggunakan sembarang, jika Anda suka.

xwmconfig

Selama bertahun-tahun, Unix digunakan secara eksklusif sebagai sistem operasi untuk server, dengan pengecualian untuk workstation yang bertenaga. Hanya beberapa orang teknis yang mau menggunakan sistem operasi berbasis-Unix, dan antarmukanya merefleksikan fakta ini. GUI tampak lebih kosong, didesain untuk menjalankan beberapa aplikasi grafis yang diperlukan seperti program CAD dan pemodelan gambar. Sebagian besar berkas dan manajemen sistem dilakukan pada perintah baris. Berbagai vendor (Sun Microsystems, Silicon Graphics, dll) menjual workstation dengan sebuah usaha untuk menyediakan “tampilan” yang menawan, tetap berbagai alat GUI yang digunakan oleh para pengembang mengakibatkan pada masalah keseragaman desktop. Sebuah scrollbar mungkin tidak tampak sama pada dua aplikasi yang berbeda. Menu mungkin tampak berbeda pada tempat yang berbeda. Program-program memiliki tombol dan checkbox yang berbeda. Jangkauan warna yang berbeda dan biasanya ditulis secara hard-code pada setiap alat pemrograman. Selama para pengguna adalah para teknisi profesional, ini bukanlah masalah.

Dengan keberadaan sistem operasi berbasis-Unix yang gratis dan sejumlah aplikasi grafis, X telah mendapatkan sebuah basis pengguna desktop yang cukup besar. Sebagian besar pengguna, tentu saja, terbiasa dengan tampilan yang konsisten yang disediakan oleh Microsoft Windows atau MacOS dari Apple; kurangnya konsistensi pada aplikasi berbasis X menjadi sebuah halangan untuk penerimaan pengguna yang lebih besar. Sebagai tanggapan akan hal tersebut, dua proyek open source telah melakukannya. K Desktop Environment, atau KDE, dan GNU Network Object Model Environment, yang dikenal dengan GNOME. Setiap proyek memiliki variasi aplikasi yang luas, mulai dari taskbars dan manajer berkas hingga permainan dan perangkat perkantoran, ditulis dengan toolkit GUI yang sama dan terintegrasi secara penuh untuk menyediakan sebuah desktop yang konsisten dan seragam.

Perbedaan antara KDE dan GNOME secara umum sangatlah mendasar. Keduanya tampak berbeda, karena setiap proyek menggunakan toolkit GUI yang berbeda. KDE berbasis pada pustaka Qt dari Troll Tech AS, sementara GNOME menggunakan GTK, sebuah toolkit yang dibuat untuk program GNU Image Manipulation Program (GIMP). Sebagai proyek yang terpisah, KDE dan GNOME memiliki pemrogram dan desainernya masing-masing, dengan gaya pengembangan dan filosofi yang berbeda. Hasilnya, secara mendasar adalah sama: sebuah lingkungan desktop dan koleksi aplikasi yang terintegrasi dan konsisten. Fungsionalitas, usabilitas, dan kecantikan dari KDE dan GNOME bersaing dengan apapun yang ada pada sistem operasi lain.

Bagian terbagus adalah kedua desktop canggih ini gratis. Ini berarti Anda bisa mendapatkan salah satunya atau keduanya (ya, pada waktu yang bersamaan). Pilihan ada ditangan Anda.

Sebagai tambahan dari desktop GNOME dan KDE, Slackware menyertakan banyak koleksi window manager. Beberapa didesain untuk mensimulasikan sistem operasi lain, sebagain untuk kustomisasi, dan sisanya untuk kecepatan. Terdapat beberapa variasi. Tentu saja Anda bisa menginstall sebanyak yang Anda inginkan, bermain dengan mereka semua, dan menentukan mana yang menjadi pilihan Anda.

Untuk mempermudah pemilihan desktop, Slackware juga menyertakan sebuah program yang disebut xwmconfig yang dapat digunakan untuk memilih sebuah desktop atau window manager. Ia dijalankan seperti berikut:

% xwmconfig 

Gambar Konfigurasi desktop dengan xorgconfig

xwmconfig

Anda akan diberikan sebuah daftar semua desktop dan window manager yang terinstall. Cukup pilih yang Anda inginkan dari daftar tersebut. Setiap pengguna pada sistem Anda harus menjalankan program ini, karena pengguna yang berbeda dapat menggunakan desktop yang berbeda, dan tidak semua pengguna menginginkan pilihan yang Anda pilih saat installasi.

Lalu cukup jalankan X, dan Anda sudah siap.

xdm

Semenjak Linux menjadi sistem operasi desktop yang lebih berguna, banyak pengguna memilih agar mesin langsung boot ke lingkungan grafis. Untuk hal ini Anda harus memberitahukan kepada Slackware untuk boot secara langsung ke X, dan memanggil login manager grafis. Slackware hadir dengan tiga alat login grafis, xdm(1), kdm, dan gdm(1).

xdm adalah login manager grafis yang hadir dengan sistem X.org. Paket ini cukup lengkap, tetapi tidak secanggih alternatifnya. kdm adalah login manager grafis yang hadir dengan KDE, K Desktop Environment. Akhirnya, gdm adalah login manager yang hadir dengan GNOME. Sembarang pilihan memungkinkan Anda untuk login sebagai sembarang pengguna, dan memilih desktop apa yang hendak Anda gunakan.

Sayangnya, Slackware tidak menyertakan program seperti xwmconfig untuk memilih login manager yang hendak digunakan, sehingga jika ketiganya diinstall Anda harus melakukan sedikit pengeditan untuk memilih pilihan Anda. Tetapi sebelumnya, kita akan membahas bagaimana melakukan boot ke lingkungan grafis.

Agar dapat menjalankan X saat boot, Anda harus melakukan boot pada run-level 4. Run-level adalah cara untuk memberitahukan init(8) untuk melakukan sesuatu yang berbeda saat ia menjalankan sistem operasi. Kita melakukan hal ini dengan mengedit berkas konfigurasi untuk init, /etc/inittab.

# These are the default runlevels in Slackware:
# 0 = halt
# 1 = single user mode
# 2 = unused (but configured the same as runlevel 3)
# 3 = multiuser mode (default Slackware runlevel)
# 4 = X11 with KDM/GDM/XDM (session managers)
# 5 = unused (but configured the same as runlevel 3)
# 6 = reboot

# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:

Untuk membuat Slackware boot ke lingkungan grafis, kita cukup mengganti 3 menjadi 4.

  # Default runlevel. (Do not set to 0 or 6)
id:4:initdefault:

Sekarang Slackware akan boot pada runlevel 4 dan menjalankan /etc/rc.d/rc.4. Berkas ini menjalankan X dan memanggil login manager yang Anda pilih. Lalu, bagaimana kita memilih login manager? Terdapat beberapa cara untuk melakukannya, dan saya akan menjelaskannya setelah kita melihat rc.4.

  # Try to use GNOME's gdm session manager:
if [ -x /usr/bin/gdm ]; then
exec /usr/bin/gdm -nodaemon
fi

# Not there? OK, try to use KDE's kdm session manager:
if [ -x /opt/kde/bin/kdm ]; then
exec /opt/kde/bin/kdm -nodaemon
fi

# If all you have is XDM, I guess it will have to do:
if [ -x /usr/X11R6/bin/xdm ]; then
exec /usr/X11R6/bin/xdm -nodaemon
fi

Seperti yang Anda lihat disini, rc.4 pertama-tama menguji apakah gdm dapat dieksekusi, dan jika iya, dia akan menjalankannya. Pilihan kedua adalah kdm, dan akhirnya xdm. Satu cara untuk memilih login manager adalah dengan menghapus yang tidak hendak Anda gunakan menggunakan removepkg. Anda bisa mencari lebih banyak tentang removepkg pada Bab 18.

Cara lain, Anda bisa menghapus hak akses eksekusi pada berkas yang tidak Anda gunakan. Kita membahas chmod pada Bab 9.

# chmod -x /usr/bin/gdm 

Akhirnya, Anda juga bisa memberi komentar pada login manager yang tidak akan Anda gunakan.

  # Try to use GNOME's gdm session manager:
# if [ -x /usr/bin/gdm ]; then
# exec /usr/bin/gdm -nodaemon
# fi

# Not there? OK, try to use KDE's kdm session manager:
if [ -x /opt/kde/bin/kdm ]; then
exec /opt/kde/bin/kdm -nodaemon
fi

# If all you have is XDM, I guess it will have to do:
if [ -x /usr/X11R6/bin/xdm ]; then
exec /usr/X11R6/bin/xdm -nodaemon
fi

Sembarang baris yang diawali dengan tanda kres (#) dianggap sebuah komentar dan shell akan melewatinya. Sehingga, meskipun gdm sudah terinstall dan dapat dieksekusi, shell (dalam hal ini bash) tidak akan mengujinya.

Boot

Proses boot sistem Linux Anda seringkali mudah dan terkadang sulit. Banyak pengguna menginstall Slackware pada komputernya dan hanya itu. Mereka hanya menghidupkannya dan siap untuk digunakan. Pada waktu lain, hanya mem-boot mesin bisa menjadi pilihan. Untuk sebagian besar pengguna, LILO adalah yang terbaik. Slackware menyertakan LILO dan Loadlin untuk boot Slackware Linux. LILO akan bekerja dari partisi hard drive, boot record hard drive, atau disket, sehingga menjadikannya alat yang sangat serbaguna. Loadlin bekerja dari perintah baris DOS, mematikan DOS dan menjalankan Linux.

Utilitas lain yang populer untuk melakukan boot Linux adalah GRUB. GRUB tidak disertakan atau didukung secara penuh oleh Slackware. Slackware bertahan pada standar “mencoba dan benar” untuk apa yang disertakan pada distribusi. Meskipun GRUB bekerja dengan baik dan menyertakan beberapa fitur yang tidak ada pada LILO, LILO menangani semua tugas-tugas boot loader dengan lebih handal dan juga catatan sejarah yang lebih baik. Menjadi aplikasi yang lebih muda, GRUB belum hidup terlalu lama. Karena tidak disertakan pada Slackware, kami tidak mendiskusikannya disini. Jika Anda hendak menggunakan GRUB (mungkin ia hadir pada SO Linux lain dan jika Anda hendak menggunakannya untuk dual-boot) lihatlah dokumentasi GRUB.

Bagian ini membahas LILO dan Loadlin, dua aplikasi boot yang disertakan pada Slackware. Bagian ini juga membahas beberapa skenario dual boot dan bagaimana Anda melakukannya.

LILO

Linux Loader, atau LILO, adalah aplikasi boot yang paling populer pada sistem Linux. Aplikasi ini memiliki banyak konfigurasi dan bisa digunakan dengan mudah untuk boot sistem operasi lain.

Slackware Linux hadir dengan utilitas konfigurasi berbasis menu yang disebut liloconfig. Program ini dijalankan pertama kali selama proses setup, tetapi Anda bisa memanggilnya kemudian dengan mengetikkan liloconfig pada prompt.

LILO membaca settingnya dari berkas /etc/lilo.conf(5). Berkas ini tidak dibaca setiap kali Anda melakukan boot, tetapi setiap kali Anda menginstall LILO. LILO harus diinstall ulang pada boot sector setiap kali Anda melakukan perubahan konfigurasi. Banyak kesalahan LILO muncul dari modifikasi berkas lilo.conf, tetapi lupa untuk menjalankan ulang lilo untuk menginstall ulang perubahan ini. liloconfig akan membantu Anda membangun berkas konfigurasi sehingga Anda bisa menginstall LILO untuk sistem Anda. Jika Anda memilih untuk mengedit berkas /etc/lilo.conf, maka menginstall LILO cukup dengan mengetikkan /sbin/lilo (sebagai root) pada prompt.

Ketika pertama kali Anda menjalankan liloconfig, maka akan tampak seperti berikut:

Gambar liloconfig

lilo

Jika ini adalah kali pertama Anda melakukan setting LILO, Anda harus memilih simple. Jika tidak, Anda mungkin menemukan bahwa expert lebih cepat jika Anda terbiasa dengan LILO dan Linux. Memilih simple akan memulai konfigurasi LILO.

Jika dukungan kernel frame buffer dikompilasi pada kernel Anda, liloconfig akan bertanya tentang resolusi video yang hendak Anda gunakan. Ini adalah resolusi yang digunakan oleh server XFree86 frame buffer. Jika Anda tidak ingin konsol dijalankan pada mode video khusus, memilih normal akan memilih pilihan 80x25.

Bagian berikutnya dari konfigurasi LILO adalah memilih dimana Anda hendak menginstallnya. Ini mungkin adalah langkah yang paling penting. Daftar berikut menjelaskan letak installasi:

Root

Opsi ini akan menginstall LILO pada awal partisi root Linux Anda. Ini adalah opsi teraman jika Anda memiliki sistem operasi lain pada komputer Anda. Opsi ini memastikan bahwa aplikasi boot lain tidak tertimpa ulang. Kerugiannya adalah LILO hanya akan dimuat dari sini jika drive Linux Anda adalah drive pertama pada sistem Anda. Hal ini mengapa banyak orang memilih untuk membuat sebuah partisi /boot sebagai drive pertama pada sistem mereka. Hal ini mengijinkan kernel dan LILO diinstall pada awal drive dimana LILO bisa menemukannya. Versi awal LILO berisi sebuah cacat yang dikenal dengan “1024 cylinder limit”. LILO tidak dapat melakukan boot kernel pada partisi yang melewati silinder ke-1024. Versi terbaru LILO sudah menghapus masalah ini.

Floppy

Metode ini bahkan lebih aman dari opsi sebelumnya. Opsi ini membuat disket yang dapat Anda gunakan untuk boot sistem Linux Anda. Opsi ini tidak menggunakan aplikasi boot apapun pada hard disk, sehingga Anda hanya cukup mem-boot disket ini jika Anda hendak menggunakan Slackware. Kecacatan dari metode ini sangatlah jelas. Disket sangatlah rentan terhadap kegagalan. Kedua, boot loader tidak berada pada komputer, jika Anda kehilangan disket, Anda harus membuat yang lain agar dapat boot sistem Anda.

MBR

Anda mungkin akan menggunakan metode ini jika Slackware adalah satu-satunya sistem operasi pada komputer Anda, atau jika Anda hendak menggunakan LILO untuk memilih diantara beberapa sistem operasi pada komputer Anda. Ini adalah metode yang paling disarankan untuk menginstall LILO dan akan bekerja pada sembarang sistem komputer.

Warning

Opsi ini akan menimpa aplikasi boot lain yang Anda miliki pada MBR.

Setelah memili lokasi installasi, liloconfig akan menulis berkas konfigurasi dan menginstall LILO. Sudah selesai. Jika Anda memilih mode expert Anda akan mendapatkan menu khusus. Menu ini mengijinkan Anda untuk memodifikasi berkas /etc/lilo.conf, dan menambahkan sistem operasi lain pada menu boot Anda, dan menentukan LILO untuk mengirimkan parameter kernel khusus saat boot. Menu expert tampak seperti berikut:

Gambar Menu Expert liloconfig

Lilo Expert

Apapun konfigurasi sistem Anda, melakukan setting boot loader yang sudah berfungsi sangatlah mudah. liloconfig membuatnya mudah.

LOADLIN

Opsi boot lain yang hadir dengan Slackware Linux adalah LOADLIN. LOADLIN adalah sebuah program DOS yang dapat digunakan untuk menjalankan Linux dari sistem DOS yang sedang berjalan. Aplikasi ini membutuhkan kernel Linux pada partisi DOS sehingga LOADLIN bisa memuatnya dan melakukan boot sistem dengan benar.

Selama proses installasi, LOADLIN akan disalin pada direktori home pengguna root sebagai berkas .ZIP. Tidak terdapat proses setup otomatis untuk LOADLIN. Anda harus menyalin kernel Linux (biasanya /boot/vmlinuz) dan juga berkas LOADLIN dari direktori home pengguna root pada partisi DOS.

LOADLIN sangatlah berguna jika Anda hendak membuat menu boot pada partisi DOS Anda. Sebuah menu bisa ditambahkan pada berkas AUTOEXEC.BAT yang mengijinkan Anda untuk memilih antara Linux atau DOS. Pilihan Linux akan menjalankan LOADLIN, sehingga memboot sistem Slackware Anda. Berkas AUTOEXEC.BAT ini pada Windows 95 akan menyediakan menu boot yang cukup:

   @ECHO OFF
SET PROMPT=$P$G
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\
CLS
ECHO Harap Memilih Sistem Operasi Anda:
ECHO.
ECHO [1] Slackware Linux
ECHO [2] Windows 95
ECHO.
CHOICE /C:12 "Selection? -> "
IF ERRORLEVEL 2 GOTO WIN
IF ERRORLEVEL 1 GOTO LINUX
:WIN
CLS
ECHO Menjalankan Windows 95...
WIN
GOTO END
:LINUX
ECHO Menjalankan Slackware Linux...
CD \LINUX
LOADLIN C:\LINUX\VMLINUZ ROOT= RO
GOTO END
:END

Anda mungkin hendak menentukan partisi root Anda sebagai nama perangkat Linux, seperti /dev/hda2 atau yang lain. Anda bisa menggunakan LOADLIN pada perintah baris. Anda cukup menggunakannya sama seperti pada contoh diatas. Dokumentasi LOADLIN hadir dengan banyak contoh tentang cara penggunaannya.

Dual Boot

Banyak pengguna melakukan setting komputer mereka untuk boot Slackware Linux dan sistem operasi lain. Kami telah menjelaskan beberapa skenario dual boot, jika Anda mengalami kesulitan melakukan setting pada sistem Anda.

Windows

Melakukan setting sebuah komputer antara MS Windows dan Linux mungkin skenario dual boot yang paling umum. Terdapat berbagai cara Anda bisa melakukan setup, tetapi bagian ini hanya membahas dua diantaranya.

Seringkali ketika melakukan setting sistem dual boot, seseorang akan merencanakan rencana yang sempurna untuk segalanya, tetapi melupakan urutan installasi. Sangatlah penting untuk memahami bahwa sistem operasi harus diinstall pada urutan tertentu agar dual boot dapat bekerja. Linux selalu menawarkan kontrol terhadap hal itu, jika sesuatu dituliskan pada Master Boot Record. Untuk itu, sangatlah disarankan untuk menginstall Linux di akhir. Windows harus terinstall terlebih dahulu, karena ia selalu menuliskan aplikasi bootnya pada Master Boot Record, menimpa semua yang mungkin ditulis disana.

Using LILO

Sebagian besar orang akan menggunakan LILO untuk memilih antara Linux dan Windows. Seperti yang dikatakan diatas, Anda harus menginstall Windows terlebih dahulu, baru dilanjutkan dengan Linux.

Misalkan Anda memiliki hard disk IDE 40GB sebagai satu-satunya disk pada sistem Anda. Mari kita misalkan Anda hendak memberikan setengah dari kapasitas tersebut pada Windows dan sisanya pada Linux. Hal ini akan menimbulkan sebuah masalah ketika mencoba boot Linux.

   20GB   Windows boot (C:)
1GB Linux root (/)
19GB Linux /usr (/usr)

Anda mungkin harus mengalokasikan sejumlah ruang untuk partisi swap Linux Anda. Aturan tidak tertulis adalah untuk menggunakan dua kali jumlah RAM yang Anda miliki. Sebuah sistem dengan 64MB RAM akan memiliki 128 MB swap, dan seterusnya. Ruang kosong untuk swap adalah diskusi dari banyak flame pada IRC dan Usenet. Tidak ada cara yang “benar” untuk melakukannya, tetapi bertahan dengan aturan diatas sudahlah mencukupi.

Dengan partisi Anda sudah tertata, Anda seharusnya memulai menginstall Windows. Setelah berjalan dengan baik, Anda bisa memulai menginstall Linux. Installasi LILO memerlukan perhatian khusus. Anda mungkin akan memilih mode expert untuk menginstall LILO.

Mulailah sebuah konfigurasi LILO baru. Anda mungkin hendak menginstallnya pada Master Boot Record sehingga bisa digunakan untuk memilih diantara dua sistem operasi. Dari menu, tambahkan partisi Linux Anda dan Windows (atau DOS) Anda. Setelah selesai, Anda bisa menginstall LILO.

Reboot komputer. LILO akan dimuat dan menampilkan sebuah menu yang mengijinkan Anda memilih diantara sistem operasi yang telah terinstall. Pilih nama dari SO yang hendak Anda muat (nama ini dipilih ketika Anda melakukan setup LILO).

LILO adalah boot loader yang dapat dikonfigurasi. Aplikasi ini tidak hanya terbatas untuk boot Linux atau DOS. Ia dapat boot apa saja. Halaman manual untuk lilo(8) dan lilo.conf(5) menyediakan informasi lebih detail.

Bagaimana jika LILO tidak bekerja? Terdapat beberapa kasus dimana LILO tidak bekerja pada mesin tertentu. Untungnya terdapat cara lain untuk dual boot Linux dan Windows.

Menggunakan LOADLIN

Metode ini bisa digunakan jika LILO tidak bekerja pada sistem Anda, atau jika Anda tidak ingin melakukan setting LILO. Metode ini juga ideal untuk pengguna yang sering menginstall ulang Windows. Setiap kali Anda menginstall ulang Windows, ia akan menimpa Master Boot Record, sehingga menghancurkan installasi LILO. Dengan LOADLIN, Anda tidak terpengaruh dengan masalah tersebut. Kerugian terbesar adalah Anda hanya dapat menggunakan LOADLIN untuk melakukan boot ke Linux.

Dengan LOADLIN, Anda bisa menginstall sistem operasi pada sembarang urutan. Hati-hati dengan menginstall pada Master Boot Record, Anda tidak ingin melakukannya. LOADLIN bergantung pada partisi Windows yang dapat diboot. Sehingga pada saat installasi Slackware, pastikan Anda melewatkan setup LILO.

Setelah menginstall sistem operasi, salin loadlinX.zip (dimana X adalah nomor versi, seperti 16a) dari direktori home root pada partisi Windows Anda. Juga salin citra kernel pada partisi Windows. Anda harus berada pada Linux agar bisa berhasil. Contoh berikut menunjukan bagaimana melakukan hal ini:

# mkdir /win
# mount -t vfat /dev/hda1 /win
# mkdir /win/linux
# cd /root
# cp loadlin* /win/linux
# cp /boot/vmlinuz /win/linux
# cd /win/linuz
# unzip loadlin16a.zip

Perintah diatas akan menghasilkan sebuah direktori C:\LINUX pada partisi Windows Anda (asumsi /dev/hda1) dan menyalin segala sesuatu yang diperlukan untuk LOADLIN. Setelah melakukan hal ini, Anda harus reboot dan masuk ke Windows untuk melakukan setup menu boot.

Setelah masuk di Windows, bukalah prompt DOS. Pertama, kita harus memastikan bahwa sistem dipilih untuk tidak boot ke antarmuka grafis.

C:\> cd \
C:\> attrib -r -a -s -h MSDOS.SYS
C:\> edit MSDOS.SYS

Tambahkan baris ini pada berkas:

BootGUI=0

Sekarang simpan berkas dan keluar dari editor. Sekarang edit C:\AUTOEXEC.BAT sehingga kita bisa menambahkan menu boot. Berikut ini adalah contoh pada AUTOEXEC.BAT:

cls
echo Menu Boot Sistem
echo.
echo 1 - Linux
echo 2 - Windows
echo.
choice /c:12 "Selection? -> "
if errorlevel 2 goto WIN
if errorlevel 1 goto LINUX
:LINUX
cls
echo "Menjalankan Linux..."
cd \linux
loadlin c:\linux\vmlinuz root=/dev/hda2 ro
goto END
:WIN
cls
echo "Menjalankan Windows..."
win
goto END
:END

Baris kunci adalah pada saat menjalankan LOADLIN. Kita memberitahukan kernel apa yang hendak dimuat, partisi root Linux dan kita hendak melakukan mount secara read-only pada awalnya.

Alat untuk kedua metode ini disediakan oleh Slackware Linux. Terdapat banyak aplikasi boot dipasaran, tetapi kedua aplikasi ini dapat berjalan untuk sebagian besar setup dual boot.

Hack Windows NT Kuno

Ini adalah situasi dual boot yang kurang populer. Pada jaman dahulu, dimana LILO tidak mampu boot Windows NT, memaksa pengguna Linux melakukan hack terhadap NTLDR, yang menimbulkan lebih banyak masalah daripada dual boot antara Windows 9x dan Linux. Harap dipahami bahwa instruksi dibawah ini sudah kuno. LILO telah mampu boot ke Windows NT/2000/XP/2003 untuk beberapa tahun sekarang ini. Jika Anda menggunakan mesin kuno, Anda harus menggunakan hack seperti ini.

  1. Install Windows NT

  2. Install Linux, pastikan LILO terinstall pada superblock pada partisi Linux

  3. Dapatkan 512 byte pertama dari partisi root Linux dan simpan pada partisi Windows NT

  4. Edit C:\BOOT.INI pada Windows NT untuk menambahkan opsi Linux

Menginstall Windows NT cukup jelas, dan juga menginstall Linux. Dari situ, akan menjadi lebih rumit. Mendapatkan 512 byte pertama dari partisi Linux lebih mudah dari kata-kata. Anda harus berada pada Linux untuk menyelesaikan ini. Diasumsikan partisi Linux Anda adalah /dev/hda2, jalankan perintah ini:

# dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512 

Selesai. Sekarang Anda harus menyalin bootsect.lnx pada partisi Windows NT. Disini adalah dimana kita mendapatkan masalah lain. Linux tidak memiliki dukungan penulisan pada sistem berkas NTFS. Jika Anda menginstall Windows NT dan memformat drive Anda sebagai NTFS, Anda perlu menyalin berkas ini pada disket FAT dan membacanya dari Windows NT. Jika Anda memformat Windows NT sebagai FAT, Anda bisa memountnya dari Linux dan menyalin berkasnya secara langsung. Dari kedua cara tersebut, Anda harus meletakkan /tmp/bootsect.lnx dari drive Linux pada C:\BOOTSECT.LNX pada drive Windows NT.

Langkah terakhir adalah menambahkan opsi menu pada menu boot Windows NT. Pada Windows NT, bukalah sebuah prompt.

C:\WINNT> cd \
C:\> attrib -r -a -s -h boot.ini
C:\> edit boot.ini

Tambahkan baris ini pada akhir berkas:

C:\bootsect.lnx="Slackware Linux"

Simpan perubahan dan keluar dari editor. Ketika Anda reboot Windows NT, Anda akan mendapatkan opsi Linux pada menu. Memilihnya akan melakukan boot ke Linux.

Linux

Ya, orang-orang melakukan hal ini. Ini adalah skenario dual boot termudah. Anda bisa menggunakan LILO dan menambahkan lebih banyak pada berkas /etc/lilo.conf. Itulah semua yang harus dilakukan.

Shell

Dalam lingkungan grafis, antarmuka disediakan oleh sebuah program yang membuat jendela, scrollbar, menu, dll. Pada lingkungan teks, antarmuka disediakan oleh sebuah shell, yang bertugas untuk menginterpretasi perintah-perintah dan secara umum membuat segala sesuatu menjadi berguna. Segera setelah melakukan proses login (yang dibahas pada bab ini), pengguna ditempatkan pada sebuah shell dan diijinkan untuk menjalankan bisnisnya. Bab ini membahas tentang pengenalan pada shell, dan juga pada shell yang paling umum bagi pengguna Linux-- Bourne Again Shell (bash). Untuk informasi lebih detail tentang apapun pada bab ini, lihat halaman manual bash(1).

Pengguna

Login

Setelah Anda melakukan boot, dan Anda melihat sesuatu yang seperti ini:

Welcome to Linux 2.4.18
Last login: Wed Jan 1 15:59:14 -0500 2005 on tty6.
darkstar login:

Hmm.. tidak ada yang mengatakan tentang sebuah login. Dan apa itu darkstar? Jangan khawatir; Anda mungkin secara tidak sengaja menjalankan jalur komunikasi luar angkasa pada bulan artificial Kerajaan. (Saya takut protokol komunikasi luar angkasa tidak didukung pada kernel Linux. Mungkin versi 2.8 akan menyediakan dukungan ini). Tidak, darkstar hanyalah nama dari salah satu komputer kita, dan namanya dituliskan sebagai default. Jika Anda menyebutkan sebuah nama untuk komputer Anda selama proses setup, Anda akan melihatnya dan bukan darkstar.

Untuk login... Jika ini adalah yang pertama kalinya bagi Anda, Anda akan login sebagai root. Anda akan diminta sebuah kata sandi (password); Jika Anda menentukan sebuah password pada saat proses setup, itulah yang Anda cari. Jika tidak, cukup tekan enter. Hanya itu, Anda sudah masuk!

Perintah Baris

Menjalankan Program

Sangatlah susah untuk mendapatkan sesuatu tanpa menjalankan sebuah program; Anda mungkin dapat memperoleh sesuatu dengan komputer Anda atau menahan sebuah pintu yang terbuka, dan beberapa akan membuat suara ketika berlari, tetapi hanya itu. Dan saya berpendapat bahwa kita semua setuju bahwa penggunaannya sebagai penahan pintu tidak akan membawa popularitas komputer pribadi seperti yang sekarang kita alami sekarang.

Jadi, ingat bagaimana semua pada Linux adalah sebuah berkas? Hal tersebut berlaku juga untuk program. Setiap perintah yang Anda jalankan (yang tidak dibangun pada shell) tersimpan sebagai file pada suatu tempat. Anda menjalankan program cukup dengan menentukan path lengkapnya.

Sebagai contoh, ingat perintah su dari bab terakhir? Sebetulnya ia terletak pada direktori /bin: /bin/su akan menjalankannya dengan baik.

Lalu kenapa, hanya dengan mengetikkan su akan bekerja? Lagipula, Anda tidak mengatakan bahwa ia terletak pada /bin. Ia juga bisa terletak pada /usr/local/share, bukan? Bagaimana ia mengetahuinya? Jawabannya terletak pada PATH variabel lingkungan; sebagian besar shell memilikinya entah PATH atau sesuatu yang hampir sama dengan PATH. Secara umum hanya berisi daftar direktori yang harus dicari untuk menjalankan program Anda coba jalankan. Jadi ketika Anda menjalankan su, shell Anda mencari melalui daftar direktori tersebut, memeriksa setiap berkas yang dapat dieksekusi yang disebut su yang dapat dijalankan; yang pertama yang muncul, akan dijalankan. Hal ini terjadi ketika Anda menjalankan sebuah program tanpa menentukan path secara lengkap; jika Anda mendapatkan sebuah kesalahan ““Command not found””, itu hanya berarti bahwa program yang hendak Anda jalankan tidak berada pada PATH. (tentu saja, ini hanya akan benar jika program benar-benar tidak ada...) Kita akan membahas variabel lingkungan lebih dalam pada Bagian 8.3.1.

Ingat juga bahwa “.” adalah kependekan dari direktori aktual, sehingga jika Anda berada pada /bin, ./su akan bekerja sebagai path lengkap eksplisit.

Pencocokan Pola

Hampir semua shell mengenali beberapa karakter sebagai penggati atau abbreviasi yang berarti segalanya disini. Beberapa karakter disebut dengan wildcard; yang paling umum adalah * dan ?. Secara konvensi, ? biasanya sesuai dengan satu buah karakter. Sebagai contoh, misalnya Anda berada pada sebuah direktori dengan tiga buah berkas: ex1.txt, ex2.txt, dan ex3.txt. Anda hendak menyalin semua berkas tersebut (menggunakan perintah cp yang kita bahas pada Bagian 10.5.1) pada direktori lain, misalnya /tmp. Dengan mengetikkan cp ex1.txt ex2.txt ex3.txt /tmp maka cukup banyak pekerjaan yang harus dilakukan. Akan lebih mudah untuk mengetikkan cp ex?.txt /tmp; ? akan sesuai dengan setiap karakter “1”, “2”, dan “3”, dan setiap karakter akan disubstitusi.

Apa yang Anda katakan? Itu s masih terlalu banyak? Anda benar; kita memiliki hukum tenaga kerja untuk memproteksi kita dari hal-hal seperti itu. Untungnya, kita juga memiliki *. Seperti yang sudah disebutkan * akan sesuai dengan “sembarang karakter”, termasuk 0. Jadi jika ketiga berkas ini berada pada satu direktori, kita cukup menyebutkan cp * /tmp dan mendapatkannya semua dalam satu sapuan. Misalkan, jka terdapat sebuah berkas bernama ex.txt dan satu lagi bernama hejaz.txt. Kita ingin menyalin ex.txt tetapi tidak hejaz.txt; cp ex* /tmp akan melakukannya untuk kita.

cp ex?.txt /tmp, akan, tentu saja, hanya mengambil tiga berkas orisinal kita; tidak ada karakter pada ex.txt untuk disesuaikan dengan ?, sehingga akan ditinggalkan.

Wildcard umum lainnya adalah tanda kurung [ ]. Sembarang karakter yang ada didalam tanda tersebut akan digantikan pada [] untuk mencari sebuah kesesuaian. Membingungkan? Tidak separah itu. Misalkan, kita memiliki sebuah direktori yang berisi 8 berkas berikut: a1, a2, a3, a4, aA, aB, aC, dan aD . Kita hanya ingin mencari file yang diakhiri dengan angka; [ ] akan melakukannya untuk kita.

% ls a[1-4]
a1 a2 a3 a4

Tetapi apa yang benar-benar kita inginkan hanyalah a1, a2, dan a4? Pada contoh sebelumnya, kita menggunakan - untuk mengartikan semua nilai antara 1 dan 4. Kita juga bisa memisahkan daftar individu dengan koma.

% ls a[1,2,4]
a1 a2 a4

Saya tahu apa yang Anda pikirkan sekarang, “Bagaimana dengan huruf?” Linux bersifat case-sensitive, artinya a dan A adalah karakter yang berbeda dan hanya berhubungan pada pikiran Anda. Kapital selalu lebih awal dibandingkan huruf kecil, jadi A dan B lebih dahulu dibandingkan a dan b. Melanjutkan contoh kita sebelumnya, jika kita ingin berkas a1, dan A1, kita bisa menemukan dengan [ ].

% ls [A,a]1
A1 a1

Perhatikan, bahwa jika kita menyertakan sebuah tanda minus dan bukan koma, kita akan mendapatkan hasil yang tidak benar.

% ls [A-a]1
A1 B1 C1 D1 a1

Anda juga bisa mengkombinasikan antara minus dan koma.

% ls [A,a-d]
A1 a1 b1 c1 d1

Pengalihan Masukan/Keluaran dan Piping

(Ini adalah sesuatu yang menarik.)

% ps > blargh 

Anda tahu apa itu? Itu saya menjalankan ps untuk melihat proses apa saja yang sedang berjalan; ps dibahas pada Bagian 11.3. Itu bukan bagian yang menarik. Bagian menariknya adalah > blargh, yang berarti, secara kasar, ambil hasil keluaran dari ps dan tuliskan pada sebuah berkas bernama blargh. Tetapi tunggu, ini menjadi semakin menarik.

% ps | less 

Yang ini mengambil nilai keluaran dari ps dan mengirimkannya kepada less, sehingga saya bisa membacanya dengan santai.

% ps >> blargh 

Ini adalah pengalihan ketiga yang paling umum digunakan; ia melakukan hal yang sama dengan “>”, kecuali “>>” akan menambahkan hasil keluaran dari ps pada berkas blargh, jika berkas ada. Jika tidak, maka seperti “>”, berkas akan dibuat. (“>” akan menimpa isi dari blargh.)

Juga terdapat operator “<”, yang berarti ambil masukkan Anda dari berikut, tetapi jarang sekali digunakan.

% fromdos <> unixfile.txt 

Pengalihan menjadi menarik ketika Anda mulai menggabungkannya:

% ps | tac >> blargh 

Hal itu akan menjalankan ps, memutar baris dari hasil keluaran, dan menambahkannya pada berkas blargh. Anda bisa menumpuk sebanyak yang Anda inginkan; hanya berhati-hatilah untuk mengingat bahwa mereka akan diinterpretasi dari kiri ke kanan.

Lihat halaman manual bash(1) untuk informasi lebih detail tentang pengalihan.

Bourne Again Shell (bash)

Environment Variables

Sebuah sistem Linux adalah makluk yang sangat rumit, dan terdapat banyak catatan dari detail kecil yang turut berperan serta pada interaksi Anda dengan berbagai program (beberapa diantaranya mungkin tidak Anda sadari). Tidak ada orang yang ingin mengirimkan segudang opsi pada setiap komputer yang berjalan, memberitahukan terminal apa yang harus dikerjakan, nama host dari komputer, bagaimana tampilan sebuah prompt ...

Seperti mekanisme penyalinan, pengguna memiliki apa yang disebut sebuah lingkungan (environment). Lingkungan mendefinisikan kondisi dimana program berjalan, dan beberapa definisi ini adalah variabel; pengguna bisa mengubah dan bermain-main dengannya, sama seperti sistem Linux. Sebagian besar shell memiliki variabel lingkungan (jika tidak, mungkin itu bukan shell yang sangat berguna). Disini kita memberikan sebuah gambaran dari perintah yang disediakan oleh bash untuk memanipulasi variabel lingkungannya.

set dengan sendirinya akan menampilkan semua variabel lingkungan yang telah didefinisikan, beserta nilainya. Seperti perintah bash lainnya, perintah ini juga bisa melakukan hal-hal lain (dengan parameter); kita membiarkan halaman manual bash(1) untuk membahasnya. menunjukkan sebuah contoh dari sebuah perintah set yang dijalankan pada salah satu komputer penulis. Perhatikan pada contoh ini variabel PATH yang dibahas sebelumnya. Program-program pada sembarang direktori tersebut dapat dijalankan cukup dengan mengetikkan nama file dasarnya.

Contoh Daftar Variabel Lingkungan dengan set

% set
PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
PIPESTATUS=([0]="0")
PPID=4978
PS1='\h:\w\$ '
PS2='> '
PS4='+ '
PWD=/home/logan
QTDIR=/usr/local/lib/qt
REMOTEHOST=ninja.tdn
SHELL=/bin/bash
% unset VARIABLE 

unset akan menghapus semua variabel yang Anda berikan, membuang baik variabel dan nilainya; bash akan melupakan variabel tersebut. (Jangan khawatir. Kecuali sesuatu yang Anda tentukan secara eksplisit pada sesi shell, mungkin variabel tersebut akan didefinisikan ulang pada sesi lain.)

% export VARIABLE=some_value 

Sekarang, export sangatlah berguna. Dengan menggunakannya, Anda memberikan variabel lingkungan VARIABLE nilai “sembarang_nilai”; Jika VARIABLE tidak ada, maka sekarang ada. Jika VARIABLE sudah ada nilainya, nilai itu akan hilang. Itu tidak baik, jika Anda hanya mencoba menambahkan sebuah direktori pada PATH. Pada kasus ini, Anda mungkin hendak mencoba sesuatu seperti ini:

% export PATH=$PATH:/some/new/directory 

Perhatikan penggunaan $PATH: ketika Anda ingin agar bash menginterpretasikan sebuah variabel (ganti dengan nilainya), gunakan $ diawal sebuah nama variabel. Sebagai contoh, echo $PATH akan menampilkan nilai dari PATH, pada kasus saya:

% echo $PATH
/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin

Pelengkap Tab

(Ini muncul lagi sesuatu yang menarik.)

  1. Sebuah antarmuka berbasis teks berarti banyak mengetik.

  2. Mengetik adalah pekerjaan.

  3. Tidak ada orang yang suka pekerjaan.

Dari 3 dan 2, kita bisa menentukan bahwa (4) tidak ada orang yang suka mengetik. Sayangnya, bash menyelamatkan kita dari (5) (tidak ada orang yang menyukai antarmuka berbasis teks).

Bagaimana bash menyediakan fitur menarik ini, tanya Anda? Selain penambahan wildcard yang sudah kita bahas sebelumnya, bash menyediakan fitur pelengkap tab.

Pelengkap tab bekerja sebagai berikut: Anda mengetikkan sebuah nama berkas. Mungkin berada dalam PATH Anda, mungkin Anda menuliskannya secara eksplisit. Yang perlu Anda lakukan hanyalah mengetikkan nama berkas untuk mengidentifikasinya secara unik. Lalu tekan tombol tab. bash akan mencoba apa yang Anda inginkan dan menyelesaikan penulisannya untuk Anda!

Waktunya untuk contoh. /usr/src berisi dua sub direktori: /usr/src/linux dan /usr/src/sendmail. Saya ingin melihat apa yang berada pada /usr/src/linux. Sehingga saya cukup mengetikkan ls /usr/src/l, tekan kunci TAB, dan bash memberikan ls /usr/src/linux.

Sekarang, anggap terdapat dua sub direktori /usr/src/linux dan /usr/src/linux-old; Jika saya mengetikkan /usr/src/l dan menekan TAB, bash akan menemukan sebanyak yang ia bisa dan saya akan mendapatkan /usr/src/linux. Saya bisa berhenti disini, atau saya bisa menekan TAB lagi, dan bash akan menampilkan daftar direktori yang sesuai dengan apa sudah saya ketik sejauh ini.

Sehingga, pengetikan berkurang (dan akhirnya, orang-orang bisa menyukai antarmuka berbasis teks). Saya memberitahu Anda bahwa ini menarik.

Virtual Terminals

Jadi Anda sedang mengerjakan sesuatu dan Anda memutuskan bahwa Anda harus mengerjakan hal lain. Anda bisa saja menutup apa yang sudah Anda kerjakan dan berpindah ke tugas lain, tetapi ini adalah sistem dengan banyak pengguna bukan? Anda bisa login sebanyak mungkin semau Anda bukan? Jadi kenapa harus melakukan satu hal pada sebuah waktu yang bersamaan?

Anda tidak bisa melakukannya. Kita tidak bisa memiliki banyak keyboard, mouse, dan monitor untuk satu mesin; kemungkinannya adalah sebagian besar dari kita tidak menginginkannya. Jelas, perangkat keras bukanlah solusi. Hal itu meninggalkan kita pada perangkat lunak, dan Linux hadir untuk ini, dengan menyediakan “terminal virtual”, atau “VTs”.

Dengan menekan kunci Alt dan fungsi, Anda bisa berpindah diantara terminal virtual; setiap kunci fungsi berkorespondensi dengan yang lain. Slackware memiliki login pada 6 VT secara default. Alt+F2 akan membawa Anda pada yang kedua, Alt+F3 pada yang ketiga, dll.

Sisa dari kunci fungsi disimpan untuk sesi X. Setiap sesi X menggunakan VTnya masing-masing, dimulai dari yang ketujuh (Alt+F7) dan seterusnya. Ketika berada pada X, kombinasi Alt+kunci Fungsi digantikan dengan Ctrl+Alt+Fungsi; jadi ketika Anda berada pada X dan hendak kembali pada login text (tanpa harus keluar dari sesi X), Ctrl+Alt+F3 akan membawa Anda kembali ke yang ketiga. (Alt+F7 akan membawa Anda kembali, dengan asumsi Anda menggunakan sesi X pertama.)

Screen

Tetapi bagaimana dengan situasi dimana tidak terdapat terminal virtual? Lalu bagaimana? Untungnya, Slackware menyertakan sebuah manajer screen yang disebut screen. screen adalah emulator terminal yang memiliki kemampuan seperti terminal virtual. Menjalankan Executing screen mengaktifkan perkenalan singkat, lalu kembali ke terminal. Tidak seperti terminal virtual standar, screen memiliki perintahnya sendiri. Semua perintah screen diawali dengan sebuah penekanan Crtl+A. Misalnya, Ctrl+A+C akan membuat sebuah sesi terminal baru. Ctrl+A+N akan berpindah ke terminal selanjutnya. Ctrl+A+P berpindah ke terminal sebelumnya.

screen juga mendukung pelepasan dan penggabungan pada sesi screen yang berguna untuk sesi remote melalui ssh dan telnet, (lebih banyak tentang ini di akhir). Ctrl+A+D akan melepaskan diri dari screen yang berjalan. Mengeksekusi screen -r akan menampilkan semua sesi screen yang berjalan yang dapat Anda gabungkan.

% screen -r
There are several suitable screens on:
1212.pts-1.redtail (Detached)
1195.pts-1.redtail (Detached)
1225.pts-1.redtail (Detached)
17146.pts-1.sanctuary (Dead ???)
Remove dead screens with 'screen -wipe'.
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

Menjalankan screen -r 1212 akan menyatukan dengan screen pertama yang terdaftar. Saya menyebutkan betapa pentingnya hal ini untuk sesi remote. Jika saya login pada server remote Slackware melalui ssh, dan koneksi saya terganggu oleh beberapa hambatan, seperti listrik padam, apapun yang saya lakukan pada saat itu akan hilang, yang bisa jadi merupakan hal buruk bagi server Anda. Menggunakan screen mencegah hal ini dengan melepas sesi saya jika koneksi saya terputus. Setelah koneksi tersambung kembali, saya bisa menggabungkan ke sesi screen saya dan melanjutkan apa yang saya tinggalkan sebelumnya.