Anda di halaman 1dari 8

EKSPRESI REGULAR

Token Token yaitu element terkecil pada bahasa pemrograman yang memiliki arti penting bagi compiler. Yang termasuk token antara lain: identifier, keywords(reserved words), operator, literals, punctuators dan sebagainya. Token yang satu dengan yang lain dipisahkan dengan satu atau lebih spasi, tab, baris baru, atau komentar.

1. Identifier Identifier merupakan kumpulan karakter yang digunakan sebagai penanda untuk nama variable, nama tipe data, fungsi, prosedur, dan sebagainya. Variable Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut : 1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. 2. Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara Metal, dengan metal itu berbeda. 3. Tidak boleh mengandung spasi. 4. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore), seperti : $, ?, %, #, !, &, *, (, ), -, +, dsb. 5. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
REGEX: (huruf)(huruf+digit)* FSA:

Tipe Data: Integer (int) Integer adalah type data angka-angka single tanpa koma. REGEX : Int = (digit)* FSA:

Karakter (char) untuk mendeklarasikan karakter kita menggunakan type data char , contoh kita ingin memberikan karakter sebuah nama variable.
REGEX : Char = ()(hurufUdigit)*() FSA:

FLOAT(float) Float adalah Angka dengan titik mengambang (bilangan cacah) REGEX: Float = (digit)*(,)(digit)* FSA:

BOOLEAN(bool) Boolean adalah type data yang dapat bernilai benar atau salah (true or false) REGEX: Boolean = (true)|(false) FSA:

2. Operator Operator digunakan untuk menyatakan suatu perhitungan/operasi. Operator yang digunakan untuk operasi yang melibatkan satu operand disebut unary operator. Jika melibatkan dua operand maka disebut binary operator, dan jika melibatkan tiga operand, operator tersebut disebut ternary operator.Di dalam suatu operasi dapat terdapat banyak operator. Operator dapat dikategorikan menjadi beberapa jenis antara lain: 1. Arithmetic Operator Yang termasuk di dalam operator arithmetic yaitu operator yang digunakan untuk melakukan operasi aritmatika, seperti: penjumlahan: + (pada bahasa C, terdapat juga operator ++ sebagai prefix increment. Misalnya operasi: i++ atau ++i, akan melakukan increment nilai i sebesar 1) REGEX: (digit)*(+)(digit)* FSA:

pengurangan: - (seperti penjumlahan, pada bahasa C, juga terdapat operator -- sebagai prefix decrement) REGEX : (digit)*(-)(digit)* FSA:

perkalian: * REGEX : (digit)*(*)(digit)* FSA:

pembagian: / REGEX : (digit)*(/)(digit)* FSA:

mencari sisa pembagian pada bahasa C menggunakan tanda % REGEX : (digit)*(%)(digit)* FSA:

2. Assignment Operator Pada bahasa C, terdapat beberapa assignment operator yaitu: Tanda += digunakan untuk melakukan assignment penjumlahan, misalnya terdapat dua operasi sebagai berikut: C = 4; C += 3; REGEX: (digit|huruf)*(+)(=)(digit)* FSA:

Tanda -= digunakan untuk melakukan assignment pengurangan. Cara penggunaannya sama seperti contoh penggunaan tanda += di atas.

REGEX: (digit|huruf)*(-)(=)(digit)* FSA:

Tanda <<= merupakan left shift assignment, digunakan untuk menggeser bit ke kiri. REGEX: (digit)*(<)(<)(=)(digit)* FSA:

Tanda >>= merupakan right shift assignment, digunakan untuk menggeser bit ke kanan. REGEX: (digit)*(>)(>)(=)(digit)* FSA:

3. Logical Operator Operator ini digunakan untuk melakukan operasi bit dan logika. Yang termasuk di dalam operator ini antara lain: Negasi bahasa C : ! contoh A != B; REGEX: (digit|huruf)*(!)(=)(digit)|huruf)* FSA:

And bahasa C : && contoh A = A && B; REGEX: (huruf)*(&)(&)(huruf)* FSA:

Or bahasa C : || contoh A = B || C;

REGEX: (huruf)*(|)(|)(huruf)* FSA:

4. Relational Operator Operator relasional digunakan untuk membandingkan nilai dua operand. Sebagai catatan, operand yang dibandingkan harus memiliki tipe data yang sama, kecuali untuk bilangan bulat (bertipe integer) dan bilangan pecahan (bertipe real atau float). Yang termasuk operator relasional yaitu: Penanda kesamaan = (Pada bahasa C, penanda kesamaan menggunakan dua tanda sama dengan, yaitu == ) REGEX: (digit|huruf)*(=)(=)(digit|huruf)* FSA:

Penanda lebih besar > REGEX: (digit|huruf)*(>)(digit|huruf)* FSA:

Penanda lebih besar atau sama dengan >= REGEX: (digit|huruf)*(>)(=)(digit|huruf)* FSA:

Penanda lebih kecil < REGEX: (digit|huruf)*(<)(digit|huruf)* FSA:

Penanda lebih kecil atau sama dengan <= REGEX: (digit|huruf)*(<)(=)(digit|huruf)* FSA:

Penanda ketidaksamaan. Pada bahasa C menggunakan tanda != REGEX: (digit|huruf)*(!)(=)(digit)|huruf)* FSA:

5. Pointer Operator Operator pointer digunakan untuk melakukan operasi pada operand yang berupa pointer. Pada bahasa C, pointer menggunakan tanda asterisks *. REGEX: (*)(huruf)* FSA:

3. Keyword Include include sendiri bukan merupakan keyword, tapi suatu instruksi yang diberikan untuk compiler agar menyertakan (include) library function yang terdapat dalam suatu file yang disediakan oleh bahasa C. REGEX: (include) FSA:

Stdio.h Stdio.h merupakan library function yang terdapat dalam suatau file yang di sediakan oleh bahasa C. REGEX: (stdio)(.)(h) FSA:

Void Void menyatakan tipe data yang kosong. REGEX: (void) FSA:

main () main menyatakan fungsi utama dalam suatu program dalam bahasa C. REGEX: (main) (() ()) FSA:

scanf() scanf dipakai untuk membaca suatu nilai dari suatu program dalam bahasa C. REGEX: (scanf) (() () (%) (d|f|c|s) (,) (&) (huruf)* () ()) (;) FSA:

printf() printf digunakan untuk mencetak suatu nilai dalam bahasa C. RAGEX: (printf) (() () (digit|huruf)* () ()) (;) FSA:

IF Statement IF digunakan untuk menyatakan kondisi yang akan di eksekusi dalam suatu program dalam bahasa C. RAGEX: (if) (() (huruf)* (<|>|=|!=) (huruf)* FSA:

ELSE Statement ELSE digunakan untuk menyatakan kebalikan dari statement IF. RAGEX: (else) FSA:

DO