Dasar Pemrograman Socket Dengan Java

by Agus Kurniawan 19. November 2011 09:13
Pada edisi 10 (Oktober 2011) majalah PC Media, saya menulis dua artikel dan salah satunya adalah Dasar Pemrograman Socket Dengan Java. Apa Itu Socket? Socket adalah suatu abtraksi yang mana aplikasi dapat mengirim dan menerima data seperti sama halnya dengan membuka suatu file untuk dibaca dan ditulis pada tempat penyimpanan file. Socket memungkinkan untuk masuk kedalam jaringan dan berkomunikasi dengan aplikasi lain yang juga masuk kedalam jaringan yang sama. Informasi yang ditulis kedalam socket pada suatu aplikasi pada suatu mesin dapat dibaca oleh aplikasi lain pada mesin yang berbeda dan sebaliknya. Socket dapat bekerja dibanyak protokol dan ilustrasi bagaimana socket berkomunikasi satu dengan lainnya dapat dilihat pada gambar 1. Pada artikel ini kita akan membahas socket yang diimplementasi pada protokol TCP/IP dan UDP/IP. Gambar 1. Ilustrasi komunikasi antar socket Pengetahuan tentang socket merupakan pengetahuan wajib yang harus diketahui ketika kita membuat aplikasi berbasis jaringan. Oleh karena itu, mula-mula penulis akan menjelaskan bagaimana arsitektur socket pada platform Windows dan Linux. Socket Pada Windows Istilah socket pada platform Windows lebih dikenal dengan istilah Winsock. Winsock ini dibuat untuk standart interface programming TCP/IP pada semua versi dari Microsoft Windows termasuk Windows Server 2003/2008, Windows Vista/7, Windows XP, Windows 2000, Windows NT, Windows 98/95, Windows CE dan Windows 3.x. Keuntungan Winsock yang diciptakan oleh Microsoft antara lain: 1.    Menyediakan open standart API sehingga memudahkan dalam mengakses jaringan untuk segala platform operating system dalam lingkungan Microsoft Windows. 2.    Aplikasi yang dibuat oleh developer pada port BSD Socket dapat juga berjalan dalam operating system Windows. 3.    Memberikan kemudahan pada pemakai dan manager IT dalam menemukan pilihan yang dapat bekerja tanpa melakukan modifikasi terlalu banyak. Motivasi untuk menciptakan Winsock untuk versi 2 terutama untuk menyediakan interface transport sebuah protocol-independent yang mempunyai kemampuan support jaringan termasuk komunikasi multimedia real-time. Disamping itu juga, Winsock 2 merupakan perbaikan dari Winsock sebelumnya dan mempunyai kemampuan lebih. Pada gambar 2 merupakan arsitektur dari Window Socket. Sedangkan Winsock 2 mempunyai arsitektur yang lebih fleksibel yang support multiple protocol stacks, interfaces, dan service providers secara simultan. Pada gambar 2 juga terlihat alur dari aplikasi yang dibedakan dalam Winsock 2.0 dan Winsock 1.1 yang ditangani oleh file WS2_32.dll. Gambar 2. Arsitektur Winsock 2.0 Dengan model arsitektur diatas, maka para developer dan vendor dapat membuat aplikasi untuk mengakses jaringan melalui Winsock 2.DLL yang dapat bekerja dalam platform operating system Windows. Socket Pada Linux Sistem operasi Linux mengimplementasi standard Berkeley socket API yang awalnya diimplementasi pada BSD Unix. Secara untuk arsitektur socket pada network layer sistem operasi Linux dapat dilihat pada gambar 3. Gambar 3. Arsitektur umum socket pada Linux Interface Berkeley socket mengijinkan sebuah program dapat membuka komunikasi ke suatu target mesin lainnya. Network Device Driver memungkinkan beberapa peralatan jaringan dapat digunakan pada suatu saat. Peralatan jaringan ini terlebih dulu didaftarkan pada sistem sesuai dengan tipe nya seperti Ethernet, PPP, X.25 dan sebagainya. Mengenal Java Berbasis Jaringan Pada saat artikel ini ditulis Java JDK yang dikembangkan oleh Sun Microsystem sudah mencapai versi 6 dan secara garis besar pembagian library Java dapat digambarkan sebagai berikut Gambar 4. Diagram Java API 6 Pada diagram Java API diatas terlihat begitu banyak sekali API dan buku ini akan fokus ke library Java dibagian Networking yang dikumpulkan dalam package java.net. Lebih lengkapnya, pembaca dapat membacanya di majalah PC Media edisi Oktober 2011. Semoga berguna.

Tags:

Papers | Java

Cover Buku “Pemrograman Jaringan Dengan Java”

by Agus Kurniawan 9. October 2011 00:56
Dua hari yang lalu, saya memperoleh konfirmasi akhir cover buku saya Pemrograman Jaringan Dengan Java dari pihak penerbit Andi. Berikut ini cover bukunya Informasi mengenai daftar isi dan sinopsinya dapat dibaca disini http://blog.aguskurniawan.net/post/book-java-networking.aspx Semoga buku ini berguna untuk semuanya

Tags:

Books | Java | Networking

Buku Baruku “Pemrograman Jaringan Dengan Java”

by Agus Kurniawan 5. September 2011 08:01
Alhamdullilah, akhirnya bisa menyelesaikan buku “Pemrograman Jaringan Dengan Java”. Buku ini merupakan pengembangan dari buku gw dulu yang berjudul “Pemrograman Jaringan Internet Dengan Visual C++” tahun 2002 dengan sudut pandang implementasi yang berbeda dan penambahan topik baru sesuai dengan perkembangan teknologi jaringa. Buku ini akan diterbitkan oleh Andi Publisher, semoga bulan September 2011 atau paling telat awal Nopember 2011 sudah tersedia di toko-toko buku. Sinopsis Perkembangan jaringan komputer saat ini sudah sangat cepat dan tipe jaringan sekarang juga sudah multi heterogen. Disisi lain bahasa pemrograman juga mengalami perkembangan yang pesat. Akibat dari ini, kebutuhan suatu program yang dapat melakukan integrasi dengan sistem lain dan berjalan diatas suatu teknologi jaringan cukup tinggi sehingga kita harus lebih banyak belajar apa yang terjadi didalam proses komunikasi jaringan dan bagaimana cara memprogramnya. Buku ini dibuat untuk memenuhi kebutuhan ketrampilan dan pengetahuan bagaimana membuat aplikasi yang memanfaatkan teknologi komunikasi jaringan. Bahasa pemrograman yang digunakan adalah bahasa Java. Buku ini ditulis secara komprehensif dan step-by-step sehingga mudah diikuti dan dipahami serta dilengkapi dengan studi kasus sesuai dengan topik yang dibahas. Secara garis besar materi buku ini meliputi: •    Dasar Jaringan Internet •    Persiapan Pemrograman Jaringan •    Mengenal Java API Berbasis Jaringan •    Mengenal Socket •    Mengenal Java Multithreading •    Sistem Protokol Connection-Oriented •    Sistem Protokol Connectionless-Oriented •    Bekerja Dengan Data Stream •    Pemrograman Berbasis Protokol HTTP •    Pemrograman Berbasis Protokol FTP •    Pemrograman Berbasis Protokol SMTP •    Pemrograman Berbasis Protokol POP3 •    Mengenal JavaMail •    Pemrograman Jaringan Berbasis IPv6 •    Pemrograman Jaringan Berbasis TLS/SSL •    Pemrograman Jaringan Berbasis Proxy Semua ilustrasi kode program Java menggunakan platform Windows dan Linux. Tool yang digunakan adalah Netbeans dan Eclipse. Daftar Isi Kata Pengantar Daftar Isi A. Dasar-Dasar Jaringan Bab 1. Dasar Jaringan Internet     1.1 Arsitektur Jaringan Model OSI     1.2 Topologi LAN     1.3 Arsitektur Internet Protocol (IP)     1.4 IP Address         1.4.1 Kelas Address         1.4.2 Subnet Mask     1.5 Penamaan Host     1.6 Aplikasi Internet Protocol Bab 2. Persiapan Pemrograman Jaringan     2.1 Apa Itu Pemrograman Jaringan?     2.2 Sistem Operasi     2.3 Development Tool Bab 3. Mengenal Java API Berbasis Jaringan     3.1 Mengenal Java Berbasis Jaringan         3.1.1 Mengenal Kelas java.net     3.2 Halo Java Jaringan Bab 4. Mengenal Socket     4.1 Apa Itu Socket?     4.2 Socket Pada Windows         4.2.1 Arsitektur Winsock 2.0         4.2.2 Windows Socket Dan Model OSI     4.3 Socket Linux     4.4 Implementasi Socket Dengan Java         4.4.1 Aplikasi Server         4.4.2 Aplikasi Client         4.4.3 Testing Bab 5. Mengenal Java Multithreading     5.1 Apa Itu Thread?     5.2 Membuat Thread Sederhana     5.3 Mengenal Objek Thread         5.3.1 Kontruksi Thread         5.3.2 Menjalankan Thread         5.3.3 Menghentikan Thread         5.3.4 Informasi Thread     5.4 Thread Dengan Executor Framework     5.5 Mengenal Objek Timer     5.6 Sinkronisasi Thread         5.6.1 Teknik Sinkronisasi Thread         5.6.2 Contoh Sinkronisasi Thread B. Pemrograman Jaringan Berbasis Client-Server Bab 6. Sistem Protokol Connection-Oriented     6.1 Mengenal Connection-Oriented Protocol     6.2 Socket Dan SocketServer     6.3 Implementasi Bab 7. Sistem Protokol Connectionless-Oriented     7.1 Mengenal Protokol Connectionless-Oriented     7.2 Implementasi         7.2.1 Konstruksi Datagram Socket         7.2.2 Melakukan Koneksi         7.2.3 Menerima Data Packet         7.2.4 Mengirim Data Packet     7.3 Studi Kasus Client-Server UDP         7.3.1 Server UDP         7.3.2 Client UDP         7.3.3 Eksekusi Aplikasi Bab 8. Bekerja Dengan Data Stream     8.1 Apa Itu Data Stream?     8.2 Data Stream Pada Java     8.3 Filter Stream C. Pemrograman Jaringan Berbasis Protokol Bab 9. HTTP     9.1 Mengenal Protokol HTTP         9.1.1 Prinsip Kerja         9.1.2 Metode Akses HTTP Request     9.2 Praktikum: Akses Protokol HTTP Dengan Telnet         9.2.1 Telnet Pada OS Windows         9.2.2 Telnet Pada OS Linux     9.3 Solusi Untuk Mengakses Protokol HTTP Dengan Java     9.4 Socket HTTP     9.5 Paket Java java.net         9.5.1 Pembuat Aplikasi Java HTTP GET         9.5.2 Pembuat Aplikasi Java HTTP POST     9.6 Komponen Ketiga HTTP         9.6.1 Pembuat Aplikasi Java HTTP GET         9.6.2 Pembuat Aplikasi Java HTTP POST     9.7 Authentikasi HTTP         9.7.1 Basic Authentication         9.7.2 Modifikasi Kode Program         9.7.3 Penjelasan Modifikasi Kode Program Bab 10. FTP     10.1 Mengenal Protokol FTP         10.1.1 Prinsip Kerja         10.2.1 Operasi-Operasi Dalam FTP             10.2.1.1 Melakukan Koneksi Dengan Remote Host             10.2.1.2 Memilih Direktori             10.2.1.3 List File Yang Akan Ditransfer             10.2.1.4 Mendefinisikan Mode Transfer             10.2.1.5 Menyalin File Ke Atau Dari Remote Host             10.2.1.6 Memutuskan Hubungan Dengan Remote Host     10.2 Kode Respon FTP     10.3 Anonymous FTP     10.4 Praktikum: Akses FTP Melalui Konsole         10.4.1 Persiapam         10.4.2 Akses FTP Melalui Konsole Windows         10.4.3 Akses FTP Melalui Konsole Linux         10.4.4 Mengunduh File         10.4.5 Mengunggah File         10.4.6 Keluar Dan Masuk     10.5 Akses FTP Dengan Java         10.5.1 Menampilkan Daftar File Dan Folder         10.5.2 Mengunduh File Dari File Server         10.5.3 Mengunggah File Ke FTP Server     10.6 Komponen Ketiga FTP Client         10.6.1 Menampilkan Daftar File Dan Folder         10.6.2 Mengunduh Dan Mengunggah File FTP D. Pemrograman Jaringan Berbasis Mail Bab 11. SMTP     11.1 Mengenal Protokol SMTP     11.2 Model Dasar SMTP     11.3 Cara Kerja SMTP         11.3.1 Format Header Mail         11.3.2 Proses Pertukaran Mail     11.4 SMTP Dan Sistem Domain     11.5 Referensi Dan Standard SMTP     11.6 SMTP Gateway     11.7 SMTP Command         11.7.1 HELO         11.7.2 MAIL         11.7.3 RCPT         11.7.4 DATA         11.7.5 RSET         11.7.6 VRFY         11.7.7 EXPN         11.7.8 HELP         11.7.9 NOOP         11.7.10 QUIT     11.8 Algoritma Mengirim Mail     11.9 Implementasi SMTP Dengan Java     11.10 Mail Server     11.11 Praktikum: Kirim Email Dengan Java Socket         11.11.1 Skenario         11.11.2 Pembuatan Aplikasi         11.11.3 Uji Coba         11.11.4 Penjelasan Kode Program     11.12 Authentikasi SMTP         11.12.1 Transformasi Base-64 Pada Java         11.12.2 Pengiriman Email Dengan Authentikasi SMTP Bab 12. POP3     12.1 Apakah Itu POP?     12.2 Cara Kerja POP3     12.3 POP3 Command         12.3.1 USER         12.3.2 PASS         12.3.3 QUIT         12.3.4 STAT         12.3.5 LIST         12.3.6 RETR         12.3.7 DELE         12.3.8 NOOP         12.3.9 RSET     12.4 Algoritma Mengambil Mail Dari Server     12.5 Format Message     12.6 Akses Protokol POP3 Dengan Java     12.7 Mail Server     12.8 Praktikum: Mengambil Email Dengan Java         12.8.1 Skenario         12.8.2 Pembuatan Aplikasi         12.8.3 Uji Coba         12.8.4 Penjelasan Kode Program     12.9 Menghapus Email Bab 13. Mengenal JavaMail     13.1 Mengenal JavaMail     13.2 Cara Penggunaan     13.3 Mengirim Email         13.3.1 Kode Program Aplikasi         13.3.2 Penjelasan Kode Program     13.4 Mengirim Email Dengan Lampiran     13.5 Mengambil Email         13.5.1 Kode Program Aplikasi         13.5.2 Penjelasan Kode Program E. Topik Khusus Bab 14. Pemrograman Jaringan Berbasis IPv6     14.1 Apa Itu Protokol IPv6?     14.2 Penerapan IPv6 Pada Java         14.2.1 Hello Java IPv6     14.3 Praktikum Aplikasi Client/Server Java IPv6         14.3.1 Server         14.3.2 Client         14.3.3 Menjalankan Aplikasi Bab 15. Pemrograman Jaringan Berbasis TLS/SSL     15.1 Apa Itu TLS/SSL?     15.2 Penerapan TLS/SSL Pada Java     15.3 HTTPS/SSL         15.3.1 Java HTTPS         15.3.2 Java Apache         15.3.3 Java Socket     15.4 HTTPS/SSL Dengan Certificate Yang Tidak Valid         15.4.1 Modifikasi Java HTTPS Dan Java Apache         15.4.2 Modifikasi Java Socket     15.5 FTPS         15.5.1 Metode Akses         15.5.2 FTPS Server         15.5.3 Membuat Program Java FTPS     15.6 Aplikasi Client/Server Berbasis TLS/SSL         15.6.1 SSL Server         15.6.2 SSL Client         15.6.3 Eksekusi Aplikasi Client/Server Bab 16. Pemrograman Jaringan Berbasis Proxy     16.1 Apa Itu Proxy?     16.2 Proxy Server     16.3 Mengakses HTTP Proxy Dengan Java     16.4 Mengakses Proxy Dengan Java Socket     16.5 Proxy Dengan Authentikasi         16.5.1 HTTP Proxy Dengan Authentikasi         16.5.2 SOCKS Proxy Dengan Authentikasi Daftar Pustaka Lampiran Tentang Penulis Semoga buku ini dapat berguna.

Tags:

Books | Java

Membuat Aplikasi Berbasis Platform 64-bit

by Agus Kurniawan 8. April 2011 09:16
Perkembangan komputer yang begitu cepat dan tanpa sadar sudah banyak dibanjiri platform komputer yang berbasis 64-bit namun perkembangan pemrograman sekarang masih juga berorientasi pemrograman berbasis 32-bit so pada edisi April 2011 majalah PC Media gw menulis mengenai bagaimana membuat program berbasis 64-bit. Apa itu Platform 64-bit? Pada konsep arsitektur komputer istilah 64-bit menunjukan 64-bit integer dan tipe data lainnya mempunya ukuran 64 bits. Ini artinya kita mendefinisikan platform 64-bit dengan panjang data yang dimiliki. Dengan ukuran data yang lebih besar dibandingkan dengan 32-bit maka sistem platform 64-bit kinerjanya akan jauh lebih cepat karena data yang diprosesnya lebih banyak. Dari segi fitur processor, platform 64-bit memungkinkan dapat meningkatkan kinerja processor tersebut. Contoh perbandingan fitur processor Intel 32-bit dan 64-bit dapat dilihat pada gambar dibawah ini Aplikasi 32-bit Pada Platform 64-bit Sebagian besar sistem operasi berplatform 64-bit tidak mengijinkan aplikasi 32-bit berjalan diatas sistem operasi ini tapi beberapa sistem operasi 64-bit mengijinkan aplikasi 32-bit berjalan diatasnya. Teknik yang digunakan menggunakan emulasi. Salah satu contohnya adalah teknologi WoW64 (Windows 32-bit On Windows 64-bit). Teknologi WoW64 memungkinkan aplikasi 32-bit dapat berjalan diatas platform OS Windows 64-bit antara lain: Windows 2000 Limited Edition Windows XP Professional x64 Windows Server 2003 x64 Windows Vista dan 7 berbasis x64 Windows Server 2008 x64 Khusus untuk Windows dengan platform Itanium aplikasi 32-bit sebagian besar tidak dapat dijalankan.  Arsitektur umum teknologi WoW64 dapat dilihat pada gambar dibawah  dimana realisasinya Microsoft menambahkan komponen library antara lain: WoW64.dll – Untuk mengatur initialisasi thread dan process serta melakukan interferensi system call WoW64win.dll – Menangkap GUI system call WoW64cpu.dll – Untuk mengatur thread context pada spesifik CPU Bagaimana implementasi pada C/C++, .NET dan java untuk membuat program berbasis 64-bit? lebih lengkapnya dapat dilihat pada majalah PC Media edisi April 2011. Referensi 64-Bit, http://en.wikipedia.org/wiki/64-bit  Intel 64 Architecture, http://www.intel.com/technology/intel64/index.htm  Microsoft .NET, http://www.microsoft.com/net  Sun Java, http://java.sun.com

Tags:

Papers | C/C++ | .NET | Java

Tutorial Video Dasar Pemrograman Java

by Agus Kurniawan 5. March 2011 08:38
Bagi yang ingin belajar bahasa pemrograman Java, gw sudah membuat tutorial mengenai bahasa pemrograman Java dalam bentuk video. Tutorial ini sudah di upload ke portal PE College. Topik video tutorial bahasa pemrograman Java meliputi: 1. "Hello World" Java 2. Tipe Data dan Deklarasi Variabel 3. Operasi Aritmetika 4. Kondisional If 5. Nested If 6. Penggunaan Package Java 7. Operator Java 8. Memberikan Komentar Pada Kode Program 9. Mengambil Input Dari Konsole 10. Penggunaan Switch 11. Looping for 12. Looping while 13. Looping do..while 14. Penggunaan break 15. Penggunaan continue 16. Dasar Collection 17. Array 18. ArrayList 19. Penggunaan try..catch 20. Class Anda dapat mengakses video ini langsung di URL ini. Pastikan anda sudah login terlebih dulu. Bagi anda yang belum mempunyai account PE College, registrasi saja karena ini gratis dan pastikan menggunakan email yang valid karena validasi registrasi menggunakan email. Semoga berguna.

Tags:

Java | PECollege

PE College for BlackBerry

by Agus Kurniawan 1. January 2010 09:00
People Enterprise College, http://www.pecollege.net, saat ini lagi development & testing untuk agar para pemilik Blackberry dapat menikmati video tutorial di PE College. Saat ini portal sudah selesai. Dengan menggunakan Blackberry Internet Browser, arahkan ke http://www.pecollege.net . Selanjutnya sistem akan mendeteksi bahwa browser anda dari Blackberry maka sistem akan melakukan redirect ke portal PE for Blackberry Pilih “Ke PE College for BlackBerry” sehingga sistem akan mengarahkan ke portal PE College untuk Blackberry seperti dibawah ini Untuk melihat video testing, klik menu Video Tutorial sehingga akan muncul tampilan seperti dibawah Pilih video testing. Selanjutkan akan muncul pop up window seperti dibawah Pilih Open sehingga akan muncul media player Blackberry seperti dibawah dan akhirnya video dapat dinikmati.. Video Streaming Issue on BlackBerry Ada beberapa issue apabila kita ingin melakukan video streaming melalui Video Streaming. Issue nya adalah Bandwidth. Seperti kita ketahui bahwa setiap BlackBerry provider membatasi setiap HTTP Request pada BES Server. Oleh karena itu, engine pada portal harus dimodifikasi dengan pendekatan streaming per chunk. Sedangkan di sisi player di Blackberry client harus smart. Padahal Media Player Blackberry tidak support untuk streaming per chunk (memang ada sih Buffering tetapi kita tidak dapat konfigurasi request streaming size). Oleh karena itu, kita harus membuat media player khusus yang dibuat melalui JAVA. Saat ini, gw juga oprek2x untuk membuat media player untuk PE College melalui Blackberry JDE. Cara lain, video dipotong sekecil mungkin . Sedangkan cara lain yaitu video streaming melalui RTSP protocol yang memang support tetapi disisi user, penggunaan RTSP pada Blackberry kena charge tambahan. Ditunggu aja inovasi dari PE College….

Tags:

PECollege | .NET | Java

Blackberry Simulator is Available Now

by Agus Kurniawan 15. August 2009 23:23
Tahun lalu, gw mengerjakan project yang mana memanfaatkan Blackberry sebagai solusinya. Waktu itu kalau kita melakukan testing kita harus menggunakan Blackberry device yang sesungguhnya. Seperti kita ketahui, harga Blackberry tidaklah murah apalagi para IT pro atau developer mesti membelinya . Sekarang pihak RIM sudah menyediakan Blackberry simulator yang dapat kita pergunakan untuk melakukan testing. Simulator tool ini free so anda bisa mencobanya. Blackberry simulator ini dapat diunduh di URL ini http://na.blackberry.com/eng/developers/resources/simulators.jsp Selamat mencoba nih dan tetap semangat codingnya

Tags: ,

Java | Mobile Computing

Netbeans 6.7

by Agus Kurniawan 15. July 2009 21:07
Kemarin gw download Netbeans 6.7. Sudah lama gak pakai IDE ini, rupanya perkembangan IDE ini cukup pesat baik fitur hingga performance nya sehingga ini mempercepat proses development. Gw demen IDE ini untuk development aplikasi berbasis java baik desktop, web maupun mobile. Gw juga pakai IDE untuk compile C/C++ dengan GNU via IDE ini pada OS Linux. Bagaimanakah pengalaman anda sendiri?

Tags:

Java