String menghitung="";
int panjg=0;
int lebar=0;
int luaspersegipanjang=0;
String input1="";
String input2="";
String hasil="";
menghitung=JOptionPane.showInputDialog("Harus Memasukkan Nama Jika Ingin Menghitung !!! = " );
System.out.println("Mari kita menghitung Luas Persegi Panjang");
input1=JOptionPane.showInputDialog(" Panjang (cm) = " );
input2=JOptionPane.showInputDialog("Lebar (cm) = ");
panjg=Integer.parseInt(input1);
lebar=Integer.parseInt(input2);
hasil +=(menghitung)+(" Menghitung Luas Persegi Panjang")+"\n";
hasil +="Panjang ="+Integer.toString(panjg)+"\n";
hasil +="Lebar = "+Integer.toString(lebar)+"\n";
luaspersegipanjang=panjg*lebar;
hasil +="Luas Persegi Panjang = "+Integer.toString(luaspersegipanjang);
JOptionPane.showMessageDialog(null,hasil);
System.exit(0);
}
}
Menghitung Luas Persegi Panjang Dengan NetBeans
Variabel di Java
Variabel (peubah) adalah suatu lokasi di memori, di mana interpretasinya bergantung pada kelas penyimpanan—yang ditentukan berdasarkan keyword dan konteks deklarasinya—dan tipenya. Pada dasarnya, setiap variabel memiliki nama (yang dikenal sebagai identifier), tipe, dan ruang lingkup (scope) atau visibilitas (visibility).
Secara umum, sebenarnya kita tidak akan mengalami kesulitan ketika ingin mendeklarasikan suatu variabel. Meski demikian, alangkah baiknya jika kita memahami aturan-aturan standar dan jenis-jenis variabel di Java.
* Deklarasi
Deklarasi variabel dilakukan untuk menyimpan suatu penempatan di memori, memberinya nama, dan mendefinisikan tipe data yang dapat digunakan di variabel tersebut. Dengan demikian, deklarasi minimal mendefinisikan tipe data dan nama (identifier).
int i;
int j;
Pada kasus tipe referensi, deklarasi variabel mendeklarasikan variabel object reference. Dalam konteks Java, referensi objek adalah sebuah nilai yang menyatakan suatu objek.
Point p;
Sebenarnya kita juga bisa mendeklarasikan lebih dari satu variabel dalam satu baris, namun cara ini kurang disukai.
int i, j;
Tidak seperti bahasa C dan C++, yang membedakan istilah deklarasi dan definisi, di Java tidak ada deklarasi yang terpisah dari definisi.
* Jenis dan Scope
Java mendefinisikan empat jenis variabel, meliputi variabel instans (field nonstatis), variabel kelas (field statis), variabel lokal, dan parameter.
Java juga menggunakan istilah field, data member, dan member variable yang mengacu pada variabel instans (instance) dan variabel kelas. Selain itu, istilah variabel sendiri juga kerap digunakan, di mana ia mengacu pada semua jenis variabel.
Lokasi di mana suatu variabel dideklarasikan secara implisit juga menetapkan ruang lingkupnya. Ruang lingkup variabel didefinisikan sebagai blok kode di mana variabel dapat diacu melalui namanya. Dengan demikian, ruang lingkup variabel instans dan variabel kelas mencakup seluruh body kelas.
* Inisialisasi
Setelah mendeklarasikan variabel, kita juga bisa melanjutkan inisialisasi untuk menspesifikasikan initial value bagi variabel. Langkah ini dilakukan dengan menugaskan (meng-assign) nilai ke variabel; proses ini dikenal sebagai penugasan (assignment).
int i = 10;
Dalam kasus variabel lokal, inisialisasi mutlak diperlukan sebelum variabel dapat digunakan. Kondisi ini sangat kontras sekali dengan field, di mana nilai default yang akan digunakan sebagai nilai awal jika variabel tidak diinisialisasi. Penggunaan variabel lokal tanpa inisialisasi berpotensi memicu kesalahaan saat kompilasi.
* Access Modifier
Access modifier (atau specifier) menyatakan apakah kelas-kelas lain dapat menggunakan variabel member ataukah tidak. Dengan demikian, dalam konteks variabel, konsep access modifier ini hanya dapat diterapkan pada field saja.
Ada empat tingkatan akses yang bisa kita gunakan untuk menspesifikasikan visibilitas suatu variabel: private, default (tidak dispesifikasikan), protected, dan public.
Access Modifier
Visibilitas
private Variabel hanya bisa diakses dari kelas yang mendeklarasikannya (current kelas).
Default Variabel dapat diakses dari current kelas dan paket.
protected Variabel dapat diakses dari current kelas, subkelas, dan paket.
public Variabel bisa diakses oleh siapa saja, baik current kelas ataupun kelas lain.
Strategi dalam menetapkan visibilitas variabel adalah menggunakan access modifier dengan tingkatan paling rendah (private).
PHP dasar
kode-kode PHP anda akan disisipkan di antara kode-kode HTML. Sebagai akibatnya, PHP dan HTML akan sama-sama kita tulis dalam bentuk teks biasa. Kode PHP anda (misalnya dalam contoh di bawah ini adalah sebuah halaman yang menampilkan kata-kata “Anda berada di situs Prothelon!”) akan berada di sela-sela kode-kode dalam sebuah file HTML yang berekstensi .php, bukan .htm atau .html seperti biasanya.
Pengen belajar sambil praktek? klik di sini.
Contoh halaman dari penjelasan tersebut adalah sebagai berikut :
<html>
<head>
<title> Contoh Halaman PHP </title>
</head>
<body>
<font color="blue">PHP kode saya akan membuat halaman ini menampilkan:</font>
<p>
<?php
print ("Anda berada di situs Prothelon!");
?>
</body>
</html>
Nah, perhatikan contohdi atas. Anda mungkin sudah mulai memahami cara kerja PHP dan HTML. HTML tetap diperlakukan sebagaimana HTML persis seperti HTML tanpa kode PHP, tetapi semua kode yang berada di antara tag akan dianggap kode PHP dan diproses oleh server PHP.
Ingat kan? Hasil output dari proses PHP itu yang akan ditampilkan oleh HTML ke browser. Perhatikan bahwa jika anda menyimpan file dengan ekstensi .htm/html, maka browser juga akan muncul akan menampilkan juga tag php namun tidak memprosesnya, sehingga muncul seperti ini:
<?php
print ("Anda berada di situs Prothelon!");
?>
Sedangkan jika anda menyimpan dalam ekstensi .php, maka yang muncul hanya:
Anda berada di situs Prothelon!
Gitu….
Pengen belajar sambil praktek? klik di sini.
Cara Penulisan Kode PHP
Setelah anda memahami bagaimana sebuah kode PHP dan HTML dikawinkan dan diproses, sekarang saatnya bagi anda untuk mempelajari aturan-aturan dasar penulisan sintaks PHP. Aturan-aturan dasarnya secara singkat adalah sebagai berikut:
Penamaan File
File PHP anda harus disimpan dengan ekstensi .php (jika anda menemukan file dengan ekstensi .php3 atau phtml maka kemungkinan besar file-file tersebut ditulis menggunakan PHP versi 3 ke bawah). Seperti sudah saya jelaskan sebelumnya, file-file tersebut akan disimpan sebagai file teks biasa. (Artinya kita ndak butuh editor khusus kalau kepepet, cukup notepad. Namun perlu diingat bahwa notepad tidak memunculkan nomor baris yang akan kita perlukan saat melakukan debugging jika ada masalah dengan kode kita).
Komentar
Komentar adalah bagian penting dalam kode PHP yang anda buat. Anda akan memerlukan komentar ini untuk membantu mengingat lagi kegunaan sebuah blok kode nantinya. Anda harus membiasakandiri untuk menuliskan catatan tentang kode-kode anda dengan tag komentar, sehingga sifat manusiawi kita yang pelupa bisa terbantu jika suatu saat anda perlu mereview kembali kode-kode yang pernah anda buat. Cara untuk membuat komentar yang tidak ingin anda tampilkan atau eksekusi adalah dengan menambahkan “//” di awal baris atau mengapit komentar dengan “/*” dan “*/” jika perlu membuat komentar yang panjang:
<?php
// Baris ini akan diabaikan. Catatan untuk kita sendiri:
// Saya membuat script ini sambil
//Membaca, berenang dan menyelam.
print ("Anda berada di situs Prothelon!");
/*
Tiga baris berikut ini juga akan diabaikan.
Dan jangan lupa untuk kembali ke situs ini setiap minggu
untuk melihat artikel/tutorial baru!
*/
?>
Permulaan Kode
Blok kode PHP diawali dengan “<?php” (atau cukup disingkat “<?” saja bila server anda mengijinkan...dan biasanya bisa).
Akhir Kode
Blok kode PHP ditutup dengan menambahkan “?>” di akhir blok kodenya.
Akhir Baris Program
Setiap baris instruksi program diakhiri dengan tanda titik koma “;”. Artinya walaupun anda menuliskannya lebih dari 1 baris tetap akan dianggap satu baris instruksi program jika belum ada tanda titik koma (lihat contoh di penjelasan tanda kurung di bawah).
Tanda Kurung
Tanda kurung akan banyak anda gunakan dalam kode PHP. Salah satu penggunaan yang sering dilakukan adalah dalam memanggil fungsi. Secara sederhana, setiap fungsi PHP akan berbentuk seperti ini ….
print ( );
"print" adalah nama fungsi dan informasi lain yang perlu ditambahkan pada fungsi tersebut akan anda tuliskandi dalam tanda kurung. Ingat..... jangan lupa untuk mengakhiri dengan tanda titik koma (kesalahan tidak mengakhiri dengan titik koma ini paling sering terjadi pada pemula). Oh iya, sebelum lupa, echo() juga memiliki kegunaan yang sama dengan print().
Spasi, pergantian baris, dll tidak akan mempengaruhi output lho. Sehingga, bagian kode berikut ini ...
<?php
print ("Anda berada di situs Prothelon!");
?>
... akan menghasilkan hal yang sama dengan kode berikut ini:
<?php print ("Anda berada di si
tus Prothelon!"); ?>
Normalisasi
Proses normalisasi adalah proses untuk memperoleh properti-properti skema relasi yang bagus menjadi bentuk normal lebih tinggi sehingga syarat-syarat dibawah ini terpenuhi:
a. Mengoptimalisasi redudansi (pengulangan data yang tidak perlu). Redudansi tidak bisa dihilangkan sama sekali karena berguna untuk integritas referensial, tetapi redudansi bisa dioptimalisasi. Untuk jumlah data yang tidak terlalu banyak mungkin tidak terlalu berpengaruh dalam hal penggunaan harddisk. Tapi bayangkan jika ada ribuan, bahkan jutaan redudansi, mungkin akan sangat berpengaruh pada penggunaan ruang.
b. Menghilangkan anomali. Anomali pada dasarnya adalah ketidak-konsistenan (inkonsistensi). Misalkan ada pergantian nama dari Bank Perkasa menjadi Bank Perkasa Utama sebanyak 4 record. Jika pergantian nama hanya dilakukan pada salah satu record saja, maka terjadi ketidak-konsistenan yaitu satu nomor bank berrelasi dengan 2 nama bank yang berbeda.
Dekomposisi tabel dapat mengurangi redudansi yang ada dan menghilangkan anomali.
Perancangan melalui proses normalisasi mempunyai keuntungan-keuntungan sebagai berikut :
a. Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.
b. Meminimalkan resiko inkonsistensi data pada basis data.
c. Meminimalkan kemungkinan anomaly pembaruan.
d. Memaksimalkan stabilitas struktur data.
Bentuk Normal
Tujuan proses normalisasi adalah mengkonversi relasi menjadi bentuk normal lebih tinggi. Terdapat beragam tingkat bentuk normal, yaitu :
a. Bentuk normal pertama (1NF)
b. Bentuk normal kedua (2NF)
c. Bentuk normal ketiga (3NF)
d. Bentuk normal Boyce-Codd (BCNF)
e. Bentuk normal keempat (4NF)
f. Bentuk normal kelima (5NF)
Codd mendefinisikan bentuk normal pertama, kedua dan ketiga di makalah (Codd, 1970). Bentuk normal ketiga kemudian diperbaiki sehingga mempunyai bentuk normal yang lebih kuat yaitu BCNF (Codd, 1974). Fagin memperkenalkan bentuk normal keempat (Fagin, 1977), kemudian Fagin juga memperkenalkan bentuk normal kelima (Fagin, 1979).
Bentuk normal pertama untuk menghilangkan atribut bernilai jamak. Bentuk normal kedua untuk menghilangkan kebergantungan parsial. Bentuk normal ketiga untuk menghilangkan kebergantungan transitif. Bentuk normal Boyce-Codd untuk menghilangkan anomaly tersisa disebabkan kebergantungan fungsional. Bentuk normal keempat untuk menghilangkan kebergantungan nilai jamak. Bentuk normal kelima untuk menghilangkan anomaly tersisa.
Tiga bentuk normal pertama berkaitan dengan kebergantungan fungsional. Sementara itu bentuk keempat dan kelima berkaitan dengan redudansi yang disebabkan kebergantungan banyak nilai (multi-valued dependencies).
Bentuk Normal Pertama
Bentuk normal pertama adalah ekivalen dengan definisi model relasional. Relasi adalah bentuk normal pertama (1NF) jika semua nilai atributnya adalah sederhana (bukan komposit).
Bentuk Normal Kedua
Bentuk normal kedua memiliki ketentuan harus telah berbentuk normal pertama (1NF), dan semua atribut bukan utama harus bergantung fungsional penuh pada kunci relasi.
Relasi pada bentuk normal kedua harus tidak menyimpan fakta-fakta mengenai bagian kunci relasi. Bentuk normal kedua menghilangkan kebergantungan parsial dan masih memiliki anomali-anomali yang secara praktis tidak dapat diterima.
Bentuk Normal Ketiga
Bentuk normal ketiga memiliki ketentuan harus telah berbentuk normal kedua (2NF) dan relasi tidak boleh memuat kebergantungan fungsional di antara atribut-atribut bukan utama.
Bentuk normal ketiga menghilangkan kebergantungan transitif, awalnya bentuk normal ketiga dipikir sebagai bentuk normal puncak/paling akhir. Namun kemudian dapat ditemukan bentuk normal lebih kuat yaitu bentuk normal Boyce-Codd.
Bentuk Normal Boyce-Codd (BCNF)
BCNF memiliki ketentuan yaitu masing-masing atribut utama bergantung fungsional penuh pada masing-masing kunci dimana kunci tersebut bukan bagiannya. Relasi adalah BCNF (optimal) jika setiap determinan atribut-atribut relasi adalah kunci relasi. Relasi adalah BCNF (optimal) jika kapanpun fakta-fakta disimpan mengenai beberapa atribut, maka atribut-atribut ini merupakan satu kunci relasi. BCNF dapat memiliki lebih dari satu kunci. Properti penting BCNF adalah relasi tidak memiliki informasi yang redundan.
Bentuk Normal Keempat
Relasi dalam bentuk normal keempat (4NF) jika relasi dalam BCNF dan tidak berisi kebergantungan banyak nilai. Untuk menghilangkan kebergantungan banyak nilai dari satu relasi, kita membagi relasi menjadi dua relasi baru. Masing – masing relasi berisi dua atribut yang mempunyai hubungan banyak nilai.
Bentuk Normal Kelima
Bentuk normal kelima (5NF) berurusan dengan properti yang disebut join tanpa adanya kehilangan informasi (lossless join). Bentuk normal kelima (5NF) juga disebut PJNF (projection-join normal form). Kasus-kasus ini sangat jarang muncul dan sulit untuk dideteksi secara praktis.
Dasar-dasar normalisasi
•
• Kreasi dari suatu bentuk normal disebut normalisasi
• Normalisasi dicapai dengan penganalisaan ketergantungan diantara setiap individu attribut yang diassosiasikan dengan relasinya
First normal form
• Suatu relasi ada dalam kondisi First Normal Form (1NF) jika dan hanya jika semua domain yang tercakup terdiri hanya atomic value, misalnya tidak ada pengulangan group (domain-domain) dalam suatu tuple
• Keuntungan dari 1NF dibanding Unnormalized relation (UNRs) adalah pada bentuk penyederhanaan representasi dan kemudahan dalam pengembangan menggunakan suatu query language
• Kekuranannnya adalah kebutuhan terhadap duplikasi data
• Sebagian besar sistem relasi (tidak semua) membutuhkan suatu relasi dalam bentuk 1NF
Second Normal Form
• Suatu superkey adalah suatu himpunan dari satu atau lebih attribute, yang mana, dimana diambil secara khusus yang memmungkinkan kita untuk mengidentifikasikan secara unik satu entitas atau relasi
• Suatu Candidate key adalah suatu subset dari attribut-attribut pada superkey yang juga merupakan superkey dan tidak reducible ke superkey yang lain
• Suatu primary key dipilih dari himpunan candidate key untuk digunakan pada suatu index untuk relasi yang bersangkutan
• Kepemilikan dari satu atau beberapa attribute yang dapat didefinisikan secara unik dari nilai satu atau beberapa attribute disebut functional dependency
• Diberikan suatu relasi (R), suatu himpunan (B) adalah functionally dependent pada himpunan attribut yang lain(A) jika, pada satu waktu tertentu, setiap nilai A diassosiasikan dengan satu nilai B, bentuk ini adalah suatu FD yang dinotasikan dengan A → B
• contohR : {paper-id, inst-name, isnt-addr, editor-id, publ-id, auth-id, auth-name,auth-addr}Fds : paper-id, auth-id → auth-namepaper-id,auth-id → auth-addrpaper-id, auth-id → inst-namepaper-id, auth-id → inst-addrauth-id → auth-nameauth-id → auth-addrinst-name → inst-addrpaper-id → editor-idpaper-id → publ-idbentuk sederhanapaper-id, auth-id → auth-name, auth-addr, inst-name, inst-addrauth-id → auth-name, auth-addrinst-name → inst-addr
paper-id → pub-id, editor-id
• Suatu relasi adalah dalam posisi second normal form (2NF) jika dan hanya jika relasi tersebut juga dalam 1NF dan setiap nonkey attribute tergantung penuh pada primary key-nya
• 2NF membutuhkan bahwa FD apapun didalam relasi harus berisi semua komponen dari primary key sebagai determinant, baik secara langsung atau transitif
• contoh, primary key adalah paper_id, auth_id. Bagaimanapun, terdapat Fds yang lain (auth_Id → auth-name, auth-addr, and paper-id → pub-id, editor-id) yang berisi satu komponen dari primary key, tetapi tidak keduaduanya.
• Mengapa harus 2NF, pertimbangkan keuntungan dari 1NF pada R. paper, pub-id dan editor-id dibuat duplikat. Untuk setiap author dari paper. Jika editor dari publikasi untuk suatu paper berubah, beberapa tuple harus pula di-update. Akhirnya, jika satu paper di ambil, semua tupple yang diassosiasikan harus dihapus. Bentuk ini akan memberikan efek samping pada penghapusan informasi yang mengassosiasikan suatu auth-id dengan auth-name dan auth-addr.
• Suatu cara yang dapat dilakukan untuk hal tersebut adalah dengan mentransformasikan relasi kedalam dua atau beberapa relasi 2NF
contohR1 : paper-id, auth-id → inst-name, inst-addrR2 : auth-id → auth-name, auth-addrR3 : paper-id → pub-id, editor-id
Third Normal Form
• Pada R1, inst_addr pasti diduplikat untuk setiap kombinasi paper_author yang mejelaskan satu inst_name. Juga, jika kita menghapus satu paper dari database, kita harus memberikan efek samping penghapusan assosiasi antara inst_name dan inst_addr.
• Suatu relasi dalam Third Normal Form (3NF) jika dan hanya jika relasi tersebut dalam 2NF dan setiap non key attribute adalah nontransitive dependent pada primary key
Contoh :R11 : paper-id, auth-id → inst-nameR12 : inst_name → inst_addrR2 : auth-id → auth-name, auth-addrR3 : paper-id → pub-id, editor-id
Boyce-Codd Normal Form
• Suatu Trivial FD adalah suatu bentuk YZ → Z
• Suatu relasi R dalam kondisi Boyce-Codd Normal Form (BCNF) jika untuk semua nontrivial FD X → A, X adalah superkey
• BCNF adalah suatu bentuk yang lebih kuat dari normalisasi ke tiga. 3NF equivalent dengan perkataan bahwauntuk setiap nontrivial FD X → A, dimana X dan A merupakan simple atau composite attribut, satu dari duakondisi harus dipenuhi.X adalah superkey, atauA adalah prime attribute
• BCNF mengelimisasi kondisi kedua dari 3NF
Deklarasi class
Struktur class
Pendefinisian kelas di C++. Dalam bagian ini, kita contohkan beberapa kelas yang lazim kita temui dalam kehidupan sehari-hari. Mari kita amati contoh lain dari kehidupan kita, dengan mendeklarasikan sebuah kelas bernama BilanganRasional :
class BilanganRasional
{
public :
void assign (int,int);
void cetak();
private :
int pembilang, penyebut;
};
Perhatikan contoh di atas. Untuk mendefinisikan sebuah kelas, dipakai kata kunci class, diikuti dengan pendeklarasian nama kelas tersebut. Fungsi assign() dan cetak() disebut member function (member fungsi). Sedangkan variabel pembilang dan penyebut disebut member data (member data atau member variabel). Disebut member karena kesemuanya merupakan anggota dari kelas BilanganRasional.
Perhatikan kata kunci Public dan Private. Member functions pada contoh di atas dideklarasikan sebagai fungsi global, sedangkan member data dideklarasikan sebagai lokal. Perbedaannya, member global dapat diakses dari luar kelas, sedangkan member lokal hanya dapat diakses dari kelas itu sendiri.
Sekarang, dimana kita telah menciptakan kelas Bilangan Rasional, kita dapat mendeklarasikan sebuah objek dari kelas BilanganRasional sebagai berikut :
BilanganRasional objekBilangan :
Perhatikan bahwa disini objekBilangan merupakan nama dari objek tersebut, dan BilanganRasional merupakan nama kelas yang ingin kita buat objeknya. Proses pembuatan sebuah objek biasa disebut penginstansian (bukan penginstalasian), dan sebuah objek disebut instans (instance) dari sebuah kelas.
- Untuk lebih jelasnya, perhatikan listing selengkapnya :
#include
#include
class BilanganRasional
{
public :
void assign (int,int);
void cetak();
private :
int pembilang, penyebut;
};
void main()
{
//mendeklarasikan objekBilangan BilanganRasional objekBilangan;
// member fungsi assign() dipanggil.
objekBilangan.assign (22,7);
// member fungsi cetak() dipanggil.
ObjekBilangan.cetak();
getch();
}
void BilanganRasional::assign(int pemb, int peny)
{
pembilang = pemb;
penyebut = peny;
}
void BilanganRasional::cetak()
{
cout<
Perhatikan blok main(). Sekarang Anda sudah mempunyai sebuah objek bernama objekBilangan dari kelas BilanganRasional. Seperti Anda lihat, pendeklarasian sebuah objek sama seperti mendeklarasikan sebuah variabel. Atau dengan kata lain objekBilangan adalah sebuah objek dengan tipe BilanganRasional.
Sekarang, bagaimana memanggil fungsi dari sebuah objek? Hal ini dapat dicapai dengan menghubungkan nama objek dan fungsi yang ingin dipanggil dengan operator tanda titik (.). Sehingga untuk memanggil fungsi assign(), dapat dilakukan dengan cara sebagai berikut : objekBilangan.assign(22,7);
Nilai 22 dan 7 merupakan parameter yang diterima oleh fungsi assign(). Di dalam fungsi tersebut, nilai 22 diinisialisasikan ke dalam member data pembilang, dan nilai 7 diinisialisasikan ke dalam member data penyebut. Sehingga bila fungsi cetak() dipanggil, maka akan diperoleh hasil sebagai berikut :
22 / 7
Proses perulangan dalam C++
Operator | Contoh | Equivalen dengan |
+= | A+=D | A=A+D |
-= | A-=B | A=A-B |
/= | A/=B | A=A/B |
%= | A%=B | A=A%B |
++ | A++B | A=A+1 |
-- | A-- | A=A-1 |