Pages

Sunday 14 June 2015

Rekayasa Perangkat Lunak


Ø  Apa tujuan analisis ?
Ø  Apa yang dimodelkan pada tahap analisis ?
Ø  Apa keterkaitan antar model analisis ?
Review Analisis Terstruktur (2)
Ø  Apa tujuan analisis ?
Memodelkan PROBLEM agar lebih mudah dipahami dan siap di-design solusinya
Ø  Apa yang dimodelkan pada tahap analisis ?
Pemodelan fungsional: DFD
Pemodelan data: ERD
Pemodelan behaviour: STD
Ø  Apa keterkaitan antar model analisis ?
Data store (DFD) vs entitas/relasi (ERD)
Process (DFD) vs aksi (STD)
à Harus dipastikan agar konsisten
Review DFD
Ø  Apa yang dimodelkan pada DFD ?
Ø  Sebutkan elemen DFD !
Ø  Apa yang dimodelkan pada DFD ?
Proses dan aliran data antar proses
Proses pada DFD level 1 berkaitan dengan kebutuhan fungsionalitas P/L
Ø  Sebutkan elemen DFD !
-          External Entity
-          Process
-          Data flow
-          Data store
-          Process
External Entity
o   Bagaimana mengidentifikasi external entity ?
o   Bagaimana memberi nama external entity ?
o   Kesalahan umum terkait external entity:
Procces
o   Bagaimana mengidentifikasi process ?
o   Bagaimana memberi nama process ?
o   Bagaimana menurunkan process ke level berikutnya ?
o   Sampai kapan process perlu diturunkan ?
o   Kesalahan umum terkait process:
§  Penamaan process
§  Process yang tidak punya data masukan Ã  “magic”
§  Process yang tidak punya data keluaran Ã  “black hole”
Aliran data
o   Bagaimana mengidentifikasi aliran data ?
o   Bagaimana menamakan data ?
o   Apa itu kamus data ?
o   Bagaimana membuat kamus data ?
o   Kesalahan umum terkait aliran data:
§  Penamaan data terlalu generik, mis.: DATA, LAPORAN
§  “Tramp data”; data keluar masuk proses tetapi tidak berubah nama
§  Data mengalir langsung dari external entity ke data store
§  Data mengalir dari data store ke data store
§  Ada aliran data dari external entity yang satu ke external entity lainnya
§  Aliran data antar level TIDAK BALANCE Ã  gunakan tools
Data Store
o   Apa yang dimodelkan data store ?
o   Bagaimana menamakan data store ?
o   Kesalahan umum terkait data store:
§  Data store terlalu generik, mis.: DATA, LAPORAN, BASISDATA
§  Data store terlalu detil, mis.: UMUR, ALAMAT
§  Data store tidak pernah diisi, hanya dibaca saja
§  Data store tidak pernah dibaca, hanya diisi saja
Contoh Diagram Konteks


Contoh DFD Level 1


ERD
Ø  Apa yang dimodelkan pada ERD ?
o   Data yang harus dikelola perangkat lunak dan relasinya
Ø  Apa elemen ERD ?
o   Entity/Entitas
o   Relationship/Relasi
o   Atribut
o   Kardinalitas
o   Modalitas
Entity/Entitas
Ø  Apa yang dimodelkan oleh entitas ?
Ø  Bagaimana menamakan entitas ?
Ø  Kesalahan umum terkait entitas:
o   Entitas hanya akan mempunyai 1 data, mis.: PERUSAHAAN, padahal data perusahaan hanya ada 1
o   Entitas terlalu detil, mis.: UMUR, ALAMAT
§  Entitas vs atribut
o   Penamaan entitas tidak jelas, mis.: BASISDATA
Relationship/Relasi
Ø  Apa yang dimodelkan oleh relasi ?
Ø  Bagaimana menamakan relasi ?
Ø  Kesalahan umum terkait relasi:
o   Penamaan kurang pas
o   Belum tergambar dengan lengkap
Atribut
Ø  Apa yang dimodelkan oleh atribut ?
Ø  Bagaimana menamakan atribut ?
Ø  Kesalahan umum terkait atribut:
o   Penamaan kurang pas
o   Atribut tidak menggambarkan properti entitas atau relasi
o   Tidak teridentifikasi dengan lengkap
Kardinalitas
Ø  Apa yang dimodelkan oleh kardinalitas ?
Ø  Bagaimana menentukan kardinalitas ?
Modalitas
Ø  Apa yang dimodelkan oleh modalitas ?
Ø  Bagaimana menentukan modalitas ?
Contoh ERD


Contoh ERD (2)


STD
Ø  Apa yang dimodelkan pada STD ?
o   Aspek dinamis perangkat lunak
Ø  Apa elemen STD ?
o   State
o   Event
o   Action
State
Ø  Bagaimana mengidentifikasi state ?
Ø  Bagaimana menamakan state ?
Event
Ø  Bagaimana mengidentifikasi event ?
Ø  Bagaimana menamakan event ?
Action
Ø  Bagaimana mengidentifikasi action ?
Ø  Bagaimana menamakan action ?
Contoh STD


Saturday 13 June 2015

Pengertian Machine Learning

SEJARAH
Pada tahun 1951, John McCarthy yang baru saja mendapatkan gelar PhD meyakinkan Minsky, Claude Shannon, dan Nathaniel Rochester untuk membantunya membawa peneliti Amerika Serikat yang memiliki ketertarikan pada teori automata, jaring syaraf, dan studi mengenai intelijen menjadi satu.  Mereka mengorganisir sebuah lokakarya di Dartmouth College di Hanover, New Hampshire pada tahun 1956.  Pada saat itulah dianggap menjadi tahun lahirnya kecerdasan buatan.  Sejak awal, para peneliti kecerdasan buatan tidak segan membuat prediksi mengenai keberhasilan dari kecerdasan buatan ini. Pada awalnya kecerdasan buatan berkembang cukup pesat, hal ini disebabkan karena ekspektasi yang terlalu tinggi dari para peneliti di bidang ini. Hingga pada tahun 1974, bidang kecerdasan buatan mulai kurang diminati. Sampai pada tahun 1980, ketertarikan terhadap kecerdasan buatan sebagai bidang penelitian mulai bangkit kembali. Salah satu yang mendukung hal ini adalah hasil kerja Yarowsky (1995), ia melakukan percobaan menggunakan pembelajaran mesin dan mendapatkan hasil diatas 96% untuk ke akuratan dari percobaannya. Setelah Yarowsky banyak orang-orang yang melakukan percobaan menggunakan pembelajaran mesin dan mendapatkan hasil yang memuaskan, dari sinilah pembelajaran mesin dapat semakin berkembang hingga hari ini .


Data mining adalah sebuah proses untuk menemukan pengetahuan, ketertarikan, dan pola baru dalam bentuk model yang deskriptif, dapat dimengerti, dan prediktif dari data dalam skala besar . Dengan kata lain data mining merupakan ekstraksi atau penggalian pengetahuan yang diinginkan dari data dalam jumlah yang sangat besar .
Dari definisi diatas dapat disimpulkan bahwa pada pembelajaran mesin berkaitan dengan studi, desain dan pengembangan dari suatu algoritma yang dapat memampukan sebuah komputer dapat belajar tanpa harus diprogram secara eksplisit. Sedangkan pada data mining dilakukan proses yang dimulai dari data yang tidak terstruktur lalu diekstrak agar mendapatkan suatu pengetahuan ataupun sebuah pola yang belum diketahui. Selama proses data mining itulah algoritma dari pembelajaran mesin digunakan.
TIPE ALGORITMA
Algoritma dalam pembelajaran mesin dapat dikelompokkan berdasarkan masukan dan keluaran yang diharapkan dari algoritma.
·         Pembelajaran terarah (supervised learning) membuat fungsi yang memetakan masukan ke keluaran yang dikehendaki. Misalnya pengelompokan (klasifikasi).
Merupakan algoritma yang belajar berdasarkan sekumpulan contoh pasangan masukan-keluaran yang diinginkan dalam jumlah yang cukup besar. Algoritma ini mengamati contoh-contoh tersebut dan kemudian menghasilkan sebuah model yang mampu memetakan masukan yang baru menjadi keluaran yang tepat .
Salah satu contoh yang paling sederhana adalah terdapat sekumpulan contoh masukan berupa umur seseorang dan contoh keluaran yang berupa tinggi badan orang tersebut. Algoritma pembelajaran melalui contoh mengamati contoh-contoh tersebut dan kemudian mempelajari sebuah fungsi yang pada akhirnya dapat “memperkirakan” tinggi badan seseorang berdasarkan masukan umur orang tersebut.
·         Pembelajaran tak terarah (unsupervised learning) memodelkan himpunan masukan, seperti penggolongan (clustering).
Algoritma ini mempunyai tujuan untuk mempelajari dan mencari pola-pola menarik pada masukan yang diberikan . Meskipun tidak disediakan keluaran yang tepat secara eksplisit. Salah satu algoritma unsupervised learning yang paling umum digunakan adalah clustering/pengelompokan .
Contoh unsupervised learning dalam dunia nyata misalnya  seorang supir taksi yang secara perlahan-lahan menciptakan konsep “macet” dan “tidak macet” tanpa pernah diberikan contoh oleh siapapun .
·         Pembelajaran semi terarah (semi-supervised learning): Tipe ini menggabungkan antara Supervised dan Unsupervised untuk menghasilkan suatu fungsi.
Algoritma pembelajaran semi terarah menggabungkan kedua tipe algoritma di atas, di mana diberikan contoh masukan-keluaran yang tepat dalam jumlah sedikit dan sekumpulan masukan yang keluarannya belum diketahui. Algoritma ini harus membuat sebuah rangkaian kesatuan antara dua tipe algoritma di atas untuk dapat menutupi kelemahan pada masing-masing algoritma.
Misalnya sebuah sistem yang dapat menebak umur seseorang berdasarkan foto orang tersebut.  Sistem tersebut membutuhkan beberapa contoh, misalnya yang didapatkan dengan mengambil foto seseorang dan menanyakan umurnya (pembelajaran terarah). Akan tetapi, pada kenyataannya beberapa orang sering kali berbohong tentang umur mereka sehingga menimbulkan noise pada data. Oleh karena itu, digunakan juga pembelajaran tak terarah agar dapat saling menutupi kelemahan masing-masing, yaitu noise pada data dan ketiadaan contoh masukan-keluaran .
·         Reinforcement learning: Tipe ini mengajarkan bagaimana cara bertindak untuk menghadapi suatu masalah, yang suatu tindakan itu mempunyai dampak.
Adalah sebuah algoritma pembelajaran yang diterapkan pada agen cerdas agar ia dapat menyesuaikan dengan kondisi dilingkungannya, hal ini dicapai dengan cara memaksimalkan nilai dari hadiah ‘reward’ yang dapat dicapai. Suatu hadiah didefinisikan sebuah tanggapan balik ‘feedback’ dari tindakan agen bahwa sesuatu baik terjadi.Sebagai contoh, sangatlah sulit untuk memrogram sebuah agen untuk menerbangkan sebuah helikopter, tetapi dengan memberikan beberapa nilai negatif untuk menabrak, bergoyang-goyang, serta melenceng dari jalur tujuan perlahan-lahan agen tersebut dapat belajar menerbangkan helikopter dengan lebih baik .
·         Pembelajaran berkembang (developmental learning algorithm) adalah sebuah bidang yang bertujuan untuk mempelajari mekanisme pengembangan, arsiterktur, dan batasan yang memungkinkan dibuatnya metode pembelajaran yang berlaku seumur hidup, serta bersifat terbuka terhadap kemampuan dan pengetahuan untuk dipasangkan kepada mesin .
·         Transduction: Tipe ini hampir mirip dengan Supervised Learning, tapi tidak secara jelas untuk membangun suatu fungsi melainkan mencoba memprediksi output baru yang berdasarkan dari input baru, masukan pelatihan input dan output
·         Learning to learn: Tipe ini menggunakan algoritma untuk mempelajari yang sebelumnya.
CONTOH Pendekatan :
Decision Tree / Pohon keputusan
Pembelajaran pohon keputusan bisa dijadikan sebagai model prediktif yang dapat memetakan pengamatan sebuah pilihan ke kesimpulan target dari pilihan tersebut.  Pohon keputusan memiliki pendekatan pemodelan prediksi menggunakan statistik, data mining, dan pembelajaran mesin.  Pada pohon keputusan ini node-node daunnya akan merepresentasikan label kelas, sedangkan cabangnya merepresentasikan kaitan dari fitur-fitur yang dapat menuntun menuju label kelas yang ada. Pembelajaran pohon keputusan merupakan representasi sederhana untuk contoh pengklasifikasian.  Pembelajaran pohon keputusan merupakan salah satu teknik dari supervised learning. Terdapat banyak algoritma pohon keputusan, diantaranya adalah id3 (iterative dichotomiser 3), c4.5, cart (classification and regression tree), CHAID (CHi-squared Automatic Interaction Detector), MARS, dan lain-lain.
Sebagai contoh pohon keputusan dapat digunakan untuk penyaringan email.  Dengan memasukan fitur-fitur dari email yang telah ditentukan menjadi cabangnya, dan nantinya cabang-cabang tersebut memiliki daun yang dapat menentukan email tersebut masuk ke label yang mana yang telah tersedia.
Artificial Neural Network / Jaringan Syaraf Tiruan (JST)
JST adalah sebuah algoritma yang didesain untuk memodelkan cara kerja jaringan saraf dalam melakukan suatu pekerjaan atau fungsi tertentu. Jaringan ini biasanya diimplementasikan dengan menggunakan komponen elektronik atau disimulasikan dalam sebuah perangkat lunak didalam komputer digital .
Clustering / Pengelompokan
Pengelompokan merupakan salah satu pembelajaran yang tergolong dalam pembelajaran yang tidak memerlukan contoh (unsupervised learning). Definisi sederhana dari pengelompokan adalah sebuah proses untuk mengorganisasikan objek menjadi beberapa kelompok yang memiliki anggota yang mirip dalam hal tertentu . Algoritma pengelompokan menerima sekumpulan masukan dan kemudian membuat sebuah pembagian (kelompok-kelompok) dari masukan tersebut. Dua masukan yang berada pada kelompok yang sama seharusnya memiliki banyak kesamaan dibandingkan dengan dua masukan yang berada pada kelompok yang berbeda .
Sebagai contoh, para astronom harus melakukan pengelompokan untuk menentukan tipe dari bintang-bintang berdasarkan data spektrum dari ratusan ribu bintang sehingga pada akhirnya mendapatkan istilah seperti “red giant” dan “white dwarf” .
Bayesian Network / Jaringan Bayes
Bayesian network diciptakan karena adanya penelitian 'Alasan Probabilistik dalam Kecerdasan Sistem oleh Judea Pearl (1988) yang menuntun pada diterimanya probabilitas dan teori keputusan dalam kecerdasan buatan.  Bayesian Network secara formal diciptakan untuk memungkinkan representasi yang efisien, dan penalaran yang teliti dengan, pengetahuan pasti.  Bayesian network memungkinkan untuk dapat belajar dari pengalaman serta menggabungkan kecerdasan buatan yang terbaik dan jaringan syaraf.  Bayesian network merupakan keluarga dari model graf probabilistik.  Struktur graf ini digunakan untuk merepresentasikan pengetahuan dari suatu domain yang belum pasti. Nantinya setiapnode yang ada pada graf merepresentasikan variabel acak, dimana sisi-sisi antar node tersebut merepresentasikan probabilitas ketergantungan antar variabel yang acak tersebut.
Inductive logic programming / Pemrograman logika induktif
Pemrograman logika induksi merupakan salah satu pendekatan pembelajaran mesin yang mempelajari konstruksi induktif dalam bentuk first-order berdasarkan contoh dan latar belakang pengetahuan yang ada. Pendekatan ini menekankan pada representasi dari hipotesis sebagai program logika.
Contohnya pada pembelajaran relasi keluarga dari data yang diberikan. Proses klasifikasi dilakukan dengan memproses latar belakang pengetahuan, hipotesis, dan deskripsi yang diberikan. Deskripsi akan terdiri dari istilah seperti Father(Philip, Charles)Mother(Mum, Margaret), dan lainnya. Pada awalnya, belum latar belakang pengetahuan yang dapat digunakan. Sehingga memunculkan beberapa hipotesis seperti Grandparent(x,y). Seiring berjalannya waktu, latar belakang pengetahuan akan terus meningkat dan menemukan bahwa Parent(x,y)  [Mother(x,y) V Father(x,y)]. Dengan demikian, definisi dari Grandparent dapat dikurangi menjadi Grandparent(x,y)  [z Parent(x,z)  Parent(z,y)] .
Manfaat dan contoh
Pembelajaran mesin menjaganya agar tetap sederhana, sebuah algoritma dikembangkan untuk mencatat perubahan dalam data dan berevolusi dalam desain itu untuk mengakomodasi temuan baru. Seperti diterapkan untuk analisis prediktif, fitur ini memiliki dampak luas mulai pada kegiatan yang biasanya dilakukan untuk mengembangkan, menguji, dan memperbaiki algoritma untuk tujuan tertentu. Aplikasi untuk pembelajaran mesin termasuk:
·         Machine perception
·         Computer vision, including object recognition
·         Natural language processing
·         Syntactic pattern recognition
·         Machine learning
·         Medical diagnosis
·         Bioinformatics
·         Brain-machine interfaces
·         Cheminformatics
·         Detecting credit card fraud
·         Stock market analysis
·         Classifying DNA sequences
·         Sequence mining
·         Speech and handwriting recognition
·         Games
·         Software engineering
·         Adaptive websites
·         Robot locomotion
·         Computational advertising
·         Computational finance
·         Structural health monitoring
·         Sentiment analysis (or opinion mining)
·         Affective computing
·         Menerima Informasi
·         Recommender systems
Meskipun Machine Learning tidak dapat secara efektif memprediksi jengkel pengguna, kita masih percaya bahwa masih banyak yang bisa dilakukan untuk mencapai hasil yang lebih baik pada proyek ini. Pertama-tama, kumpulan data kami adalah kecil untuk metode pembelajaran mesin, kami ingin mengumpulkan lebih banyak data untuk melihat apakah meningkatkan hasil kami sama sekali. Hal lain yang kita ingin mencoba adalah mengubah permainan yang memainkan pengguna . Karena kita menggunakan jenis permainan penembak, banyak " menumbuk tombol " adalah terlibat. Sesuatu yang lebih seperti permainan balap dapat bekerja lebih baik untuk mendeteksi gangguan dengan sensor gaya, karena ada lebih banyak tombol memegang terlibat daripada dengan game jenis shooter. Sebuah permainan balap juga dapat memperkenalkan lebih terkait game stres dari sebuah permainan yang melibatkan menembak.