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.
01315c41-d66e-4981-a093-45de9a6cb522|0|.0
Tags:
Papers | 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
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.
5e63793d-4f20-43fd-8121-7e8d4df1e06d|2|4.0
Tags:
Books | Java
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
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.
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….
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
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?
fc05f90c-dedb-44a4-a5f6-fb46ddaa6756|0|.0
Tags:
Java