Selasa, 31 Maret 2009

Algoritma Floyd-Warshall

Algoritma Floyd-Warshall menghitung jarak terpendek untuk semua pasangan titik pada sebuah graf, dan melakukannya dalam waktu berorde kubik.

Algoritma Floyd-Warshall memiliki input graf berarah dan berbobot (V,E), yang berupa daftar titik (node/vertex V) dan daftar sisi (edge E). Jumlah bobot sisi-sisi pada sebuah jalur adalah bobot jalur tersebut. Sisi pada E diperbolehkan memiliki bobot negatif, akan tetapi tidak diperbolehkan bagi graf ini untuk memiliki siklus dengan bobot negatif. Algoritma ini menghitung bobot terkecil dari semua jalur yang menghubungkan sebuah pasangan titik, dan melakukannya sekaligus untuk semua pasangan titik. Algoritma ini berjalan dengan waktu Θ(|V|3).

Dasar algoritma ini adalah observasi berikut:

--belum diterjemahkan--

Implementasi algoritma ini dalam pseudocode: (Graf direpresentasikan sebagai matrix keterhubungan, yang isinya ialah bobot/jarak sisi yang menghubungkan tiap pasangan titik, dilambangkan dengan indeks baris dan kolom) (Ketiadaan sisi yang menghubungkan sebuah pasangan dilambangkan dengan Tak-hingga)

function fw(int[1..n,1..n] graph) {
    // Inisialisasi
    var int[1..n,1..n] jarak := graph
    var int[1..n,1..n] sebelum
    for i from 1 to n
        for j from 1 to n
            if jarak[i,j] <>
                sebelum[i,j] := i
    // Perulangan utama pada algoritma
    for k from 1 to n
        for i from 1 to n
            for j from 1 to n
                if jarak[i,j] > jarak[i,k] + jarak[k,j]
                    jarak[i,j] = jarak[i,k] + jarak[k,j]
                    sebelum[i,j] = sebelum[k,j]
    return jarak
}

Mengacu dari id.wikipedia.org

Algoritma Bellman-Ford

Algoritma Bellman-Ford menghitung jarak terpendek (dari satu sumber) pada sebuah graf berbobot. Maksudnya dari satu sumber ialah bahwa ia menghitung semua jarak terpendek yang berawal dari satu titik node. Algoritma Dijkstra dapat lebih cepat mencari hal yang sama dengan syarat tidak ada sisi (edge) yang berbobot negatif. Maka Algoritma Bellman-Ford hanya digunakan jika ada sisi berbobot negatif.

Algoritma Bellman-Ford menggunakan waktu sebesar O(V.E), di mana V dan E adalah banyaknya sisi dan titik.

Dalam konteks ini, bobot ekivalen dengan jarak dalam sebuah sisi.

// Definisi tipe data dalam graf
record titik {
    list sisi2
    real jarak
    titik sebelum
}
record sisi {
    titik dari
    titik ke
    real bobot
}
 
function BellmanFord(list semuatitik, list semuasisi, titik dari)
   // Argumennya ialah graf, dengan bentuk daftar titik  
   // and sisi. Algoritma ini mengubah titik-titik dalam 
   // semuatitik sehingga atribut jarak dan sebelum 
   // menyimpan jarak terpendek.
 
   // Persiapan
   for each titik v in semuatitik:
       if v is dari then v.jarak = 0
       else v.jarak := tak-hingga
       v.sebelum := null
   
   // Perulangan relaksasi sisi
   for i from 1 to size(semuatitik):
       for each sisi uv in semuasisi:
           u := uv.dari
           v := uv.ke             // uv adalah sisi dari u ke v
           if v.jarak > u.jarak + uv.bobot
               v.jarak := u.jarak + uv.bobot
               v.sebelum := u
 
   // Cari sirkuit berbobot(jarak) negatif
   for each sisi uv in semuasisi:
       u := uv.dari
       v := uv.ke
       if v.jarak > u.jarak + uv.bobot
           error "Graph mengandung siklus berbobot total negatif"

Mengacu dari id.wikipedia.org

Kamis, 12 Maret 2009

Cracker VS Hacker

Sebuah film berjudul “Take Down”yang diangkat dari novel dan kisah nyata seorang cracker, Kevin Mitnick yang telah mencuri file rahasia milik seorang ahli keamanan jaringan dari pemerintahan, Tsutomu Shimomura. File tersebut adalah Contempt, yaitu sebuah software yang dapat menembus berbagai sistem keamanan jaringan. Kevin Mitnick menggunakan Switched Access System (SAS), program yang dapat menyadap semua sambungan telepon, untuk memperlancar aksinya sehingga ia sangat sulit untuk ditangkap oleh pihak kepolisian. Namun, seperti pepatah “Sepandai-pandainya tupai melompat, pasti pernah jatuh pula”, hal tersebut berlaku juga untuk Kevin. Ia tertangkap basah oleh Shimomura setelah dilacak melalui percakapan telepon. Akhirnya sang cracker pun ditangkap dan dijebloskan di penjara. Meskipun demikian, Contempt telah berhasil disebarkan ke internet.

Menilik lebih dalam mengenai film ini, kita dapat mengambil beberapa nilai. Kisah nyata tersebut mengingatkan kita kepada etika profesi, yakni dalam melakukan suatu pekerjaan, kita harus mengikuti aturan yang berlaku yang tentunya melindungi hak pribadi orang lain. Seperti dalam film tersebut telah jelas bahwa mencuri file orang lain melalui jaringan komputer/internet merupakan tindakan yang melanggar hukum. Kemudian, film ini menjelaskan secara implisit mengenai hacker dan cracker. Bisa kita ambil kesimpulan bahwa Kevin adalah cracker sedangkan Shimomura merupakan seorang hacker.

Sebagai mahasiswa, saya dapat melihat bahwa ilmu yang dimiliki seseorang dapat berakibat baik maupun buruk tergantung dari niat orang tersebut. Oleh karena itu, diharapkan ilmu yang dikuasai seseorang dapat dimanfaatkan untuk hal-hal positif.

WALL-E, Robot Pengumpul Sampah, Menyelamatkan Bumi

Film 3 dimensi buatan Disney dan Pixar berjudul “WALL-E” adalah film yang menarik. Di film tersebut diceritakan keadaan Bumi pada tahun 2700. pada saat itu Bumi sudah tidak dapat dihuni. Pada saat itu manusia telah berada di pesawat luar angkasa, Axiom, dan melanjutkan kehidupan di sana. Sementara itu, selama ratusan tahun, robot WALL-E (Waste Allocation Load Lifter Earth-Class) terus-menerus mengambil sampah dan membersihkannya. Kemudian ia menemukan rahasia yang dapat membuat Bumi yang telah rusak, dapat kembali ditempati oleh manusia. Ketika ia berteman dengan robot pencari canggih, EVE, dan mereka menyadari penemuan WALL-E tersebut, EVE kembali ke Axiom dan melaporkannya kepada kapten pesawat. Namun, robot induk pesawat mencegah penggunaan penemuan tersebut. WALL-E dan EVE berusaha mati-matian untuk menyelamatkan penemuan tadi. Akhirnya, robot tersebut dapat dimatikan dan umat manusia dapat kembali menempati Bumi.

Film itu banyak mengandung nilai moral. Salah satu contohnya adalah persahabatan antara 2 robot, WALL-E dan EVE. Meskipun mereka robot dan berbeda kemampuan sangat jauh, tetapi dapat menjalin hubungan pertemanan yang hangat. Kemudian, nilai yang lain adalah mengingatkan manusia untuk melakukan pengelolaan sampah yang baik. Dalam film itu diperlihatkan keadaan Bumi yang penuh dengan sampah. Tak hanya itu, pada lapisan geostasioner juga terdapat banyak satelit-satelit tidak berfungsi yang berserakan. Hal tersebut mengingatkan kita supaya mengatur pembuangan dan pendaurulangan sampah. Untuk nilai yang terakhir adalah kesehatan. Manusia tidak dapat menggantungkan semua pekerjaan kepada robot dan lupa dengan olahraga. Seperti terlihat dari manusia yang berada dalam pesawat Axiom, mereka semua bertubuh gendut dan sulit berjalan. Mereka hanya mengandalkan robot untuk makan, minum, berjalan dan semua kegiatan lainnya.

TI Indonesia ke Depan dan Sikap untuk Menghadapinya

Zaman semakin modern sekarang. Kita dapat melihatnya dari banyaknya penggunaan berbagai macam teknologi untuk mempermudah kegiatan manusia. Sebagai contoh sederhana adalah penggunaan telepon genggam. Dulu penggunaan alat komunikasi dua arah ini hanya untuk melakukan komunikasi jarak jauh. Namun, sekarang dapat digunakan untuk melakukan transaksi bank, video call dan internet. Hal ini tak lepas dari berkembangnya ilmu pengetahuan dan teknologi.
Bangsa Indonesia sekarang ini telah mulai berkembang dalam bidang teknologi. Telah banyak bidang kehidupan yang memanfaatkan hasil teknologi, seperti pendidikan, pemerintah dan kedokteran. Hal ini akan terus berlanjut karena kebutuhan yang semakin kompleks dan efisiensi kerja yang maksimal. Dalam empat sampai lima tahun kedepan, Indonesia akan menjadi negara berbasis teknologi seperti negara tetangga, Singapura. Hal ini tidak terhidarkan karena pengaruh globalisasi khususnya dalam bidang teknologi, yang tentunya membuat negeri kita tidak mau ketinggalan.
Untuk mengimbangi perkembangan zaman yang semakin maju, kita tidak boleh ketinggalan. Diperlukan berbagai kemampuan untuk dapat mengikuti perubahan tersebut. Yang pertama adalah kemauan untuk berkembang/belajar hal yang baru yang belum pernah ada sebelumnya. Dengan mengetahui informasi terbaru, kita dapat menyeleksinya sehingga dapat diambil hal-hal positif darinya. Yang kedua yakni sikap terbuka dengan hal-hal terbaru. Sikap ini berarti kita tidak menutup diri dari lingkungan sekitar yang dinamis, tetapi tidak serta merta mengikuti perubahannya melainkan menilik hal positif negatifnya terlebih dahulu. Yang terakhir yakni cepat beradaptasinya kita dengan pembaharuan yang terjadi. Hal ini sangatlah penting karena kita tidak terpisahkan dari lingkungan.