Jumat, 30 Maret 2012

Harus berakhir karena perbedaan umur

Hari ini aku selesai membaca sebuah novel yang berjudul : Daun Yang Jatuh Tak Pernah Membenci Angin karya Tere-Liye
Entah kenapa novel itu mengingatkan ke tentang sosok yang membantuku membuang jauh jauh perasaan sakit hatiku terhadap seseorang yang menyia-nyiakan aku. Dia memberiku rejuta harapan yang benar-benar membuatku percaya bahwa dia menunggu ku sejak lama.
Menulis postingan ini membuat ku kembali mengenang masa lalu bersamanya yang singkat, membaca novel itu serasa menceritakan bagaimana perjalanan kisah ku bersamanya (walaupun aku bukan tokoh utama yang menjadi anak jalanan)
Satu hal yang bisa aku ambil hikmah dalam novel ini yaitu CINTA YANG TERHENTI KARENA PERBEDAAN UMUR
mengingat hal yang dulu bersama nya bagai petir yang menyambar.
Teringat saat itu aku baru pertama kali mengenalnya lewat kakak ku. Kemudian berbagi pin di GoChat. Lalu bertukar nomor. Ada satu hal yang saat itu sangat meyakinkan ku untuk benar-benar membuka hatiku padanya, kakak ku berkata : "Dia itu sebenernya sudah tertarik sama kamu waktu kamu masih smp pas kamu liburan disini" Aku tercengang saat itu, mana mungkin seorang dewasa seperti dia menyukai anak SMP ingusan sepertiku?
Teringat saat bertemu untuk yang pertama kali aku melihatnya begitu gagah begitu dewasa begitu tampan sambil mengendarai yamaha vixion nya. Dia mengatakan semuanya padaku saat itu, pertemuan itu masih teringat betul jam dan harinya.
Aku memutuskan untuk mengenal nya lebih jauh lewat sms dan GoChat. Saat aku bertanya tentang umurnya dia mengatakan 25th. Dan usiaku 17th. Terpaut 8th umur kami.
Tetapi apa salahnya?? Bukankah ayahku mengatakan akan lebih bisa mengayomi dan mengerti aku??

Pertemuan kedua pun berlanjut (sekaligus menjadi pertemuan terakhir kami)
Saat itu jam 21.00 hari Rabu. Aku mengatakan semuanya tentang yang kurasakan. Tersesak dadaku ketika dia mengatakan : "aku rela menjadi pengahapus dukamu tentang dia"
Sejenak aku terdiam lama mendengar perkataanya. Dia menatap ku dari jarak dekat sekitar cuma satu jengkal jaraknya dan melihat dengat pekat. Aku terbengong.
Dia berkata : "Bolehkan aku menjadi penenang hatimu selama hatimu masih untuknya? Dan semoga kamu bisa mengerti apa yang ku katakan" Aku hanya mengiyakan saja.

Sekali lagi dia mengatakan hal yang membuat ku terbata. "Gantikan posisinya selama ini dengan posisiku, sudah 2 tahun aku menunggu untuk hal ini. Aku sayang kamu" Sekali lagi aku hanya mengiyakan. Dia pun senang, entah kenapa hari itu pikiran cuma tertera wajahnya. Kami pun bercanda ringan sambil sesekali dia memelukku dan mencium keningku. Jam menunjukan pukul 23.00 hujan reda dan dia beranjak pulang tanpa mengatakan apapun. Hari itu aku merasa ada yang aneh seperti tak akan beretemu dia lagi. Tapi aku tak memeperdulikan perasaan itu. Aku mengiriminya sms dan sayangnya aku tak sempat untuk membalasnya karena aku sudah mengantuk.

Keesokan harinya aku baru membuka dan membalas sms nya dan segera meminta maaf. Tapi aneh tak ada balasan sama sekali darinya. Semenjak hari itu aku terus mengiriminya sms dan menelpon nya. Tetapi semuanya useless. Langsung terpikir olehku hal yang buruk-buruk. Aku mencoba mengiriminya sms dengan no temanku. dan aku bersyukur dia membalasnya. Hatiku senang sejenak tapi menjadi heran setelahnya, "kenapa dia tak membalas di no ku??" Tapi setidaknya aku mengetahui bahwa dia baik-baik saja.

1 bulan tak ada kabar darinya, aku dianggap apa coba?? Sampai suatu hari aku mengirim sms padanya : "aku kangen sama kamu. kamu kemana?" DIA MEMBALAS :)
tapi balasanya langsung menghujam jantungku. Dia mengatakan aku ini g lebih dari sekedar temannya. Belum sempat aku berbasa-basi denganya dia mengatakan : "AKU SEDANG BERSAMA CEWEKKU!!Ntar aja ya dilanjutin" Ya Tuhan...penantianku sebulan ini menyisakan kepahitan yang luar biasa.

Lambat laun aku sudah menerima kepergianya, kakak ku datang dengan membawa kabar kejujuran yang selama ini tertutupi. Kakak ku berkata : "Dia masih sayang sama kamu. Tapi kamu dirasa masih kecil dan umur kalian berjarak terlampau jauh"
Aku cuma terdiam. Dan berakhirlah kisah kami yang tak terlampau jelas kemana tujuannya hanya karena umur. Hanya ikhlas yang bisa membantuku.
Kamis, 15 Maret 2012

Teman Sekamar :))

Hiyyyaa malem malem gini enaknya nge blogging sambil menikmati sepoi sepoinya angin di malem Jum'at ini.
Kisah ini berawal dari aku yang pindah kos karena ada masalah sama temen sekos ku. Dan akhirnya aku pindah kos ke rumahnya Della ini (sebenernya numpang sih :)) ) Lha..gimana nggak cuma aku doang yang nge kos di situ. Dirumah ini ada gue, della, orang tuanya della, adek cowoknya della, dan keponakan nya della si imut Keisha. Dirumah ini jadinya serasa mempunyai orang tua lagi di tempat perantauan :))

Sebenernya sih gue diberi kamar sendiri sih disini, tapi berhubung kebiasa bobok bareng sama della, ya udah jadinya tiap hari bobok bareng sama si della.
Nah...di kamar yang sering kita tiduri sama-sama ini lah semua kisah berasal dari kami berdua. Mulai dari suka sampek duka kita berdua ada di kamar ini.
Seperti pas ada salah satu yang lagi galau tingkat zeus, yang satunya nenangin. Kalau g gitu malah nyetel lagu galau pisan
Trus kalau pas lagi patah hati, yang satu juga nenangin (biasanya nangis) tapi g termasuk kalau pas patah hati barengan loh ya.. yaa kalau pas barengan ya nangis sendiri-sendiri.
Dikamar ini banyak sekali kisah tentang kami berdua.

Yang lucu juga ada beberapa kesamaan yang unik antara kita

  • Pertama : Nama depan kita : Elies dan Elissa
  • Kedua   : Singkatan nama kita : E.D.A.P dan E.D.R.P


So...lets see how our bedroom and photos of us :)) :

Ini nih kamar kita plus ada della nya



Di depan kelas


Waktu pas masih jadul


Nah..selain itu kita juga pernah mengalami hal koplak saat kelas 1 sewaktu pembagian nama, Yuppsss nama gue ketuker sama namanya si della :))

Selain hal itu kita juga mempunyai sifat yang sama
Langsung disebutin aja ya sifat dan hal yang sama diantara kita berdua :
  • Pemarah
  • Sama sama dibilang dewasa
  • Agak keras kepala
  • Teguh pendirian (sekali ini ya ini) #agak cenderung ke egois sih :D
  • Miss Online :))
  • Mempunyai nasib yang sama kalau soal cowok
  • Si della pengen bohay, gue pengen kurus 
  • Paling benci kalau di garai sama adek cowok kita
  • Sama sama agak pemalas
Tapi ada juga perbedaan yang mencolok diantara kita #yaiyalah
Ini nih :
  • Della kurus gue 'ndut
  • Gue suka sayur si della sama sekali g doyan sayur
  • Wajah kita beda (yaiyalah kan g kembar --")
  • Della tomboy gue yaahh tergolong feminim lah :))
Nah itu dia secuil kisah tentang kita berdua
Kisah tentang si E.D.R.P dan si E.D.A.P  :))
Rabu, 14 Maret 2012

THE LOLA's

Hahahaha dari namanya saja sudah mengindikasikan sesuatu ya #syahrini
Sebenernya nama itu sih bukan dari kami sendiri yang menciptakanya. Tapi ada sedikit cerita dibalik nama THE LOLA's :))

Awal mula nya....
Aku, Chitra , Tatta ini selalu bertiga kemanapun dan dimanapun. Katanya sih sahabat sejati :)). Dan emang pada kenyataan nya kita bertiga bersahabat. Kita bertiga mempunyai karakter yang berbeda beda #jelaslah.
Kita bertiga bersahabat mulai dari kelas 1 SMK. Hahaha. Sebenernya ada satu lagi sih yaitu Ummi, tapi karena dia udah g pernah bareng lagi sama kita, ya udah kan beda kelas. Tapi kita bertiga tetep ngganggep Ummi sebagai SAHABAT :). The LOLA's ini nama yang diberikan oleh guru matematika kita yang bernama P.Tulus (beda dengan ikhlas) :D
Kata beliau sih emang cocok banget namanya diberikan sama kita yang kadang kadang lola. Sebenernya ada salah satu dari kita yang emang bener-bener lola (sebenernya masih bingung sih dia itu lola atau polos :)) ). Gimana nggak...seandainya ada anak yang cerita panjang lebar dengan bahasa yang indah di cuma bilang "GIMANA SIH MAKSUD NYA?" hahahaha itu sih yang membuat dia memiliki ciri khas tertentu. Gue sebutin aja ya dia....
DIA BERNAMA.....
jjeenggjeeennggggjjeennggg
TATTA :))
Nih anak sumpah polos banget, jadi kadang kadang aku sama citra ini harus merangkai kata yang mudah dimengerti sama si Tatta ini >.<

Kita bertiga mempunyai sifat yang beda beda 180 derajat. Gue diskripsiin ya sifat kita masing-masing:

1. Silvi Andika Citra Sari (Chitra) :

  • Anaknya cantik
  • Imut
  • Keliatannya pendiem tapi sebenernya cerewetnya minta ampun
  • Telaten 
  • Kadang kadang sok ke pedean sih (masa nyamain dia sama si Afika??)
  • Kalau marah nya bo'ong an sih dia biasanya manyun
  • Kalau marah beneran dia sih biasanya diem, trus kalau udah g tahan dia nangis
  • Anaknya asyik dan baik :))

2. Fransiska Aprilia Witantri (Tatta) :

  • Anaknya manis
  • Kulitnya putih
  • Dia paling keceng di antara kita bertiga
  • Lola+Polos :))
  • Anaknya asyik seru
  • Gampang nangis
  • Lucu (koplak)
  • Paling histeris diantara kita bertiga kalau pas lagi bingung sama suatu hal

3. Elies Diyah Ayu Permatasari (Gue Sendiri) :

  • Tembem ('Ndut)
  • Menurut si chitra sama si tatta sih paling dewasa sifatnya :))
  • Paling Jutek diantara kita bertiga
  • Kalau lagi marah sih biasanya langsung keliatan, trus marah-marah g jelas
  • Tenang aja aku anak baik dan tidak sombong kok :))

Nah itu dia sifat-sifat kita yang beda banget..tapi ternyata dengan perbedaan, kita bisa saling memahami (sok puitis :D )
Kita sering Hang-Out bareng, curhat-curhatan tentang semua yang dirasa perlu di curhatin
Gak ada RAHASIA diantara kita, kalau ada yang ketauan lagi nyembunyiin rahasia pasti langsung ketahuan.
Kita seneng berbagi (g termasuk berbagi pacar :D . Banyak banget hal yang kita laluin di setiap harinya. Semoga persahabatan kita langgeng (bukan angkatan 18 loh )  ya kawan :)
Aku sayang Kalian :*

Foto Foto pas kita lagi bareng :
Didepan Kelas Nungguin Rapor

Temu kangen ini :))

Acara menginap di kos nya Tatta

at Pizza Hut with Mr.Tulus

Beloommm Mandi
oyaa.. hampir lupa :))
ini nih pencetus THE LOLA's...
PAPI kitaaaa.......
Jeng jeng jeng 
Papi Tulus :)) 
Papi Tulus Tercindhta :))

Event Handling

Event Handling
Event berguna untuk menangani interaksi user dengan program, misalnya user memilih
sebuah menu dalam aplikasi MIDlet.Untuk menangani event perlu
mengimplementasikan interface CommandListener dan atau ItemListener.
CommandListener berfungsi untuk menangani jika user memilih Command tertentu
sedangkan ItemListener berfungsi untuk menangani jika user mengubah nilai seperti
misalnya mengubah pilihan pada ChoiceGroup. 

Delegation Event Model

Delegasi event model menguraikan bagaimana program Anda dapat merespon interaksi dari user. Untuk memahami model, pertama-tama mari kita pelajari melalui tiga komponen utamanya.

1. Event Source
Event source mengacu pada komponen GUI yang meng-generate event. Sebagai contoh, jika user menekan tombol, event source dalam hal ini adalah tombol.

2. Event Listener/Handler
Event listener menerima berita dari event-event dan proses-proses interaksi user. Ketika tombol ditekan, listener akan mengendalikan dengan menampilkan sebuah informasi yang berguna untuk user.

3. Event Object
Ketika sebuah event terjadi (misal, ketika user berinteraksi dengan komponen GUI), sebuah object event diciptakan. Object berisi semua informasi yang perlu tentang event yang telah terjadi. Informasi meliputi tipe dari event yang telah terjadi, seperti ketika mouse telah di-klik. Ada beberapa class event untuk kategori yang berbeda dari user action. Sebuah event object mempunyai tipe data mengenai salah satu dari class ini.

setiap event object mempunyai  type event yang berbdea beda. sehingga kita harus menentukan type event sebelum menentukan jenis interface listener. karena setiap type event mempunyai jenis interface listener yang bersesuaian.
Dalam event handling pada Java ada empat bagian penting yang harus diketahui:
  • Event Object merupakan object yang mendiskripsikan sebuah event yang di-trigger oleh event source.
  • Event Handler merupakan method yang menerima event object dan melakukan respond yang sesuai dengan event object tersebut.
  • Event Listener merupakan interface yang akan meng-handle event yang terjadi. setiap type event mempunyai interface yang bersesuaian. Listener tersebut harus diimplementasikan oleh class yang akan meng-handle event
  • Event Source merupakan pembangkit / trigger sebuah event objects
setiap event object mempunyai  type event yang berbdea beda. sehingga kita harus menentukan type event sebelum menentukan jenis interface listener. karena setiap type event mempunyai jenis interface listener yang bersesuaian.
berikut ini type type event yang ada di Java :
  • ActionEvent
  • ItemEvent
  • WindowEvent
  • ContainerEvent
  • ComponentEvent
  • FocusEvent
  • TextEvent
  • KeyEvent
  • MouseEvent
  • AdjustmentEvent
Berikut ini Interface Listener :
  • ActionListener
  • ItemListener
  • WindowListener
  • ContainerListener
  • ComponentListener
  • FocusListener
  • TextListener
  • KeyListener
  • MouseListener
  • MouseMotionListener
  • AdjustmentListener
Berdasarkan tulisan diatas, setiap type event mempunyai satu jenis interface listener kecuali MouseEvent yang mempunyai dua jenis interface listener. dan setiap interface mempunyai method abstract yang harus di override class yang meng-impletasikan interface. event listener dan event handler terdapat pada package java.awt.event
Bagaimana event handling dalam Java? ada tiga langkah penting dalam event handling
  1. Deklarasikan class yang akan meng-handle event yang terjadi dan tuliskan code yang menyatakan class tersebut meng-implement interface listener
  2. Event source mendaftarkan sebuah listener melalui method add<type>Listener
  3. Kode yang mengimplementasikan method pada interface listener pada class yang akan meng-handle event. [ Override ]

GUI dalam Java

Pengertian GUI
Antar muka komputer yang berbasiskan grafis. Adalah citra grafis yang ditampilkan di layar komputer yang memungkinkan untuk mengakses aplikasi software dengan memakai menu dropdown, dialog box, radio button, check box, panel, tabs, toolbar, icon shortcuts dan tool lain. Atau bisa juga dikatakan jenis antarmuka pengguna yang memungkinkan orang untuk berinteraksi dengan program dengan lebih banyak dengan gambar daripada perintah teks. Sebuah GUI grafis menawarkan ikon, dan visual indikator, sebagai lawan dari antarmuka berbasis teks. Contoh perangkat yang menggunakan GUI:  perangkat genggam seperti MP3 Players, Portable Media Player dan perangkat Permainan. GUI ini dimulai pertama kali dengan X Windows hasil penelitian di MIT, kemudian Macintosh, Sun View, lalu disusul oleh Microsoft Windows, dan sistem operasi lainnya.
JAVA
Java merupakan suatu teknologi perangkat lunak yang di dalamnya mencakup bahasa pemrograman. Selain itu Java juga merupakan suatu platform yang memiliki virtual machine dan library yang diperlukan untuk menulis dan menjalankan suatu program. Java sendiri pada awalnya dikembangkan pada lingkungan komputer oleh Sun Microsystem Inc. dengan tujuan untuk menghasilkan suatu bahasa komputer sederhana tanpa harus terikat pada arsitektur tertentu. Maka tak heran jika dalam perkembangannya Java dapat dijalankan pada berbagai platform sistem operasi seperti Linux, Windows maupun Unix.
Karena keunikan dan kehandalannya, Java pun semakin banyak dikenal. Pada tahun 1995 Sun meluncurkan sebuah browser berbasis Java dengan julukan Hot Java, kemudian diikuti Netscape yang memutuskan untuk membuat browser dengan dilengkapi bahasa Java di dalamnya. Setelahnya ikut bergabung pula berbagai pengembang ternama diantaranya IBM dan Microsoft. Kemudian pada tahun berikutnya, Sun Microsystem Inc. merilis Java Software Development Kit (JDK) pertamanya, JDK 1.1. Dan terus berkembang dari pemrograman applet yang berjalan di browser menjadi pemrograman kelas dunia yang banyak digunakan untuk pengembangan aneka ragam aplikasi. Tidak hanya pada komputer, Java juga dapat berjalan pada bermacam-macam perangkat, mulai telepon genggam sampai aplikasi berskala enterprise pada komputer server.
JAVA GUI
Dapat disimpulkan bahwa Java GUI adalah pemrograman dengan bahasa Java yang dibuat menggunakan aplikasi yang berbasiskan GUI. Tujuannya adalah menambahkan komponen-komponen yang tidak bisa dibuat dalam basis text. Komponen-konponen tersebut bisa berupa tombol, gambar, dll. Tujuannya  adalah untuk memudahkan user menggunakan program yang dibuat tersebut.
Ini nih jelasnya :
1. AWT (Abstrak Window Toolkit)

AWT (Abstract Window Toolkit) ini adalah GUI Toolkit pertama pada bahasa pemrograman Java, sayang-nya AWT ini sangat-sangat kekurangan komponen yang biasa digunakan untuk membangun sebuah aplikasiv desktop secara lengkap (komponen tabel saja tidak ada) Terlepas dari kurang-nya komponen GUI yang terdapat pada AWT (Abstract Window Toolkit), aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) akan tampak seperti aplikasi native. Maksudnya yaitu, jika aplikasi yang dibangun menggunakan AWT (Abstract Window Toolkit) ini dijalankan pada Sistem Operasi Windows. Maka aplikasi ini akan terlihat seperti aplikasi Windows pada umum-nya, dan begitu juga jika dijalankan pada Sistem Operasi Mac ataupun GNU/Linux. Kenapa ini bisa terjadi, karena AWT (Abstract Window Toolkit) ini benar-benar memanggil native subrutin.


 2. Swing

Inilah GUI Toolkit yang paling banyak digunakan oleh para progammer yang masih dalam tahap pembelajaran Pemrograman GUI di Java dibandingkan dengan GUI Toolkit yang lain.GUI Toolkit ini lebih banyaj dikenal dikarenakan dukungan tutorialnya yang cukup banyak bertebaran di Internet, dan juga merupakan standart dari Java yang mana kita tidak perlu melakukan penambahan library lagi kalau ingin menggunakan GUI Toolkit ini. Selain itu, terdapat 2 IDE besar yang menggunakan GUI Toolkit Java Swing yaitu NetBeans IDE(OpenSource) dan IntelliJ IDEA (mempunyai versi OpenSource dan Komersial).

Dibandingkan dengan pendahulu-nya yaitu AWT (Abstract Window Toolkit), Swing mempunyai lebih banyak komponen pendukung untuk membangun sebuah aplikasi yang lengkap untuk keperluan desktop. Selain didukung dengan banyak-nya komponen, Swing ini benar-benar murni 100 % ditulis dengan bahasa pemrograman Java tanpa adanya sebuah wrapper untuk memanggil rutin-rutin native codevia JNI (Java Native Interface). Seluruh komponen yang terdapat pada Swing, semuanya murni digambar sendiri menggunakan API (Application Programming Interface) 2D untuk memanggil rutin-rutin dasar penggambaran komponen-nya. Nah dengan model seperti ini, memungkinkan sekali aplikasi yang dibangun menggunakan Swing tampak sama persis di berbagai macam Sistem Operasi.

Selain itu, Swing juga mempunyai kemampuan untuk berganti-ganti tampilan menggunakan LAF (Look And Feel) atau themes .Sayang-nya, jika kita menginginkan tampilan GUI yang native (tampilan-nya sama seperti aplikasi-aplikasi lain pada sistem operasi target) Swing seperti-nya masih terasa kurang smooth terutama dukungan pada font rendering-nya.


3. SWT (Standart Widget Tollkit)

SWT (Standart Widget Toolkit) ini adalah sebuah GUI Toolkit yang dikeluaran oleh IBM sebagai alternatif dari AWT/Java Swing milik SUN Microsystem, yang membedakan antara SWT (Standart Widget Toolkit) dan AWT/Java Swing adalah SWT ini benar-benar mengakses native GUI library yang terdapat pada Sistem Operasi melalui JNI (Java Native Interface). Dengan model seperti ini, memungkinkan tampilan aplikasi yang dibangun menggunakan GUI Toolkit SWT menjadi sama persis dengan aplikasi native lain-nya. Kekurangan dari model pemanggilan native GUI library seperti ini adalah kita harus menyediakan library untuk tiap-tiap Sistem Operasi target aplikasi kita.


EXCEPTION

EXCEPTION

Adalah istilah yang diberikan oleh Java kepada kesalahan yang terjadi di dalam program, yang terjadi pada saat run-time. Beberapa kemungkinan error yang bias terjadi adalah:
1.Pemasukkan data karakter ketika meminta masukan berupa data bilangan
2.Terjadi pembagian dengan nol
3.Path atau lokasi file yang diberikan tidak sesuai.
4.Operasi untuk mengakses variabel array pada nomor indeks di luar batas

Terkait dengan persoalan manajemen exception, Jav` menyediakan metode untuk mengelola exception. Menangkap exception, dimaksud agar alur program dapat dikendalikan meskipun telah terjadi error
Blok try-catch digunakan untuk menangkap exception. Strukturnya:
Try
{
…instruksi yang dikerjakan secara normal…
}
Catch (Exception ex)
{
…instruksi yang dikerjakan jika terjadi error…
}



EXCEPTION
Contoh listing programnya:


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException; 3B

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


try{
 //Digunakan untuk menangkap exception.
InputStreamReader input = new InputStreamReader (System.in);
BufferedReader buf = new BufferedReader (input);

System.out.println(“Masukkan nama Anda!”);
String nama = buf.readLine();

;span class="code">System.out.println(“Masukkan tahun lahir Anda!”);

String strTahun = buf.readLine();
int tahun = Integer.parseInt(strTahun);
int umur = 2009 - tahun;


System.out.println(“Halo ”+nama+”, Umur Anda sekarang adalah “+umur+” tahun”);
}
catch (Exception ex){
System.out.println(“System ERROR”);
}
}
}

ENKRIPSI dan DESKRIPSI pada JAVA

Enkripsi adalah proses mengacak data sehingga tidak dapat dibaca oleh pihak lain. Pada kebanyakan proses enkripsi, kita harus menyertakan kunci sehingga data yang dienkripsi dapat didekripsikan kembali. Ilmu yang mempelajari teknik enkripsi disebut kriptografi. Gambaran sederhana tentang enkripsi, misalnya mengganti huruf a dengan n, b dengan m dan seterusnya. Enkripsi juga bisa disebut proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus. Keuntungan dari enkripsi adalah kode asli kita tidak dapat dibaca oleh orang lain. 
          Enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, namun, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi.

Enkripsi mempunyai beberapa macam metode yang dapat digunakan pada pemrograman web, seperti PHP, ASP, atau yang lainnya.Dan berikut metode metode nya :

1. Metode Enkripsi MD2
          Message-Digest algortihm 2 (MD2) adalah fungsi hash cryptographic yang dikembangkan oleh Ronald Rivest pada tahun 1989. Algoritma dioptimalkan untuk komputer 8-bit. MD2 yang ditetapkan dalam RFC 1319. Meskipun algoritma lainnya telah diusulkan sejak dulu, seperti MD4, MD5 dan SHA, bahkan sampai dengan 2004 [update] MD2 tetap digunakan dalam infrastruktur kunci publik sebagai bagian dari sertifikat yang dihasilkan dengan MD2 dan RSA.

2. Metode Enkripsi MD4
          Message-Digest algortihm 4(seri ke-4) yang dirancang oleh Profesor Ronald Rivest dari MIT pada tahun 1990. Panjangnya adalah 128 bit. MD4 juga digunakan untuk menghitung NT-hash ringkasan password pada Microsoft Windows NT, XP dan Vista.

3. Metode Enkripsi MD5
           MD5 adalah salah satu dari serangkaian algortima message digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest, 1994). Saat kerja analitik menunjukkan bahwa pendahulu MD5 yaitu MD4 mulai tidak aman, MD5 kemudian didesain pada tahun 1991 sebagai pengganti dari MD4 (kelemahan MD4 ditemukan oleh Hans Dobbertin). Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah file.

4. Metode Enkripsi SHA
          SHA adalah serangkaian fungsi cryptographic hash yang dirancang oleh National Security Agency (NSA) dan diterbitkan oleh NIST sebagai US Federal Information Processing Standard.
SHA adalah Secure Hash Algoritma. Jenis-jenis SHA yaitu SHA-0, SHA-1, dan SHA-2.
Untuk SHA-2 menggunakan algoritma yang identik dengan ringkasan ukuran variabel yang terkenal sebagai SHA-224, SHA-256, SHA-384, dan SHA-512.

5. Metode Enkripsi RC4
          RC4 merupakan salah satu jenis stream cipher, yaitu memproses unit atau input data pada satu saat. Unit atau data pada umumnya sebuah byte atau bahkan kadang kadang bit (byte dalam hal RC4). Dengan cara ini enkripsi atau dekripsi dapat dilaksanakan pada panjang yang variabel. RC4 adalah penyandian stream cipher yang dibuat oleh Ron Riverst pada tahun 1987 untuk pengamanan RSA. Algoritmanya didasarkan pada permutasi acak.

6. Metode Enkripsi Base64
          Base64 adalah sistem untuk mewakili data mentah byte sebagai karakter ASCII.
Base64 menyediakan 6-bit encoding 8-bit ASCII karakter.
Base64 merupakan format yang dicetak menggunakan karakter, memungkinkan binari data yang akan dikirim dalam bentuk dan email, dan akan disimpan di database atau file.

Deskripsi :  proses penggunaan algoritma yang kompleks untuk mengkonversi pesan terenkripsi ( chipertext ) ke suatu pesan ( plaintext atau cleartext ).

Untuk paket yang mendefinisikan class-class untuk encrypt dan decrypt data , java mengimplementasikan  Java Cryptography Extension (JCE) di paket dan subpaket javax.crypto .

Contoh Enkripsi dan Deskripsi :
mport javax.swing.*;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
public class Enkripsi extends JFrame{
static String teks=”";
private JLabel LabelPesan=new JLabel(“Pesan:”);
private static JTextField TeksImputan=new JTextField(40);
private JLabel LabelPergeseran=new JLabel(“Pergeseran”);
private static JTextField TeksPergeseran=new JTextField(“2″);
private JLabel LabelEnkripsi=new JLabel(“Hasil Enkripsi:”);
private static JTextField TeksHasilEnkripsi=new JTextField(40);
private JButton TombolEnkripsi=new JButton(“Enkripsi”);
private JButton TombolReset=new JButton(“Reset”);
private JPanel PanelPesan_Label=new JPanel();
private JPanel PanelTombol=new JPanel();
public Enkripsi(){ //mengatur GUI
PanelTombol.setLayout(new GridLayout(6,1,30,10));
PanelTombol.add(LabelPesan);
TeksImputan.setToolTipText(“Isi pesan yang akan dienkripsi di sini”);
PanelTombol.add(TeksImputan);
PanelTombol.add(LabelPergeseran);
TeksPergeseran.setToolTipText(“Masukkan pergeseran di sini”);
PanelTombol.add(TeksPergeseran);
PanelTombol.add(LabelEnkripsi);
TeksHasilEnkripsi.setToolTipText(“Anda tidak perlu mengisi bagian ini. Bagian ini akan terisi setelah Anda melakukan enkripsi.”);
PanelTombol.add(TeksHasilEnkripsi);
setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
add(PanelTombol);
TombolEnkripsi.setToolTipText(“Klik untuk melakukan enkripsi pesan”);
PanelPesan_Label.add(TombolEnkripsi);
TombolReset.setToolTipText(“Klik untuk menghapus semua pesan”);
PanelPesan_Label.add(TombolReset);
setLayout(new FlowLayout(FlowLayout.CENTER));
add(PanelPesan_Label,BorderLayout.SOUTH);
TombolEnkripsi.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try
{
int pergeseran=Integer.valueOf(TeksPergeseran.getText());
if(pergeseran>0 && pergeseran0){
for(int i=0;i=48 && kode_ASCII=65 && kode_ASCII=97 && kode_ASCII=33 && kode_ASCII=58 && kode_ASCII=91 && kode_ASCII=123 && kode_ASCII<=126)
ArrayHuruf[i]=(char)((kode_ASCII-123+pergeseran)%4+123);
}
}
teks=String.valueOf(ArrayHuruf);
}
else{
JOptionPane.showMessageDialog(null,”Error!!\nMasukkan pesan yang akan dienkripsi dulu”,”ERROR”,JOptionPane.ERROR_MESSAGE);
}
return teks;
}
}

Stream IO

KONSEP DASAR

Stream adalah suatu abstraksi untuk data input dan output. Tidak peduli dari mana input berasal atau kemana output akan pergi.

Contoh :
   "System.out.println()" untuk menampilkan informasi ke layar.
   "System.err.println()" untuk mengirim pesan kesalhan ke layar.

Pada java ada banyak kelas yang berhubungan dengan stream. Namun secara prinsip ada 2 buah kelas yang menjadi dasar bagi keals yang lain yaitu :
   - kelas InputStream 
   - kelas OutputStream 


1.Stream Byte
Didefinisikan dengan menggunakan dua buah hirarki kelas, yakni InputStream dan OutputStream yang keduanya dideklarasikan sebagai kelas abstrak.
Kelas-kelas stream byte yang terdapat dalam paket java.io:


  • ·         BufferedInputStream
  • ·    BufferedOutputStream
  • ·    DataInputStream
  • ·    DataOutputStream
  • ·    FileInputStream
  • ·    FileOutputStream
  • ·    InputStream
  • ·    OutputStream
2.Stream Karakter
Berbasis pada dua buah kelas abstrak, yaitu Reader dan Writer.
Kelas-kelas stream karakter yang terdapat dalam p`ket java.io:

  • ·         BufferedReader
  • ·    BufferedWriter
  • ·    FileReader
  • ·    FileWriter
  • ·    InputStreamReader
  • ·    OutputStreamReader
  1. 3.Stream yang Telah Terdefinisi
      Semua program Java secara otomatis akan mengimpor paket java.lang. Paket ini mendefinisikan kelas System yang mendefinisikan variabel stream : in, out, dan err.
System.out mengacu pada Stream output standart, System.in mengacu pada Stream input standart, dan System.err mengacu pada stream error standart;  

Contoh Program Untuk Input Karakter :
import java.io.*;
class Program1
{
public static void main(String[] args) throws IOException
{
System.out.print(“Ketikkan sebuah karakter : “);
char a;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
a = (char) br.read();
System.out.println(“Karakter yang diketikan adalah \’” + a + “\’”);
}
}
Contoh program untuk input string
import java.io.*;
class Program2
{
public static void main(String[] args) throws IOException
{
System.out.print(“Ketikkan nama anda : “);
String nama;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
nama = br.readLine();
System.out.println(nama + “, anda sedang belajar input data”);
}
}

Contoh Program Untuk Input Bilangan Bulat :
import java.io.*;
class Program3
{
public static void main(String[] args) throws IOException
{
System.out.print(“Ketikan sebuah bilangan bulat : “);
String temp;
int bilangan = 0;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
// input data dianggap sebagai string
temp = br.readLine();
try
{
// konversi dari string ke integer
bilangan = Integer.parseInt(temp);
}
catch (NumberFormatException nfe)
{
System.out.println(“Data yang diketikan ” + “bukan bilangan bulat”);
System.exit(1);
}
System.out.println(“Bilangan yang diketikan ” + “adalah ” + bilangan);
}
}

Contoh program untuk input bilangan pecahan :
String temp;
double bilangan = 0;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
// input data dianggap sebagai string
temp = br.readLine();
try
{
// konversi dari string ke floating-point
bilangan = Double.parseDouble(temp);
}
catch (NumberFormatException nfe)
{
System.out.println(“Data yang diketikan bukan bilangan”);
System.exit(1);
}
System.out.println(“Bilangan yang diketikkan ” + “adalah ”*+ bilangan);
}
}

Pernyataan :
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
Dapat digantikan oleh pernyataan :
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 

Copyright by Alicia Lanina All Reserved