Showing posts with label JENI. Show all posts
Showing posts with label JENI. Show all posts

Sunday, 26 August 2012

Pengenalan Pemrograman Berorientasi Obyek


OOP (Object Oriented Programming) berputar pada konsep dari obyek yang merupakan elemen dasar dari program Anda. Ketika kita membandingkan dengan dunia nyata, kita dapat menemukan beberapa obyek disekitar kita seperti mobil, singa, manusia dan seterusnya. Obyek ini dikarakterisasi oleh atribut dan tingkah lakunya.

Contohnya, objek sebuah mobil mempunyai atribut tipe transmisi, warna dan manufaktur. Mempunyai tingkah laku berbelok, mengerem dan berakselerasi. Dengan cara yang sama pula kita dapat mendefinisikan perbedaan sifat dan tingkah laku dari singa. Coba perhatikan tabel dibawah ini sebagai contoh perbandingan 

Contoh Objek dalam Kehidupan Nyata

Dengan deskripsi ini, obyek pada dunia nyata dapat secara mudah asumsikan sebagai obyek perangkat lunak menggunakan atribut sebagai data dan tingkah laku sebagai method. Data dan method dapat digunakan dalam pemrograman game atau perangkat lunak interaktif untuk membuat simulasi obyek pada dunia nyata. 
Contohnya adalah perangkat lunak obyek mobil dalam permainan balap mobil atau perangkat lunak obyek singa dalam sebuah perangkat lunak pendidikan interaktif pada kebun binatang untuk anak anak.

Sumber : J.E.N.I
:

Teknik Pengamanan JAVA

Java juga menyediakan beragam teknik pengamanan lain :


  • Bahasa dirancang untuk mempersulit eksekusi kode perusak. Peniadaan pointer merupakan langkah besar pengamanan. Java tidak mengenal operasi pointer. Di tangan programmer handal, operasi pointer merupakan hal yang luar biasa untuk optimasi dan pembuatan program yang efisien serta mengagumkan. Namun mode ini dapat menjadi petaka di hadapan programmer jahat. Pointer merupakan sarana luar biasa untuk pengaksesan tak diotorisasi. Dengan peniadaan operasi pointer, Java dapat menjadi bahasa yang lebih aman.

  • Java memiliki beberapa pengaman terhadap applet. Untuk mencegah program bertindak mengganggu media penyimpanan, maka applet tidak diperbolehkan melakukan open, read ataupun write terhadap berkas secara sembarangan. Karena Java applet dapat membuka jendela browser yang baru, maka jendela mempunyai logo Java dan teks identifikasi terhadap jendela yang dibuka. Hal ini mencegah jendela pop-up menipu sebagai permintaan keterangan username dan password.

Fitur-fitur dari JAVA

Java Virtual Machine (JVM)


JVM adalah sebuah mesin imajiner (maya) yang bekerja dengan menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan spesifikasi hardware dan platform dimana kompilasi kode Java terjadi. Spesifikasi inilah yang membuat aplikasi berbasis Java menjadi bebas dari platform manapun karena proses kompilasi
diselesaikan oleh JVM.

Aplikasi program Java diciptakan dengan file teks berekstensi .java. Program ini dikompilasi menghasilkan satu berkas bytecode berekstensi .class atau lebih. Bytecode adalah serangkaian instruksi serupa instruksi kode mesin. Perbedaannya adalah kode mesin harus dijalankan pada sistem komputer dimana kompilasi
ditujukan, sementara bytecode berjalan pada java interpreter yang tersedia di semua platform sistem komputer dan sistem operasi.


Garbage Collection


Banyak bahasa pemrogaman lain yang mengijinkan seorang programmer mengalokasikan memori pada saat dijalankan. Namun, setelah menggunakan alokasi memori tersebut, harus terdapat cara untuk menempatkan kembali blok memori tersebut supaya program lain dapat menggunakannya. Dalam C, C++ dan bahasa lainnya, adalah programmer yang mutlak bertanggung jawab akan hal ini. Hal ini dapat menyulitkan bilamana programmer tersebut alpa untuk mengembalikan blok memori sehingga menyebabkan situasi yang dikenal dengan nama memory leaks. Program Java melakukan garbage collection yang berarti program tidak perlu menghapus sendiri objek–objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh programmer dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat pada bahasa yang memungkinkan alokasi dinamis.
Garbage Collection dapat diartikan juga sebagai teknik yang digunakan java untuk menangani objek yang sudah tidak diperlukan lagi


Code Security


Code Security terimplementasi pada Java melalui penggunaan Java Runtime Environment (JRE). Java menggunakan model pengamanan 3 lapis untuk melindungi sistem dari untrusted Java Code.


  • Pertama, class-loader menangani pemuatan kelas Java ke runtime interpreter. Proses ini menyediakan pengamanan dengan memisahkan kelas– kelas yang berasal dari local disk dengan kelas–kelas yang diambil dari jaringan. Hal ini membatasi aplikasi Trojan karena kelas–kelas yang berasal dari local disk yang dimuat terlebih dahulu.



  • Kedua, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan–aturan dasar bahasa Java.  



  • Ketiga, manajemen keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem windowing.
Setelah seluruh proses tersebut selesai dijalankan, barulah kode program di eksekusi.


Sumber Referensi :
J.E.N.I
lecturer.ukdw.ac.id






Saturday, 25 August 2012

Membuat Buku Alamat Menggunakan ARRAY

Masalah :

Berikut ini adalah array multidimensi yang menyatakan isi dari sebuah buku alamat:


String entry = {{"Florence", "735-1234", "Manila"},
{"Joyce", "983-3333", "Quezon City"},
{"Becca", "456-3322", "Manila"}};


Cetak buku alamat tersebut dalam format berikut ini:


Name : Florence
Tel. # : 735-1234
Address : Manila

Name : Joyce
Tel. # : 983-3333
Address : Quezon City

Name : Becca
Tel. # : 456-3322
Address : Manila



Sumber Soal : J.E.N.I


Penyelesaian:

Download Source Codenya disini.

Tampilan saat dirunning (NetBeans)

Menampilkan Hari dalam Seminggu menggunakan ARRAY

Masalah :


Buatlah sebuah String array yang akan menginisialisasi 7 hari dalam seminggu. Sebagai contoh,


String days[] = {"Monday", "Tuesday"….};



Gunakan while-loop, kemudian print semua nilai dari array (Gunakan juga untuk dowhile dan for-loop)Using a while-loop.

Sumber Soal : J.E.N.I

Penyelesaian :

Download Source Code disini.

Tampilan saat dirunning (NetBeans)

Sumber : J.E.N.I


ARRAY Multidimensi


Array multidimensi diimplementasikan sebagai array yang terl etak di dalam array. Array multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. Sebagai contoh,


// Elemen 512 x 128 dari integer array
int[][] twoD = new int[512][128];

// karakter array 8 x 16 x 24
char[][][] threeD = new char[8][16][24];

// String array 4 baris x 2 kolom
String[][] dogs = {{ "terry", "brown" },
{ "Kristin", "white" },
{ "toby", "gray"},
{ "fido", "black"}
};



Untuk mengakses sebuah elemen didalam array multidimensi, sama saja dengan mengakses array satu dimensi. Misalnya saja, untuk mengakses elemen pertama dari baris pertama didalam array dogs, kita akan menulis,


System.out.print( dogs[0][0] );



Kode diatas akan mencetak String “terry” di layar.


Sumber : J.E.N.I


Menentukkan Panjang Sebuah ARRAY


Untuk mengetahui berapa banyak elemen didalam sebuah array, Anda dapat menggunakan atribut length dari array. Atribut ini akan mengembalikan ukuran dari array itu sendiri. Sebagai contoh,


arrayName.length


Pada contoh sebelumnya, kita dapat menuliskannya kembali seperti berikut ini,


public class ArraySample
{
public static void main( String[] args ){
int[] ages = new int[100];

for( int i=0; i<ages.length; i++ ){
System.out.print( ages[i] );
}
}
}




Petunjuk penulisan program:
1. Pada saat pembuatan for loop untuk memproses elemen-elemen dalam array, gunakanlah atribut length yang di l etakkan di dalam bag ian pengkondisian dar i fo r loop. Hal ini akan menyebabkan loop secara otomatis menyesuaikan diri terhada ukuran array yang berbeda-beda.

2. Pendeklarasian ukuran array di program Java, biasanya menggunakan sebuah konstanta untuk mempermudah. Sebagai contoh,

final int ARRAY_SIZE = 1000; //pendeklarasian constant
. . .
int[] ages = new int[ARRAY_SIZE];


Sumber : J.E.N.I

Mengakses Sebuah Elemen ARRAY


Untuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari array, Anda harus menggunakan sebuah angka atau yang disebut sebagai indeks atau subscript. 

Pada saat memasukkan nilai ke dalam array, sebuah nomor indeks atau subscript telah diberikan kepada tiap anggota array, sehingga program dan programmer dapat mengakses setiap nilai pada array apabila dibutuhkan. Nilai indeks selalu dalam tipeinteger, dimulai dari angkanol dan dilanjutkan ke angka berikutnya sampai akhir array. Sebagai catatan bahwa indeks didalam array dimulai dari 0 sampai dengan (ukuranArray-1).


Sebagai contoh, pada array yang kita deklarasikan tadi, kita mempunyai,

//memberikan nilai 10 kepada elemen pertama array
ages[0] = 10;

//mencetak elemen array yang terakhir
System.out.print(ages[99]);



Perlu diperhatikan bahwa sekali array dideklarasikan dan dikonstruksi, nilai yang disimpan dalam setiap anggota array akan diinisialisasi sebagai nol. Oleh karena itu, apabila Anda menggunakan tipe data seperti String, array tidak akan diinisalisasi menjadi string kosong “”. Untuk itu Anda tetap harus membuat String array secara eksplisit.

Berikut ini adalah contoh kode untuk mencetak seluruh elemen didalam array. Dalam contoh ini digunakanlah pernyataan for loop, sehingga kode kita menjadi lebih pendek.

public class ArraySample{
public static void main( String[] args ){
int[] ages = new int[100];

for( int i=0; i<100; i++ ){
System.out.print( ages[i] );
}
}
}



Petunjuk penulisan program:
1. Biasanya, lebih baik menginisialisasi atau meng-instantiate array setelah
Anda mendeklarasikannya. Sebagai contoh pendeklarasiannya

int []arr = new int[100];
                lebih disarankan daripada,
int []arr;
arr = new int[100];

2. Elemen-elemen dalam n-elemen array memiliki indeks dari 0 sampai n-1.
Perhatikan disini bahwa tidak ada elemen array arr[n]. Hal ini akan menyebabkan
array-index out-of-bounds exception.

3. Anda tidak dapat mengubah ukuran dari sebuah array


Sumber : J.E.N.I


Mendeklarasikan ARRAY


Array harus dideklarasikan seperti layaknya sebuah variabel. Pada saat mendeklarasikan array, anda harus membuat sebuah daftar dari tipe data, yang diikuti oleh sepasang tanda kurung [], lalu diikuti oleh nama identifier-nya. Sebagai contoh,

int []ages;


atau Anda dapat menempatkan sepasangtandakurung [] sesudah nama identifier. Sebagai contoh,


int ages[];




Setelah pendeklarasian array , kita harus membuat array dan menentukan berapa panjangnya dengan sebuah konstruktor. Proses ini di Java disebut sebagai instantiation (istilah dalam Java yang berarti membuat). Untuk meng-instantiate sebuah obyek, kita membutuhkan sebuah konstruktor. Kita akan membicarakan lagi mengenai instantiate obyek dan pembuatan konstruktor pada bagian selanjutnya. Sebagai catatan bahwa ukuran dari array tidak dapat diubah setelah anda menginisialisasinya. Sebagai contoh,

//deklarasi
int ages[];

//instantiate obyek
ages = new int[100];



atau bisa juga ditulis dengan,

//deklarasi dan instantiate obyek
int ages[] = new
int[100];



Inisialisasi Arrays


Pada contoh diatas, pendeklarasian tersebut akan memberitahukan kepada compiler Java, bahwa identifier ages akan digunakan sebagai nama array yang berisi data bertipe integer, dan dilanjutkan dengan membuat atau meng-instantiate sebuah array baru yang terdiri dari 100 elemen. Selain menggunakan sebuah pernyataan new untuk meng-instantiate array, Anda juga dapat mendeklarasikan, membangun, kemudian memberikan sebuah nilai pada array sekaligus dalam sebuah pernyataan.


//membuat sebuah array yang berisi variabel-variabel
//boolean pada sebuah identifier. Array ini terdiri dari 4
//elemen yang diinisilisasikan sebagai value
//{true,false,true,false}
boolean results[] ={ true, false, true, false };

//Membuat sebuah array yang terdiri dari penginisialisasian
//4variabel double bagi value {100,90,80,75}
double []grades = {100, 90, 80, 75};

//Membuat sebuah array String dengan identifier days. Array
//ini terdiri dari 7 elemen.
String days[] = { “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”, “Sun”};



Sumber : J.E.N.I



Apa Itu ARRAY?


Pada Bab sebelumnya, kita telah mendiskusikan bagaimana cara pendeklarasian berbagai macam variabel dengan menggunakan tipe data primitif. Dalam pendeklarasian variabel, kita sering menggunakan sebuah tipe data beserta nama variabel atau identifier yang unik. Apabila kita ingin menggunakan variabel tersebut, kita akan memanggil dengan nama identifier-nya.

Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier berbeda untuk tiap variabel.

int number1;
int number2;
int number3;
number1 = 1;
number2 = 2;
number3 = 3;



Seperti yang dapat Anda perhatikan pada contoh diatas, kode tersebut akan sia-sia karena harus menginisialisasi dan menggunakan setiap variabel padahal sebenarnya variabel-variabel tersebut digunakan untuk tujuan yang sama. Pada bahasa pemrograman Java maupun di bahasa pemrograman yang lain, terdapat sebuah kemampuan untuk menggunakan satu variabel yang dapat menyimpan beberapa data dan memanipulasinya dengan lebih efektif. Tipe variabel inilah yang disebut sebagai array.

Atau lebih jelasnya, array adalah kumpulan data yang mempunyai type data sama dan dibedakan dengan index





Sebuah array akan menyimpan beberapa item data yang memiliki tipe data sama didalam sebuah blok memori yang berdekatan yang kemudian dibagai menjadi beberapa ruang. Array adalah sebuah variabel/sebuah lokasi tertentu yang memiliki satu nama sebagai identifier, namun identifier ini dapat menyimpan lebih dari sebuah nilai.


Dalam array, ada yang namanya instansiasi. Untuk pengenalan lebih lanjut tentang Array akan dijelaskan pada posting selanjutnya.



Sumber Referensi : 
- J.E.N.I
- Penjelasan Guru Pengajar JAVA

[Operator] Operator Precedence

Operator precedence didefinisikan sebagai perintah yang dilakukan compiler ketika melakukan evaluasi terhadap operator, untuk mengajukan perintah dengan hasil yang tidak ambigu/ hasil yang jelas.
Operator Precedence

Diberikan pernyataan yang membingungkan,

6%2*5+4/2+88-10

Kita dapat menuliskan kembali pernyataan diatas dan menambahkan beberapa tanda kurung terhadap operator precedence,

((6%2)*5)+(4/2)+88-10;


Petunjuk Penulisan Program:
Untuk menghindari kebingungan dalam evaluasi operasi matematika, buatlah pernyataan sesederhana mungkin dan gunakan bantuan tanda kurung.


Sumber : J.E.N.I

[Operator] Bagaimana Operator Kondisi Bekerja?

Sebagai contoh, diberikan code sebagai berikut,



public class ConditionalOperator
{
public static void main( String[] args ){

String status = "";
int grade = 80;

//mendapatkan status pelajar
status = (grade >= 60)?"Passed":"Fail";

//print status
System.out.println( status );
}
}


Hasil keluaran dari program ini akan menjadi,


Passed



Berikut ini adalah flowchart yang menggambarkan bagaimana operator ?: bekerja,

Flowchart

***

Berikut ini adalah program lain yang menggunakan operator ?: ,

class ConditionalOperator
{
public static void main( String[] args ){
int score = 0;
char answer = 'a';

score = (answer == 'a') ? 10 : 0;
System.out.println("Score = " + score );
}
}

Hasil keluaran program adalah,

Score = 10


Sumber : J.E.N.I

[Operator] Operator Kondisi(?:)


Operator kondisi ?: adalah operator ternary. Berarti bahwa operator ini membawa tiga argumen yang membentuk suatu ekspresi bersyarat. Struktur pernyataan yang menggunakan operator kondisi adalah,

exp1?exp2:exp3



Dimana nilai exp1 adalah suatu pernyataan boolean yang memiliki hasil yang salah satunya harus berupa nilai true atau false. Jika exp1 bernilai true, exp2 merupakan hasil operasi. Jika bernilai false, kemudian exp3
merupakan hasil operasinya.

Sumber : J.E.N.I

[Operator] Contoh Program Operator Logika NOT

Berikut ini adalah contoh source code yang menggunakan operator logika NOT,


public class TestNOT
{
public static void main( String[] args ){
boolean val1 = true;
boolean val2 = false;
System.out.println(!val1);
System.out.println(!val2);
}
}



Hasil keluaran program adalah sebagai berikut,


false
true



Sumber : J.E.N.I

[Operator] Operator Logika Not (!)



Logika NOT digunakan dalam satu argumen, dimana argumen tersebut dapat menjadi suatu pernyataan, variabel atau konstanta. Berikut ini adalah tabel kebenaran untuk operator not!,


Tabel Kebenaran untuk !


Sumber : J.E.N.I

Friday, 24 August 2012

[Operator] Operator Logika


Operator logika memiliki satu atau lebih operand boolean yang menghasilkan nilai boolean. Terdapat enam operator logika yaitu:



Pernyataan dasar untuk operasi logika adalah,


      x1 op x2



Dimana x1, x2 dapat menjadi pernyataan boolean. Variabel atau konstanta, dan op adalah salah satu dari operator &&, &, ||, | atau ^. Tabel kebenaran yang akan ditunjukkan selanjutnya, merupakan kesimpulan dari hasil dari setiap operasi untuk semua kombinasi yang mungkin dari x1 dan x2.

Sumber : J.E.N.I

[Operator] Contoh Program Operator Logika ^

Berikut ini adalah contoh source code yang menggunakan operator logika exclusive OR,


public class TestXOR
{
public static void main( String[] args ){
boolean val1 = true;
boolean val2 = true;
System.out.println(val1 ^ val2);

val1 = false;
val2 = true;
System.out.println(val1 ^ val2);

val1 = false;
val2 = false;
System.out.println(val1 ^ val2);

val1 = true;
val2 = false;
System.out.println(val1 ^ val2);
}
}



Hasil keluaran program tersebut adalah,


false
true
false
true



Sumber : J.E.N.I

[Operator] Operator Logika Exclusive OR

^ (boolean logika ExclusiveOR )

Berikut ini adalah tabel kebenaran untuk ^

Tabel Kebenaran untuk ^

Hasil operasi operator exclusive OR adalah TRUE, jika dan hanya jika satu operand bernilai TRUE dan yang lain bernilai False. Catatan jika kedua operand harus selalu dievaluasi untuk menjumlahkan hasil dari suatu exclusive OR.

Lihat Contoh Programnya.

Sumber : J.E.N.I


[Operator] Operator Logika || dan |

|| (logika OR) dan | (boolean logika inclusive OR)

Berikut ini adalah tabel kebenaran untuk || dan |,

Tabel kebenaran untuk || dan |



Perbedaan dasar antara operator || dan | adalah bahwa || mendukung short-circuit evaluations (atau proses evaluasi sebagian), sementara | tidak. Apa maksud dari pernyataan tersebut?

Diberikan suatu pernyataan,


exp1 || exp2



|| akan mengevaluasi pernyataan exp1, dan segera mengembalikan nilai true dan menyatakan bahwa exp1 bernilai true. Jika exp1 bernilai true, operator tidak akan pernah mengevaluasi exp2 karena hasil dari operasi operator akan bernilai true tanpa memperhatikan nilai dari exp2. Sebaliknya,operator | selalu mengevaluasi kedua nilai dari exp1 and exp2 sebelum mengembalikan suatu jawaban suatu nilai.

Lihat Contoh Programnya.

Sumber : J.E.N.I

[Operator] Operator Logika && dan &

&& (logika AND) dan & (boolean logika AND)

Berikut ini adalah tabel kebenaran untuk && dan &,

Tabel Kebenaran untuk && dan &

Perbedaan dasar antara operator && dan & adalah bahwa && mensupports short-circuit evaluations (atau evaluasi perbagian), sementara operator & tidak. Apa arti dari pernyataan tersebut?

Diberikan suatu pernyataan,

     exp1 && exp2

&& akan mengevaluasi pernyataan exp1, dan segera mengembalikan nilai false dan menyatakan bahwa exp1 bernilai false. Jika exp1 bernilai false, operator tidak akan pernah mengevaluasi exp2 karena hasil operasi operator akan menjadi false tanpa memperhatikan nilai dari exp2. Sebaliknya, operator & selalu mengevaluasi kedua nilai dari exp1 dan exp2 sebelum mengembalikan suatu nilai jawaban.




Sumber : J.E.N.I