Anda di halaman 1dari 9

prosiding Seminar llmiah Nasional Komputer dan Sistem lntelijen (KOMMIT

Universi[as Gunadarma

Depok 18

19 September

2012

2012)

ai

September 2012
iSSN : 2302-3740

MODEL TRANSLATOR NOTASI ALGORIT}IIK KE B.{HASA C


W|ianarlol
Ac
t
''

hm

ud Waliid Kurn iawan2

F a kut o t I I mtr Ko mptt

te

r,

Un iv er s i tas D

ia

n t* ttsr a n rc r o

5-IlSemqrang, Indonesia
t
w ij ana r to@do s e n. dinus. ac. i d

Jl. Nakula

Abstrak

Aplikasi komputer telah banyak digunakan dalam berbagai bidang seperti


Mikrobiotogi, Astronomi, Ilmu Sosial dan banyak lainnya, dengan algaritma sebagai

,solusi untuk mesalah yang umum. Notasi algoritrnik merupakan salsh satu cara untuk

clapat memahami permasalahan yang sudah di disain, namun kadung tluktm


mengekspresikan pacia kode merupekan masalah tersendii. Kesulitan menguasai
behqsa pemrograman bctgi sebagian or&ng awom, bahkan dengan latar belak(lng ilmu
komputer, menjacli rnasctlcth ttmum ketika ingin menulis program yang efisien. Paper
ini, akan mengajukan stratu model translssi suqtu notasi algoritmik ke bahasa yang
dapat cli eksekusi dalam prog"am, yang dibangun atas dasar konsep MVC dalam
dimain specific language. Tujuan utqmq pqper ini adalah menghasilkan suatu morlel
translasi notqsi algoritmik yang dapat di eksekusi dengan kompiler ANSI C, sehingga
penggunq hanya fokus pada notasi algoritmik, dan bukan pada proses hageiimana
algoritma di kerjakan oleh bahasa. Dari beberapa eksperimen. yang telah di lahtkan,
model ini tebih muclah membontu user dalqm mengimplementasikan algoritma dalam
bentuk notasi yang baku, tanpu memikirkan bahosaformal yang di pakai.
Katq Kunci: Progrerm, Notasi, Algoritmik, Tran.slator, Domain specific language

PENDAHULUAN
Solusi umum dalarn bentuk algoritma telah merambah ke seluruh aspek
kehidupan, Ilmu sosial, kimia, mikrobiologi, dan kedokteran. Terapan algoritma
dalam banyak bidang tersebut menunjukan betapa majunya perkembangan
ihnu pengetahuan dapat menunjang
teknologi lainnya. Di bidang matematika
terapan, seperti Graph, dengan MST dan
grafik, interpolasi untuk diferensial dan
integral (Navarro, 2001), algoritma iterasi
untuk metode numerik, algoritrna genetik
untuk microbiologi (DNA) (Ming, 2005)'
Walaupun sudah banyak model abstraksi
yang sudah di buat dalarn membantu
untuk mengekspresikan ke bahasa, seperli
UML, RAD dengan visttal prograrnming.
ALGOL Translation (MARST, 2000),
yang semuanya dapat mengenerate ke

464

dalam suaiu kode. Paper

ini

akan

rnenyajikan model solusi untuk menterjemahkan suatu notasi algoritmik yang


spesifik untuk suatu bahasa (imperatif).
Diharapkan dengan bantuan translator ini

orang akan mudah

mengekspresikan
solusi dari algoritma yang di bangun ke
dalarn bahasa (imperatit) yang di pilihnya.
Notasi algoritma yang di pakai adalah
sudah di bakukan menurut kebutuhan

penulis. Otomatisasi translasi algoritma


ke kode sumber yang di tulis oleh
(Mukherjee, 2011), tidak natural (tug
script) sebelum dapat di translasikan,
Penelitian dari Bell juga menunjukan
keunggulan teknologi DSL dalam menghasilkan form based dalatrt rangka
mengenerate script untuk web dinamis.
Dalam hal aplikasi web dinarnis (Parr,
2006), berhasil dapat mengenerate web
secara on the fly dan tidak perlu me-

'll:janarlo dan Kurniawan, Model lrans/alor /Votasl

.,

Prosiding Seminar llmiah Nasic^a ^'.-."-'.-:a^ Sistem lntelijen


Universitas Gunadarma - Depor i 8, ' : Se:.:- nr 2012

(KOtvll/lI 2012)

Vol. 7 September 2012

restafi selver untuk menquDCJte isi


halaman web.

Pendekatan dan Konsep Dasar

Pada dasarnya konsep Dontsirt


Specifik Language (DSL) (Forvler. 1999:
2010) atau Meta Programmming Svstent
(MPS) (Dimitriev, 2004) sudah lama
muncul. Secara historis, konsep ini
merupakan perbaruan dari teknik
konstruksi kompiler yang secara modern
(Aho, 2007; Appel, 1998; Watt, 2000;
Rechenberg, 1989). Parsing dan analisa
syntax atau lexical (lexer) (Aho, 1973;
Gijzel, 2009; Hanson, I 980; Levine, 1992;
Cooper, 2003; Pam, 201 I) yang
merupakan penentu perluasan ekspresi
reguler rnenjadi pokok perhatian dalam
membangun translasi dari kode ke bairasa
mesin yang di mengerti komputer.

Dornain Specific Language : Nlodel


Vielv Controller
Dari literatur dan jurnal mengenai
konsep dan konstruksi kompiler terdahulu,

{"iota}
(

ISSN : 2302-3740

sebenamya translator merupakan bagian


dari teknik kompilasi. Dalam gambar l,
dapat di jelaskan konsep dasar kompilasi
dan peran proses translasi dari rnodel
yang di inginkan (dalam c dan java).
Teknologi seperti di jelaskan pada
gambar di atas telah belkembang yang
salah satunya di kenal sebagai pendekatan
DSL (Domain Spesific Language) yang
mengimplementasikan paradigma MVC
(Model View Controller). Paradigrna
MVC merupak-an konsep arsitektur
software atau pola arsitektural yang
dikenalkan oleh Reenskaug (1979) saat
mengerjakan Smalltalk dalarn Xerox
PARC. Model mewakili bagian aplikasi
yang menyimpan data dan menyediakan
rnethod untuk aksi, View merupakan
bagian aplikasi yang menghasilkan data
bagi user dan Controller adalah bagian
yang menerima input dari user dan
keperluan rnodifikasi pada mcdel, seperti
pada Garnbar 2.

Runling Progrorr
,\pplicatiori l\ppl cr

l-F'G;ftI;-

il.
i

:l

"r*;

__

lor..p*riil

r Uara,

Galr'rbar 1. Proses Kompilasi Bahasa Java (a) dan C (b)

Gambar 2. Paradigma MVC

465

Vol. 7 September 2012


ISSN : 2302-3740

Prosiding Seminar llmiah NasionalKomputerdan Sistem lntelijen (KOMMIT 2012)


Universitas Gunadarma - Depok 1 8 19 September 201 2

Domain Spesific Language (DSL),


merupakan bahasa pemrograman yang di
tujukan unfuk keperluan masalah dan
solusi yang spesifik (Fowler, 2010).
Dalam implementasi DSL paradigma

MVC banyak digunakan (Fowler,

1999;

Pan, 2004;2010).

Grammar
Batasan kontekstual dan sernantik
suatu sintak mempakan aspek dari bahasa
pem,rogram perlu di tentukan, setelah itu
baru kita tentukan apakah bahasa tersebut

formal atau informal. Dalam praktik,


sintak biasanya menggunakan BNF

grctm.tnar. Suatu granunar menentukan


abstraksi sintak dalam suatu himpunan
Absii'act Syntax Tree (AST), tiap siurpul
non terminal dari AST mempunyai label
aturan produk yang berlaku dan grammar
tidak menghasilkan suafu kalimat untuk
simbol terminal yang tidak berperan
dalam abstraksi sintak. Perhatikan
potongan grammar dan inputnya dalam
format ANTLR di bawah ini

Grammar XY;

parse: statement

statement:

EOF;

print

(Backus-Naur Form) atau Extendeci BNF,


karena kemudahan notasinya (Aho, 1973;

print:'print " (' (Identifier


stringI-iteral-) ') ' ;

Watt, 2000; Andrew W Appel, 1998),


yang terdiri dari hintpunan berhingga
simbol tenninal, sinLbol non terminal,

Secara

simbol awal dctn aturan produksi


N := al B , dimanaN adalah simbol non
terminal , ::: berarti terdiri dari serta a
adalah string terminal atau non terntinal
yang mungkin kosong serta simbol I yang
belarli alternati"f, hirnpunan tadi di sebut
seb agai c o n t e:: t-Ji' e e g r c ill mu t', singkatnya

Input : print

("Halfo");

fonnal, input di dalam AST dapat

di gambarkan pada Gartbar 3.


Dari abstract syntax tree di atas, grammar
menghasilkan himpunan kalimat yang di
batasi aturan produk yang berasal dari
himpunan terninal, non terminal dan
sirnbol awal.

Gambar3. Abstralr Srntar Tree

466

assignment;

Vol. 7 September 2012


ISSN : 2302-3740

berikut,

r:rsing dan lexical analisis berbasis


-r.'i-;ir_s template, yang diekspresikan
:rrelaiui ANTLR (Pam, 2010; Parr, 2007)
\ ans merupakan pengembangan dari
teknik terdahulu. Teknik ini lebih
sederhana dan cepat dalam impletnentasinl'a dan dapat di targetkan ke dalam
beberapa bahasa (ava, c/c**, c#, phylon,
rubl').

Function BIa(Var N:Integer):Integer;


Bentuk di atas akan di translasikan ke
dalam bahasa c sebagai int BJ-a(int
N) ;. Dalam proses translasi jika tidak

Arsitektur
Transiasi notasi algoritmik ke
bahasa C dalam paper ini, di bangun di
atas tiga pilar utama yang berupa input

Operasi Dan Arsitektur T\C


TNC (Translator \otas, :ig,,-'riimik ke bahasa C) adalah hasil din ktrnS-l
MVC (Model View Controllert {Par.
20A4), untuk mengilustrasikan operasi
dasar dengan contoh sederhana. misalkan
kita menuliskan suatu notasi algoritma

dalam

bentuk header funesi

terdapat kesalahan saat

sebasai

penulisan

ini harus
dijamin dapat di kompilasi atau di
notasinya, maka output bahasa

intepretasikan dan di jalankan dengan


kompiler bahasa c, dalam hal ini gcc
(GCC, 2011). Mekanisme utarna yang
digunakan di dasari oleh translator yaitu
string rnatching menggunakan ekspresi
reguler (Navano, 2001). Ekspresi reguler
menawarkan representasi kompak dengan
pola terlentu. Translator membuat single
pass atas keseluruhan notasi, dan meme-

riksa pola yang dikenalnya. Setelah


diketahui pola yang ditemukan lalu
mencoba untuk memahami konteks, dan
kemudian mengambil tindakan tertentu.
Fitur translasi single prss membuatnya

cepat sefia kompleksitas waktu yang di


hasilkan adalah linear dalam jumlah.
Narnun dalam implementasi pembuatan
programnya akan di gunakan teknik

notasi standar, translator dan


generator (parser, lexer dan string
template), dan akan rnenghasilkan suatu
bahasa formal yang di jarnin dapat di
kompilasi dan di jalankan, yang dapat di
tunjukan pada Gambar 4.

Notasi Standar Algoritma (NSA)


Notasi algoritma yang dirnaksud
dalarn paper ini adalah suatu bahasa alan-ri
yang mudah di pahami manusia dalam
mengeskpresikan suafu solusi atau disain
dalam suatu masalah. Walaupun demikian notasi yang dipakai kecendemngan-

nya lebih mendekati ke suatu bahasa


forrnal teftentu untuk mempennudah
translasi. Paper ini rnenggunakan notasi
algoritma dalam (Liem, 2007) dengan
modifikasi oleh penulis, secara ringkas
dapat di lihat pada Tabel

1.

froitd 5t*rd*r
Algnriim*

Gar.nbar 4. Arsitektur Dasar Model Translator Notasi ke Bahasa C

Wijanarlo dan Kurniawan. l,4odel Translafor Notasl ...

46 I

Prosiding Seminar llmiah Nasional Komputer dan Sistem lntelijen (KOMMIT 2012)
Universitas Gunadarma
Depok 18 - 19 September 2012

Vol

7 September2012

ISSN ; 2302,3740

Tabel 1"
Notasi Standar Agoritma Untuk TNC
Keterangan Notasi

lmpiementasi Notasi

Program

Prograrn

Berisi setidaknya satu deklarasi: pustaka, makro, type,


variabel, konstanta, f'ungsi dan prograrn.

Var i:lrrteger;

Pustaka
Uses

FILE

i*

LA(a,b,c);x<-M;i<--B la(x.y,z)

Uses stdio.h
Uses stdlib.h

Makro

llNotDef ilALLO

Def [type][As harga]

DefHALLO

llNotDef type

ElseDef

EndDef

DefBool As boolean

ElseDef
Type (struct. enum. union. array)
Type [nama = type]
[narna : <licldP]

[type : <tields>]

EndDef
ype address^ - Stmklur Titrk
Type Point l,Point2,Point3 :<
Var i:h'teger;,Var f':Real;,
Var arr:Arrayfi To 50]ofCharacter;

Type Struktur Node:<


Var x: lnteger;,Var next^:address;
1'ype Union IsiSel <
Var fbnn^ : Character;,

Var Nama:type[<--harga]

Type Enurn Bla:( 1,2,3,4)


Var x,y,d:lnteger;
Var x:String <- "ghgi";

Konstanta

Constant in( onst:lnteger==40;

Variabel

Constant Narna:type[<--hargal

Statements
ItbrStat][ it'stat] [sw itchstat]
[expls:][block][assignStat ;]
Iproc_callStat][assign I.unction]
[stattO;J[;J

Lihat Contoh lain dalarn tabcl ini

Block

Lihat Contoh lain dalanr talrcl irri

IVariabel][Stateurentsl
IM ulti Koincntar][ Korncntar]
IWhitespace]

lnput/Output
I

nput(text,Iexprs])

Output(text,Iexprs])
Kondisi(ifstat. slvitchstat)
if <kondisi>then <statementPlelse statments]
Depend on <narna> <*
harga : statements
else : harga : statelnents

Input( "Yod", &(^coba));


Output("Nilai z = o/o.Zf ',2)

clsc il'x-10 then {t x SunrDiv 2; x,\


depend on {x) <*
2 : {* (3 Mul n);x},

5:{*n;*}

else
Peneulansan (forStat)
natna Travers:rl range [step harga] Do [staternents]

While <exprs> Do lstatculents]

Output("Nilai");
if y=16,1l"n {*x<--y Mul 2;*)

l0:{*

n+10;

*}

i Traversal[N DownTo l] Step 2 Do{*


x SumPlus 5; i<--i+2;
Not y;(-)y;Dec y;x Dec; Inc y;x Inc;

Repeat Istatrnents] Until <exprs>


Y

<--l l'

,"n.,. *_y Do {*
x SurnPIus 2;

Repeat{*
v
S

unr I'1us

X;
X

SurnPlus
1.

*l
Subprogram
Proccdure<narnl>( In/Out args)
Function<narlia>(args) : type

Keterangan :Llntuk keperluan paper ini daftar dalanl

468

LJntil

__ x;- I0;

Procedule [3la( In \ial a,h,c I rtcgcr, L)ut


Var c: Chalacler)
Function Bla(Var a,b,c: I ntcgcr,Var c:
Character): Integer

irb:l ini hanya memuat notasi yang pcnting

saja.

Vol. 7 September 2012


ISSN : 2302-3740

Translator dan Generalor (TGt


Bagian TG merupakan ,:l:*:i J.::
paper ini, yang berrrpa prosrs ::::.s.r.-

input (notasi) menjadi ouipur i-icu:ci


code) yang terdiri dari parser ian lerer
yang di hasilkan oleh gramrnar dengan
string template (ST). Dalam proses inilah
pendckatan MVC untuk membuar DSL
dilakukan, dengan memanfaatkan tools
ANTLR dan String Template (ST)
(Terence Parr, 201 1) serta Java sebagai
target bahasa generator. Dengan demrkian yang bertindak sebagai translator
dan generator adaiah, parser dan lexer
yang di generate dari ANTLR dan ST
dalam bentuk class, dan sebagai test rig
interface adalah suatu main class unfuk
intepr:eter .java. Model MVC untuk
translasi notasi ke bahasa dapat di lihat
pada Garnbar 5. Input yang berupa text
(XXX.tnc) dalam bentuk notasi standar
algoritma akan dibaca oleh scanner, yang
sesuai dengan gralnmar (XXXParser.class

dan XXXlexer.class) yang di generate


oleh ANTLR. String Te.mplate (XX.stg)

::r:r,:pakan translator (hand coded) notasi


se bahasa yang di spesifikasikan secara
simultan saat membuat granunar. Generatc'r notasi, yang menjadi test rig dalam
benruk class akan menghasilkan output
bahasa yang valid (XXX.c).
Bahasa C Standar (BCS)

Output dari translator ni adalah


berupa surce code dalam bahasa c yang
valid (BCS), arlinya bebas dari kesalahan
dan siap untuk di lakukan kornpilasi serta
berjaian sesuai harapan. Dengan demikian yang di maksud dalam output ini
berupa bahasa c yang standar (ANSI C).
Implementasi dan Uji Model

Dalarn paper ini akan dilakrrkan


pengujian translasi algoritma ke bahasa c
pada masalah klasik pengurutan dengan
aigoritma Insertion Sorr (Stein, 1990).
Pengujian di lakukan dengan beberapa
struktur data yang berbeda dan oleh
beberapa programmer pada level yang
berbeda pula sebagai berikut.

(iarnbar 5. Nlodel MVC Translasi Notasi ke Bahasa C

Wijanarto dan Kurniawan. Model Translator Notasi ...

469

Prosiding Seminar llmiah Nasional Komputer dan Sistem lntelijen (KOMMIT 2012)
Universitas Gunadarma - Depok 18 - 19 September 2012

Vol. 7 September 2012


ISSN : 2302-3740

Tabel2.
Notasi Algorihnik dan Hasil Translasi ke Bahasa c
Notasi Algoritmik
Hasil translasi ke bahasa
Procedure InsertSorl(In Var A : Data, In Var void InsertSort(Data A,int N) {

N:Integer){
int j;int i;iut key;
Var j:Integer; Var i:Integer; Var key:Integer; for(i:1j<:Nj++){
j Traversal I To N] Do{
key: A[];
key <-- A[];i <-- (f+5);
i : (i+s);
While i>0 And A[i]>key Do{
while((i>0) && (A[i]>key))

A[(i+1)]: Alrl;

A[i+1]<--A[i];Dec i;

i:;

);//endwhile

A(i+1)l:

A[i+1]<--key;

key;

)//endfor

)
)

Tujuan uji ini adalah untuk


mengetahui efisiensi programrner Calam
menuangkan ide penyelesaian masalah
dengan suatu algoritma tanpa menggunakan bahasa fonnal (hand writing) dan
dengan bahasa forrnal (hand coding).
Tabel 3 di bawah ini , merupakan variasi
pemakai (programmer) dari level dasar
(basic) yaitu mahasiswa tahun pertama,
menengah (intermediate) yaitu mahasiswa tahun ke 3, mahir (advance) yaitu
dosen atau praktisi atau mahasiswa yang
sedang men)rusun tugas akhir. Sedangkan
struktur data yang di ujikan meliputi
Abstract Data Tree statis dan dinamis

yang mewakiii kompleksitas disain yang


akan di selesaikan, yaitu atray dan list.
Efisiensi akan di ukur dengan memberikan batas waktu selarna I (satu) jam,
masing-masing akan menulis kode dalarn
bentuk notasi dan bahasa dengan translator dan tanpa translator. Dari hasil
eksperimen di atas di peroleh hasil
sebagai berikut pada Tabel 4.
Perlu di pahami hahwa pada user

saat menyelesaikan masalah

dengan

notasi dia tidak perlu lagi menulis ulang


dengan bahasa, sehingga jelas waktu yang
di butuhkan saat menggunakan translator
jauh lebih efektif.

Tabel 3.
Distribusi Pernakai Translator

User

Keterangan

Basic
Intermediate

User pemula, mahasiswa tahun pertama dan kedua


User moderate, mahasiswa tahun ke tiga ke atas
Praktisi, Dosen, mahasiswa tahun akhir

Advance

Sumber : Data primer lingkungan akademik Fakultas Ilmu Komputer UDINUS

Tabel 4.
Efisiensi Penyelesaian Algoritrna Insertion Sort Dalam 60 Menit
User

Array

List

Notasi Bahasa Notasi

30

20

Bahasa

Basic
ZJ
36
Intermediate
20
25
18
27
Advance
18
20
16
27
Sumber' : Data prirner lingkungan akademik Fakultas Ilmu Kornpuier UDINL.IS

410

Wijanafto dan Kurniawan, Model Translator Notasi

..

Prosiding Seminar llmiah Nasi:"a


Universitas Gunadarma - Decc,(

.J-r;r-ra

:rr

:,msi- rmrle_. '_

'i - ' I :*r*-cp-:

:,r,il,r T 2012)

Vol. 7 September 2012


ISSN : 2302-3740

I
1
1

,
;

Efisiensi Waktu

1$ r'"

i
J

t:
1g
i3
I

"*
3S

l
I
.!

# 8t*$J{

1i3

I
I

I
t
,

i
I

tle:t*w6xlis'#

* Adf4*ff
::;

-:-

"

^.

js
'J i ....."

i
I

tel?63&:i

I
I

Grafik

l.

Perbandingan Efisiensi Waktu

SIMPULAN
DAFTAR PUSTAKA

Dari hasil eksperimen

dan
menulis notasi

pengujian terhadap teknik


untuk menyelesaikan masalah mencapai
hasil yang di harapkan yaitu lebih cepat,
mudah di baca (oleh orang Indonesia
yang mengerti sedikit bahasa Inggris) di
bandingkan langsung mengekspresikan
dalam bentuk bahasa (biasanya mumi
dalam bahasa Inggris). Dengan demikian
translator dari notasi algoritmik ke bahasa
mempunyai keunggulan dalam hal
melakukan disain sekaligus menghasilkan
kode yang di kehendaki untuk
menyelesaikan suafu algoritma walaupun
masih terbatas hanya menangani input
dan output sederhana (non file).
Translator yang masih sederhana ini
berbasis
line, ke depan (sedang
"o--undakan dilengkapi dengan
di kembangkan)

editor yang terintegrasi dengan fitur


lengkap sebagai wadah untuk rnenuliskan
notasi dengan presisi tinggi (syntax enor

rnessage, warning message, code


completion, syntax coloring dan
sebagainya). Juga target bahasa (template)
di harapkan dapat menangani seluruh
bahasa imperative yang unlum dalam
paradigma yang homogen sebagai pilihan
bagi user.

Wiianarto dan Kumiawan. Model Translator Notasi

Aho, A.V., Lam, M.S., Sethi, R.,

Uilman, J.D. 2007

and

Cornpilers:
Principles, techniques, artd tools
second editiorz Pearson Edusation
Addison Wesly New York.
Aho, A.V., and Ullman, J.D. 1g73 The
theory of parsing, trttnslution ond
compiling Prentice Hall Englewood
Cliffs New York.
Appel, A., and Ginsburg, M. l9g8

Modern compiler

impLementution

Cambridge University Press New


York.

Cooper, K.D., and Torczon, L. 2003


Engineering a compiler second edition
San Francisco.

Dimitriev, S. 2004 Languctge orientation


programming: The next progranunitig
puradigm JetBrain New York.
Fowler, M. 1999 Anal.ysis pattents:
Reuseable object models A.Jdison
Wesley New York.

Fowler, M. 201C Domqin

specific
Addison-Wesley
Prof-essional Neu' York.
Gijzel, B.r'. 2009 Contlsctring pcu.ser
corrstntction tecltniques University of
Twente. Facuiq, of Electrical
languages

471

Prosiding Seminar llmiah Nasional Komputer dan Sistem lntelijen (KOMMIT 2012)
Universitas Gunadarma - Depok 18 19 September 2012

Engineering, Mathematics and


Computer Science Twente.
Hanscn, R.E.G., anC David, R. 1980 "An
alternative to the use of patterns in
string processing " ACM Transactions
on Programming Languages and
Systems vol 2 pp 153-172.
Levine, J.R. 2009 Flex & brson O'Reilly
Media, Inc. Sebastopol.
Liem, I. 2007 Draft diktat dasar
penxragraman (bagian prosedttral)
ITB Bandung.
MARST. 2000 ALGOL-60 to C
translator
http //www. gnu. orf software/marsV
diakses tanggal25 Agustus 2010.
:

Ming, C.S. 2005 "Multiple

DNA

sequence alignment based on genetic


algorithms and divide-and-conquer
techniques " International Journal of
Applied Science and Engineering vol
23 pp 89-100.
Mukhe{ee, S., and Chakrabarti, T. 2011
"Automatic algorithm spesificcation to
source code translation" Indian
Journal oJ' Computer Science and
Engineering (UCSE) vol 2 pp 123-129.

412

Vol. 7 September 2012


ISSN : 2302-3740

Navarro, G. 2001 A guided tour to


approximate string matching ACM
ComputingNew York.
Parr, T.J.. 2004 Enforcing strict modelview separation in template engines
Proceedings The 13th international
conference on World Wide, 2004.
Parr, T.J. 2010 Language irnplementation
patterns create your own domainspecific and general programming
languages The Pragmatic BookshelfTexas.

P., and Mocchenbock, H.


1989 A compiler generator fo,
microcomputers Prentice Hall

R.echenberg,

Intemational London.
Reenskaug, T.lv{.H. 1979 Model view
controller Xerox Parx.
Stein, C., Cormen, T.H., Rivest, R.L., and
Leiserson, C.E. 1990 Introduction to
algorithrns McGraw-Hill Book
Company New York.
Watt, D.A., and Brown, D.F. 2000
Programming language processars in
Juva, compiler and intepreter Pearson
Education Addison Wesly New York.

Vlt1anarlo dan Kurniawan, Model Translator Notasi ...