Tuesday, October 27, 2015

Materi Sistem Basis Data (Bahan UTS) (1)

Pengantar
> Database = Kumpulan data" yang saling berhubungan
Contoh: data universitas bagian akademik
 Data mahasiswa -> berhubungan dengan data Matkul -> berhubungan dengan data Dosen Pengampu

> Database Systems = essential components of everyday life in modern society

> Database dibuat untuk tujuan tertentu.

> Database merepresentasikan hal yang ada di dunia nyata -> mini world
   yang disimpan datanya, di dunia nyata ada barangnya

> Database dapat memiliki Size kecil maupun besar
Contoh: buku telepon -> nama, nomor telpon
              Katalog buku perpus -> nama, nomor rak, edisi, dll

Database Management System
> adalah kumpulan program-program yang membantu user membuat dan maintain database
> Meta-data: data tentang data
   contohnya: data gender hanya boleh diisi dengan M/F, tidak dapat diisi dgn yang lain (diatur oleh meta data)
> Query: statement untuk manipulasi data
    Contoh: dari database mahasiswa cuma mau ambil yang huruf depan namanya A

Characteristic of Database Approach:
1. Self-describing nature of database systems
    contoh: ada data 14110110001#Dennis di sebuah file .txt
    kalau di Dev-C, tipe datanya ditentukan saat di program
    kalau di Database, ditentukan tipe datanya langsung di DataBase

2. Program dan data terpisah (program-data independence)
    contoh: file .txt biasanya harus disimpan di file yg sama dengan programnya. Bila di database bisa terpisah

3. Insulation between programs and data, and data abstraction
    Contoh: mau menambahkan kategori baru dalam database

4. Supprot multiple views of Data -> tergantung kebutuhan, data apa yang ditampilkan
    Contoh: bagian keuangan bs liat mahasiswa udh lunas atau belum, tapi dia ga butuh liat nilai mahasiswa. Dosen gabutuh tau lunas/ngganya, tapi butuh liat nilainya

5. Sharing of data and multi user transaction processing
    -> concurrency control = mengatur transaksi mana yang dilakukan duluan apabila ada tabrakan transaksi
    -> ada 2 proses dalam transaksi
        1) pengurangan/ perubahan saldo pengirim
        2) penambahan saldo penerima
        Ingat analogi transfer uang di ATM! Misalnya Kenny punya 10 juta Febrian punya 3 juta. Kenny mau transfer 3 juta ke Feb. Yang dilakukan ATM adalah mengurangi saldo punya Kenny, baru menambahkan saldo Feb

Advantage of using DBMS approach:
1. Controlling redundancy
2. Restricting unauthorized access
3. Providing storage structures for efficient query processing
4. Providing backup and recovery
5. Enforcing integrity constraints -> contohnya bila di DB mahasiswa udah ada data nama, maka di DB nilai tidak perlu ada kolom untuk data nama, ckup pakai primary key nya saja (nanti dibahas mengenai primary key)

When NOT to use DBMS?
- Program yang simpel
- Program yang real-time
- No multiple user access to data

Data Model
> menggambarkan struktur database
> ada 3 macam:
   - High level/ conceptual data models -> paling mudah dimengerti
   - Representational/ implementation data models
   - Low level/ physical data model -> sudah dalam bentuk dtaabase

Contoh High-level:


Contoh Representational:
Database schema: deskripsi dari sebuah database. dibuat saat mendesain database dan tidak diharapkan untuk berganti terus-menerus. isi dari database schema berupa nama dari record types dan data items, serta beberapa tipe constraints

Three Schema Architecture:


Low-level = database di komputer

Data Independence
> kemampuan untuk mengubah schema pada satu level dalam database
> ada 2 macam:
   - Physical data independence = mengubah internal schema tanpa memengaruhi conceptual schema dan external schema
   - Logical data independence = mengubah conceptual schema tanpa memengaruhi external schema/application programs

DBMS Languages
> Data Definition Language (DDL) -> banyak dipakai oleh admin
   Analogi: ticketer kereta api, menentukan siapa bisa masuk
   contoh:
   -> DROP : hapus objek di DB
   -> CREATE
   -> ALTER : mengubah struktur di DB
   -> TRUNCATE

> Data Manipulation Language (DML)
   Contoh:
   -> SELECT
   -> INSERT
   -> UPDATE
   -> DELETE

>Transaction Control
   Contoh
   -> COMMIT (berhasil)
   -> ROLLBACK (gagal)

Database Systems
> Functional Requirements: sistem dapat berfungsi untuk user kategori apa (user/admin) -> what function do users need
> Data Requirements: untuk fungsi tersebut dapat berjalan, data apa saja yang dibutuhkan

Entities
- Entity (persegi panjang) = sesuatu yang memang ada di dunia nyata, bisa disentuh/ abstrak (tangible/intangible) contoh, mahasiswa, mata kuliah
- Attribute (oval) = data-data yang ada pada entity
- Relationship

Jenis-jenis atribut:
1. Simple/atomic attribute: data tdk dapat dipecah-pecah, contohnya umur
2. Composite: data dapat dipecah-pecah, contoh data alamat bisa dipecah jadi jalan, kota, kode pos
3. Multivalue: data dapat terdiri dari lebih dari 1 value, contoh nomor telepon seseorang dapat lebih dari satu
4. Stored attribute: data yang sudah ada/diinput
5. Derived attribute  data yang dapat dihasilkan dari data lain, contoh data umur dapat dihasilkan dari data tanggal lahir
6. Complex attribute: gabungan multivalue dan composite, contoh jika seseorang dpaat memiliki lebih dr 1 rumah dan setiap alamat rumah dipecah datanya menjadi jalan, kode pos, kota

7. NULL values -> tidak sama dengan nol, tidak sama dengan blank space
    Mengapa diperlukan?
    1. Nilai tidak dapat dipakai, contoh mahasiswa masukin form yang harus isi jabatan kerja
    2. Data tidak diketahui, contoh pendaftaran maba, nomor telpon belum diketahui

Entity Types dan Entity Set
- Entity Types: kategori
- Entity Set: detail" datanya
contoh: data karyawan
karyawan -> entity type
Nama: John Smith, Umur: 55, Tempat tinggal: Jln Scientia Residence -> entity set

Key attributes ( data digarisbawah)
= data yang pasti beda satu dengan lainnya

Value Set (domains) of attribute
= restriction" yang ada yntuk tiap data berbeda
= Contoh: gender hanya boleh M/F

Relationship ( belah ketupat )
- Unary (rekursif) : relationship type dengan 1 degree, contoh karyawan supervise karyawan lainnya
- Binary: satu relationship dengan 2 degree/ entity
- Ternary: satu relationship dengan 3 degree
- N-ary: satu relationship dengan > 3 degree

Cardinality Ratios for Binary Relationships
- 1:1
- 1:N atau N:1
- M:N
Contoh:

Attribute dari Relationship
> Hanya akan muncul jika telah terhubung antara 2 entity
   Attribute bukan punya salah satu entity, melainkan relationshipnya

Strong VS Weak entity
> Strong entity: punya key attribute (yang digarisbawah)
> Weak entity: tidak punya key attribute, sehingga digantikan dengan partial key (garis bawah putus-putus)

Simbol-simbol:


Monday, October 26, 2015

Teori Bahasa dan Automata - Konversi DFA ke CFG

Tatabahasa Linier

G = ( V, T, P, S )
Dimana V = Variabel yang digunakan
              T = Input yang ada

1. Konversi FSA -> CFG
    Aturan pengubahan:
    - setiap transisi status d(A, a) = B diubah menjadi aturan produksi A -> aB
    - Setiap final state P diubah bentuknya menjadi aturan produksi P -> epsilon
DFA

Tatabahasa Linier untuk FSA diatas adalah
G = ( {S, S1, S2, S3} , {a, b}, P, S )
dengan aturan produksi P:
S -> S1
S1 -> aS2
S2 -> bS3
S3 -> epsilon

NFA
Tatabahasa Linier untuk FSA diatas adalah
G = ( {L1,L2,L3} , {a,b,c}, P, S )
dengan aturan produksi P:
L1 -> aL2 | bL3
L2 -> aL3 | bL1 | bL2
L3 -> aL3 | bL3 | cL1 | bL2 | epsilon

2. Konversi RE ke CFG
Aturan:

Contoh: Diketahui RE = ( 01* | a )* b ( 01 | 10 )? b
CFG =
***PERMISALAN: A = (01* | a)* ; B = b; C = (01 | 10)? ; D = b
      E = 01* | a ; F = 1* ; G = 01 | 10;
***HINT = R? -> R + epsilon

S -> A B C D
A -> EA | epsilon
E -> 0F | a
F -> 1F | epsilon
B -> b
C -> G + epsilon
G -> 01 | 10
D -> b

atau B dan D dihilangkan, menjadi
S -> A b C b (b tidak dimisalkan lagi)


Teori Bahasa dan Automata - Minimalisasi DFA

INGAT ! yang bisa diminimalisasi hanya bentuk DFA. Jikalau masih dalam bentuk NFA ubahlah ke bentuk DFA dahulu (DFA Ekivalen)

Contoh: Diketahui DFA
Minimalisasi:
1. Pisahkan Non - Final State dan Final State

   Non - FinalState              FinalState
        1, 3                                   2

2. Masukkan input ke setiap state seperti dibawah, jika ada lebih dari 1 state yang mengarah ke state yang sama jika diberi input yang sama, maka dikatakan indistinguishable.

Non-Final State


 -> State 1 dan 3 dikatakan indistinguishable karena jika diberi input a dan b akan mengarah ke state yang sama

Final State







3. Buat tabel Minimalisasi
Caranya: Buat tabel dengan kolom sesuai jumlah state-1 dan Baris sejumlah state-1. Beri tanda X jika pasangan state tidak sama (distinguishable) dan tanda O bila pasangan state ekivalen (indistinguishable)



4. Buat transition diagramnya
Transition Diagram yang diminimalisasi:


Contoh Latihan soal yang lebih rumit (dari slide, silahkan pelajari sendiri dari penjellasan yang sudah diberikan)




Teori Bahasa dan Automata - Epsilon-NFA

Finite Automata dengan Epsilon Transition: memungkinkan adanya transisi antara input kosong (empty) dari state Q.


Menggunakan Algoritma Thompson:

Contoh Soal:
Diketahui RE = (a+b)*abb
1. Buat Transition Diagramnya! (dengan algoritma Thompson)
2. Buat DFA-Ekivalennya!

1. Transition diagram:


2. DFA Ekivalen
*anggeplah E = lambang epsilon
E-closure -> sampai state berapa bisa tersambung dengan epsilon


Transition Diagram DFA Ekivalen:


State Table:

YANG PERLU DIINGAT !
RE = (a+b)*abb
Transition diagram:

RE = a(a+b)abb
Transition Diagram:
*Input epsilon setelah q0 dan setelah q6 HANYA dikarenakan ada tanda * setelah (a+b). Jika tidak, maka tidak perlu diberi input epsilon terlebih dahulu.

Sunday, October 25, 2015

Teori Bahasa dan Automata - Finite Automata

Sistem Finite State:
- Deterministic Finite Automata (DFA)
- Non-Deterministic Finite Automata (NFA)
- Push-Down Automata (PDA)
- Turing Machine
- Linear Bounded Automata

DFA
- Tiap inputan akan mengarah ke satu tujuan yang pasti, antara ke state lain atau ke diri sendiri
contoh = Diketahui Transition Diagram:

Untuk menuju Final state (Q1), Jalur yang dapat ditempuh adalah:
1. Q0 diberi input 0 ke Q1
2. Q0 diberi inputan 1 ke Q2, Q2 diberi input 1 ke Q1

Definisi formal:
Dimana dari Transition Diagram diatas, definisi formalnya menjadi:
Q = {Q0,Q1,Q2}
sigma = {0,1}
F = {Q1}

Fungsi Transisi dapat dibuat melalui Tabel Transisi:

            |       Input
   State  |   0      |      1
______ |_____|______
  ->Q0     |    Q1   |   Q2
    *Q1     |    Q1   |   Q1
     Q2     |    Q2  |   Q1

-> untuk Start State
* untuk Final State

Input yang Benar (berdasarkan transisi diagram):
- 00
- 1001
- 111

Input yang Salah:
- 001
- 100

Syarat String diterima sebagai bahasa dalan Finite State Automata (FSA)
1. Input String habis terbaca, DAN
2. State berpindah dari start state dan berhenti pada final state

Penelusuran String yang diterima (berdasarkan transition diagram)
Misalkan string "001"
NFA
- Tiap input dapat mengarah ke lebih dari satu state berbeda
Contoh: Tabel Transisi NFA
Definisi formal: ( {Q0,Q1,Q2,Q3,Q4}, {0,1},    , Q0, {Q2, Q4} )

Tabel Transisi
            |       Input
   State  |   0      |      1
______ |_____|______
  ->Q0     | {Q0,Q3} |   {Q0,Q1}
     Q1      |            |   Q2
    *Q2     |    Q2    |   Q2
     Q3     |     Q4   |
    *Q4     |      Q4  |  Q4

Konversi NFA ke DFA Ekuivalen


Transition Diagram DFA Ekivalen:


Jawaban dari Latihan Soal RE
1. (0+1)* 01
2. abb (a+b)*
3. (0+1)* 001 (0+1)*
4. (aa + ab + ba + bb)* b
5. ((01 (0+1)*) + ((0+1)* 01))
6. (0+1)* 1 (00+01+10+11)
7. ((a+b+c)* a (a+b+c)* b (a+b+c)*) +((a+b+c)* b (a+b+c)* a (a+b+c)*)

Teori Bahasa dan Automata - RE

RE (Regular Expression): Ekspresi sederhana untuk language yang diterima FA (Finite Automata)
Untuk setiap regular expression E, bahasa yang direpresentasikan dinotasikan dengan L(E)

 Basis:
- Konstanta Epsilon dan merupakan RE yang menunjukkan Empty Set
- Jika a adalah simbol dan a adalah RE. notasi ini menunjukkan language {a}, atau L(a)={a}.
- Variabel dengan huruf kapital merepresentasikan language

Induksi :
– Jika E dan F adalah RE, dan E + F adalah RE yang merepresentasikan union L(E) dan L(F). Atau L(E+F) = L(E) U L(F)
– Jika E dan F adalah RE, dan EF adalah RE yang merepresentasikan concatenation L(E) dan L(F). Atau L(EF) = L(E) L(F)
– Jika E adalah RE, dan E* adalah RE yang merepresentasikan closure dari L(E). Atau L(E*) = (L(E))*

Sifat-Sifat Regular Expression:

Contoh: (keterangan: ^+ = pangkat + atau positive closure)
- 00 = RE untuk {00}
- (0+1)* = RE untuk himpunan string yang terdiri dari 0 dan 1
- (0+1)*00(0+1)* = meliputi (epsilon)00(epsilon), 10010, 010011, ...
- (1+10)* = meliputi 1, 1010, 110, ...
- (0|1)*011 = meliputi 0011, 1011, 01011, ...
- (aa|ab|ba|bb)* = meliputi aa, aaab, aabb, ...
- (a|b)(a|b)(a|b)(a|b)* = meliputi aaaa, aaab, abbab, ...
- (aa|ab|ba|bb)^+ a = meliputi aaa, ababa, bbaaa, ...

LATIHAN!
Buat RE untuk:
1. Himpunan string dari alphabet {0, 1} yang diakhiri dengan 01
2. Himpunan string dari alphabet {a, b} yang diawali dengan abb
3. Himpunan string dari alphabet {0, 1} yang mengandung string 001
4. Himpunan string dari alphabet {a, b} yang diakhiri dengan b dan mempunyai panjang ganjil
5. Himpunan string dari alphabet {0, 1} yang diawali dan/atau diakhiri 01
6. Himpunan string dari alphabet {0, 1} yang simbol ketiga dari kanan merupakan angka 1
7. Himpunan string dari alphabet {a, b, c} yang mengandung sedikitnya satu buah a dan b

(Jawaban ada di akhir post Teori Bahasa dan Automata - Finite Automata)

Teori Bahasa dan Automata - Pengantar

Automata : abstract computing devices, mesin abstrak yang dapat mengenali (recognize), menerima (accept), atau membangkitkan (generate) sebuah kalimat dalam bahasa tertentu.

Teori bahasa membicarakan bahasa formal (formal language).
Bahasa formal adalah sebuah kalimat. Sebuah kalimat dalam sebuah bahasa dibentuk/generate oleh sebuah tata bahasa (grammar) yang sama.
Dikatakan bahasa formal karena grammar diciptakan mendahului pembentukan setiap kalimatnya. Sebuah bahasa formal bisa dibangkitkan oleh dua atau lebih tata bahasa yang berbeda.

Mengapa mempelajari?
Finite automata merupakan suatu model yang sangat bermanfaat, berikut beberapa contoh bagaimana bahasa ini digunakan:
1. Software untuk perancangan dan pemeriksaan perilaku sirkuit digital.
2. Lexical analyzer sebuah compiler, yang merupakan komponen dari ccompiler yangmembagi / memecah teks input menjadi beberapa unit logikal seperti identifier, keyword maupun tanda baca.
3. Software untuk pencarian urutan kata

Contoh sederhana:
Pemodelan finite automata untuk switch on/off:
           START STATE  (1)          FINAL STATE (>=1)
                              Qo                                   Q1

Pemodelan finite automata sebagai bagian dari lexical analyzer parser:
String, alphabet and language
Simbol: merupakan sebuah entitas abstrak (tidak mempunyai arti bila berdiri sendiri). Dikenal dengan uninterpreted
Contoh:
   Huruf A-Z, a-z
   Digit: 0-9
   Special Characters: $, =,(, dst

Alfabet: merupakan himpunan berhingga (finite set) dari simbil-simbol, dinotasikan dengan sigma.
Contoh:
   sigma1 = {a,b,..,z}
   sigma2 = {0,1}

String: merupakan deret terbatas dari simbol-simbol yang ada dalam alfabet.
Contoh: jika a,b dan c adalah alfabet maka string yang bisa dibentuk: abcb, aab, bca
String hampa (dinyatakan dengan epsilon atau ^) = string yang tidak memiliki simbol. String hampa dapat dipandang sebagai simbol hampa.
Panjang string dinotasikan dengan |   |
Contoh:
   w = "makan"
   |w| = 5
   w = epsilon
   |w| = 0

Language: himpunan string dari alfabet
- Ada 2 macam: finite dan infinite language
  Contoh Finite Language: {a,ab,abb}
  Contoh Infinite Language: himpunan palindrome atas sigma = {0,1} ->hasilnya tak berhingga banyaknya

- Language Concatenation: penyambungan dua buah string
   Contoh:
      P, Q = Language
      P.Q = konkatenasi P dan Q
      P = {0, 1, 00, 01, 10}
      Q = { 10, 11 }
      PQ = {010, 011, 110, 111, 0010, 0011, 0110, 0111, 1010, 1011}

- Union Language: penggabungan dua buah string
      *anggep aja u = simbol union
      P u Q = Union P dan Q
      P = {0, 1, 00, 01, 10}
      Q = { 10, 11 }
      P u Q = {0, 1, 00, 01, 10, 11}

- Closure Language
   Kleene Closure ( * ) = konkatenasi string yang sama yang diberi tanda *.
 

  Positive Closure = konkatenasi string yang sama minimal satu kali

  Perbedaan kurung dan tidak
  (1100)* = { epsilon ,1100, 11001100, 110011001100, ...}
  1100* = { 110epsilon, 1100, 11000, 110000, ... }


Jawaban 1 dan 2 Kuis Week 7 Struktur Data

1. Jelaskan pengertian dari:
    a. Struktur data: metode/cara penyimpanan data di dalam memori
    b. Abstract Data Type: tipe data yang tidak disediakan oleh bahasa pemrograman manapun dan dapat dimanipulasi sendiri. Contoh: struct
    c. Hashing: metode pencarian data dengan mengakses lokasi/index penyimpanan data secara langsung
    d. Linked List: sekumpulan data berelemen sama yang memiliki keterurutan tertentu, dan setiap elemennya terdiri dari dua bagian, yaitu informasi mengenai elemen dan informasi mengenai elemen suksesor (next).
    e. Array dan Pointer:
        - Array: sekumpulan data bertipe sama yang disimpan dalam sebuah struktur, dimana masing-masing elemen dalam struktur dapat diolah secara berkelompok maupun individu
        - Pointer: variabel yang menyimpan alamat dari variabel lain.
    f. Heap memory: memori yang dipesan oleh program pada saat run-time.
    g. Merge Sort: metode sorting dengan menggunakan paradigma divide and conquer untuk memenuhi kebutuhan pengurutan data yang tidak dapat ditampung dalam memori komputer karena jumlahnya besar
    h. Quick sort: metode sorting dnegan teknik pemecahan data menjadi partisi-partisi sehingga dapat disebut juga partition exchange sort
    i. Interpolation Search: teknik pencarian data dari data terurut dengan perkiraan letak data.
       Rumus perkiraan jumlah data:
       posisi:   kunci - data[low]
                  ---------------------------- x (high-low) + low
                   data[high] - data[low]
       keterangan: high dan low adalah batas index data rendah dan tinggi
    j. Dynamic Memory Management: metode pengaturan pemesanan memori pada saat runtime

2. a. struct Data{
           int bil;
           struct data *next, *prev;
        }
    b. malloc digunakan untuk memesan tempat dalam memory. Pada perintah baris 6, memory untuk node dipesan terlebih dahulu
    c.  variabel bil dalam struct Data *node diisi angka integer yang dirandom antara 50-100
    d. pada awalnya main() membuat (generate) angka random dengan perintah srand(time(0)). Setelah itu dia melakukan perulangan sebanyak 10x untuk memesan data didalam memori (malloc), setelah itu memasukkan angka random dari 50-100 kedalam variabel bil di struct Data *node (node->bil), dan inisialisasi node->next dan node->prev dengan NULL.
    e. struct Data *head, *tail;
        head=NULL;
        tail=NULL;
        if(head==NULL){
             head=node;
             tail=node;
        } else {
             tail->next = node;
             node->next=NULL;
            tail=node;
            if(i==9) node->next = head;
        }

Kira-kira ini jawaban gw dari kuis Strukdat kemarin. nomor 3 dan 4 belum pasti jadi ga dipost. Semoga membantu :)

Friday, October 23, 2015

Ringkasan Materi UTS Interaksi Manusia dan Komputer

Slide 2

Panduan bagi perancang tersedia dalam bentuk:
1. Teori-teori tingkat tinggi(*): sbg kerangka kerja/ bahasa utk membahas hal-hal tak tergantung aplikasi
    -> Explanatory Theory: mengamati kelakuan, menggambarkan kegiatan, menghasilkan desain, membandingkan konsep tingkat tinggi beberapa perancangan, pelatihan
    -> Predictive Theory: memungkinkan desainer membandingkan waktu eksekusi/ tingkat kesalahan dalam desain yang diusulkan
         -> Perceptual/ cognitive subtasks theory: memperkirakan waktu perseptual/kognitif: mencari item pada tampilan, perencanaan konversi huruf tebal menjadi miring
         -> Motor-task performance times theory: memperkirakan waktu kinerja seperti penekanan tombol/pergerakan mouse

Beberapa teori IMK:
- Four-Level Approach
  - Top down -> membagi sistem interaktif menjadi bbrp tingkatan:
     1. Konseptual: model mental pemakai tentang sistem interaktif
     2. Semantik: Arti yang disampaikan oleh komputer I/O
     3. Sintaktik: pembentukan satuan yang menyampaikan semantik
     4. Leksikal: ketergantungan terhadap piranti dan mekanisme presisi
  - Sesuai dengan arsitektur software. Memungkinkan modularitas.

- GOMS (Goals, Operators, Methods dan Selection Rules)
  -> pemakai memformulasikan tujuan (goal) yang dicapai dengan metode (methods) yang terdiri dari eksekusi operatos yang dipilih melalui selection rules.
  -> Keystroke Level model: memperkirakan waktu kinerja untuk pelaksanaan tugas bebas kesalahan oleh pakar
       Keystroke level model:

2. Guidelines(*) = Perbedaan antara prinsip dasar dan pedoman yang lebih informal tidaklah tegas
    Contoh pedoman: pedoman data display, pedoman data entry

3. Principle(*) = klasifikasi kebutuhan.
    > prinsip dasar: tingkat kemampuan dari user, identifikasi tugas" (tasks)
    > Memilih 5 style interaksi:
       1. Menu Selection -> menu bar (file,edit,view,...) , pull down menu, cascading menu, pop-up menu
       2. Form Fillin(*)
       3. Command Language -> pada DOS: dir, copy, del
       4. Direct manipulation -> pada photoshop dapat drag gambar dan edit sesuai keinginan
       5. Natural Language

    > Menggunakan 8 aturan utama desain interface
    > Mencegah kesalahan
    > Otomatiasi human control

    Prinsip-prinsip:
    Prinsip 1: Kenali Perbedaan
    -> Jenis-jenis pemakai(*):
        - Novice (first time users) -> profesional yang mengerti konsep tentang tugasnya tetapi memiliki konsep pengetahuan antarmuka yang dangkal
           Perancangan: batasi jumlah pilihan, unpan balik informatif dan manual serta tutorial online yang efektif
        - Knowledgable Intermittent Users -> professional yang telah memiliki konsep tugas yang stabil dan konsep antarmuka yang jelas namun sulit mengingat/menguasai struktur menu/lokasi fitur" yang ada
          Perancangan: struktur menu rapi, konsisten, kejelasan antarmuka jelas, perlindungan dari bahaya karena eksplorasi fitur
        - Expert Frequent Users -> profesional yang terbiasa dengan konsep tugas dan antarmuka
          Perancangan: makro, shortcuts, singkatan dsb

    Prinsip 2: Gunakan 8 aturan emas perancangan antarmuka pemakai(*)
    1. konsisten -> urutan action konsisten pada situasi mirip, istilah konsisten untuk menu, prompt, layar bantu dan perintah, perkecualian (cth konfirmasi delete) harus dibatasi
    2. Menyediakan Usability Universal -> misalnya penggunaan singkatan, tombol khusus, perintah" tersembunyi, dll
    3. Memberi umpan balik yang informatif -> cthnya utk frequent dan minor action response secukupnya, namun untuk infrequent dan major action response harus lebih jelas dan lengkap
    4. Dialog memberikan penutupan(keadaan akhir) -> urutan action memiliki awal-pertengahan-akhir. feedback yang informatif pada akhir suatu kumpulan action akan melegakan dan memuaskan user
    5. Memberikan pencegahan dan penanganan kesalahan sederhana -> jika terjadi error, sistem harus bisa mendeteksi error dan mengatasinya
    6. memungkinkan pembalikan aksi yang mudah -> sebisa mungkin, semua action harus bisa dibatalkan (undo)
    7. Mendukung pusat kendali internal -> user yang menjadi 'initiator of action' bukan sebagai 'responders'
    8. mengurangi beban ingatan jangka pendek -> kemampuan mengingat jangka pendek manusia sangat terbatas, sistem harus dapat mengurangi apa yang harus diingat oleh penggunanya dalam jangka pendek, dengan membuat tampilan yang sederhana, multiple page harus dikonsolidasi dan pergerakan window harus dikurangi

    Prinsip 3: mencegah kesalahan
    - Membetulkan Perintah
      > mengenali kekurangan perintah dan melengkapinya
      > memberi pilihan sebagai ganti mengetik
      > membatasi pilihan
    - Melengkapi urutan aksi
      > memungkinkan penggabungan aksi-aksi menjadi suatu aksi baru
      > melakukan aksi-aksi yang tergantung aksi lain secara otomatis
    - Membetulkan pasangan yang bersesuaian
      > menempatkan tanda pembuka dan penutup pada suatu aksi
      > mengingatkan pemakai bahwa tanda penutup belum dipasang

Tambahan: Sistem yang Kritis(*)
Sistem yang kritis itu pokokny sistem yang dirancang untuk menanggulangi aktivitas aktivitas yang penting, crucial. Sistem tersebut harus aman dan terpercaya karena kegagalan atau kesalahan penggunaan sistem dapat berdampak sangat merugikan atau sangat berbahaya, misalny sistem penjadwalan pesawat, kereta, sistem reaktor nuklir 

Slide 3
Metode LUCID (Logical User-Centered Interface Design)(*)
1. Kembangkan konsep produk -> stakeholder dan team memahami aturan dan visi dari proyek dan aturan yang telah terdokumentasi
2. Analisis User, Tasks, dan Informasi -> personel, skenario dan persyaratan yang telah disetujui
3. Mengembangkan konsep desain dan prototipe -> Manajemen executive menyetujui petunjuk desain, mewujudkannya dalam key screen prototype
4. Kelengkapan desain user interface dan perbaikan -> spesifikasi lengkap, review dan serah terima kepada pihak pengembang
5. Implementasikan software -> pengembangan tuntas dan produk sudah diuji, siap untuk di rilis
6. Mengembangkan rencana secara keseluruhan dan evaluasi dari proses instalasi -> semua aktivitas sudah selesai dan masalah usability yang tersisa sudah dipindah ke projek baru




Ringkasan Materi UTS Interaksi Manusia dan Komputer

Slide 1

1. Apa itu IMK?(*)
    IMK atau HCI adalah disiplin ilmu yang berhubungan dengan perancangan/mendesain, mengevaluasi, dan mengimplementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya.

Tujuan IMK: Mengembangkan/ meningkatkan keamanan, utilitas, efektifitas, efisiensi dan usabil

Mengapa butuh IMK ?
Karena diperlukan sebuah interface yang "baik", user friendly dan intuitif bagi pengguna aplikasi. Tak ada interface yang sempurna tapi ada interface yang "baik" dan "buruk"
Saat ini komputer bukan hanya dipakai oleh ahli komputer melainkan berbagai jenis user, sehingga desain interface sangat diperlukan untuk mendukung kebutuhan, pengetahuan dan keahlian user pemakainya

Fokus IMK: Perancangan dan evaluasi antarmuka pemakai (UI)
Antarmuka pemakai adalah bagian dari sistem komputer yang memungkinkan manusia berinteraksi dengannya.

Tujuan Rekayasa Sistem:
> Tingkat tinggi -> membuat kualitas hidup pemakai lebih baik
> Fungsionalitas yang semestinya
   > Tentukan tugas-tugas apa yang harus dilaksanakan (tugastugas umum mudah ditentukan, namun yg jarang lebih sulit ditemukan). Fungsionalitas harus lengkap.
> Kehandalan, ketersediaan, keamanan, integra=itas data
   > Kehandalan: berfungsi spt yang diinginkan
   > Ketersediaan: tersedia ketika hendak digunakan
   > Keamanan: terlindung dari akses tdk diinginkan
   > Integritas Data: terlindung dari kerusakan baik disengaja/tdk
> Standardisasi, integrasi, konsistensi, portabilitas
   > Standardisasi: keseragaman sifat-sifat antarmuka pemakai pada aplikasi berbeda
   > Integrasi: keterpaduan antara paket aplikasi dan software tools
   > Konsistensi: Keseragaman pada suatu program aplikasi
   > Portabilitas: dimungkinkannya data dikonversi pada berbagai hardware dan software
> Penjadwalan dan anggaran -> proyek perlu selesai dalam jadwal dan memenuhi anggara. Produk yang terlambat/ terlalu mahal akan membuat produk tdk kompetitif

Perancangan antarmuka pemakai -> penting, karena:
> Desain yang baik bagi satu komunitas belum tentu baik bagi komunitas lain. Contohnya pemakaian warna kuning pada satu komunitas dianggap sakral dan tidak boleh sembarang digunakan
> Desain yang efisien bagi sekumpulan orang dapat menjadi tidak efisien bagi sekumpulan lainnya. Contoh di Indo penulisan dari kiri-kanan, di Arab dari kanan-kiri

Faktor manusia Terukur yang menjadi pusat evaluasi:
- Waktu belajar => berapa lama org biasa mempelajari cara relevan untuk melakukan suatu tugas?
- Kecepatan kinerja => berapa lama suatu tugas dilakukan?
- Tingkat kesalahan => berapa banyak kesalahan san kesalahan apa saja yang dibuat pemakai?
- Daya ingat => bagaimana pemakai mempertahankan pengetahuannya setelah jangka waktu tertentu?
- Kepuasan subjektif => bagaimana kesukaan user terhadap berbagai aspek sistem?

Usability Goals(*)
- Effective to use (effectiveness)
- Efficient to use (efficiency)
- Save to use (safety)
- Have good utility (utility)
- Easy to learn (learnability)
- Easy to remember how to use (memorability)

Motivasi bagi Faktor Manusia dalam perancangan
=> muncul dari kesadaran betapa buruknya rancangan banyak sistem sekarang ini
=> Sumber utama keprihatinan:
     1) Sistem yang kritis bagi kehidupan(*), contoh lalu lintas udara, reaktor =nuklir, pembangkit listrik.
         -> Biaya tinggi tdk masalah asalkan kehandalan dan keefektifan tinggi
         -> Waktu pelatihan lama dpt diterima asal kinerja cepat dan bebas kesalahan
         -> Kepuasan subjektif tidak dipermasalahkan
         -> Ingatan diperoleh dari seringnya penggunaan dan latihan

     2) Pemakaian industri dan Komersial, contoh perbankan, asuransi, pemesanan barang, manajemen persediaan, pemesanan hotel
         -> Biaya rendah lebih disukai meskipun kehandalan dikkorbankan
         -> Kemudahan belajar penting karena biaya belajar mahal
         -> Kepuasan subjektif tidak terlalu penting
         -> Ingatan diperoleh dari seringnya penggunaan
         -> Kecepatan kinerja diutamakan tapi kelelahan operator ditoleransi

     3) Aplikasi Kantor, Rumah, Hiburan, contoh: pengolah kata, video game, paket pendidikan, e-mail
         -> Kemudahan belajar, kesalahan yang rendah dan kepuasan subjektif diutamakan karena pemakaian tidak sinambung dan persaingan ketat
         -> Ingatan sangat mungkin salah, karena itu petunjuk online penting
         -> Biaya rendah penting karena persaingan

     4) Sistem eksplorasi, kreatif, dan kerjasama. Contoh S. Eksplorasi: ensiklopedia, web, pengambilan keputusan bisnis. contoh S. Kreatif: desain arsitektur, komposisi musik. Contoh S. Kerjasama: video mail, sistem rapat elektronik
         -> Motivasi dan ekspektasi pemakai tinggi
         -> Perancangan sistem sulit
         -> Perancang harus membuat sistem transparan agar pemakai mudah terserap dalam tugasnya.

Mengakomodasi keragaman manusia
> Kemampuan, latar belakang, motivasi, kepribadian, dan gaya kerja manusia menantang perancang sistem interaktif
> mengetahui perbedaan fisik, intelektual, dan kepribadian diantara pemakai adalah vital.
> Kemampuan dan tempat kerja fisik. -> tidak ada pemakai "rata-rata". Desain tempat kerja bisa  membantu ataupun menghambat kerja
> Kemampuan kognitif dan perspektual
> Perbedaan kepribadian
    Extrovert - Introvert
    Sensing - Intuition
    Perceptive - Judging
    Feeling - Thinking
> Keanekaragaman budaya dan bangsa, misal penulisan kiri-kanan vs kanan-kiri, nama dan gelar (Mr., Mrs., Mme.)
> Pemakai dengan kecacatan
> Pemakai yang sudah tua (pengaturan warna, suara, kecerahan, ukuran huruf, dll)

Karakteristik Desain yang Memperhatikan Usability

IMK != ERGONOMICS 

Ergonomics: disiplin ilmu yang bertujuan untuk mengoptimalisasikan hubungan manusia dan pekerjaannya
Tidak termasuk dalam lingkup IMK tp sangat erat hubungannya
Lingkup Ergonomics:
- Lingkungan fisik tempat berinteraksi
- Lingkungan fisik dan layout layar
- Memperhatikan kesehatan pengguna, penggunaan warna serta lingkungan fisik
- Memperhatikan pengaturan layout serta penempatan shortcut

Contoh kasus Ergonomics:
- Standing Environment: ATM, Touchscreen Information
- Intense Sitting Environment: Teller, Kasir
- Shortcut Keys: Function Key, combination CTRL/ALT/SHIFT
- Health Issue: reachable shortcut, noise
- Color Issue: Distinct color not contrast color

Konsep Dasar IMK:(*)
1. Pemahaman tentang fungsi-fungsi mekanis manusia -> menyangkut persepsi (indera0, pengolahan kognitif (memori), pemecahan masalah, keterampilan motorik (perintah otak dan aktifitas fisik)
2. Informasi mengenai karakteristik dialog -> menyangkut ragam dialog, struktur, materi(teks/grafis), tanggapan waktu, kecepatan tampilan. Pengetahuan umum dapat menjadi petunjuk penting namun tdk boleh terpaku pada itu saja
3. Penggunaan prototipe -> untuk mengukur tingkat usability rancangan antarmuka yang sedang dibuat
4. Teknik evaluasi -> menyangkut ternik evaluasi pada hasil prototipe, yang dapat berupa:
    - Evaluasi oleh pakar IMK
    - Metode empirik = melakukan pengamatan langsung pada pengguna
    - Metode survei = melakukan wawancara terstruktur terhadap pengguna (menggunakan kuisioner)

Tugas Week 1 = rancang terminal informasi yang baik untuk penggunaan di umn

Tuesday, October 20, 2015

Ringkasan Sistem Operasi - Materi UTS (2)

Monitor: kumpulan prosedur, variabel dan data struktur yang dikelompokkan menjadi 1 modul

Message Passing: send(destination, &message), receive(source, &message)
beberapa isu dalam message passing:
- Message lost
- Acknowledgement
- Domains
- Authentication
- Performance
(Monitor dan message passing dapat digunakan di producer-consumer problem. bisa dibaca di slide week 5)

Penjadwalan Prosesor
Kategori
- Batch: program tidak memerlukan interaksi dari pengguna
- Interactive: kebalikan batch
- Real-time: memenuhi kriteria waktu

Algoritma penjadwalan

- FCFS (First Come First Served)
contoh soal: diket job" sbb:
Job             Arrival Time              CPU Time
 A                   10:00                             5
 B                   10:03                             2
 C                   10:04                             1
 D                   10:05                             1
hitung average turn around time (waktu tunggu rata-rata)
                                                   (finish-arrival)
Job  Arrival      CPU   Start    Finish    Waktu tunggu
 A       10:00       5       10:00    10:05       5
 B       10:03       2       10:05   10:07        4
 C       10:04       1       10:07    10:08       4
 D       10:05       1       10:08    10:09       4
                                                     -------
                             Average:   17/4 = 4,2

- SJF (Shortest Job First)
contoh soal: diket job" sbb:
Job    Arrival Time              CPU Time
 A        10:00                             5
 B        10:03                             2
 C        10:04                             3
 D        10:05                             1
hitung average turn around time (waktu tunggu rata-rata)
                                                 (finish-arrival)
Job  Arrival    CPU   Start    Finish    Waktu tunggu
 A      10:00      5      10:00    10:05       5
 B      10:03      2      10:06   10:08        5
 C      10:04      3      10:08    10:11       7
 D      10:05      1     10:05    10:06        1
                                                  -------
                              Average:   14/4 = 4,..

- Shortest Remaining Time Next (SRTN)
                                               (finish-arrival)
Job  Arrival    CPU   Start    Finish    Waktu tunggu
 A      10:00      5      10:00    10:05       5
 B      10:03      2      10:06   10:08        5
 C      10:04      3      10:08    10:11       7
 D      10:05      1     10:05    10:06        1
                                                           -------
                                      Average:   14/4 = 4,..

- Priority -> pilih priority dgn angka terbesar-terkecil
Job             Arrival Time              CPU Time    Priority
 A                   10:00                             4               1
 B                   10:03                             2               3
 C                   10:04                             1               2
 D                   10:05                             1              4

Step mengerjakan: awalnya kerjain A, Sampai 10:04 lanjut kerjain B, sampai 10:06 kerjain C, baru D

- Round Robin

Algoritma yang lain dapat dilihat di slide week 6

Week 7
Pembahasan soal
1) Deteksi deadlock dengan banyak resource untuk setiap jenis