Deployment diagram

Deployment diagram adalah salah satu jenis alat atau bahasa (UML) yang digunakan untuk memvisualisasikan, menspesifikasikan, dan mendokumentasikan proses yang terjadi pada suatu sistem perangkat lunak berbasis Object Oriented yang akan dibangun. Tujuan atau fungsi dari deployment diagram yaitu untuk menggambarkan/memvisualisasikan secara umum proses yang
terjadi pada suatu sistem/software.

Deployment diagram adalah salah satu model diagram dalam UML untuk mengerahkan artifact dalam node. Deployment diagram digunakan untuk memvisualisasikan, menspesifikasikan, dan mendokumentasikan proses yang terjadi pada suatu sistem perangkat lunak berbasis Object Oriented yang akan dibangun. Tujuan atau fungsi dari deployment diagram yaitu untuk menggambarkan/memvisualisasikan secara umum proses yang terjadi pada suatu sistem/software.

Node dalam UML merepresentasikan hardaware atau software execution environments. Node bisa terhubung melalui communication path untuk membuat system jaringan dari arbitrary complexity. Artifacts dalam UML mempresentasikan Spesifikasi dari bentuk physic informasi yang digunakan atau dihasilkan development process.

1. Manifestation

Manifestation adalah hubungan abstraction yang mepresentasikan physical rendering atau hasil implementasi satu atau lebih model element dari artifact. Atau pemanfaatan model element dari konstruksi artifact. Artifact memanifest atau menunjukan satu atau lebih dari model element. Artifact bisa memiliki satu atau lebih manifestation. Setiap darinya memepresentasikan packageable element.

2. Deployment target

Artifacts dikerahkan ke deployment targets. Deployment target adalah lokasi untuk artifact yang telah dikerahkan. Deployment target tidak memiliki notation sendiri, tapi melihat notations untuk subclasses.

3. Node

Node adalah deployment target yang merepresentasikan sumber daya komputasi dimana artifact bisa menggunakan untuk mengeksekusi. Node diasosiasikan dengan deployment dari artifacts dan dapat diasosiasikan secara tidak langsung dengan packageable elements yang melibatkan ke dalam manifestation dari artifact yang dikerahkan ke node. Node dapat saling berhubungan dengan communication path.

Node dapat digambarkan dengan bentuk kubus tiga dimensi. Node juga dapat digambarkan dalam bentuk visual atau gabungan antara node dan visual.

Node dibagi menjadi dua yaitu device dan execution environment.

  • Device merepresentasikan hardware seperti : pc, laptop, handphone, dll
  • Execution environment merepresentasikan software containers seperti : OS, JVM, application servers, portal servers, dll
  • 4. Communication Path
    Communication path adalah asosiasi antara dua deployment target, melalui pertukaran sinyal dan pesan. Communication path digambarkan dengan bentuk garis utuh yang menghubungkan anatra dua node. Jenis komunikasi yang dimodelkan dapat ditampilkan menggunakan stereotip yang tepat. Saat deployment targetnya adalah execution environments. Communication path akan merepresentasikan bebeberapa protocol

    ##

    5. Deployment

    Deployment adalah hubungan dependency yang mendeskripsikan alokasi dari artifact ke deployment target. Deployment juga dapat didefinisikan instansi level sebagai alokasi spesifik instansi artifact menuju ke spesifik instansi dari deployment target

    Component deployment adalah deplyomnet dari satu atau lebih artifact atau instansi artifact, bersifat opsional yang terparameterisasi oleh deployment spesifiacation

    Deployment bisa diperlihatkan melalui tiga cara yaitu :

    • Dengan deployed artifact yang terkandung di deployment target,
    • Dengan bentuk tulisan daftar deployed artifact dalam deployment target
    • Dengan bentuk persegi panjang dengan nama deployment yang terletak dipojok kiri atas.

    Kata deployment di heading disingkat menjadi dep

    ##

    6. Dependency

    Dependency adalah hubungan yang menandakan bahwa satu atau sekumpulan model element membutuhkan model element lainnya untuk spesifikasi atau implementasinya. Dependency biasa juga disebut supplier yang menyediakan sesuatu untuk client. Memodifikasi supplier dapat mempengaruhi client element

    7. Deployment Specification

    Deployment specification adalah artifact yang menyespesifikasikan set dari deployment properties yang menentukan parameter – parameter eksekusi dari component artifact yang dikerahkan ke node.

    Deployment specification dapat ditujukan spesifik tipe container untuk componenet – component.

    Deployment specification adalah mekanisme umum untuk memparameteri deployment relationship.

    Deployment specification di specification level dirender sebagai classifier dalam kotak dengan opsi deployment properties di dalam compartment. Artifact yang mengimplementasikan deployment specification properties di level instansi adalah deployment descriptor. deployment descriptor ditandai dengan garis bawah di kotak classifier

    8. Deployment Specification Dependency

    A deployment specification bisa ditampilkan sebagai kotak classifier yang melampirkan component artifact menggunakan panah dependency yang menunjuk ke deployed artifact.

    9. Deployment Specification Association

    Deployment specification bisa diasosiasikan dengan deployment dari sebuah component artifact dalam sebuah node. Dalam kasus ini deployment specification bisa ditunjukan sebgai kotak classifie yang dilampirkan ke deployment.

    10. Component

    Component merepresentasikan bagian modular dari sebuah sistem yang mengkapsulasi isi dan yang memanifest dapat diganti dalam lingkungannya. component mendefinisikan perilaku dalam hal interface yang disediakan dan diperlukan. component dimodelkan sepanjang siklus hidup pengembangan dan berturut-turut disempurnakan menjadi deployment dan run – time. deployment specification dapat mendefinisikan nilai-nilai yang parameterisasi eksekusi komponen.

    Iklan

    Aspek-aspek utama pada OOP(Object Oriented Programming)

    Aspek utama pada OOP yaitu :

    1. Abstraction

    adalah suatu cara untuk melihat suatu object dalam bentuk yang lebih sederhana. Sebagai contoh kita tidak melihat sebuah mobil sebagai ribuan komponen elektronik, sistem mekanik dengan empat buah ban, jok, stir kemudi dan sebagainya. Dengan Abstraction, suatu sistem yang kompleks dapat dipandang sebagai kumpulan subsistem-subsistem yang lebih sederhana, seperti halnya mobil merupakan suatu sistem yang terdiri atas berbagai subsistem, seperti subsistem kemudi, subsistem pengereman dan sebagainya.

    Fungsi dari abstraction :

    untuk memfilter atribut dan operation sehingga hanya tinggal atribut dan operation yang diperlukan saja

     

    2. Inheritance

    merupakan konsep mewariskan attribute dan method yang dimiliki oleh sebuah class kepada class turunannya. Dengan konsep ini class yang dibuat cukup mendefinisikan attribute dan method yang spesifik didalamnya, sedangkan attribute dan method yang lebih umum akan didapatkan dari class yang menjadi induknya.

    contoh :

    foto baru.PNG

    3. Encapsulation

    merupakan proses pemaketan data bersama metode-metodenya dimana hal ini bermanfaat untuk menyembeunyikan rincian-rincian implementasi dari pemakai. Dalam sebuah objek yang mengandung variabel-variabel dan method-method, dapat ditentukan hak akses pada sebuah variabel atau method dari objek.

    Ada 2 manfaat utama dari encapsulation yaitu :

    1. Penyembunyian Informasi (information hiding)

    Hal ini mengacu kepada perlindungan terhadap implementasi obejk internal. Objek tersebut dari interface public dan bagian private yang merupakan kombinasi data dan metode internal. Manfaat utamanya adalah bagian internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain.

    1. Modularitas

    Modularitas berarti objek dapat dikelola secara independen. Karena kode sumber bagian internal objek dikelola secara terpisah dari antarmuka, maka Kita bebas melakukan modifikasi yang tidak menyebabkan masalah pada bagian-bagian lain dari sistem. Manfaat ini mempermudah mendistriibusikan objek-objek dari sistem.

    4.Polymorphism

    Adalah Satu nama operation yang memiliki bentuk proses yang berbeda

    Kondisi yang harus dipenuhi supaya polimorfisme dapat diimplementasikan adalah :

    • Method yang dipanggil harus melalui variabel dari basis class atau superclass.
    • Method yang dipanggil harus juga menjadi method dari basis class.
    • Signature method harus sama baik pada superclass maupun subclass.
    • Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.

    5. Message sending

    merupakan Pengiriman pesan dari suatu objek kepada objek lain untuk melakukan suatu operation yang berhubungan dengan polymorphism.

    6. Association

    Adalah hubungan antara object. Relasi assosiasi biasa disebut is “a” relationship. Assosiasi berarti bahwa sebuah object “menggunakan” object yang lain. Assosiasi adalah sebuah relasi dimana semua object memiliki lifecycle nya sendiri dan tidak ada yang bertindak sebagai owner.

    Contoh Teacher dan Student. Banyak Student dapat berasosiasi dengan satu Teacher dan satu Student dapat berasosiasi dengan banyak Teacher. Object keduanya bisa dibuat dan dihancurkan secara mandiri tanpa berpengaruh pada eksistensi object lain.

    7. Aggregation

    adalah bentuk hubungan yang lebih khusus dari Assosiasi dimana sebuah object memiliki lifecycle nya sendiri tapi dengan kepemilikan dan class child tidak dapat memiliki class parentnya. Relasinya biasa di sebut relasi “has-a”.

    sebagai contoh, Department dan Teacher. Satu Teacher tidak dapat memiliki banyak Department, tapi jika kita menghapus object Department, object Teacher tidak akan ikut terhapus. Karena object teacher di buat di luar object department, sehingga jika object department dihancurkan maka object teacher tetap exist. Object department bisa memiliki banyak object teacher yang berasosiasi dengannya, tapi tidak sebaliknya. Sehingga dalam relasi ini object department adalah owner dari object teacher.

     

    referensi :

    https://id.wikipedia.org/wiki/Pemrograman_berorientasi_objek

    Perbedaan Asosiasi, Agregasi dan Komposisi pada Object Oriented Programming

    http://willwellwie.blogspot.com/2014/10/encapsulation-inheritance-dan.html

    https://ndoware.com/pemrograman-berorientasi-objekobject-oriented-programming-oop.html

    https://radenbayunurazhar.wordpress.com/2019/02/22/aspek-aspek-utama-pada-oopobject-oriented-programming/

    Penerapan Metode Antrian Dalam Pelayanan Jasa Cuci Mobil Menggunakan Aplikasi Berbasis Android

    Abstrak

    Hampir setiap jenis layanan akan membentuk antrian misalnya pada jasa cuci mobil lancar. Proses ini dimulai ketika antrian pelanggan yang membutuhkan layanan mulai datang untuk mendapatkan urutan layanan. Antrian merupakan proses dari kedatangan pelanggan ke pusat layanan dan terjadi proses tunggu dalam layanan pada satu garis antrian. Untuk mengatasi permasalahan tersebut perlu diadakan penelitian secara sistematis dengan menganalisis masalah antrian tersebut. Sehingga masalah antrian tersebut dapat di manipulasi dengan adanya hybrid application yang dibangun dengan HTML5 dirasa tepat untuk mengembangkan website ke arah mobile application. Selain itu metode untuk membuat aplikasi itu dengan memisahkan data (Model) dari tampilan (View) dan cara bagaimana memprosesnya (Controller) biasa disebut Model View Controller. Penggunaan aplikasi antrian ini di harapkan agar konsumen tidak perlu lagi membuat barisan panjang untuk mendapatkan pelayanan. Aplikasi antrian akan menghasilkan pelayanan yang baik dan konsumen dapat mengantri dengan tertib.

     

    Kata kunci : MVC (Model View Controller), HTML5,hybrid application

     

    Use case Diagram antrian jasa cucian mobil x

    diagram jasa cucian mobil

     

     

    Alur Use case Diagram antrian jasa cucian mobil x

    Pada gambar diatas menjelaskan usecase dari perancangan aplikasi cuci mobil. Pertama kali setelah pelanggan login sebagai user maka dapat melihat banyaknya antrian yang ada. Setelah melihat, user dapat melakukan pemesanan. Sedangkan fungsi operator adalah mengolah data antrian yang ada seperti menyetujui permintaan sebagai user, permintaan pemesanan, dll.

    Capture

    Gambar 2 Diagram Activity antara pelanggan dan pegawai

    Pada gambar diatas menjelaskan activity diagram pada pelanggan yang telah terdaftar sebagai user. User dapat melihat berapa banyak antrian, user dapat memperkirakan apakah akan mencucikan mobilnya di sana atau tidak dengan melihat banyaknya antrian yang ada. Jika “ya” maka user akan masuk ke proses antrian dan admin akan memberikan persetujuan atas request user. Jika “tidak” maka user akan kembali ke proses awal. Setelah itu bisa melakukan user logout.

     

     

    Referensi

    http://repository.uksw.edu/bitstream/123456789/13632/1/T1_672013047_Full%20text.pdf

    ASPEK-ASPEK UTAMA DALAM OBJECT

    Abstraksi (abstraction)

    Abstraksi adalah pengabstrakan atau penyembunyian kerumitan dari suatu  proses. Sebagai contoh, orang tidak perlu berpikir bahwa mobil adalah kumpulan dari puluhan atau ribuan bagian-bagian kecil (mesin, kabel, baut, roda, rem, dsb). Orang hanya perlu berpikir bahwa mobil adalah sebuah objek yang telah memiliki prilaku spesifik, yang dapat digunakan sebagai alat transportasi, sehingga dia/mereka tinggal menggunakannya atau mengendarainya tanpa harus mengetahui kerumitan proses yang terdapat di dalam mobil tersebut.

    Contoh Abstraksi:

    Contoh berikut akan menjelaskan penggunaan class abstrak dalam  pemrograman Objek dalam Java. Kelas abstrak yang dibuat adalah kelas Animal, kemudian dengan dua jenis variabel, jumlah kaki dan warna. Ditambahkan method berdasarkan cara jalan dan suaranya :

    public abstract class Hewan {

    private int jmlKaki;

    private Color warna;

    public abstract void jalan();

    public abstract void suara();

    {

    Pewarisan (Inherintance)
    Inheritance adalah proses pewarisan data dan method dari suatu kelas kepada kelas yang lain. Pewarisan ini bersifat menyeluruh, sehingga semua data dan method yang dimiliki oleh kelas asalnya akan diturunkan kepada
    kelas baru. Kelas yang mewarisi disebut kelas “SUPER (super class)” dan
    kelas yang diwarisi disebut “SUBKELAS (sub class)”.
    Contoh : terdapat class sepeda dan sepeda gunung. Sepeda termasuk superclass. Sepeda gunung termasuk subclass. Hal ini dikarenakan sepeda gunung memiliki variabel dan method yang dimiliki oleh sepeda.
    Prinsip dasar inheritance yaitu persamaan-persamaan yang dimiliki oleh  beberapa kelas dapat digabungkan dalam sebuah class induk sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk kelas yang  bersangkutan.
    Polimorfism
    Polimorfism merupakan kemampuan suatu objek untuk mengungkap  banyak hal melalui satu cara yang sama. Sebagai contoh, terdapat kelas A yang diturunkan menjadi kelas B,C dan D. Dengan konsep polimorfisme, kita dapat menjalankan method-method yang terdapat pada kelas B,C dan D
    hanya dari objek yang di instansiasi dengan kelas A. Polimorfism sering dinamakan dengan dynamic binding, late binding, maupun runtime binding. Dengan adanya konsep dasar tersebut di atas, maka dengan menggunakan OOP kita dapat melakukan pemecahan suatu masalah tanpa melihat  bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut

    Contohnya :

    1. Hewan Kuda dengan Burung jika di satuin menjadi Pegasus

    2. Perusahaan Smart dan Perusahaan Fren, dan sekarang Perusahaan itu bersatu menjasi Perusahaan Smartfren

     

    Encapsulation

    Adalah pembungkusan/pengemasan data dan fungsi dalam wadah bernama obyek.

    atau…Menyembunyikan operasi-operasi dari dunia luar dan dari obyek-obyek lain

    Contohnya :

    1. Kita membuat Rekening Bank dengan menyerahkan data-data seperti KTP, data pribadi dll,,, tapi pihak bank tidak mengetahui kode PIN kita

    2. Kita membeli Baju di Toko, tapi kita tidak tau menau cara membuat baju itu

    3. Kita Mengirim Pesan SMS ke teman kita, tapi kita tidak tau menau bagaimana cara nya pengiriman SMS tersebut

    Assosiation (Assosiasi)

    Assosiasi adalah hubungan antara object. Relasi assosiasi biasa disebut is “a” relationship. Assosiasi berarti bahwa sebuah object “menggunakan” object yang lain. Assosiasi adalah sebuah relasi dimana semua object memiliki lifecycle nya sendiri dan tidak ada yang bertindak sebagai owner.

    Contoh Teacher dan Student. Banyak Student dapat berasosiasi dengan satu Teacher dan satu Student   dapat berasosiasi dengan banyak Teacher. Object keduanya bisa dibuat dan dihancurkan secara mandiri tanpa berpengaruh pada eksistensi object lain.

    Aggregation (Agregasi)

    Agregasi adalah bentuk hubungan yang lebih khusus dari Assosiasi dimana sebuah object memiliki lifecycle nya sendiri tapi dengan kepemilikan dan class child tidak dapat memiliki class parentnya. Relasinya biasa di sebut relasi “has-a”.

    Sebagai contoh, Department dan Teacher. Satu Teacher tidak dapat memiliki banyak Department, tapi jika kita menghapus object Department, object Teacher tidak akan ikut terhapus.

    Referensi :

    liveling Use Case

    PengetahuaUse Casen 

    • Diagram  use case merupakan pemodelan untuk menggambarkan kelakuan (behavior) sistem yang akan dibuat.
    • Diagram use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat.
    • Diagram use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut. Yang ditekankan pada diagram ini adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”.
    • Sebuah use case merepresentasikan sebuah interaksi antara aktor (user atau sistem lainya) dengan sistem.
    • Use case menjelaskan secara sederhana fungsi sistem dari sudut pandang user.

    use case

    Penjelasan  bagian bagian use case diagram

    1. System

    Menyatakan batasan sistem dalam relasi dengan actor-actor yang menggunakannya (di luar sistem) dan fitur-fitur yang harus disediakan (dalam sistem). Digambarkan dengan segi empat yang membatasi semua use case dalam sistem terhadap pihak mana sistem akan berinteraksi. Sistem disertai label yang menyebutkan nama dari sistem, tapi umumnya tidak digambarkan karena tidak terlalu memberi arti tambahan pada diagram.
    2. Actor

    Aktor adalah segala hal diluar sistem yang akan menggunakan sistem tersebut
    untuk melakukan sesuatu. Bisa merupakan manusia, sistem, atau device yang memiliki peranan dalam keberhasilan operasi dari sistem. Cara mudah untuk menemukan aktor adalah dengan bertanya hal-hal berikut:  SIAPA yang akan menggunakan sistem?  APAKAH sistem tersebut akan memberikan NILAI bagi aktor?

    3. Use case

    Mengidentifikasi fitur kunci dari sistem. Tanpa fitur ini, sistem tidak akan memenuhi permintaan user/actor. Setiap use case mengekspresikan goal dari sistem yang harus dicapai. Diberi nama sesuai dengan goal-nya dan digambarkan dengan elips dengan nama di dalamnya. Fokus tetap pada goal bukan bagaimana mengimplementasikannya walaupun use case berimplikasi pada prosesnya nanti. Setiap use case biasanya memiliki trigger/pemicu yang menyebabkan use case memulai (misalnya,Pasien mendaftar dan membuat janji baru atau meminta untuk membatalkan atau mengubah janji yang sudah ada ).ada 2 triger pertama triger eksternal, seperti pelanggan memesan atau alarm kebakaran berbunyi, kedua triger temporal, seperti tanggal pengembalian buku terlewati di perpustakaan atau keterlambatan bayar sewa.

    4. Assosiation

    Mengidentifikasikan interaksi antara setiap actor tertentu dengan setiap use case tertentu. Digambarkan sebagai garis antara actor terhadap use case yang bersangkutan. Asosiasi bisa berarah (garis dengan anak panah) jika komunikasi satu arah, namun umumnya terjadi kedua arah (tanpa anak panah) karena selalu diperlukan demikian.

    Dependency

    Dependensi <<include>>

    • o Mengidentifikasi hubungan antar dua use case di mana yang satu memanggil yang lain.
    • o Jika pada beberapa use case terdapat bagian yang memiliki aktivitas yang sama maka bagian aktivitas tersebut biasanya dijadikan use case tersendiri dengan relasi dependensi setiap use case semula ke use case yang baru ini sehingga memudahkan pemeliharaan.
    •  Digambarkan dengan garis putus-putus bermata panah dengan notasi <<include>> pada garis.
    • o Arah mata panah sesuai dengan arah pemanggilan.

    Dependensi <<extend>>

    o Jika pemanggilan memerlukan adanya kondisi tertentu maka berlaku dependensi <<extend>>.

    o Note: konsep “extend” ini berbeda dengan “extend” dalam Java!
    o Digambarkan serupa dengan dependensi <<include>> kecuali arah panah berlawanan.
    6. Generalization

    Mendefinisikan relasi antara dua actor atau dua use case yang mana salah satunya meng-inherit dan menambahkan atau override sifat dari yang lainnya. Penggambaran menggunakan garis bermata panah kosong dari yang meng-inherit mengarah ke yang di-inherit.

    Menyusun Diagram Use case

    Langkah-langkah yang dibutuhkan untuk menyusun diagram use case adalah:

    • Mengidentifikasi pelaku bisnis
    • Mengidentifikasi use case persyaratan bisnis
    • Membuat diagram model use case
    • Mendokumentasikan naratif use case persyaratan bisnis

    Practical guidance dalam membangun diagram use case:

    • Set konteks dari target sistem.
    • Identifikasi semua actor.
    • Identifikasi semua use case.
    • Definisikan asosiasi antara setiap actor dan setiap use case.
    • Evaluasi setiap actor dan setiap use case untuk mendapatkan kemungkinan perbaikan.
    • Evaluasi setiap use case untuk dependensi <<include>>.
    • Evaluasi setiap use case untuk dependensi <<extend>>.
    • Evaluasi setiap actor dan setiap use case untuk generalisasi.

    Use case Description

    Setiap use case harus dijelaskan alur prosesnya melalui sebuah deskripsi use case (use case description) atau scenario use case.

    Deskripsi use case berisi:

    • Nama use case yaitu penamaan use case yang menggunakan kata kerja
    • Deskripsi yaitu penjelasan mengenai tujuan use case dan nilai yang akan didapatkan oleh aktor
    • Kondisi sebelum (pre-condition) yaitu kondisi-kondisi yang perlu ada sebelum use case dilakukan.
    • Kondisi sesudah (post-condition) yaitu kondisi-kondisi yang sudah dipenuhi ketika uses case sudah dilaksanakan
    • Alur dasar (basic flow) yaitu alur yang menceritakan jika semua aksi yang dilakukan adalah benar atau proses yang harusnya terjadi
    • Alur alternatif (alternatif flow) yaitu alur yang menceritakan aksi alternatif, yang berbeda dari alur dasar.

    Mana yg lebih dahulu dibuat use case description atau use case diagram ? sebaiknya use case description lebih dahulu. tapi kalau anda ingin membuat use case digram lebih  dahulu juga tdk apa-apa. Yang penting kedua duanya anda buat untuk menggambarkan/menjelaskan kebutuhan sistem.

    contoh  diagram use case

    SDLC METODE EXTREME PROGRAMMING & SYNCHRONIZE STABILIZE

    EXTREME PROGRAMMING

    • Pengertian Extreme Programing

    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 potongan-potongan 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. Extreme Programming merupakan agile methods yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat terkenal. Sasaran Extreme Programming 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.

    Extreme Programming sebagai sebuah metode yang dinamis diperlihatkan dalam empat values yang dimilikinya dan keempatnya merupakan dasar-dasar yang diperlukan dalam Extreme Programming. Kent Beck menyatakan bahwa tujuan jangka pendek individu sering berbenturan dengan tujuan sosial jangka panjang. Dalam Extreme Programming ada penekanan kuat pada komunikasi informal dan langsung , tes otomatis dan pasangan pemrograman , yang memantau kemajuan pengembangan perangkat lunak , yang memungkinkan umpan balik terus menerus pada skala waktu yang berbeda .Akar XP terletak pada masyarakat Smalltalk dan khususnya, dalam kolaborasi dekat Kent Beck dan Ward Cunningham dimulai padaakhir 1980-an . Keduanya menyempurnakan praktik ini pada berbagai proyek selama awal 1990-an , memperluas ide-ide mereka dari pengembangan perangkat lunak Pendekatan yang kedua adaptif dan berorientasi pada orang langkah dari praktek informal metodologi terjadi pada tahun 1997 ketika Kent Beck berhasil menggunakan XP untuk melaksanakan proyek penggajian untuk Daimler Chrysler. Sejak itu , XP telah berhasil digunakan di banyak perusahaan , seperti Bayerische Landesbank , Kredit Swiss Life, Pertama Union National Bank , Ford Motor Company dan UBS. XP didasarkan pada Beck dan Cunningham pengamatan dari apa yang membuat pengembangan program lebih cepat dan apa yang membuatnya lebih lambat .

    • 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.

    • Prinsip Dasar Extreme Programming

    Terdapat lima prinsip dasar yang sangat fundamental dalam Extreme Programming, dimana prinsip -prinsip ini digunakan untuk menentukan apakah semua tindakan/pekerjaan yang telah dilakukan akan sukses atau sebaliknya (dalam konteks Extreme Programming). Kelima prinsip tersebut adalah:

    • Aliran umpan balik (Rapid Feedback)
    • Asumsi kesederhanaan (Asume Simplicity)
    • Penambahan perubahan (Incremental Change)
    • Pemelukan pekerjaan (Embrace Work)
    • Kualitas kerja (Quality Work)

    Extreme programming merupakan suatu disiplin ilmu dari software development yang didasarkan pada nilai dari kelima aspek di atas. Dalam extreme programming seluruh team bekerja sebagai satu kesatuan dalam bekerja, dengan feedback yang cukup maka mereka akan mengetahui sudah sampai mana mereka bekerja, dan apabila terdapat sesuatu hal mereka ingin melihat ke belakang tentang apa yang telah dikerjakan mereka dapat menggunakan feedback tersebut. Jadi feedback menyimpan informasi tentang apa apa saja yang telah dilakukan oleh team.Disamping kelima prinsip tersebut terdapat sepuluh prinsip lainnya yang bersifat opsional,namun sebaiknya perlu diperhatikan agar hasil yang dihasilkan memuaskan. kesepuluh prinsip tersebut adalah

    • Teach Learning
    • Small initial investment
    • Play to win
    • Cncrete experiments
    • Open, honest communication
    • Work with people’s instinct not against them
    • Accepted responsibility
    • Local adaptation
    • Travel light
    • Honest measurement

     

    Sejarah Extreme Programming

    Extrem programming dimunculkan untuk menangani perubahan-perubahan yang biasanya sering terjadi pada saat pengembangan berlangsung bahkan pada saat proses pengembangan sudah hampir berakhir. Selainitu XP juga dimunculkan untuk mengatasi berbagai requirements yang tidak jelasdari user. Sebagai sebuahmetodologi untuk mengembangkan peragkat lunak XP tentu memiliki siklus hidup. Siklus hidup pada XP inierdapat lima fase yaitu : Extreme Programming diciptakan oleh Kent Beck selama bekerja di Chrysler MenyeluruhbSistem Kompensasi (C3) proyek penggajian. Beck C3 menjadi pemimpin proyek Maret 1996 dan mulai untuk memperbaiki metode pengembangan yang digunakan dalam proyek dan menulis sebuah buku tentang   metode (pada Oktober 1999, Extreme Programming Explained diterbitkan). Chrysler membatalkan proyek C3 pada Februari 2000, setelah perusahaan diakuisisi oleh Daimler-Benz. Meskipun Extreme Programming itu sendiri adalah relatif baru, banyak dari praktik sudah ada selama beberapa waktu, metodologi, setelah semua, diperlukan praktek terbaik untuk tingkat ekstrem. Sebagai contoh, tes-praktek pembangunan pertama, perencanaan dan tes tertulis sebelum setiap mikro-increment digunakan sebagai awal NASA Project Mercury, pada awal 1960-an (Larman 2003). Refactoring, modularitas, bottom-up dan desain inkremental digambarkan oleh Leo Brodie dalam bukunya yang diterbitkan pada tahun 1984

    SYNCHRONIZE STABILIZE

    pengertian  Model ini adalah model yang digunakan oleh Microsoft.  Secara garis besar, Model Synchronize and Stabilize ini sama dengan model incremental, tetapi oleh CUsamano dan Selby tahun 1997 menyebutnya sebagai model Syncronize and Stabilized Model karena ada beberapa proses manajemen yang ditekannya oleh microsoft.

    Analisis kebutuhan dilakukan dengan wawancara dengan sejumlah konsumen yang potensial.  Kemudian kebutuhan-kebutuhan tersebut dibuat paket dan disusun daftar secara prioritas.  Kemudian spesifikasi ditulis.  Selanjutnya pekerjaan dibagi dalam tiga atau empat bagian pembangunan software.  Bagian pertama menangani hal-hal yang paling kritis, bagian selanjutnya menangani hal-hal yang krisis selanjutnya, dan seterusnya.

    Pada akhirnya, setiap hari dilakukan proses sinkronisasi, yaitu menggabungkan bagian-bagian yang terpisah tersebut kemudian ditesting.  Proses stabilisasi dilakukan pada akhir pembangunan setiap bagian.  Kesalahan yang terjadi akan diperbaiki, dan tidak akan ada perubahan spesifikasi.

     

    Referensi

    https://trisnowlaharwetan.wordpress.com/2010/03/04/model-synchronize-and-stabilize-dalam-rekayasa-perangkat-lunak/

    https://okkih.wordpress.com/2016/12/17/sdlc-metode-extreme-programming-synchronize-stabilize/

    Prinsip – prinsip dan pengembangan sistem informasi

    PENGEMBANGAN SISTEM INFORMASI
                        Pengembangan sistem informasi sering disebut sebagai proses pengembangan sistem (System Development). Pengembangan sistem didefinisikan sebagai aktivitas untuk menghasilkan sistem informasi berbasis komputer untuk menyelesaikan persoalan (problem) organisasi atau memanfaatkan kesempatan (opportunities) yang timbul
    Metodologi pengembangan Sistem dipromosikan sebagai sarana untuk meningkatkan pengelolaan dan pengendalian proses pengembangan perangkat lunak, penataan dan menyederhanakan proses, dan standarisasi proses pengembangan dan produk dengan menentukan kegiatan yang harus dilakukan dan teknik yang digunakan.
    Prinsip-prinsip yang digunakan dalam pengembangan sistem informasi yaitu:
    1. Sistem yang dikembangkan adalah untuk manajemen.
    Setelah sistem selesai dikembangkan, maka yang akan menggunakan informasi dari sistem ini adalah manajemen, sehingga sistem harus dapat mendukung, kebutuhan yang diperlukan oleh manajemen. Pada waktu Anda mengembangkan sistem, maka prinsip ini harus selalu diingat.
    2. Sistem yang dikembangkan adalah investasi modal yang besar.
    Sistem informasi yang akan Anda kembangkan membutuhkan dana modal yang tidak sedikit, apalagi dengan digunakannya teknologi yang mutakhir.
    Sistem yang dikembangkan ini merupakan investasi modal yang besar. Seperti halnya dengan investasi modal lainnya yang dilakukan oleh perusahaan, maka setiap investasi modal harus mempertimbangkan 2 hal berikut ini:
    • Semua alternatif yang ada harus diinvestigasi.
    • Investasi yang terbaik harus bernilai.
    3. Sistem yang dikembangkan memerlukan orang-orang yang terdidik.
    Manusia merupakan faktor utama yang menentukan berhasil tidaknya su atu sistem, baik dalam proses pengembangannya, penerapannya, maupun dalam proses operasinya. Oleh karena itu orang yang terlibat dalam pengembangan maupun penggunaan sistem ini harus merupakan orang yang terdidik tentang permasalahan-permasalahan yang ada dan terhadap solusi-solusi yang mungkin dilakukan.
    4. Tahapan kerja dan tugas-tugas yang harus dilakukan dalam proses pengembangan sistem.

    Proses pengembangan sistem umumnya melibatkan beberapa tahapan kerja dan melibatkan beberapa personil dalam bentuk suatu team untuk mengerjakannya. Pengalaman menunjukan bahwa tanpa adanya perencanaan dan koordinasi yang baik, maka proses pengembangan sistem tidak akan berhasil dengan memuaskan. Untuk maksud ini sebelum proses pengembangan sistem dilakukan, maka harus dibuat terlebih dahulu skedul kerja yang menunjukkan tahapan-tahapan kerja dan tugas-tugas pekerjaan yang akan dilakukan, sehingga proses pengembangan sistem dapat dilakukan dan selesai dengan berhasil sesuai dengan waktu dan anggaran yang direncanakan.

    5. Proses pengembangan sistem tidak harus urut.
    Prinsip ini kelihatannya bertentangan dengan prinsip nomor 4, tetapi tidaklah sedemikian. Tahapan kerja dari pengembangan sistem di prinsip nomor 4 menunjukkan langkah-langkah yang harus dilakukan secara bersama-sama. Ingatlah waktu adalah uang. Misalnya di dalam pengembangan sistem, perancangan output merupakan tahapan yang harus dilakukan sebelum melakukan perancangan file. Ini tidak berarti bahwa semua output harus dirancang semuanya terlebih dahulu baru dapat melakukan perancangan file, tetapi dapat dilakukan secara serentak, yaitu sewaktu proses pengadaan hardware.
    6. Jangan takut membatalkan proyek.

    Umumnya hal ini merupakan pantangan untuk membatalkan suatu proyek yang sedang berjalan. Keputusan untuk meneruskan suatu proyek atau membatalkannya memang harus dievaluasi dengan cermat. Untuk kasus-kasus yang tertentu, dimana suatu proyek terpaksa harus dihentikan atau dibatalkan karena sudah tidak layak lagi, maka harus dilakukan dengan tegas. Keraguan untuk terus melanjutkan proyek yang tidak layak lagi karena sudah terserapnya dana kedalam proyek ini hanya akan memubang dana yang sia-sia.Sistem Informasi dibangun untuk mendukung proses yang berjalan dalam sebuah organisasi, dimana didalamnya tercakup antara lain: proses perencanaan (Planning), pengorganisasian (Organizing) dan pengendalian (Controlling).Pengembangan Sitem Informasi akan bermula dasi PSI (Perencanaan Sistem Informasi), Analisa, Perancangan hingga Implmentasi. Sedangkan Pengembangan Sistem Software bermula dari Anlisa, Perencanaan hingga Implementasi.

    PRINSIP PENGEMBANGAN SISTEM
    • Sistem yang dikembangkan adalah untuk manajeman
    • Sistem yang dikembangkan adalah investasi modal yang besar
    • Semua alternative yang ada harus diinvestigasi
    • Investasi yang terbaik harus bernilai
    • Sistem yang dikembangkan memerlukan orang yang terdidik
    • Tahapan kerja dan tugas-tugas yang harus dilakukan dalam proses pengembangan system.
    • Proses pengembangan system tidak harus urut
    • Jangan takut membatalkan proyek
    • Dokumentasi harus ada untuk pedoman dalam pengembangan system

    Referensi :
    http://sayuti-bakri.blogspot.com/2011/04/prinsip-prinsip-dalam-pengembangan.html?m=1