new look

Wednesday 16 September 2015

LOGIKA INFORMATIKA

By SISCA LIDHYA SARI,S.Kom

Logika Informatika
A. Pengertian Logika
Logika berasal dari bahasa Yunani logos yang berarti Ilmu untuk berfikir dan menalar dengan benar (sehingga didapatkan kesimpulan yang absah). Dan manusia mampu mengembangkan pengetahuan karena mempunyai bahasa dan kemampuan menalar.
Untuk dapat menarik konklusi yang tepat, diperlukan kemampuan menalar. kemampuan menalar adalah kemampuan untuk menarik konklusi yang tepat dari bukti-bukti yang ada, dan menurut aturan-aturan tertentu. Logika bisa merupakan cabang filosofi dan bisa juga cabang dari matematika. Logika terkategori matematika murni karena matematika adalah logika yang tersistematisasi
.

Informatika mempunyai konsep dasar, teori, dan perkembangan aplikasi tersendiri. Informatika dapat mendukung dan berkaitan dengan aspek kognitif dan sosial, termasuk tentang pengaruh serta akibat sosial dari teknologi informasi pada umumnya. Penggunaan informasi dalam beberapa macam bidang, seperti bioinformatika, informatika medis, dan informasi yang mendukung ilmu perpustakaan, merupakan beberapa contoh yang lain dari bidang informatika.

Dalam ruang lingkup yang lebih luas, informatika meliputi beberapa aspek:
teori informasi yang mempelajari konsep matematis dari suatu informasi
* ilmu informasi yang mempelajari tentang cara pengumpulan, klasifikasi, manipulasi penyimpanan, pengaksesan, dan penyebarluasan informasi untuk keperluan sosial dan kemasyarakatan secara menyeluruh.

* ilmu komputer dan teknik komputer yang mempelajari tentang pemrosesan, pengarsipan, dan penyebaran informasi dengan menggunakan teknologi informasi dan alat lain yang berbasis komputer.



Informatika adalah ilmu yang mempelajari tentang perangkat (bisa sistem atau alat) yang dapat menghasilkan dan mendistribusikan “informasi”. Jadi kata kunci pertama pada definisi ini adalah kata : informasi, sehingga itulah makanya bidang ini disebut sebagai : informatika. Sedangkan kata kunci kedua adalah pada kata “menghasilkan” dan “mendistribusikan”.

B. Mengenal Konjungsi, Disjungsi, Implikasi dan Biimplikasi

Dalam ilmu logika informatika dikenal yang namanya kalimat majemuk. Kalimat majemuk adalah sebuah kalimat yang tersusun dari dua kalimat atau lebih dan dengan menggunakan kata hubung tertentu. Ada beberapa jenis kalimat majemuk di antaranya adalah sebagai berikut;


1. KONJUNGSI
Konjungsi adalah suatu kalimat majemuk yang menggunakan kata hubung "DAN" / "AND". Notasinya adalah "^".

contoh kalimat 1:
premis 1(p): Andi adalah seorang mahasiswa. (BENAR)
premis 2(q): Andi adalah seorang karyawan perusahaan swasta. (BENAR)
konjungsi(p^q): Andi adalah seorang mahasiswa dan karyawan perusahaan swasta. (BENAR)

contoh kalimat 2:
premis 1(p): Ayam adalah unggas. (BENAR)
premis 2(q): Burung kutilang adalah mamalia. (SALAH)
konjungsi(p^q): Ayam adalah unggas dan burung kutilang adalah mamalia. (SALAH)

Tabel kebenaran dari konjungsi:
 

Catatan: Konjungsi baru bernilai benar apabila kedua premis bernilai benar. Jika salah satu atau kedua premis bernilai salah maka nilai pernyataan / kalimat tersebut salah.


2. DISJUNGSI
Disjungsi adalah suatu kalimat majemuk yang menggunakan kata hubung "ATAU" / "OR". Notasinya adalah "v".

contoh kalimat disjungsi 1:
premis 1(p): Dalam pelajaran TIK, siswa menggunakan komputer sekolah. (BENAR)
premis 2(q): Dalam pelajaran TIK, siswa boleh membawa laptop sendiri. (BENAR)
disjungsi(pvq): Dalam pelajaran TIK, siswa boleh menggunakan komputer sekolah atau membawa laptop sendiri. (BENAR)

contoh kalimat disjungsi 1:
premis 1(p): Air adalah benda cair. (BENAR)
premis 2(q): Es adalah air yang mendidih. (SALAH)
disjungsi(pvq): Air adalah benda cair atau es adalah air yang mendidih. (BENAR)

Tabel kebenaran dari disjungsi

catatan: Disjungsi bernilai salah apabila kedua premis pembentuknya bernilai salah. Jika salah satu atau kedua premis bernilai benar maka disjungsi bernilai benar.

3. IMPLIKASI
Implikasi adalah kalimat majemuk yang menggunakan kata hubung "JIKA" p "MAKA" q. Implikasi disebut juga kalimat bersyarat tunggal artinya jika kalimat p bernilai benar maka kalimat q pun akan bernilai benar juga. Notasi dari implikasi adalah "=>"

p => q dapat dibaca dengan beberapa cara, di antaranya:
- Jika p maka q.
- q jika p.
- p adalah syarat yang cukup untuk q.
- q adalah syarat yang diperlukan untuk p.

Contoh implikasi 1:
premis 1(p): Anita kuliah di Universitas Binadarma. (BENAR)
premis 2(q): Anita adalah mahasiswa. (BENAR)
implikasi(p=>q): Jika Anita kuliah di Universitas Binadarma maka Anita adalah mahasiswa.(BENAR)
  
Contoh implikasi 2:
premis 1(p): 2+2=7. (SALAH)
premis 2(q): 6x2=12. (BENAR)
implikasi(p=>q): Jika 2+2=7 maka 6x2=12. (BENAR)

Contoh implikasi 3:
premis 1(p): Bumi itu bulat. (BENAR)
premis 2(q): Bulan berbentuk prisma. (SALAH)
implikasi(p=>q): Jika bumi itu bulat maka bulan berbentuk prisma. (SALAH)

Tabel kebenaran implikasi:
catatan: Implikasi baru bernilai salah bila nilai dari pernyataan (q) setelah kata "maka" bernilai salah. Ini disebabkan pernyataan setelah "maka" adalah kesimpulan dari kalimat majemuk tersebut.


4. BIIMPLIKASI
Biimplikasi merupakan kalimat bersyarat ganda. Biimplikasi menggunakan kata hubung JIKA DAN HANYA JIKA. Notasinya: "<=>"

Untuk lebih memahami biimplikasi, perhatikan kalimat berikut: 

"Jika saya sakit maka saya tidak berangkat kuliah."

Apakah saya tidak berangkat kuliah hanya jika dikarenakan saya sakit saja? Tidak. Banyak alasan lain selain sakit yang menyebabkan saya tidak berangkat kuliah. Bisa karena keperluan keluarga, cuti, hari libur, hari hujan dan lain sebagainya. Ini menandakan bahwa kalimat di atas adalah implikasi bukan biimplikasi.

kalimat selanjutnya.

"Jika nilai ujian matematika saya lebih dari 7.50 maka saya lulus."

Apakah saya bisa lulus selain jika nilai matematika saya lebih dari 7.50? Tidak. Satu-satunya syarat kelulusan adalah bila nilai ujiannya lebih dari 7.50. Inilah yang disebut biimplikasi.

Tabel kebenaran biimplikasi:
Biimplikasi equivalen (senilai) dengan jika p maka q dan jika q maka p;
p<=>q ≡ (p=>q)^(q=>p)
tabel kebenaran: 
 



















Wednesday 27 May 2015

Tips Jitu Tes TOEFL Dijamin LULUS

CHACHA


Tips Jitu Tes TOEFL Dijamin LULUS

Tes Toefl adalah salah satu syarat untuk lulus dari perguruan tinggi.
Berikut ini Tips Jitu Tes TOEFL Dijamin LULUS :

- TOEFL merupakan model yang mempunyai pola-pola tertentu. 
- Kenali bentuk-bentuk perintah (direction) dalam TOEFL. - Tes TOEFL bukan merupakan bahan yang harus dihindari.
- Belajar TOEFL itu entertaining dan meyenangkan.
- Biasakan hari-hari anda dengan membaca bacaan apa saja yang berbahasa inggris.
- Jangan perna membatasi bacaan anda pada tema-tema tertentu.
- Langkan waktu anda untuk membaca tiga kalimat dalam setiap harinya.
- Belajar bahasa adalah proses yang memakan waktu.


Kunci Untuk Listening Comprehension
Kunci umum
1. Pahami bentuk-bnetuk perintah (direction) pada masing-masing bagian (part) dengan baik sbelum hari H ujian.
2. Bacalah pilihan pada masing-masing soal sebanyak mungkin ketika narator sedang membacakan direction dan contoh soal (example).
3. Dengarkan dengan penuh konsentrasi dan focuskan perhatian anda pada percakapan yang sedang anda dengarkan.
4. Memaksimalkan kemampuan listening anda pada soal-soal pertama pada masing part.
Part A: short conversation
5. Fokuskan pendengaran anda pada orang kedua.
6. Jangan panik jika tidak bisa memahami kata demi kata dalam percakapan secara komplit. Anda hanya perlu menangkap ide atau isi percakapan.
7. Bila anda sma sekali tidak bisa memahami apa yang dibicarakan pembicara kedua, pilihlah jawaban yang paling berbeda dari apa yang anda dengar.
8. Pahami bentuk-bentuk funtional expresion (agreement (persetujuan), uncertainty (ketidakpastian), suggestion (sugesti), surprise(keterkejutan)), idiomatic, expression , dan situasi ketika pembicaraan dilakukan.
Part B: longer conversation
9. Ketika narator membacakan direction part B anda sebaiknya membaca pilihan jawaban secara sekilas kemudian merekamnya dan memeperkirakan tema apa yang akan menjadi perbincangan.
10. Ketika menyimak conversation, anda harus mengetahui apa tema/topik yang dibicarakan.
11. Waspadalah terhadap masing-masing pertanyaan.
12. Cermati kondisi dan situasi yang terjadi selama percakapan berlangsung, yakni menyangkut tempat dan waktu pembicaraan, apa dan siapa yang dibicarakan.
Part C: talks
13. Bila anda memiliki waktu, lihatlah pilihan-pilihan jawaban yang tertera pada lembar soal dan temukan kata kuncinya.
14. Waspadailah pembicaraan pada kalimat pertama karena biasanya akan menjadi topik bagi kalimat-kalimat selanjutnya.
15. Fokuskan pendengaran anda pada hal-hal yang berkaitan dengan pertanyaan 5 –W (what, who, when, where, why ) dan How.
16. Buatlah kesimpulan/inferasi atas situasi yang terjadi saat pembicaraan dilakukan.
Structure And Written Expression
Kunci umum 
1. Pahami bentuk-bnetuk perintah (direction) pada masing-masing bagian (part) dengan baik sbelum hari H ujian.
2. Kerjakan soal-soal struktur terlebih dahulu.
3. Lanjutkan pada soal-soal written expression
Kunci structure
4. Pertama-tama perhatikan kalimat yang dipertanyakan dalam soal.
5. Perhatikan masing-masing jawaban yang tersedia, pilihlan yang paling tepat untuk menelngkapi kalimat yang dipersoalkan.
6. Jangan perna mengiliminasi sebuah pilihan jawaban dengan hanya melihat pada jawaban tanpa melihat kalimat soal.
7. Pertama-tama perhatikan kata atau kelompk kata yang digaris bawahi dan temukan secara cepat bagian mana yang tidak tepat.
8. Bila soal yang anda hadapi tidak bis adiidentifikasi hanya melihat kata atau kelompok kata yang bergaris bawah, segeralah membaca kalimat secara lengkap.

Reading Comprehension
Kunci umum 
1. Jangan terlalu lama membaca teks bacaan. 
2. Perhatikan semua pertanyaan yang terdapat pada sebuah bacaan dan ingat-ingat kata kuncinya.
3. Jangan panik apabila tema bacaan bukan merupakan disiplin ilmu yang anda kuasai.
4. Lakukan previewing untuk mengetahui topik bacaan.
5. Perhatikan kalimat pertama dari sebuah bacaan paragraf untuk mengetahui main idea.
6. Pahami konteks yang terdapat pada bacaan untuk mengetahui arti kata tertentu.
7. Lakukan scanning untuk menemukan informasi tertentu yang berkaitan dengan permintaan soal.
8. Kumpulkan fakta dan data dalam bacaan untuk melakukan inferasi/ penyimpulan.
9. Berkonsentrasi selama membaca teks bacaan.
10. Tingkatkan kecepatan membaca anda

sumber http://caramudahberbahasainggrisyogyakarta[dot]blogspot[dot]com/

Sunday 17 August 2014

MAKALAH TEKNIK KOMPILASI


BAB I
PENDAHULUAN
1.1. Latar Belakang

            Teknik Kompilasi merupakan teknik untuk melakukan pembacaan suatu source program yang ditulis dalam bahasa sumber, misalnya Pascal, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa sasaran atau bentuk yang dapat dieksekusi secara langsung dari sistem operasi yang tersedia dalam suatu komputer. Teknik tersebut diimplementasikan dalam suatu perangkat lunak (software) yang disebut Compiler.
            Istilah Compiler muncul karena dulu ada program yang menggunakan subrutin-subrutin atau pustaka-pustaka untuk keperluan yang sangat khusus yang dikumpulkan menjadi satu sehingga diistilahkan compiled.
Kompilator pertama yang dibuat adalah kompilator untuk bahasa FORTRAN yang pada saat itu dikembangkan dengan memakan sejumlah tenaga ahli yang setara dengan pekerjaan yang dilakukan oleh 18 orang. Dengan adanya program bantu dan tata cara pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur bahasa yang cermat, maka suatu kompilator untuk bahasa yang terstruktur seperti PASCAL atau C dapat dikembangkan.
Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi ke dalam 2 bagian utama yaitu bagian analisis dan bagian sintesis.

1.2.Permasalahan
            Permasalahan yang di dapat dari pembuatan makalah laporan ini yaitu bagaimana mengetahui cara kerja komplier pada pembuatan program analisis leksikal menggunakan bahasa pemograman Java
1.3.Tujuan
Tujuan dalam penulisan makalah ini adalah untuk mengetahui fungsi-fungsi struktur compiler pada teknik kompilasi pembuatan  program analisis leksikal menggunakan bahasa pemograman java.
                                                  BAB II
TINJAUAN PUSTAKA
2.1. Sejarah Kompilasi

Sejarah perkembangan suatu kompilator sudah dimulai sejak lama, yaitu pada saat mulai ditemukannya komputer pada awal 1950-an. Sejak waktu tersebut teknik dan cara pembentukan suatu kompilator telah berkembang dengan sangat pesat dan pembentukkan suatu kompilator dapat dilakukan makin mudah. Demikian pula program bantu (tools) untuk membuat suatu kompilator sudah dapat diperoleh sehingga pembentukan suatu kompilator dapat dilakukan dengan cepat.
Kompilator pertama yang dibuat adalah kompilator untuk bahasa FORTRAN yang pada saat itu dikembangkan dengan memakan sejumlah tenaga ahli yang setara dengan pekerjaan yang dilakukan oleh 18 orang. Dengan adanya program bantu dan tata cara pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur bahasa yang cermat, maka suatu kompilator untuk bahasa yang terstruktur seperti PASCAL atau C dapat dikembangkan.
Proses kompilasi dari suatu kompilator pada dasarnya dapat dibagi ke dalam 2 bagian utama yaitu bagian analisis dan bagian sintesis. Tahap analisis program yang ditulis dalam bahasa sumber dibagi dan dipecah ke dalam beberapa bagian yang kemudian akan dipresentasikan ke dalam suatu bentuk antara dari program sumber.
Operasi-operasi yang dilakukan oleh program sumber ditentukan dan dicatat dalam suatu struktur pohon (tree) yang disebut dengan nama pohon sintaks (sintax tree) Dalam hal ini setiap nodal pada tree tersebut menyatakan suatu operasi, sedangkan anak dari nodal (titik) tersebut memberikan argumen yang diperlukan



2.2.1  Pengertian Kompilasi
Teknik Kompilasi merupakan Teknik dalam melakukan pembacaan suatu program yang ditulis dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa sasaran. Dalam melakukan proses penerjemahan tersebut, sudah barang tentu kompilator akan melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya. Proses penerjemahan yang dilakukan oleh kompilator ini disebut proseskompilasi (compiling).
Bila dipandang sepintas lalu, maka akan timbul beranekaragam kompilator yang dapat dibuat antara lain sebagai berikut :
  1. Bahasa Sumber seperti bahasa FORTRAN, PASCAL, C dan juga bahasa-bahasa lainnya yang sifat dan pemakaiannya agak spesifik atau khusus, seperti bahasa untuk program DBASE, SPSS dan lain sebagainya.
  2. Bahasa Sasaran dapat berupa bahasa sumber lain seperti C, FORTRAN dan lain sebagainya atau Bahasa Mesin (Machine Language) yang digunakan oleh suatu prosessor mikro atau sumber komputer besar maupunkomputer super
Secara umum proses dalam tahap analis terdiri dari 3 bagian utama, yaitu :
  1. Proses analisis leksikal
  2. Proses analisis sintaktik
  3. Proses analisis semantik
Tahap sintesis yang berikutnya program sasaran dibentuk berdasarkan representasi antara yang dihasilkan pada tahap analisis.
Untuk tahap sintetis terdiri dari 2 bagian utama, yaitu
  1. Proses yang menghasilkan kode (code generator)
  2. Proses optimasi kode (code optimizer)
2.1.2. Tahap–tahap Kompilasi
            Kompilator (compiler) adalah sebuah program yang membaca suatu program yang ditulis dalam suatu bahasa sumber (source language) dan menterjemah-kannya ke dalam suatu bahasa sasaran (target language).
Proses kompilasi dikelompokan ke dalam dua kelompok besar:
1.      Tahap Analisa (Front-end) :Menganalisis source code dan memecahnya menjadi bagian-bagian dasarnya. Menghasilkan kode level menengah dari source code input yang ada.
2.      Tahap Sintesa (Back-end) : membangun program sasaran yang diinginkan dari bentuk antara.
Tahap-tahap yang harus dilalui pada saat mengkompilasi program, yaitu:
1.  Analisa Leksikal                                          
2.  Analisa Sintaks                                          Tahap analisa (front-end)
3.  Analisa Semantik                                      
4.  Pembangkit Kode Antara
5.  Code optimization                                                          Tahap sintesa (back-end)
-            Analisa Leksikal (scanner)
Berfungsi memecah teks program sumber menjadi bagian-bagian kecil yang mempunyai satu arti yang disebut token, seperti : konstanta, nama variabel, keyword, operator.
-            Analisa Sintaks(parser)
Berfungsi mengambil program sumber (sudah dalam bentuk barisan token) dan menentukan kedudukan masing-masing token berdasarkan aturan sintaksnya dan memeriksa kebenaran dan urutan kemunculan token.
-             Analisa Semantik
Berfungsi menentukan validitas semantiks/keberartian program sumber. Biasanya bagian ini digabung dengan Pembangkit kode antara (intermediate code generator).
-            Pembangkit Kode Antara
Berfungsi membangkitkan kode antara.
-            Code optimation
Berfungsi mengefisienkan kode antara yang dibentuk.
-            Code generator
Berfungsi membangkitkan kode program target dalam bahasa target yang ekivalen dengan bahasa sumber .
-            Symbol table management
Berfungsi mengelola tabel simbol selama proses kompilasi. Tabel simbol adalah struktur data yang memuat record untuk tiap identifier dengan atribut-atribut identifier itu.
-            Penangan Kesalahan (Error handler)
Berfungsi menangani kesalahan yang berlangsung selama proses kompilasi.

Contoh :
pernyataan pemberian nilai (assignment) :  position := initial + rate * 60

2.2. Analisis Leksikal
Analisis Leksikal/Analisis Linier/Pembacaan Sekilas (Scanner). Dalam kaitan ini aliran karakter yang membentuk program sumber dibaca dari kiri ke kanan dan dikelompokkan dalam apa yang disebut token yaitu barisan dari karakter yang dalam suatu kesatuan mempunyai suatu arti tersendiri..
Analisis ini melakukan penerjemahan masukan menjadi bentuk yang lebih berguna untuk tahap-tahap kompilasi berikutnya. Analisis Leksikal merupakan antarmuka antara kode program sumber dan analisis sintaktik (parser). Scanner melakukan pemeriksaan karakter per karakter pada teks masukan, memecah sumber program menjadi bagian-bagian disebut Token. Analisis Leksikal mengerjakan pengelompokkan urutan-urutan karakter ke dalam komponen pokok: identifier, delimeter, simbol-simbol operator, angka, keyword, noise word, blank, komentar, dan seterusnya menghasilkan suatu Token Leksikal yang akan digunakan pada Analisis Sintaktik.

Model dasar untuk membentuk suatu Analisis Leksikal adalah Finite-State Automata, 2 aspek penting pembuatan Analisis Leksikal adalah:
·         Menentukan token-token bahasa.
·         Mengenali token-token bahasa dari program sumber.
Token-token dihasilkan dengan cara memisahkan program sumber tersebut dilewatkan ke parser. Analisis Leksikal harus mengirim token ke parser. Untuk mengirim token, scanner harus mengisolasi barisan karakter pada teks sumber yang merupakan 1 token valid. Scanner juga menyingkirkan informasi seperti komentar, blank, batas-batas baris dan lain-lain yang tidak penting (tidak mempunyai arti) bagi parsing dan Code Generator.
Scanner juga harus dapat mengidentifikasi token secara lengkap dan membedakan keyword dan identifier. Untuk itu scanner memerlukan tabel simbol. Scanner memasukkan identifier ke tabel simbol, memasukkan konstanta literal dan numerik ke tabel simbol sendiri setelah konversi menjadi bentuk internal.
Analisis Leksikal merupakan komponen kompilasi independen yang berkomunikasi dengan parser lewat antarmuka yang terdefinisi bagus dan sederhana sehingga pemeliharaan analisis leksikal menjadi lebih mudah dimana perubahan-perubahan terhadap analisis leksikal tidak berdampak pada pengubahan kompilator secara keseluruhan. Agar dapat memperoleh fitur ini, maka antarmuka harus tidak berubah. Kebanyakan kode yang menyusun analisis leksikal adalah sama untuk seluruh kompilator, tidak peduli bahasa.
Pada analisis leksikal yang dituntun tabel (table-driven lexical analyzer), maka satu-satunya yang berubah adalah tabel itu sendiri. Kadang diperlukan interaksi analisis leksikal dan analisis sintaktik yang lebih kompleks. Sehingga analisis leksikal harus dapat menganggap string sebagai token bertipe, bukan identifier. Untuk itu perlu komunikasi
tingkat lebih tinggi yang biasanya dilakukan suatu struktur data dipakai bersama seperti tabel simbol. Analisis Sintaktik dapat memasukkan string ke tabel simbol, mengidentifikasi sebagai Type atau typedef, sehingga analisis leksikal dapat memeriksa tabel simbol untuk menentukan apakah lexeme adalah tipe token atau identifier.
2.2.1 Tugas-tugas Analsis Leksikal
Tugas-tugas Analisis leksikal antara lain sebagai berikut :
1.      Konversi Program Sumber Menjadi Barisan Token. Mengubah program sumber yang dipandang sebagai barisan byte/karakter menjadi token.
2.      Menangani Kerumitan Sistem Masukkan/Keluaran. Karena analisis leksikal biasanya berhubungan langsung dengan kode sumber yang diwadahi file, maka analisis leksikal juga bertindak sebagai benteng untuk komponen-komponen lain di kompilator dalam mengatasi keanehan-keanehan sistem masukkan/keluaran sistem operasi dan sistem komputer.
Optimasi perlu dilakukan agar analisis leksikal membaca karakter degan sekaligus membaca sejumlah besar bagian file. Perangkat masukkan/keluaran benar-benar diisolasi agar tidak terlihat oleh parser dan komponen-komponen kompilator yang lain.

2.2.2 Tugas-tugas tambahan Analisis Leksikal
Tugas-tugas tambahan Analisis Leksikal antara lain sebagai berikut :
1.      Penghilangan komentar dan whitespace (tab,spasi,karakter lainnya).Tindakan housekeeping dilakukan scanner sehingga mengisolasikan dari parser dan komponen-komponen kompilator lain.
Peran ini menyederhanakan perancangan parser (dan grammar bahasa pemrograman). Scanner juga mencatat nomor baris saat itu sehingga penanganan kesalahan yang cerdas dapat mengirim pesan kesalahan dengan lebih akurat.
2.      Konversi literal/konstanta numerik menjadi tipe data tertentu. Analisis leksikal dapat mengirim token, dan nilainya. Nilai ini biasa disebut atribut. Namun demikian, bila analisis leksikal ditambahin dengan tugas-tugas tambahan yang terlalu banyak juga akan menjadi tidak baik. Karena itu membatasi analisis
leksikal hanya untuk melakukan tugas pengenalan pola token (ditambah membuang komentar) adalah mempermudah pemeliharaan.
2.2.3 Tahap-tahap Pelaksanaan Analisis Leksikal
Tahap Pelaksanaan Analisis Leksikal antara lain sebagai berikut :
1.      Pada single one pass.
            Terjadi interaksi antara scanner dan parser. Sacnner dipanggil saat parser memerlukan token berikutnya. Pendekatan ini lebih baik karena bentuk internal program sumber yang lengkap tidak perlu dibangun dan disimpan di memori sebelum parsing dimulai.

2.      Pada separate pass.
            Scanner memproses secara terpisah, dilakukan sebelum parsing. Hasil scanner disimpan dalam file. Dari file tersebut, parsing melakukan kegiatannya.
Scanner mengirim nilai-nilai integer yang mempresentasikan bentuk internal token, bukan nilai-nilai string. Keunggulan cara ini adalah ukurannya kecil dan tetap. Parser sangat lebih efisien bekerja dengan nilai integer yang mempresentasikan simbol daripada string nyata dengan panjang variabel.
2.2.4    Implementasi Analisis Leksikal
Implementasi Analisis Leksikal antara lain sebagai berikut :
1.    Pengenalan Token.
a.    Scanner harus dapat mengenali token
b.   Terlebih dahulu dideskripsikan token-token yang harus dikenali
2.    Pendeskripsian Token.
a.    Menggunakan reguler grammar. Menspesifikasikan aturan-aturan pembangkit token-token dengan kelemahan reguler grammar menspesifikasikan token berbentuk pembangkit, sedang scanner perlu bentuk pengenalan.
b.   Menggunakan ekspresi grammar. Menspesifikasikan token-token dengan ekspresi reguler.
c.    Model matematis yang dapat memodelkan pengenalan adalah finite-state acceptor (FSA) atau finite automata.
Implementasi Analisis Leksikal sebagai Finite Automata.
            Pada pemodelan analisis leksikal sebagai pengenal yang menerapkan finite automata, analisis leksikal tidak cuma hanya melakukan mengatakan YA atau TIDAK. Dengan demikian selain pengenal, maka analisis leksikal juga melakukan aksi-aksi tambahan yang diasosiasikan dengan string yangsedang diolah.
            Analisis leksikal dapat dibangun dengan menumpangkan pada konsep pengenal yang berupa finite automata dengan cara menspesifikasikan rutin-rutin (aksi-aksi) tertentu terhadap string yang sedang dikenali.
            Penanganan Kesalahan di Analisis Leksikal Hanya sedikit kesalahan yang diidentifikasi di analisis leksikal secara mandiri karena analisis leksikal benar-benar merupakan pandangan sangat lokal terhadap program sumber.
            Bila ditemui situasi dimana analisis leksikal tidak mampu melanjutkan proses karena tidak ada pola token yang cocok, maka terdapat beragam alternatif pemulihan. yaitu:
1.      "Panic mode" dengan menghapus karakter-karakter berikutnya sampai analisis leksikal menemukan token yang terdefinisi bagus
2.      Menyisipkan karakter yang hilang
3.      Mengganti karakter yang salah dengan karakter yang benar
4.      Mentransposisikan 2 karakter yang bersebelahan.
            Salah satu cara untuk menemukan kesalahan-kesalahan di program adalah menghitung jumlah transformasi kesalahan minimum yang diperlukan untuk mentransformasikan program yang salah menjadi program yag secara sintaks benar.
2.3.  Analisis Semantik
Disini dilakukan pengecekan pada struktur akhir yang telah diperoleh dan diperiksa kesesuainnya dengan komponen program yang ada. Merupakan pusat dari tahapan translasi, struktur sintaktik yang dikenali oleh Analisis Sintaktik diproses, dan struktur objek eksekusi sudah mulai dibentuk. Analisis Semantik kemudian menjadi jembatan antara analisis dan sintesis dari translasi.
Analisis Semantik menghasilkan suatu kode objek yang dapat dieksekusi dalam translasi sederhana, tetapi biasanya bentuk dari kode objek yang dapat dieksekusi ini merupakan bentuk internal dari final program eksekusi, yang kemudian dimanipulasi oleh tahap optimisasi dari translator sebelum akhirnya kode eksekusi benar-benar dihasilkan.
2.4. Analisis Sintaktik
            Analisis Sintaktik/Analisis Hirarki/Parsing. Dalam tahap ini karakter atau token yang diperoleh pada analisis leksikal disusun dan dikelompokkan dalam suatu hirarki tertentu yang secara keseluruhan mempunyai arti tertentu..
            Disinilah struktur program yang lebih besar diidentifikasi (statement, deklarasi, ekspresi, dan lainnya) menggunakan token leksikal yang dihasilkan Analisis Leksikal.
Analisis Sintaktik selalu bekerja bergantian dengan Analisis Semantik.
1.      Pertama, Analisis Sintaktik mengidentifikasikan urutan Token Leksikal seperti ekspresi, statement, subprogram, dan lainnya.
2.      Analisis Semantik kemudian dipanggil untuk proses unit ini.
            Analisis Sintaktik berfungsi menghasilkan pohon sintaks program sumber yang didefinisi grammar. Simbol terminal pohon sintaks adalah token-token yang dihasilkan scanner. Sebelum akhirnya kode eksekusi benar-benar dihasilkan.
2.4.1. Code Generation
Code Generator/Pembentukan Kode. Dimana dalam tahap ini dibentuk antara dari bahasa sumber yang berupa suatu pohon sintaks diterjemahkan ke dalam suatu bahasa assembler atau bahasa mesin.
Bentuk antara yang diperoleh biasanya merupakan suatu perintah 3 alamat atau suatu kuadrupel (3-address code atau quadruples), sedangkan bahasa mesin yang dihasilkan adalah suatu bahasa assembler yang merupakan suatu perintah 1 alamat, 1 akumulator.


2.4.2.  Code Optimizer
Code Optimizer/Optimasi Kode. Hasil pembentukan kode yang diperoleh kemudian dibuat kompak lagi dengan melakukan beberapa teknik optimasi supaya dapat diperoleh program yang lebih efesien.
Dalam hal ini dilakukan beberapa hal seperti pendeteksian suatu ekspresi yang sering terjadi, sehingga pengulangan tidak perlu terjadi dan lain sebagainya.













BAB III
HASIL DAN PEMBAHASAN















BAB IV
PENUTUP
4.1. Kesimpulan
            Teknik Kompilasi Merupakan Teknik dalam melakukan pembacaan suatu program yang ditulis dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa sasaran. Dalam melakukan proses penerjemahan tersebut, sudah barang tentu kompilator akan melaporkan adanya keanehan-keanehan atau kesalahan yang mungkin ditemukannya. Proses penerjemahan yang dilakukan oleh kompilator ini disebut proses kompilasi (compiling). Dengan adanya program bantu dan tata cara pembentukan yang sistematis dan tertata dengan baik serta pendefinisian struktur bahasa yang cermat, maka suatu kompilator untuk bahasa yang terstruktur seperti PASCAL atau C dapat dikembangkan.