"aNAK !nFoRmAt!kA"
selamat datang semoga anda menikmati blog ini

Wi-Fi

Diposting oleh D!fkY AnAk !nF0RmAT!kA Rabu, 31 Maret 2010 0 komentar

WI-FI

Wi-Fi

merupakan kependekan dari Wireless Fidelity, yang memiliki pengertian yaitu sekumpulan standar yang digunakan untuk (Wireless Local Area Networks - WLAN) yang didasari pada spesifikasi IEEE 802.11. Standar terbaru dari spesifikasi 802.11a atau b, seperti 802.16 g, saat ini sedang dalam penyusunan, spesifikasi terbaru tersebut menawarkan banyak peningkatan mulai dari luas cakupan yang lebih jauh hingga kecepatan transfernya.

Jaringan tanpa kabel sebenarnya tidak sesulit sistem cable network bahkan lebih mudah. Sistem jaringan WIFI atau Wireless tidak memerlukan penghubung cable network antar computer. Bila jenis coax atau UTP cable memerlukan kabel sebagai media tranfer, dengan Wireless network hanya dibutuhkan ruang atau space dimana jarak jangkau network dibatasi kekuatan pancaran signal radio dari masing masing computer.

Keuntungan dari sistem WIFI , pemakai tidak dibatasi ruang gerak dan hanya dibatasi pada jarang jangkauan dari satu titik pemancar WIFI. Untuk jarak pada sistem WIFI mampu menjangkau area 100feet atau 30M radius. Selain itu dapat diperkuat dengan perangkat khusus seperti booster yang berfungsi sebagai relay yang mampu menjangkau ratusan bahkan beberapa kilometer ke satu arah (directional). Bahkan hardware terbaru, terdapat perangkat dimana satu perangkat Access Point dapat saling merelay (disebut bridge) kembali ke beberapa bagian atau titik sehingga memperjauh jarak jangkauan dan dapat disebar dibeberapa titik dalam suatu ruangan untuk menyatukan sebuah network LAN.

Sebelumnya, perlu diketahui bahwa ada 2 cara menghubungkan antar PC dengan sistem Wireless yaitu Adhoc dimana 1 PC terhubung dengan 1 PC dengan saling terhubung berdasarkan nama SSID (Service Set IDentifier). SSID sendiri tidak lain nama sebuah computer yang memiliki card, USB atau perangkat wireless dan masing masing perangkat harus diberikan sebuah nama tersendiri sebagai identitas.

Kedua jaringan paling umum dan lebih mudah saat ini dengan sistem Access point dengan bentuk PCI card atau sebuah unit hardware yang memiliki fungsi Access point untuk melakukan broadcast ke beberapa computer client pada jarak radius tertentu.

DIbawah ini menjelaskan bagaimana cara sebuah computer dapat saling terhubung dengan network wireless

Sistem Adhoc adalah sistem peer to peer, dalam arti satu computer dihubungkan ke 1 computer dengan saling mengenal SSID. Bila digambarkan mungkin lebih mudah membayangkan sistem direct connection dari 1 computer ke 1 computer lainnya dengan mengunakan Twist pair cable tanpa perangkat HUB.

Jadi terdapat 2 computer dengan perangkat WIFI dapat langsung berhubungan tanpa alat yang disebut access point mode. Pada sistem Adhoc tidak lagi mengenal sistem central (yang biasanya difungsikan pada Access Point). Sistem Adhoc hanya memerlukan 1 buah computer yang memiliki nama SSID atau sederhananya nama sebuah network pada sebuah card/computer.

Dapat juga mengunakan MAC address dengan sistem BSSID (Basic Service Set IDentifier - cara ini tidak umum digunakan), untuk mengenal sebuah nama computer secara langsung. Mac Address umumnya sudah diberikan tanda atau nomor khusus tersendiri dari masing masing card atau perangkat network termasuk network wireless. Sistem Adhoc menguntungkan untuk pemakaian sementara misalnya hubungan network antara 2 computer walaupun disekitarnya terdapat sebuah alat Access Point yang sedang bekerja.

SSID adalah nama sebuah network card atau USB card atau PCI card atau Router Wireless. SSID hanyalah sebuah nama untuk memberikan tanda dimana nama sebuah perangkat berada. BSSID adalah nama lain dari SSID, SSID diberikan oleh pemakai misalnya "pcsaya" pada computer yang sedang digunakan dan computer lainnya dibuatkan nama "pckamu". Sedangkan BSSID mengunakan basis MAC address. Jangan terlalu bingung dengan istilah baru tersebut. Bila sebuah koneksi wireless ingin saling berhubungan, keduanya harus mengunakan setup Adhoc. Bila disekitar ruangan terdapat perangkat Access Point, perlu diingatkan untuk mengubah band frekuensi agar tidak saling adu kuat signal yang memancar didalam suatu ruangan.

Adhoc diagram


Sistem kedua yang paling umum adalah Infra Structure. Sistem Infra Structure membutuhkan sebuah perangkat khusus atau dapat difungsikan sebagai Access point melalui software bila mengunakan jenis Wireless Network dengan perangkat PCI card.

Mirip seperti Hub Network yang menyatukan sebuah network tetapi didalam perangkat Access Point menandakan sebuah sebuah central network dengan memberikan signal (melakukan broadcast) radio untuk diterima oleh computer lain. Untuk mengambarkan koneksi pada Infra Structure dengan Access point minimal sebuah jaringan wireless network memiliki satu titik pada sebuah tempat dimana computer lain yang mencari menerima signal untuk masuknya kedalam network agar saling berhubungan. Sistem Access Point (AP) ini paling banyak digunakan karena setiap computer yang ingin terhubungan kedalam network dapat mendengar transmisi dari Access Point tersebut.

Access Point inilah yang memberikan tanda apakah disuatu tempat memiliki jaringan WIFI dan secara terus menerus mentransmisikan namanya - Service Set IDentifier (SSID) dan dapat diterima oleh computer lain untuk dikenal. Bedanya dengan HUB network cable, HUB mengunakan cable tetapi tidak memiliki nama (SSID). Sedangkan Access point tidak mengunakan cable network tetapi harus memiliki sebuah nama yaitu nama untuk SSID.

InfraStructure diagram


Keuntungan pada sistem access point (AP mode):

1.) Untuk sistem AP dengan melayani banyak PC tentu lebih mudah pengaturan dan computer client dapat mengetahui bahwa disuatu ruang ada sebuah hardware atau computer yang memancarkan signal Access Point untuk masuk kedalam sebuah network .
2.) Keuntungan kedua bila mengunakan hardware khusus, maka tidak diperlukan sebuah PC berjalan 24 jam untuk melayani network. Banyak hardware Access point yang yang dihubungkan ke sebuah hub atau sebuah jaringan LAN. Dan computer pemakai Wifi dapat masuk kedalam sebuah jaringan network.
3.) Dan sistem security pada model AP lebih terjamin. Read More......


Untuk fitur pengaman sebuah Hardware Access Point memiliki beberapa fitur seperti melakukan block IP, membatasi pemakai pada port dan lainnya.


Sebuah Access point baik berupa sebuah card WIFI yang ditancapkan pada slot computer atau jenis USB card dan lainnya dengan mengaktifkan fungsi Access point ataupun sebuah alat khusus Access point yang berdiri sendiri dengan antena dan adaptor power bisa difungsikan sebagai Bridge network, router (gateway).

Sistem Access point juga diterapkan pada sebuah layanan service. Misalnya layanan network disebuah terminal airport atau layanan khusus yang dibuat sebuah service provider untuk internet umumnya mengunakan sistem Adhoc. Pada sistem layanan tersebut biasanya pemakai Wifi harus login sesuai ketentuan yang diperlukan dari penyelangara service tersebut.

Contoh pada gambar dibawah ini. Setting tersebut digunakan oleh Windows dimana pemakai memilih apakah akan terkoneksi ke jaringan bebas misalnya layanan service internet dari sebuah service provider (ISP), atau untuk memasuki jaringan dari sebuah network atau melakukan hubungan dengan computer lain secara peer to peer.



Pemakai dapat memberikan sebuah nama untuk satu alata Access Point. Nama tersebut dikenal dengan Service Set IDentifier (SSID) atau nama sebuah network dan dipengaruhi oleh huruf besar kecil (case sensitive). Untuk batas memiliki panjang maksimum 32 karakter untuk sebuah nama SSID network. SSID nantinya akan dibawah sebagai nama dari gelombang frekuensi yang diterima oleh card WIFI lain agar dikenal keberadaannya oleh computer lain.

BIla digambarkan secara sederhana, misalnya sebuah computer dalam kondisi Access Point mode atau sebuah hardware diberikan nama "pcgue", maka bisa dibayangkan alat tersebut atau computer tersebut sedang berteriak dengan nama PCGUE , dan computer lain akan mengenal oh disana ada network WIFI dengan nama PCGUE sebagai nama SSID.

Untuk standard, dibawah ini adalah standard yang umum digunakan bagi indoor computer wireless network.

802.11a

Standard 802.11a, adalah model awal yang dibuat untuk umum. Mengunakan kecepatan 54Mbps dan dapat mentranfer data double dari tipe g dengan kemampuan bandwidth 72Mbps atau 108Mbps. Sayangnya sistem ini tidak terlalu standard, karena masing masing vendor atau pabrikan memberikan standard tersendiri. 802.11a mengunakan frekuensi tinggi pada 5Ghz sebenarnya sangat baik untuk kemampuan tranfer data besar. Tetapi 802.11a memiliki kendala pada harga , komponen lebih mahal ketika perangkat ini dibuat untuk publik dan jaraknya dengan frekuensi 5GHz konon lebih sulit menembus ruang untuk kantor. Pemilihan 5Ghz cukup beralasan, karena membuat pancaran signal frekuensi 802.11a jauh dari gangguan seperti oven microwave atau cordless phone pada 2GHz, tetapi frekuensi tinggi juga memberikan dampak pada daya jangkau relatif lebih pendek


802.11b

Sempat menjadi dominasi pemakaian tipe b. Standard 802.11b mengunakan frekuensi 2.4GHz. Standard ini sempat diterima oleh pemakai didunia dan masih bertahan sampai saat ini. Tetapi sistem b bekerja pada band yang cukup kacau, seperti gangguan pada Cordless dan frekuensi Microwave dapat saling menganggu bagi daya jangkaunya. Standard 802.11b hanya memiliki kemampuan tranmisi standard dengan 11Mbps atau rata rata 5MBbit/s yang dirasakan lambat, mendouble (turbo mode) kemampuan wireless selain lebih mahal tetapi tetap tidak mampu menandingi kemampuan tipe a dan g.


802.11g

Standard yang cukup kompatibel dengan tipe 802.11b dan memiliki kombinasi kemampuan tipe a dan b. Mengunakan frekuensi 2.4GHz mampu mentransmisi 54Mbps bahkan dapat mencapai 108Mbps bila terdapat inisial G atau turbo. Untuk hardware pendukung, 802.11g paling banyak dibuat oleh vendor. Secara teoritis mampu mentranfer data kurang lebih 20Mbit/s atau 4 kali lebih baik dari tipe b dan sedikit lebih lambat dari tipe a.Karena mengunakan carrier seperti tipe b dengan 2.4Ghz, untuk menghadapi gangguan frekuensi maka ditempatkan sistem OFDM


Secara teoritis perbandingan dapat dilihat pada tabel dibawah ini!



TechnologyKecepatan
Ethernet 10/100100Mbs
802.11b11Mbps
802.11a52/72 Mbps
PhoneLine 2.010Mbps
Gigabit Ethernet1000Mbps
802.11g/turbo22/54/108Mbps
Firewire400Mbps
Bluetooth1.5Mbps
HomeRF 2.010Mbps
PowerLine14Mbps


Karena sistem WIFI mengunakan transmisi frekuensi secara bebas, maka pancaran signal yang ditransmit pada unit WIFI dapat ditangkap oleh computer lain sesama pemakai Wifi. Tentu kita tidak seseorang masuk kedalam jaringan Network tanpa ijin. Pada teknologi WIFI ditambahkan juga sistem pengaman misalnya WEP (Wired Equivalent Privacy) untuk pengaman sehingga antar computer yang telah memiliki otorisasi dapat saling berbicara.

Pengamanan sistem Wireless Network dibagi dapat dilakukan dengan beberapa cara. Untuk pemakaian umum dibagi atas NonSecure dan Share Key (secure)

Non Secure / Open: Pertama no-security atau tanpa pengaman dimana computer yang memiliki WIFI dapat mendengar transmisi sebuah pancaran WIFI dan langsung masuk kedalam network.

Share Key :adalah alternatif untuk pemakaian kunci atau password. Untuk contoh, bila sebuah network mengunakan WEP

Ketentuan Security WEP dibagi 2 yaitu 40/64-bit -10 Hex character (weak security) dan 104/128-bit - 26 Hex character (a bit better security). Mengunakan sistem WEP sangat mudah, setiap computer yang mentransmisi signal WIFI atas keberadaan sebuah network atau computer yang mengetahui adanya sebuah network dengan WIFI harus memiliki WEP yang sama. Caranya cukup mengaktifkan sistem WIFI pada option program Windows dengan Prefered Network yang sama.

Misalnya sebuah computer memasang kunci security "abcde" atau urutan HEX , maka computer yang akan masuk kedalam jaringan harus memasukan huruf "abcde" atau tanda dalam format HEX untuk kunci yang sama.

Sistem WEP biasanya diaktifkan bila sistem network dari WIFI memerlukan pengamanan dan tidak menghendaki sembarang computer masuk tanpa ijin. Dengan kata lain code dari WEP adalah kunci masuk computer pada sistem network yang memiliki pengaman. 1 karakter memiliki 8 bit dan 1 hex mengunakan 4 bit. 40/64 bit ascII untuk WEP diartikan 5 karakter atau 10 HEX (number karakter =rahas) sedangkan 128bit ascII diartikan 13 karakter atau 26 HEX (number karakter = contoh 0x3d4e872a / harus dimulai dengan 0 dan huruf kecil). Bila mengunakan kombinasi pada sistem Encrypt, beberapa hardware memiliki perbedaan pada kemampuan 64 bit dan 128 bit atau hanya memiliki sistem encrypt 64 bit saja

Hal kecil yang sering terlupakan ketika mencoba mengkoneksi. Pemilihan band untuk Wireless network, untuk satu network gunakan band yang sama. Pemilihan Band frekuensi sebenarnya dapat dibuat secara otomatis oleh hardware tetapi ada baiknya mengenal dari fungsi Band dimana sebuah Wireless Network perlu mengunakan band yang sama. Bila anda mengunakan Wireless network dan ingin saling berhubungan, jangan lupa memilih band frekuensi yang sama sebelum pusing karena sebuah computer tidak dapat saling berhubungan karena lupa memilih band frekuensi.

Apa saja yang perlu di Install pada koneksi Wireless untuk masing masing client. Pada gambar bawah adalah komponen yang digunakan untuk computer dapat saling berhubungan. Cara ini sangat mendasar dan sama penerapannya pada koneksi network dengan cable UTP. Seandainya saja computer anda tidak dapat saling berhubungan, coba periksa bagian dibawah ini. Dan gunakan Setup Network Wizard untuk

menginstall system network dari Windows XP
:


Konfigurasi Access Point Linksys WRT54G

Diposting oleh D!fkY AnAk !nF0RmAT!kA 0 komentar

Konfigurasi Access Point Linksys WRT54G

Linksys http://www.linksys.com adalah salah satu pembuat WiFi ter-favorit di dunia. Dalam contoh ini digunakan WRT54G Wireless-G Broadband Router. Perlu di catat bahwa AP Linksys ini adalah sebuah router.

Sebagai sebuah router mempunyai banyak fasilitas seperti kemampuan routing, firewall, DCHP. Pada dasarnya kita dapat menggantikan sebagian besar fungsi gateway Linux dengan sebuah Linksys.

Linksys WRT54G dapat dikonfigurasi melalui interface Web dengan alamat default 192.168.1.1 (jika tidak di ubah).

Halaman pertama adalah setup page. Melalui setup page ini kita dapat mengkonfigurasi time zone, konfigurasi Internet connection, konfigurasi LAN, dan konfigurasi wireless.

Ada beberapa tipe sambungan yang mungkin pada konfigurasi Internet Connection, seperti, menggunakan IP statik atau IP automatic / IP dynamic melalui DHCP server di ISP. Tampak pada gambar digunakan IP statik pada sambungan Internet.

Konfigurasi LAN cukup sederhana, yang perlu kita lakukan adalah menset IP address dan subnetmasknya saja.

Konfigurasi wireless tidak berbeda jauh dengan konfigurasi Access Point biasa. Kita perlu menset channel dan ESSID dari peralatan. Untuk mengamankan Access Point, kita dapat mendisable ESSID broadcast sehingga hanya mereka yang tahu tentang Access Point kita yang dapat mengakses-nya. Wired Equivalent Privacy (WEP) dapat di aktifkan pada titik ini.

Halaman selanjutnya adalah security page, kita dapat mengkonfigurasi beberapa parameter berkaitan dengan keamanan, seperti, administrator password, tipe dari Virtual Private Network (VPN) traffic yang di ijinkan, konfigurasi dari De-Militarized Zone (DMZ) juga firewall sekala kecil.

System page adalah halaman selanjutnya dari Interface Web Linksys WRT54G. Kita dapat meninggalkan proses konfigurasi system ini. Kita perlu menggunakan fasilitas ini kita kita ingin mengupgrade firmware, mengubah Maximum Transmission Unit (MTU) dari Interface, dan mengaktifkan / me-non-aktifkan agar paket multicast dapat lewat.

Halaman selanjutnya adalah DHCP Server page. Pada Linksys WRT54G Access Point telah tersedia DHCP server. Jika kita ingin mengaktifkan DHCP server, kita perlu memberikan range dari IP address yang dialokasikan untuk workstation yang tersambung, dan DNS server bagi workstation di jaringan.

Kita dapat melihat semua status dari konfigurasi yang ada pada Status Page.

Pada halaman Advances Wireless configuration Page, kita dapat mengkonfigurasi parameter wireless yang lebih advance, seperti, RTS Threshold dan Fragmentation Threshold untuk beroperasi pada jaringan yang congested, interval beacon untuk broadcasting ESSID dari Access Point, kecepatan data pada Wireless LAN.

Dalam bagian Advance Setting page, kita dapat mengaktifkan tabel MAC Filtering. MAC Filtering dapat digunakan untuk membatasi akses agar hanya workstation / node yang kita ketahui MAC address-nya saja yang dapat mengakses Access Point.

Tabel MAC relative sederhana, dan dapat di isi dengan memasukan MAC address client yang di ijinkan untuk mengakses.


Setting Modem ADSL Linksys

Diposting oleh D!fkY AnAk !nF0RmAT!kA 0 komentar

Setting Modem ADSL Linksys

1. Pastikan semua kabel sudah menancap dengan benar, line telepon, kabel power, dan gunakan kabel UTP (bawaan) untuk menghubungkan antara komputer dan modem. Kabel UTP pada modem bisa ditancapkan di port yang mana saja (ada 4 port).
2. Nyalakan modem, nyalakan komputer, buka Internet Browser (bisa pakai Internet Explorer, Mozilla Firefox, dll). Untuk kali ini, kita gunakan Internet Explorer (IE). Untuk browser lain, langkah-langkahnya sama.
3. Ketikkan pada address bar: 192.168.1.1



4. Akan ada windows baru yang terbuka, isikan: username: admin, password: admin, tekan ok

5. Halaman Basic Setup akan terbuka. Ubah nilai item-item sbb:
- Encapsulation : RFC 2516 PPPoE
- Multiplexing : LLC
- QoS type: UBR
- Autodetect: disable
- Virtual circuit: 0 VPI, 35 VCI
- DSL Modulation: Multimode
- Username: masukkan 12 digit nomor speedy anda diikuti dengan @telkom.net, contoh: 152415200015@telkom.net
- Password: masukkan password yang anda dapat dari telkom. Perhatikan besar kecilnya huruf, jika anda salah input, akan gagal.
- Pilih Connect on demand (koneksi aktif jika diperlukan) atau Keep alive (koneksi aktif terus menerus)
- Scroll layar kebawah, tekan save setting.

6. Masuk ke menu Wireless -> Wireless security, masukkan password yang Anda inginkan (minimal 8 karakter), tekan save setting.

7. Selesai! Anda bisa menutup semua aplikasi dan restart komputer Anda. Wireless juga siap digunakan. Jika diminta memasukkan password, masukkan 8 karakter yang Anda input tadi.

TPLINK 54MB MODEM ADSL2 + WIRELESS ROUTER (TD-W8901G) 4PORT 802.11g

TPLINK 54MB MODEM ADSL2 + WIRELESS ROUTER (TD-W8901G) 4PORT 802.11g


Product Information Informasi Produk
Key Features: Fitur Utama:

  • 3-in-1: ADSL2+ modem,4-port Ethernet router and wireless G access point 3-in-1: ADSL2 + modem ,4-port Ethernet router dan jalur akses nirkabel G
  • Latest ADSL standards for superior performance: up to 24Mbps downstream ADSL terbaru standar kinerja superior: sampai 24Mbps hilir
  • Various QoS policies enable various application, meeting people?fs different needs Berbagai kebijakan QoS memungkinkan berbagai aplikasi, bertemu orang-orang? Fs kebutuhan yang berbeda
  • 3-in-1: ADSL2+ modem?C4-port Ethernet router and wireless G access point 3-in-1: ADSL2 + modem? C4-port Ethernet router dan jalur akses nirkabel G
  • Easily share ADSL connection with all office or home computers?Cwired or wirelessly Mudah berbagi koneksi ADSL dengan semua komputer rumah atau kantor? Cwired atau secara nirkabel
  • Triple Active Firewalls: SPI, NAT and Packet Filter Triple Aktif Firewall: SPI, NAT dan Packet Filter
  • QoS prioritization based on ToS, DSCP, service type or 802.1p Berdasarkan prioritas QoS ToS, DSCP, jenis layanan atau 802.1p
  • Supports DHCP, Universal Plug-and-Play (UPnP), and includes a user-friendly Setup Wizard which takes you through configuring your network, step by step Supports DHCP, Universal Plug-and-Play (UPnP), dan termasuk user-friendly Setup Wizard yang membawa Anda melalui mengkonfigurasi jaringan anda, langkah demi langkah
  • Administer and Upgrade the Router Remotely over the Internet Mengelola dan Upgrade Router Remotely melalui Internet

    More Information Lebih Lanjut

    TD-W8901G 54M Wireless ADSL2+ Router is designed to provide a simple and cost-effective ADSL Internet connection for a private Ethernet or 802.11g/802.11b wireless network. TD-W8901G 54M Wireless ADSL2 + Router ini dirancang untuk memberikan yang sederhana dan efektif biaya koneksi Internet ADSL untuk pribadi 802.11g/802.11b Ethernet atau jaringan nirkabel.

    The Router is easy to use. Router ini mudah digunakan. The TD-W8901G connects to an Ethernet LAN or computers via standard Ethernet ports. The TD-W8901G tersambung ke Ethernet LAN atau komputer melalui port Ethernet standar. The ADSL connection is made using ordinary telephone line with standard connectors. Koneksi ADSL dibuat menggunakan saluran telepon biasa dengan konektor standar. Multiple workstations can be networked and connected to the Internet using a single Wide Area Network (WAN) interface and single global IP address. Beberapa workstation jaringan dan dapat terhubung ke Internet menggunakan satu Wide Area Network (WAN) interface dan satu alamat IP global. The advanced security enhancements, IP/MAC Filter, Application Filter and URL Filter can help to protect your network from potentially devastating intrusions by malicious agents from the outside of your network. Lanjutan peningkatan keamanan, IP / MAC Filter, Filter dan Aplikasi Filter URL dapat membantu untuk melindungi jaringan Anda dari berpotensi berbahaya penyusupan oleh agen-agen dari luar jaringan Anda.

    ADSL ADSL
    The TD-W8901G supports full-rate ADSL2+ connectivity conforming to the ITU and ANSI specifications. The TD-W8901G mendukung penuh tingkat ADSL2 + konektivitas menyesuaikan dengan spesifikasi ITU, dan ANSI. In addition to the basic DMT physical layer functions, the ADSL2+ PHY supports dual latency ADSL2+ framing (fast and interleaved) and the I.432 ATM Physical Layer. Selain DMT dasar lapisan fisik fungsi tersebut, ADSL2 + PHY mendukung dual latency ADSL2 + membingkai (cepat dan interleaved) dan I.432 ATM Physical Layer.

    Wireless Wireless
    In the most attentive wireless security, the Router provides multiple protection measures. Dalam nirkabel yang paling penuh perhatian keamanan, Router menyediakan beberapa tindakan perlindungan. It can be set to turn off the wireless network name (SSID) broadcast so that only stations that have the SSID can be connected. Ini dapat ditetapkan untuk menonaktifkan nama jaringan nirkabel (SSID) broadcast sehingga hanya stasiun yang memiliki SSID yang dapat terhubung. The Router provides wireless LAN 64/128-bit WEP encryption security, WPA-PSK/WPA2-PSK authentication, as well as TKIP/AES encryption security. Router LAN nirkabel menyediakan keamanan enkripsi WEP 64/128-bit, WPA-PSK/WPA2-PSK otentikasi, serta TKIP / AES enkripsi keamanan.

    Specifications: Spesifikasi:

    ADSL Features ADSL Fitur
    Full-rate ANSI T1.413 Issue 2 Full-rate ANSI T1.413 Issue 2
    ITU-T G.992.1 (G.dmt) ITU-T G.992.1 (G.dmt)
    ITU-T G.992.2 (G.lite) ITU-T G.992.2 (G.lite)
    ITU-T G.994.1 (G.hs) ITU-T G.994.1 (G.hs)
    ITU-T G.992.3 (G.dmt.bis) ITU-T G.992.3 (G.dmt.bis)
    ITU-T G.992.4 (G.lite.bis) ITU-T G.992.4 (G.lite.bis)
    ITU-T G.992.5 ITU-T G.992.5
    Max 6 kilometers Max 6 kilometer

    Data Rates Data Rates
    Downstream: Up to 24Mbps Downstream: Up to 24Mbps
    Upstream: Up to 3.5Mbps (With Annex M enabled) Hulu: Up to 3.5Mbps (Dengan Lampiran M diaktifkan)

    ATM Features ATM Fitur
    UNI 3.1/4.0?CATM Adaptation Layer Type 5-AAL5 UNI 3.1/4.0? CATM Adaptation Layer Type 5-AAL5
    Multiprotocol encapsulation over ATM (RFC 1483) Multi enkapsulasi atas ATM (RFC 1483)
    UBR, CBR, VBR-rt, VBR-nrt UBR, CBR, VBR-rt, VBR-nrt
    Supports 8PVCs Mendukung 8PVCs

    PPP Features PPP Fitur
    PPP over ATM (RFC 2364) PPP over ATM (RFC 2364)
    PPP over Ethernet (RFC 2516) PPP over Ethernet (RFC 2516)

    Switching Features Switching Fitur
    IGMP snooping IGMP mengintai
    IGMP multicast IGMP multicast
    Port VLAN Port VLAN
    Tag VLAN Tag VLAN
    IEEE 802.1d transparent learning bridging IEEE 802.1d transparan menjembatani pembelajaran

    Routing Features Fitur routing
    Classical IP and ARP over ATM (RFC 1577/2225), MER, RIP V1/V2 Klasik IP dan ARP atas ATM (RFC 1577/2225), REM, RIP V1/V2
    Static routing, IP, TCP, UDP, ARP Static routing, IP, TCP, UDP, ARP
    NAT, NAPT, DNS, DDNS, DHCP Server NAT, NAPT, DNS, DDNS, DHCP Server
    UPnP, Virtual Server, DMZ UPnP, Virtual Server, DMZ
    SIP, H323 ALG SIP, H323 ALG

    Wireless Features Fitur nirkabel
    Complies with IEEE 802.11g, IEEE802.11b Complies with IEEE 802.11g, IEEE802.11b
    Supports 54/48/36/24/18/12/9/6Mbps or 11/5.5/3/2/1Mbps data transfer rates 54/48/36/24/18/12/9/6Mbps atau 11/5.5/3/2/1Mbps mendukung kecepatan transfer data
    Provides WPA/WPA2 and WPA-PSK/WPA2-PSK authentication and TKIP/AES encryption security Menyediakan WPA/WPA2 dan WPA-PSK/WPA2-PSK otentikasi dan TKIP / AES keamanan enkripsi
    Provides 64/128-bit WEP encryption security and wireless LAN ACL (Access Control List) Menyediakan keamanan enkripsi WEP 64/128-bit dan wireless LAN ACL (Access Control List)
    Wireless operating range: Indoor up to100m, Outdoor up to 300m Wireless operating range: Indoor up to100m, Outdoor up to 300m

    Max wireless transmit power Max daya transmisi nirkabel
    17dbm 17dbm

    Antenna power Kekuatan antena
    5dbi 5dBi

    Security Keamanan
    Stateful Packet Inspection (SPI) Stateful Packet Inspection (SPI)
    NAT NAT
    Packet Filter Packet Filter

    VPN Pass Through VPN Pass Through
    IPSec/PPTP/L2TP Pass-through IPSec/PPTP/L2TP Pass-through

    QoS QoS
    IP Type of service(ToS) Jenis layanan IP (ToS)
    802.1p 802.1p

    Device Management Device Management
    HTTP, TELNET, Console HTTP, TELNET, Console
    Administration and operation software (firmware) upgradable locally by WEB, TFTP, FTP, Console Administrasi dan operasi perangkat lunak (firmware) diupgrade secara lokal oleh WEB, TFTP, FTP, Console
    SNMP V1/V2 SNMP V1/V2
    CWMP(TR-069) CWMP (TR-069)

    Ports Ports
    4 10/100M Auto-Negotiation RJ45 ports(Auto MDI/MDIX) 4 10/100M Auto-Negotiation RJ45 port (Auto MDI / MDIX)
    1 RJ11 port 1 RJ11 port

    LED Indicators Indikator LED
    Power, System, ADSL, WLAN, LAN1~4 Power, System, ADSL, WLAN, LAN1 ~ 4

    Dimensions (W*D*H) Dimensions (W * D * H)
    7.9*5.5*1.1 in.(200*140*28 mm) 7,9 * 5,5 * 1,1 in (200 * 140 * 28 mm)

    Operating Humidity Kelembaban Operasional
    10%~90% non-condensing 10% ~ 90% non-kondensasi

    Storage Humidity Kelembaban Penyimpanan
    5%~90% non-condensing 5% ~ 90% non-kondensasi

  • Pengantar Pemrograman Bash Shell di Linux

    Diposting oleh D!fkY AnAk !nF0RmAT!kA 0 komentar

    Pengantar Pemrograman Bash Shell di Linux


    1. Pendahuluan

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

    Macam - macam shell?

    Tidak seperti sistem operasi lain yang hanya menyediakan satu atau 2 shell, sistem operasi dari keluarga unix misalnya linux sampai saat ini dilengkapi oleh banyak shell dengan kumpulan perintah yang sangat banyak, sehingga memungkinkan pemakai memilih shell mana yang paling baik untuk membantu menyelesaikan pekerjaannya, atau dapat pula berpindah-pindah dari shell yang satu ke shell yang lain dengan mudah, beberapa shell yang ada di linux antara lain:
    • Bourne shell(sh),
    • C shell(csh),
    • Korn shell(ksh),
    • Bourne again shell(bash),
    • dsb.
    Masing - masing shell mempunyai kelebihan dan kekurangan yang mungkin lebih didasarkan pada kebutuhan pemakai yang makin hari makin meningkat, untuk dokumentasi ini shell yang digunakan adalah bash shell dari GNU, yang merupakan pengembangan dari Bourne shell dan mengambil beberapa feature (keistimewaan) dari C shell serta Korn shell, Bash shell merupakan shell yang cukup banyak digunakan pemakai linux karena kemudahan serta banyaknya fasilitas perintah yang disediakan.versi bash shell yang saya gunakan adalah 2.04
    [fajar@linux$]echo $BASH_VERSION
    bash 2.04.12(1)-release
    Mungkin saat anda membaca dokumentasi ini versi terbaru dari bash sudah dirilis dengan penambahan feature yang lain.

    2. Pemrograman Shell ?

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

    3. Kebutuhan Dasar

    Sebelum mempelajari pemrograman Bash shell di linux sebaiknya anda telah mengetahui dan menggunakan perintah - perintah dasar shell baik itu internal command yang telah disediakan shell maupun eksternal command atau utility, seperti
    • cd, pwd, times, alias, umask, exit, logout, fg, bg, ls, mkdir, rmdir, mv, cp, rm, clear, ...
    • utilitas seperti cat, cut, paste, chmod, lpr,...
    • redirection (cara mengirim output ke file atau menerima input dari file), menggunakan operator redirect >, >>, <, <<, contohnya: ls > data
      hasil ls dikirim ke file data, jika file belum ada akan dibuat tetapi jika sudah ada isinya akan ditimpa.
      ls >> data
      hampir sama, bedanya jika file sudah ada maka isinya akan ditambah di akhir file.
      cat <>
      file data dijadikan input oleh perintah cat
    • pipa (output suatu perintah menjadi input perintah lain), operatornya : | , contoh: ls -l | sort -s
      ouput perintah ls -l (long) menjadi input perintah sort -s (urutkan secara descending), mending pake ls -l -r saja :-)
      ls -l | sort -s | more
      cat databaru
    • Wildcard dengan karakter *, ?, [ ], contohnya: ls i*
      tampilkan semua file yang dimulai dengan i
      ls i?i
      tampilkan file yang dimulai dengan i, kemudian sembarang karakter tunggal, dan diakhiri dengan i
      ls [ab]*
      tampilkan file yang dimulai dengan salah satu karakter a atau b

    4. Simple Bash Script

    Langkah awal sebaiknya periksa dulu shell aktif anda, gunakan perintah ps (report process status)
    [fajar@linux$]ps
    PID TTY TIME CMD
    219 tty1 00:00:00 bash
    301 tty1 00:00:00 ps
    bash adalah shell aktif di system saya, jika disystem anda berbeda misalnya csh atau ksh ubahlah dengan perintah change shell
    [fajar@linux$]chsh
    Password:
    New shell [/bin/csh]:/bin/bash
    Shell changed
    atau dengan mengetikkan bash
    [fajar@linux$]bash
    sekarang coba anda ketikkan perintah dibawah ini pada prompt shell
    echo "Script shell pertamaku di linux"
    [fajar@linux$]echo "Script shell pertamaku di linux"
    Script shell pertamaku di linux
    string yang diapit tanda kutip ganda (double quoted) akan ditampilkan pada layar anda, echo adalah statement (perintah) built-in bash yang berfungsi menampilkan informasi ke standard output yang defaultnya adalah layar. jika diinginkan mengulangi proses tersebut, anda akan mengetikkan kembali perintah tadi, tapi dengan fasilitas history cukup menggunakan tombol panah kita sudah dapat mengulangi perintah tersebut, bagaimana jika berupa kumpulan perintah yang cukup banyak, tentunya dengan fasilitas hirtory kita akan kerepotan juga mengulangi perintah yang diinginkan apalagi jika selang beberapa waktu mungkin perintah-perintah tadi sudah tertimpa oleh perintah lain karena history mempunyai kapasitas penyimpanan yang ditentukan. untuk itulah sebaiknya perintah-perintah tsb disimpan ke sebuah file yang dapat kita panggil kapanpun diinginkan.
    coba ikuti langkah - langkah berikut:
    1. Masuk ke editor anda, apakah memakai vi,pico,emacs,dsb...
    2. ketikkan perintah berikut
      #!/bin/bash
      echo "Hello, apa khabar"
    3. simpan dengan nama file tes
    4. ubah permission file tes menggunakan chmod
      [fajar@linux$]chmod 755 tes
    5. jalankan
      [fajar@linux$]./tes
    kapan saja anda mau mengeksekusinya tinggal memanggil file tes tersebut, jika diinginkan mengeset direktory kerja anda sehingga terdaftar pada search path ketikkan perintah berikut
    PATH=$PATH:.
    setelah itu script diatas dapat dijalankan dengan cara
    [fajar@linux$]tes
    Hello, apa khabar
    tanda #! pada /bin/bash dalam script tes adalah perintah yang diterjemahkan ke kernel linux untuk mengeksekusi path yang disertakan dalam hal ini program bash pada direktory /bin, sebenarnya tanpa mengikutkan baris tersebut anda tetap dapat mengeksekusi script bash, dengan catatan bash adalah shell aktif. atau dengan mengetikkan bash pada prompt shell.
    [fajar@linux$]bash tes
    tentunya cara ini kurang efisien, menyertakan path program bash diawal script kemudian merubah permission file sehingga dapat anda execusi merupakan cara yang paling efisien.
    Sekarang coba kita membuat script shell yang menampilkan informasi berikut:

    1. Waktu system
    2. Info tentang anda
    3. jumlah pemakai yang sedang login di system
    contoh scriptnya:
    #!/bin/bash
    #myinfo

    #membersihkan tampilan layar
    clear

    #menampilkan informasi
    echo -n "Waktu system :"; date
    echo -n "Anda :"; whoami
    echo -n "Banyak pemakai :"; who | wc -l
    sebelum dijalankan jangan lupa untuk merubah permission file myinfo sehingga dapat dieksekusi oleh anda
    [fajar@linux$]chmod 755 myinfo
    [fajar@linux$]./myinfo
    Waktu system : Sat Nov 25 22:57:15 BORT 2001
    Anda : fajar
    Banyak pemakai : 2
    tentunya layout diatas akan disesuaikan dengan system yang anda gunakan statement echo dengan opsi -n akan membuat posisi kursor untuk tidak berpindah ke baris baru karena secara default statement echo akan mengakhiri proses pencetakan ke standar output dengan karakter baris baru (newline), anda boleh mencoba tanpa menggunakan opsi -n, dan lihat perbedaannya. opsi lain yang dapat digunakan adalah -e (enable), memungkinkan penggunaan backslash karakter atau karakter sekuen seperti pada bahasa C atau perl, misalkan :

    echo -e "\abunyikan bell"
    jika dijalankan akan mengeluarkan bunyi bell, informasi opsi pada statement echo dan backslash karakter selengkapnya dapat dilihat via man di prompt shell.
    [fajar@linux$]man echo

    5. Pemakaian Variabel

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

    5.1. Environment Variable

    atau variabel lingkungan yang digunakan khusus oleh shell atau system linux kita untuk proses kerja system seperti variabel PS1, PS2, HOME, PATH, USER, SHELL,dsb...jika digunakan akan berdampak pada system, misalkan variabel PS1 yang digunakan untuk mengeset prompt shell pertama yaitu prompt tempat anda mengetikkan perintah - perintah shell (defaultnya "\s-\v\$"), PS2 untuk prompt pelengkap perintah, prompt ini akan ditampilkan jika perintah yang dimasukkan dianggap belum lengkap oleh shell (defaultnya ">"). anda dapat mengeset PS1 dan PS2 seperti berikut.
    simpan dahulu isi PS1 asli system anda, sehingga nanti dapat dengan mudah dikembalikan
    [fajar@linux$]PS1LAMA=$PS1
    sekarang masukkan string yang diinginkan pada variabel PS1
    [fajar@linux$]PS1="Hi ini Promptku!"
    Hi ini Promptku!PS2="Lengkapi dong ? "
    maka prompt pertama dan kedua akan berubah, untuk mengembalikan PS1 anda ke prompt semula ketikkan perintah
    [fajar@linux$]PS1=$PS1LAMA
    Jika anda ingin mengkonfigurasi prompt shell, bash telah menyediakan beberapa backslash karakter diantaranya adalah:
    \a ASCII bell character (07)
    \d date dengan format "Weekday Month Date" (misalnya "Tue May 26")
    \e ASCII escape character (033)
    \H hostname (namahost)
    \n newline (karakter baru)
    \w Direktory aktif
    \t time dalam 24 jam dengan format HH:MM:SS
    dll man bash:-)
    contoh pemakaiannya:
    [fajar@linux$]PS1="[\t][\u@\h:\w]\$"
    agar prompt shell hasil konfigurasi anda dapat tetap berlaku (permanen) sisipkan pada file .bashrc atau .profile

    5.2. Positional Parameter

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

    echo $1 adalah salah satu $2 populer di $3
    Hasilnya
    [fajar@linux$]./argumen1 bash shell linux
    bash adalah salah satu shell populer di linux
    ada 3 argumen yang disertakan pada script argumen1 yaitu bash, shell, linux, masing2 argumen akan disimpan pada variabel 1,2,3 sesuai posisinya. variabel spesial lain yang dapat digunakan diperlihatkan pada script berikut:
    #!/bin/bash
    #argumen2

    clear
    echo "Nama script anda : $0";
    echo "Banyak argumen : $#";
    echo "Argumennya adalah: $*";
    Hasilnya:
    [fajar@linux$]./argumen 1 2 3 empat
    Nama script anda : ./argumen
    Banyak argumen : 4
    Argumennya adalah : 1 2 3 empat

    5.3. User Defined Variable

    atau variabel yang didefinisikan sendiri oleh pembuat script sesuai dengan kebutuhannya, beberapa hal yang perlu diperhatikan dalam mendefenisikan variabel adalah:
    • dimulai dengan huruf atau underscore
    • hindari pemakaian spesial karakter seperti *,$,#,dll...
    • bash bersifat case sensitive, maksudnya membedakan huruf besar dan kecil, a berbeda dengan A, nama berbeda dengan Nama,NaMa,dsb..
    untuk mengeset nilai variabel gunakan operator assignment (pemberi nilai)"=", contohnya :
    myos="linux"        #double-quoted
    nama='pinguin' #single-quoted
    hasil=`ls -l`; #back-quoted
    angka=12
    kalau anda perhatikan ada 3 tanda kutip yang kita gunakan untuk memberikan nilai string ke suatu variabel, adapun perbedaannya adalah:
    • dengan kutip ganda (double-quoted), bash mengizinkan kita untuk menyisipkan variabel di dalamnya. contohnya:
      #!/bin/bash

      nama="pinguin"
      kata="Hi $nama, apa khabarmu" #menyisipkan variabel nama
      echo $kata;
      Hasilnya:
      Hi pinguin, apa khabarmu
    • dengan kutip tunggal (single-quoted), akan ditampilkan apa adanya. contohnya:
      #!/bin/bash

      nama="pinguin"
      kata='Hi $nama, apa khabarmu' #menyisipkan variabel nama
      echo $kata;
      Hasilnya:
      Hi $nama, apa khabarmu
    • dengan kutip terbalik (double-quoted), bash menerjemahkan sebagai perintah yang akan dieksekusi, contohnya:
      #!/bin/bash

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

      #hapus layar
      echo $hapus

      #ls -l
      echo $isi;
      Hasilnya: silahkan dicoba sendiri
    Untuk lebih jelasnya lihat contoh berikut:
    #!/bin/bash
    #varuse

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

    clear
    echo -e "Hi $nama,\npake $OS\nDistribusi, $distro\nkomputernya, $pc buah"
    echo "Hasil ls -l $0 adalah =$hasil"
    Hasilnya:
    [fajar@linux$]./varuse
    Hi fajar,
    pake linux Distribusi, macam-macam, bisa slackware,redhat,mandrake,debian,suse,dll
    komputernya, 1 buah
    Hasil ls -l ./varuse adalah -rwxr-xr-x 1 fajar users 299 Nov 21 06:24 ./varuse
    untuk operasi matematika ada 3 cara yang dapat anda gunakan, dengan statement builtin let atau expr atau perintah subtitusi seperti contoh berikut:
    #!/bin/bash
    #mat1

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

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

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

    echo "$a+$b=$jumlah"
    echo "$a-$b=$kurang"
    echo "$a*$b=$kali"
    echo "$a/$b=$bagi"
    echo "$a%$b=$mod"
    Hasilnya:
    [fajar@linux$]./mat1
    10+5=15
    10-5=5
    10*5=50
    10/5=2
    10%5=0
    fungsi expr begitu berdaya guna baik untuk operasi matematika ataupun string contohnya:
    [fajar@linux$]mystr="linux"
    [fajar@linux$]expr length $mystr
    5
    Mungkin anda bertanya - tanya, apakah bisa variabel yang akan digunakan dideklarasikan secara eksplisit dengan tipe data tertentu?, mungkin seperti C atau pascal, untuk hal ini oleh Bash disediakan statement declare dengan opsi -i hanya untuk data integer (bilangan bulat). Contohnya:
    #!/bin/bash

    declare -i angka
    angka=100;
    echo $angka;
    apabila variabel yang dideklarasikan menggunakan declare -iternyata anda beri nilai string (karakter), maka Bash akan mengubahnya ke nilai 0, tetapi jika anda tidak menggunakannya maka dianggap sebagai string.

    6. Simple I/O

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

    6.1 Output dengan printf

    #!/bin/bash
    #pr1

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

    printf "Hi, Pake printf ala C\n\t\a di bash\n";
    printf "My url %s\n %d decimal = %o octal\n" $url $angka $angka;
    printf "%d decimal dalam float = %.2f\n" $angka $angka
    Hasilnya:
    [fajar@linux$]./pr1
    Hi, Pake printf ala C
    di bash
    My url pemula.linux.or.id
    32 decimal = 40 octal
    32 decimal dalam float = 32.00
    untuk menggunakan format kontrol sertakan simbol %, bash akan mensubtitusikan format tsb dengan isi variabel yang berada di posisi kanan sesuai dengan urutannya jika lebih dari satu variabel, \n \t \a adalah karakter sekuen lepas newline,tab, dan bell,
    Format control keterangan
    %d untuk format data integer
    %o octal
    %f float atau decimal
    %x Hexadecimal
    pada script diatas %.2f akan mencetak 2 angka dibelakang koma, defaultnya 6 angka, informasi lebih lanjut dapat dilihat via man printf

    6.2 Input dengan read

    Setelah echo dan printf untuk proses output telah anda ketahui, sekarang kita menggunakan statement read yang cukup ampuh untuk membaca atau menerima masukan dari input standar
    syntax :
    read -opsi [nama_variabel...]
    berikut contoh scriptnya:
    #!/bin/bash
    #rd1

    echo -n "Nama anda :"
    read nama;

    echo "Hi $nama, apa khabarmu";
    echo "Pesan dan kesan :";
    read
    echo "kata $nama, $REPLY";
    Hasilnya:
    [fajar@linux$]./rd1
    Nama anda : pinguin
    Hi pinguin, apa khabarmu
    Pesan & kesan :
    pake linux pasti asyk - asyk aja
    kata pinguin, pake linux pasti asyk - asyk aja
    jika nama_variabel tidak disertakan, maka data yang diinput akan disimpan di variabel REPLY contoh lain read menggunakan opsi
    -t(TIMEOUT), -p (PROMPT), -s(SILENT), -n (NCHAR) dan -d(DELIM)
    #!/bin/bash

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

    echo "User = $user"
    echo "Password = $pass"
    echo "Kesan selama pake linux = $kesan"
    Hasilnya: silahkan dicoba sendiri :-)
    Opsi Keterangan
    -p memungkinkan kita membuat prompt sebagai informasi pengisian
    -s membuat input yang dimasukkan tidak di echo ke layar (seperti layaknya password di linux)
    -n menentukan banyak karakter yang diinput
    -d menentukan karakter pembatas masukan
    informasi secara lengkap lihat man bash

    6.3. Output dengan konstanta ANSI

    6.3.1. Pengaturan Warna

    Untuk pewarnaan tampilan dilayar anda dapat menggunakan konstanta ANSI (salah satu badan nasional amerika yang mengurus standarisasi).
    syntaxnya:
    \033[warnam
    Dimana:
    m menandakan setting color
    contohnya:
    [fajar@linux$]echo -e "\033[31m HELLO\033[0m"
    HELLO
    konstanta 31m adalah warna merah dan 0m untuk mengembalikan ke warna normal (none), tentunya konstanta warna ansi ini dapat dimasukkan ke variabel PS1 untuk mengatur tampilan prompt shell anda, contohnya:
    [fajar@linux$]PS1="\033[34m"
    [fajar@linux$]
    berikut daftar warna yang dapat anda gunakan:
    foreground
    None 0m
    Black 0;30 Dark Gray 1;30
    Red 0;31 Light Red 1;31
    Green 0;32 Light Green 1;32
    Brown 0;33 Yellow 1;33
    Blue 0;34 Light Blue 1;34
    Purple 0;35 Light Purple 1;35
    Cyan 0;36 Light Cyan 1;36
    Light Gray 0;37 White 1;37
    background
    dimulai dengan 40 untuk BLACK,41 RED,dst
    lain-lain
    4 underscore,5 blink, 7 inverse
    tentunya untuk mendapatkan tampilan yang menarik anda dapat menggabungkannya antara foreground dan background
    [fajar@linux$]echo -e "\033[31;1;33m Bash and ansi color\033[0m"
    Bash and ansi color

    6.3.2 Pengaturan posisi kursor

    sedangkan untuk penempatan posisi kursor, dapat digunakan salah satu cara dibawah.
    • Menentukan posisi baris dan kolom kursor:
      \033[baris;kolomH
    • Pindahkan kursor keatas N baris:
      \033[NA
    • Pindahkan kursor kebawah N baris:
      \033[NB
    • Pindahkan kursor kedepan N kolom:
      \033[NC
    • Pindahkan kursor kebelakang N kolom:
      \033[ND
    Contohnya:
    #!/bin/bash

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

    Menggunakan utulity tput untuk penempatan posisi kursor

    kita dapat pula mengatur penempatan posisi kursor di layar dengan memanfaatkan utility tput,
    syntaxnya:
    tput cup baris kolom
    contohnya:
    #!/bin/bash

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

    7. Seleksi dan Perulangan

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

    7.1 test dan operator

    test adalah utility sh shell yang berguna untuk memeriksa informasi tentang suatu file dan berguna untuk melakukan perbandingan suatu nilai baik string ataupun numerik
    syntaxnya: test ekspresi
    proses kerja test yaitu dengan mengembalikan sebuah informasi status yang dapat bernilai 0 (benar) atau 1 (salah) dimana nilai status ini dapat dibaca pada variabel spesial $?.
    [fajar@linux$]test 5 -gt 3
    [fajar@linux$]echo $?
    0
    pernyataan 5 -gt (lebih besar dari) 3 yang dievaluasi test menghasilkan 0 pada variabel status $? itu artinya pernyataan tersebut benar tetapi coba anda evaluasi dengan expresi berikut

    [fajar@linux$]test 3 -lt 1
    [fajar@linux$]echo $?
    1
    status bernilai 1, berarti pernyataan salah.
    anda lihat simbol -gt dan -lt, itulah yang disebut sebagai operator, secara sederhana operator adalah karakter khusus (spesial) yang melakukan operasi terhadap sejumlah operand, misalkan 2+3, "+" adalah operator sedangkan 2 dan 3 adalah operandnya, pada contoh test tadi yang bertindak sebagai oparatornya adalah -lt dan -gt, sedangkan bilangan disebelah kiri dan kanannya adalah operand. cukup banyak operator yang disediakan bash antara lain:

    7.1.1. Operator untuk integer

    Operator Keterangan
    bil1 -eq bil2 Mengembalikan Benar jika bil1 sama dengan bil2
    bil1 -ne bil2 -||- Benar jika bil1 tidak sama dengan bil2
    bil1 -lt bil2 -||- Benar jika bil1 lebih kecil dari bil2
    bil1 -le bil2 -||- Benar jika bil1 lebih kecil atau sama dengan bil2
    bil1 -gt bil2 -||- Benar jika bil1 lebih besar dari bil2
    bil1 -ge bil2 -||- Benar jika bil1 lebih besar atau sama dengan bil2

    7.1.2. Operasi string

    Operator Keterangan
    -z STRING Mengembalikan Benar jika panjang STRING adalah zero
    STRING1 == STRING2 -||- Benar jika STRING1 sama dengan STRING2

    7.1.3 Operator file

    Operator Keterangan
    -f FILE Mengembalikan Benar jika FILE ada dan merupakan file biasa
    -d FILE -||- Benar jika FILE ada dan meruapakan direktory

    7.1.3 Operator logika

    ekspr1 -o ekspr2 Benar jika jika salah satu ekspresi benar (or,||)
    ekspr1 -a ekspr2 Benar jika ekspresi1 dan ekspresi2 benar (and,&&)
    ! ekspresi Mengembalikan Benar jika ekspresi tidak benar (not!)
    untuk informasi lebih lengkap man bash atau info bash di prompt shell anda.

    7.2. Seleksi

    7.2.1 if

    Statement builtin if berfungsi untuk melakukan seleksi berdasarkan suatu kondisi tertentu
    syntax:
    if test-command1;
    then
    perintah1;
    elif test-command2;
    then
    perintah2;
    else
    alternatif_perintah;
    fi
    contoh script if1:
    #!/bin/bash
    #if1

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

    echo "Nama script anda : $0";
    echo "Banyak argumen : $#";
    echo "Argumennya adalah: $*";
    Hasilnya:
    [fajar@linux$]./if1

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

    kunci="bash";
    read -s -p "Password anda : " pass
    if [ $pass==$kunci ]; then
    echo "Sukses, anda layak dapat linux"
    else
    echo "Wah sorry, gagal nih";
    fi
    Hasilnya
    [fajar@linux$]./if2
    Password anda : bash
    Sukses, anda layak dapat linux
    [fajar@linux$]./if2
    Password anda : Bash
    Wah sorry, gagal nih
    klausa else akan dieksekusi jika if tidak terpenuhi, sebaliknya jika if terpenuhi maka else tidak akan dieksekusi
    contoh script if3: penyeleksian dengan kondisi majemuk
    #!/bin/bash

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

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

    echo "Harga bayar = Rp. $bayar"
    echo "THX"
    Hasilnya:
    [fajar@linux$]./if3
    MENU HARI INI
    -------------
    1. Bakso
    2. Gado-Gado
    3. Exit
    Pilihan anda :2

    Banyak porsi = 2

    Harga bayar = Rp. 4000
    THX

    7.2.2. statement builtin case

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

    case WORD in [ [(] PATTERN [| PATTERN]...) COMMAND-LIST ;;]...
    esac
    contoh script cs1
    #!/bin/bash

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

    case $binatang in
    pinguin | ayam | burung ) echo "$binatang berkaki 2"
    break
    ;;
    onta | kuda | anjing ) echo "$binatang berkaki 4"
    break
    ;;
    *) echo "$binatang blom didaftarkan"
    break
    ;;
    esac
    Hasilnya:
    [fajar@linux$]./cs1
    Masukkan nama binatang : pinguin
    pinguin berkaki 2

    7.3. Perulangan

    7.3.1. statement for

    syntax:
    for NAME [in WORDS ...]; do perintah; done
    contoh script for1
    #!/bin/bash

    for angka in 1 2 3 4 5;
    do
    echo "angka=$angka";
    done
    Hasilnya:
    [fajar@linux$]./for1
    angka=1
    angka=2
    angka=3
    angka=4
    angka=5
    contoh script for2 berikut akan membaca argumen yang disertakan waktu script dijalankan
    #!/bin/bash

    for var
    do
    echo $var
    done
    Hasilnya:
    [fajar@linux$]./for2 satu 2 tiga
    satu
    2
    tiga
    atau variasi seperti berikut
    #!/bin/bash

    for var in `cat /etc/passwd`
    do
    echo $var
    done
    Hasilnya: hasil dari perintah cat terhadap file /etc/passwd disimpan ke var dan ditampilkan menggunakan echo $var ke layar, mendingan gunakan cat /etc/passwd saja biar efisien. :-)

    7.3.2. statement while

    selama kondisi bernilai benar atau zero perintah dalam blok while akan diulang terus
    syntax:
    while KONDISI; do perintah; done;
    contoh script wh1 mencetak bilangan ganjil antara 1-10
    #!/bin/bash

    i=1;
    while [ $i -le 10 ];
    do
    echo "$i,";
    let i=$i+2;
    done
    Hasilnya:
    [fajar@linux$]./wh1
    1,3,5,7,9,
    kondisi tidak terpenuhi pada saat nilai i=11 (9+2), sehingga perintah dalam blokwhile tidak dieksekusi lagi
    contoh script wh2 akan menghitung banyak bilangan genap dan ganjil yang ada.
    #!/bin/bash

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

    echo -n "Batas loop :";
    read batas

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

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

    echo
    echo "banyak bilangan genap = $bil_genap";
    echo "banyak bilangan ganjil = $bil_ganjil";
    Hasilnya:
    [fajar@linux$]./wh2
    Batas loop : 10
    0,1,2,3,4,5,6,7,8,9,10,
    banyak bilangan genap = 6
    banyak bilangan ganjil = 5
    untuk mengetahui apakah nilai i berupa bilangan genap kita cukup menggunakan operasi matematika % (mod), jika nilai i dibagi 2 menghasilkan sisa 0 berarti i adalah bilangan genap (semua bilangan genap yang dibagi dengan 2 mempunyai sisa 0) maka pencacah (bil_genap) dinaikkan 1, selain itu i bilangan ganjil yang dicatat oleh pencacah bil_ganjilproses ini dilakukan terus selama nilai i lebih kecil atau samadengan nilai batas yang dimasukkan. script juga akan memeriksa dahulu nilai batas yang dimasukkan apabila kosong atau lebih kecil dari 0 maka proses segera berakhir.tentunya dengan statement while kita sudah dapat membuat perulangan pada script kedai diatas agar dapat digunakan terus-menerus selama operator masih ingin melakukan proses perhitungan. lihat contoh berikut:
    #!/bin/bash
    #kedai

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

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

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

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

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

    7.3.3. statement until

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

    i=1;
    until [ $i -gt 10 ];
    do
    echo $i;
    let i=$i+1
    done
    Hasilnya:
    [fajar@linux$]./ut
    1,2,3,4,5,6,7,8,9,10,
    perhatikan kodisi until yang salah [ $i -gt 10], dimana nilai awal i=1 dan akan berhenti apabila nilai i = 11 (bernilai benar) 11 -gt 10.

    7.3.4. statement select

    selectberguna untuk pembuatan layout berbentuk menu pilihan, anda lihat contoh script pembuatan menu diatas kita hanya melakukannya dengan echo secara satu persatu, dengan select akan terlihat lebih efisien.
    syntax:
    select varname in (&ltitem list>); do perintah; done
    sewaktu dijalankan bash akan menampilkan daftar menu yang diambil dari item list, serta akan menampilkan prompt yang menunggu masukan dari keyboard, masukan tersebut oleh bash disimpan di variabel builtin REPLY, apabila daftar item list tidak dituliskan maka bash akan mengambil item list dari parameter posisi sewaktu script dijalankan. lebih jelasnya lihat contoh berikut:
    #!/bin/bash
    #menu1

    clear
    select menu
    do
    echo "Anda memilih $REPLY yaitu $menu"
    done
    Hasilnya:
    layout:
    [fajar@linux$]./menu1 Slackware Redhat Mandrake
    1) Slackware
    2) Redhat
    3) Mandrake
    #? 1
    Anda memilih 1 yaitu Slackware
    karena item list tidak disertakan dalam script, maka sewaktu script dijalankan kita menyertakan item list sebagai parameter posisi, coba gunakan statement select pada program kedai diatas.
    #!/bin/bash
    #kedai

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

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

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

    8. Array

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

    buah=(Melon,Apel,Durian);
    echo ${buah[*]};
    Hasilnya:
    [fajar@linux$]./array1.
    Melon,Apel,Durian
    anda lihat bahwa membuat tipe array di Bash begitu mudah, secara otomatis array buah diciptakan dan string Melon menempati index pertama dari array buah, perlu diketahui bahwa array di Bash dimulai dari index 0, jadi array buah mempunyai struktur seperti berikut:
    buah[0] berisi Melon
    buah[1] berisi Apel
    buah[2] berisi Durian
    0,1,2 adalah index array, berarti ada 3 elemen pada array buah, untuk menampilkan isi semua elemen array gunakan perintah subtitusi seperti pada contoh diatas, dengan index berisi "*" atau "@". dengan adanya index array tentunya kita dapat mengisi array perindexnya dan menampilkan isi array sesuai dengan index yang diinginkan. anda lihat contoh berikut:
    #!/bin/bash
    #array2

    bulan[0]=31
    bulan[1]=28
    bulan[2]=31
    bulan[3]=30
    bulan[4]=31
    bulan[5]=30
    bulan[6]=31
    bulan[7]=31
    bulan[8]=30
    bulan[9]=31
    bulan[10]=30
    bulan[11]=31
    echo "Banyak hari dalam bulan November adalah ${bulan[10]} hari"
    Hasilnya:
    [fajar@linux$]./array2
    Banyak hari dalam bulan November adalah 30 hari
    sebenarnya kita dapat mendeklarasikan array secara eksplisit menggunakan statement declare
    contohnya:
    declare -a myarray
    mendeklarasikan variabel myarray sebagai array dengan opsi -a, kemudian anda sudah dapat memberinya nilai baik untuk semua elemen atau hanya elemen tertentu saja dengan perulangan yang telah kita pelajari pengisian elemen array dapat lebih dipermudah, lihat contoh :
    #!/bin/bash
    #array3

    #deklarasikan variabel array
    declare -a angka

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

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

    #destroy array angka (memory yang dipakai dibebaskan kembali)
    unset angka
    Hasilnya:
    [fajar@linux$]./array3
    0 2 4 6 8

    9. Subrutin atau Fungsi

    merupakan bagian script atau program yang berisi kumpulan beberapa statement yang melaksanakan tugas tertentu. dengan subrutin kode script kita tentunya lebih sederhana dan terstruktur, karena sekali fungsi telah dibuat dan berhasil maka akan dapat digunakan kapan saja kita inginkan. beberapa hal mengenai fungsi ini adalah:
    • Memungkinkan kita menyusun kode script ke dalam bentuk modul-modul kecil yang lebih efisien dengan tugasnya masing-masing.
    • Mencegah penulisan kode yang berulang - ulang.
    untuk membuat subrutin shell telah menyediakan keyword function seperti pada bahasa C, akan tetapi ini bersifat optional (artinya boleh digunakan boleh tidak).
    syntax:
    function nama_fungsi() { perintah; }
    nama_fungsi adalah pengenal (identifier) yang aturan penamaannya sama seperti pemberian nama variabel, setelah fungsi dideklarasikan atau dibuat anda dapat memaggilnya dengan menyebutkan nama fungsinya. lebih jelasnya lihat contoh script fungsi1 berikut:
    #!/bin/bash

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


    #panggil fungsi
    say_hello;

    #panggil sekali lagi
    say_hello;
    Hasilnya:
    [fajar@linux$]./fungsi1
    Hello, apa khabar

    Hello, apa khabar
    jika keyword function disertakan maka kita boleh tidak menggunakan tanda kurung (), tetapi jika keyword function tidak disertakan maka tanda kurung harus digunakan, lihat contoh berikut:
    #!/bin/bash

    function say_hello{
    echo "Hello,apa khabar"
    }

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


    #panggil fungsi say_hello
    say_hello;

    #panggil fungsi balas
    balas;
    Hasilnya:
    [fajar@linux$]./fungsi2
    Hello, apa khabar
    Baik-baik saja
    Bagaimana dengan anda ?

    9.1. Mengirim argumen sebagai parameter ke fungsi

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

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

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

    #panggil fungsi dan kirim isi variabel nama ke fungsi untuk dicetak
    hello $nama;
    Hasilnya:
    [fajar@linux$]./fungsi3
    Nama anda : pinguin
    Hello pinguin, apa khabar
    lihat fungsi hello, sebelum mencetak pesan kita melakukan pemeriksaan dengan if terhadap parameter posisi $1 apabila kosong maka pesan "Hello, apa khabar anda" yang akan ditampilkan, tetapi jika ada string yang kita input maka string tersebut akan dicetak di dalam blok else pada fungsi. argumen pertama diteruskan ke variabel 1, argumen kedua pada variabel 2, dst.. jika argumen yang dikirim lebih dari satu.

    9.2. Cakupan Variabel

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

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

    a=2;
    proses();
    proses $a
    Hasilnya:
    Isi variabel a=2
    Isi variabel a=2
    coba anda tambahkan local a pada fungsi proses menjadi
    proses(){
    local a;
    echo -e "a didalam fungsi, a=$a";
    }


    a=10;
    proses()

    echo "a diluar fungsi, a=$a"
    proses $a
    Hasilnya:
    a didalam fungsi, a=
    a diluar fungsi, a=10
    a didalam fungsi a=
    nah jelas perbedaannya jika mendeklarasikan variabel memakai keyword local menyebabkan variabel tersebut hanya berlaku pada fungsi yang mendekalarasikannya. pada contoh dalam fungsi proses variabel a dideklarasikan sebagai variabel local dan tidak diberi nilai.
    Diakhir dokumentasi ini saya menyertakan contoh script sederhana untuk melakukan entry data-data KPLI (Kelompok Pencinta Linux Indonesia) dan menyimpannya ke sebuah file. perintah-perintah shell dan beberapa utility yang digunakan adalah:
    • apa yang telah anda pelajari diatas
    • utility test, touch
    • operator redirection ">>" untuk menambah data
    • sleep, grep (global regular expression parser), cut, cat, | (pipa), sort dan more
    • tput untuk menempatkan cursor pada koordinat tertentu (baris kolom)
    sebagai latihan silahkan mengembangkan sendiri script dibawah ini:
    #!/bin/bash
    #------------------------------------------------------------------
    #(C) Moh.fajar Makassar 2001, contoh script buat para linuxer
    #file ini adalah public domain, silahkan mendistribusikan kembali
    #atau mengubahnya asalkan anda mengikuti aturan - aturan dari GPL
    #

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

    }

    entry()
    {

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

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


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


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

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

    }

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


    #block utama

    data="mydata"

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

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

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

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

    banner

    www.freecodescript.com
    Free Code Script

    Mengenai Saya

    Foto saya
    asyik rame dan pokok nya masih banyak lagi deh

    Pengikut

    Welcome to My Website