Saturday, October 29, 2016

Extreme Programming (XP)

Extreme Programming (XP) merupakan salah satu metodologi dalam rekayasa perangkat lunak dan juga merupakan satu dari beberapa agile software development methodologies yang berfokus pada coding sebagai aktivitas utama di semua tahap pada siklus pengembangan perangkat lunak (software development lifecycle). Metodologi ini mengedepankan proses pengembangan yang lebih responsive terhadap kebutuhan customer (”agile”) dibandingkan dengan metode-metode tradisional sambil membangun suatu software dengan kualitas yang lebih baik.


Extreme Programming muncul menawarkan sebuah disiplin baru dalam pengembangan software secara agile. Nilai dasar yang terkandung di dalam Extreme Programming adalah: Komunikasi (Communication), Kesederhanaan (Simplicity), Umpan balik (Feedback) Keberanian (Courage) dan menghormati (Respect).

Metodologi Extreme Programming (XP)

1. Planning/Perencanaan
Pada tahap perencanaan ini dimulai dari pengumpulan kebutuhan yang membantu tim teknikal untuk memahami konteks bisnis dari sebuah aplikasi. Selain itu pada tahap ini juga mendefinisikan output yang akan dihasilkan, fitur yang dimiliki oleh aplikasi dan fungsi dari aplikasi yang dikembangkan.

2. Design/Perancangan
Metode ini menekankan desain aplikasi yang sederhana, untuk mendesain aplikasi dapat menggunakan Class-Responsibility-Collaborator (CRC) cards yang mengidentifikasi dan mengatur class pada object-oriented.

3. Coding/Pengkodean
Konsep utama dari tahapan pengkodean pada extreme programming adalah pair programming, melibatkan lebih dari satu orang untuk menyusun kode.

4. Coding/Pengujian
Pada tahapan ini lebih fokus pada pengujian fitur dan fungsionalitas dari aplikasi.

Contoh Penerapan Extreme Programming (XP) :
  • Planning Game : Hubungan antara Customer dengan Programer untuk memperkirakan kenbutuhan –kebutuhan dari Custumer dalam implementasinya.
  • Small, frequent releases : Memproduksi dengan cepat.
  • System metaphors : System metaphors antara Customer dengan Programeruntuk menunjukkan semua perkembangan dengan menjelaskan bagaimana cara kerja system.
  • Simple design : Perhatiannya pada pendisainnan atau perancngan solusi yang sederhana
  • Testing (unit testing & TDD) : Pelaksanaan pengujian atau testing keseluruhan
  • Frequent refactoring : Penyusunan system kembali dengan cara duplikat atau salinan,memperbaiki komunikasi, menambahkan kelenturan
  • Pair programming : Dua orang menulis kode pada 1 komputer
  • Collective code ownership : Siapapun dapat merubah bagian pada pengkodean setiap saat.
  • Continuous integration : Bagian baru code di gabungkan ke dalam kode dasar
  • Sustainable pace
  • Whole team together
  • Coding standards : Terdapat aturan pengkodean dan di ikuti oleh programmer.

Read more

Thursday, October 27, 2016

Monday, October 24, 2016

Contoh DFD Gane Sarson

Data Flow Diagram (DFD) adalah suatu diagram yang menggunakan notasi-notasi untuk menggambarkan arus dari data pada suatu sistem, yang penggunaannya sangat membantu untuk memahami sistem secara logika, tersruktur dan jelas. DFD sangat mirip dengan Flowchart.
DFD merupakan alat bantu dalam menggambarkan atau menjelaskan proses kerja suatu sistem.
Read more

Sunday, October 23, 2016

Matematika Diskrit


1.1.  Apakah Matematika Diskrit itu?
Matematika diskrit adalah bagian dari matematika yang mempelajari objek-objek diskrit. Di sini objek-objek diskrit diartikan sebagai objek-objek yang berbeda dan saling lepas. Matematika diskrit memiliki aplikasi di hampir semua bidang kehidupan, seperti ilmu komputer, kimia, botani, zoologi, linguistik, geografi, dan bisnis. Masalah-masalah seperti
  • Ada berapa cara membuat password untuk sebuah sistem komputer?
  • Bagaimana mengurutkan sebuah himpunan bilangan bulat dari terkecil hingga terbesar?
  • Berapa besar peluang memenangkan sebuah undian?
  • Berapa jarak terpendek antara 2 kota atau lebih?
  • Bagaimana rute jaringan yang baik?
  • Seberapa efektif algoritma yang dibuat?

merupakan contoh kajian dalam matematika diskrit. Secara lebih umum, matematika diskrit digunakan untuk
  • Menghitung banyak objek
  • Mempelajari hubungan antara himpunan-himpunan berhingga
  • Menganalisis proses yang melibatkan langkah-langkah yang banyaknya berhingga

Lima tema dalam matematika diskrit berikut tujuan masing-masing adalah
  1. Penalaran matematika: memberikan pemahaman tentang penalaran matematika dalam membaca, memahami, dan membangun argumen matematika.
  2. Analisis kombinatorial: memberikan keterampilan menghitung banyak objek sebagai salah satu kemampuan dasar untuk memecahkan masalah.
  3. Struktur diskrit: memberikan pemahaman tentang struktur diskrit sebagai salah satu struktur matematika abstrak yang digunakan untuk menyajikan objek-objek diskrit dan hubungan di antara objek-objek itu.
  4. Aplikasi dan Pemodelan: memperkenalkan aplikasi matematika diskri dan pemodelan matematika sebagai salah satu kemampuan pemecahan masalah yang sangat penting.
  5. Berpikir algoritmik: memberikan kemampuan membuat algoritma dan verikasinya serta menganalisis memori komputer dan waktu yang dibutuhkan untuk melakukan algoritma itu.
1.2.  Mengapa Belajar Matematika Diskrit?
Beberapa alasan penting belajar matematika diskrit adalah sebagai berikut:
  1. Matematika diskrit memberikan kemampuan membaca, memahami dan membangun argumen matematika.
  2. Matematika diskrit merupakan pintu gerbang untuk mempelajari matakuliah lanjutan dalam logika, teori himpunan, teori bilangan, aljabar linier, aljabar abstrak, kombinatorika, teori graf,dan teori peluang.
  3. Matematika diskrit memberikan landasan matematika untuk mata kuliah ilmu komputer seperti struktur data, algoritma, teori basis data, teori automata, keamanan komputer (computer security), dan sistem operasi.
  4. Matematika diskrit memberikan latar belakang matematika yang diperlukan dalam pemecahan masalah riset operasi (operations research) seperti teknik optimisasi diskrit.
1.3.  Apakah Struktur Diskrit itu?
Struktur diskrit mempelajari struktur matematika yang memiliki objek atau elemen diskrit. Struktur atau sistem matematika dide¯nisikan sebagai koleksi objek dengan operasi yang terde¯nisi pada objek itu serta sifat-sifatnya. Struktur diskrit berisi pokok bahasan: Himpunan, Barisan, Fungsi, Logika, Teknik Membilang (counting techniques), Relasi, Graf, dan Pohon.

Logika merupakan study penalaran (reasoning). Pelajaran logika di fokuskan pada hubungan pernyataan – penyataan (statements).  Contoh pernyataan  :
        Semua anak sekolah memakai rok
        Setiap pemakai rok  adalah anak perempuan
        Jadi, semua anak sekolah adalah anak perempuan
Read more

Saturday, October 22, 2016

Teknik Evaluasi Interaksi Manusia dengan Komputer (IMK)


A. Evaluasi

Evaluasi digunakan untuk melihat apakah hasil rancangandengan proses ujicoba system yang telah dibuat sesuai dengan permintaan pengguna (user).
Proses ini tidak dikerjakan dalam satu fase proses perancangan tetapi melalui perancangan dengan prinsip life cycle, dengan hasil dari evaluasi dikembalikan untuk memodifikasi perancangan.


B. TujuanEvaluasi

Ada 3 tujuan utama dari evaluasi :
  • Melihat seberapa jauh sistem berfungsi.
Desain system memungkinkan user melakukantugas yang dibutuhkan dengan lebih mudah.Ini tidak hanya membuat fungsionalitas yang sesuaiada di system, tetapi membuat mudah dicapai oleh user, user dapat melakukan aksi untuk melaksanakan tugas.Juga mencakup kesesuaian penggunaan system terhadap harapan user pada tugas tersebut.Evaluasi pada tahap ini meliputi pengukuran unjuk kerja dari user pada system, untuk melihat keefektifan system dalam mendukung tugas.
  • Melihat efek interface bagi pengguna.
Ini mencakup pertimbangan aspek dari kemudahan system dipelajari, usability dan perilaku user.Penting juga untuk mengidentifikasikan area desain yang berlebih dari user, dengan menggunakan sejumlah informasi yang berlebih.
  • Mengidentifikasi problem khusus yang terjadi pada system
Ketika menggunakan konteks yang diinginkan menyebabkan hasil yang tidak diinginkan, atau terjadi kekacauan diantara user.Ini tentunya berhubungan dengan usability dan fungsionalitas dari desain (bergantung pada sebab masalah).Tujuan ini merupakan aspek negative dari desain.


C. Teknik Evaluasi pada sistem interaktif

Teknik Evaluasi pada sistem interaktif adalah teknik yang digunakan untuk melihat apakah hasil rancangan dengan proses ujicoba sistem yang telah dibuat sesuai dengan permintaan pengguna (user). Sehingga kita dapat melihat seberapa jauh sistem yang kita buat dapat berfungsi supaya kita dapat mengatasi problem yang terjadi pada sistem yang telah di buat.

Tujuan Teknik Evaluasi adalah :
  • Untuk mengevaluasi pengujian kegunaan dan fungsi dari sistem interaktif itu sendiri.
  • Untuk melihat seberapa jauh sistem itu berfungsi.
  • Untuk membuat suatu interface yang nyaman bagi para pengguna (user).
  • Menganalisis problem yang terdapat pada sistem.
Teknik evaluasi pada sistem interaksi adalah untuk melihat apakah hasil rancangan dengan proses uji coba sistem yang telah dibuat sesuai dengan permintaan pengguna (user) atau apakah hubungan antar kedua sistem yang berhubungan dapat saling dimengerti.


D.Mengevaluasi Perancangan

Evaluasi terjadi setelah proses perancangan. Evaluasi pertama system idealnya dilakukan sebelum implementasi dimulai. Jika perancangan dievaluasi, kesalahan dapat dihindari karena perancangan diubah/ diperbaiki sebelumnya. Sejumlah metode dibuat untuk mengevaluasi perancangan sebelum implementasi, yaitu : Cognitive Walkthrough, Heuristic Evaluation, Reviewbased, Model based.


E. Pendekatan Desain Evaluasi

Beberapa pendekatan dalam desain evaluasi:
  1. Metode Analitik adalah metode penyelesaian model matematika dengan rumus-rumus aljabar yang sudah baku(lazim). Salah satu bentuk analisis adalah merangkum sejumlah data besar data yang masih mentah menjadi informasi yang dapat diinterpretasikan. Kategori sasi atau pemisahan dari komponen-komponen atau bagian-bagian yang relevan dari seperangkat data juga merupakan bentuk analisis untuk membuat data-data tersebut mudah diatur. Semua bentuk analisis berusaha menggambarkan pola-pola secara konsisten dalam data sehingga hasilnya dapat dipelajari dan diterjemahkan dengan cara yang singkat dan penuha rti.
  2. Metode Review
  3. Metode Model Dasar


F. Mengevaluasi Implementasi

Perbedaan yang besar dengan evaluasi perancangan adalah keberadaan implementasi system yang ada dalam berbagai bentuk. Hal ini dapat dimulai dari simulasi kemampuan interaktif system, sebagai contoh Wizard of Oz, melalui fungsi prototype dasar sampai dengan system yang telah diimplementasi secara keseluruhan.

1. Metode Empirik : Evaluasi Eksperimen
Satu metode yang sangat kuat dalam mengevaluasi perancangan atau aspek dari perancangan adalah menggunakan eksperimen yang terkontrol. Ini menyediakan kenyataan empiris untuk mendukung klaim umum atau hipotesis.

Setiap eksperimen memiliki dasar yang sama. Evaluator memilih hipotesa untuk diuji, yang dapat ditentukan dengan mengukur beberapa atribut dari perilaku subyek.
Sejumlah kondisi eksperimen ditentukan yang berbeda dalam hal nilai dari variable tetap yang terkontrol. Setiap perubahan dalam pengukuran perilaku diatributkan kekondisi yang berbeda.

2. Perancangan Eksperimen
#Between-Groups (Randomized)
  • Masing-masing subyek diberikan kondisi yang berbeda yakni kondisi eksperimen (variable sudah di manipulasi) dan control, yang identik dengan kondisi eksperimen kecuali untuk manipulasi ini. Control ini memastikan bahwa manipulasi bertanggung jawab untuk setiap perbedaan yang diukur.
  • Keuntungan perancangan ini adalah setiap user menghasilkan satu kondisi
  • Kerugiannya adalah dengan semakin banyak jumlah subyek yang tersedia akan menyebabkan hasilnya akan berkurang dan perbedaan antar setiap individu akan membuat bias hasil. Hal ini dapat diatasi dengan memilih dengan hati-hati subyek yang dipilih dan menjamin setiap kelompok terwakili.
#Within-Groups
  • Setiap user akan menampilkan kondisi yang berbeda
  • Jumlah user yang tersedia lebih sedikit
  • Pengaruh dari subyek lebih sedikit

Pemilihan metode eksperimen bergantung dari sumber yang tersedia, bagaimana transfer pembelajaran terjadi atau dapat dikontrol, dan perwakilan yang bagaimana dari kelompok user dipertimbangkan.
Sekali kita menentukan hipotesa yang akan diuji, variable yang akan dipelajari, subyek yang ada, dan perancangan yang sesuai, kita harus menentukan hasil analisa yang bagaimana yang akan diambil/ disimpan.

3. Pengukuran Statistik
Dua aturan dalama nalisa dengan statistik yakni : melihat data danmenyimpan data. Menyimpan data penting jika kita akan melakukan metode analisis yang berbeda.
Pemilihan analisis statistika bergantung pada tipe data dan pertanyaan yang perlu dijawab. Variabel yang digunakan terbagi dalam :
  • Discrete Variables
Menggunakan jumlah yang terbatas dari suatu nilai atau tingkatan
Contoh: Warna layar monitor yakni : red, green atau blue.
Merupakan suatu independent variable.
  • Continous Variable
Menggunakan jumlah berapapun (batas atas maupun batas bawah)
Contoh :Ketinggianseseorangatauwaktu yang diperlukan untuk menyelesaikan pekerjaan.
Merupakan suatu dependent variable.

G. Memilih Metode Evaluasi
Ada 8 faktor yang membedakan teknik evaluasi yang berbeda yang membantu kita dalam memilih teknik yang sesuai, yaitu :
  • Tingkat siklus
  • Jenis evaluasi
  • Tingkat objektivitas dan subyektivitas
  • Jenis ukuran yang tersedia
  • Informasi yang tersedia
  • Kesiapan dari suatu respon
  • Tingkat gangguan yang tidak secara langsung
  • Sumber yang tersedia
Read more

Friday, October 21, 2016

Matematika Diskrit - Teori Bilangan


Pengertian
  • Teori bilangan (number theory) adalah teori yang mendasar dalam memahami algoritma kriptografi.
  • Bilangan yang dimaksudkan adalah bilangan bulat (integer).

Bilangan Bulat 
  • Bilangan bulat adalah bilangan yang tidak mempunyai pecahan desimal, misalnya 8, 21, 8765, -34, 0
  • Berlawanan dengan bilangan bulat adalah bilangan riil yang mempunyai titik desimal, seperti 8.0, 34.25, 0.02.
Sifat Pembagian pada Bilangan Bulat
  • Misalkan a dan b adalah dua buah bilangan bulat dengan syarat a 0. Kita menyatakan bahwa a habis membagi b (a divides b) jika terdapat bilangan bulat c sedemikian sehingga b = ac.
  • Notasi: a | b jika b = ac, c £ Z dan a 0. (Z = himpunan bilangan bulat)
  • Kadang-kadang pernyataan “a habis membagi b“ ditulis juga  “b kelipatan a”.
Teorema 1 (Teorema Euclidean). Misalkan m dan n adalah dua buah bilangan bulat dengan syarat n > 0. Jika m dibagi dengan n maka terdapat dua buah bilangan bulat unik q (quotient) dan r (remainder), sedemikian sehingga :

m = nq + r   …………………….. (1) dengan 0 r < n.

Pembagi Bersama Terbesar (PBB)
Misalkan a dan b adalah dua buah bilangan bulat tidak nol. Pembagi bersama terbesar (PBB – greatest common divisor atau gcd) dari a dan b adalah bilangan bulat terbesar d sedemikian sehingga d | a dan d | b. Dalam hal ini kita nyatakan bahwa PBB(a, b) = d.

Algoritma Euclidean
  • Algoritma Euclidean adalah algoritma untuk mencari PBB dari dua buah bilangan bulat.
  • Euclid, penemu algoritma Euclidean, adalah seorang matematikawan Yunani yang menuliskan algoritmanya tersebut dalam bukunya yang terkenal, Element.
  • Diberikan dua buah bilangan bulat tak-negatif m dan n (m ³ n). Algoritma Euclidean berikut mencari  pembagi bersama terbesar dari m dan n.
Relatif Prima
Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB(a, b) = 1.


Aritmetika Modulo

  • Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m (dibaca “a modulo m”) memberikan sisa jika a dibagi dengan m.
  • Notasi: a mod m = r sedemikian sehingga a = mq + r, dengan 0 r < m.
  • Bilangan m disebut modulus atau modulo, dan hasil aritmetika modulo m terletak di dalam himpunan {0, 1, 2, …, m – 1}.
Kongruen
  • Misalnya 38 mod 5 = 3 dan 13 mod 5 = 3, maka kita katakan 38 º 13 (mod 5) (baca: 38 kongruen dengan 13 dalam modulo 5).
  • Misalkan a dan b adalah bilangan bulat dan m adalah bilangan > 0, maka a º b (mod m) jika m habis membagi ab.
  • Jika a tidak kongruen dengan b dalam modulus m, maka ditulis a º/ b (mod m) .
Teorema 2. Misalkan m adalah bilangan bulat positif.
1. Jika a kongruen b (mod m) dan c adalah sembarang bilangan bulat maka
(i)  (a + c) kongruen (b + c) (mod m)
(ii) ac kongruen bc (mod m)
(iii) ap kongruen bp (mod m) untuk suatu bilangan bulat tak negatif p.
2. Jika a kongruen b (mod m) dan c kongruen d (mod m), maka
(i)  (a + c) kongruen (b + d) (mod m)
(ii) ac kongruen bd (mod m)

Balikan Modulo (modulo invers)
Jika a dan m relatif prima dan m > 1, maka kita dapat menemukan balikan (invers) dari a modulo m. Balikan dari a modulo m adalah bilangan bulat  (a invers) sedemikian sehingga a (a invers) kongruen 1 (mod m).

Kekongruenan Lanjar
  • Kekongruenan lanjar adalah kongruen yang berbentuk ax º b (mod m) dengan m adalah bilangan bulat positif, a dan b sembarang bilangan bulat,  dan x adalah peubah bilangan bulat.
  • Nilai-nilai x dicari sebagai berikut: ax = b + km yang dapat disusun menjadi x = (b+km)/a dengan k adalah sembarang bilangan bulat. Cobakan untuk k = 0, 1, 2, … dan k = –1, –2, … yang menghasilkan x sebagai bilangan bulat.
TEOREMA (Chinese Remainder Theorem) Misalkan m1, m2, …, mn adalah bilangan bulat positif sedemikian sehingga PBB(mi, mj) = 1 untuk i j. Maka sistem kongruen lanjar x kongruen ak (mod mk) mempunyai sebuah solusi unik modulo m = m1 × m2 × … × mn.

Aritmetika Modulo dan Kriptografi
Aritmetika modulo cocok digunakan untuk kriptografi karena dua alasan:
  1. Oleh karena nilai-nilai aritmetika modulo berada dalam himpunan berhingga (0 sampai modulus m – 1), maka kita tidak perlu khawatir hasil perhitungan berada di luar himpunan.
  2. Karena kita bekerja dengan bilangan bulat, maka kita tidak khawatir kehilangan informasi akibat pembulatan (round off) sebagaimana pada operasi bilangan riil.
Bilangan Prima
  • Bilangan bulat positif p (p > 1) disebut bilangan prima jika pembaginya hanya 1 dan p.
  • Contoh: 23 adalah bilangan prima karena ia hanya habis dibagi oleh 1 dan 23.
  • Karena bilangan prima harus lebih besar dari 1, maka barisan bilangan prima dimulai dari 2, yaitu 2, 3, 5, 7, 11, 13, …. Seluruh bilangan prima adalah bilangan ganjil, kecuali 2 yang merupakan bilangan genap.
  • Bilangan selain prima disebut bilangan komposit (composite). Misalnya 20 adalah bilangan komposit karena 20 dapat dibagi oleh 2, 4, 5, dan 10, selain 1 dan 20 sendiri.
Teorema 3. (The Fundamental Theorem of Arithmetic). Setiap bilangan bulat positif yang lebih besar atau sama dengan 2 dapat dinyatakan sebagai perkalian satu atau lebih bilangan prima.

Teorema 4 (Teorema Fermat). Jika p adalah bilangan prima dan a adalah bilangan bulat  yang tidak habis dibagi dengan p,  yaitu PBB(a, p) = 1, maka ap–1 kongruen 1 (mod p).

Fungsi Euler f
Fungsi Euler f medefinisikan f(n) untuk n >= 1 yang menyatakan jumlah bilangan bulat positif < n yang relatif prima dengan n.

Teorema 5. Jika n = pq adalah bilangan komposit dengan p dan q prima, maka f(n) = f(p) f(q) = (p – 1)(q – 1).

Teorema 6. Jika p bilangan prima dan k > 0, maka f(pk) = pkpk-1 = pk-1(p – 1) .

Read more