Friday, January 06, 2017

Rekayasa Perangkat Lunak - Mengukur Kepuasan Konsumen

Ada 2 jenis kepuasan:
1. Kepuasan fungsional: kepuasan yang diperoleh dari pemakaian/fungsi suatu produk. contohnya karena makan jadi kenyang
2. Kepuasan psikologikal: kepuasan yang diperoleh dari atribut tak berwujud, contohnya kemewahan, pelayanan yang baik

Menurut Philip Kotler ada 4 metode untuk mengetahui kepuasan:
1. Sistem keluhan dan saran -> untuk mengumpulkan informasi langsung dari konsumen.
2. Survei kepuasan konsumen -> menunjukkan komunikasi 2 arah kepada konsumen dan menunjukkan perhatiannya pada konsumen.
3. Ghost Shopping: mengetahui kekuatan dan kelemahan pesaing dan membandingkannya dengan perusahaan itu sendiri.
4. Analisis kehilangan konsumen -> tingkat kehilangan konsumen dapat menunjukkan kegagalan perusahaan dalam memuaskan konsumennya.

Populasi dan sampel
- Populasi adalah wilayah generalisasi, yang terdiri atas objek/subjek yang mempunyai kualitas dan karakteristik tertentu yang diterapkan oleh peneliti untuk dipelajari dan kemudian ditarik kesimpulannya (Sugiyono, 2006: 117).

- Sampel adalah bagian dari jumlah dan karakteristik yang dimiliki oleh populasi tersebut (Sugiyono, 2006: 118).

- 2 jenis pengambilan sampel: random sampling & nonrandom sampling

- Dikaitkan dengan besarnya sampel, selain tingkat kesalahan, ada lagi beberapa faktor lain yang perlu memperoleh pertimbangan yaitu:
(1) derajat keseragaman
(2) rencana analisis
(3) biaya
(4) waktu dan tenaga yang tersedia .
(Singarimbun dan Effendy, 1989).

- jika ukuran populasinya di atas 1000, sampel sekitar 10 % sudah cukup, tetapi jika ukuran populasinya sekitar 100, sampelnya paling sedikit 30%, dan kalau ukuran populasinya 30, maka sampelnya harus 100%.

- Krejcie dan Morgan (1970) dalam Uma Sekaran (1992) membuat daftar yang bisa dipakai untuk menentukan jumlah sampel:
(iya gw tau banyak, gausah dihafal juga ya :v)

Populasi (N)
Sampel (n)
Populasi (N)
Sampel (n)
Populasi (N)
Sampel (n)
10
10
220
140
1200
291
15
14
230
144
1300
297
20
19
240
148
1400
302
25
24
250
152
1500
306
30
28
260
155
1600
310
35
32
270
159
1700
313
40
36
280
162
1800
317
45
40
290
165
1900
320
50
44
300
169
2000
322
55
48
320
175
2200
327
60
52
340
181
2400
331
65
56
360
186
2600
335
70
59
380
191
2800
338
75
63
400
196
3000
341
80
66
420
201
3500
346
85
70
440
205
4000
351
90
73
460
210
4500
354
95
76
480
214
5000
357
100
80
500
217
6000
361
110
86
550
226
7000
364
120
92
600
234
8000
367
130
97
650
242
9000
368
140
103
700
248
10000
370
150
108
750
254
15000
375
160
113
800
260
20000
377
170
118
850
265
30000
379
180
123
900
269
40000
380
190
127
950
274
50000
381
200
132
1000
278
75000
382
210
136
1100
285
1000000
384

- untuk menghitung besar sampel minimal sebuah penelitian, rumus yang paling sering dipergunakan oleh para peneliti adalah:
a. Rumus Sampel Penelitian Cross-sectional
    ---> bisa dipelajari di: http://dienanalis.blogspot.co.id/2015/09/menghitung-besar-sampel-penelitian-uji.html

b. Rumus Sampel Penelitian Case Control dan Kohort
    ---> bisa dipelajari di: http://ranumra.blogspot.co.id/2013/04/rumus-case-control-penelitian-kasus.html

c. Penelitian Eksperimental
    ---> dalam penelitian eksperimental dilakukan manipulasi paling sedikit 1 variabel, mengontrol variabel lain yang relevan dan mengobservasi efek dan pengaruhnya terhadap satu atau lebih variabel terikat. sumber: eurekapendidikan.com 

Dimensi kepuasan (udh ada bahasan menurut Garvin di post sebelumnya)
-> menurut Irawan: 
    1. berwujud (tangible), 
    2. kehandalan (reliability), 
    3. cepat tanggap (responsiveness), 
    4. kepastian (assurance)
    5. empati (emphaty)

DeLone & McLean menyampaikan enam faktor yang menjadi dasar pengukuran keberhasilan sistem informasi:
1. kualitas informasi
2. kualitas sistem informasi
3. intensitas penggunaan sistem informasi (system use)
4. kepuasan pengguna akhir sistem informasi (end user satisfaction)
5. dampak individual (individual impact) dr sistem informasi
6. dampak organisasional (organizational impact) dr sistem informasi

Doll & Torkzadeh (1988) - 5 komponen user satisfaction:
1. Content
2. Accuracy
3. Format
4. Ease of use
5. Timeliness

lengkapnya bisa dilihat d tabel ini (sumber: slide)



MENGHITUNG NILAI AKHIR - SKALA LIKERT
A. PERTANYAAN POSITIF (+)
Skor 1. Sangat (tidak setuju/buruk/kurang sekali)
Skor 2. Tidak (setuju/baik/) atau kurang
Skor 3. Netral / Cukup
Skor 4. (Setuju/Baik/suka)
Skor 5. Sangat (setuju/Baik/Suka)

B. PERTANYAAN NEGATIF (-)
Skor 1. Sangat (setuju/Baik/Suka)
Skor 2. (Setuju/Baik/suka)
Skor 3. Netral / Cukup
Skor 4. Tidak (setuju/baik/) atau kurang
Skor 5. Sangat (tidak setuju/buruk/kurang sekali)


CRONBACH - ALFA
= untuk menghitung survei
---> bisa didownload & dipelajari di: https://www.dropbox.com/s/8xg3dwqifz3urox/cronbachalpha%28manual%29.pdf?dl=0











RPL - Panduan Merancang User Interface (Week 9)

3 Golden Rules menurut Theo Mandel:
1. Place the user in control
   -> Buat mode interaksi yang tidak memaksa user untuk action yg tidak diinginkan, cth spell checking mode Ms. Word masih memberi kebebasan user untuk mengubah teks

   -> Berikan interaksi yang fleksibel. Cth: user dpt input dgn keyboard, mouse, suara, dll

   -> Interaksi hrs dapat di-undo dan di-interrupt

   -> Buat interaksi agar dapat di-customize oleh user

   -> Jangan menampilkan hal-hal teknis pada user. Contoh input perintah jangan suruh user buka cmd dulu

   -> Desain interaksi menyerupai interaksi di dunia nyata. Contoh aplikasi pengolah gambar untuk stretch gambar tinggal di tarik layaknya stretch biasa

2. Reduce the user's memory load
   -> kurangi beban short-term memory user

   -> Membuat menu default yang masuk akal bagi user agar lebih mudah diingat. contohnya ctrl-c untuk copy, karena "C"opy

   -> Layout visual dr interface menyerupai layout pada aslinya. contoh bon pembayaran, menyerupai bon pembayaran asli

   -> Menampilkan susunan fungsi berdasarkan hirarki menu yang sesuai. contoh pilih menu file bisa ngesave, jgn masukin menu save di menu insert

3. Make the interface consistent
   -> perhatikan konsistensi urutan untuk aplikasi yang punya fungsionalitas sama. contoh Ms Word, Excel, Powerpoint urutan menubar nya sama yaitu file, insert, ....

   -> Gunakan perintah yang umumnya digunakan untuk melakukan sesuatu. contoh ctrl-s buat save, jangan diganti jadi buat stretch

note: ini hanya panduan untuk membuat UI, ga perlu dihafal sebenernya, karena waktu kelas cuma disuruh buat susun desain interface langsung (digambar gitu)






Rekayasa Piranti Lunak - 8 Faktor/Dimensi Kualitas Menurut Garvin

1. Performance: berkaitan dengan karakteristik utama suatu produk, contohnya jam dinding, kinerja utama yang kita inginkan adalah dapat menunjukkan waktu saat ini, sehingga letak angka pada jam harus mudah dimengerti serta jarum jam harus jelas menunjuk ke angka berapa.

Contoh kasus: LINE, kinerja utama yang diinginkan adalah chatting.

2. Features: merupakan karakteristik pelengkap atau pendukung suatu produk.

Contoh kasus: LINE, fitur pendukung yang diharapkan konsumen adalah timeline untuk berbagi status dan sharing.

3. Reliability (kehandalan): berkaitan dengan kemungkinan suatu produk dapat bekerja secara memuaskan pada suatu waktu tertentu.

Contoh kasus: LINE WEBTOON, kalau tdk terkoneksi internet masih dapat membaca webtoon yang sudah didownload sebelumnya.

4. Conformance (kesesuaian): kesesuaian produk dan kinerja standar yang diinginkan. Tiap" produk pada dasarnya punya standar masing-masing.

Contoh kasus: USB, port sesuai standar serta semua USB harus mampu menyimpan data.

5. Durability (ketahanan): ketahanan suatu produk sampai harus diganti. Durability biasa diukur dengan umur / waktu daya tahan suatu produk.

Contoh kasus: USB, tahan dipakai sampai berapa lama?

6. Servicability: ketersediaan layanan perbaikan jika dibutuhkan. Contoh beberapa produk menyediakan service center masing-masing. (mis. Samsung, Apple)

Contoh kasus: service hp lebih mudah dijumpai daripada service TV

7. Aesthetics (keindahan): berkaitan dengan tampilan, rasa, bau, bunyi suatu produk. Contohnya beli headset perhatiin penampilan dan bunyi yang dihasilkan.

8. Perceived Quality (Kesan Kualitas): kesan kualitas produk yang dirasakan oleh konsumen. Contohnya jam tangan Rolex yang memiliki kesan berkualitas.

reference: http://ilmumanajemenindustri.com/delapan-dimensi-kualitas-produk/
contoh kasus berasal dari saya sendiri, jadi mohon maaf kalau ada yg keliru ^^"






Wednesday, November 23, 2016

Dynamic Programming (lanjutan) & Greedy

Dynamic Programming (lanjutan)
-> Knapsack 0/1
    cth:
    i   =  1     2     3     4
    w =  2     1     3     2
    p  = 12   10   20   15
   M = 5

    keterangan:
    i = item
    w = weight tiap item
    p = profit tiap item
    M = max weight yang bisa dibawa

    output: buat tabel, nilai tabel selanjutnya ditentukan dari nilai tabel sebelumnya


Greedy
1. Minimum Spanning Tree
    Spanning tree: graph yg ga ada cycle

   1. Algo. Prim
      -> selalu nyambung, mulai dari node yang cost nya terkecil, lalu lanjut ke node lain yang jaraknya terkecil dari node sebelumnya

   2. Algo. Kruskal
      -> urutin dari yang jaraknya terkecil, jangan ambil yang menyebabkan cycle

2. SSSP (Single Source Shortest Path) -> coming soon or coming never, lol

3. Huffman Code
    -> merepresentasi karakter dengan variable length
    -> representasi karakter yg populer digunakan: ASCII & EBDIC, merupakan representasi dgn fixed length
    -> Aturan:
        1. Makin sering huruf tsb muncul, makin pendek representasinya -> cth: A bnyk dipake, shg A direpresentasikan sbg 0
        2. tidak boleh 1 karakter merupakan awalan dari karakter lain -> cth: A = 0 ; B tdk boleh 01 (karena 0 merupakan A)

    -> Contoh membuat representasi berdasarkan aturan berikut:
        A > B > C > D
        Langkah:
        1. ambil 2 huruf terkecil dulu yaitu {C, D}, bedakan dengan 0 & 1
        2. gabungkan dgn huruf selanjutnya {B, C, D}, bedakan dgn 0 & 1, dan seterusnya

        Dlm bentuk Tree:
     
 
Sehingga
A = 0
B = 10
C = 110
D = 111

3. Knapsack Fractional -> barang bs dibagi
    Ada 3 macam greedy:
    1. Greedy Weight
    2. Greedy Profit
    3. Greedy Ratio (Profit / Weight) <-- optimal="" p="" selalu="">

    Penjelasan:
    1. Greedy weight: mengurutkan item yg dimasukkan duluan berdasarkan weight item tsb
        logikanya yang weight paling kecil yang dimasukin duluan

    2. Greedy Profit: mengurutkan item yg dimasukkan berdasarkan profit. logikanya yg profit terbesar yg dimasukkan duluan

    3. Greedy Ratio: mengurutkan item yg dimasukkan duluan berdasarkan rasio dari barang tsb (rasio dapet dari profit / weight) 

Week 11

Attack:
   1. Cloned RFID
       -> data numpang lewat doang ke komp org lain, tp data tsb dipake sm org lain tsb (disebut jg immigrant attack)
       -> perbedaan dgn:
           wire taping => wire taping cuma nyadap, sekedar tau data doang (cukstaw lol)
           MITM => datanya diubah sblm dikirim ke org lain, bkn cm sekedar dipake

Vulnerability:
1. Replay Attack
    -> gaperlu tau isi dari data, tp data tsb dpt dipake utk dikirim ke tmpt lain utk mendpt credential org itu

2. Reprocessed Transactions
    -> cth: org masukin username sm password, nah uname dan password itu diambil packetnya dan dipake buat login lg -> password replay
    -> cth2: biometric authentication -> cth bikin replika sidik jari pake karet -> physical replay

3. Reuse of Session Data

Countermeasure
1. Unrepeatable Protocol
    -> cth pake one time password

2. Liveness beacon
    -> cth: sequence number, nonce (memberi simple modification utk memastikan org yg sdg berkomunikasi ikut terlibat)

Similar Attack: Session Hijacking
langkah" session hijacking:
1. IP Spoofing -> ganti" header IP suatu packet agar source jadi dari si attacker
2. Tebak sequence Number (kadang bisa di predict)
3. Data dari attacker hrs sampe duluan ke destination sblm data dr sender aslinya

Monday, November 21, 2016

Dynamic Programming

1. Fibonacci (coming soon!)

2. Koefisien Binomial
    C(n, k) = C(n-1, k-1) + C(n-1, k) dimana n > k > 0

3. Coin Change (coming soon or coming never.. idk)

4. Binary Search Tree yang optimal
cth:
A = 0,1
B = 0,2
C = 0,4
D = 0,3

Subproblem {1,2} -> dlm hal ini A=1, B=2, dst, nilai ini merupakan nilai k
A -> B
Cost: 1 * 0,1 + 2 * 0,2 = 0,3

B -> A
Cost: 1* 0,2 + 2 * 0,1 = 0,4

pilih yg cost terkecil, maka arah dari A -> B

Subproblem {3,4}
C -> D
Cost: 1 * 0,4 + 2 * 0,3 = 1,0

D -> C
Cost: 1 * 0,3 + 2 * 0,4 = 1,1

nilai k yang dimaksud diatas berguna untuk menentukan yang mana yang jadi root dari tree tersebut. misalkan k = 1, berarti rootnya adalah A
jadi susunannya: A -> B -> C -> D
(anggap ini dlm bentuk tree, penyusunan berdasarkan abjad. kalau abjad yang ingin dimasukkan ke tree lebih besar dari root nya (misal B adalah huruf yg lebih besar dari A, F adalah huruf yang lebih besar dari C, dsb) maka menjadi cabang tree di sebelah kanan root, dan sebaliknya jika lebih kecil maka menjadi cabang tree sebelah kiri.)

jadi dari aturan diatas, k = 2 dapat dituliskan sbb:
              B
           /      \
         A       C
                     \
                     D

Insert, Update, Delete, Commit, Rollback, Truncate (Database)

DML:
1. Insert new Row
    insert data bisa secara implisit dan eksplisit
    implisit -> nama kolom disebutin
    INSERT INTO TableSomething (ColA, ColB) VALUES(1, 2);

    eksplisit ga sebutin nama kolom
    INSERT INTO TbSomething VALUES (1, 2, NULL);

    Insert data bisa dari table lain:
    INSERT INTO TbA (SELECT x FROM tableY WHERE ID > 1);

2. Update data
    UPDATE tableName SET colName = value WHERE condition
    bisa dimasukin subquery juga loh~
    UPDATE tbName SET colName = (SELECT x FROM tbY where condition);

3. Delete data
    DELETE FROM tbName WHERE condition;

DCL:
1. Truncate data -> sm kyk delete, tp dia autocommit
    TRUNCATE TABLE tbA;

Database Transaction
- COMMIT
- ROLLBACK

FOR UPDATE -> dimasukin di query select, fungsinya agar user lain gabisa edit data yg lg di select sm 1 user

Tuesday, November 15, 2016

Analisis dan Perancangan Algoritma - Space and Time Tradeoff

String Matching:
1. Algo. Horspool
   Kasus 1 dan 2: gada string yg berulang di depan
   Kasus 3 dan 4: ada yang berulang

               B   A   R   B   E   R
                    4    3    2    1    0
   (penomoran dari huruf paling akhir ke awal)

   Shift Tabel T (berupa array) => index nya sesuai ascii
   contoh ascii A = 65 -> T[65] = 4

2. Algo. Boyer-Moore
   Ada 2 tabel, yaitu
   -> Shift Tabel T
   -> Suffix Table utk hitung d2

   k = banyaknya variabel yang sama
   k = 0 -> Boyer-Moore = Horspool

   utk mencari d1
   -> Bad-Character (bc) = karakter setelah string yang sama
        d1 = max(T[bc] - k, 1)

   untuk mencari d2
   -> Good Suffix
        a. Aturan lama (masih bisa keliru)
        d2 = jarak antar karakter yang karakter sebelumnya berbeda
        contoh: A B  C  B   A   B
                            (3) (2) (1) (0)
        diliat dari karakter paling kanan (B) (nomor 0), karakter sebelumnya A (nomor 1)
        lalu sebelum A = karakter B (nomor 2) (sama seperti karakter paling kanan yaitu B), sehingga dilihat, jika karakter sebelumnya = A (karakter di nomor 3 = karakter di nomor 1), maka karakter di nomor 3 bukan merupakan good suffix, dan lihat lagi karakter sebelumnya.
        Namun, karena pada contoh, C != A (karakter di nomor 3 != karakter di nomor 1), sehingga C merupakan good suffix dan dihitung jarak dari B (nomor 0) ke B (nomor 2). jarak = 2 -> d2 = 2
        Kalau tdk ditemukan good suffix sampai huruf paling awal dari string, maka d2 = jumlah karakter di string tersebut

        b. Aturan Baru
            //coming soon! kalo ga lupa

Sorting By Counting
contoh:
idx array = [0] [1] [2] [3] [4]
       data  =  9    8  11  10  12

Tabel Frekuensi
idx array = menyesuaikan data
... [8]  [9]  [10]  [11]  [12]
     1     1     1       1       1  
<- array="" dalam="" data="" jumlah="" p="">
Tabel Distribusi = menyimpan posisi awal data hrs dimasukkan

... [8]     [9]          [10]         [11]        [12]
     1        1             1              1             1  
      |         |              |               |              |
     v        v             v              v             v
     1   (1+1=2)   (2+1=3)   (3+1=4)   (4+1 = 5)  
<- array="" dalam="" data="" jumlah="" p=""><-isi dist.="" p="" tb.="">
<- array="" dalam="" data="" jumlah="" p=""><-isi dist.="" p="" tb.="">karena array dimulai dari index 0, maka nilai di tabel distribusi dikurang dgn 1
sehingga isi dr tabel distribusi:
[0]  [1]  [2]  [3]  [4]
 0     1    2     3     4

Computer Security - Not All is What It Seems (Week 10)

Harm:
   Forgeries (pemalsuan)
   -> Fake Email
   -> Fake Website
   -> Fake Code, cth pdf reader fake, antivirus fake
 
Vulnerability:
 -) Integrity Failure
   Attack Details:
   1. Website Defacement: mengubah konten sebuah web
   2. Subtitute Content of Real Website: ubah sbagian kcl dr web, tujuan agar user ga aware
   3. Fake Email Message: tujuan utk phising -> memancing org utk memberikan private data
   4. Fake/Inaccurate Email Header Data: email from siapa bs diedit
   5. Web Bug: adalah sbuah invisible image (1 * 1 pixel image), utk memberikan data yg diinginkan
   6. Clickjacking: bikin user agree tanpa sadar
   7. SQL injection: mengubah statement agar menjalankan yg user inginkan

Countermeasure:
   Digital Signature
   -> Properties of Digital Signature:
   1. Nonrepudiation
   2. Authenticity
   3. Must be unforgeable, not alterable, not reusable.

   *) Encryption vs Hash
   Hash:
   - one way function
   - tujuan: biar bs tau data diubah" atau ngga
   Encryption:
   - two way function (encrypt -> decrypt / decrypt -> encrypt)
   - tujuan: biar message ga langsung bs dibaca sama org