Andalan

SDLC METODE SYNCHRONIZE STABILIZE & EXTREME PROGRAMMING

SYNCHRONIZE STABILIZE

Sejak pertengahan tahun 1980an, Microsoft dan perusahaan software Personal Computer (PC) lainnya secara berangsur-angsur mulai menyusun kembali cara mereka membangun produk perangkat lunak sebagai jawaban atas masalah kualitas dan lamanya pengiriman. Banyak perusaahaan saat ini mempunyai permasalahan yang sama dalam mengorganisir team mereka untuk membangun produk Software-PC. Produk tersebut sekarang terdiri dari ratusan, ribuan dan bahkan jutaan baris source code dan memerlukan ratusan orang untuk membangun dan mengetes produk tersebut dalam periode lebih dari satu tahun.

Seperti halnya pembuat-pembuat PC Software terbesar, dengan jumlah kira-kira 18.000 karyawan, 200 produk, dan pendapatan tahunan yang lebih dari $ 6 milyar, Microsoft mungkin mempekerjakan karyawan yang lebih dibandingkan perusahaan Software-PC lainnya. Beberapa produknya, seperti windows 95, dimana terdiri lebih dari 11 juta baris program dan memiliki tim pengembang yang lebih dari 200 programmer dan tester, menyaingi kompleksitas dari berbagai sistem yang dibuat untuk mainframe dan sistem telekomunikasi.

Filsafat umum Microsoft adalah mengatur sebuah root dengan fleksibilitas yang tinggi, perusahaan yang mempunyai entrepreneur dan tidak banyak mengadopsi struktur Software Engineering yang dibuat oleh suatu organisasi, seperti Software Engineering Institute (SEI) dan International Standards Organization (ISO). Selain itu Microsoft juga mencoba untuk menaikkan struktur tim kecil (beberapa menyebutkan hacker) dari pengembang produk. Sasaran yang ingin dicapai adalah dengan mengambil tim-tim kecil secara paralel (3-8 pengembang untuk masing-masing tim) atau programmer untuk bekerja sama membentuk suatu tim yang lebih besar, dalam rangka menciptakan suatu produk yang relative lebih cepat, tetapi tetap mengijinkan setiap programmer dan tim untuk terlibat dalam desain dan operasi mereka secara mandiri.

Tim paralel tersebut melibatkan seluruh fitur dan produk-produk yang ada, sementara memperkenalkan konsep dan teknologi terbaru. Pengembang bebas berinovasi terhadap yang mereka inginkan, tetapi mereka harus meng “synchronize” setiap perubahan yang terjadi sehingga semua komponen produk dapat bekerja bersama-sama.

Frekuensi Synchronizations dan Periodik Stabilzations

Kita menamakan gaya Microsoft dalam pengembangan software dengan menggunakan pendekatan synchronize-and-stabilize. Pada dasarnya sederhana: melakukan synchronize secara terus menerus terhadap setiap individu-individu dalam suatu tim paralel, dan secara periodik melakukan proses stabilize terhadap project yang dibuat, bukan pada akhir project. Orang-orang Microsoft mengacu kepada beberapa teknik yang digunakan, seperti milestone, dailybuild, nightly build, atau zerodefect.

Apapun namanya, teknik tersebut banyak digunakan oleh beberapa perusahaan pengembang software. Dua atau tiga orang tidak dapat membuat suatu sistem yang baru dengan tingkat kompleksitas produk yang tinggi, mereka membutuhkan tim yang lebih besar, dimana mereka harus mengerti dan memiliki inovasi terhadap produk yang mereka kembangkan. Setiap anggota membutuhkan komponen yang berdiri sendiri, tetapi mereka sulit untuk mendefinisikan secara akurat mengenai tahapan-tahapan dalam siklus pengembangan.

Strategi dan Prinsip

Beberapa peneliti pengembang software telah melakukan pengamatan selama dua setengah tahun, yang melibatkan lebih dari 38 orang penting di Microsoft dan mereview ratusan dokumen rahasia. Hasil dari penelitian ini didapatkan dua strategi dan kumpulan prinsip-prinsip yang digunakan sehingga synchronize-and-stabilize dapat bekerja.

Team Microsoft memulai suatu proses pengembangan dengan menciptakan vision statement, yang mendefinisikan tujuan dari suatu produk dan memprioritaskan beberapa aktifitas user yang membutuhkan dukungan dari fitur suatu produk. Manajer produk (spesialis pemasaran) mengambil alih tugas ini sementara mereka melakukan konsultasi dengan manajer program, yang berfokus kepada pembuatan konsep fungsi spesifikasi. Selanjutnya, manajer program berkonsultasi dengan pengembang untuk melakukan fungsi spesifikasi dan mengorganisasi jadwal serta alokasi sumber daya. Selama project, anggota tim akan melakukan revisi terhadap fitur yang seharusnya ada di dalam produk. Pengalaman Microsoft menyarankan bahwa fitur dalam spesifikasi boleh berubah sekitar 30 persen atau lebih.

Tim Synchronizeand-Stabilize

Ide dibalik model synchronize and stabilize cukup sederhana: secara berkesinambungan melakukan synchronize terhadap pekerjaan yang dilakukan oleh tim secara paralel, dan secara periodik melakukan stabilize terhadap produk sampai produk itu selesai. Microsoft menggunakan pendekatan dalam pengembangan software dan organisasi tim sejak akhir tahun 1980an terhadap produk-produknya, termasuk Office, Publisher, Windows 95/98, Windows NT dan menuai sukses terhadap hasil produknya.

Secara umum gambaran tim yang dibuat dapat dilihat pada gambar di bawah. Sejak produk-produk Microsoft diluncurkan ke pasar (dalam hal tertentu ke client tertentu), masing-masing produk terdiri atas Manager Produk yang terfokus ke satu produk dimana mempunyai suatu vision statement untuk setiap produk. Vision Statement dikembangkan menggunakan customer feedback, tujuan dari produk dan prioritas terhadap suatu fitur-fitur yang harus diselesaikan untuk membangun sebuah software. Vision Statement digunakan sebagai informasi untuk mendefinisikan fungsi spesifikasi, arsitektur dan interpendensi komponen. Seteleh fungsi spesifikasi didefinisikan, Program Manager berkoordinasi untuk mengatur jadwal terhadap Tim Fitur, dimana untuk masing-masing tim terdiri dari 1 program manager, 3-8 programmer dan 3-8 tester yang bekerja secara paralel 1:1 dengan programmer.

synchronize_stabilize

Setelah fase perencanaan selesai (dimana biasanya memakan waktu antara 3 sampai 12 bulan tergantung dari besarnya dan kompleksitas dari suatu produk), project akan berlanjut ke dalam fase pengembangan. Dalam hal ini, project dibagi menjadi 3 atau 4 subproject, dimana masing-masing team melakukan siklus pengembangan (integrasi, testing dan debugging). Selama siklus tersebut, programmer bebas untuk mengembangkan komponen-komponen dan fitur-fitur secara mandiri. Rasio 1:1 programmer/tester memberikan synchronization harian untuk memastikan hasil yang sempurna dalam siklus pengembangan. Bagaimanapun, kadang-kadang terjadi error yang tidak diinginkan.

Proses tim Synchronize-and-Stabilize dapat dirangkum sebagai berikut:

  • Berorientasi kepada fitur
  • Synchronize (pengembangan harian) and Stabilize (perbaikan kesalahan di setiap milestone)
  • Product Managers mengembangkan vision statement dan fitur yang sesuai dengan keinginan customer.
  • Program Managers mengembangkan fungsional spesifikasi berdasarkan vision statement.
  • Program Managers membuat jadwal dan tim fitur paralel antara 3-8 pengembang dan penguji berdasarkan fungsional spesifikasi.
  • Anggota tim dapat bekerja secara mandiri, sehingga dapat menghasilkan kreativitas dan kebebasan di dalam sebuah project.
  • Fase perencanaan (3-12 bulan, tergantung besarnya suatu project)
    • vision statement
    • specification
    • schedule and feature team formation
  • Fase Pengembangan (6-12 bulan)
    • subproject I: krusial 1/3 fitur, milestone release I
    • subproject II: 1/3 fitur, milestone release II
    • subproject III: final 1/3 fitur, milestone release III — code complete
  • Fase Stabilization (3-8 bulan)
  • Internal testing
  • External testing di bagian “beta tester”
  • Siap untuk diluncurkan, dimana terdapat “golden master” dan dokumentasi. 

    Keuntungan Dari Synchronize-And-Stabilize

    Walaupun prinsip-prinsip dibalik synchronize and stabilize memberikan persamaan dalam hal cepatnya pengembangan sistem, disana tidak terdapat suatu tahap yang dapat memecahkam masalah besar dengan dengan solusi yang singkat. Melainkan, terdapat pendekatan yang spesifik, tool dan teknik, beberapa aturan yang kaku dan tingginya kemampuan orang-orang yang menggunakan pendekatan ini. Beberapa elemen membedakan synchronize and stabilize dengan beberapa pengembangan yang lebih lama.

    Pendekatan synchronize and stabilize mempunyai beberapa keuntungan bagi para manajer dan engineer dalam mengembangkan suatu produk.

    • Membagi produk yang besar ke dalam bagian-bagian yang lebih kecil (prioritas dari fitur produk yang memiliki tim fitur kecil dapat dibuat dalam beberapa bulan)
    • Membuat project bekerja secara sistematis meskipun mereka tidak dapat menggambarkan dan menyelesaikan suatu produk di awal project.
    • Mengijinkan tim besar bekerja menjadi tim yang lebih kecil dengan membagi sebuah tim menjadi beberapa bagian, bekerja secara paralel tetapi tetap dapat berkesinambungan dalam men synchronizing setiap perubahan, stabilizing produk dan menemukan serta memperbaiki kesalahan.
    • Memfasilitasi masukkan dari customer, fitur produk dan waktu pengembangan yang pendek, yang didukung oleh mekanisme masukkan customer, prioritas, menyelesaikan dahulu bagian yang sangat penting dan melakukan perubahan tanpa harus mengurangi fitur yang diperlukan.

    Mengijinkan suatu tim produk menjadi lebih responsive dalam penempatan produk di pasar dengan “selalu” mempunyai produk yang siap untuk dijual, mempunyai keakuratan fitur yang komplit dan fleksibilitas produk yang tinggi.

EXTREME PROGRAMMING

Sejarah XP
Extreme Programming atau yang biasa dikenal dengan “XP”, iniadalah sebuah metodologi yang diciptakan oleh Kent Beck ketikamenangani sebuah project dari Chrysler yang dikenal dengan C3(Chrysler Comprehensive Compensation). Proyek ini dimulai pada bulan Maret 1996 dan terancam gagal karena rumitnyasistem yang dibangun dan kegagalan pada saat testing.
Pengertian XP
Mascot Extreme Programming.gif
Proyek Pemrograman Extreme pertama dimulai 6 Maret 1996. Extreme Programming adalah salah satu dari beberapa Proses Agile populer. Sudah terbukti sangat sukses di banyak perusahaan dari berbagai ukuran dan industri di seluruh dunia.Extreme Pemrograman berhasil karena menekankan kepuasan pelanggan. Alih-alih memberikan semua yang anda mungkin inginkan pada tanggal beberapa jauh di masa depan proses ini memberikan perangkat lunak yang Anda butuhkan saat Anda membutuhkannya. Extreme Pemrograman memberdayakan pengembang Anda untuk percaya diri menanggapi perubahan kebutuhan pelanggan, bahkan terlambat dalam siklus hidup.Extreme Pemrograman menekankan kerja sama tim. Pengelola, pelanggan, dan pengembang semua mitra setara dalam sebuah tim kolaboratif. Extreme Pemrograman menerapkan, sederhana namun efektif yang memungkinkan tim lingkungan menjadi sangat produktif. Tim mengorganisir diri mengatasi masalah untuk menyelesaikannya see sien mungkin.Extreme Pemrograman meningkatkan proyek perangkat lunak dalam lima cara penting; komunikasi, kesederhanaan, umpan balik, rasa hormat, dan keberanian. Extreme Programmer selalu berkomunikasi dengan pelanggan mereka dan programer sesama. Mereka terus desain mereka yang sederhana dan bersih. Mereka mendapatkan umpan balik dengan menguji perangkat lunak mereka dimulai pada hari pertama. Mereka memberikan sistem ke pelanggan sebagai perubahan sedini mungkin dan melaksanakan seperti yang disarankan. Setiap keberhasilan kecil memperdalam rasa hormat mereka atas kontribusi yang unik dari masing-masing dan setiap anggota tim. Dengan dasar Extreme pemrogram dapat berani merespon perubahan kebutuhan dan teknologi.Aspek yang paling mengejutkan dari Extreme Programming adalah aturan sederhana. Extreme Pemrograman sangat mirip jig gergaji teka-teki. Ada banyak potonganpotongan kecil. Individual potongan Extreme Programming adalah metode pengembangan perangkat lunak yang ringan dan termasuk salah satu agile methods yang dipelopori oleh Kent Beck, Ron Je ries, dan Ward Cunningham.

Tujuan Extreme Programming

Tujuan utama dalam extreme programming adalah menurunkan biaya dari adanya perubahan software .Dalam metodologi pengembangan sistem tradisional, kebutuhan sistem ditentukan padatahap awal pengembangan proyek dan bersifat xed. Hal ini berarti biaya terhadap adanya perubahan kebutuhan yang terjadi pada tahap selanjutnya akan menjadi mahal. XP diarahkan untuk menurunkan biaya dari adanya perubahan dengan memperkenalkan nilai-nilai basis dasar, prinsip dan praktis. Dengan menerapkan XP, pengembangan suatu sistem haruslah lebih eksibel terhadap perubahan. Sasaran XP adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang sangat cepat. XP dimunculkan untuk menangani perubahan-perubahan yang biasanya sering terjadi pada saat pengembangan berlangsung bahkan pada saat proses pengembangan sudah hampir berakhir.

 Kelebihan dan Kelemahan Extreme Programing

Keunggulan:

  •  Menjalin komunikasi yang baik dengan klien. (Planning Phase)
  •  Menurunkan biaya pengembangan (Implementation Phase)
  •  Meningkatkan komunikasi dan sifat saling menghargai antar developer. (Implementation Phase)
  • XP merupkan metodologi yangsemi formal. (Planning Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima, atau dengan
  •    kata lain eksibel. (Maintenance Phase)

Kelemahan :

  • Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan

apa yang diperlukan hari itu juga). Selain dari keunggulan dan kelemahan XP yang telah disebutkan

diatas, XP juga memiliki keunggulan yang sekaligus menjadi kelemahannya, yaitu XP tidak memiliki
dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.

Nilai Dasar Extreme Programming
8-183811ecc7.jpg
Communication
 Extreme Programming 
 berfokus bagaimana caraagar hubungan komunikasi antar anggota tim terjalin dengan baik.
Courage
Demi tercapainya proyek pengembangan yang sukses, setiap masing-masing anggota tim harusselalu memiliki keberanian, keyakinan serta integritas dalam melakukan tugasnya.
 Simplicity
selalu mencari solusi yang paling sederhana dan paling praktis. Gunakanlah
method yang mudah, pendek atau tidak terlalu rumit dalam pembuatan desain serta hilangkanlah fitur-fitur yang tidak berguna.
Feedback 
feeback adalah hal penting yang bertujuan untuk mengetahuikemajuan dari proses maupunkualitas perangkat lunak yang dibangun. Kewajiban anggota tim maupun pihak lainnya untuk terlibat dalam memberikan
 feedback yang baik.
Penerapan Extreme Programming
Penggunaan sebuah metodologi pengembangan sistem tidaklah sembarangan.
 Extreme Programming
itu sendiri tepat digunakan apabila :
− Keperluan berubah sangat cepat ( permintaan user yang berubah)
− Tingginya resiko
− Terdapat proyek dengan tantangan baru
− Memiliki sedikit tim programmehanya sekitar 2-10 orang
− Mampu mengotomatisasikan tes
− Adanya peran serta pelanggan secara langsung

Latar Belakang Extreme Programming

Requirement yang berubah dengan cepat menuntut lifecycles yang lebih pendek, dan tidak selaras dengan metoda pengembangan tradisional, yang pada umumnya memerlukan disain luas di awal dan mengakibatkan perubahan desain yang terjadi kemudian memerlukan biaya yang lebih tinggi atau kehilangan milestones. Berdasarkan hal ini kemudian dilahirkan konsep XP yang digagas oleh Kent Beck dan Ward Cunningham pada Maret 1996. Metode XP merupakan yang terpopuler dari beberapa metodologi pengembangan software yang dipakai untuk mengimplementasikan proyek pengembangan perangkat lunak.

 

Penerapan Extreme Programmning
Beberapa hal yang harus dipertimbangkan sebelum seseorang masuk dalam dunia Extreme Programmning adalah sebagai berikut:

  • User harus memahami konteks bisnis yang akan dikembangkan sistemnya, sehingga developer dapat menangkap sistem secara aplikatif dan dapat mengusulkan teknologi apa yang dapat dikembangkan dalam sistem barunya.
  •  Akan lebih efektif apabila developer pernah menangani proyek pengembangan sistem yang sejenis sehingga dapat memberikan usulan model sistem baru, di samping alasan bahwa developer telah memiliki template aplikasi sistem tersebut untuk dijadikan prototype sistem baru. Hal ini akan berimplikasi kepada kemudahan dalam konstruksi sistem karena dikembangkan berdasarkan template yang sudah ada.
  • Extreme programming menuntut komunikasi antar developer dan user secara intensif dan komunikasi internal antar developer secara komprehensif, sehingga akan lebih representatif apabila tahap pengembangan sistem dilakukan di lokal yang mendukung proses komunikasi tersebut.
Referensi :
Iklan
Andalan

Pengembangan Sistem Informasi

Pengembangan sistem informasi manajemen dilakukan melalui beberapa tahap, dimana masing-masing langkah menghasilkan suatu yang lebih rinci dari tahap sebelumnya. Tahap awal dari pengembangan sistem umumnya dimulai dengan mendeskripsikan kebutuhan pengguna dari sisi pendekatan sistem rencana stratejik yang bersifat makro, diikuti dengan penjabaran rencana stratejik dan kebutuhan organisasi jangka menengah dan jangka panjang, lazimnya untuk periode 3 sampai 5 tahun. Masukan (input) utama yang dibutuhkan dalam tahap ini mencakup:
• Kebutuhan stratejik organisasi
• Aspek legal pendukung organisasi
• Masukan kebutuhan dari pengguna

Sistem stratejik dijabarkan dalam:
1. Visi dan Misi; Strategi pengembangan sistem membutuhkan keputusan politis dari pimpinan tertinggi yang telah dijabarkan dalam strategi aktivitas organisasi.
2. Analisis Tugas Pokok dan Fungsi Organisasi dan kompetensi yang dimiliki. Analisis Tupoksi akan mengarah pada seberapa jauh pencapaian kinerja organisasi dapat dicapai, dengan menggunakan trend-trend penting, risiko-risiko yang harus dihadapi dan potensi peluang yang dimiliki (menggunakan analisis SWOT).
Analisa kompetensi akan memberikan gambaran yang lengkap mengenai efektivitas organisasi yang dapat dilihat dari 4 hal yaitu: sumberdaya, infrastruktur, produk layanan/jasa dan kepuasan pelanggan/ masyarakat yang dilayani.

METODE PENGEMBANGAN SISTEM INFORMASI

Pengembangan sistem informasi adalah Pengembangan sistem Informasi sering disebut sebagai proses pengembangan sistem (system development).

Pengembangan sistem informasi didefinisikan sebagai aktivitas untuk menghasilkan sistem informasi bebrbasis computer untuk menyelesaikan persoalan organisasi atau memanfaatkan kesempatan (oppurtinities) yang timbul.

DEFINISI (LANJUTAN)

Sebenarnya untuk  menghasilkan sistem informasi tersebut terdiri dari :

  1. System analisis : upaya mendapatkan gambaran bagaimana sistem bekerja dan masalah-masalah apa saja yang ada pada sistem.
  2. System development adalah langkah-langkah mengembangkan sistem informasi yang baru berdasarkan gambaran cara kerja sistem dan permasalahan yang ada

METODOLOGI PENGEMBANGAN SYSTEM

Metodologi pengembangan system adalah suatu proses pengembangan sistem yang formal dan persisi yanf mendefinisikan serangkaian aktivitas, metode, best practices, dan tool yg terautomatisi bagi para pengembang manager pproyekk dalam rangka mengembangkan dan merawat sebagian besar atau keseluruhan sistem informasi atau software >whitten, 2001

MENGAPA PERLU ADANYA PENGEMBANGAN SYSTEM INFORMASI??

  1. Menjamin adanya konsistensi proses
  2. Dapat diterapkan dalam berbagai jenis proyek
  3. Mengurangi resiko kesalahan dan pengambilan jalan pintas
  4. Menuntut adanya dokumentasi yang konsisiten yang harus bermanfaat bagi personal baru dalam tim proyek.

Pada prinsipnya metodologi dapat dikembangkan sendiri, bisa juga menggunakan metodologi yang sudah teruji penerapannya.

CRITICAL SUCCESS FACTOR (Faktor Penentu Keberhasilan Pengembangan Sistem Informasi)

factor-clipart-critical-success-factor-roadsign-illustrated-road-sign-management-buzzwords-35186119.jpg

1. Melibatkan para pengguna (User), pengguna disini adalah semua orang yang terlibat dalam pengembangan, entah itu pihak eksternal (pengembang) atau internal (perusahaan) seperti, pengguna, analis, perancang, programmer, pembangun, manajer, pemilik dll.

2. Menggunakan pendekatan pemecahan masalah. Ada dua metode pendekatan pemecahan masalah yaitu Pemecahan Masalah Terstruktur dan Pemecahan Masalah Tak Terstruktur.

3. Membentuk fase dan aktivitas.

4. Mendokumentasikan selama proses pengembangan. Hal ini dilakukan untuk mengetahui kelebihan dan kekurangan (kelemahan) sebuah sistem yang sedang dikembangkan

5. Membentuk standar. Sistem yang baik adalah sistem yang terintegrasi dengan IT, tentunya terdapat standar yang menjadi tolok ukur untuk sebuah sistem yang ideal dan dapat bersaing. Biasanya para analis membuat standar yang umum yang mencirikan sistem yang dinamis dan maju misal penggunaan teknologi database, software dan sebagainya.

6. Mengelola proses dan proyek. Konsisten dalam mengerjakan proyek-proyek, tugas inti daripada manajemen proyek yang memastikan semuanya berjalan sesuai rencana dan semestinya.

7. Menentukan Sistem Informasi sebagai investasi modal. Biaya untuk pengembangan suatu sistem informasi tidaklah murah, oleh karena itu sudut pandang seorang manajer atau pengembang harus diubah bahwa biaya mahal tersebut merupakan investasi modal yang nantinya akan berimbas positif terhadap perusahaan terutama dari segi efisiensi kegiatan dan proses bisnis. Dan tentu saja dari situ pula dapat meninggikan grafik pendapatan (profit) perusahaan tersebut.

8. Tidak takut terhadap pembatalan atau merefisi lingkup. Yap! Selalu positif thinking! Jika jatuh, bangkitlah kembali. Sebuah revisi atau bahkan pembatalan sebuah rencana pengembangan adalah hal yang wajar dan suatu yang memang harus dihadapi. Hal ini biasanya dikarenakan perusahaan pengembang kekurangan biaya ditengah-tengah proses pengembangan atau mungkin juga bangkrut.

9. Melakukan pembagian yang jelas. Setiap ahli harus pada bidangnya dan pada waktu yang tepat.

10. Mendesain untuk pertumbuhan dan perubahan. Sistem yang baik dimasa kini dan akan datang haruslah Fleksibel, mudah menyesuaikan dengan perkembangan zaman. Sehingga jika ingin dilakukan peningkatan, pengembangan hanya dilakukan di beberapa aspek (tidak keseluruhan).

TAHAPAN PENGEMBANGAN SISTEM INFORMASI 

  1. Tahap Perencanaan
  2.  Tahap Analisis
  3.  Tahap Desain
  4.  Tahap Penerapan
  5. Tahap Perawatan

1. Tahap PerencananTahapan ini merupakan tahapan dimana pengembang mendefinisikan perkiraan-perkiraan kebutuhan akan sumber daya yang sifatnya masih umum seperti kebutuhan user, kebutuhan infrastruktur dan lain-lain.Langkah-langkah dalam tahapan perencanaan:

· Menyadari adanya masalah

· Mendefinisikan masalah

· Menentukan tujuan sistem

· Mengidentifikasikan kendala-kendala sistem

· Membuat studi kelayakan

· Mempersiapkan usulan penelitian sistem

· Menyetujui atau menolak penelitian sistem

· Menetapkan mekanisme pengendalian

2. Tahap Analisis

Tahap penelitian atas sistem yang telah ada dengan tujuan untuk merancang sistem yang baru atau diperbaharui. Informasi yang didapat dari proses sebelumnya yaitu tahap perencanaan dikaji lebih dalam oleh seorang “Analis Sistem” atau System Analist. Dari hasil kajiannya seorang analis tersebut akan menemukan beberapa kelemahan sistem sehingga nantinya ia akan dapat mengusulkan suatu perbaikan atau solusi.

Kegiatan-kegiatan pada tahap Analisis:

a. Convention. Mendeteksi sistem, apabila sistem saat ini semakin berkurang manfaatnya (Memburuk)

b. Initial Investigation. Memeriksa sistem saat ini dengan penekanan pada daerah-daerah yang menimbulkan permasalahan.

c. Determination of Ideal System. Mendapatkan Konsensus (semacam kesepakatan/voting) dari komunitas pengguna sistem (para user) tentang sebuah sistem yang ideal (sistem yang diinginkan dari setiap user).

d. Generation of System Alternatives. Menggali (explore) perbedaan dari alternatif-alternatif sistem yang ada dalam mengurangi jarak (gap) antara sistem saat in idengan sistem idealnya.

e. Selection of Proper System. Membandingkan alternatif-alternatif sistem dengan menggunakan metodologi terstruktur, memilih alternatif sistem yang paling baik dan mengajukannya atau menjualnya kepada perusahaan.

3. Tahap Desain

Tahapan setelah analisis sistem yang menentukan proses dan data yang diperlukan oleh sistem baru. Tujuannya untuk memenuhi kebutuhan pemakai serta memberikan gambaran yang jelas dan rancang bangun yang lengkap kepada pemrogram dan ahli teknik lain yang terlibat dalam pengembangan sistem.

Kegiatan yang dilakukan pada tahap Desain:

a. Output Design. Mendesain tampilan-tampilan output dari suatu sistem, berkas atau form.

b. Infput Design. Mendesain form/dokumen masukan untuk sistem.

c. File Design. Memberikan bentuk-bentuk file yang dibutuhkan dalam sistem informasi.

 4. Tahap Penerapan

Tahap dimana desain sistem yang sudah dibentuj sudah menjadi suatu kode yang             siap untuk dioperasikan.

Kegiatan-kegiatan yang dilakukan pada tahap Penerapa

a. Programming and Testing. Mengkonversikan perancangan logikal kedalam                   kegiatan operasi coding dengan bahasa pemrograman tertentu dan mengetest                     program, memastikan semua fungsi/modul berjalan dengan lancar.

b. Training. Memimpin sebuah pelatihan dalam menggunakan sistem baru yang                 telah dikembangkan, juga termasuk persiapan lokasi dan tugas-tugas lain yang                    berhubungan dengan pelatihan seperti modul pembelajaran dan jadwal training.

c. Sistem Change Over. Merubah pemakaian sistem lama ke sistem baru, dari                       sistem informasi yang berhasil dibangun. Adapun beberapa metode konversis                     sistem diantaranya yaitu:

(a) Konversi Paralel

(b) Konversi Bertahap

(c) Konversi Percontohan

(d) Langsung/Change Over.

5. Tahap Perawatan

a. Penggunaan Sistem

b. Audit Sistem. Melakukan pengamatan dan penelitian formal untuk menentukan                 seberapa baik sistem baru dapat memenuhi kriteria kerja.

c. Penjagaan Sistem. Pemantauan rutin

d. Perbaikan Sistem. Melakukan perbaikan jika dalam program terdapat kelemahan               rancangan yang tidak terdeteksi saat tahap pengujuan sistem.

e. Meningkatkan Sistem. Jika manejer melihat adanya potensi peningkatan sistem,                 hal ini bisa ditindaklanjuti untuk memodifikasi sistem sesuai keinginan manejer                tersebut.

Referensi:

http://abdee-joy.blogspot.com/2010/12/pengembangan-sistem-informasi.html

http://derryj.blogspot.com/2013/03/pengembangan-sistem-informasi.html

http://pojoksisteminformasi.blogspot.com/2013/01/konsep-sistem-informasi-pengembangan.html

PACKAGE DIAGRAM

Bagi yang pernah belajar jaringan komputer tentu tidak asing dengan istilah package. Package yang dalam bahasa Indonesianya berarti paket dalam dunia networking dimanfaatkan dalam komunikasi datanya dimana data tidak dikirimkan langsung dalam bentuk binernya melainkan dikelompokkan terlebih dahulu dalam paket-paket. Package diagram merupakan salah satu dari delapan/sembilan diagram UML. Atau saat kita download salah satu installer linux, yang kita download berupa package-package. Dalam literatur pemrograman dengan visual basic, saat akan mendeploy software yang baru kita buat kita diminta untuk mengambil package-package yang dibutuhkan. Sedangkan dalam bahasa Java dan C++, package selalu diimport saat kita menuliskan code programnya.
Package merupakan kumpulan dari class. Penggambaran diagram Package mirip dengan simbol folder dalam Microsoft Windows. Kita ambil kasus pada sistem penjualan dan pembelian, maka kita dapat membuat dua package yaitu package penjualan dan package pembelian. Di dalam package penjualan kita bisa menggambarkan use case penjualan. Salah satu manfaat package adalah kemampuannya untuk digunakan pada component lainnya.
Dalam menggunakan package sistem lain dikenal dua istilah yaitu:
1. Import Package: Meminjam package lain yang bertipe public.
2. Access Package: seperti import hanya saja tipe package berubah menjadi private.
Import dilukiskan dengan garis putus-putus dengan panah menunjuk pada package induk (si pemilik kelas) dengan tulisan “import” dekat garis putus-putus tersebut. Sedangkan access dengan cara yang sama, hanya saja tulisan “import” diganti dengan “access”.
Pengertian Package Diagram
Package Diagram (diagram paket) adalah sekelompok elemen-elemen model. sebuah paket dapat berisi elemen-elemen model yang berlainan, termasuk paket-paket untuk menciptakan/menggambarkan sifat hiraki. sebuah paket diberi nama yang menggambarkan isinya. oleh karena itu package dapat digunakan untuk beberapa keperluan dan kebutuhan.
Simbol-Simbol Package Diagram
Contoh Package Diagram
Package Diagram in UML
Fungsi package diagram :
–  Memperlihatkan bagaimana elemen model diorganisasikan/dikelompokkan ke dalam packages
– Biasanya dipakai pada use case diagram atau class diagram
– Packages digambarkan sebagai sebuah direktori (file folders) yang berisi model-model elemen
– Packages dapat diterapkan pada sembarang diagram UML
– Walaupun package secara resmi bukanlah diagram UML, namun kegunaannya cukup signifikan
–  Penjelasan package diagram pada masing-masing diagram UMLContoh element-element pada pack age diagram

Contoh Sub package :

Referensi :

DEPLOYMENT DIAGRAM

Deployment diagram adalah diagram yang digunakan memetakan software ke processing node. Menunjukkan konfigurasi elemen pemroses pada saat run time dan software yang ada didalamnya. Diagram Ini adalah salah satu diagram paling penting dalam tingkat implementasi perangkat lunak dan kadang-kadang ditulis sebelum coding.
Dengan menggunakan deployment diagram, kita dapat menentukan ruang yang tersedia
dan waktu eksekusi yang tersedia oleh perangkat keras.

Capture

Fungsi Deployment Diagram
Fungsi dari deployment diagram adalah :
 Menunjukkan dimana setiap komponen komponen perangkat keras perangkat lunak
diinstal(atau ditempatkan) (node).
 Menunjukkan hubungan komunikasi antara komponen perangkat keras.
 Menunjukkan struktur dari sistem run-time

 Node Deployment Diagram
Node digunakan untuk mengimplemetasikan hardware pada sistem. Biasanya node
merepresentasikan :
 Server
 Desktop PC
 Disk drives

Ada dua jenis Nodes.

  1. Device Node, secara fisikal menghitung sumber daya dengan pengolahan memory dan services untuk mengeksekusi software, seperti komputer atau mobile phone.
  2. Execution Environment Node (EEN) adalah software penghitung sumber daya yang berjalan dalam outer node dan menyediakan layanan untuk host dan mengeksekusi executable software.

Contoh Program

Deployment diagram juga  menunjukkan perangkat keras sistem dan perangkat lunak dalam perangkat keras tersebut. Diagram Deployment berguna ketika solusi perangkat lunak Anda dikerahkan di beberapa mesin dengan masing-masing memiliki konfigurasi yang unik.

Deployment Diagram mewakili pandangan pengembangan sistem sehingga akan hanya ada satu deployment diagram untuk satu sistem. deployment diagram terdiri dari node-node merupakan perangkat keras fisik yang digunakan untuk menyebarkan aplikasi. deployment diagram banyak di gunakan oleh System Engineer.

   Komponen Deployment Diagram

Langkah Pembuatan Deployment Diagram

  1. Double klik Deployment pada browser.
  2. Untuk membuat sebuah node, klik icon Prosessor kemudian klik pada diagram untuk menempatkan.
  3. Ketika node masih terpilih, masukkan nama node.

Untuk membuat hubungan antara node, klik icon connection dari toolbar, klik pada salah satu node pada deployment diagram dan drag sambungan tersebut pada nodelainnya.

Contoh Studi Kasus Sistem Informasi Penjualan Online

Membuat Component and Deploy Diagram sebagai berikut :

Penjelasan Gambar:
Component diagram digunakan untuk melihat hubungan antar component dengan perangkat keras, misalnya yang di gambarkan di dalam component diagram diatas adalah desktop admin dan desktop client(pembeli) sama-sama memiliki user interface. Di dalam desktop mereka, mereka bias mengakses computer server dengan fungsi yang berbeda, misalnya desktop client melihat data di computer server dan ia bisa merubah data barang, menambah data barang, menghapus data barang serta melihat data pembelian. Sementara desktop client hanya dapat melihat barang yang ada dan melakukan transaksi secara online. Desktop client juga berhubungan dengan printer yang digunakan untuk mencetak bukti transaksi. Komputer server juga berhubungan dengan database karena di database tersimpan semua data yang dibutuhkan.

Contoh Deployment Diagram


Contoh disini adalah proses browsing informasi yang umum dilakukan pada suatu PC yang tersambuang ke Internet menggunakan aplikasi browser yang akan meminta atau request informasi melewati web server dan akan diteruskan ke database server

 

 

Referensi :

http://ocw.ui.ac.id/pluginfile.php/338/mod_resource/content/0/Modul%2013%20-%20Deployment%20Diagram.pdf

http://aendeick.blogspot.com/2014/04/deployment-diagram.html

http://tugasrplmti.blogspot.com/2012/11/deployment-diagram-dwi-nurani-12510302.html

http://alfindaffa.blogspot.com/2016/05/a.html?m=1

Aspek – Aspek OOP (Object Oriented Programming)

Object Oriented Programming

 

Pemrograman berorientasi objek (object-oriented programming disingkat OOP) merupakan pemograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya.

Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Istilah-istilah dalam OOP:

  • Kelas atau Class

    Merupakan kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh ‘class of dog‘ adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/ turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.

  • Objek

    Membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer, objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

  • Abstraksi

    Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

  • Enkapsulasi

    Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

  • Polimorfisme melalui pengiriman pesan

    Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan “gerak cepat”, dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas administrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.

Salah satu pemograman pendukung OOP adalah bahasa pemograman Java.

Java adalah salah satu bahasa pemograman OOP. Bahasa ini awalnya dibuat oleh James Gosling. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda yang berbeda, java dikenal pula dengan slogannya, “Tulis sekali, jalankan di mana pun”. Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.

Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:

java.lang: Peruntukan kelas elemen-elemen dasar.

java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas.

java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan.

java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.

java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)

java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.
Kelebihan bahasa pemograman Java antara lain:

  • Multiplatform

    Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform/ sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin/ bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebanya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut.

  • OOP (Object Oriented Programming – Pemrogram Berorientasi Objek)
  • Perpustakaan Kelas Yang Lengkap

    Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.

  • Bergaya C++

    Memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.

  • Pengumpulan Sampah otomatis

    Memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).

Selain mempunyai kelebihan seperti yang sudah dijelaskan di atas, pemograman Java juga mempunyai kekurangan yaitu:

  • Tulis sekali, jalankan di mana saja

    Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.

  • Mudah didekompilasi

    Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Micosoft, NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/ reverse-engineer.

  • Penggunaan memori yang banyak.

    Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.

Banyak pihak telah membuat IDE (Integrated Development Environment – Lingkungan Pengembangan Terintegrasi) untuk Java. Yang populer saat ini (Juli 2006) antara lain:

  • Dr. Java, program gratis yang dikembangkan oleh Universitas Rice, Amerika Serikat
  • BlueJ, program gratis yang dikembangkan oleh Universitas Monash, Australia
  • NetBeans (open source- Common Development and Distribution License (CDDL))
  • NetBeans disponsori Sun Microsystems, dan versi terkininya memilki Matisse, sebuah GUI Editor yang menurut pendapat umum merupakan yang terbaik.
  • Eclipse JDT (open source- Eclipse Public License). Eclipse dibuat dari kerja sama antara perusahaan-perusahaan anggota ‘Eclipse Foundation’ (beserta individu-individu lain). Banyak nama besar yang ikut dalam ‘Eclipse Foundation’, termasuk IBM, BEA, Intel, Nokia, Borland. Eclipse bersaing langsung dengan Netbeans IDE. Plugin tambahan pada Eclipse jauh lebih banyak dan bervariasi dibandingkan IDE lainnya.
  • IntelliJ IDEA (commercial, free 30-day trial)
  • Oracle JDeveloper (free)
  • Xinox JCreator (ada versi berbayar maupun free)
  • JCreator ditulis dalam C/C++ sehingga lebih cepat (dan menggunakan memori lebih sedikit) dari kebanyakan IDE.

Referensi :

http://technopark.surakarta.go.id/id/component/k2/item/402-konsep-dasar-pemrograman-berorientasi-objek

Use Case Diagram

 

Image result for use case diagram pengertian

Pengertian Use Case

sebuah kegiatan atau juga interaksi yang saling berkesinambungan antara aktor dan juga sistem. Atau dengan kata lain teknik secara umum digunakan, guna mengembangkan software / sistem informasi, guna memperoleh kebutuhan fungsional dari sistem yang ada.

Komponen tersebut kemudian menjelaskan komunikasi antara actor, dengan sistem yang ada. Dengan demikian, use case dapat dipresentasikan dengan urutan yang sederhana, dan akan mudah dipahami oleh para konsumen.

Use case ini adalah layanan atau juga fungi yang ada pada sistem untuk para penggunanya. Sedangkan Use case Diagram, adalah gambaran efek fungsionalitas yang diharapkan oleh sistem.

Komponen ini pastinya sangat membantu ketika Anda sedanh menyusun requitment pada sebuah sistem, kemudian mengkomunikasikan rancangan aplikasi tersebut pada konsumen, dan juga merancang test case untuk berbagai fiture yang ada di sistem.

Use case ini dapat digunakan atau diaplikasikan ke use case lainnya, sehingga duplikasi fungsionalitas dapat dihindari, caranya adalah dengan menarik keluar fungsional yang common.

Fungsi Use Case

pengertian use case

Use case sendiri juga mempunyai fungsi serta manfat yang baik untuk para pembuat dan juga para konsumen.

Fungsi use case diagram ini cukup banyak, antara lain :

  • Dapat memperlihatkan urutan aktifitas proses yang ada pada sistem
  • Dapat menggambarkan prose bisnis dan juga urutan aktivitas yang ada dalam sebuah proses

Sedangkan manfaat dari Use case sendiri adalah ;

  • Untuk memudahkan komunikasi dengan menggunakan domain expert dan juga end user.
  • Adanya Interface yang harus dimiliki oleh sebuah sistem.
  • Memberikan kepastian pemahaman yang pas, tentng requirement atau juga kebutuhan sebuah sistem.
  • Dapat digunakan untuk mengidentifikasi, siapa yang sedang berinteraksi dengan sistem, dan juga apa yang harus dilakukan untuk sistem tersebut.
  • Biasanya digunakan untuk verifikasi.

Komponen Use Case

use case diagram

Komponen use case sendiri hanya ada 3 macam, yaitu Sistem, Aktor dan juga use case sendiri. Berikut ini adalah penjelasan mengenai Use case diagram :

  1. Sistem

Sebagai batasan sistem yang ada pada relasi dengan actor actor yang biasa menggunakannya dari luar sistem, dan fitur-fitur yang harus disediakan dalam sistem. Perangkat ini akan digambarkan dengan pola segi empat yang akan membatasi semua use case yang ada dalam sistem terhadap pihak yang mana sistem tersebut akan berinteraksi.

Sistem tersebut akan dibeli label, sesuai dengan nama label tersebut. Tapi umumnya sistem ini tidak diberi gambar karena tidak terlalu memberikan arti bagi diagram tersebut.

  1. Actor

Actor disini sebenarnya bukan bagian dari diagram, akan tetapi actor ini adalah salah satu alat untuk menciptakan use case diagram jadi lebih mudah. Actor ini akan digunakan untuk menjelaskan sesuatu atau juga seseorang yang sedang berinteraksi dengan sistem.

Dimana actor ini akan memberikan informasi pada sistem, hanya akan menerima informasi dari sistem, atau juga keduanya (yaitu memberikan informasi dari sistem, atau menerima informasi dari sistem). Disini Actor juga tidak akan memiliki kontrol terhadap use case itu sendiri, namun hanya diberikan gambaran umum atau juga spesifik, guna memudahkan Anda dalam menggunakan hubungan atau relationship yang ada.

Ada beberapa hal yang memungkinkan actor berhubungan dengan sistem lainnya, antara lain :

  • Ketika seseorang ataupun pihak lain akan mengelola sistem tersebut.
  • Adanya kepentingan terhadap sistem, dimana arus informasi baik untuk si penerima maupun inputan sistem saling berkepentingan.
  • Adanya external resource yang digunakan oleh sistem tersebut.
  • Adanya sistem lain yang tengah berinteraksi dengan sistem yang dibuat.
  1. Use case

Use Case sendiri adalah gambaran fungsional dari sebuah sistem. Dengan demikian, antara konsumen dan juga pengguna pada sistem tersebut, akan mengerti atau paham mengenai fungsi sistem yang tengah dibangun.

Relasi dalam Use Case

Ada beberapa relasi dalam use case yang harus Anda ketahui, antara lain :

  1. Association

Ini adalah teknik mengindentifikasi interaksi yang dilakukan oleh actor tertentu dengan use case tertentu pula. Hal ini digambarkan dengan garis antara actor tehadap use case tersebut. Asosiasi ini biasanya ditandai dengan garis 1 arah (ditandai dengan garis anak panah), jika terjadi komunikasi 2 arah, maka tanda panas tidak akan diperlukan.

  1. Generalization

Ini adalah teknik mengindetifikasi relasi antara 2 aktor can juga 2 Use case, dimana salah satunya akan meng- inherit dan juga menambah atau override sifat dari perangkat lainnya. untuk teknik penggambarannya menggunakan garis bermata panah yang kosong. Garis akan diambil dari yang meng-inherit kemudian mengarah ke yang di-inherit.

  1. Dependency

Dependency ini terbagi menjadi 2 macam, yaitu include dan juga extend.

Yang dimaksud dengan Include, adalah :

  • Berfungsi untuk mengindentifikasi hubungan antara 2 use case, dimana use case yang satu akan memanggil use case yang lainnya.
  • Apabila ada beberapa use case dengan aktifitas yang sama, maka bagian aktifitas tersebut. akan dijadikan aktifitas tersendiri, dengan relasi dependensi use case semula ke use case yang baru.
  • Biasanya digambarkan dengan garis putus-putus dengan mata panah notasi include yang pada garis. Kemudian arahkan mata panah sesuai dengan arah yang memanggil.

Yang dimaksud dengan extend, adalah :

  • Apabila pemanggilan, memerlukan kondisi tertentu maka akan berlaku dependensi.
  • Konsep extend ini berbeda dengan konsep extend dalam program Java.
  • Dependensi ini akan digambarkan dengan dependensi incude namun dengan arah panah yang berlawanan.
  1. Aggregation

Aggregation ini adalah sebuah bentuk association yang maka elemen yang satu akan berisi elemen lainya.

Levelling Use Case

Use Case memiliki dua istilah :
• System use case : Interaksi dengan sistem.
• Business use case : Bisnis interaksi dengan konsumen atau kejadian.

 Cookburn menyarankan pembedaan level :
• Sea level : Interaksi sistem dengan actor utama.
• Fish level : Use case yang ada karena include dari use case sea-level.
• Kite level : Menggambarkan sea-level use case untuk interaksi bisnis yang lebih luas.

contoh  diagram use case

 

 

 

Referensi :

https://salamadian.com/pengertian-use-case-diagram-adalah/

https://repository.unikom.ac.id/35625/1/NOTASI%20UML.pdf

https://pccontrol.wordpress.com/2012/08/23/pengetahuan-dasardiagram-use-case/

Project

Screenshot (96)

#include <stdio.h>

#include <conio.h>

#include <iostream>

#include <iomanip>

#include <string.h>

#include <stdlib.h>

 

using namespace std;

judul()

{printf(”                   TOKO SEPEDA\”GOESS\” \n”);

printf(”              =================================\n”);

}

garis()

{

printf(“=================================================================\n”);

}

struct

{

char kp[2],ku[2],paket[20],ukuran[10];

int banyak;

long harga,subtotal;

}ra[10];

char pembeli[10],petugas[10],lagi,menu,anggota[10],alamat[20],profesi[10],telp[12];

int a,b;

long total,bayar,diskon,kembali;

sum()

{

total=total+ra[a].subtotal;

}

int main()

{

 

awal:

 

system(“cls”);

total=0;

cout<<“\t            Selamat Datang di Toko Sepeda \”GOESS\” “<<endl;

cout<<”   ===================================================”<<endl;

cout<<“Pilihan Menu : “<<endl;

cout<<”     1. Input Data Transaksi”<<endl;

cout<<”     2. Log Out”<<endl<<endl;

garis();

cout<<“Inputkan Pilihan Anda = “;menu=getch();

cout<<menu<<endl;

cout<<“Tekan ENTER untuk melanjutkan..”;getch();

if(menu==’1′) goto transaksi;

else if(menu==’2′) goto akhir;

transaksi:

system(“cls”);

judul();

cout<<endl;

cout<<“INPUT DATA TRANSAKSI”<<endl<<endl;;

cout<<“Nama Petugas : “;cin>>petugas;

cout<<“Nama Pembeli : “;cin>>pembeli;

cout<<“Banyak Data  : “;cin>>b;

cout<<endl<<endl;

 

for(a=1;a<=b;a++)

 

{

cout<<“Data ke – “<<a<<endl;

cout<<“Input Kode Paket [C/M/R] : “;cin>>ra[a].kp;

cout<<“Input Kode Ukuran [1/2]   : “;cin>>ra[a].ku;

cout<<“Jumlah Beli    : “;cin>>ra[a].banyak;

cout<<endl;

 

if((!strcmp(ra[a].kp,”C”))||(!strcmp(ra[a].kp,”c”)))

{

strcpy(ra[a].paket,”City”);

if(strcmp(ra[a].ku,”1″)==0||strcmp(ra[a].ku,”1″)==0)

{

strcpy(ra[a].ukuran,”Kecil”);

ra[a].harga=1770000;

}

else if(strcmp(ra[a].ku,”2″)==0||strcmp(ra[a].ku,”2″)==0)

{

strcpy(ra[a].ukuran,”Besar”);

ra[a].harga=3400000;

}

}

else if((!strcmp(ra[a].kp,”M”))||(!strcmp(ra[a].kp,”m”)))

{

strcpy(ra[a].paket,”Mountine”);

if(strcmp(ra[a].ku,”1″)==0||strcmp(ra[a].ku,”1″)==0)

{ strcpy(ra[a].ukuran,”Kecil”);

ra[a].harga=1720000;

}

else if(strcmp(ra[a].ku,”2″)==0||strcmp(ra[a].ku,”2″)==0)

{

strcpy(ra[a].ukuran,”Besar”);

ra[a].harga=2195000;

} }

else if((!strcmp(ra[a].kp,”R”))||(!strcmp(ra[a].kp,”r”)))

{

strcpy(ra[a].paket,”Road”);

if(strcmp(ra[a].ku,”1″)==0||strcmp(ra[a].ku,”1″)==0)

{

strcpy(ra[a].ukuran,”Kecil”);

 

ra[a].harga=2800000;  }

else if(strcmp(ra[a].ku,”2″)==0||strcmp(ra[a].ku,”2″)==0)

{

strcpy(ra[a].ukuran,”Besar”);

ra[a].harga=4100000;

}

}

}

system(“cls”);

judul();

cout<<“Nama Petugas  : “<<petugas<<endl;

cout<<“Nama Penyewa  : “<<pembeli<<endl;

cout<<“DATA PEMBELIAN SEPEDA”<<endl;

garis();

cout<<“No.  Jenis           Jenis    Harga      Jumlah   Jumlah Bayar”<<endl<<endl;

cout<<”     Sepeda         Paket                Beli              “<<endl;

garis();

for(a=1;a<=b;a++)

{

cout<<setiosflags(ios::left)<<setw(5)<<a;

cout<<setiosflags(ios::left)<<setw(15)<<ra[a].paket;

cout<<setiosflags(ios::left)<<setw(9)<<ra[a].ukuran;

cout<<setiosflags(ios::left)<<setw(11)<<ra[a].harga;

cout<<setiosflags(ios::left)<<setw(7)<<ra[a].banyak;

ra[a].subtotal=ra[a].harga*ra[a].banyak;

cout<<setiosflags(ios::left)<<setw(11)<<ra[a].subtotal<<endl;

sum(); }

cout<<endl;

 

garis();

cout<<endl;

cout<<”     Total Bayar    : “<<total<<endl;

diskon=0.1*total;

cout<<”    Uang Bayar     : “;cin>>bayar;

kembali=bayar-total;

 

cout<<”   Uang Kembali   : “<<kembali;

cout<<endl<<endl;

 

garis();

cout<<“Terimakasih telah membeli sepedah di toko kami”<<endl<<endl;

cout<<“Input Data Lagi [Y/T] ???”;cin>>lagi;

 

if(lagi==’Y’||lagi==’y’)

goto awal;

else

goto akhir;

getch();

 

akhir:

 

getch();

 

}