Pengolahan Data Elektronik ________________________________________________________________________________________ NOTASI FORMAL Pendahuluan Notasi formal adalah cara yang ringkas dan jelas untuk mengekspresikan sesuatu hal, notasi formal berisi sistem pernyataan simbolis yang diatur secara ketat oleh set-set aturan yang telah ditetapkan secara baik. Tingkatan formalitas Sistem yang dinyatakan dalam bahasa inggris adalah informal sebab umumnya tidak mesti mempunyai makna tunggal. Bahasa atau notasi yang tiap statementnya mempunyai makna tunggal dikatakan bersifat formal. Statemen yang dinyatakan dalam notasi perantara antara bahasa natural dan bahasa formal disebut precise. Metalanguage Sintaks : struktur kalimat dan aturan gramatikal yang mengaturnya. Semantik : arti kalimat yang ditulis dalam bahasa tertentu Bahasa yang secara khusus dirancang untuk mendeskripsikan bahasa disebut metalanguage. Aturan sintaks : Nama yang tampak pada sisi kiri ‘=’ dan yang ada di sebelah kanan ‘=’ adalah definisi sesuatu nama pada sebelah kiri. Aturan tersebut berakhir dengan ‘;’ . Bila nama telah didefinisikan maka dapat digunakan pada sisi sebelah kanan dari aturan yang berurutan. Penjelasan untuk kemudahan pemahaman ditempatkan diantara ‘(* dan *)’. D3/Manajemen Informatika Page 1 Pengolahan Data Elektronik ________________________________________________________________________________________ Contoh : mendefinisikan digit biner Binary digit = “0” | “1”; Definisi dan deskripsi bahasa Definisi bahasa digunakan untuk : a. menghasilkan semua kalimat atau pernyataan legal dalam suatu bahasa b. mengecek legalitas suatu kalimat atau pernyataan. Sintaks, leksikon dan semantik : a. Sintaks suatu kalimat adalah struktur dari kalimat itu dan aturan gramatikal yang mengatur struktur tersebut. b. Leksikon adalah kamus kata-kata valid dalam suatu bahasa c. Semantik berkaitan dengan arti kata dan kalimat Definisi bahasa : a. Skema generatif, suatu prosedur untuk menggenerasi suatu kalimat legal dalam bahasa tesebut b. Rekognisi, dimana suatu prosedur didefinisikan untuk memutuskan legalitas suatu kalimat Klasifikasi generatis BNF ( Backus Naur Form ) Notasi, terminologi dan metode : a. atau ::= atau := : didefinisikan oleh c. | : untuk menutup variabel sintaktis : atau <> D3/Manajemen Informatika Page 2 Pengolahan Data Elektronik ________________________________________________________________________________________ Menghasilkan kalimat legal atau pernyataan legal Contoh : mendefinisikan pernyataan legal, aturan-aturan berikut bisa diberikan : a. <expression> <operand><operator><operand> b. <operand> A | B | C | D c. <operator> + | - | / | * aturan semacam diatas disebut productions Terapkan aturan a, b, c untuk mendapatkan pernyataa legal a. <expression> <operand><operator> <operand> A <operator> <operand> A + <operand> A + B b. <sentence> <subject phrase><verb><object pharase> <subject phrase><article><adjective><noun> <object phrase><article><adjective><noun> Parsing Adalah pemecahan kalimat menjadi komponennya, proses pendefinisian production yang bila diterapkan dengan recursionakan menghasilkan kalimat atau pernyataan legal. Pemecahan parsing dapat direpresentasikan dengan TREE yang disebut SYNTAX TREE atau PARSE TREE Contoh : <expression> <operand> <operator> <operand> W D3/Manajemen Informatika - X Page 3 Pengolahan Data Elektronik ________________________________________________________________________________________ Canonical parse adalah prosedur yang memastikan bahwa parsing didefinisikan dengan baik i. cari production yang bila diterapkan akan menghasilkan elemen sintaks paling kiri dan ganti elemen-elemen ini dengan variabel sintaksis dari tempat asal elemen itu ii. proses i diulangi pada elemen-elemen dan variabel-variabel sintaksis sampai dihasilkan suatu pernyataan Contoh : 1. <expression><operand>|<expression><operator><expression> 2. <operand>W |X |Y |Z 3. <operator>+ |- |* | / Pohon sintaks pemecahan resmi untuk W – X * Z <expression> <expression> <operator> <expression><operator><expression> <operand> - W <operand> * <expression> <operand> Z X Canonical parsenya 2, 1, 3 , 2, 1, 1, 3, 2, 1, 1 D3/Manajemen Informatika Page 4 Pengolahan Data Elektronik ________________________________________________________________________________________ Pohon sintaks pemecahan tidak resmi untuk W – X * Z <expression> <expression> <operator> <operand> - W <expression> <expression><operator><expression> <operand> * X <operand> Z Canonical parsenya adalah 2, 3, 3, 3, 2, 1, 1, 1, 1, 1 Bactracking : (penelusuran balik) dapat juga digunakan untuk mencari pernyataan yang ambigius Definisi bahasa komputer harus tidak ambigius dan bisa menangani aturan preseden bila diperlukan Definisi bahasa komputer yang baik akan memungkinkan prosedur parsing mampu : i. mendeteksi pernyataan tak legal ii. mencari parse legal Reverse polish (pemolesan balik) Berguna untuk menangani pernyataan yang pengevaluasian mereka diatur oleh aturan preseden. Pernyataan ini biasanya merupakan bahasa yang tidak rumit. Infix notation ( notasi sisipan ) Banyak digunakan dalam bahasa tingkat tinggi, operator ( +, - ,* , / ) ada didalam pernyataan antaraa operand-operand yang sesuai. D3/Manajemen Informatika Page 5 Pengolahan Data Elektronik ________________________________________________________________________________________ Contoh : ( A + B ) * (C – D ) Dalam notasi reverse polish (postfix notation) operator dituliskan setelah operand yang tepat, dari contoh diatas jika ditulis degan reverse polish menjadi AB + CD - * Bantuan penerjemahan Tanda + dan – dari aritmatika dapat digunakan dalam dua cara : a. untuk operasi bener, misal : 3 + 2 b. untuk operasi unar, misal : - 2 Aturan preseden Aturan untuk memutuskan apa yang harus dilakukan apabila semua else sama Operator preseden = 0 ( 1 +- ) 2 */ 3 4 5 D3/Manajemen Informatika Page 6 Pengolahan Data Elektronik ________________________________________________________________________________________ Penerjemahan dari infix ke reverse polish Contoh : ubahlah (A + B) * (C – D) ke reverse polish Simbol yang diamati ( A + B ) * ( C Stack ( Output ( A + + ( ( B * - D - - ) ( ( ( ( * * * * * D - + C ; * Hasilnya menjadi : AB+ CD- * Representasi pohon Untuk merepresentasikan pohon untuk string reverse polish : Mulai dari ujung sebelah kanan pernyataan, dan bekerja dari kanan ke kiri i. ambil simbol secara bergantian, untuk tiap simbbol bentuk node baru, bila node yang baru saja dibuat berisi operand, mulai langkah ii, node yang berisi operand adalah node terminal ii. berjalan balik ke atas pada pohon sampai node kiri diperlukan, isi node dengan simbol berikut dari reserve polish iii. jika simbol yang diisi dalam ii adalah operand, maka lanjutkan dengan ii, jika simbbol yang diisikan dalam ii adalah operator, kembali pada langkah I D3/Manajemen Informatika Page 7