Sabtu, 21 November 2009

Konsep Real Time Sistem

Pengertian Real Time System

Pengertian dasar dari Real Time System adalah suatu sistem yang harus memenuhi suatu batasan waktu tertentu, sehingga apabila system tersebut tidak bisa memenuhi batasan waktu tersebut maka akan menimbulkan beberapa kerusakan ataupun dapat mengakibatkan kegagalan dari system tersebut.
Ada terdapat pengertian lain yang disampaikan secara berbeda tetapi intinya tetap sama yaitu suatu sistem dikatakan Real Time bila memenuhi apabila memenuhi 2 aspek yaitu:

1. Benar dalam aspek Logical

Artinya suatu system akan memberikan respon yang benar secara logika, contohnya apabila suatu pesawat akan mendarat maka pesawat akan menurunkan roda untuk pendaratan, hal ini jelas benar secara logika, apabila tidak dikeluarkan bisa dibayangkan akibatnya.

2. Benar dalam aspek Temporal

Artinya suatu system memberikan respon yang benar dilihat dari aspek waktu respon itu dilakukan. Sebagai lanjutan contoh dari aspek logika tadi yang dapat menggambarkan suatu system Real Time : pesawat yang akan mendarat secara logika akan mengeluarkan roda pendaratannya, tetapi harus juga benar dalam aspek temporal, artinya timing pengeluaran roda juga harus tepat, system pengendali pesawat tidak boleh terlambat dalam mengeluarkan roda, roda harus dikeluarkan dalam batasan waktu tertentu (time-constraint), jika tidak dapat menimbulkan kerusakan ataupun bencana .

Asal-muasal batasan (deadlines)

Batasan atau sering disebut dengan deadlines, dapat timbul dari kebutuhan internal system dan juga ekseternal system.

1. Internal

Kebutuhan internal merupakan kebutuhan yang berasal dari dalam system sendiri, sebagai contoh suatu mesin ATM yang membutuhkan proses transaksi yang singkat, mungkin kebutuhan dari system adalah proses transaksi dilakukan maksumal dalam waktu kita misalkan 100 milisecond, maka proses transaksi harus dilakukan dibawah waktu 100 milisecond tadi jika tidak maka proses transaksi akan gagal.

2. Eksternal

Merupakan kebutuhan yang berasal dari luar system , sebagai contohnya adalah kebutuhan dari pengguna mesin ATM sebagai pengguna system ATM tersebut, kita misalkan seseorang mempunyai batasan toleransi waktu keluarnya uang dari mesin ATM setelah proses transaksi pengambilan uang dilakukan adalah 5 detik, maka sistem ATM harus dapat memenuhi batasan waktu tersebut sebab apabila tidak maka tentunya akan menimbulkan keluhan dari pelanggan, dan mungkin akan lebih memilih menggunakan mesin ATM bank lain ataupun dapat juga berakibat yang lebih fatal yaitu berpindah kepada bank lain yang memiliki pelayanan yang lebih baik.
Jenis-jenis Real Time System Berdasarkan performansi dari Real Time Sistem ada 3 jenis Real Time System yang dikenal :

1. Hard Real Time

Sistem dibatasi dengan suatu batasan yang sangat tegas sehingga apabila sistem tidak memenuhi batasa tersebut maka sistem akan failure, performansi sistem adalah nol artinya sistem akan menghasilkan keluaran yang sama sekali tidak berguna.

Hard Real Time dapat digambarkan dalam grafik berikut :

Contoh :
dalam kehidupan sehari-hari adalah pada sistem pengontrol pesawat terbang. Dalam hal ini, keterlambatan sama sekali tidak boleh terjadi,karena dapat berakibat tidak terkontrolnya pesawat terbang. Nyawa penumpang yang ada dalam pesawat tergantung dari sistem ini, karena jika sistem pengontrol tidak dapat merespon tepat waktu, maka dapat menyebabkan kecelakaan yang merenggut korban jiwa.

2. Soft Real Time

Sistem dibatasi oleh suatu batasan yang tegas tetapi apabila batasan tersebut dilanggar , maka tidak langsung berakibat fatal tetapi akan mengakibatkan penurunan performansi dari system yang semakin menurun seiring dengan waktu yang berjalan , sampai suatu batasan waktu tertentu lalu performansi system akan benar-benar tidak ada. Soft Real Time digambarkan dalam grafik berikut :

Contoh
penerapan sistem ini dalam kehidupan sehari-hari adalah pada alat penjual/pelayan otomatis. Jika mesin yang menggunakan sistem ini telah lama digunakan, maka mesin tersebut dapat mengalami penurunan kualitas,misalnya waktu pelayanannya menjadi lebih lambat dibandingkan ketika masih baru. Keterlambatan pada sistem ini tidak menyebabkan kecelakaan atau akibat fatal lainnya, melainkan hanya menyebabkan kerugian keuangan saja. Jika pelayanan mesin menjadi lambat, maka para pengguna dapat saja merasa tidak puas dan akhirnya dapat menurunkan pendapatan pemilik mesin.Setelah batas waktu yang diberikan telah habis, pada sistem hard realtime,aplikasi yang dijalankan langsung dihentikan. Akan tetapi, pada sistem softreal-time, aplikasi yang telah habis masa waktu pengerjaan tugasnya,dihentikan secara bertahap atau dengan kata lain masih diberikan toleransiwaktu.Mengimplementasikan fungsi soft real-time membutuhkan design yang hati-hati dan aspek yang berkaitan dengan sistem operasi. Pertama,sistem harus punya prioritas penjadualan, dan proses real-time harus memiliki prioritas tertinggi, tidak melampaui waktu, walaupun prioritas non real-time dapat terjadi.Kedua, dispatch latency harus lebih kecil. Semakin kecil latency, semakin cepat real-time proses mengeksekusi.Untuk menjaga dispatch tetap rendah, kita butuh agar system call untuk preemptible. Ada beberapa cara untuk mencapai tujuan ini. Pertama adalah dengan memasukkan preemption points di durasi system call yang lama, yang memeriksa apakah prioritas utama butuh untuk dieksekusi. Jika sudah, maka contex switch mengambil alih, ketika high priority proses selesai, proses yang diinterupsi meneruskan dengan system call. Points premption dapat diganti hanya di lokasi yang aman di kernel dimana kernel struktur tidak dapat dimodifikasi.
Metoda yang lain adalah dengan membuat semua kernel preemptible.Karena operasi yang benar dapat dijamin, semua struktur data kernel harus diproteksi dengan mekanisme sinkronisasi. Dengan metode ini, kernel dapat selalu di preemptible, karena setiap data kernel yang sedang di update diproteksi dengan pemberian prioritas yang tinggi. Jika ada proses dengan prioritas tinggi ingin membaca atau memodifikasi data kernel yang sedang dijalankan, prioritas yang tinggi harus menunggu sampai proses dengan prioritas rendah tersebut selesai. Situasi seperti ini dikenal dengan priority inversion. Kenyataanya, serangkaian proses dapat saja mengakses sumber daya yang sedang dibutuhkan oleh proses yang lebih tinggi prioritasnya. Masalah ini dapat diatasi dengan priority-inheritance protocol, yaitu semua proses yang sedang mengakses sumber daya mendapat prioritas tinggi sampai selesai menggunakan sumber daya. Setelah selesai, prioritas proses inidikembalikan menjadi seperti semula.

3. Firm Real Time
Firm Real Time dibatasi dengan batasan yang sama seperti pada Hard Real Time, bedanya system masih diberikan toleransi beberapa kali jika tidak dapat memenuhi batasan tersebut, tetapi bila melewati dari jumlah toleransi yang telah diberikan maka system akan failure.
Contoh: mungkin dapat lebih mudah dipahami pada kasus perkuliahan, yaitu bila dosen mengeluarkan suatu peraturan bahwa mahasiswa boleh tidak masuk dalam pertemuan di kelas maksimal sebanyak 5 kali (toleransi), tetapi apabila melebihi dari 5 kali maka mahasiswa yang bersangkutan akan langsung mendapatkan nilai E, waduh sedih sekali ya ;

Main goal RTS Engineering

Dalam Real Time Engineering tujuan utamanya adalah untuk menemukan cara agar Hard Real Time dapat diubah menjadi Firm Real Time dan Firm Real Time dapat diubah menjadi Soft Real Time.

Event dan Task

Jenis event dan task akan mempengaruhi tingkat kesulitan suatu Sistem Real Time dalam memenuhi deadlines yang ada.

Event yang dimaksudkan di sini adalah kemingkinan kejadian yang terjadi pada saat suatu proses dilaksanakan :

1. Synchronous : yaitu event yang terjadi pada waktu yang dapat diprediksi pada flow-of-control
Flow-of-control dapat kita gambarkan sebagai diagram alur normal dari suatu proses, contohnya adalah sebagai berikut :

Synchronous event akan terjadi sesuai dengan prediksi yang ada pada flow-of-control sehingga dapat dengan mudah ditangani .

2. Asynchronous : event yang terjadi pada waktu yang tidak bisa diprediksi dan berada di luar flow-of-control yang ada sehingga penangannnya biasanya lebih sulit dibandingkn dengan event synchronous.
Tasks merupakan proses-proses yang dieksekusi dalam sistem, berdasarkan kemungkinan kedatangannya terbagi atas beberapa kelas yaitu:

1. Periodic: task datang secara periodik atau berulang ulang setelah beberapa interval waktu tertentu.
2. Aperiodic: task datang tidak secara periodik atau tidak memiliki pola interval waktu untuk terjadi kembali.
3. Sporadic: merupakan tast yang lebih sulit lagi diprediksi kedatangannya karena terjadi secara aperiodic dan tidak sering.

Konsekuensi dari suatu task tidak dapat ditangani dapat berakibat :
1. Kritikal : dapat menimbulkan kerusakan yang besar
2. Non-kritikal : hanya berdampak kecil bagi sitstem
Jika dihubungkan dengan jenis Real Time System maka dapat digambarkan tingkat kepentingan suatu task sebagai berikut :

Sehingga terdapat suatu task yang sifatnya kritikal tapi soft, critical dan hard, non-ktitikal tapi hard, dan juga task yang bersifat non-kritikal dan juga soft, mungkin anda sudah mulai bisa memikirkan contohnya setelah beberapa penjelasan yang telah diutarakan di atas. ;
Konsep yang salah dalam Real Time System
Setelah berapa pemaparan konsep yang benar di atas, diharapkan pada pembahasan konsep yang salah pada bagian ini tidak akan membingungkan anda, tetapi akan semakin menguatkan konsep anda mengenai Real Time System.
Beberapa konsep umum yang salah tersebut adalah :

1. Real Time Computing ekivalen dengan Fast Computing
Tujuan dari fast computing adalah mengusahakan agar response time dari sejumlah task dilakukan dalam waktu yang seminimal mungkin atau dapat dikatakan melakukan proses komputasi secepat mungkin yang dapat dicapai sistem.
Pada Real Time Computing yang dilakukan adalah agar task tadi dapat dilakukan pada waktu yang tepat sesuai dengan yang diperlukan dari masing-masing task bukan untuk mengeksekusinya secepat mungkin.
Salah satu bagian terpenting yang harus dimiliki oleh RT system adalah predictability, artinya suatu sistem RT harus besifat deterministic yaitu kita dapat membanyangkan atau memperkirakan nilai keluaran yang akan dihasilkan dengan memberikan suatu nilai inputan tertentu pada sistem.

2. Analisis rate-monotonic telah memecahkan masalah pada real-time
Rate monotonic adalah suatu sistem periodic yang akan memberikan prioritas lebih tinggi pada suatu task berdasarkan dari jumlah frekuensi dari eksekusi task tersebut.
Terkadang dengan menggunakan rate monotonic justru akan menimbulkan masalah baru yaitu terjadinya starvation pada suatu task yang mempunyai frekuensi paling kecil karena terus menerus di interrupt oleh task lain yang mempunyai frekuensi yg lebih sering, yang dapat mengakibatkan terlanggarnya deadline task tersebut.

3. Adanya metodologi yang diterima secara universal pada spesifikasi dan design dalam Real Time Sistem.
Sebenarnya tidak ada metodologi tersebut sebab , memang akan sangat sulit untuk menemukan solusi yang tepat yang dapat diterapkan secara universal pada Real Time System.

4. Tidak perlu untuk membangun sebuah Sistem Operasi Real Time karena banyak produk komersial yang telah beredar.
Sistem Operasi komersial dibuat untuk kebutuhan komersial yaitu untuk kebutuhan umum, sehingga ketika dipakai untuk kepentingan khusus dengan kasus yang berberda-beda tidak dapat dilakukan dengan sistem operasi yang komersial tersebut.

5. Pembelajaran dalam Real Time System adalah kebanyakan hanya membicarakan tentang teori penjadwalan
Untuk menghasilkan suatu teori yang dapat diterapkan secara nyata, terkadang memerlukan beberapa penyederhanaan yang tidak praktis sehingga teori tersebut dapat bekerja dengan baik.

6. Perkembangan hardware pada supercomputer akan mengatasi kebutuhan Real Time
Perkembangan pada desain supercomputer kebanyakan akan menggunakan prosesor paralel untuk meningkatkan troughput dari sistem, tapi bukan berarti hal ini akan secara otomatis memenuhi timing constraint.
Adanya suatu komputasi yang powerfull hanya akan menambah kebutuhan fungsionalitas pada aplikasi Real Time , yang akan memperburuk masalah timing pada Real Time System.

7. Adalah hal yang sia-sia membicarakan jaminan dalam performansi Real Time, karena kita tidak dapat menjamin bahwa hardware tidak akan gagal, dan software bebas dari bug atau tidak, atau kondisi Operating System yang dipakai tidak melanggar spesifikasi desain.
Dalam realitas kita haya bisa berharap dapat meminimalisir kemungkinan kegagalan dari sistem yang kita buat, karena memang ada banyak kondisi yang dapat membuat sistem gagal yang biasanya berada di luar kontrol kita, tetapi jika kita dapat menjamin sesuatu yang bisa kita lakukan, kita seharusnya melakukkannya sehingga kemungkinan kegagalan semakin berkurang.

Real Time Sistem

Cobra Application in Real Time Distributed Embedded System


Keuntungan :

1. CORBA adalah hasil 'kesepakatan' antara sejumlah vendor dan pengembang perangkat lunak terkenal seperti IBM, Hewlett-Packard, dan DEC, yang tergabung dalam sebuah konsorsium bernama OMG (Object Management Group).

2. Keunikan dari CORBA adalah kemampuannya dalam menangani heterogenitas antara client dan server (dalam terminologi CORBA, obyek server dinamakan implementasi obyek (object implementation). Keduanya dapat saja diimplementasikan dalam hardware, sistem operasi, bahasa pemrograman, dan di lokasi yang berbeda, tetapi tetap bisa saling berkomunikasi. Kuncinya ada pada sebuah lapisan software yang disebut dengan ORB(Object Request Broker).

3. CORBA adalah sebuah arsitektur software yang berbasis pada teknologi berorientasi obyek atau Object Oriented (OO) dengan paradigma client-server.

4. Dalam CORBA, spesifikasi interface merupakan hal yang pertama kali dilakukan, layaknya dalam kehidupan nyata di mana sebelum terjadi transaksi, dibuat dulu kontraknya. Spesifikasi interface dibuat menggunakan sebuah bahasa khusus yang bersifat standar yang disebut Interface Definition Language (IDL).

5. CORBA membantu menyederhanakan persoalan dengan menyembunyikan berbagai detail pekerjaan pada level rendah dan heterogenitas sistem dan platform. Lebih lanjut, arsitektur OMA menyediakan sebuah framework pengembangan sistem terdistribusi yang konsisten, sehingga heterogenitas tetap dapat dikelola dengan baik.

Kerugian :

1. CORBA menggunakan referensi obyek agar client dapat mengakses implementasi obyek yang berbeda dan dibuat dengan bahasa yang berbeda.

2. Dengan teknologi berbasis CORBA, OMG mencoba menuangkan visinya tentang aplikasi terdistribusi dalam sebuah arsitektur yang disebut Object Management Architecture (OMA). OMA mengelompokkan jenis-jenis interaksi antar program untuk memudahkan penyediaan dukungan.

3. OMA melakukan strukturisasi dunia aplikasi ke dalam dua kelompok besar: kategori layanan CORBA (CORBA services) dan kategori fasilitas CORBA (CORBA facilities). Layanan CORBA menyediakan fungsi-fungsi dasar yang digunakan oleh hampir setiap obyek dalam berbagai aplikasi. Fungsi-fungsi ini biasanya bersifat generik dan tidak tergantung pada jenis domain aplikasi. Sebagai contoh adalah layanan penamaan (naming service). Bayangkan bila kita memerlukan sebuah layanan tapi tidak tahu ke mana harus mencari server yang menyediakan layanan tersebut. Layanan penamaan dapat membantu kita layaknya sebuah "halaman kuning" (yellow pages); dia bisa menyiarkan direktori layanan yang terdaftar padanya. Karena sifatnya yang generik, layanan penamaan dapat digunakan oleh aplikasi dari berbagai domain.

4. Beberapa contoh perangkat pengembangan berbasis CORBA yang berjalan di Linux antara lain: MICO dari mico.org (bahasa yang didukung: C++), Fnorb dari DSTC, Australia (Python), JacORB oleh Gerard Brose dari Freie Universitat, Berlin (Java), OmniORB2 dari AT&T (C++), serta tak ketinggalan pula ORBit keluaran laboratorium riset RedHat (mendukung bahasa C) yang dipakai dalam proyek Gnome.

5. TAO (The ACE ORB) dari Washington University adalah implementasi ORB yang dikembangkan dengan pendekatan yang berbeda. TAO tidak semata-mata merupakan sistem ORB sederhana, tetapi ia dirancang untuk bekerja pada lingkungan real-time dengan batasan-batasan (constraints) yang lebih ketat dibandingkan dengan sistem terdistribusi biasa. Konsekuensinya TAO lebih memfokuskan diri pada dukungan terhadap aspek real-time dan koneksi berkecepatan tinggi, yang diimplementasikan ke dalam arsitektur inti ORB dan modul-modul pendukungnya.


KESIMPULAN

Pada paper ini cukup banyak dibahas mengenai CORBA itu sendiri, tapi banyak juga informasi mengenai CORBA yang tidak di tuliskan di dalam paper ini. Beberapa informasi mengenai CORBA yang kami dapat kami bandingkan dengan yang ada di paper, dan ternyata pada paper ini tidak dicantumkan mengenai informasi tersebut, sehingga hal ini membuat informasi mengenai CORBA pada paper ini tidak begitu lengkap.

Sedangkan inti pembahasan dari paper ini yaitu mengenai hubungan antara CORBA dengan Real-time System. Pada paper ini telah dijelaskan tentang bagaimana CORBA berjalan pada Real-time Distributed Embedded System. Dipaper ini penulis ingin menjabarkan bahwa CORBA dapat berjalan pada suatu system yang terintegrasi. Penulis juga menjelaskan bahwa pada CORBA itu sendiri dapat dibangun suatu sistem real-time yang ‘berdiri sendiri


REFERENSI

- http://www.infolinux.com

info CORBA berbahasa Indonesia

- http://www.omg.com

Halaman Web Object Management Group (OMG) menyediakan titik akses ke berbagai informasi
tentang CORBA

- http://www.cetus-links.org/

Situs ini berisi berbagai hal yang berhubungan dengan paradigma berorientasi obyek (OO), termasuk CORBA. Mirror tersebar di berbagai lokasi.

- http://www.cs.wustl.edu/~schmidt/TAO.html

Halaman Web TAO di Washington University


Rewrite URL dengan file .htaccess

Rewrite URL atau biasa di sebut Clean URL berfungsi untuk menyederhanakan URL dan tampak lebih friendly, selain itu mudah di index oleh search engine. dengan kelebihan tersebut metode ini diterapkan hampir di semua BLOG atau WEB portal yang ada.

Aturan ReWrite di simpan pada file .htaccess, file .htaccess sendiri adalah file configurasi external yang dapat di baca oleh apache dimanapun asal berada di root webserver.

Contoh URL yang menggunakan ReWrite URL

URL asli
http://localhost/news.php?thn=2009&bln=08&tgl=01&id=2309

Pada Browser
http://localhost/news/2009/08/01/2309/content_news
http://localhost/news/2009_08_01_2309_content_news.html
http://localhost/news/200908012309/content_news.html
http://localhost/read/200908012309/content_news.html

dst..

Bagaimana cara membuatnya?
1. Buat file dengan nama .htaccess di docroot (Document Root) web Anda.
2. Agar apache dapat membaca file .htaccess aktifkan module mod_rewrite.so pada configurasi httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so
menjadi
LoadModule rewrite_module modules/mod_rewrite.so
3. Restart httpd
4. Masukan perintah sederhana di bawah ini ke file .htaccess
RewriteEngine on
RewriteRule ^(.*)\.htm$ $1.php [NC]

5. Buat file PHP dengan nama testing.php
6. Masukan baris code di bawah ini ke file .htaccess

echo "Ini adalah testing.php";
?>
7. Panggil http://localhost/testing.htm di browser Anda.
Perintah diatas akan merubah semua berakhiran .htm menjadi .php
Hasil --> http://localhost/testing.htm maka di baca oleh server adalah http://localhost/testing.php

Penjelasan :
RewriteEngine on --> Mengaktifkan Module ReWrite
RewriteRule --> rule atau aturan proses direct. bila tidak sesuai pola maka URL yang di baca server sesuai dengan yang tertulis di browser.
^(.*)\.htm$ --> pola rule, artinya baca dari character pertama "diwakili tanda ^", di lanjutkan dengan karakter
apa aja "diwakili tanda ." ulangi sebanyak charater yang ada di "wakili tanda *",
diakhiri .htm "diwakili \.htm", sampe character terakhir "diwakili tanda $".
tanda kurung berfungsi sebagai pengklompok pada kasus di atas memisahkan http://localhost/testing dengan .htm,
$1.php --> $1 adalah nilai yang di ambil dari Pola di atas yang di apit tanda kurung,
pada kasus di atas adalah http://localhost/testing setelah itu di lanjutkan dengan .php,
sehingga hasil akhir menjadi http://localhost/testing.php

contoh lainnya :
1.
Pada Browser
http://localhost/news/2009/08/01/2309/content_news
di baca server
http://localhost/news.php?thn=2009&bln=08&tgl=01&id=2309
rule yang bisa digunakan
RewriteRule ^news/([0-9]*)/([0-9]*)/([0-9]*)/([0-9]*)(.*)$ /news.php?thn=$1&bln=$2&tgl=$3&id=$4 [NC]
atau
RewriteRule ^news/([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)(.+)$ /news.php?thn=$1&bln=$2&tgl=$3&id=$4 [NC]
atau
RewriteRule ^news/([^/]+)/([^/]+)/([^/]+)/([^/]+)(.+)$ /news.php?thn=$1&bln=$2&tgl=$3&id=$4 [NC]

2.
Pada Browser
http://localhost/news/2009_08_01_2309_content_news.html
di baca server
http://localhost/news.php?thn=2009&bln=08&tgl=01&id=2309
rule yang bisa di gunakan
RewriteRule ^news/([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+)(.+)$ /news.php?thn=$1&bln=$2&tgl=$3&id=$4 [NC]

3.
Pada Browser
http://localhost/news/200908012309/content_news.html
di baca server
http://localhost/news.php?thn=2009&bln=08&tgl=01&id=2309
rule yang bisa di gunakan
RewriteRule ^news/([0-9]{4})([0-9]{2})([0-9]{2})([0-9]+)(.+)$ /news.php?thn=$1&bln=$2&tgl=$3&id=$4 [NC]

4. Selanjutnya Anda sendiri yang mencoba.

Pola tersebut di kenal dengan ReGex(Regular Expression). pahami lebih lanjut character - character Regex lainnya untuk pengembangan lebih lanjut.

Salam Teknologi Informasi

Penerapan Pola Regular Expression

Regular Expression atau lebih di kenal dengan sebutan ReGex merupakan suatu notasi fleksibel dan ringkas untuk mencari dan menggantikan pola teks, fungsi utama ReGex itu sendiri adalah mencari dan mengganti pola text. Notasi Regular Expression terdiri dari dua jenis karakter dasar, yaitu karakter teks literal (normal) dan metakarakter. Karakter normal menyatakan bahwa teks harus eksis di string target, sedangkan metakarakter menyatakan teks dapat bermacam-macam di string target. Regular Expression memungkinkan kita menguraikan sejumlah teks guna menemukan pola karakter spesifik. Selain itu, Anda juga bisa mengganti, memodifikasi, atau menghapus suatu substring dengan cepat dan akurat, sesuai kriteria pola yang kita inginkan. Hampir semua bahasa pemrograman mengimplementasikan regular expression.

Sintaks Regular Expression
? --> Menggunakan atau tidak 1 karakter sebelum '?'. contoh ba? mewakili "b" atau "ba".
+ --> Mengulang atau tidak 1 karakter sebelum '+' sebanyak takterhingga. contoh ba+ mewakili "ba", "baa", "baaa", dst.
* --> Hampir sama dengan '+' hanya saja 1 karakter sebelum '*' bisa tidak digunakan. contoh, ba* mewakili "b", "ba", "baa", "baaa", dst.
| --> Pilihan alternatif pola. contoh, abc|def mewakili "abc" atau "def".

. --> 1 karakter apa saja. contoh, a.c mewakili "abc","acc","adc" dst.
[] --> Tempat untuk menyipan option atau range karakter. contoh [abc]a mewakili "aa","ba","ca" atau [0-9] mewakili karakter angka 1 s/d 9 dan [a-zA-Z] mewakili karakter a s/d Z dan A s/d Z.
[^ ] --> Semua karater di dalam "[]" yang di awali dengan "^" artinya bukan. contoh [^ab]c mewakili "cc","dc","ec" dst. atau tidak diawali dengan 1 karakter a atau b
^ --> Pencocokan pola di mulai di awal kalimat atau kata. contoh ^[ram]ahmat tidak cocok untuk kata "karahmat".
$ --> Pencocokan pola di ujung kalimat atau kata. contoh [ram]ahmat$ tidak cocok untuk kata "rahmatul". ^ dan $ bisa di kombinasikan untuk memaksa pengecekan pola dari awal sampai akhir kalimat atau kata.
{} --> Berfungsi mengset pengulangan. contoh [123]{3} mewakili "111","222","333"
\ --> Membuat makna literal. contoh a\+ mewakili "a+" bukan "a","aa","aaa" dst
() --> Pengkelompokan, hasil keluaran berupa array.

karakter escape di dalam regular expression,
\a : Karakter bell (alarm)
\b : Backspace
\t : Tabulator
\r : Return (carriage return)
\v : Tab vertikal
\f : Pindah halaman (form feed)
\n : Baris baru (line feed)
\e : Escape
\w : Sesuai dengan semua karakter atau kata, ekuivalen dengan [a-zA-Z_0-9].
\W : Sesuai dengan non-karakter, ekuivalen dengan [^a-zA-Z_0-9].
\s : Sesuai dengan karakter kosong, ekuivalen dengan \f, \n, \r, \t, dan \v.
\S : Tidak sesuai dengan semua karakter kosong.
\d : Sesuai dengan angka antara 0 sampai 9.
\D : Tidak sesuai dengan angka antara 0 sampai 9.

Contoh Penerapan Pencarian dengan Regex
[ PHP ]


[ Bash/Shell ]

[ram@sonpc]$ ls | grep "^s.*\.php" (Menapilan semua file PHP yang namanya berawalan "s")

[ Javascript ]
function SusunanNoTelp( phone ) {
PolaPhoneNumb = /^\(\d\d\d\) \d\d\d-\d\d\d\d$/;
if( !phone.match( PolaPhoneNumb ) ) {
alert( ‘Please enter a valid phone number’ );
return false;
}
return true;
}
SusunanNoTelp ('(021) 100-1000'); // Telp Numb Valid

[ Perl ]
open ("IDLIST","/home/ram/info.log");
while (){
@getid=$_=~/(\d+).*?chk/ ;
$cid= $getid[0], ++$counter if @getid;
}
close (IDLIST);
# pada contoh ini saya mengambil digit angka yang mengandung kata chk pada isi file yang tersimpan di /home/ram/info.log
# Isi seperti berikut
# 899003 testing chk
# 093487 percobaan chk
# 099883 latihan lbl // yang ini tidak sesuai pola

Selamat Mencoba.