Kamis, 08 November 2012

Makalah Bahasa Pemrograman


MAKALAH PRAKTIKUM TEKNOLOGI INFORMATIKA

 

BAHASA JAVA DALAM DUNIA JARINGAN KOMPUTER
Disusun Oleh :
1.                 Nadia Azhari Setyorini (21070112120014)
2.                 Lo, Hendrawan Wijaya (21070112130068)
3.                 Muhammad Arasyandi (21070112140109)

PROGRAM STUDI TEKNIK INDUSTRI
FAKULTAS TEKNIK UNIVERSITAS DIPONEGORO
SEMARANG
2012


KATA PENGANTAR

Puji syukur kami panjatkan kehadirat Allah SWT yang telah memberikan rahmat serta karunia-Nya kepada kami sehingga kami berhasil menyelesaikan Makalah ini yang alhamdulillah tepat pada waktunya yang berjudul “BAHASA JAVA DALAM DUNIA JARINGAN KOMPUTER”
Makalah ini berisikan tentang informasi kegunaan bahasa java dalam kehidupan sehari-hari, pemaksimalan jaringan, dan kegunaan java dalam jaringan.
Diharapkan Makalah ini dapat memberikan informasi kepada kita semua tentang kegunaan Java dalam jaringan.
Kami menyadari bahwa makalah ini masih jauh dari sempurna, oleh karena itu kritik dan saran dari semua pihak yang bersifat membangun selalu kami harapkan demi kesempurnaan makalah ini.
Akhir kata, kami sampaikan terima kasih kepada semua pihak yang telah berperan serta dalam penyusunan makalah ini dari awal sampai akhir. Semoga Allah SWT senantiasa meridhai segala usaha kita. Amin.

Semarang, 9 November 2012

                               
                                Kelompok 7

DAFTAR ISI
COVER........................................................................................................................         i
KATA PENGANTAR.................................................................................................        ii
DAFTAR ISI................................................................................................................       iii
BAB I : PENDAHULUAN.........................................................................................        1
1.1  LATAR BELAKANG MASALAH................................................................        1
1.2  RUANG LINGKUP........................................................................................        1
1.3  RUMUSAN MASALAH................................................................................        1
1.4  TUJUAN..........................................................................................................        2
1.5  MANFAAT......................................................................................................        2
BAB II : PEMBAHASAN..........................................................................................        3
2.1  PENGERTIAN BAHASA PEMROGRAMAN.............................................        3
2.2  BAHASA PEMROGRAMAN JAVA............................................................        3
2.3  PENGERTIAN JARINGAN...........................................................................        4
2.4  MANFAAT JARINGAN................................................................................        5
2.5  JAVA DALAM JARINGAN..........................................................................        6
BAB III : PENUTUP...................................................................................................      15
3.1  KESIMPULAN................................................................................................      15
DAFTAR PUSTAKA..................................................................................................      16




BAB I : PENDAHULUAN

1.1.   LATAR BELAKANG MASALAH
Pada abad ke-21 ini, penggunaan teknologi jaringan dalam dunia komputer sudah lumrah dan tidak terbantahkan lagi manfaatnya dalam mendukung berbagai kegiatan manusia. Jaringan ini banyak dimanfaatkan untuk kegiatan pendidikan, bisnis, militer, bahkan untuk game pun juga memanfaatkan jaringan sebagai penghubung dua atau lebih PC yang digunakan untuk bermain game.
Tidak salah lagi jika banyak para programmer sekarang ini semakin kreatif dalam membuat inovasi dalam membuat jaringan yang semakin efektif dan efisien penggunaannya. Hal ini dikarenakan banyaknya permintaan dari client yang semakin rumit permintaannya untuk kecepatan transfer data/informasi dalam jaringan itu sendiri, sehingga dibutuhkan jaringan yang aksesnya cepat, tidak lelet, dan tentu saja punya tingkat keamanan yang membuat client nyaman.
Penggunaan bahasa pemrograman java dalam dunia jaringan juga semakin banyak kegunaannya, karena java merupakan bahasa pemrograman nomor satu dari berbagai bahasa pemrograman yang sudah ada. Oleh karena itu, dari semakin kompleksnya kebutuhan manusia, penulis mencoba membahas berbagai keuntungan pemakaian java dalam dunia jaringan.

1.2.   RUANG LINGKUP
Pada penulisan makalah ini, penulis membatasi masalah yang ada dengan membahas keuntungan pemakaian java, pemaksimalan jaringan, dan java dalam jaringan.
1.3.   RUMUSAN MASALAH
1.3.1.1.            Apa saja keuntungan bahasa pemrograman java?
1.3.1.2.            Bagaimana memaksimalkan jaringan?
1.3.1.3.            Bagaimana penggunaan java dalam jaringan?
1.4.   TUJUAN
1.4.1.1.            Menyelesaikan tugas pendahuluan praktikum teknologi informatika
1.4.1.2.            Mengetahui keuntungan bahasa pemrograman java
1.4.1.3.            Mengetahui cara memaksimalkan jaringan
1.4.1.4.            Mengetahui cara menggunakan java dalam jaringan
1.5.   MANFAAT
1.5.1.1.            Mendapatkan nilai yang bagus dalam tugas pendahuluan praktikum teknik informatika
1.5.1.2.            Memahami cara kerja bahasa pemrograman java dalam dunia jaringan


















BAB II : PEMBAHASAN

2.1  PENGERTIAN BAHASA PEMROGRAMAN
Bahasa pemrograman adalah suatu istilah yang menjelaskan bahasa yang dapat dipahami oleh komputer. Dalam dunia perkomputeran dikenal dua jenis bahasa pemrograman, yaitu bahasa pemrograman tingkat tinggi dan bahasa pemrograman tingkat rendah.
Sebuah bahasa pemrograman atau bahasa komputer di artikan sebagai teknik komunikasi yang sudah distandarisasi untuk menyatakan instruksi-instruksi kepada komputer. Bahasa pemrograman adalah kesatuan aturan sintaksis dan semantik yang digunakan untuk mendefinisikan sebuah program.
Sebuah bahasa pemrograman memungkinkan seorang programmer untuk memutuskan secara tepat apa yang harus dilakukan oleh komputer pada saat itu, cara mengatur alur transfer data, input-output, dan kegiatan-kegiatan lains yang harus dilakukan dalam berbagai keadaan.
Bahasa pemrograman tingkat rendah merupakan bahasa pemrograman yang sulit dimengerti oleh manusia, sedangkan bahasa pemrograman tingkat tinggi lebih mudah dipahami oleh manusia. Contoh dari bahasa pemrograman tingkat rendah adalah Assembly, dan contoh bahasa pemrograman tingkat tinggi adalah C dan Pascal.

2.2  BAHASA PEMROGRAMAN JAVA
Bahasa pemrograman java adalah teknologi yang pertama kali diperkenalkan oleh Sun Microsystems sekitar tahun 1990an. Menurut definisi dari Sun, Java adalah nama untuk sekumpulan teknologi untuk membuat dan menjalankan perangkat luinak pada komputer standalone ataupun pada lingkungan jaringan. Banyak orang menyebut Java sebagai sebuah teknologi dibanding hanya sebuah bahasa pemrograman. Teknologi Java memiliki tiga komponen penting yang menopang Java itu sendiri, yaitu :
1.      Programming-language specification
2.      Application-programming interface
3.      Virtual-machine specification
Bahasa Java bisa dikategorikan sebagai bahasa pemrograman berorientasi objek, pemrograman terdistribusi dan bahasa pemrograman multithrreaded . Objek Java dispesifikkan dengan membentuk kelas-kelas. Untuk masing-masing kelas Java, kompiler Java mengeluarkan sebuah file keluaran arsitektur netral yang akan berjalan pada berbagai implementasi dari Java Virtual Machine (JVM). Pada awalnya Java sangat digemari oleh para programmer, karena Java mendukung untuk applets , dimana program dengan akses sumber daya terbatas dapat berjalan dalam sebuah web browser. Java juga mampu menyediakan dukungan level tingkat tinggi untuk networking dan objek terdistribusi. Java juga dianggap sebagai sebuah bahasa yang mempunyai tingkat keamanan yang tinggi. Tampilan ini pada khususnya hanya menganggap bahwa sebuah program Java bisa mengeksekusi sebuah jaringan terdistribusi. Bahasa Java pada jaman ini termasuk bahasa pemrograman yang relatif mudah untuk dipelajari karena banyaknya contoh dan konsep yang beredar luas, baik berupa buku panduan belajar java maupun yang sudah dipublikasikan di internet. Tetapi program yang dibuat dalam bahasa Java juga relatif lebih banyak membutuhkan waktu saat di eksekusi (lebih lama), hal ini dikarenakan untuk menjalankan programnya dibutuhkan JVM (perantara antar program dan sistem operasi).

2.3  PENGERTIAN JARINGAN
Pengertian dari Jaringan komputer adalah sekumpulan komputer, serta perangkat-perangkat lain pendukung komputer yang saling terhubung dalam suatu kesatuan. Media untuk jaringan komputer dapat digunakan kabel-kabel atau tanpa kabel sehingga memungkinkan pengguna jaringan komputer dapat saling melakukan pertukaran informasi, seperti dokumen dan data, serta dapat juga melakukan pencetakan pada printer yang sama dan bersama-sama memakai perangkat keras dan perangkat lunak yang terhubung dengan jaringan. Setiap komputer, ataupun perangkat-perangkat yang terhubung dalam suatu jaringan disebut dengan node. Dalam sebuah jaringan komputer dapat mempunyai dua, puluhan, ribuan atau bahkan jutaan node.
Jaringan Komputer adalah sekelompok komputer otonom yang saling berhubungan antara satu dengan lainnya menggunakan protokol komunikasi melalui media komunikasi sehingga dapat saling berbagi informasi, program – program, penggunaan bersama perangkat keras seperti printer, harddisk, dan sebagainya. Selain itu jaringan komputer dapat juga diartikan sebagai kumpulan sejumlah terminal komunikasi yang berada diberbagai lokasi yang terdiri dari lebih satu komputer dan saling berhubungan.

2.4  MANFAAT JARINGAN
1.      Sharing resources
Sharing resources bertujuan agar seluruh program, peralatan atau peripheral lainnya dapat dimanfaatkan oleh setiap orang yang ada pada jaringan komputer tanpa terpengaruh oleh lokasi maupun pengaruh dari pemakai.
2.      Media Komunikasi
Jaringan komputer sangat memungkinkan terjadinya komunikasi antar pengguna, baik untuk teleconference maupun untuk mengirim pesan atau informasi yang penting lainnya.
3.      Integrasi Data
Jaringan komputer dapat mencegah ketergantungan pada komputer pusat, karena setiap proses data tidak harus dilakukan pada satu komputer saja, melainkan dapat didistribusikan ke tempat lainnya. Oleh sebab inilah maka dapat terbentuk data yang terintegrasi yang memudahkan pemakai untuk memperoleh dan mengolah informasi setiap saat.
4.      Pengembangan dan Pemeliharaan
Pengembangan peralatan dapat dilakukan dengan mudah dan menghemat biaya, karena setiap pembelian komponen seperti printer, maka tidak perlu membeli printer sejumlah komputer yang ada tetapi cukup satu buah karena printer itu dapat digunakan secara bersama – sama. Jaringan komputer juga memudahkan pemakai dalam merawat harddisk dan peralatan lainnya, misalnya untuk memberikan perlindungan terhadap serangan virus maka pemakai cukup memusatkan perhatian pada harddisk yang ada pada komputer pusat.
5.      Keamanan Data
Sistem Jaringan Komputer dapat memberikan perlindungan terhadap data. Karena pemberian dan pengaturan hak akses kepada para pemakai, serta teknik perlindungan terhadap harddisk sehingga data mendapatkan perlindungan yang efektif.
6.      Sumber Daya Lebih Efisien dan Informasi Terkini
Dengan pemakaian sumber daya secara bersama – sama, akan mendapatkan hasil yang maksimal dan kualitas yang tinggi. Selain itu data atau informasi yang diakses selalu terbaru, karena setiap ada perubahan yang terjadi dapat segera langsung diketahui oleh setiap pemakai.

2.5  JAVA DALAM JARINGAN
Dalam pemrograman, jaringan (network) hanyalah salah satu jenis dari input di mana data bisa diambil, dan output di mana data bisa dikirim. Konsep ini mempermudah pemahaman tentang pemrograman dalam jaringan, akan tetapi ada beberapa hal lain yang harus diperhatikan sehingga pemrograman pada jaringan dapat berhasil dengan baik.
Pada Java, bisa digunakan aliran input dan output untuk melakukan komunikasi pada network, seperti halnya pada file. Akan tetapi membuat koneksi jaringan antara dua komputer sedikit lebih rumit, karena ada dua komputer yang berbeda, yang keduanya harus setuju membuka koneksi. Dan ketika data dikirimkan dari satu komputer ke komputer lain, komunikasi harus dilakukan seirama sehingga data yang dikirimkan akan sampai ke komputer yang lain.
Salah satu paket Java standar adalah java.net. Paket ini memiliki beberapa kelas yang bisa digunakan untuk berkomunikasi melalui jaringan. Dua jenis I/O network disediakan dalam paket ini. Yang pertama, yang lebih tinggi tingkatannya, berdasarkan pada Web dan memberikan fasilitas komunikasi seperti halnya web browser ketika mendownload suatu halaman web untuk kemudian ditampilkan. Kelas utama dalam jenis network seperti ini adalah java.net.URL dan java.net.URLConnection. Suatu objek bertipe URL adalah lambang abstrak dari sebuah URL (Universal Resource Locator), yaitu alamat web di mana dokumen HTML atau lainnya bisa ditemukan pada web. Sedangkan URLConnection adalah koneksi network ke dokumen tadi.
Jenis I/O kedua adalah melihat jaringan pada tingkatan yang lebih rendah, yaitu berdasarkan ide suatu soket (socket). Soket digunakan oleh program untuk melakukan koneksi dengan program lain pada suatu jaringan. Komunikasi melalui network melibatkan dua soket, yaitu masing-masing pada setiap komputer. Java memiliki kelas java.net.Socket untuk merepresentasikan suatu soket yang digunakan dalam komunikasi network.
Istilah "soket" mungkin mirip dengan colokan kabel data (misalnya) modem, akan tetapi penting untuk diingat bahwa soket adalah objek bertipe Socket. Artinya program bisa memiliki beberapa soket dalam waktu yang sama, yang masing-masing terhubung ke program yang dijalankan pada komputer lain. Semuanya menggunakan koneksi network yang sama dari satu kabel.
Contoh pemrograman jaringan:
Contoh ini melibatkan dua program, yaitu klien sederhana dan servernya. Klien melakukan koneksi dengan server, membaca satu baris teks dari server, kemudian menampilkan teks ini pada layar. Teks yang dikirim oleh server adalah tanggal dan waktu saat ini di komputer di mana server dijalankan.
Untuk membuka koneksi, klien harus tahu di komputer mana server dijalankan dan di port mana server tersebut mendengarkan permintaan sambungan. Server akan mendengarkan pada port bernomor 32007. Nomor port ini bisa berapapun di antara 1025 hingga 65535, asalkan klien dan servernya menggunakan port yang sama. Nomor port antara 1 hingga 1024 hanya digunakan oleh layanan standar dan seharusnya tidak digunakan untuk server lainnya.
Nama komputer atau alamat IP di mana server dijalankan harus diberikan pada paramater baris perintah. Misalnya jika server dijalankan pada komputer kita sendiri, kita bisa memanggilnya dengan "java KlienTanggal localhost". Berikut ini adalah program klien lengkapnya.
import java.net.*;
import java.io.*;

public class KlienTanggal {

    static final int PORT_PENDENGAR = 32007;

    /**
     * @param args
     */
    public static void main(String[] args) {
        String komputer;  // Nama komputer yang akan disambungkan
        Socket koneksi;   // Soket untuk berkomunikasi dengan
                          // komputer tersebut
        Reader masuk;     // Aliran untuk membaca data dari koneksi

        /* Ambil nama komputer dari baris perintah */

        if (args.length > 0)
           komputer = args[0];
        else {
           // Tidak ada nama komputer yang diberikan
           // Beri pesan kesalahan dan program selesai
           System.out.println("Cara menggunakan :  java KlienTanggal <server>");
           return;
        }

        /* Buat koneksi, kemudian baca dan tampilkan di layar */

        try {
           koneksi = new Socket( komputer, PORT_PENDENGAR );
           masuk = new InputStreamReader( koneksi.getInputStream() );
           while (true) {
              int ch = masuk.read();
              if (ch == -1 || ch == '\n' || ch == '\r')
                 break;
              System.out.print( (char)ch );
           }
           System.out.println();
           masuk.close();
        }
        catch (IOException e) {
           System.out.println("Kesalahan :  " + e);
        }
    }
}
Perhatikan bahwa semua komunikasi dengan server dilakukan dalam pernyataan try ... catch. Ini akan menangkap pengecualian IOException yang mungkin terjadi ketika koneksi sedang dibuka atau ditutup atau sedang membaca karakter dari aliran input.
Aliran yang digunakan adalah aliran sederhana Reader yang memiliki operasi input masuk.read(). Fungsi ini membaca satu per satu karakter dari aliran, kemudian mengembalikan nomor kode Unicodenya. Jika akhir aliran telah dicapai, maka nilai -1 akan dikembalikan. Perulangan while membaca karakter ini satu per satu hingga akhir aliran ditemui atau akhir baris ditemui. Akhir baris ditandai dengan salah satu dari '\n' atau '\r' atau keduanya, tergantung dari jenis komputer di mana server tersebut berjalan.
Agar program ini dapat berjalan tanpa kesalahan, maka program server harus dijalankan terlebih dahulu. Kita bisa membuat program klien dan server pada komputer yang sama. Misalnya kita bisa membuat dua jendela konsol pada windows, kemudian menjalankan server di konsol yang satu dan menjalankan klien di server yang lain. Agar ini bisa berjalan, komputer lokal kita memiliki alamat 127.0.0.1, sehingga perintah "java KlienTanggal 127.0.0.1" artinya sama dengan memerintahkan program KlienTanggal untuk melakukan sambungan dengan server yang berjalan di komputer yang sama. Atau bisa juga menggunakan alamat "localhost" sebagai pengganti "127.0.0.1".
Program servernya kita namakan Server Tanggal. Program Server Tanggal membuat ServerSocket untuk mendengarkan permintaan sambungan pada port 32007. Setelah soket pendengar kita buat, maka server akan masuk pada perulangan tak hingga di mana ia menerima dan mengolah permintaan sambungan. Program ini akan berjalan terus menerus tanpa henti kecuali kita hentikan dengan paksa -- misalnya dengan menekan tombol Ctrl-C di jendela konsol di mana server dijalankan.
Ketika koneksi diterima dari klien, server akan memanggil subrutin lain untuk menangani koneksi tersebut. Dalam subrutin itu, pengecualian apapun yang terjadi akan ditangkap sehingga server tidak akan mati. Subrutin akan membuat aliran PrintWriter untuk mengirim data melalui koneksi yang terjadi.
Server akan menulis tanggal dan waktu sekarang pada aliran output ini, kemudian menutup koneksi. (Kelas standarjava.util.Date akan digunakan untuk mengambil tanggal saat ini. Objek bertipe Date melambangkan tanggal dan waktu. Konstruktor standarnya, "new Date()" membuat objek yang melambangkan tanggal dan waktu ketika objek tersebut dibuat.).
Berikut ini adalah program server lengkapnya :
import java.net.*;
import java.io.*;
import java.util.Date;

public class ServerTanggal {

    static final int PORT_PENDENGAR = 32007;

    /**
     * @param args
     */
    public static void main(String[] args) {
        ServerSocket pendengar; // Mendengarkan sambungan yang masuk
        Socket koneksi; // Untuk berkomunikasi dengan sambungan yang masuk

        /*
         * Menerima dan mengolah sambungan selamanya, atau hingga kesalahan
         * terjadi. (Kesalahan yang terjadi ketika sedang berkomunikasi atau
         * mengirimkan tanggal akan ditangkap untuk mencegah server crash)
         */

        try {
            pendengar = new ServerSocket(PORT_PENDENGAR);
            System.out.println("Mendengarkan pada port " + PORT_PENDENGAR);
            while (true) {
                koneksi = pendengar.accept();
                kirimTanggal(koneksi);
            }
        } catch (Exception e) {
            System.out.println("Maaf, server telah mati.");
            System.out.println("Kesalahan :  " + e);
            return;
        }
    }

    static void kirimTanggal(Socket klien) {
        // Parameternya, klien, adalah soket yang telah terhubung dengan
        // program lain. Ambil aliran keluaran untuk melakukan sambungan,
        // kirim tanggal saat ini dan tutup sambungan.
        try {
            System.out.println("Sambungan dari "
                    + klien.getInetAddress().toString());
            Date sekarang = new Date(); // Tanggal dan waktu saat ini
            PrintWriter keluar; // Aliran output untuk mengirim tanggal
            keluar = new PrintWriter(klien.getOutputStream());
            keluar.println(sekarang.toString());
            keluar.flush(); // Pastikan data telah terkirim!
            klien.close();
        } catch (Exception e) {
            System.out.println("Kesalahan : " + e);
        }
    }
}
Jika kita jalankan ServerTanggal pada konsol, maka ia akan diam menunggu datangnya permintaan sambungan dan melaporkannya apabila permintaan telah masuk. Agar layanan ServerTanggal tetap tersedia pada suatu komputer, program tersebut seharusnya dijalankan sebagai daemon. Daemon adalah program yang terus berjalan pada suatu komputer, tidak peduli siapa yang menggunakan komputer itu. Komputer bisa dikonfigurasi untuk menjalankan daemon secara otomatis ketika komputer dinyalakan. Kemudian ia akan berjalan di latar belakang, meskipun komputer digunakan untuk hal lainnya. Misalnya, komputer yang menyediakan layanan Web menjalankan daemon yang mendengarkan permintaan sambungan untuk melihat halaman web dan meresponnya dengan mengirimkan isi halaman tersebut. Bagaimana menjalankan program sebagai daemon tidak akan kita bahas di sini, dan bisa Anda temui pada buku-buku tentang administrasi server dan jaringan.
Lihat setelah memanggil keluar.println() untuk mengirim data ke klien, program server memanggilkeluar.flush(). Metode flush() tersedia pada semua kelas aliran output. Metode ini digunakan untuk menjamin bahwa data yang telah dikirim pada aliran benar-benar dikirim ke tujuannya. Kita harus memanggil fungsi ini setiap kali kita menggunakan aliran output untuk mengirim data melalui jaringan. Jika tidak, ada kemungkinan program akan mengumpulkan banyak data dan mengirimkan semuanya sekaligus. Mungkin dari segi efisiensi terlihat bagus, akan tetapi tentunya pesan akan sangat lambat sampai di program klien. Atau bahkan masih ada data yang belum terkirim hingga soket ditutup.
Berikut ini adalah screen shot hasil pemanggilan program di atas pada dua konsol, masing-masing untuk server dan kliennya.
http://java.lyracc.com/sites/java.lyracc.com/files/servertanggal-gbr1.gif
Dan program di atas dapat diunduh pada daftar sisipan di bawah, dan diimpor ke dalam Eclipse dengan menggunakan instruksi pada halaman berikut.
Untuk menjalankan program di atas, jalankan program server terlebih dahulu, dari dalam konsol ketik "cd <nama_direktori_tempat_proyek_server_berada>\bin" (di screen shot di atas direktorinya berada di c:\belajarjava.lyracc.com\servertanggal\bin) kemudian ketik "java ServerTanggal".
Kemudian untuk menjalankan program klien, lakukan dengan cara yang serupa, yaitu buka konsol baru, kemudian ketik "cd <nama_direktori_tempat_proyek_klien_berada>\bin" (di screen shot di atas direktornya berada di c:\belajarjava.lyracc.com\klientanggal\bin) kemudian ketik "java KlienTanggal localhost".
Untuk mengetahui di direktori mana proyek ini berada pada Eclpse Anda, klik kanan proyek tersebut dari dalam Eclipse -> Properties.






BAB III : PENUTUP

1.1  KESIMPULAN
Pada jaringan dibutuhkan minimal dua buah computer (server dan client) yang saling terkoneksi agar bisa saling bertukar data dan informasi satu sama lain. Pada Java, bisa digunakan aliran input dan output untuk melakukan komunikasi pada jaringan, seperti halnya pada transfer file di komputer.





















DAFTAR PUSTAKA

Abdullah, Syukri. 2012. Pengertian Jaringan Komputer. http://www.it-artikel.com/2012/04/pengertian-jaringan-komputer.html.
Ilmu, Kumpulan. 2012. Contoh Makalah Algoritma dan Pemrograman menggunakan Pascal. http://mbegedut.blogspot.com/2012/09/contoh-makalah-algoritma-pemrograman-pascal.html.
Yoga, Putu. 2010. 10 Bahasa Pemrograman Paling Populer. http://putuyoga.wordpress.com/2010/07/04/bahasa-pemrograman-populer/.

















Tidak ada komentar:

Posting Komentar