SISTEM PENDUKUNG KEPUTUSAN

PEMODELAN dan Model Manajemen
Issue Pokok pemodelan
• Identifikasi Masalah
• Analisa Lingkungan
• Identifikasi Variabel
• Peramalan
• Penggunaan model berganda
• Katagori Model atau seleksi (Tipe dari Model)
• Manajemen Model


Tipe dari Model
Katagori Proces & Tujuan Teknik Representatif
Optimisasi dari masalah dengan beberapa alternatif Cari solusi terbaik dari sejumlah kecil alternatif Tabel keputusan, Pohon keputusan
Optimisasi melalui algorithma Cari solusi terbaik dari sejumlah besar alternatif bahkan dari alternatif tak terhingga dengan menggunakan proses perbaikan langkah-demi langkah Linier dan dan model programming matematika lainnya, model jaring kerja
Optimisasi melalui formula analitik Cari solusi terbaik dalam satu langkah dengan menggunakan formula Bebrapa model inventori
Simulasi cari solusi "yang cukup baik" atau terbaik diantara semua alternatif yang diperiksa dengan percobaan Bebrapa tipe model simulasi
Heuristics Cari solusi yang"cukup baik" menggunakan aturan Programming heuristik, sistem pakar
bebrapa model deskritif laninnya Cari "what-if" dengan menggunakan formula model finansial, antrean
Model peramalan Ramalan untuk waktu yang akan datang untuk skenario yang ditentukan Anlisa Markov, model peramalan

Model Statik dan Dinamik
• Analisa Statik
– Pengamantan sesaat dari suatu situasi
• Analisa Dinamik
– Model Dinamik Evaluasi skenario yang berubah setiap waktu
– Tergantung pada waktu
– Kecendrungan dan pola sepanjang waktu
– Perluasan model static

Perlakuan kepastian, ketidakpastian, dan Risko
• Model dengan kepastian

• Model dengan ketidakpastian

• Model dengan Risko

Analisa Keputusan dari beberapa alternatif
(Tabel keputusan dan Pohon)
Situasi Tujuan Tunggal

• Tabel Keputusan

• Pohon Keputusan

Tabel Keputusan
• Contoh Investasi

• Sat Tujuan: maximalkan penghasilan setelah satu tahun

• Pendapatan tergantyung dari status ekonomi
(status alam)
– Pertumbuhan yang matang/baik
– Keadaan tidak bergerak
– Inflasi

Situasi yang mungkin
1. Bila pertumbuhan dalam eknomi hutang penghasilan mencapai 12%; stocks 15%; waktu deposito 6.5%

2. Bila keadaan tetap, penghasilan hutang 6%; stocks 3%; waktu deposito 6.5%

3. Bila inflasi, penghasilan hutang 3%; stocks hilang 2%; waktu penghasilan deposito 6.5%

Tampilan masalah sebagai dua orang bermain (Two-Person Game)


• Variabel keputusan (alternatif)
• Uncontrollable Variabel tak terkendali (status dari ekonomi)
• Variabel penghasilan (penghasilan yang diproyeksikan)

Perlakuan ketidakpastian
• Pendekatan Optimistik approach
– Dipilih masing-masing keluaran terbaik dari masing-masing alternatif dan yang terbaik dari semua yang terbaik

• Pendekatan Pessimistik
– Dipilih keluaran terjelek dari semua alternantif dan selanjutnya pilih salah satu yang terbaik
Perlakuan terhadap Resiko
• Menggunakan peluang yang diketahui (Table 5.3)
• Pilih alternatif dengan nilai harapan terbesar

• Analisa Resiko: hitung nilai harapan dengan mengalikan dengan mengalikan keluaran yang sesuai dan kemudian dijumlahkan.

• Bisa saja bahaya

Tabel 5.3: Keputusan dengan resiko dan solusinya
Solid Stagnation Inflation Expected
Growth Value

Alternatives .5 .3 .2

Bonds 12% 6% 3% 8.4% *

Stocks 15% 3% -2% 8.0%

CDs 6.5% 6.5% 6.5% 6.5%

• Pohon keputusan
• Cara lain dari perlakuan resiko
– Simulasi
– Mencari faktor kepastian
– Fuzzy logic
• Tujuan ganda
• Penghasilan, keamanan, dan liquiditas (Table 5.4)

Tabel 5.4: Tujuan Ganda
Alternatives Yield Safety Liquidity

Bonds 8.4% High High

Stocks 8.0% Low High

CDs 6.5% Very High High

Optimisasi via linear programming
• Kasus : Mencari komposisi campuran untuk “sungold Paint”
• Kriteria
– Brilliance rating ³ 300 degrees
– Hue level ³ 250 degrees
• Brilliance dan hue ditentukan oleh a & b
• satu ounce dari a & b memberikan satu degree dari brilliance in one drum dari cat
• Hue dikendalikan dengan jumlah dari a
• satu ounce dari a memberikan 3 degrees hue dalam satu drum dari cat
• a = 45 cents/ounce & b = 12 cents/ounce
• Objektif: minimalkan biaya
• Tujuan: mencari jumlah dari a & b dari setiap drum cat ?
• Formulasi
– Decision variables:
• X1 = quantity of a
• X2 = quantity of b
– Solusi
• Cost = 45 X1 + 12 X2
– Brightness specification
• 1 X1 + 1 X2 ³ 300
– Hue specification
• 3 X1 + 0 X2 ³ 250
– Cost = 45 X1 + 12 X2
– Hasil
• X1 = 83,333 & X2 = 216,667
• Total Cost = $ 63,50

Formulasi Umum
• Variabel Keputusan : X1 & X2
• Fungsi Tujuan
– Tunjukkan hubungan antara variabel
– Tujuan Tunggal
– Tujuan ganda
• Pilih tujuan utama
• Transformasikan tujuan yang lain kendala
Optimisasi
• Maximalkan/minimalkan harga dari fungsi tujuan
• Koefisien dari fungsi tujuan
• Biaya = 45X1 + 12X2
– (45 & 12 = koefisien, X1 & X2 = variabel keputusan)
• kendala:
– LP à pemecahan masalah optimisasi dengan kendala
• Koefisien Input/output:
– Koefisien dari kendala
• Kapasitas/ketersediaan
– Nayatakan sebagai batas atas/batas bawah
– Kendala linier:
• 1 X1 + 1 X2 ³ 300
• 3 X1 + 0 X2 ³ 250
• (300 & 250 = kapasitas/kebutuhan, 1 & 3 & 0 = koefisen input/output


Read More......

Sistem Pendukung Keputusan (Decision Support System)

Pengambilan Keputusan
Pengantar
• Pembuatan Keputusan merupakan bagian kunci kegiatan:
– Eksekutif
– Manajer
– Karyawan
– Setiap manusia dalam kehidupannya
• George P. Huber
– Choice Making vs Problem Solving
Tipe-tipe keputusan
• Keputusan terprogram (struktur)
– Dibuat menurut kebiasaan, aturan, prosedur; tertulis maupun tidak
– Bersifat rutin, berulang-ulang
• Keputusan tak terprogram (tidak terstruktur)
– Mengenai masalah khusus, khas, tidak biasa
– Kebijakan yang ada belum menjawab
– Mis. Pengalokasian sumber daya


Teknik Keputusan Terprogram
• Tradisional
– Kebiasaan
– Mengikuti prosedur baku
– Saluran informasi disusun dengan baik
• Modern
– Menggunakan teknik “operation research”:
• Formula matematika
• Simulasi komputer
– Berdasarkan pengolahan data berbantu komputer

Teknik Keputusan Tak Terprogram
• Tradisional
– Kebijakan intuisi berdasarkan kreativitas
– Coba-coba
– Seleksi dan latihan para pelaksana
• Modern
– Teknik pemecahan masalah yang diterapkan pada :
• Latihan pembuatan keputusan
• Penyusunan program komputer empiris
Proses pembuatan keputusan
• Pemahaman dan perumusan masalah
– Identifikasi gejala yang muncul
– Cari penyebabnya/masalah utama
– Cari bagian-bagian yang perlu dipecahkan
– Pergunakan analisis sebab-akibat
• Pengumpulan dan analisis data yang relevan
– Menentukan data yang relevan
– Mengumpulkan data
– Mencari pola dari data yang terkumpul
• Pengembangan alternatif-alternatif
– Berdasarkan data, disusun beberapa alternatif
– Untuk setiap alternatif susun pro & kontra, konsekuensi, resiko
– Semua alternatif harus feasible
Scope of Decision
• Perencanaan & Pengendalian Operasional :
– Dipusatkan pada efektifitas dan efisiensi pelaksanaan tugas-tugas yg spesifik.
– Berpengaruh pada aktivitas yg sedang berlangsung
– Contoh: Apa yang sebaiknya diproduksi saat ini?
• Manajemen Pengendalian dan Perencanaan Taktis
– Focus on effective utilization of resources
– Dipusatkan pada pemanfaatan sumber daya efektif
– more longer range planning horizon
– Cakupan Perencanaan cakupan lebih panjang
– Contoh: Apa yang sebaiknya diproduksi tahun depan?
• Perencanaan Strategis
– Kebijakan Dan Gol jangka panjang untuk alokasi sumber daya
– Contoh: Apa produksi baru yg harus ditawarkan?


Information Characteristics









Proses pembuatan keputusan (2)
• Evaluasi Alternatif-alternatif
– Nilai efektivitas dari setiap alternatif, tolok ukur
• Realistik bila dihubungkan dengan tujuan & sumber daya organisasi
• Seberapa jauh memecahkan masalah
• Pemilihan alternatif terbaik
– Berdasarkan alternatif, alternatif terbaik dipilih atau pilih kompromi dari beberapa alternatif
• Implementasi keputusan
– Susun rencana untuk menerapkan keputusan
– Disiapkan mekanisme laporan periodik
– Bila perlu bangun sistem peringatan dini
• Evaluasi hasil keputusan
Pembuatan keputusan secara kelompok : Keunggulan
• Adanya pengetahuan yang lebih luas
• Pencarian alternatif keputusan lebih luas
• Adanya kerangka pandangan yang lebar
• Resiko keputusan ditanggung kelompok
• Karena keputusan kelompok, setiap individu termotivasi untuk melaksanakan
• Dapat terwujudnya kreativitas yang lebih luas, karena adanya berbagai pandangan
Pembuatan keputusan secara kelompok : kelemahan
• Lempar tanggung jawab mudah terjadi
• Memakan waktu dan biaya lebih
• Efisiensi pengambilan keputusan menurun
• Keputusan kelompok dapat merupakan kompromi atau bukan sepenuhnya keputusan kelompok
• Bila ada anggota yang dominan, keputusan bukan mencerminkan keinginan kelompok
Alat bantu Pengambilan keputusan
• Decision Tree
• Metode operation research
– Linear programming, queuing theory
– Network analysis (ie. CPM)
• Bantuan komputer
– Information System, Expert System, DSS, EIS
Decision Tree













Linear Programming
X = jumlah motor yg diproduksi
Y = jumlah mobil yg diproduksi

Profit = 800X + 1500Y
Batasan Biaya produksi:
1000X + 2000Y <= 200.000 Batasan jumlah motor : X >= 50
Berapa X & Y agar Profit maksimum ?

Pengambilan Keputusan Managerial
• Manajemen adalah proses dalam mengatur pemakaian sumber daya yang ada (man, money, material, time, space, dsb) untuk mendapatkan keluaran yang sesuai dengan tujuan organisasi
• Ratio dari masukan dan keluaran menunjukkan produktivitas atau tingkat kesuksesan dari pelaku manajemen – manajer
• Tingkat produktivitas manajer tergantung dari kemampuan manajer mengeksekusi fungsi manajemen, yaitu planning, organizing, directing dan controlling

Pengambilan Keputusan (Dulu)
• Kemahiran yg didapat dari pengalaman yang bertambah
• Banyak aliran/gaya yang bisa digunakan untuk memecahkan masalah bisnis yang sama dengan sukses
• Perlu kreativitas, intuisi, pengalaman, kebijaksanaan – trial & error
• Tidak memakai metode kuantitatif yang sistematis berdasarkan pendekatan ilmiah


Pengambilan keputusan (sekarang)
• Lingkungan manajemen:
– Berubah dengan cepat menjadi makin kompleks dan besar
• Faktor-faktor yang mempengaruhi suatu keputusan makin banyak
• Sulit bergantung pada cara lama (trial & error, dsb)
• Manajer perlu bantuan teknologi komputer

Faktor-faktor yang mempengaruhi pengambilan keputusan
Faktor Perubahan Akibat
Teknologi Informasi dan Komputer Meningkat Banyak Alternatif yang harus dipilih
Kompleksitas Struktur Kompetisi Meningkat Biaya bila membuat kesalahan meningkat
Pasar Internasional Meningkat Ketidakpastian di masa yang akan datang
Kestabilan Politik Menurun
Konsumerisme Meningkat
Kebijaksanaan Pemerintah Meningkat

Pengambilan Keputusan Manajer
• Aplikasi komputer bergeser dari kegiatan proses transaksi dan monitoring kepada aplikasi analisis solusi permasalahan (problem analysis solution)
• Sistem informasi melayani manajer dalam kegiatan yang sangat penting – pengambilan keputusan (89-keatas, 80 % eksekutif menganggap komputer memegang peran penting)
• Pengembangan ditingkatkan kepada efektivitas pengambilan keputusan manajer, terutama dalam pekerjaan yang kompleks.
Tipe Keputusan
• Structured
– Problem yg rutin, berulang dan memiliki pemecahan yang standar berdasarkan analisa kuantitatif
• Unstructured
– Problem yang masih kabur dan cukup kompleks yang tidak ada solusi langsung bisa dipakai
• Semi structured
– Sebagian structured dan sebagian unstructured
• Unstuctured & Semi Structured à perlu SPK untuk meningkatkan kualitas informasi, memberi beberapa alternatif solusi.
Hubungan keputusan & Tipe Kontrol Manajemen


Phase Pengambilan Keputusan (Simon)
• Intelligence
– Pencarian kondisi yang membutuhkan keputusan (cari informasi, identifikasi objectives)
• Design
– Mencari, membangun dan menganalisis kemungkinan solusi (manipulasi informasi, cari alternatif, beri bobot resiko/benefit pada alternatif)
• Choice
– Memilih satu solusi untuk diimplementasikan (pilih yg paling “baik”, statistik alternatif, jelaskan, terangkan)
Management Science
• Memecahkan masalah terstruktur dan semi terstruktur
• Memakai analisa kuantitatif
• Terdiri dari beberapa langkah
– Mendefinisikan masalah
– Mengklasifikasikan masalah dalam kategori standard
– Membentuk model matematika dari problem
– Menentukan solusi dari model
– Memilih dan merekomendasikan model
Management Support System (MSS)
• Menjadi payung dari keluarga teknologi berbantuan komputer yg digunakan untuk membantu manajemen organisasi
• Macamnya:
– Transaction Support System (TPS) -- 50an
– Management Information System (MIS) – 60an
– Office Automation System (OAS) – 70an
– Decision Support Systems (DSS) & GDSS – 80an
– Expert Systems (ES) – 90an
– Executive Information Systems (EIS) – 90an
– Artificial Neural Networks (ANN) – 91

MSS
• TPS : melakukan pengolahan data
• MIS : menyediakan informasi yang diperlukan untuk kepentingan bisnis organisasi
• DSS: interactive-computer based system untuk membantu pengambil keputusan memanfaatkan data dan model untuk memecahkan masalah semi-struktur & tidak terstruktur
• GSS : DSS untuk pengambilan keputusan dalam kelompok
• ES: menggantikan manusia dalam memberi saran
• EIS : memberi informasi yg mudah dianalisa dan dilihat pada segala waktu untuk pimpinan
• ANN : memberi informasi tidak semata-mata berdasarkan data, model, pengetahuan tapi juga dari proses belajar dari pengalaman dan proses mengenali pola-pola yg ada (pattern recognizing)







Hubungan MIS dan DSS

DSS vs MIS
• DSS
– Masalah yang ditugaskan
– Menyediakan reprensentasi valid untuk dunia nyata
– Keputusan disediakan dalam waktu singkat
– Evolusi searah dengan pembelajaran pengambil keputusan tentang masalah
– Bisa dikembangkan oleh bukan EDP profesional
• MIS
– Ringkasan terstruktur
– Model yang dibuat bisa jadi sudah usang
– Model tak tersedia à waktu pengembangan lama
– Aplikasi dikembangkan menggunakan spesifikasi yang diformulasikan selanjutnya
– Oleh EDP profesional

Mengapa Kita mengambil keputusan?
• Mengenai apa, dimana, kapan ?
• Kompleksitas suatu keputusan


• Masalah dalam pengambilan keputusan
– Informasi tidak cukup, terlampau banyak, tidak akurat, waktu terlalu sedikit, tidak mampu mendefinisikan masalah, tidak mampu menganalisis masalah

Mengapa membangun DSS ?
• Mendapatkan Keuntungan DSS
– Meningkatkan kualitas keputusan
– Meningkatkan produktivitas
– Mengurangi waktu dan biaya
– Meningkatkan kepuasan konsumen dan karyawan
• Ketidakstabilan ekonomi
• Kesulitan dalam melacak berbagai tujuan bisnis
• Kompetisi yang meningkat
• E-commerce
• Sistem yang ada tidak mensupport Decision making
• Butuh informasi lebih akurat
• Departemen IS terlalu sibuk
• Dsb

Pemodelan dan Analisa
• Komponen pokok DSS
• Dasar model dan Manajemen model
• Perhatian: topik sulit yang akan datang
– Terbiasa dengan ide pokok
– Dasar konsep dan definisi
– Tool dan diagram pengaruh
– Model secara langsung di spreadsheet
• Struktur dari beberapa model yang sukses dan metodologi:
– Analisa keputusan
– Pohon keputusan
– Optimisasi
– Program heuristik
– Simulasi
• Perkembangan baru dalam tool pemodelan / teknik
• Isu penting di dalam dasar model manajemen
Topik Pemodelan dan Analisa
• Pemodelan untuk MSS
• Model statik dan dinamik
• Keputusan dengan: kepastian, ketidak pastian dan resiko
• Diagram pengaruh
• Model MSS di Spreadsheet
• Analisa keputusan dari beberapa alternatif(tabel keputusan dan pohon)
• Optimisasi dengan menggunakan program matematik
• Program heuristik
• Simulasi
• Model multidimensional –OLAP
• Model interaktif visual dan simulasi interaktif visual
• Paket perangkat lunak kuantitatif OLAP
• Dasar model manajemen

Model untuk MSS
• Elemen kunci dalam kebanyakan DSS
• Hal yang perlu di dalam dasar model DSS
• Bisa mengarah pengurangan ongkos yang sangat besar/ menaikkan penghasilan
Contoh yang baik dari model MSS
• Model simulasi pada sistem rail DuPont (opening vignette)
• Model restruktur dari optimisasi Supply Chain dari Procter & Ga.mble0
• Pemilihan sebuah supplier pada Scott Homes dengan AHP
• Optimisasi IMERYS dalam Model produksi lumpur
Pokok dalam isu pemodelan
• Identifikasi masalah
• Analisa lingkungan
• Identifikasi variabel
• Peramalan
• Macam model yang digunakan
• Katagori model atau seleksi
• Model manajemen
• Model berdasarkan pengetahuan
Diagram pengaruh
• Representasi dengan grafik dari sebuah model
• Model dari model
• Komunikasi visual
• Beberapa paket dibuat dan memecahkan model matematika
• Framework untuk menyatakan relasi model MSS:
– Segiempat = sebuah variabel keputusan
– Lingkaran = variabel tak terkendali atau variabel antara
– Oval = variabel hasil (hasil antara atau hasil akhir)
– Variabel terhubungkan dengan panah
Model MSS di spreadsheet
• Spreadsheet: alat modeling yang paling populer bagi end-user.
• Fungsi-fungsi yang paling bermanfaat
• Fungsi-fungsi tambahan dan pemecahan permasalahan
• Pneting untuk analisa, perencanaan, pemodelan
• Pemrgraman macro.
• Apa – bila menganalisa
• Mencari tujuan
• Manajemen basisdata sederhana
• Bukutext terpadu
• Microsoft Excel
• Lotus 1-2-3
• Sebuah model statik dalam spreadsheet excel dari sebuah perhitungan pinjaman dari bayaran bulanan (Figure 5.3)
• Sebuah model dinamik dalam spreadsheet Excel dari perhitungan pinjaman sederhana dari bayaran bulanan dan pengaruh dari prabayar (Figure 5.4)

Optimisasi dengan program matematika
• Program linier Linear programming (LP)
digunakan secara luas di DSS

• Program matematika
– Sekumpulan perangkat lunak pemecahan masalah manajerial dalam mengalokasikan keterbatasan sumber daya untuk menunjang berbagai kegiatan untuk mengoptimalkan tercapainya tujuan.
Karakteristik masalah pengalokasian program linier
1. Keterbatasan kuantitas sumber daya ekonomi
2. Sumber daya digunakan didalam produksi sebuah produk dan pelayanan
3. Dua atau lebih jalan solusi, program) untuk menggunakan sumber daya
4. Setiap kegiatan (produk atau pelayanan) menghasilkan sesuatu dalam bentuk tujuan yang dicapai
5. Alokasi umumnya dibatasi oleh kendala
Model alokasi program linier
• Asumsi rasional dari ekonomi:
1. Hasil dari alokasi bisa dibandingkan denagn satuan yang sama
2. Hasil bebas
3. Hasil total adalah jumlah hasil kegiatan-kegiatabn yang berbeda
4. Semua data diketahui secara pasti
5. Sumber daya digunakan dengan cara yang paling ekonomis
• Solusi optimal: terbaik, yang didapat secara algoritma
Program linier
• Variabel keputusan (Decision variables)
• Fungsi tujuan (Objective function)
• Koefisien fungsi tujuan(Objective function coefficients)
• Kendala(Constraints)
• Kapasitas (Capacities)
• Koefisien teknologi [Input-output (technology) coefficients]
Program Heuristik
• Pengurangan pencaharian
• Mendapat solusi memuaskan dengan lebih cepat dan lebih murah
• Cari aturan untuk memecahkan masalah yang kompleks
• Cari solusi layak yang cukup terhadap masalah yang kompleks
• Heuristik bisa jadi:
– Quantitatif
– Qualitatif
Kapan menggunakan heuristik
1. Dalam kepastian atau data masukan terbatas(Inexact or limited input data)
2. Kenyataan yang kompleks(Complex reality)
3. keandalan, algorithma yang eksak belum tersedia(Reliable, exact algorithm not available)
4. Penggunaan waktu komputasi terlalu banyak(Computation time excessive)
5. Untuk memperbaiki efisiensi dari optimisasi(To improve the efficiency of optimization)
6. Untuk memecahkan masalah yang kompleks(To solve complex problems)
7. Untuk pemecahan secara simbolik(For symbolic processing)
8. Untuk membuat keputusan yang cepat(For making quick decisions)
Kegunaan dari heuristik
1. Gampang dimengerti: lebih mudah mengimplementasikan dan menjelaskan
2. Menolong orang menjadi kreatif
3. Menghemat waktu formulasi
4. Menghemat pemrograman dan memori pad komputer
5. Menghemat waktu perhitungan
6. Sering menghasilkan banyak solusi yangbisa diterima
7. Kemungkinan untuk mengembangkan sebuah dengan ukuran kualitas
8. Dapat pencarian dengan cerdas
9. Dapat memecahkan model masalah yang sangat kompleks
Keterbatasan dari heuristik
1. Tidak menjamin dapat solusi optimal
2. Terlalu banyak pengecualian
3. Keputusan berurutan bisa saja tidak mengantisipasi kosenkuensi yang akan datang
4. Ketergantungan dari sub-sistem bisa mempengaruhi sistem secara keseluruhan
• Heuristik secara sukses diaplikasikan untuk routing kendaraan
Tipe dari Heuristik
• Konstruksi(Construction)
• Perbaikan(Improvement)
• Program matematis(Mathematical programming)
• Dekomposisi(Decomposition)
• Partisi (Partitioning)
Methode Heuristik Modern
• Pencarian dengan tabulasi(Tabu search)

• Algorithma Genetika(Genetic algorithms)

• Simulasi dengan beberapa asumsi
Simulasi
• Teknik untuk melaksanakan percobaan dengan komputer dalam sebuah model dari sistem manajemen(Technique for conducting experiments with a computer on a model of a management system)
• Sering digunakan sebagai alat dalam DSS(Frequently used DSS tool)
Karacteristik pokok dari simulasi
• Menirukan dunia nyata dan menggunakan variabel pokok yang mempengaruhi dunia nyata
• Salah satu cara untuk melaksanakan percobaan
• Deskriptif, bukan merupakan perangkat lunak normatif
• Sering digunakan untuk masalah yang sangat kompleks dan beresiko tinggi
Kegunaan dari Simulasi
1. Teorinya langsung pada model
2. Pengurangan waktu
3. Deskriptif, bukan normatif
4. Pembuat MSS membuat antar muka dengan manager untuk mendapatkan manfaat bagi manager tentang masalah yang dihadapi
5. Model dibuat dari persepektif seorang manager
6. Manager menginginkan tidak generalisasi pengertian. Masing-masing komponen menyatakan komponen masalah nyata
(More)
7. Variasi yang luas di dalam tipe masalah
8. Bisa melaksanakan percobaan dengan variabel yang berbeda
9. Bisa untuk kehidupan nyata yang kompleks
10. Mudah untuk mendapatkan banyak penampilan secara langsung
11. Sering hanya perangkat model DSS untuk masalah yang tidak terstrutur
12. Paket Monte Carlo add-in spreadsheet (@Risk)
Keterbatasan dari Simulasi
1. Tidak ada jaminan solusi yang optimal
2. Dalam membangun model yang baik perlu waktu lama dan biaya yang besar
3. Tidak bisa memindahkan hasil dan menarik kesimpulan untuk memecahkan masalah yang lain
4. Begitu mudah menjual kepada manager, bisa terjadi solusi analitiknya salah
5. Perangkat lunak tidak user friendly
Methodologi Simulasi
Model sistem nyata dan bisa melaksanakan percobaan berulang-ulang tanpa merusak sistem yang asli
1. Definisikan masalah
2. Bangun model simulasi
3. Test dan validasi model
4. Rancangan percobaan
5. Laksanakan percobaan
6. Evaluasi hasil
7. Solusi diimplementasikan
Tipe Simulasi
• Simulasi Probabilistik
– Distribusi diskrit
– Distribusi kontinyu
– Simulasi probabilistik via teknik Monte Carlo
– Simulasi yang tergantung pada waktu versus tidak tergantung pada waktu
– Perangkat lunak simulasi
– Visualisaai simulasi
– Simulasi berorientasi objek
Pemodelan dengan multidimensi
• Dilaksankan dalam proses secara online (online analytical processing (OLAP))
• Dari sebuah spreadsheet dan analisa perspektif
• 2-D ke 3-D terus multiple-D
• Perangkat lunak Model multidimensi: 16-D +
• Model-OLAP multidimensional (Figure 5.6)
• Alat bisa membandingkan, rotasi, dan memilah-milah dalam korporasi data silang dalam sudut pandang yang berbeda manajemen


Visualisasi Spreadsheets
• Pengguna dapat memvisualisasi model dan rumus-rumus dengan diagram pengaruh

• Not cells--symbolic elements
Visual Interactive Modeling (VIM) dan Visual Interactive Simulation (VIS)
• Visual interactive modeling (VIM) (DSS In Action 5.8)
• Juga disebut
– Visual interactive problem solving
– Visual interactive modeling
– Visual interactive simulation
• Menggunakan komputer grafik untuk menyatakan akibat dari keputusan manajemen yang berbeda
• Bisa diintegrasikan dengan GIS
• Penggunakan melaksanakan analisa sensitivitas
• Sistem Statik ataudinamik (animation) systems (Figure 5.7)
Visual Interactive Simulation (VIS)
• Pengambil keputusan berinteraksi dengan model simulasi dan memperhatikan hasilnya sepanjang waktu tertentu
• Model Interaktif Visual dan DSS
– VIM (Case Application W5.1 on book’s Web site)
– Queueing
Paket perangkat lunak Kuantitatif –OLAP
• Model yang diprogramkan bisa memeriksa waktu programing DSS
• Beberapa model terdiri beberapa blok dari model yang lain
– Paket Statistik
– Paket Manajemen science
– Manajemen Pendapatan
– Beberapa aplikasi spesifik DSS
• Termasuk beberapa fungsi dalam Spreadsheet
Manajemen basis Model
• MBMS: kemampuan hampir sama dg DBMS
• Tetapi, tidak ada paket manajemen basis model yang komprehensif
• Masing-masing organisasi menggunakan yang sedikit berbeda
• Banyak klas-kals dari model
• Dimana masing-masing klas mempunyai pendekatan soulusi yang berbeda
• Beberapa MBMS membutuhkan ahli dan alasan
Kemampuan yang dibutuhkan dari MBMS
• Kendali(Control)
• Elastis(Flexibility)
• Umpan-balik(Feedback)
• Antar muka(Interface)
• Pengurangan duplikasi(Redundancy reduction)
• Menaikkan konsistensi(Increased consistency)
Rancangan MBMS harus memberikan pengguna DSS Untuk:
• 1. Access dan retrieve model yang ada.
• 2. berlatih dan memanipulasi model yang ada
• 3. Menyimpan model yang ada
• 4. Menjaga model yang ada
• 5. Membangun model baru dengan usaha yang beralsan

• Bahasa dalam pemodelan
• Relasi MBMS
• Basis model Object-oriented dan manajemennya
• Model untuk database dan rancangan MIS dan manajemennya
RINGKASAN
• Model memainkan peranan penting dalam DSS
• Model bisa statik atau dinamik
• Analisa bisa kondisi kepastian dan ketidakpastian
– Influence diagrams
– Spreadsheets
– Decision tables and decision trees
• Model Spreadsheet dan hasil didalam diagram pengaruh
• Optimisasi: program mathematik
• (More)

• Program Linier berbasis ekonomi
• Program Heuristik
• Simulasi dengan situasi yang lebih kompleks
• Expert Choice
• Model Multidimensi-OLAP
• (More)

• Paket Perangkat lunak kuantitatif-OLAP (statistical, etc.)
• Visual interactive modeling (VIM)
• Visual interactive simulation (VIS)
• MBMS seperti DBMS
• Teknik AI dalam MBMS


Read More......

BINERISASI CITRA TANGAN DENGAN METODE OTSU

Geometri tangan merupakan salah satu jenis karakteristik biometrik yang banyak digunakan untuk sistem autentikasi baik untuk sistem verifikasi maupun sistem identifikasi. Yang termasuk ciri-ciri geometri tangan antara lain: panjang dan lebar jarijari tangan, panjang dan lebar telapak tangan, luas telapak tangan, dan lain sebagainya. Beberapa proses awal yang dapat dilakukan untuk mempermudah mendapatkan ciri-ciri geometri tangan adalah binerisasi dan deteksi tepi citra tangan. Pada tulisan ini akan menyajikan proses binerisasi saja.


Proses binerisasi menghasilkan citra biner dengan memiliki dua nilai tingkat keabuan yaitu
hitam dan putih. Permasalahan utama dalam proses binerisasi adalah menentukan nilai ambang
(Threshold). Nilai ini digunakan untuk mempartisi citra gray scale kedalam dua nilai yaitu hitam dan putih. Penentuan nilai ambang yang ditetapkan pada suatu nilai tertentu (fixed threshold) sangat berisiko untuk diterapkan pada citra tangan karena dapat menghasilkan citra tangan biner yang kurang sempurna sehingga mempersulit proses penentuan ciri-ciri geometri citra tangan. Pada tulisan ini, penentuan nilai ambang untuk proses binerisasi menggunakan metode Otsu. Metode ini diharapkan mampu menghasilkan bentuk citra tangan biner yang lebih konsisten untuk setiap citra tangan yang dimiliki oleh satu individu.

Metode Otsu
Tujuan dari metode otsu adalah membagi histogram citra gray level kedalam dua daerah yang
berbeda secara otomatis tanpa membutuhkan bantuan user untuk memasukkan nilai ambang
Pendekatan yang dilakukan oleh metode otsu adalah dengan melakukan analisis diskriminan yaitu menentukan suatu variabel yang dapat membedakan antara dua atau lebih kelompok yang muncul secara alami. Analisis Diskriminan akan memaksimumkan variable tersebut agar dapat membagi objek latardepan (foreground) dan latarbelakang (background).

Formulasi dari metode otsu adalah sebagai berikut.
Nilai Ambang yang akan dicari dari suatu citra gray level dinyatakan dengan k. Nilai k berkisar antara 1 sampai dengan L, dengan nilai L = 255. Probabilitas setiap pixel pada level ke i dapat
dinyatakan:

Pi = ni / N (2)

dengan :
ni menyatakan jumlah pixel pada level ke i
N menyatakan total jumlah pixel pada citra.
Nilai Zeroth cumulative moment, First cumulative
moment, dan total nilai mean berturut-turut dapat
dinyatakan dengan rumus berikut:


______k
ω(k) = ∑ pi _______________(3)
______i-1

______k
μ (k) = ∑i-pi _______________(4)
______i-1

_______L
μT (k) = ∑i-pi ______________(5)
_______i-1

Nilai ambang k dapat ditentukan dengan
memaksimumkan persamaan :


2 2
σ (k*)= max σ (k) (6)
B 1≤k B

dengan
2
2 [μTω(k)-μ(k)]
σ (k)= (7)
B ω(k)[1-ω(k)]

variance /= zerothCM * (1 - zerothCM);
if (maxVariance < maxvariance =" variance;" t =" k;" size="10pt">

Pada algoritma di atas, nilai ambang yang dicari disimpan dalam variabel T. Untuk proses binerisasi dapat dilakukan dengan menggunakan persamaan (1).

HASIL DAN ANALISIS
Gambar 2 menunjukkan citra gray level





Berdasarkan hasil uji coba dengan menggunakan
lebih dari 30 sampel, metode Otsu mampu
memberikan hasil yang sangat memuaskan. Metode
ini berhasil menghasilkan citra tangan biner dengan
area didalam citra tangan selalu dinyatakan dengan
warna putih dan diluarnya berwarna hitam, sehingga
bentuk geometri tangan dalam citra biner menjadi
sangat jelas. Proses binersisasi citra tangan dengan
menetapkan nilai ambang T pada suatu nilai tertentu,
sangat beresiko seperti yang ditunjukkan pada
gambar 2c, dengan T ditetapkan 80.

DASAR TEORI
Citra Biner
Citra biner adalah citra yang memiliki dua nilai
tingkat keabuan yaitu hitam dan putih. Secara umum
proses binersisasi citra gray scale untuk
menghasilkan citra biner adalah sebagai berikut.
( )
⎭ ⎬ ⎫
⎩ ⎨ ⎧

<
= ⎟⎠ ⎞
⎜⎝ ⎛
⎟⎠ ⎞
⎜⎝ ⎛
if f x y T
g x y if f x y T 1 ,
, 0 , (1)
dengan g(x,y) adalah citra biner dari citra gray scale
f(x,y) dan T menyatakan nilai ambang.
Nilai T dapat ditentukan dengan salah satu dari 3 cara
berikut.
1. Nilai Ambang Global (Global Threshold)
T = T{f(x,y)}
dengan T tergantung pada nilai gray level dari
pixel pada posisi x,y.
2. Nilai Ambang Lokal (Local Threshold)
T = T{A(x,y), f(x,y)}
dengan T tergantung pada properti pixel
tetangga. A(x,y) menyatakan nilai pixel tetangga.
3. Nilai Ambang dinamis (Dynamic Threshold)
T = T{x,y, A(x,y), f(x,y)}
dengan T tergantung pada koordinat-koordinat
pixel.


AKUISISI DATA CITRA TANGAN

Citra-citra Tangan diambil dengan menggunakan
kamera digital sony tipe DSC-P72 dengan resolusi
640 x 480 pixel. Tangan diletakan di atas suatu alas
berwarna hitam yang terdiri dari pegs dengan posisi
tertentu, seperti yang ditunjukkan gambar 1. Tujuan
dari pegs adalah untuk membatasi gerakan tangan
sehingga akan diperoleh citra tangan dengan posisi
yang hampir tidak mengalami perubahan. Kemudian
citra-citra tangan dijadikan citra gray level 256 warna
dengan aplikasi ACD FotoCanvas Lite 2.0. Aplikasi
ini bagian dari aplikasi ACD See versi 5.0, yaitu suatu
aplikasi pengolah gambar.




Gambar 1. Akuisisi Data Citra Tangan

ALGORITMA OTSU
Berikut ini disajikan algoritma otsu dengan
menggunakan kode C++.
tMean = 0;
variance = maxVariance = 0;
firstCM = zerothCM = 0;
for (i = 0; i < h; i++)
for (j = 0; j < w; j++) {
n = Image[j][i] ;
histogram[n]++;
}
for (k = 0; k < level; k++)
tMean += k * histogram[k] / (w * h);
for (k = 0; k < level; k++) {
zerothCM += histogram[k] / (w * h);
firstCM += k * histogram[k] / (w * h);
variance = (tMean * zerothCM - firstCM);
variance *= variance;

Warna putih muncul diluar area tangan dan kondisi
ini dapat menyulitkan dalam penentuan ciri-ciri
geometri tangan. Citra biner yang ditunjukkan
gambar 2d adalah hasil dari aplikasi ACD Fotocanvas
lite 2.0. Sebenarnya hasil citra biner dari aplikasi ini
sangat memuaskan. Aplikasi ini mampu menangkap
beberapa garis-garis pada telapak tangan dan jari-jari
tangan. Akan tetapi bila ditinjau dari segi penentuan
ciri-ciri geometri tangan, munculnya warna abu-abu
pada didalam area tangan dapat menyulitkan proses
penentuan ciri-ciri geometri tangan.

SIMPULAN
Berdasarkan hasil uji coba, proses binerisasi
dengan metode Otsu mampu menghasilkan citra
biner yang sangat memuaskan dan sangat membantu
dalam proses penentuan ciri-ciri geometri tangan.

Read More......

clas kuda

public class kuda
{
public static final String jenis_makanan ="rumput";
public static final int jumlh_kaki=4;
public static final String suara="emmah";

public static String maem ()
{
return "kuda maem"+jenis_makanan+"bareng-bareng";

}

public int berat_badan;
public String warna_kulit;
public int umur;
public int tinggi;

public kuda ()
{

}

public kuda (int berat_badan,int umur)
{

this.berat_badan =berat_badan;
this.umur=umur;
this.warna_kulit="pink";

}
public kuda (int berat_badan,int umur,String warna_kulit,int tinggi)
{
this.berat_badan =berat_badan;
this.umur=umur;
this.warna_kulit=warna_kulit;
this.tinggi=tinggi;
}

public int getberat_badan(int berat_badan)
{
return berat_badan;

}
}



class sumbawa extends kuda
{
int berat;
public sumbawa(int berat_badan, int umur)
{
this.berat_badan=berat_badan;
this.umur = umur;
berat = getberat_badan(190);
}
}

Read More......

calculator script

class mobil
{
String type;
String warna;
String bb;
public mobil()
{
}
public mobil(String type,String warna,String bb)
{
this.type = type;
this.warna = warna;
this.bb = bb;
}
void mesin()
{
System.out.println("spesifikasi");
System.out.println(type);
System.out.println(warna);
System.out.println(bb);
}
public String ambil_type()
{
return type;
}
public static void main(String []args)
{
mobil pribadi = new mobil("kijang","biru","bensin");
String t =pribadi.ambil_type();
pribadi.mesin();
System.out.println("mobilku baru:"+t);
}
}





class hewan
{
String jb;
String warna;
public hewan()
{
}
public hewan(String jb,String warna)
{
this.jb = jb;
this.warna = warna;
}
String ambiljb()
{
return jb;
}
String ambilwarna()
{
return warna;
}
public static void main (String []args)
{
hewan hewanku = new hewan("kakak tua","coklat");
System.out.println("identitas hewanku:");
String n = hewanku.ambiljb();
System.out.println("jb:"+n);
System.out.println("warna:"+hewanku.warna);
}
}


"calculator"
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import javax.swing.JOptionPane;

public class kalkulator extends JFrame implements ActionListener
{
public kalkulator()
{
loadcomponent();
}
JLabel lutama = null ;
JLabel lpertama = null;
JLabel lkedua = null;
JLabel lhasil = null;

JButton JBplus = null;
JButton Jclose = null;
JButton Jkali = null;
JButton Jbagi = null;
JButton Jkurang = null;

JTextField JTpertama = null;
JTextField JTkedua = null;
JTextField JThasil = null;

public void loadcomponent()
{
setTitle("BUDI CALCULATOR");
lutama = new JLabel(" CALCULATOR");
lpertama = new JLabel(" angka I");
lkedua = new JLabel (" angka II");
lhasil = new JLabel (" HASIL");

JBplus = new JButton ("+");
Jkurang = new JButton ("-");
Jclose = new JButton ("EXIT");
Jkali = new JButton ("X");
Jbagi = new JButton (":");


JTpertama = new JTextField (5);
JTkedua = new JTextField(5);
JThasil = new JTextField(5);

Container eko;
eko = getContentPane();
eko.setLayout(new GridBagLayout());
GridBagConstraints budi = new GridBagConstraints();

budi.anchor = GridBagConstraints.WEST;
budi.gridx = 5;
budi.gridy = 5;
eko.add(lutama,budi);
budi.gridy ++;
eko.add(lpertama, budi);
budi.gridx++;
eko.add(JTpertama, budi);
budi.gridy++;
budi.gridx=5;
eko.add(lkedua , budi);
budi.gridx++;
eko.add(JTkedua, budi);
budi.gridy++;
budi.gridx=5;
eko.add(lhasil, budi);
budi.gridx++;
eko.add(JThasil, budi);
budi.gridy++;
budi.gridx=10;
eko.add(JBplus, budi);
budi.gridx++;
eko.add(Jkurang, budi);
budi.gridx++;
eko.add(Jkali, budi);
budi.gridx++;
eko.add(Jbagi, budi);
budi.gridx++;
eko.add(Jclose,budi);
eko.setBackground(Color.yellow);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);

Jclose.setActionCommand("EXIT");
JBplus.setActionCommand("+");
Jkali.setActionCommand("X");
Jbagi.setActionCommand(":");
Jkurang.setActionCommand("-");

Jclose.addActionListener(this);
JBplus.addActionListener(this);
Jkali.addActionListener(this);
Jbagi.addActionListener(this);
Jkurang.addActionListener(this);
}

public static void main(String []args)
{
kalkulator a =new kalkulator ();
}
public void actionPerformed(ActionEvent e)
{
String a = e.getActionCommand();
if (a=="EXIT")
{
int JTutup = JOptionPane.showConfirmDialog(this,"Are you sure quit application","Close The Calculator",JOptionPane.YES_NO_OPTION);
if (JTutup==0)
{
System.exit(0);
}
}
if (a=="+")
{
int nilai1= Integer.parseInt(JTpertama.getText());
//String s = JTpertama.getText();
int nilai2= Integer.parseInt(JTkedua.getText());
Integer temp = nilai1+nilai2;
String s = temp.toString();
JThasil.setText(s);
}
if (a=="X")
{
int nilai1= Integer.parseInt(JTpertama.getText());
//String s = JTpertama.getText();
int nilai2= Integer.parseInt(JTkedua.getText());
Integer temp = nilai1*nilai2;
String s = temp.toString();
JThasil.setText(s);
}
if (a==":")
{
int nilai1= Integer.parseInt(JTpertama.getText());
//String s = JTpertama.getText();
int nilai2= Integer.parseInt(JTkedua.getText());
Integer temp =nilai1/nilai2;
String s = temp.toString();
JThasil.setText(s);
}
if (a=="-")
{
int nilai1= Integer.parseInt(JTpertama.getText());
//String s = JTpertama.getText();
int nilai2= Integer.parseInt(JTkedua.getText());
Integer temp = nilai1-nilai2;
String s = temp.toString();;
JThasil.setText(s);
}
}
}

Read More......

GRAFIKA KOMPUTER 2D

BAB I
Software Untuk Grafika Komputer
Software untuk menggambar grafik pada komputer ada dua jenis yaitu software
yang bebentuk library atau pustaka pada suatu bahasa pemrograman(paket pemrograman
grafika) dan software yang berbentuk aplikasi khusus. Pada software yang berbentuk
library suatu bahasa pemrograman akan dilengkapi fungsi fungsi grafik yang berasal dari
paket software grafik tersebut yang termasuk contoh dari jenis ini adalah Open Gl yang
dibuat Silicon Graphics.


Sedang pada paket aplikasi khusus gambar grafik dibuat tanpa
mengetahui bagaiamanahal itu dapat terjadi, contoh dari jenis ini adalah Blender ataupun
Qcad. Pada Modul ini yang digunakan adalah software jenis pertama dengan
menggunakan fungsi grafik pada Bahasa Pemrograman Pascal.
Note: Semua kode pada modul ini menggunakan prosedur prosedur di
bawah. tambahkan pada setiap awal kode program!.
procedure init;
var gd, gm : integer;
begin
gm:=detect; gd:=0;
InitGraph(gd,gm,'');
if GraphResult <> grOk then
begin
Writeln('Graph driver ',gd,' graph mode ',gm,' not
supported');
Halt(1);
end;
end;
procedure destroy;
begin
closegraph;
end;

BAB II
Output Primitif
1. TITIK
Titik dalam Grafika Komputer bisa didefinisikan sebagai suatu posisi tertentu dalam
suatu sistem koordinat. Sistem koordinat yang dipakai bisa Polar Coordinates atau
Cartesian Coordinates. Biasanya dalam pemrograman grafis, yang paling umum
digunakan adalah Cartesian Coordinates.
Dalam Cartesian Coordinates, titik didefinisikan sebagai kombinasi dua bilangan yang
menentukan posisi tersebut dalam koordinat x dan y (2D)
Contoh Penerapan
Jika kita ingin menempatkan titik­titik A(2,4), B(1,1), C(4,­1.5), D(­4,­2), E(–4,3)
Kita bisa menggambarkan sebagai berikut:
A
B
C D
E
GAMBAR 1 : TITIK DALAM CARTESIAN COORDINATESAda 2 definisi
koordinat dalam komputer terutama dalam Sistem Operasi Windows, yaitu Screen
Coordinate, dan Cartesian Coordinate, keduanya sering membingungkan. Untuk lebih
jelasnya mari kita lihat gambar berikut:S creen Coordinat es
Car t esian Coordinat es
X
Y
Y
X
GAMBAR 2 : PERBEDAAN SCREEN DAN CARTESIAN COORDINATES
Prinsipnya, karena monitor didesain untuk menggambar dari atas ke bawah, maka sumbu
y pada Screen Coordinates dan Cartesian Coordinates berbeda arah, untuk Screen
Coordinates, sumbu Y arahnya ke bawah, sedangkan pada Cartesian Coordinates, sumbu
Y arahnya ke atas. Biasanya dalam rendering pipeline, hal yang terakhir dilakukan
adalah mengkonversi Cartesian Coordinates ke Screen Coordinates.
Dalam Sistem Operasi Linux, koordinat yang dipakai antara Cartesian dan Screen sama,
yaitu Y positif ke atas.
Untuk koordinate 3D, sama dengan 2D, hanya saja ditambah 1 sumbu yaitu sumbu z
(axis­z). Ada beberapa cara untuk menggambarkan sumbu X, Y dan Z, ini. Pertama
dengan sumbu z mengarah ke atas(gambar 3).
X
Y
Z
GAMBAR 3 : KOORDINAT DENGAN Z MENGARAH KE ATAS
dan koordinat dengan koordinat y mengarak ke atas.X
Y
Z
X
Z
Y
GAMBAR 4 : KOORDINAT DENGAN Y MENGARAH KE ATAS
2. Garis
Umumnya persamaan garis lurus pada koordinat kartesius diwujudkan dalam
persamaan garis : y=m.x+b
jika dimisalkan pada dua titik(x0,y0 dan x1,y1) akan dibuat sebuah garis lurus, kita dapat
menentukan nilai “m' dan “b” dengan persamaan berikut:
y1­y0
m= ______
x1­x0
b=y1­m.x1
algoritma untuk menggambar garis pada komputer didasarkan pada dua persamaan di
atas. dimana m adalah gradien atau kemiringan garis tersebut.
1. Algoritma digital differential analyzer(DDA),
Prinsip algoritma ini adalah mengambil nilai integer terdekat dengan jalur garis
berdasarkan atas sebuah titik yang telah ditentukan sebelumnya(titik awal garis).
Algoritma pembentukan garis DDA:
1. Tentukan dua titik yang akan dihubungkan dalam pembentukan garis.
2. Tentukan salah satu titik sebagai awal(x0,y0) dan titik akhir(x1,y1).
3. Hitung dx=x1­x0, dan dy= y1­y0.4. Tentukan langkah, yaitu dengan cara jarak maksimum jumlah penambahan nilai
x maupun nilai y, dengan cara:
­Bila nilai absolut dari dx lebih besar dari absolut dy, maka langkah= absolut
dari dx.
­Bila tidak maka langkah= absolutdari dy
5. Hitung penambahan koordinat pixel yaitu x_increment=dx/langkah, dan
y_increment=dy/langkah
6. Koordinat selanjutnya (x+x_increment, y+y_increment)
7. Posisi pixel pada layar ditentukan dengan pembulatan nilai koordinat tersebut.
8. Ulangi nomor 6 dan 7 untuk menentukan posisi pixel selanjutnya,sampai x=x1
dan y=y1.
Contoh Prosedur DDA dalam pascal:
uses graph,crt;
{tambahkan pada bagian ini prosedur penginisialisasian device,
lihat pada bab 1}
procedure drawLine(xstart,ystart,xend,yend:integer);
var
step,k:integer;
dx,dy:real;
x_inc,y_inc,x,y:real;
begin
dx:=xend-xstart;
dy:=yend-ystart;
x:=xstart;
y:=ystart;
if abs(dx) > abs(dy) then
step:=round(abs(dx))
else
step:=round(abs(dy));
x_inc:=dx/step;
y_inc:=dy/step;
putPixel(round(x),round(y),30);
for k:=1 to step dobegin
x:=x+x_inc;
y:=y+y_inc;
putPixel(round(x),round(y),30);
end;
end;
begin
init;
{menggambar garis dari titik 10,10 ke 500,10}
drawLine(10,10,500,10);
readkey;
destroy;
end.
2. Algoritma garis Bressenham
Tidak seperti Algoritma DDA, Algoritma Bressenham tidak membulatkan nilai
posisi pixel setiap waktu. Algoritma Bressenham hanya menggunakan
penambahan nilai integer yang juga dapat diadaptasi untuk menggambar
lingkaran.
Berikut ini langkah langkah untuk membentuk garis menurut algoritma
Bressenham:
1. Tentukan dua titik yang akan dihubungkan
2. Tentukan salah satu titik di sebelah kiri sebagai titik awal yaitu(x0,y0) dan
titik lainnya sebagai titik akhir(x1,y1).
3. Hitung dx,dy,2dx dan 2dy­2dx.
4. Hitung parameter
p0=2dy­dx
5. Untuk setiap xk sepanjang jalur garis, dimulai dengan k=0,
­ Bila pk < 1="pk+2dy­" 1="pk+2dy­" x="x1" y="y1."> xb then
begin
x:=xb;
y:=yb;
xEnd:=xa;
end
else
begin
x:=xa;
y:=ya;
xEnd:=xb;
end;
putPixel(round(x),round(y),30);
while x < y2="R2." x="0" x="R/√2," p0="5/4­r" k="0," 1="Pk+2xk+1+1" 1="Pk+2xk+1+1­" 1="2xk+2" x="x+xcy=">=y
Contoh algoritma lingkaran midpoint
Untuk menggambarkan algoritma Bressenham dalam pembentukan suatu
lingkaran dengan titik pusat (0,0) dan radius 10, perhitungan berdasarkan pada oktan dari
kuadran pertama di mana x=0 sampai x=y. Nilai parameter dapat ditentukan dengan
P0=1­r =1­10=­9
Koordinat titk awal adalah(x,r)=(0,8).
K Pk (Xk+1,Yk+1) oktan­1
(0,8)
0 ­7 (1,8)
1 ­4 (2,8)
2 1 (3,7)
3 ­6 (4,7)
4 3 (5.6)
5 2 (6,5)
Prosedur algoritma lingkaran midpoint
Input yang digunakan pada prosedur ini adalah koordinat titik pusat dan radius
lingkaran. Posisi pixel ditentukan dengan rutin setPixel.
uses graph,crt;
{tambahkan pada bagian ini prosedur penginisialisasian device,
lihat pada bab 1}
procedure circlePlotPoints(xCenter,yCenter,x,y:integer);
begin
putPixel(xCenter+x, yCenter+y,30);
putPixel(xCenter-x, yCenter+y,30);
putPixel(xCenter+x, yCenter-y,30);putPixel(xCenter-x, yCenter-y,30);
putPixel(xCenter+y, yCenter+x,30);
putPixel(xCenter-y, yCenter+x,30);
putPixel(xCenter+y, yCenter-x,30);
putPixel(xCenter-y, yCenter-x,30);
end;
procedure circleMidPoint (xCenter,yCenter,radius:integer);
var
x,y,p:integer;
begin
x:=0;
y:=radius;
p:=1-radius;
circlePlotpoints(xCenter,yCenter,x,y);
while x<0 d2="konstan" 2="konstan" 2="1" penambahan="" dilakukan="" kecil="" sumbu="" digunakan="" bermacam="" macam="" pertama="" searah="" jam="" sepanjang="" jalur="" kuadran="" pergeseran="" slope="" alternatif="" dimulai="" seleksi="" titik="" berlawanan="" arah="" jarum="" penggeseran="" y="" ke="" unit="" step="" x="" pada="" saat="" kemiringan="" lebih="" besar="" dari="" dengan="" prosesor="" pixel="" dapat="" dihitung="" dalam="" dua="" bagian="" sekaligus="" pembentukan="" menurut="" algoritma="" circle="" midpoint="" ry="" dan="" pusat="" elips="" kemudian="" diperoleh="" hitung="" parameter="" p10="ry" 1="" 4="" rx="" 2="" tentukan="" nilai="" awal="" k="0," untuk="" setiap="" posisi="" xk="" berlaku="" sebagai="" berikut="" bila="" p1k="">< 1="p1k+2ry" 1="p1k+2ry" 1="2ry" 1="2rx">= 2rx
2
y
4. Tentukan nilai parameter pada bagian kedua menggunakan titik terakhir (x0,y0)
yang telah dihitung pada bagian pertama, sebagai berikut
P2
k+1=2ry
2
(xo+1/2)
2
+2rx
2
(yo­1)
2
­ rx
2
ry
2
5. Setiap posisi yk pada bagian kedua, dimulai dengan k=0
­ Bila p2k> 0 maka titik selanjutnya adalah (xk, yk­1)
p2k+1=p2k+2rx
2
yk+1+rx
2
­ Bila tidak, maka titik selanjutnya adalah (xk+1,yk­1) dan
p2k+1=pk+2ry
2
xk+1­2rx yk+1+ry
2
6. Tentukan titik simetris pada ketiga kuadran lainnya7. Gerakkan setiap posisi(x,y) pada garis melingkar dari elisp dengan titik
pusat(xc,yc) dan tentukan nilai koordinat
x=x+xc y=y+yc
8. Ulangi langkah untuk bagian pertama di atas, sehingga 2ry
2
x >= 2rx
2
y
Contoh algoritma elips Midpoint
Untuk menggambarkan algoritma midpoint dalam pembentukan elips dengan titik
pusat(0,0) dan mayor axis rx=6, serta minor axis ry=8, perhitungan berdasarkan pada
kuadran pertama sebagai berikut:, nilai parameter dapat ditentukan
2ry
2
x=0
2ry
2
x=2rx
2
ry
p1o= ry
2
+ rx
2
ry ­1/4 rx
2
=­215
Koordinat titik awal (x,r) =(0,8)
K Pk (Xk+1,Yk+1) oktan­1
(0,8)
0 ­215 (1,8)
1 ­23 (2,8)
2 297 (3,7)
3 241 (4,6)
4 ­108 (5.5)
5 236 (5,4)
6 ­16 (6,3)
7 600 (6,2)
8 492 (6,1)
9 456 (6,0)
Prosedur algoritma elips MidpointProsedur berikut menampilkan posisi pixel pada monitor dengan algorima
Midpoint. Input yang digunakan adalah koordinat titik pusat mayor axis, dan minor axis.
Posisi pixel ditentukan dengan rutin setPixel.
uses graph,crt;
{tambahkan pada bagian ini prosedur penginisialisasian device,
lihat pada bab 1}
procedure elipsPlotPoints(xCenter,yCenter,x,y:integer);
begin
putPixel(xCenter+x, yCenter+y,30);
putPixel(xCenter-x, yCenter+y,30);
putPixel(xCenter+x, yCenter-y,30);
putPixel(xCenter-x, yCenter-y,30);
end;
procedure elipsMidPoint(xCenter,yCenter,Rx, Ry:integer);
var
Rx2,Ry2,x,y,twoRx2,twoRy2,py,px,p:integer;
begin
Rx2:=Rx*Rx;
Ry2:=Ry*Ry;
x:=0;
y:=Ry;
twoRx2:=2*Rx2;
twoRy2:=2*Ry2;
px:=0;
py:=twoRx2*y;
elipsPlotPoints(xCenter,yCenter,x,y);
//bagian1
p:=round(Ry2-(Rx2*Ry)+(0.25*Rx2));
while px<0>0 do
begin
y:=y-1;
py:=py-twoRx2;
if p>0 then
p:=p+(Rx2-py)
else
begin
x:=x+1;
px:=px+twoRy2;
p:=p+Ry2+px-py;
end;
elipsPlotPoints(xCenter,yCenter,x,y);
end;
end;
begin
init;
elipsMidPoint(130,120,120,190);
readkey;
destroy;
end.
6. Fill area primitive
Terdapat dua dasar pendekatan untuk mengisi area pada raster system. Pertama,
menentukan overlap internal untuk scan line yang melintasi area. Metode lain yaitu
dengan memulai dari titik tertentu pada posisi di dalam polygon dan menggambar
dengan arah menyebar ke pinggir, sampai batas polygon.
1. Algoritma scan line Titik potong diurutkan dari kiri ke kanan. Posisi yang berhubungan pada
frame buffer antara sepasang titik potong diberi warna tertentu. Posisi empat
pixel sebagai titik potong antara garis batas polygon ditentukan oleh dua buah
pixel pada koordinat darri x=8 ke x=13 dan dari x=23 ke x=34
2. Algoritma boundary fill.
Metode ini bermanfaat untuk paket aplikasi grafik interaktif dimana titik
dalam dapat dengan mudah ditentukan. Prosedur boundary fill menerima inout
koordinat suatu titik(x,y), warna isi dan garis batas. Dimulai dari titik (x,y),
prosedur memeriksa posisi titik tetangga, yaitu apakah merupakan warna batas.
Bila tidak, maka titik tersebut digambar dengan warna isi. Proses ini dilanjutkan
sampai semua titik pada batas diperiksa. Prosedur berikut menampilkan metode
rekursif mengisi 4 bidang dengan intensitas pada parameter fill.
procedure boundaryFil( x,y,fill,boundary:integer);
var
current:integer;
begin
current:= getPixel(x,y);
if (current <> boundary) and (current <> fill) then
begin
putPixel(x,y,fill);
boundaryFill(x+1,y,fill,boundary);
boundaryFill(x-1,y,fill,boundary);
boundaryFill(x,y+1,fill,boundary);
boundaryFill(x,y-1,fill,boundary);
end;
end;
3. Algoritma flood fill
Pendekatan lain untuk mengisi suatu bidang polygon adalah algorima
flood fill. Metode ini dimulai pada titik (x,y) dan mendefinisikan seluruh pixel
pada bidang tersebut dengan warna yang sama. Bila bidang yang akan diisi warna memiliki beberapa warna. Pertama tama yang dibuata adalah membuat
nilai pixel baru, sehingga smua pixel memiliki warna yang sama. Prosedur
berikut menggambarkan metode flood­fill untuk mengisi warna suatu polygon.
procedure floodFill( x,y,fillColor,oldColor:integer);
begin
if getPixel(x,y) = oldcolor then
begin
putPixel(x,y,fillcolor);
floodFill(x+1,y , fillColor, oldColor);
floodFill(x-1,y , fillColor, oldColor);
floodFill(x,y+1 , fillColor, oldColor);
floodFill(x,y-1 , fillColor, oldColor);
end;
end;BAB III
Transformasi Dua Dimensi
1 Transformasi Dasar
a. Translasi
Translasi dilakukan dengan penambahan translasi pada suatu titik koordinat dengan
translation vector atau shift vector, yaitu(tx, ty). Koordinat baru titik yang ditranslasi
dapat diperoleh dengan menggunakan rumus
x’ = x +tx
y’ = y+ty
translasi adalah transfomasi dengan bentuk yang tetap memindahkan objek apa adanya.
Titik yang akan ditranslasi akan dipindahkan ke lokasi lain menurut garis lurus.
Contoh Translasi
Untuk menggambarkan translasi suatu objek yang berupa segitiga dengan koordinat
A(10,10), B(30,10), dan C(10,30) dengan translation vector (10,20), pertama tama
dihitung koordinat hasil translasi
Titik A
x’A = xA + tx = 10+10 = 20
y’A = yA + ty = 10+20 = 30
Hasil translasi titik A’(20,30)
Titik B
x’B = xB + tx = 30+10 = 40
y’B = yB + ty = 10+20 = 30
Hasil translasi titik B’(40,30)
Titik C
x’C = xC + tx = 10+10 = 20y’C = yC + ty = 30+20 = 50
Hasil translasi titik C’(20,50)
Dengan demikian hasil translasi segitiga dengan koordinat A’(20,30) B’(40,30)
C’(20,50). Segitiga yang baru sama bentuknya dengan segitiga yang lama.
Contoh Program translasi garis (10,10,500,10) dengan vector translasi 20,10
uses graph,crt;
var
x0,y0,x1,y1:integer;
{tambahkan pada bagian ini prosedur penginisialisasian device, lihat
pada bab 1}
procedure drawLine(xstart,ystart,xend,yend:integer);
var
step,k:integer;
dx,dy:real;
x_inc,y_inc,x,y:real;
begin
dx:=xend-xstart;
dy:=yend-ystart;
x:=xstart;
y:=ystart;
if abs(dx) > abs(dy) then
step:=round(abs(dx))
else
step:=round(abs(dy));
x_inc:=dx/step;
y_inc:=dy/step;
putPixel(round(x),round(y),30);
for k:=1 to step do
begin
x:=x+x_inc;
y:=y+y_inc;
putPixel(round(x),round(y),30);
end;
end;procedure transLine(xstart,ystart,xend,yend,xtrans,ytrans:integer; var
xstartout,ystartout,xendout,yendout:integer);
begin
xstartout:=xstart+xtrans;
ystartout:=ystart+ytrans;
xendout:=xend+xtrans;
yendout:=yend+ytrans;
end;
begin
init;
{menggambar garis dari titik 10,10 ke 500,10}
drawLine(10,10,500,10);
transLine(10,10,500,10,20,10,x0,y0,x1,y1);
drawLine(x0,y0,x1,y1);
readkey;
destroy;
end.
Penskalaan
Transformasi skala adalah perubahan ukuran suatu objek. Koordinat baru diperoleh
dengan melakukan perkalian koordinat dengan ascling factor, yaitu(sx,sy) dimana sx
adalh scaling facor untuk sumbu x dam sy adalah scaling factor untuk sumbu y. koordinat
baru titik yang diskala dapat diperoleh dengan
x’ = x.sx
y’= y.sy
scaling factor sx dan sy dapat diberikan sembarang nilai positif. Nilai lebih dari 1
menandakan bahwa sebuah objek diperbesar sedang nilai nilai kurang dari 1
menunjukkan bahwa objek diperkecil.
Contoh penskalaan
Untuk menggambarkan skala suatu objek yang merupakan segiempat dengan
koordinat A(10,10), B(30,10), C(30,20), D(10,20) diskala dengan scaling factor(3,2), pertama tama dihitung koordinat hasil skala satu demi satu, pertama tama dihitung
koordinat hasil skala satu demi satu
Titik A
x’A = xA.sx= 10* 3 =30
y’A = yA.sy=10 * 2=20
Hasil skala titik A’(30,20)
Titik B
x’B = xB.sx= 30* 3 =90
y’B = yB.sy=10 * 2=20
Hasil skala titik B’(90,20)
Titik C
x’C = xC.sx= 30* 3 =90
y’C = yC.sy=20 * 2=40
Hasil skala titik C’(90,40)
Titik D
x’D = xD.sx= 10* 3 =30
y’D = yD.sy=20 * 2=40
Hasil skala titik D’(30,40)
Skala dengan fixed point
Lokasi skala suatu objek dapat dikontrol dengan menentukan titik tertentu
yang disebut fixed point(xf,yf). Koordinat fixed point dapat dapat pada
sembarang posisi. Poligon kemudian diskala relative terhadap fixed point dengan
melakukan skala jarak dari tiap titik terhadap fixed point.Untuk titik dengan
koordinat (x,y) diperoleh(x’,y’) sebagai skala
x’=xf+(x­xf)sx
y’=yf+(y­yf)syContoh Program penskalaan garis (10,10,50,10) dengan skala 2
uses graph,crt;
var
x0,y0,x1,y1:integer;
{tambahkan pada bagian ini prosedur penginisialisasian device,
lihat pada bab 1}
procedure drawLine(xstart,ystart,xend,yend:integer);
var
step,k:integer;
dx,dy:real;
x_inc,y_inc,x,y:real;
begin
dx:=xend-xstart;
dy:=yend-ystart;
x:=xstart;
y:=ystart;
if abs(dx) > abs(dy) then
step:=round(abs(dx))
else
step:=round(abs(dy));
x_inc:=dx/step;
y_inc:=dy/step;
putPixel(round(x),round(y),30);
for k:=1 to step do
begin
x:=x+x_inc;
y:=y+y_inc;
putPixel(round(x),round(y),30);
end;
end;
procedure scaleLine(xstart,ystart,xend,yend,scale:integer; var
xstartout,ystartout,xendout,yendout:integer);
begin
xstartout:=xstart*scale;
ystartout:=ystart*scale;
xendout:=xend*scale;
yendout:=yend*scale;
end;begin
init;
drawLine(10,10,50,10);
scaleLine(10,10,50,10,2,x0,y0,x1,y1);
drawLine(x0,y0,x1,y1);
readkey;
destroy;
end.
Rotasi
Rotasi dua dimensi memindahkan sebuah objek menurut garis melingkar. Untuk
melakukan rotasi diperlukan sudut rotasi a’ dan pivot point(xp,yp). Nilai positif dari
sudut rotasi menentukan arah rotasi berlawanana dengan arah jarum jam. Sedangkan
sudut rotasi negative memutar objek searah dengan jarum jam.
Rumus transformasi untuk rotasi suatu titik(x,y) dengan sudut rotasi a sebagai
berikut:
x’= x cos a­y sin a
y’= y sina+y cos a
Contoh Rotasi
Untuk menggambarkan rotasi suatu objek yang berupa segitiga dengan koordinat
A(10,10), B(30,10), dan C(10,30) dengan sudut rotasi 30’ terhadap titik pusat koordinat
Cartesian (10,10), dilakukan dengan menghitung koordinat hasil rotasi tiap titik satu demi
satu.
Titik A
x’A = xp+(xA­xp) cos 30’ – (yA­yp)sin 30’
=10+(10­10)* 0.9 –(10­10) *0.5=10
y’A = yp+(xA­xp) sin 30’ – (yA­yp)cos 30’
=10+(10­10)*0.5 +(10­10)*0.9=10
Hasil rotasi titik A’(10,10)Titik B
x’B = xp+(xB­xp) cos 30’ – (yB­yp)sin 30’
=10+(30­10)* 0.9 –(10­10) *0.5=28
y’B = yp+(xB­xp) sin 30’ – (yB­yp)cos 30’
=10+(30­10)*0.5 +(10­10)*0.9=20
Hasil rotasi titik A’(28,20)
Titik C
x’C = xp+(xC­xp) cos 30’ – (yC­yp)sin 30’
=10+(10­10)* 0.9 –(30­10) *0.5=0
y’C = yp+(xC­xp) sin 30’ – (yC­yp)cos 30’
=10+(10­10)*0.5 +(30­10)*0.9=28
Hasil rotasi titik A’(0,28)
contoh program merotasi garis dengan pusat rotasi 40,50 dan sudut rotasi 180'
uses graph,crt;
var
x0,y0,x1,y1:integer;
{tambahkan pada bagian ini prosedur penginisialisasian device, lihat
pada bab 1}
procedure drawLine(xstart,ystart,xend,yend:integer);
var
step,k:integer;
dx,dy:real;
x_inc,y_inc,x,y:real;
begin
dx:=xend-xstart;
dy:=yend-ystart;
x:=xstart;
y:=ystart;
if abs(dx) > abs(dy) then
step:=round(abs(dx))
else
step:=round(abs(dy));x_inc:=dx/step;
y_inc:=dy/step;
putPixel(round(x),round(y),30);
for k:=1 to step do
begin
x:=x+x_inc;
y:=y+y_inc;
putPixel(round(x),round(y),30);
end;
end;
procedure
rotateLine(xstart,ystart,xend,yend,xcenter,ycenter:integer;angle:real;
var xstartout,ystartout,xendout,yendout:integer);
begin
xstartout:=round((xcenter+((xstart-xcenter)*cos(angle)))-((ystart-
ycenter)*sin(angle)));
ystartout:=round((ycenter+((xstart-xcenter)*sin(angle)))-((ystart-
ycenter)*cos(angle)));
xendout:=round((xcenter+((xend-xcenter)*cos(angle)))-((yend-
ycenter)*sin(angle)));
yendout:=round((ycenter+((xend-xcenter)*sin(angle)))-((yend-
ycenter)*cos(angle)));
end;
begin
init;
drawLine(10,10,50,10);
rotateLine(10,10,50,10,40,50,180,x0,y0,x1,y1);
drawLine(x0,y0,x1,y1);
readkey;
destroy;
end.
Refleksi
Refleksi adalah transfomasi membuat mirror dari suatu objek. Objek hasil
refleksi dibuat relatif terhadap sumbu dari refleksi dengan memutar 180' terhadap sumbu
refleksi. Sumbu refleksi dapat dipilih pada bidang xy. Jenis jenis refleksi ada berbagai macam tetapi algoritma yang digunakan semua sama tinggal mengubah matriks
transfomasinya saja.
Contoh refleksi terhadap sumbu y=0.
uses graph,crt;
var
x0,y0,x1,y1:integer;
result: array [1..1,1..3] of integer;
matTrans:array [1..3,1..3] of integer;
before: array [1..3,1..3] of integer;
{tambahkan pada bagian ini prosedur penginisialisasian device, lihat
pada bab 1}
procedure drawLine(xstart,ystart,xend,yend:integer);
var
step,k:integer;
dx,dy:real;
x_inc,y_inc,x,y:real;
begin
dx:=xend-xstart;
dy:=yend-ystart;
x:=xstart;
y:=ystart;
if abs(dx) > abs(dy) then
step:=round(abs(dx))
else
step:=round(abs(dy));
x_inc:=dx/step;
y_inc:=dy/step;
putPixel(round(x),round(y),30);
for k:=1 to step do
begin
x:=x+x_inc;
y:=y+y_inc;
putPixel(round(x),round(y),30);
end;
end;
procedure initMatrix;var
i,j:integer;
begin
for i:=1 to 3 do
for j:=1 to 3 do
begin
if i=j then
matTrans[i,j]:=1
else
matTrans[i,j]:=0;
end;
matTrans[3,3]:=-1;
end;
procedure calculateMatrix(xstart,ystart:integer; var
xstartout,ystartout:integer);
var
i,j,k,jumlah:integer;
begin
initMatrix;
before[1,1]:=xstart;
before[1,2]:=ystart;
before[1,3]:=1;
for i:=1 to 3 do
for j:=1 to 3 do
begin
jumlah:=0;
for k:=1 to 3 do
begin
result[i,j]:=jumlah+(matTrans[i,k]*before[k,j]);
end;
end;
xstartout:=result[1,1];
ystartout:=result[1,2];
end;
procedure reflectLine(xstart,ystart,xend,yend:integer; var
xstartout,ystartout,xendout,yendout:integer);begin
calculateMatrix(xstart,ystart,xstartout,ystartout);
calculateMatrix(xend,yend,xendout,yendout);
end;
begin
init;
{menggambar garis dari titik 10,10 ke 500,10}
drawLine(10,10,500,10);
reflectLine(10,10,500,10,x0,y0,x1,y1);
drawLine(x0,y0,x1,y1);
readkey;
destroy;
end.BAB IV
Clipping Titik dan Garis
Clipping adalah pendefinisan gambar di dalam maupun di luar suatu bidang
tertentu. Clipping dapat diaplikasikan pada world coordinate, sehingga hanya isi yang
berada dalam window dipetakan ke device coordinate. Cara lain, world coordinate
lengkap dapat dipetakan ke device coordinate lebih dahulu, kemudian di clip pada batas
viewport.
1. Clipping titik
Pada clip window yang berbentuk segi empat, titik )x,y) akan ditampilkan bila
xwmin <= x <=xwmax ywmin <= y <=ywmax dimana batas clip window(xwmin,xwmax,ywmin,ywmax) dapat berada di dalam batas world coordinate atau viewport coordinate. Bila salah satu tidak terpenuhi maka titik tersebut tidak akan diclip. Contoh Algoritma Clipping titik uses graph,crt; var x,y,xmin,ymin,xmax,ymax:integer; jawab:char; {tambahkan pada bagian ini prosedur penginisialisasian device, lihat pada bab 1} procedure clipPoint(x,y,xmin,ymin,xmax,ymax:integer); begin if (x>=xmin) and (x<=xmax) and (y>=ymin) and (y<=ymax) then begin init; putPixel(x,y,30); readkey; destroy; endelse writeln('Point is not visible'); end; begin jawab:='n'; while jawab = 'n' do begin writeln('enter the coordinates of clipping window '); writeln('enter x(min) y(min)'); read(xmin); readln(ymin); writeln('enter x(max) y(max)'); read(xmax); readln(ymax); writeln('enter the coordinates of point x y'); read(x); readln(y); clipPoint(x,y,xmin,ymin,xmax,ymax); writeln('do yo want to exit (y/n)'); readln(jawab); end end. 2. Clipping Garis Gambar di atas memprlihatkan hubungan antara posisi garis dengan viewport. Bagian bagian garis yang berada di luar viewport tidak akan ditampilkan. Berikut ini algoritma clipping garis yang palibg sering digunakan: 1. Periksa segmen garis untuk menentukan sepenuhnya berada di dalam clip window. 2. Bila tidak, maka dicoba untuk menentukan apakah sepenuhnya di luar window. 3. Bila tidak dapat mengidentifikasi sepenuhnya di dalam, ataupun di luar window, maka dilakukan perhitungan perpotongan dengan satu atau lebih batas clipping. Clipping garis Cohen­SutherlandAlgoritma Cohen­Sutherland merupakan algoritma yang paling populer. Biasanya metode ini mempercepat pemrosesan segmen garis dengan mengurangi jumlah perpotongan yang harus dihitung. Setiap endpoint dari garis dalam suatu gambar dinyatakan dalam 4 digit kode biner yang disebut region code, yang mengidentifikasikan lokasi dari titik relatif terhadap batas clipping yang berbentuk segi empat. Contoh Prosedur Clipping garis Cohen­Sutherland uses graph,crt; var pixels:array[0..1,0..3] of integer; x1,y1,x2,y2,xmin,ymin,xmax,ymax:integer; xn1,xn2,yn1,yn2,m:real; jawab:char; {tambahkan pada bagian ini prosedur penginisialisasian device, lihat pada bab 1} procedure DrawBressLine(xa,ya,xb,yb:integer); var dx,p,dy,xEnd:integer; x,y:real; begin dx:= abs(xb-xa); dy:= abs(yb-ya); p:=2*dy-dx; if xa > xb then
begin
x:=xb;
y:=yb;
xEnd:=xa;
end
else
begin
x:=xa;
y:=ya;
xEnd:=xb;
end;putPixel(round(x),round(y),30);
while x <> ymax then
pixels[0,0]:=1;
if y1xmax then
pixels[0,2]:=1;
if x1ymax then
pixels[1,0]:=1;
if y2xmax then
pixels[1,2]:=1;
if x2 xb then
begin
x:=xb;
y:=yb;
xEnd:=xa;
end
else
begin
x:=xa;
y:=ya;
xEnd:=xb;
end;
putPixel(round(x),round(y),30);
while x <> 0 then
begin
if q < (tL * d ) then clipt:= false; if q < (tU * d ) then tU := q / d; end else if q <> 0 then
begin
x1 := x1+(tL * dx);
y1 := y1+(tL * dy);
end;
DrawBressLine(round(x1),round(y1),round(x2),round(y2));
end;
end;
end;
end;
end;
begin
jawab:='n';
while jawab = 'n' do
begin
writeln('enter the coordinates of clipping window ');
writeln('enter x(min) y(min)');
read(xmin);
readln(ymin);
writeln('enter x(max) y(max)');
read(xmax);
readln(ymax);
writeln('enter the coordinates of line');
writeln('enter X1 Y1');
read(x1);
readln(y1);
writeln('enter X2 Y2');
read(x2);
readln(y2);init;
DrawBressLine(round(x1),round(y1),round(x2),round(y2));
readkey;
destroy;
init;
liang_barsky_line(x1,y1,x2,y2);
readkey;
destroy;
writeln('do yo want to exit (y/n)');
readln(jawab);
end;


Read More......

Perbedaan antara RPL dengan Computer Science. . .?

Intinya, computer science berhubungan dengan teori dan metode yang mendasari sistem komputer dan perangkat lunak, sedangkan RPL berhubungan dengan praktek dalam memproduksi perangkat lunak.
Perbedaan RPL dengan Rekayasa Sistem ?
Rekayasa sistem berkaitan dengan semua aspek dalam pembangunan sistem berbasis komputer termasuk hardware, rekayasa PL dan proses. RPL adalah bagian dari rekayasa sistem yang meliputi pembangunan PL, infrasktruktur, kontrol, aplikasi dan database pada sistem.

Model atau paradigma umum pada proses PL
1. Model air terjun (waterfall) Mengambil kegiatan dasar seperti spesifikasi, pengembangan, validasi, dan evolusi dan merepresentasikannya sebagai fase-fase proses yang berbeda seperti spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan seterusnya.
2. Pengembangan evolusioner Pendekatan ini berhimpitan dengan kegiatan spesifikasi, pengembangan, dan validasi. Sistem awal dikembangkan dengan cepat dari spesifikasi abstrak. Sistem ini kemudian di perbaiki dengan masukan dari pelanggan untuk menghasilkan sistem yang memuaskan kebutuhan pelanggan.
3. Pengembangan Sistem Formal Pendekatan ini menghasilkan suatu sistem matematis yang formal dan mentransformasikan spesifikasi ini, dengan menggunakan metode matematik menjadi sebuah program.
4. Pengembangan berdasarkan pemakaian ulang (Reusable)  Teknik ini menganggap bahwa bagian-bagian sistem sudah ada. Proses pengembangan sistem terfokus pada pengintegrasian bagian-bagian sistem dan bukan pengembangannya dari awal.
Biaya Rekayasa Perangkat Lunak
• Umumnya sekitar 60% untuk biaya pengembangan (development) dan 40% biaya pengujian (testing).
• Distribusi biaya yang tepat selama proses perangkat lunak bergantung pada proses yang digunakan dan jenis perangkat lunak yang dikembangkan.
Metode-metode RPL
Pendekatan-pendekatan terstruktur terhadap pengembangan perangkat lunak mencakup model, notasi, aturan, saran pengembangan sistem (rekomendasi), dan panduan proses.
• Deskripsi model sistem Deskripsi model yang harus dikembangkan dan notasi yang digunakan untuk mendefinisikan model-model ini. Ex : model aliran data.
• Aturan Batasan yang berlaku bagi model sistem. Ex : Setiap entitas pada model sistem harus memiliki nama yang unik.
• Rekomendasi Saran dalam membentuk perancangan yang baik. Ex : Tidak ada objek yang memiliki lebih dari tujuh sub-objek yang berhubungan dengannya.
• Panduan Proses Aktifitas yang bisa diikuti untuk mengembangkan model sistem. Ex : Atribut objek harus didokumentasi sebelum mendefinisikan operasi yang berhubungan dengan objek.
CASE (Computer-Aided Software Engineering)
Mencakup berbagai macam program yang digunakan untuk mendukung kegiatan PL seperti analisis persyaratan, pemodelan sistem, debugging, dan pengujian.
Atribut-atribut PL yang baik
Perangkat Lunak seharusnya memberikan user kebutuhan fungsionalitas dan kinerja yang :
• Dapat dipelihara (Maintanability) PL harus dapat memenuhi perubahan kebutuhan user.
• Dapat diandalkan (Dependability) PL harus dapat dipercaya dan tidak menyebabkan kerusakan fisik atau ekonomi jika terjadi kegagalan sistem.
• Efisien PL harus efisien dalam penggunaan sumber daya sistem.
• Kemampupakaian (Usability) PL harus dapat dipakai sesuai dengan yang direncanakan
Tantangan Kunci yang dihadapi RPL ?
• Tantangan Warisan (Legacy) Tantangan memelihara dan meng-update PL sedemikian sehingga biaya yg berlebihan dapat dihindari dan layanan bisnis yg penting tetap dilakukan.
• Tantangan Heterogenitas Tantangan teknik pengembangan untuk membangun perangkat lunak yang dapat diandalkan dan cukup flexibel untuk menghadapi heterogenitas yang ada.
• Tantangan Pengiriman Tantangan mempersingkat waktu kirim sistem besar dan kompleks, tanpa mengurangi kualitas sistem.











Rekayasa Perangkat Lunak
1. Perbedaan Software Proses dan software produk
Software Proses
Software proses ialah kegiatan didalam rekayasa perangkat lunak mengembangkan perangkat lunak. Proses perangkat lunak dapat digambarkan sebagai berikut :

Keterangan proses perangkat lunak :
o Kerangka kerja proses umum, di bangun dengan mendefinisikan sejumlah aktifitas kerangka kerja yang bisa diterapkan ke semua proyek perangkat lunak, tanpa melihat ukuran atau kompleksitasnya.
o Sejumlah tugas “Task Sets”, masing-masing berisi kumpulan pekerjaan rekayasa perangkat lunak, kejadian penting , produk perangkat lunak serta point jaminan kualitas. Dengan adanya task set ini, memungkinkan aktifitas framework diadaptasikan dengan karakteristik proyek software dan kebutuhan tim pelaksana
o Aktifitas pendukung yang meliputi : jaminan kualitas perangkat lunak, manajemen konfigurasi perangkat lunak. Aktifitas pendukung tidak tergantung pada aktivitas kerangka kerja dan terjadi pada seluruh proses.


Model Proses Perangkat Lunak
Model proses perangkat lunak digunakan untuk menyelesaikan masalah aktual di dalam sebuah industri dimana pengembang perangkat lunak harus menggabungkan strategi pengembangan yang meliputi : lapisan proses, metode serta alat bantu yang digambarkan dalam setiap fasenya. Model proses untuk rekayasa perangkat lunak, dipilih berdasarkan sifat aplikasi, proyek perangkat lunak, metode, alat bantu yang akan dipakai, kontrol serta penyampaian yang dibutuhkan.

Macam model proses perangkat lunak, yaitu :
1. Model Sekuensial Linier


Model sekuensial linier, sering kali “Classic Life Cycle” atau “Waterfall model”. Pendekatan pengembangan perangkat lunak dimulai pada level sistem dan prosesnya melalui: Analysis, Design, Coding, Testing

2. Model prototyping

Model protyping dikembangkan karena sering terjadi customer menjabarkan objektif umum mengenai perangkat lunak yang diminta, tetapi tidak dapat mendefinisikan input, proses, output yang diminta secara detail. Disisi lain, developer menjadi tidak yakin terhadap efisiensi algoritma, kemampuan adaptasi terhadap sistem operasi, atau bentuk interaksi mesin dengan orang. Untuk mengatasi situasi tersebut, bisa digunakan pendekatan dalam prototyping paradigma


3. Model RAD

Rapid Application Development (RAD) merupakan model proses pengembangan perangkat lunak yang linier sequencial dengan menggunakan siklus pengembangan yang singkat. Model RAD merupakan adaptasi “High-speed” dari model linier sequencial yang pengembangannya dilakukan dengan menggunakan pendekatan komponen-based. Proses RAD memungkinkan untuk membuat “fully functional System” dalam waktu yang sangat singkat (60 – 90 hari).


Software Produk
Rekayasa produk perangkat lunak adalah suatu kegiatan yang tetap dalam proses rekayasa yang mengintegrasikan semua aktivitas rekayasa perangkat lunak untuk menghasilkan produk yang tepat, efektif dan efisien.

Tujuan dari rekayasa produk perangkat lunak yaitu :
* Dapat mendifinisikan, mengintegrasikan kegiatan rekayasa perangkat lunak untuk menghasilkan perangkat lunak
*Menjaga konsistensi kinerja dari kegiatan rekayasa perangkat lunak

Ruang lingkup kegiatan dari rekayasa produk perangkat lunak yaitu :
* kegiatan rekayasa untuk membangun perangkat lunak (software requirement, software design, software code, software testing) sesuai dengan proses yang telah ditetapkan dalam proyek perangkat lunak,
* kegiatan pemeliharaan perangkat lunak

Dokumentasi diperlukan untuk kegiatan rekayasa perangkat lunak mis. Software requirement doc, software design doc, test plan, test prosedure. Dokumen yang ada dibuat dan di review untuk memastikan bahwa setiap tugas yang ada diperoleh dari tugas yang sebelumnya dan dipergunakan untuk tugas selanjutnya. Ketika ada perubahan yang disepakati, seolah-olah kinerja produk perangkat lunak, rencana, komitmen, proses dan aktivitas diperbaiki untuk dipergunakan sebagai acuan untuk persetujuan perubahan

Kegiatan Rekayasa Produk Perangkat Lunak :
Kegiatan Rekayasa Perangkat Lunak dapat dikategorikan dalam 3 fase umum tanpa memandang area aplikasi, ukuran proyek atau kompleksitas. Fase tersebut yaitu:
1. Definition Phase
Merupakan fase awal dari proses pengerjaan perangkat lunak. Pada fase ini, pengembang perangkat lunak melakukan kegiatan identifikasi yang meliputi : informasi apa saja yang harus diproses, fungsi dan kinerja yang digunakan, tingkah laku sistem yang diharapkan, interface yang harus dibuat, kendala desain yang ada, serta kriteria validasi yang diperlukan untuk mendefinisikan keberhasilan sistem

2. Development Phase
Pada fase ini menerjemahkan keperluan yang telah dianalisis ke dalam bahasa pemrograman yang telah ditentukan. Kegiatan yang dilakukan adalah mendefinisikan bagaimana : data disusun, fungsi bisa diimplementasikan sesuai dengan arsitektur software, detik prosedur untuk implemetasi, karakter interface, hasil desain bisa ditranslasikan ke bahasa pemrograman dan cara pengujiannya.
Ada tiga aktivftas teknis yang selalu terjadi:
• Desain software
• Pembuatan Program
• Pengujian Software

3. Maintenance Phase
Pada fase ini, PL telah selesai dan kegiatan difokuskan pada perubahan yang berkaitan dengan adanya koreksi kesalahan, adaptasi dan pengembangan yang dikehendaki user. Ada 4 tipe perubahan:
• Correction, yaitu : mengubah perangkat lunak untuk memperbaiki kesalahan-kesalahan yang ada.
• Adaption, yaitu : modifikasi yang dilakukan terhadap perangkat lunak dikarenakan adanya perubahan lingkungan eksternal (misal: CPU, sistem operasi, aturan bisnis, karakter produk eksternal).
• Enhancement, yaitu : saat perangkat lunak dipakai, user meminta tambahan-tambahan fungsi. Sehingga software dikembangkan dari kebutuhan semula. Prevention / sering disebut software re-enginering, yaitu: harus dilakukan untuk memungkinkan perangkat lunak bisa sesuai dengan keinginan end user. Pada fase ini dilakukan perubahan-perubahan ke program komputer, sehingga program tersebut bisa dikoreksi, beradaptasi dan dikembangkan dengan mudah


2. Cara Menilai sebuah software
Pengukuran Kualitas Software:
1. Product (Diukur Berdasarkan Factor dan Criteria Produk)
* Taxonomy McCall
* ISO 9126
2. Process (Diukur dari Kematangan Development Process)
* CMM, SPICE, BOOTSTRAP
* ISO 9001


Mengukur Development Process [Capability Maturity Model (CMM), SEI]
1. Level 1 – Initial , tanpa prosedur dan planning, tidak konsisten
2. Level 2 – Repeatable, ada manajemen, jaminan kualitas, prosedur, individual performance tanpa model formal
3. Level 3 – Defined, proses terdefinisi, dan mengarah ke perbaikan proses secara kualitatif
4. Level 4 – Managed, perbaikan dan prediksi proses secara kuantitatif
5. Level 5 – Optimizing, memperbaiki proses secara berkesinambungan, inovatif, direncanakan, dianggarkan dan integral dalamproses organisasi


3. Kegiatan Perawatan Perangkat lunak
kegiatan difokuskan pada perubahan yang berkaitan dengan adanya koreksi kesalahan, adaptasi dan pengembangan yang dikehendaki user.



4. Cara Menetapkan harga perangkat lunak
Untuk menetapkan harga perangkat lunak dapat memperhatikan :
* kompleksitas perangkat lunak
* bahasa pemrograman yang dipergunakan
* lama pengerjaan perangkat lunak
* jaminan kualitas perangkat lunak
* Supporting yang diberikan oleh pengembang perangkat lunak



Read More......

REKAYASA PERANGKAT LUNAK

• adalah suatu disiplin rekayasa yang berkonsentrasi terhadap seluruh aspek produksi perangkat lunak.
• mengadopsi pendekatan yang sistematis dan terorganisir terhadap pekerjaannya dan menggunakan tool yang sesuai serta teknik yang ditentukan berdasarkan masalah yang akan dipecahkan, kendala pengembangan dan sumber daya yang tersedia



Proses Perangkat Lunak
• Suatu proses model adalah suatu representasi abstrak suatu model yang menampilkan suatu deskripsi suatu proses dari beberapa perspektif tertentu,
• Merupakan aktifitas yang saling terkait (koheren) untuk menspesifikasikan, merancang, implementasi dan pengujian sistem perangkat lunak.
• Sekumpulan aktifitas yang memiliki tujuan untuk pengembangan ataupun evolusi perangkat lunak :
o Aktifitas generic dalam semua proses perangkat lunak adalah:
o Spesifikasi – apa yang harus dilakukan oleh perangkat lunak dan batasan/kendala pengembangannya
o Pengembangan – proses memproduksi sistem perangkat lunak
o Validasi – pengujian perangkat lunak terhadap keinginan penggunak
o Evolusi – perubahan perangkat lunak berdasarkan perubahan keinginan.

Model Proses Perangkat Lunak
Suatu representasi proses perangkat lunak yang disederhanakan, dipresentasikan dar perspektif khusus, Contoh perspektif proses :
• Perspektif Alur-kerja (workflow) - barisan kegiatan
• Perspektif Alur Data (Data flow) – alur informasi
• Perspektif Peran/Aksi – siapa melakukan apa.

Biaya rekayasa perangkat lunak
• Sekitar 60% untuk biaya pengembangan, 40% biaya pengujian. Untuk perangkat lunak berbasis pengguna (custom), biaya evolusi biasanya melebihi biaya pengembangan.
• Biaya beragam tergantung pada tipe sistem yang akan dikembangkan dan kebutuhan sistem seperti unjuk kerja dan kehandalan sistem,
• Distribusi biaya bergantung pada model pengembangan yang digunakan.

Metode Rekayasa Perangkat Lunak
Pendekatan terstruktur pengembangan termasuk model sistem, notasi, perancangan dan petunjuk pemrosesan,
• Deskripsi Model: deskripsi pemodelan dengan grafik,
• Aturan: Batasan yang digunakan pada model sistem
• Rekomendasi: nasihat bentuk perancangan yang baik,
• Petunjuk proses: Aktifitas yang harus diikuti,

Atribut Perangkat Lunak yang baik :
• seharusnya memberikan pengguna kebutuhan fungsionalitas dan unjuk kerja yang dapat di rawat, berguna, Maintanability (Dapat Dirawat)
• harus dapat memenuhi perubahan kebutuhan, Dependability
• harus dapat dipercaya, Efisien
• harus efisien dalam penggunaan resource, Usability
• harus dapat digunakan sesuai dengan yang direncanakan

Spesifikasi Perangkat Lunak

Proses untuk menentukan pelayanan (servis) apa yang dibutuhkan dan kendala-kendala pengoperasian sistem serta pengembangannya,
• Proses Rekayasa Kebutuhan
o Studi Kelayakan
o Analisis kebutuhan
o Spesifikasi Kebutuhan
o Validasi spesifikasi

• Perancangan dan Implementasi Perangkat Lunak
o Proses konversi sistem spesifikasi ke sistem yang dapat dieksekusi langsung
o Perancangan Perangkat Lunak
o Perancangan Struktur Perangkat Lunak
o Implementasi
o Translasi struktur ke dalam bentuk program
o Aktifitas perancangan dan implementasi dapat saling berinteraksi
• Aktifitas dalam Perancangan:
o Perancangan Arsitektur
o Spesifikasi Abstrak
o Perancangan Interface
o Perancangan Komponen
o Perancangan Struktur Data
o Perancangan Algoritma

Proses Perancangan Perangkat Lunak

• Metode Perancangan
o Pendekatan sistematis untuk merancang perangkat lunak
o Perancangan biasanya didokumentasikan dengan model grafik
o Beberapa model yang dapat digunakan:
 Data Flow Model
 Model relasi atribut entitas
 Model terstruktur
 Model Object
• Pemrograman dan Debug
o Translasi perancangan ke dalam pemrograman dan menghilangkan error dari program
o Pemrograman adalah aktifitas personal – tidak terdapat model program generic
o Pemrogram melakukan beberapa program testing untuk menemukan fault dalam program dan menghilangkan fault tersebut dalam proses debug.
• Validasi Perangkat Lunak
o Verifikasi dan validasi bertujuan menunjukkan bahwa sistem sesuai dengan spesifikasinya dan yang diinginkan pengguna
o Melibatkan proses pengujian dan review sistem
o Pengujian sistem melibatkan eksekusi sistem dengan menggunakan kasus tes yang ditentukan dari spesifikasi data real yang akan diproses oleh sistem.
• Stage Pengujian Perangkat Lunak
o Unit Testing: Pengujian Komponen-komponen secara individu
o Modul Testing: Pengujian terhadap komponen yang saling berhubungan,
o Sub-system Testing: Pengujian terhadap module-module sistem yang saling berhubungan. Fokus pada pengujian interface.
o System Testing: Pengujian keseluruhan sistem,
o Acceptance Testing: Pengujian yang dilakukan oleh pengguna untuk melihat apakah sistem sudah dapat diterima.

• Evolusi Sistem
o Perangkat lunak pada dasarnya sangat fleksibel dan mudah berubah
o Karena adanya perubahan kebutuhan melalui perubahan proses bisnis dan teknologi, maka perangkat lunak yang mendukung kegiatan bisnis tersebut juga mengalamai perubahan
o Walaupun demikian diharapkan perubahan proses bisnis tersebut berdampak pada perubahan yang sedikit terhadap perangkat lunak (re-engineering).

Model Pengembangan system
• Model Air Terjun (Water Fall)
• Fase Model Air Terjun
o Analisis Kebutuhan dan pendefinisiannya
o Perancangan sistem dan Perangkat Lunak
o Implementasi dan unit testing
o Integrasi dan pengujian sistem
o Pengoperasian dan perawatan
• Proses kembali ke state sebelumnya untuk mengantisipasi perubahan setelah proses menuju ke suatu state di bawahnya adalah sangat sulit.
• Masalah pada Model Air Terjun :
o Partisi projek ke stages yang berbeda tidak fleksibel.
o Hali ini mengakibatkan sulitnya untuk merespon perubahan kebutuhan pengguna
o Oleh sebab itu model ini hanya cocok digunakan apabila kebutuhan pengguna sudah dimengerti dengan baik,
• Model Pengembangan yang berevolusi (Evolutionary Development)
• Pengembangan yang berdasarkan penyidikan, tujuannya untuk mengaktifkan pengguna dan memperolah model final berasal dari initial spesifikasi awal. Seharusnya diawali dengan kebutuhan yang sudah dimengerti,
• Throw-away prototyping, tujuannya adalah untuk memahami kebutuhan sistem. Biasanya diawali dengan pemahaman kebutuhan yang minim.
• Permasalahan dalam model pengembangan yang berevolusi:
o Kekurangan visibilitas proses
o Model sistem biasanya tidak terstruktur
o Membutuhkan kemampuan khusus (mis: bahasa pemrograman rapid prototyping).
• Pemakaian model pengembangan yang berevolusi
o Untuk sistem interaktif yang kecil atau menengah
o Untuk salah satu bagian dari sistem yang besar (mis. User Interface)
o Untuk sistem yang digunakan tidak terlalu lama (short lifetime).
• Model Pendekatan pengembangan sistem Formal
• Berbasiskan pada transformasi spesifikasi secara matematik melalui representasi yang berbeda untuk suatu program yang dapat dieksekusi,
• Trasformasi menyatakan spesifikasi program
• Menggunakan pendekatan ‘Cleanroom’ untuk pengembangan.
• Model Pengembangan menggunakan konsep Re-use (Penggunaan Ulang)
• Proses dengan metode Iterasi
• Model Iterasi dapat digunakan pada model proses generic, terdapat dua pendekatan :
o Pengembangan Incremental
o Model Spiral
• Model Pengembangan Incremental
• Pengembangan sistem berdasarkan model sistem yang dipecah sehingga model pengembangannya secara increament/bertahap
• Kebutuhan pengguna diprioritaskan dan priritas tertinggi dimasukkan dalam awal increment
• Setelah pengembangan suatu increment dimulai, kebutuhan dibekukan dulu hingga increment berikutnya dimulai
• Keuntungan
o Nilai penggunan dapat ditentukan pada setiap increament sehingga fungsionalitas sistem disediakan lebih awal,
o Increment awal berupa prototype untuk membantu memahami kebutuhan pada increment berikutnya,
o Memiliki risiko lebih rendah terhadap keseluruhan pengembagan sistem,
o Prioritas tertinggi pd pelayanan sistem adalah yang paling diuji.
• Model Pengembangan Spiral
• Proses direpresentasikan sebagai model spiral (bukan berupa barisan aktfitas yang dapat ditrack mundur)
• Setiap loop dalam model spiral menyatakan fase proses,
• Tidak terdapat fase tertentu seperti spesifikasi atau perancangan, tetapi loop dalam spiral ditentukan pada apa yang dibutuhkan,
• Sektor pada model Spiral
o Menentukan Tujuan
o Mengidentifikasikan spesifikasi tujuan setiap fase
o Menilai Resiko dan Pengurangannya
o Resiko dinial dan aktifitas ditempatkan untuk mengurangi resiko kunci
o Pengembangan dan validasi
o Suatu model pengembangan sistem dipilih dari model generic
o Perencanaan
o Project di review dan fase spiral berikutnya direncanakan


Read More......
Template by : kendhin x-template.blogspot.com