Mata Kuliah Sistem Terdistribusi, Apa sih Isinya?

Di Universitas Trunojoyo Madura (UTM), Mata kuliah “pengantar” Sistem Terdistribusi (SisTer) mempunyai kode TIK-604. Artinya disediakan untuk Kita Semester 6. Penekanannya adalah pada teknik atau konsep fundamental untuk mewujudkan suatu sistem terdistribusi yang berfungsi, bermanfaat, dan berkinerja tinggi. Matakuliah SisTer ini hanya mempunyai satu tujuan utama, yaitu Kita (Kita) memperoleh pemahaman mengenai prinsip dan paradigma yang mendasari Sistem Terdistribusi, seperti Komunikasi antar entitas dalam dan antar jaringan, konkurensi (kebersamaan), sinkronisasi (penyelerasan), replikasi dan caching (penggKitaan data dan aplikasi), konsistensi dan toleransi kegagalan. Jadi, Kita harus betul-betul memahami konsep atau cara kerja dari SisTer. Terdengar Abstrak? Tidak juga, beberapa contoh akan memudahkan kita mendiskusikan konsep-konsep klasik dan modern di bidang yang sedang sangat dibutuhkan ini.

Continue reading

Advertisements

Scala – Mirip Java dan Reliability Scale

Scala adalah bahasa pemrograman general purpose yang dirancang untuk mengungkapkan pola pemrograman umum secara cara ringkas, elegan, dan aman. Scala dapat dengan baik mengintegrasikan fitur bahasa berorientasi obyek dan fungsional, memungkinkan Programmer Java dan lainnya lebih produktif. Kode ukuran biasanya berkurang dengan faktor dua sampai tiga bila dibandingkan dengan aplikasi Java yang setara.

Banyak perusahaan yang telah bergantung pada Java untuk aplikasi bisnis penting meraka beralih ke Scala untuk meningkatkan produktivitas pengembangan mereka, skalabilitas dan kehandalan aplikasi secara keseluruhan.

Continue reading

True SE: Web Portal + Search Engine trunojoyo.ac.id

Hampir semua universitas atau perguruan tinggi di Indonesia mempunyai situs, baik untuk level universitas, unit/fakultas, jurusan/program studi sampai dengan laboratorium, dosen, unit kegiatan mahasiswa bahwa blog. Begitu pula pada Universitas Trunojoyo. Makin lama makin banyak informasi yang tersedia pada website-website di bawah domain trunojoyo.ac.id, bukan hanya http://www.trunojoyo.ac.id.

Sayangnya, ada beberapa hal yang sangat menyusahkan pengunjung mendapatkan informasi secara lengkap dan terpadu dari website-website tersebut. Pertama, situs web utama, http://www.trunojoyo.ac.id tidak menyediakan akses ke berbagai situs lain yang berada di bawah domain yang sama. Pengunjung harus mengetahui setiap alamat (URL) yang perlu dikunjungi. Kedua, pengunjung tidak dapat mengetahui dimana saja informasi terkait tersedia. Misalnya beasiswa, jika pada situs web Fakultas Teknik terdapat pengumuman beasiswa XYZ, dimana informasi lebih detail atau terkait tersedia? di Fakultas lain atau di Universitas?

Continue reading

Membaca Halaman Web per Byte dengan URLConnection

Pada dasarnya, stream atau aliran data di jaringan dibaca byte demi byte (karakter demi karakter, satu karakter memerlukan 1 byte memory, 8 bit).

Berikut ini adalah kode program yang dapat digunakan untuk membaca halaman web byte demi byte menggunakan kelas URLConnection:

//Download halaman web menggunakan URL & URLConnection
import java.io.BufferedInputStream;
import java.net.URL;
import java.net.URLConnection;

public class URLConnectionPage {
  public static void main(String[] args) throws Exception {
    URLConnection urlc = new URL("http://localhost").openConnection();

    BufferedInputStream buffer = new BufferedInputStream(urlc.getInputStream());

    int byteRead;
    while ((byteRead = buffer.read()) != -1){
      System.out.print((char) byteRead);
    }
    buffer.close();
  }
}

Jika anda tetap ingin membaca stream data web yang diterima baris demi baris, kode program di bawah ini dapat digunakan. Yang terjadi dibelakang layar tetap, yaitu membaca byte demi byte, perbedaan hanya dari sisi programan:

import java.net.*;
import java.io.*;

public class URLConnectionReader {
    public static void main(String[] args) throws Exception {
        URL unijoyo = new URL("http://www.trunojoyo.ac.id/");
        URLConnection yc = unijoyo.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
        String inputLine;

        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);
        in.close();
    }
}

Mendapatkan Properti Halaman Web

Halaman web, pada sisi client berupa tag HTML dan pendukungnya, menyediakan beberapa properti yang sangat berguna bagi suatu web crawler. Informasi seperti URL, tanggal modifikasi terakhir, jumlah karakter (termasuk white space), jenis content dan Expirenya disediakan oleh Web server.

Kode program berikut memperlihatkan cara mengakses beberapa informasi penting tersebut. Detail dari apa yang disediakan oleh oleh URLConnection untuk keperluan ini dapat dilihat pada dokumentasi Java (J2SE):


//URLConnection.
import java.net.*;
import java.io.*;
import java.util.Date;

class URLConnectionInfo {

    public static void main(String args[]) throws Exception {
        int c;
        URL hp = new URL("http://localhost");
        URLConnection hpCon = hp.openConnection();
        System.out.println("Date: " + new Date(hpCon.getDate()));
        System.out.println("Content-Type: " + hpCon.getContentType());
        System.out.println("Expires: " + hpCon.getExpiration());
        System.out.println("Last-Modified: " + new Date(hpCon.getLastModified()));
        int len = hpCon.getContentLength();
        System.out.println("Content-Length: " + len);
        if (len > 0) {
            System.out.println("=== Content ===");
            InputStream input = hpCon.getInputStream();
            int i = len;
            while (((c = input.read()) != -1) && (--i > 0)) {
                System.out.print((char) c);
            }
            input.close();
        } else {
            System.out.println("No Content Available");
        }
    }
}

Mengakses Web Server dengan URL

Contoh di bawah ini mengakses web server menggunakan kelas URL dari paket .net. Sama sebagaimana contoh pemanfaatan kelas socket, kode ini menampilkan isi (dari sisi client) dari halaman HTML yang diakses:


import java.net.*;
import java.io.*;

public class GetURLPage {

    public static void main(String args[]) {

        try {
            URL url = new URL("http://localhost/");

            BufferedReader dis = new BufferedReader(new InputStreamReader(url.openStream()));

            String line;
            while ((line = dis.readLine()) != null) {
                System.out.println(line);
            }

            dis.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
} // akhir dari GetURLPage.java