Jumat, 23 Oktober 2009

Interaksi Manusia dan Komputer (IMK)

Interaksi Manusia dan Komputer (IMK)



Interaksi Manusia dan Komputer (IMK) atau Human-Computer Interaction (HCI) adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya. (Definisi oleh ACM SIGCHI).

Fokus IMK :


  • Fokus: perancangan dan evaluasi antarmuka pemakai (user interface).
  • Antarmuka pemakai adalah bagian sistem komputer yang memungkinkan manusia berinteraksi dengan komputer.

Manusia Antarmuka Sistem Komputer

pemakai



Tujuan Rekayasa Sistem :

  • Tujuan tingkat tinggi yaitu membuat kualitas hidup pemakai lebih baik memang penting untuk diingat.
  • Desainer ingin membuat sistem interaktif berkualitas tinggi yang dikagumi oleh orang-orang, beredar luas dan sering ditiru.
  • Kita perlu bergerak lebih dalam dari sekadar gagasan “user-friendly”.
  • Fungsionalitas yang semestinya.
  • Kehandalan, ketersediaan, keamanan, dan integritas data.
  • Standardisasi, integrasi, konsistensi, dan portabilitas.
  • Penjadualan dan anggaran.

Fungsionalitas yang Semestinya :

  • Tentukan tugas-tugas apa yang harus dilaksanakan.
  • Tugas-tugas umum (sering) mudah ditentukan, namun yang jarang lebih sulit ditemukan.
  • Fungsionalitas harus lengkap.

Kehandalan, Ketersediaan, Keamanan, dan Integritas Data :

  • Kehandalan: berfungsi seperti yang diinginkan.
  • Ketersediaan: tersedia ketika hendak digunakan.
  • Keamanan: terlindung dari akses yang tidak diinginkan.
  • Integritas data: Terlindung dari kerusakan baik sengaja maupun tidak.

Standardisasi, Integrasi, Konsistensi, dan Portabilitas :

  • Standardisasi: keseragaman sifat-sifat antarmuka pemakai pada aplikasi yang berbeda.
  • Integrasi: keterpaduan antara paket aplikasi dan software tools.
  • Konsistensi: keseragaman dalam suatu program aplikasi.
  • Portabilitas: dimungkinkannya data dikonversi pada berbagai hardware dan software.

Penjadwalan dan Anggaran :

  • Proyek perlu selesai dalam jadual dan memenuhi anggaran.
  • Produk yang terlambat atau terlalu mahal akan membuat produk tidak kompetitif.

Tujuan Perancangan Antarmuka Pemakai :

  • Penentuan sasaran masyarakat pemakai dan tugas-tugasnya sangat penting.
  • Desain yang baik bagi komunitas yang satu bisa tidak sesuai bagi komunitas lainnya.
  • Desain yang efisien bagi sekumpulan tugas dapat tidak efisien bagi kumpulan lainnya.

Lima Faktor Manusia Terukur :

  • Faktor-faktor ini menjadi pusat evaluasi:
    • Waktu belajar: berapa lama orang biasa mempelajari cara relevan untuk melakukan suatu tugas?
    • Kecepatan kinerja: berapa lama suatu tugas dilakukan?
    • Tingkat kesalahan: berapa banyak kesalahan dan kesalahan-kesalahan apa saja yang dibuat pemakai?
    • Daya ingat: bagaimana kemampuan pemakai mempertahankan pengetahuannya setelah jangka waktu tertentu?
    • Kepuasan subjektif: bagaimana kesukaan pemakai terhadap berbagai aspek sistem?

Motivasi bagi Faktor Manusia dalam Perancangan :

  • Minat yang besar terhadap faktor manusia pada sistem interaktif muncul dari kesadaran betapa buruknya rancangan banyak sistem yang ada sekarang.
  • Empat sumber utama keprihatinan ini:
    • Sistem yang kritis bagi kehidupan
    • Pemakaian industri dan komersial
    • Aplikasi kantor, rumah, dan hiburan
    • Sistem eksplorasi, kreatif, dan kerja sama

Sistem yang Kritis bagi Kehidupan :

  • Contoh: kendali lalu-lintas udara, reaktor nuklir, pembangkit listrik.
  • Biaya tinggi, asalkan kehandalan dan keefektifan tinggi.
  • Waktu pelatihan lama dapat diterima asalkan kinerja cepat dan bebas kesalahan.
  • Kepuasan subjektif tidak dipermasalahkan karena pemakai bermotivasi tinggi.
  • Ingatan diperoleh dari seringnya penggunaan dan latihan.

Pemakaian Industri dan Komersial :

  • Contoh: perbankan, asuransi, pemesanan barang, manajemen persediaan, pemesanan hotel.
  • Biaya rendah lebih disukai meskipun kehandalan dikorbankan.
  • Kemudahan belajar penting karena biaya belajar mahal.
  • Kepuasan subjektif tidak terlalu penting.
  • Ingatan diperoleh dari seringnya penggunaan.
  • Kecepatan kinerja diutamakan tetapi kelelahan operator ditoleransi.

Aplikasi Kantor, Rumah, dan Hiburan :

  • Contoh: pengolah kata, video game, paket pendidikan, e-mail.
  • Kemudahan belajar, kesalahan yang rendah, kepuasan subjektif diutamakan karena pemakaian tidak sinambung dan persaingan ketat.
  • Ingatan sangat mungkin salah, karena itu petunjuk online penting.
  • Biaya rendah penting karena persaingan.

Sistem Eksplorasi, Kreatif, dan Kerja Sama :

  • Sistem eksplorasi: ensiklopedia, Web, pengambilan keputusan bisnis.
  • Sistem kreatif: desain arsitektur, komposisi musik.
  • Sistem kerja sama: video mail, sistem rapat elektronik.
  • Motivasi dan ekspektasi pemakai tinggi.
  • Perancangan sistem sulit.
  • Perancang harus membuat sistem transparan agar pemakai mudah terserap dalam bidang tugasnya.

Menampung Keanekaragaman Manusia :

  • Kemampuan, latar belakang, motivasi, kepribadian, dan gaya kerja manusia menantang perancang sistem interaktif.
  • Mengetahui perbedaan fisik, intelektual, dan kepribadian di antara pemakai adalah vital.
  • Kemampuan dan tempat kerja fisik.
    • Tidak ada pemakai “rata-rata”.
    • Desain tempat kerja bisa membantu ataupun menghambat kinerja.
  • Kemampuan kognitif dan perseptual.
  • Perbedaan kepribadian.
    • Ekstroversi vs introversi
    • Sensing vs intuisi
    • Perseptif vs menghakimi
    • Merasa vs berpikir
  • Keanekaragaman budaya dan bangsa. Mis:
    • Penulisan kiri ke kanan vs kanan ke kiri.
    • Nama & gelar (Mr., Mrs., Mme.)
  • Pemakai dengan kecacatan.
    • Perancangan untuk pemakai cacat harus dipersiapkan dari awal.
  • Pemakai yang sudah tua.
    • Perbedaan: pengaturan suara, warna, kecerahan, ukuran huruf, dsb.

Tujuan Profesi IMK :

  • Mempengaruhi peneliti akademis dan industri.

- Topik penelitian potensial:

    • Mengurangi ketakutan dan ketegangan menggunakan komputer.
    • Evolusi halus.
    • Spesifikasi dan implementasi interaksi.
    • Manipulasi langsung.
    • Piranti masukan.
    • Petunjuk online.
    • Eksplorasi informasi.

  • Menyediakan alat-alat bantu, teknik-teknik, dan pengetahuan untuk implementor sistem.

< Rapid prototyping mudah dengan penggunaan alat bantu kontemporer.

< Gunakan guideline documents yang ditulis bagi pemakai spesifik.

< Terima umpan balik dari pemakai.

  • Meningkatkan kesadaran akan komputer kepada masyarakat awam.

< Banyak pemakai pemula takut menggunakan komputer akibat desain produk yang buruk.

< Perancangan yang baik membantu mengatasi ketakutan ini dengan kejelasan, kompetensi, dan tidak mengancam.


Minggu, 12 Juli 2009

Beberapa Aplikasi Graf

a. Lintasan Terpendek (Shortest Path)
graf berbobot (weighted graph), 
lintasan terpendek: lintasan yang memiliki total bobot minimum.
Contoh aplikasi: 
1.Menentukan jarak terpendek/waktu tempuh tersingkat/ongkos termurah antara dua buah kota
2.Menentukan waktu tersingkat pengiriman pesan (message) antara dua buah terminal pada jaringan komputer.

Terdapat beberapa jenis persoalan lintasan terpendek, antara lain:
a.Lintasan terpendek antara dua buah simpul tertentu.
b.Lintasan terpendek antara semua pasangan simpul.
c.Lintasan terpendek dari simpul tertentu ke semua simpul yang lain.
d.Lintasan terpendek abtara dua buah simpul yang melalui beberapa simpul tertentu.


  ==> Di dalam kuliah ini kita memilih jenis persoalan 3.

Uraian persoalan
Diberikan graf berbobot G = (V, E) dan sebuah simpul a. Tentukan lintasan terpendek dari a ke setiap simpul lainnya di G. Asumsi yang kita buat adalah bahwa semua sisi berbobot positif. 



Algoritma menentukan lintasan terpendek yang terkenal: algoritma Dijkstra

  Properti algoritma Dijkstra:
 1. Matriks ketetanggaan M[mij]
  mij = bobot sisi (i, j) (pada graf tak-berarah mij = mji )
  mii = 0
  mij = , jika tidak ada sisi dari simpul i ke simpul j

2. Larik S = [si] yang dalam hal ini,

 si = 1, jika simpul i termasuk ke dalam lintasan terpendek
si = 0, jika simpul i tidak termasuk ke dalam lintasan terpendek

3. Larik/tabel D = [di] yang dalam hal ini,

 di = panjang lintasan dari simpul awal s ke simpul i



Algoritma Lintasan Terpendek Dijkstra
(Mencari lintasan terpendek dari simpul a ke semua simpul lain }
Langkah 0 (inisialisasi): 
 - inisialisasi si = 0 dan di = mai untuk i = 1, 2, ..., n

Langkah 1:
  - isi sa dengan 1 (karena simpul a adalah simpul asal lintasan terpendek, jadi sudah pasti terpilih)
  - isi da dengan  (tidak ada lintasan terpendek dari simpul a ke a)

Langkah 2, 3, ..., n-1:
 - cari j sedemikian sehingga sj = 0 dan dj = min{d1, d2, ..., dn} 
 - isi sj dengan 1 
perbarui di, untuk i = 1, 2, 3, …, n dengan:  
  di (baru) = min{di (lama), dj + mji }.



Jadi, lintasan terpendek dari:
 1 ke 3 adalah 1, 3 dengan panjang = 10
 1 ke 4 adalah 1, 3, 4 dengan jarak = 25
 1 ke 2 adalah 1, 3, 4, 2 dengan jarak = 45
 1 ke 5 adalah 1, 5 dengan jarak = 45
 1 ke 6 tidak ada


Contoh 6.34. Tinjau graf berarah pada Gambar 6.50 yang menyatakan jarak beberapa kota di Amerika Serikat.


Jadi, lintasan terpendek dari:

 5 ke 6 adalah 5, 6 dengan panjang = 250
 5 ke 7 adalah 5, 6, 7 dengan jarak = 1150
 5 ke 4 adalah 5, 6, 4 dengan jarak = 1250
 5 ke 8 adalah 5, 6, 8 dengan jarak = 1650
 5 ke 3 adalah 5, 6, 4, 3 dengan jarak = 2450
 5 ke 2 adalah 5, 6, 4, 3, 2 dengan jarak = 3250
 5 ke 1 adalah 5, 6, 8, 1 dengan jarak = 3350