Anda di halaman 1dari 12

MAKALAH

PRAKTIKUM TEKNOLOGI PBO


Studi Kasus “ Pengenalan Java “

Dosen Pengampu : Muhammad Aris Ganiardi, S.Si, M.T.

Kelompok 3 (5MIA) :

Vikri Haykal Agung (061940832136)


Trie Andini (061940832135)
Salsabilla (061940832131)

JURUSAN MANAJEMEN INFORMATIKA

PROGRAM STUDI DIV MANAJEMEN INFORMATIKA

POLITEKNIK NEGERI SRIWIJAYA

TAHUN AKADEMIK 2021


Pengenalan Java

Pengertian Java

Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk
telepon genggam. Dikembangkan oleh Sun Microsysten dan diterbitkan tahun 1995. Java tidak
sama dengan Javascript, Javascript adalah bahasa scripting yang digunakan oleh web browser.
Java merupakan satu dari beberapa kemajuan terpenting di bidang software komputer dalam 20
tahun terakhir. Sama pentingnya dengan HyperText Markup Language (HTML) yang sangat
sukses dalam penerbitan homepage static di World wide Web (WWW). Java meledakkan
internet dengan isi yang lebih menarik dan interaktif.

Kelebihan-Kelebihan Java

 Multiplatform
Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform/sistem operasi komputer,
sesuai dengan prinsip “tulis sekali, jalankan di mana saja”. Dengan kelebihan ini pemrogram
cukup menulis sebuah program Java dan dikompilasi sekali lalu hasilnya dapat dijalankan di atas
beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis Java
dikerjakan di atas sistem operasi Linux tetapi dapat dijalankan dengan baik di atas Microsoft
Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS
dan Sun Solaris. Penyebabnya adalah setiap sistem operasi menggunakan programnya sendiri-
sendiri untuk menginterpretasikan bytecode tersebut.

 Pemrograman Berorientasi Objek


Berorientasi objek (OOP) sehingga memudahkan programmer untuk mendesain, membuat,
mengembangkan dan mengalokasi kesalahan sebuah program dengan basis Java secara cepat,
tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa
pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara
komputer sekalipun.
Artinya semua aspek yang terdapat di Java adalah Objek. Java merupakan salah satu bahasa
pemrograman berbasis objek secara murni. Ini sangat memudahkan pemrogram untuk
mendesain, membuat dan mengembangkan dan mengalokasi kesalahan sebuah program dengan
basis Java secara tepat, mudah dan terorganisir. Kelebihan ini menjadikan Java sebagai salah
satu bahasa pemrograman termudah, bahkan untuk fungsi-fungsi yang advance seperti
komunikasi antara komputer sekalipun.

 Perpustakaan Kelas yang Lengkap


Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program-program yang
disertakan dalam pemrograman Java) yang sangat memudahkan dalam penggunaan oleh pada
pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah keberadaaan
komunitas Java yang besar yang terus menerus membuat perpustakaan baru untuk melingkupi
seluruh kebutuhan pembangun aplikasi.

 Bergaya C++
Java memiliki sintaks seperti bahasa pemrograman C++ sehingga banyak menarik pemrogram
C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah
pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika juga mulai pindah
dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh
murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.

 Pengumpulan sampah Otomatis


Java memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu
melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai
secara luas).

Kekurangan Java

 Tulis sekali, jalankan di mana saja


Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk
J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.

 Mudah didekompilasi
Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan
karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat
tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada
Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit
disembunyikan dan mudah dibajak/direverse-engineer.

 Penggunaan memori yang banyak


Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi
generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal).
Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena
trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus
berkutat dengan mesin komputer berumur lebih dari 4 tahun.

Perbandingan Java dengan Bahasa Pemrograman Lain

Java merupakan bahasa pemrograman OOP tidak seperti bahasa-bahasa sebelumnya yang
bersifat prosedural. OOP sangat berguna untuk membuat software yang memiliki banyak Objek
yang mirip sehingga pemrogram tidak perlu menulis ulang script untuk Objek-Objek tersebut.
Pemrogram cukup menentukan nama ’Class’ dan ’Perilaku’nya dengan meng-assign-kan Class
tersebut ke suatu Objek maka secara otomatis Objek tersebut akan memiliki perilaku yang
ditentukan.
Dilain sisi penggunaan memori untuk program berbasis Java jauh lebih besar daripada
bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi
dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan
teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi
mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun. Namun
karena Java mempunyai memori yang besar sehingga big num problem bias teratasi.
Bahasa pemrograman C menggunakan pointer sehingga programmer bertanggung jawab
untuk membebaskan memory sendiri. Hal ini sering menyebabkan kegagalan memory.
Sedangkan pada Java hanya terdapat reference (tidak mempunyai pointer) dan penggunaan
memory diatasi oleh garbage collector sehingga programmer tidak perlu bersusah payah untuk
mengatur memori.

Tahap Kompilasi Java

a. Tulis / Ubah. Pemrogram menulis program dan menyimpannya di media dalam bentuk
berkas ‘.java’.
b. Kompilasi. Pengkompilasi membentuk bytecodes dari program menjadi bentuk berkas
‘.class’.
c. Muat. Pemuat kelas memuat bytecodes ke memori.
d. Verifikasi. Peng-verifikasi memastikan bytecodes tidak mengganggu sistem keamanan
Java.
e. Jalankan. Penerjemah menerjemahkan bytecodes ke bahasa mesin.tidak bisa di pakai‘’

Contoh Kode Program Sederhana Dalam Java

Contoh program Halo dunia yang ditulis menggunakan bahasa pemrograman Java adalah sebagai
berikut:

// Outputs “Hello, world!” and then exits


public class HelloWorld {
public static void main(String args[]) {
System.out.println(“Hello, world!”);
}
}

Integrated Development Environment

Banyak pihak telah membuat IDE (Integrated Development Environment – Lingkungan


Pengembangan Terintegrasi) untuk Java. Yang populer saat ini (Juli 2006) antara lain:

Dr. Java, program gratis yang dikembangkan oleh Universitas Rice, Amerika Serikat
BlueJ, program gratis yang dikembangkan oleh Universitas Monash, Australia
NetBeans (open source- Common Development and Distribution License (CDDL))

NetBeans disponsori Sun Microsystems, dan versi terkininya memilki Matisse, sebuah GUI
Editor yang menurut pendapat umum merupakan yang terbaik.[rujukan?]

Eclipse JDT (open source- Eclipse Public License)

Eclipse dibuat dari kerja sama antara perusahaan-perusahaan anggota ‘Eclipse Foundation’
(beserta individu-individu lain). Banyak nama besar yang ikut dalam ‘Eclipse Foundation’,
termasuk IBM, BEA, Intel, Nokia, Borland. Eclipse bersaing langsung dengan Netbeans IDE.
Plugin tambahan pada Eclipse jauh lebih banyak dan bervariasi dibandingkan IDE lainnya.

IntelliJ IDEA (commercial, free 30-day trial)


Oracle JDeveloper (free)
Xinox JCreator (ada versi berbayar maupun free)

JCreator ditulis dalam C/C++ sehingga lebih cepat (dan menggunakan memori lebih sedikit) dari
kebanyakan IDE.
Java bytecode

Java bytecode adalah bentuk petunjuk bahwa mesin virtual Java mengeksekusi. Setiap
bytecode opcode adalah satu byte panjang, meskipun beberapa memerlukan parameter, sehingga
beberapa multi-byte instruksi. Tidak semua dari 256 kemungkinan opcodes digunakan. 51
dicadangkan untuk penggunaan masa depan. Selain itu, Sun Microsystems , pengembang asli
dari platform Java , telah menyisihkan tiga nilai secara permanen diimplementasikan. Sebuah
Java programmer tidak perlu menyadari atau memahami bytecode Java sama sekali. Namun,
seperti yang disarankan di IBM jurnal developerWorks, “adalah Memahami bytecode dan apa
bytecode mungkin dihasilkan oleh compiler Java membantu programmer Java dengan cara yang
sama bahwa pengetahuan tentang perakitan membantu C atau C + + programmer. ”
Lihat juga: daftar instruksi bytecode Java

Karena setiap byte memiliki 256 nilai potensial, ada 256 opcodes mungkin. Dari jumlah tersebut,
0x00 melalui 0xca, 0xFE, dan 0xff ditugaskan nilai. 0xca dicadangkan sebagai instruksi
breakpoint untuk debugger dan tidak digunakan oleh bahasa. Demikian pula, 0xFE dan 0xff
tidak digunakan oleh bahasa, dan dicadangkan untuk penggunaan internal oleh mesin virtual.

Instruksi jatuh ke dalam beberapa kelompok yang luas:

Beban dan toko (misalnya aload_0, istore)


Aritmatika dan logika (misalnya Ladd, fcmpl)
Jenis konversi (misalnya i2b, d2i)
Obyek penciptaan dan manipulasi (baru, putfield)
Operan tumpukan manajemen (swap misalnya, dup2)
Kontrol transfer (misalnya ifeq, goto)
Metode doa dan kembali (misalnya invokespecial, areturn)

Ada juga beberapa instruksi untuk sejumlah tugas yang lebih khusus seperti melemparkan
pengecualian, sinkronisasi, dll
Banyak petunjuk prefiks dan / atau akhiran mengacu pada jenis operan mereka beroperasi pada.
Ini adalah sebagai berikut:
 Awalan / Sufiks Operan Type
 i bilangan bulat
 l panjang
 s pendek
 b byte
 c karakter
 f mengapung
 d dua kali lipat
a referensi

Misalnya, “iadd” akan menambahkan dua bilangan bulat, sementara “Dadd” akan menambahkan
dua ganda. The “const”, “beban”, dan “toko” instruksi juga dapat mengambil akhiran bentuk “_
n”, dimana n adalah nomor 0-3 untuk “beban” dan “toko”. N maksimum untuk “const” berbeda
menurut jenis.

The “const” petunjuk mendorong nilai dari tipe tertentu ke stack. Misalnya “iconst_5” akan
mendorong sebuah 5 bilangan bulat, sementara “dconst_1” akan mendorong 1 ganda. Ada juga
“aconst_null”, yang mendorong “nol”. N untuk “beban” dan “toko” instruksi menentukan lokasi
dalam tabel variabel [ klarifikasi diperlukan ] untuk memuat atau dari toko ke. The “aload_0”
instruksi mendorong objek dalam variabel 0 ke stack (ini biasanya “ini” objek). “Istore_1”
menyimpan integer di atas tumpukan ke 1 variabel. Untuk variabel dengan jumlah yang lebih
akhiran dijatuhkan dan operator harus digunakan.
Para model perhitungan Jawa bytecode adalah bahwa dari bahasa pemrograman berorientasi
tumpukan . Sebagai contoh, kode assembly untuk prosesor x86 mungkin terlihat seperti ini:

mov eax, byte [ebp – 4]


mov edx, byte [ebp – 8]
add eax, edx
mov ecx, eax
Kode ini akan menambahkan dua nilai dan memindahkan hasil ke lokasi yang berbeda. Bytecode
dibongkar serupa mungkin terlihat seperti ini:

0 iload_1 1 iload_2 2 iadd 3 istore_3


0 iload_1 1 iload_2 2 iadd 3 istore_3

Perhatikan kode Java berikut:

outer:
for (int i = 2; i <1000; i + +) {
for (int j = 2, j <i, j + +) {
if (i% j == 0)
lanjutkan luar;
}
.. Sistem keluar println (i);
}
Sebuah kompiler Java akan menerjemahkan kode Java di atas ke dalam kode byte sebagai
berikut, dengan asumsi di atas dimasukkan ke dalam metode:

0: iconst_2 1: istore_1 2: iload_1 3: sipush 1000 6: if_icmpge 44 9: iconst_2 10: istore_2 11:
iload_2 12: iload_1 13: if_icmpge 31 16: iload_1 17: iload_2 18: irem 19: ifne 25 22: goto 38 25:
iinc 2, 1 28: goto 11 31: getstatic #84; //Field java/lang/System.out:Ljava/io/PrintStream; 34:
iload_1 35: invokevirtual #85; //Method java/io/PrintStream.println:(I)V 38: iinc 1, 1 41: goto 2
44: return
0: iconst_2 1: istore_1 2: iload_1 3: sipush 1000 6: if_icmpge 44 9: iconst_2 10: istore_2 11:
iload_2 12: iload_1 13: if_icmpge 31 16: iload_1 17: iload_2 18: irem 19: ifne 25 22: goto 38 25:
iinc 2, 1 28: goto 11 31: getstatic #84; //Field java/lang/System.out:Ljava/io/PrintStream; 34:
iload_1 35: invokevirtual #85; //Method java/io/PrintStream.println:(I)V 38: iinc 1, 1 41: goto 2
44: return
Java bytecode dirancang untuk dijalankan dalam mesin virtual Java . Ada beberapa mesin virtual
yang tersedia saat ini, baik produk gratis dan komersial.
Informasi lebih lanjut: mesin virtual Java

Jika mengeksekusi bytecode Java dalam mesin virtual Java tidak diinginkan, pengembang juga
dapat mengkompilasi kode Java sumber atau bytecode Java langsung ke kode mesin asli dengan
alat seperti GNU Compiler Java . Beberapa prosesor dapat mengeksekusi bytecode Java native.
Prosesor tersebut dikenal sebagai prosesor Java .

Java Development Kit (JDK)

Java Development Kit (JDK) merupakan implementasi dari salah satu dari Java SE , Java
EE atau Java ME platform dirilis oleh Oracle Corporation dalam bentuk produk biner ditujukan
Jawa pengembang pada Solaris , Linux , Mac OS X atau Windows . Sejak diperkenalkannya
Java platform, telah jauh Software Development Kit yang paling banyak digunakan ( SDK ).
Pada tanggal 17 November 2006, Sun mengumumkan bahwa mereka akan dirilis di bawah GNU
General Public Lisensi (GPL), sehingga membuatnya perangkat lunak bebas . Hal ini terjadi
sebagian besar pada 8 Mei 2007, ketika Matahari menyumbang kode sumber ke OpenJDK .
JDK memiliki sebagai komponen utamanya kumpulan alat pemrograman, termasuk:

appletviewer – alat ini dapat digunakan untuk menjalankan dan debug applet Java tanpa web
browser
apt – dengan alat penjelasan-processing
extcheck – sebuah utilitas yang dapat mendeteksi JAR-file konflik
idlj – compiler IDL-to-Jawa. Utilitas ini menghasilkan Java bindings dari diberikan IDL Java
file.
java – yang loader untuk aplikasi Java. Alat ini penerjemah dan dapat menginterpretasikan file
kelas yang dihasilkan oleh javac compiler. Sekarang sebuah peluncur tunggal digunakan untuk
kedua pengembangan dan penyebaran. Peluncur penyebaran tua, jre, tidak lagi datang dengan
Sun JDK, dan sebagai gantinya telah digantikan oleh loader java baru.
javac – yang compiler Java , yang mengubah kode sumber menjadi Java bytecode
javadoc – generator dokumentasi, yang secara otomatis menghasilkan dokumentasi dari source
code komentar
jar – pengarsip, yang paket kelas terkait perpustakaan menjadi satu file JAR . Alat ini juga
membantu mengelola file JAR.
javah – header C dan generator rintisan, digunakan untuk menulis metode asli
javap – file kelas disassembler
javaws – yang Web Java Mulai peluncur untuk aplikasi JNLP
JConsole – Java Monitoring dan Management Console
jdb – yang debugger
jhat – Java Heap Alat Analisis (percobaan)
Jinfo – Utilitas ini mendapat informasi konfigurasi dari proses Java berjalan atau crash dump.
(Percobaan)
jmap – Utilitas ini output peta memori untuk Java dan dapat mencetak peta memori obyek
bersama atau rincian tumpukan memori dari suatu proses atau core dump. (Percobaan)
jps – Java Machine Proses Alat Status Virtual daftar diinstrumentasi HotSpot Java Virtual
Machines (JVMs) pada sistem target. (Percobaan)
jrunscript – Java baris perintah skrip shell .
jstack – utilitas yang mencetak Jawa jejak stack benang Java (percobaan)
jstat – Java Virtual Machine statistik alat pemantau (percobaan)
jstatd – jstat daemon (percobaan)
keytool – alat untuk memanipulasi keystore
pack200 – JAR alat kompresi
policytool – penciptaan kebijakan dan alat manajemen, yang dapat menentukan kebijakan untuk
runtime Java, yang menetapkan hak akses yang tersedia untuk kode dari berbagai sumber
VisualVM – alat visual mengintegrasikan beberapa baris perintah alat JDK dan ringan kinerja
dan memori profiling kemampuan
wsimport – menghasilkan portabel JAX-WS artefak untuk memanggil layanan web.
xjc – Bagian dari API Java untuk XML Binding (JAXB) API. Ia menerima skema XML dan
menghasilkan kelas Java.

Alat percobaan mungkin tidak tersedia dalam versi masa depan dari JDK.
JDK juga dilengkapi dengan lengkap Java Runtime Environment , biasanya disebut runtime
pribadi, karena fakta bahwa itu dipisahkan dari JRE “biasa” dan memiliki isi tambahan. Ini
terdiri dari Java Virtual Machine dan semua perpustakaan kelas hadir dalam lingkungan
produksi, serta library tambahan hanya berguna untuk pengembang, seperti internasionalisasi
perpustakaan dan IDL perpustakaan.

Salinan dari JDK juga termasuk berbagai pilihan program contoh menunjukkan penggunaan
hampir semua bagian dari Java API .
JDK membentuk bagian diperpanjang dari software development kit (SDK). Dalam deskripsi
yang menyertai rilis terbaru, yang menerapkan Java SE , EE dan ME , Sun mengakui bahwa di
bawah terminologi, JDK membentuk subset dari SDK yang memiliki tanggung jawab untuk
menulis dan menjalankan program Java. Sisa SDK terdiri dari perangkat lunak tambahan, seperti
server aplikasi, debugger, dan dokumentasi.

Selain JDK yang paling banyak digunakan dibahas dalam artikel ini, ada beberapa JDK lain yang
umum tersedia untuk berbagai platform, beberapa di antaranya dimulai dari sumber Sun JDK dan
beberapa yang tidak. Semua dari mereka mematuhi spesifikasi Java dasar, tetapi mereka sering
berbeda dalam wilayah eksplisit ditentukan, seperti pengumpulan sampah, strategi kompilasi,
dan teknik optimasi.

Anda mungkin juga menyukai