2. BAB I
PENDAHULUAN
LATAR BELAKANG
Pesatnya teknologi, terutama teknologi komputer sudah tak bisa dipungkiri
lagi, bagi yang mengikuti perkembangannya, ia tidak akan dipandang sebelah
mata. Sebaliknya, bagi yang tidak mengikuti perkembangannya, bersiaplah untuk
mundur secara suka rela dari panggung kompetisi. Ibarat wabah, teknologi
komputer sudah menyusupi hampir semua bidang kehidupan manusia. Dari
pemerintah pusat sampai tingkat pemerintah desa, perusahaan-perusahaan,
supermarket, minimarket, perguruan tinggi, SLTA, SLTP, bahkan SD hamper
semuanya mengenal komputer.
Saat ini, yang mempunyai lingkungan yang semakin luas dan banyak
diminati, juga dapat digunakan untuk menghasilkan uang
adalah dunia
pemrograman komputer. Dalam dunia pemrograman komputer, dikenal banyak
bahasa pemrograman, seperti C, C++, Pascal, Basic, Java, dan lain-lain. Di antara
banyaknya bahasa pemrograman, tim penyusun akan membahas Java dan c++
dalam makalah ini.
PERUMUSAN MASALAH
Dalam melaksanakan perencanaan dan pembuatan sistem yang
akan dibuat pada proyek akhir ini, permasalahan yang ada adalah
sebagai berikut :
1. Apakah yang dimaksud dengan pengertian C++ ?
2. Apakah yang dimaksud dengan pengenalan java rumah Radhen
3. TUJUAN
Makalah ini disusun dengan tujuan sebagai sarana untuk mengikuti pesatnya
perkembangan teknologi komputer di masa sekarang ini, salah satunya di dunia
pemrograman yang sekarang semakin banyak diminati. Selain itu, tujuan
disusunnya makalah ini adalah untuk memenuhi tugas mata kuliah teori algoritma,
dikarenakan Penulis masih berstatus sebagai mahasiswa Jurusan Managemen
informatika, Prodi Managemen informatika,POLITEKNIK KOMPUTER NIAGA
BANDUNG.
BAB II
PEMBAHASAN
PENGERTIAN C++
C++ adalah sebuah bahasa pemrograman yang memiliki banyak dialek,
seperti bahasa orang yang banyak memiliki dialek. Dalam C++, dialek bukan
disebabkan oleh karena si pembicara berasal dari Jepang atau Indonesia, melainkan
karena bahasa ini memiliki beberapa kompiler yang berbeda. Ada empat kompiler
umum yaitu : C++ Borland, C++ Microsoft Visual, C/386 Watcom, dan DJGPP.
Anda dapat mendownload DJGPP atau mungkin saja anda telah memiliki kompiler
lain.
Setiap kompiler ini agak berbeda. Setiap kompiler akan dapat menjalankan
fungsi fungsi standar C++ ANSI/ISO, tetapi masing masing kompiler juga akan
dapat menjalankan fungsi fungsi nonstandard (fungsi fungsi ini, agak mirip dengan
ucapan yang tidak standar yang diucapkan orang diberbagai pelosok negeri.
Sebagai contoh, di New Orleans kata median disebut neutral ground). Kadang
kadang pemakaian fungsi nonstandard akan menimbulkan masalah pada saat anda
4. hendak mengkompilasi kode sumber data (source code) (yaitu program berbahasa
C++ yang ditulis oleh seorang programer) mempergunakan kompiler yang
berbeda. Tutorial ini tidak terlepas dari masalah seperti itu.
Bila anda belum mempunyai sebuah kompiler, disarankan agar anda segera
memiliki sebuah kompiler. Sebuah kompiler sederhana sudah cukup untuk
dipergunakan oleh anda dalam mengikuti tutorial ini.
Bahasa pemrograman C++ adalah bahasa yang amat berbeda. Untuk kompiler C++
berbasis DOS, akan memerlukan beberapa kata kunci (keywords); keyword sendiri
tidak cukup untuk difungsikan sebagai input dan output. Walau hampir semua
fungsi dalam file library tampaknya bias diakses oleh header filenya. Berikut ini
contoh program C++ yang sederhana
#include <iostream.h>
void main()
{
cout << “Hello world.n”;
}
Setelah dicompile dan dirun, hasilnya adalah muncul pada layar Hello World
Pustaka dasar C++
Dalam bahasa pemrograman C++, Pustaka Dasar adalah kumpulan class dan
fungsi yang menjadi inti bahasa pemrograman C++. Pustaka Dasar C++ terdiri dari
container umum dan fungsi untuk memanipulasinya, string dan stream (termasuk
fungsi untuk antarmuka pengguna serta fungsi untuk menulis dan membaca file
(file I/O)), serta fungsi-fungsi yang sering digunakan seperti fungsi untuk mencari
akar kuadrat dari sebuah bilangan. Pustaka Dasar C++ sudah termasuk Pustaka
5. Dasar ISO C90 untuk bahasa pemrograman C. Fitur-fitur dalam Pustaka Dasar
C++ dinyatakan dalam namespace std.
Pustaka Pola Dasar (The Standard Template Library atau STL) adalah bagian dari
Pustaka Dasar C++. Pustaka Pola Dasar C++ terdiri dari container, algorithm,
iterator dan lain sebagainya. Orang kadang menyebutkan Pustaka Dasar C++ dan
Pustaka Pola Dasar C++ untuk merujuk pada hal yang sama.
Kepala (header) untuk penggunaan Pustaka Dasar C++ ditulis tanpa akhiran .h.
Penulisan Dalam Bahasa C++
Penulisan dalam bahasa C++ adalah case sensitive. Yang berarti, C++
membedakan huruf kecil dan kapital. Yang berarti (lagi): variabel_pertama tidak
sama dengan variabel_Pertama atau mboknya_echi tidak sama dengan
mboknya_Echi. Komentar dalam C++ ditulis dengan „//‟ untuk komentar dengan
panjang satu baris atau „/*‟ dan „*/‟ untuk komentar lebih dari satu baris, dimana
tanda /* merupakan “pembuka” komentar dan */ adalah “penutup” komentar.
Komentar adalah cataatan ang ditulis oleh programmer untuk sebagai pengingat
atau penjelasan ketika membaca sebuah kode. Kata – kata dalam sebuah komentar
tidak akan dieksekusi oleh compiler.
Beberapa kesalahan dalam penulisan dalam C++ adalah:
• int int; /*salah karena nama sebuah variabel tidak boleh sama dengan seuah tipe
data (int)*/
• int Jam_9; //salah karena nama variabel dimulai dengan huruf besar
• int 90jam; /*nah, ini juga salah karena nama sebuah variabel tidak boleh dimulai
dengan bilangan*/
Penulisan yang benar dalam C++ adalah:
6. • int myint; //betul
• char kata_2; //betul juga...
• double bilangan_KeDuA; /*walaupun nama identifiernya aneh, tapi ini juga betul
:) */
Setiap statement dalam C++ harus diberi tanda „;‟ pada akhir dari statement.
Contoh penulisan statement yang benar dalam C++ adalah:
int a, b, c;
a = 1;
b = 2;
c = a + b;
Sedangkan penulisan yang salah adalah:
int a, b, c
karena itu dianggap error oleh compiler, karena merupakan statement yang tidak
lengkap.
FUNGSI
Fungsi adalah sekumpulan perintah operasi program yang dapat menerima
argumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupun
sebuah hasil perasi.
Nama fungsi yang definisikan sendiri oleh pemrogram tidak boleh sama
dengan nama build-in function pada compiler C++.
7. Fungsi digunakan agar pemrogram dapat menghindari penulisan bagian
program (kode) berulang-ulang, dapat menyusun kode program agar terlihat lebih
rapi dan kemudahan dalam debugging program.
Definisi lainnya yang terdapat dari beberapa sumber, Fungsi merupakan
bagian dari kode program yang terpisah dari program utama.
Bagain kode program ini di-execute jika diperlukan untuk melakukan tindakan
khusus dalam program. Fungsi banyak dilibatkan dalam program dengan tujuan
untuk mengurangi duplikasi pengkodean dan untuk mempermudah pemahaman.
Secara sederhana terdapat fungsi yang tidak mengambil satu parameterpun dan
menghasilkan void (data yang tidak memiliki nilai). Namum pada fungsi yang
lain akan mengambil suatu parameter dan mungkin menghasilkan suatu nilai
tertentu.
Parameter merupakan suatu nilai yang di-pass-kan (diseberangkan) pada
fungsi yang berguna untuk mengubah operasinya atau untuk menunjukan operasi
yang lebih luas. Sebelum fungsi digunakan, fungsi harus dideklarasikan dulu.
Deklarasi fungsi (prototype) berguna untuk memberitahukan compiler tentang
bagaimana fungsi diambil dan tipe data yang
diambil/dihasilkan. Fungsi dapat dipanggil oleh fungsi yang lain maupun dirinya
sendiri (rekursif).
Syntax deklarasi fungsi:
Re_type function_name(parameter);
Parameter berisi pengenal (argument) dan tipe pengenal (argument) yang
8. berfungsi sebagai masukkan. Masukkan tersebut akan diproses sehingga
dihasilkan nilai tertentu sesuai tipe datanya (re_type).
Syntax fungsi:
Re_type function_name(parameter)
{statement-statement}
Dalam C++, program merupakan kumpulan dari fungsi-fungsi. C++
mempunyai fungsi utama yang disebut main. Fungsi merupakan subprogram dan
berguna untuk menjadikan program bersifat modular sehingga dapat digunakan
kembali, baik untuk program itu sendiri maupun untuk program lain yang memiliki
proses yang sama. Fungsi dibedakan menjadi user-define function (didefinisikan
sendiri) dan built-in function (disediakan oleh compiler).
Header dan Fungsi main()
Beberapa bagian yang harus di perhatikan adalah header dan fungsi. Header
adalah dimana kita memasukkan library yang ada dalam C++ kedalam kode
program kita. Fungsi adalah “tempat” dimana kita bisa “bereksperimen”.
Didalamnya terdapat semua statement yang kita buat. Program yang paling
sederhana yang pernah diketahui umat manusia (seram amat kata-katanya) adalah:
#include
using namespace std;
void main ()
{
cout << “Hello, World!n”; } Pada baris pertama, seperti yang kita lihat, ada
perintah #include . Tanda „#‟ adalah preprocessor directive. Preprocessor directive
9. adalah perintah – perintah yang diberikan kepada compiler untuk melakukan
definisi, memasukkan file library, dll. Contoh – contoh dari preprocessor ini
adalah:
• #define maximum_number 100000
• #include “fileku.h”
• #ifdef maximum_number
#undef maximum_number
#define maximum_number_2 1000
Itu berarti bahwa kita memasukkan (include) library iostream ke dalam kode
program kita. iostream itu adalah header yang dibutuhkan untuk “kegiatan” input
dan output dari program. Perintah cout sendiri ada karena kita memasukkan
iostream ke dalam kode program kita dan juga using namespace std; dimana ada
member cout di dalamnya.
Berikut beberapa header yang terdapat dalam C++:
• ctime = header waktu
• cstdio = header untuk perintah C seperti printf dan scanf
• cmath = header untuk operasi matematika seperti sin, cos, sqrt, dan tan
• cstring = header untuk memanipulasi string seperti strcpy, strcat, dll
main () adalah fungsi utama (main) yang harus ada dalam setiap program C++ kita.
Di sini yang digunakan adalah dengan main tanpa nilai kembalian dan tanpa
paramater. Apa itu nilai kembalian dan apa itu paramater? Saksikan setelah pesan –
pesan berikut… eh salah, lihat dalam bab . Jika diperhatikan ada perintah n pada
10. akhir “kalimat” berikutnya Hello, World!. Apa itu? ”n” adalah perintah dalam
banyak bahasa pemrograman sebagai baris baru (new line).
Perintah dengan menggunkan backslash („‟) juga ada beberapa jenis, diantaranya:
• „a‟ = untuk menghasilkan bunyi alert
• „t‟= tabulasi
• „0‟ = null terminated dalam array
Tanda „{„ juga harus ada dalam setiap fungsi C++, itu menandakan awal dari
fungsi / program dan „}‟ menandakan akhir dari fungsi / program.
Tipe Data
Tipe – tipe data yang dikenal dalam C++ adalah sebagai berikut:
Tipe Bilangan Bula
Tipe Data
Ukuran(
Jangkauan
dalam bit)
Int
16 atau 32
-32.767 sampai 32.767
Unsigned int
16 atau 32
0 sampai 65.535
Signed int
16 atau 32
Sama seperti int
Short int
16
-32.767 sampai 32.767
Unsigned
16
0 sampai 65.535
16
Sama seperti int
short int
Signed short
int
11. Long int
32
-2.147.483.647 sampai 2.147.483.647
Unsigned
32
0 sampai 4.294.967.295
32
Sma seperti long int
long int
Signed long
int
Tipe Bilangan Desimal
Tipe Data
Ukuran (dalam bit)
Jangkauan
Float
32
Enam digit presisi
Double
64
Sepuluh digir presisi
Long double
80
Sepuluh digit presisi
Tipe Logika
boolean
adalah tipe yang hanya “menyimpan” nilai “benar” dan “salah” yaitu, true dan
false (boolean). Contoh:
bool benar_atau_salah = true;
Tipe Krakter/String
Tipe Data
Char
Ukuran (dalam bit)
8
Jangkauan
-127 sampai 127
12. Unsigned char
8
0 sampai 255
Signed
8
-127 sampai 127
Operator
1.Operator Assigment
Operator Assigment adalah operator yang berfungsi untuk memasukan
(assign)nilai ke dalam suatu variable ataupun konstanta.Operator ini dilambngkan
dengan samadengan (=).
2.Operator Unary
Operator
Jenis Operasi
Contoh
+
Membuat nilai positif
+9
-
Membuat nilai negative
-9
==
Increment
C++
--
Decrement
C--
Jenis Operasi
Contoh
3.Operator Binary
A. Operator Aritmatika
Operator
=
Penjumlahan
3+4 =7
-
Pengurangan
7-4=3
14. Daftar C++ compiler
Untuk mengubah kode-kode C++ program menjadi suatu program aplikasi
yang dimengerti oleh sistem operasi dan komputer, diperlukan sebuah kompilator
C++.
Berikut ini adalah beberapa kompilator C++ yang dapat digunakan secara gratis.
• Microsoft Visual C++ 2005 Express
• Turbo C++ Explorer
• Apple Xcode for Mac OS X
• Open Source Watcom / OpenWatcom C/C++ Compiler
• Digital Mars C/C++ Compiler (Symantec C++ Replacement)
• Bloodshed Dev-C++ C++ Compiler
• Free Microsoft .NET Framework Software Development Kit (SDK) / Free
Microsoft Visual C++ Compiler
• Intel C++ Compiler for Linux Non-Commercial Version
• Sun Studio Compilers and Tools
• Open64 Compiler Tools
• Apple's Macintosh Programmer's Workshop (C and C++ compilers)
• TenDRA C/C++ Compiler
• GNU C/C++ Compiler
• Ch Embeddable C/C++ Interpreter (Standard Edition)
• DJGPP C and C++ Compilers
• CINT C and C++ Interpreter
• SDCC C Cross-compiler
• Cygwin Project (C & C++ Compilers)
15. • SDCC C Cross-compiler
JAVA RUMAH RADHEN
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.
16. 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 programprogram 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. Universitasuniversitas di Amerika juga mulai pindah dengan mengajarkan Java kepada murid-
17. 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 didekompilasiDekompilasi 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
18. 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
Tulis / Ubah. Pemrogram menulis program dan menyimpannya di media dalam
bentuk berkas „.java‟.
Kompilasi. Pengkompilasi membentuk bytecodes dari program menjadi bentuk
19. berkas „.class‟.
Muat. Pemuat kelas memuat bytecodes ke memori.
Verifikasi. Peng-verifikasi memastikan bytecodes tidak mengganggu sistem
keamanan Java.
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))
20. 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
21. 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, 0×00 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
22. 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
23. 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
24. 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
25. 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
26. 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.
27. 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. Mereka meliputi:
Dalam perkembangan atau dalam modus pemeliharaan:
OpenJDK ;
Aicas JamaicaVM ;
GNU „s GCJ (The GNU Compiler Java );
IBM J9 JDK, untuk AIX, Linux, Windows, MVS,, OS/400 Pocket PC, z / OS,
Oracle Corporation „s JRockit JDK, untuk Windows, Linux, dan Solaris,
Red Hat „s IcedTea , menggantikan proprietary classpath di OpenJDK .
Tidak dipertahankan atau dihentikan:
Apache Harmony
Apple „s Mac OS Runtime Java JVM / JDK untuk Classic Mac OS
Blackdown Java – Pelabuhan Sun JDK untuk Linux
Teknologi Wireless Java
Secara konsep, teknologi wireless dapat dibagi dalam dua katagori, pertama
untuk local dan kedua untuk area yang luas. Peralatan yang termasuk dalam
katagori pertama misalnya adalah remote control untuk membuka atau mengunci
mobil maupun garasi, telepon cordless 900Mhz, peralatan mainan dengan radio
control, atau jaringan wireless. Peralatan wireless jenis pertama ini hanya bekerja
untuk daerah dengan jangkauan yang tidak terlalu jauh. Sedangkan peralatan jenis
28. aplikasi yang kedua diantaranya adalah pager, handphone, pda, dan sejenisnya.
Jangkauan dari perangkat tersebut jauh lebih besar dari aplikasi jenis pertama.
Karena jaringan yang ada di permukaan bumi berupa cell-tower, peralatan
komunikasi bergerak seperti handphone menerima layanan dari sebuah wireless
carrier atau perusahaan yang mengoperasikan cell-tower tersebut.
Aplikasi komunikasi bergerak, dalam perkembangan awal masing-masing
vendor menghasilkan platform aplikasi dan sistem operasi sendiri. Sehingga
sebuah peralatan handphone Nokia dan Siemens mempunyai platform aplikasi
masing-masing. Perbedaaan aplikasi menyebabkan suatu platform aplikasi maupun
sistem operasi dalam handphone Nokia tidak dapat dijalankan dalam peralatan
handphone Siemens misalnya. Sehingga berakibat memperburuk pengembangan
aplikasi-aplikasi yang baru.
Standarisasi yang dilakukan untuk membuat suatu bahasa pemrograman yang
memiliki kebebasan platform atau platform independence. Salah satu teknologi
Java adalah “write once run everywhere”, sehingga protabilitas Java merupakan
suatu kekuatan yang dimiliki Java. Java dijalankan pada sistem operasi apapun
tanpa perlu kompilasi ulang program Java yang dibuat. Untuk komunikasi
bergerak, Sun Microsystem mengenalkan Java 2 Micro Edition (J2ME) yang
merupakan salah satu bagian teknologi Java yang digunakan untuk aplikasi Java
yang berjalan pada perangkat mobile device dan teknologi aplikasi wireless.
Java Virtual Machine (JVM)
Java Virtual Machine adalah software yang berfungsi untuk menjalankan
program Java supaya dapat dimengerti oleh komputer. Kode program Java ditulis
menggunakan editor teks seperti Notepad, Textpad, Editplus, Jcreator dan lainnya.
Java Compiler yang digunakan untuk mengkompilasi kode program Java dirancang
untuk menghasilkan kode yang netral terhadap semua arsitektur perangkat keras
29. (hardware) yang disebut sebagai Java Bytecode (*.class). Dan JVM merupakan
basis dari Java platform dan menjembatani antara bytecode dengan hardware.
Java Application Programming Interface (Java API)
Java API merupakan komponen-komponen dan kelas Java yang sudah jadi,
yang memiliki berbagai kemampuan. Kemampuan untuk menangani objek, string,
angka dan sebagainya
Java Applet merupakan program Java yang berjalan di atas browser.
Penggunaan applet ini akan membuat halaman HTML lebih dinamis dan
menarik.
Java Networking
Java Database Connectivity (JDBC)
JDBC API terdiri atas class dan interface yang ditulis dalam bahasa Java untuk
sebagai alat bantu bagi pembuat program (developer) dan menyediakan
sekumpulan API untuk mengatur keamanan mengakses database seperti Oracle,
MySQL, PostgreSQL, Microsoft SQL Server. Jadi keunggulan API JDBC dapat
mengakses sumber data dan berjalan pada semua Platform yang mempunyai Java
Viortual Machine (JVM).
Java Server Pages (JSP)
JSP adalah suatu teknologi web berbasis bahasa pemrograman Java dan berjalan
pada platform Java. JSP merupakan pengembangan dari Servlet serta merupakan
bagian dari teknologi Java 2 Platform, Enterprise Edition (J2EE).
30. PENUTUP
KESIMPULAN
Kesimpulan yang dapat ditarik dari pembahasan mengenai java yaitu:
1. Java dikenal sebagai bahasa pemrograman yang bersifat strongly, yang berarti
diharuskan mendeklarasikan tipe data dari semua variable yang apabila lupa atau
salah dalam mengikuti aturan pendeklarasian variable, maka akan terjadi error
pada saat proses kompilasi.
2. Tipe data yang terdapat pada bahasa pemrograman Java pada umumnya tidak
jauh berbeda dengan bahasa pemrograman lain seperti C, C++, Pascal, Basic, dan
lainnya, yakni terdiri dari integer, floating point, char, dan boolean.
3. Aturan penulisan variabel pada bahasa pemrograman Java juga tidak jauh
berbeda dengan bahasa pemrograman lain seperti C, C++, Pascal, Basic, dan
lainnya, yakni harus diawali dengan huruf/abjad, karakter mata uang, dan
underscore ( _ ) dan terdiri dari huruf/abjad, angka, dan underscore ( _ ), serta tidak
boleh menggunakan kata-kata yang dikenal oleh bahasa pemrograman Java
(keyword), seperti byte, case, int, dan lainnya.
4. Sama halnya dengan semua bahasa
dapat dipemrograman, Java juga
menyediakan operator-operator aritmatika untuk memanipulasi data numerik.
5. Selain operator aritmatika, Java juga mempunyai operator-operator lain, seperti
operator increment dan decrement, operator assignment (penugasan), operator
relasi, operator logical, operator bitwise (yang terdiri dari and, or, xor, dan
complement), dan operator precedence.
Sedangkan dari pembahasan c++ kami menarik kesimpulan C++ dan C sebagai
bahasa pendahulunya, C merupakan termasuk bahasa pemrograma n tingkat
31. menengah. Pencipta C adalah Brian W. Kernighan dan Dennis M. Ritchie pada
tahun 1972. C merupakan bahasa pemrograman terstruktur yang membagi program
ke dalam sejumlah blok (subprogram). Tujuannya adalah untuk memudahkan
dalam pembuatan dan pengembangan program. Program yang ditulis dengan C
mudah sekali dipindahkan dari satu jenis mesin ke mesin lain. Hal ini karena
adanya standarisasi C yaitu ANSI (American National Standards Institute) yang
menjadi acuan para pembuat compiler C. C++ diciptakan satu dekade setelah C.
C++ diciptakan oleh Bjarne Stroustroup dari Laboratorium Bell, AT&T pada tahun
1983. Pada awalnya C++ diberi nama “A better C”. Nama C++ sendiri diberinama
oleh Rick Mascitti.
Adapun anda ++ berasal dari operator increment pada
bahasa C.
Keistimewaan C++ adalah karena bahasa ini mendukung OOP (Object Oriented
Programming). Tujuan utama pembuatan C++ adalah untuk meningkatkan
produktivitas pemrogram dalam membuat aplikasi. Kebanyakan pakar setuju
bahwa OOP dan C++ mampu mengurangi kompleksitas terutama program yang
terdiri dari 10.000 baris lebih, bahkan dapat meningkatkan produktivitas 2x lipat
dari C, Pascal dan Basic.
SARAN
Dikarenakan cukup rumitnya bahasa pemrograman Java dan semakin
banyaknya pesaing yang berkompetisi di bidang pemrograman Java, maka
Penyusun menyarankan kepada pembaca (khususnya pemula), untuk sejak dini
mempelajari bahasa pemrograman tersebut.
DAFTAR PUSTAKA
http://nengmungil.blogspot.com/2011/01/makalah-program-c.html
http://pahlawanbetopenk.blogspot.com/2011/01/makalah-program-java.htm