QUIZ
PRA UTS
1.
Apa yang anda ketahui ketahui tentang tentang compiler
dan
interpreter? Jelaskan!
Compiler sendiri
adalah program sistem yang digunakan sebagai alat bantu dalam
pemrogaman.Perangkat lunak yang melakukan proses penterjemahan code (yang
dibuat programmer) ke dalam bahasa mesin. Hasil dari terjemahan ini adalah
bahasa mesin. Pada beberapa compiler, output berupa bahasa mesin dilaksanakan
dengan proses assembler yang berbeda.
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. Perintah-perintah
yang dibuat oleh programmer tersebut dieksekusi baris demi baris, sambil
mengikuti logika yang terdapat di dalam kode tersebut. Proses ini sangat
berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa
satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan
dilaksanakan sebelum program tersebut dieksekusi.
Perbedaan
antara Compiler dengan Interpreter :
a.
Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh
kode sumber. Kalau interpreter butuh kode sumber.
b.
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.
c.
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.
d.
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.
e.
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.
2.
Sebutkan kekurangan dan kelebihan bahasa pemrograman Java?
Kelebihan
Java :
*Mudah
Untuk Dikembangkan
Kelebihan
dari bahasa pemrograman Java ini yaitu kemudahan dalam hal pengembangan
aplikasi. Setiap aplikasi maupun program yang dibuat dengan menggunakan dasar
bahasa pemrograman Java mempunyai kemampuan yang sangat baik untuk dilakukan
pengembangan lebih lanjut.
*Sifatnya
multiplatform
Bahasa
pemrograman java yang pada saat ini banyak diminati oleh para developer dan
programmer adalah Java karena Java menjadi salah satu bahasa pemrograman yang
sifatnya multi platform, alias universal dan dapat digunakan dalam platform
apapun. Hal ini membuat banyak sekali para pengembang aplikasi yang menggunakan
basis bahasa pemrograman Java ini untuk membuat aplikasi yang diinginkan oleh
progammer tersebut.
*Java
sangat mendukung programmer dalam beorientasi pada usability.
Keunggulan
bahasa pemrograman java yang satu ini sangat berhubungan dengan kemampuan
aplikasi – aplikasi yang dibuat dengan menggunakan atau berbasis Java yang
mampu bekerja di platform manapun. Hal ini berhubungan dengan usability, atau
kegunaan dari suatu aplikasi.
*Bahasa
pemrograman yang berorientasi terhadap objek
Selain
itu, bahasa pemrograman Java yang satu ini lebih bersifat teknis. Bahasa
pemrograman Java adalah salah satu bentuk atau jenis bahasa pemrograman yang
berorientasi terhadap objek. Itu artinya setiap aplikasi yang dibuat dengan
menggunakan bahasa pemrograman java akan disesuaikan dengan objek atau dapat
juga dengan tampilan dan interface dari aplikasi tersebut.
*Dinamis
Kelebihan
dari bahasa pemrograman Java yang yang lainnya yaitu sifatnya yang dinamis.
Sifat dinamis dari bahasa pemrograman Java ini sangat berkaitan dengan
kemampuan dari bahasa pemrograman Java yang sangat mudah untuk dikembangkan.
Struktur kodenya dapat dengan mudah dimodifikasi dan dikembangkan, sesuai
dengan kebutuhan dari user.
Kekurangan
Java :
Penggunaan
memory yang cukup tinggi
Bahasa
pemrograman Java memang banyak sekali menawarka fitur-fitur yang luar baisa,
baik itu kemudahan dalam menyusun script, hingga fitur object oriented, yang
menjadi salah satu ciri khas dari bahasa pemrograman Java. Namun sayangnya,
kelebihan tersebut harus dikompensasi dengan kebutuhan memory yang besar.
Hal
ini menjadikan beberapa aplikasi Java membuthkan resource memory yang
cukup besar untuk bisa berjalan dengan baik. Begitu pula pada saat seorang
developer akan mengembangkan aplikasi Java, developer juga membutuhkan memory
yang besar dalam mengembangkan aplikasi ini. Itu berarti developer membutuhkan
komputer yang memiliki kapasitas ram yang besar untuk melancarkan develop agar
lebih optimal.
Mudah
didekompilasi
Istilah
dekompilasi ini adalah pengambilan source code. Jadi, Java menjadi salah
satu bahasa pemrograman yang mudah mengalami dekompilasi.
Source
code dan juga script yang dibuat dengan bahasa pemrograman Java bisa
dengan mudah diambil dan juga dibajak oleh orang lain, sehingga menimbulkan
banyak hack dan juga pengcopyan dari aplikasi yang menggunakan bahasa
pemrograman Java tersebut.
3.Jelaskan
apa yang dimaksud variable,tipe data, operator dan method?
*
Variabel merupakan sesuatu yang digunakan menampung data dimana nilainya selalu
berubah.
*Tipe
data merupakan sekumpulan nilai dan operasi-operasi yang diasosiasikan pada
nilai-nilai tersebut.
*Operator
adalah simbol-simbol yang memiliki fungsi untuk menghubungkan operand sehingga
menjadi sebuah transformasi.
Method merupakan
suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu
object. Method didefinisikan pada class akan tetapi dipanggil melalui object
3.
Jelaskan perbedaan class dan object?
Perbedaan
antara objek dengan class
Objek
:
Secara
sederhana, objek merupakan segala sesuatu yang dapat dibedakan satu sama
lainnya. Segala sesuatu yang ada di alam semesta ini adalah objek. Contohnya:
manusia, mobil, hewan, tumbuhan, tempat, atau bahkan yang tidak bersifat fisik
seperti kejadian atau konsep-konsep. Sehingga bisa disimpulkan bahwa objek
tidak harus bersifat fisik, karena jika dikaitkan dengan OOP objek akan menjadi
bentuk logis.Suatu entitas yang mampu menyimpan informasi (status)
dan mempunyai operasi (kelakuan) yang dapat diterapkan atau dapat berpengaruh
pada status objeknya.
Objek
dalam konsep OOP masih memiliki keadaan dan sifat seperti halnya objek di dunia
nyata, karena pada dasarnya objek dalam OOP merupakan representasi dari dunia
nyata. Objek dalam OOP merepresentasikan keadaan melalui variabel, sedangkan
sifatnya direpresentasikan menjadi method. Method merupakan suatu fungsi
(sub-routine) yang berhubungan dengan objek.
Dalam
konteks OOP, objek adalah instansiasi (yang dibentuk secara seketika) dari
kelas pada saat eksekusi (seperti halnya deklerasi variabel pada pemograman
prosedural).
Jadi
semua objek adalah instan dari kelas.
Obyek
merupakan hasil instansiasi dari suatu kelas.
Sehingga
kelas digunakan untuk menciptakan banyak objek
Proses
pembentukan obyek dari suatu class disebut dengan instantiation.
Obyek
disebut juga instances.
Karakteristik
objek :
Setiap
obyek memiliki atribut sebagai status
Setiap
obyek memiliki tingkah laku (behavior)
Contoh:
obyek sepeda
–
Memiliki atribut (state) : pedal, roda, jeruji, warna, jumlah roda.
–
Memiliki tingkah laku (behavior) : kecepatanya menaik, kecepatannya menurun,
perpindahan gigi sepeda
Class
:
class
merupakan suatu konsep yang lebih tinggi lagi hierarkinya dari objek yang
dihasilkan dari proses generalisasi objek-objek yang memiliki beberapa ciri
yang sama. Dalam OOP, kelas merupakan suatu hasil pemodelan fakta-fakta dari
suatu objek yang berguna bagi suatu aplikasi yang diprogram. Proses pemodelan
fakta-fakta tersebut disebut dengan abstraksi.
Dalam
suatu sistem, sering kali ditemui beberapa obyek sejenis
Beberapa
obyek sejenis dapat di-identifikasi sebagai suatu kelas (class)
Kelas
mendefinisikan bentuk dan perilaku objek
Kelas
adalah template/ prototype yang mendefinisikan Type objek
Merupakan
sarana pengkapsulan kumpulan data danmetode-metode yang beroperasi pada
kumpulan data
Kelas
merupakan “cetakan” (blueprint) dari suatu obyek
Dari
suatu kelas kita dapat membuat obyek-obyek baru yang masing-masing dapat
memiliki keadaan yang berbeda-beda.
Dalam
suatu sistem, sering kali ditemui beberapa obyek sejenis
Beberapa
obyek sejenis dapat di-identifikasi sebagai suatu kelas (class)
Kelas
mendefinisikan bentuk dan perilaku objek
Kelas
adalah template/ prototype yang mendefinisikan Type objek
Merupakan
sarana pengkapsulan kumpulan data danmetode-metode yang beroperasi pada
kumpulan data.
Kelas
merupakan “cetakan” (blueprint) dari suatu obyek
Dari
suatu kelas kita dapat membuat obyek-obyek baru yang masing-masing dapat
memiliki keadaan yang berbeda-beda
4.Jelaskan
apa yang anda ketahui tentang inheritance, polymorphisme dan encapsulation?
A,Encapsulation
Encapsulation
atau pengkapsulan adalah konsep tentang pengikatan data atau metode yang
berbeda yang disatukan atau “dikapsulkan” menjadi satu unit data. Encapsulation
dapat mempermudah dalam pembacaan code karena informasi yang disajikan tidak
perlu dibaca secara rinci dan sudah merupakan satu kesatuan.
Encapsulation
juga sering digunakan karena terdapat fitur information-hiding mechanism.
Mekanisme ini menghilangkan akses publik ke atribut-atribut yang terdapat di
dalam “kapsul” tersebut. Metode ini dapat memudahkan anda dalam mendefinisikan
atribut apa saja yang dapat dibaca dan diperbarui.
B. Inheritance
Inheritance
adalah konsep OOP di mana kita dapat membentuk class baru yang “mewarisi” atau
memiliki bagian-bagian dari class yang sudah ada sebelumnya. Konsep ini
menggunakan sistem hirarki atau bertingkat. Seperti sebuah Drop-Down Menu yang
ada di kebanyakan website,
di mana semakin spesifik submenunya, semakin spesifik pula kontennya. Demikian
juga dengan Inheritance OOP di mana semakin spesifik subclassnya, semakin
sedikit pula komponen yang dapat diwarisi class tersebut.
C.Polymorphism
Polymorphism
adalah konsep di mana suatu objek yang berbeda-beda dapat diakses melalui
interface yang sama. Sebuah objek yang polymorphic dapat beradaptasi dengan
metode apapun yang diimplementasikan pada objek tersebut, dan setiap class
memiliki interpretasinya tersendiri terhadap interfacenya.
Dalam
Java, terdapat 2 jenis polymorphism yaitu Static Polymorphism dan Dynamic
Polymorphism.
Static
Polymorphism yang umum digunakan adalah Method Overloading. Method
Overloading mengizinkan kalian untuk menerapkan beberapa implementasi metode yang
berbeda dalam kelas yang sama namun dengan parameter yang berbeda-beda.
Dalam Dynamic
Polymorphism sebuah subclass dapat menimpa metode dari superclassnya. Jika
kalian menerapkan subclass tersebut, Java Virtual Machine akan selalu
menggunakan metode yang sudah ditimpa.