Senin, 27 Juli 2020
Selasa, 21 Juli 2020
HAL YANG TERSEMBUNYI DI BALIK MEDIA SOSIAL DAN GAME
Satu miliar lebih pengguna smarphone di dunia ini tidak menyadari. Mantan karyawan google mengatakan ingin membuat penggunanya semakin lengket dengan gadget. Lalu apa tujuan membuat pengguna smartphone semakin lengket dengan genggamannya dan kehidupannya ?
Mantan karyawan media sosial lainnya juga mengatakan pernyataan yang hampir sama. ini(Aplikasi di Media Sosial) suatu makhluk yang sangat berbahaya, misalkan sebuah aplikasi facebook atau media sosial kembangan facebook atau lainya. Kami secara sadar membuat penggunanya semakin ingin berinteraksi sosial lebih jauh dan dalam lagi, kami tambahkan berupa fitur kecanduan didalamnya sehingga banyak pengguna nya tidak sadar terhadap apa yang dilakukannya. Bahkan seorang pengguna akan mempost foto atau vidio yang dapat mempermalukan dirinya demi mendapatkan like atau flower atau hanya untuk menjadi tranding. Padahal keadaan tersebut akan membuat dirinya semakin tereliminasi dari dunia sosial sesunggguhnya.
Banyak orang tidak mengetahui program rahasia yang ditanamkan dalam kemajuan teknologi ini. Adalah Iluminati yang direka oleh kelompok yahudi, banyak juga orang yang telah mengetahui ini, namun ditutupi karena keuntungan yang besifat
duniawi didalamnya. Yang mana banyak orang mencintai dunia, sehingga apabila ia masuk ke dalam lobang biawak ia pun ikut masuk juga, tentunya ini adalah misi iluminations yang dirancang agar tak terlepas dari
smartphone(gadget).
Sabtu, 11 Juli 2020
Bahan Makalah dan Presentations Mata Kuliah Teknik Kompilasi
A. 1. PENGERTIAN TEKNIK KOMPILASI
Teknik adalah pengetahuan dan kepandaian membuat sesuatu yang berkenaan dengan hasil industri (bangunan, mesin)
Kompilasi adalah suatu proses penggabungan serta menterjemahkan sesuatu (source program) menjadi bentuk lain. kompilasi Merupakan Teknik dalam melakukan pembacaan suatu program yang ditulis dalam bahasa sumber, kemudian diterjemahkan ke dalam suatu bahasa lain yang disebut bahasa sasaran.
2. PENGERTIAN TRANSLATOR
Translator adalah suatu program atau metode dimana program tersebut mengambil input sebuah program lain yang ditulis pada suatu bahasa program (source language) ke bahasa lain (object on target language).
Jika source language adalah high level language, seperti cobol, pascal, fortran maka object language adalah low-level language atau mesin language. Translator seperti ini disebut COMPILER
Ada Beberapa Translator
1. Assembler
Source code adalah bahasa assembly, Object code adalah bahasa mesin
2. Compiler
Source code adalah bahasa tingkat tinggi, object code adalah bahasa mesin atau bahasa assembly. Source code dan data diproses berbeda
3. Interpreter
Interpreter tidak menghasilkan bentuk object code, tetapi hasil translasinya hanya dalam bentuk internal, dimana program induk harus selalu ada-berbeda dengan compiler
3. PENGERTIAN INTERPRETER
Interpreter adalah Perangkat lunak yang mampu mengeksekusi code program (yang ditulis oleh programmer) lalu menterjemahkannya ke dalam bahasa mesin, sehingga mesin melakukan instruksi yang diminta oleh programmer tersebut.
4. PENGERTIAN COMPILER
Compiler adalah program sistem yang digunakan sebagai alat bantu dalam pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code (yang dibuat programmer) ke dalam bahasa mesin.
Cara kerja compiler dan interpreter
Perbedaan antara Compiler dengan Interpreter :
1. Untuk menjalankan menjalankan program hasil kompilasi (hasil compiler) dapat dilakukan tanpa membutuhkan source code. Kalau interpreter membutuhkan source code.
2. Jika dengan kompiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing ( pembuatan kode objek ) dan linking ( penggabungan kode objek dengan library ) . Kalau interpreter tidak ada proses terpisah.
3. Jika compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker untuk menggabungkan kode objek dengan berbagai macam library.
4. Interpreter cocok untuk membuat / menguji coba modul ( sub-routine / program-program kecil ). Maka compiler agak repot karena untuk mengubah suatu modul / kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan.
5. Pada kompiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah atau bahkan tidak bisa dioptimasikan.
Proses kompilasi dikelompokkan ke dalam dua kelompok besar :
1. ANALISA
program sumber dipecah-pecah dan dibentuk menjadi bentuk antara (intermediate representation)
Secara umum proses dalam tahap analis terdiri dari 3 bagian utama, yaitu
a. penganalisa leksikal
membaca program sumber krakter demi karaker
mengacu pada pila keentuan dalam bahasa sumber tuap token yg dihasilkan
disimpan ke dalam tabel simbol karekter yang tidak mengikuti pola akan di
laprkan sebagai tidak diknal
b. penganalisa sintaks
menganalisa kesesuain pola deretan token dengan
aturan yang ditentukan dalam bahasa sumber (perbaris)
c. penganalisa semantic
memeriksa token dan ekspresi dari batasan yang
di tetapkan. Batasan-batasan tersebut misalnya :
a. panjang maksimum token identifier adalah 8 karakter,
b. panjang maksimum ekspresi tunggal adalah 80 karakter,
c. nilai bilangan bulat adalah -32768 s/d 32767,
d. operasi aritmatika harus melibatkan operan-operan yang bertipe sama
2. SINTESA
membangun program sasaran yang diinginkan dari bentuk antara
Untuk tahap sintetis terdiri dari 3 bagian utama, yaitu
1. pembangkit kode antara
=> membangkitkan kode antara berdasarkan
pohon parsing , selanjutnya diterjemahkan oleh waktu penerjemah berdsarkan
sintaks
2. pengoptimal kode
Melakukan optimisi (penghemaan space dan waktu
komputasi)
3. pembangkit kode
membangkitkan kode dalam bahasa tingkat tinggi
Pembuatan compiler
Bahasa mesin
-Sangat sukar dan sangat sedikit kemungkinannya untuk membuat compiler dengan
bahasa ini, karena manusia susah mempelajari bahasa mesin,
-Sangat tergantung pada mesin,
-Bahasa Mesin kemungkinan digunakan pada saat pembuatan Assembler
Assembly
-Hasil dari program mempunyai Ukuran yang relatif kecil
-Sulit dimengerti karena statement/perintahnya singkat-singkat, butuh usaha
yang besar untuk membuat
-Fasilitas yang dimiliki terbatas
Bahasa Tingkat Tinggi (high level language)
-Lebih mudah dipelajari
-Fasilitas yang dimiliki lebih baik (banyak)
-Memiliki ukuran yang relatif besar, misal membuat compiler pascal dengan menggunakan
bahasa C
-Untuk mesin yang berbeda perlu dikembangkan tahapan-tahapan tambahan.
-Misal membuat compiler C pada Dos bedasarkan compiler C pada unix
DEFINISI “bahasa sumber”
Bahasa adalah kumpulan kalimat. Kalimat adalah rangkaian kata. Kata adalah unit terkecil komponen bahasa yang tidak bisa dipisah-pisahkan lagi.
Kalimat-kalimat : ‘Seekor kucing memakan seekor tikus.’ dan ‘Budi menendang sebuah bola.’ adalah dua contoh kalimat lengkap Bahasa Indonesia.
Dalam bahasa pemrograman kalimat lebih dikenal sebagai ekspresi sedangkan kata sebagai token
Bahasa Tingkat Tinggi (Pemrograman )
-Bahasa yang lebih dikenal oleh manusia, maksudnya adalah statement yang
digunakan menggunakan bahasa yang dipakai oleh manusia (inggris),
-Bahasa pemrograman didefinisikan dengan menentukan bentuk programnya (sintak)
dan arti programnya (semantik)
-Memberikan fasilitas yang lebih banyak, seperti struktur kontrol program yang
terstruktur, blok-blok serta prosedur dan fungsi-fungsi
-Progam mudah untuk di koreksi (debug)
-Tidak tergantung pada salah satu mesin
-Kontrol struktur seperti : kondisi (if .. Then.. Else ),
perulangan (For, while ), Struktur blok (begin.. End { .. } )
Tingkatan Bahasa Pemrograman
-4GL Language
-High level Language
-Assembly Language
-Machine Language
Sumber perancangan Bahasa
n Konstruksi yang diturunkan dari bahasa alami, karena bahasa alami dapat digunakan sebagai panduan untuk perancangan sintaks
n Matematika, misal untuk perancangan operasi aritmatika
n Bahasa pemrograman yang sudah ada.
Tujuan perancangan bhs program
n Komunikasi dengan manusia
n Pencegahan dan deteksi kesalahan
n Usability
n Efektifitas pemrograman
n Compilability (mengurangi kompleksitas,mis:penggunaan bracket)
n Efisiensi dengan meminimalisir ketidakcocokan antara hardware dengan Bahasa
n Machine independent
n Simplicity :penyederhanaan komponen bahasa program
n Orthogonality : kumpulan primitive yang dikombinasikan dengan berbagai cara dalam membangun kontrol dan struktur data dalam bahasa program
SKENARIO PERANCANGAN BAHASA PEMROGRAMAN
-Tentukan apa yang diinginkan.
-Tentukan feature yang mungkin
-Tentukan desain dan sesuaikan dengan featurenya
-Tentukan rincian, parsing, dan error checking.
-Tuliskan user manual dan help.
-Evaluasilah, jika salah mulai lagi dari langkah 3.
-Jika sudah benar, optimisasilah dan uji segala kemungkinan.
-Cobakan kepada pengguna, tunggu reaksinya.
-Perbaiki bug dan mulai versi baru.
Konsep dan Notasi Bahasa
n Tata bahasa (grammar) adalah sekumpulan dari himpunan variabel-variabel, simbol-simbol terminal, simbol non-terminal, simbol awal yang dibatasi oleh aturan-aturan produksi
n Aturan produksi adalah pusat dari tata bahasa yang menspesifikasikan bagaimana suatu tata bahasa melakukan transformasi suatu string ke bentuk lainnya
n Syntax : suatu aturan yang memberitahu apakah sesuatu kalimat (string) adalah valid dalam program atau tidak
n Semantic : suatu aturan-aturan yang memberikan arti kepada program
Sejarah Hirarki Chomsky
Pada tahun 1959,seorang ahli bernama Noam Chomsky melakukan penggolongan tingkatan bahasa menjadi empat,yang disebut dengan hirarki chomsky. Penggolongan tersebut bisa diketahui melalui tabel berikut.
Dalam hirarki Chomsky ada 4(empat) kelas pengelompokan suatu bahasa, yaitu:
- Reguler (Level/Tipe 3)
Mesin Automata : Finate State Automata. DFA dan NFA
Aturan: - Simbol sebelah kiri harus berupa simbol variabel.
- Simbol sebelah kanan maksimal hanya memiliki simbol variabel dan bila ada terletak di paling kanan
- Bebas konteks (Level/Tipe 2)
Mesin Automata : Push Down Automata
Aturan :- Simbol sebelah kiri harus simbol variabel
- Context Sensitive (Level/Tipe1)
Mesin Automata: Linier Bounded Automata
Aturan: - Simbol pada ruas sebelah kiri harus minimal ada sebuah variabel
- |a| ≤ |b| artinya ruas sebelah kiri tidak lebih besar dari ruas sebelah kanan.
- Unrectricted (Level/Tipe 0)
Mesin Automata : Mesin Turing
Aturan: - Simbol ruas sebelah kiri harus minimal ada sebuah simbol variabel
- Tidak ada batasan pada aturan produksi.
DAFTAR PUSTAKA
[1] Efendi.Ilham/Pengertian Kompilasi
[2] Ajis / Desember2016/Perbedaan Tranlator
[3] 22Desember2018/Pengertian Translator Compiler