Nilai:
MAKALAH PEMROGRAMAN BERORIENTASI OBJEK
Nama Anggota
: 1. 1.Kukuh Sa Satrio i!o"o ). Gu*toni Rian+,
#J$%11&''1( #J$%11&'-'(
PROGRAM KEAHLIAN TEKNIK KOMPTER PROGRAM %IPLOMA INSTITT PERT P ERTANIAN ANIAN BOGOR BOGOR )'1/
Version Control System (VCS) adalah sebuah infrastruktur yang dapat mendukung pengembangan software secara kolaboratif. Setiap anggota yang berada di dalam sebuah tim pengembangan software dapat menulis kode programnya masing – masing kemudian digabungkan ke server yang sudah memiliki VCS yang digunakan. Selain mengandalkan konkurensi yang dapat mempercepat pengembangan software, VCS uga mempunyai kemampuan untuk kembali ke !ersi software sebelumnya ika teradi suatu bencana terhadap !ersi software yang sedang dikembangkan saat ini. "emampuan ini disebut reversibility. Selain itu, dengan menggunakan VCS setiap perubahan pada software seperti penambahan file atau pengubahan isi file dapat dipantau bagian mana yang diubah dan siapa yang mengubah. Sehingga pengeraan software akan lebih transparan dan terukur. #entunya VCS ini tidak didominasi oleh satu enis produk saa. $da berbagai enis VCS yang bersifat free open source software dan ada uga yang proprietary. Version Control Systems (VCS) bantuan pengembang untuk mengelola perubahan artefak soft%are. &ereka memungkinkan pengembang untuk mendokumentasikan, berbagi, dan menggabungkan perubahan. #ugas ini sangat penting untuk keberhasilan proyek perangkat lunak, karena keduanya sering berulang dan rentan terhadap kesalahan manusia. Soft%are dibangun oleh tim pengembang yang bekera secara paralel pada kode sumber yang sama. "ebutuhan untuk berbagi dan menggabungkan perubahan demikian di mana'mana. #anpa bantuan dari VCSs, pengembang dapat gagal untuk mengkomunikasikan perubahan dan harus menggabungkan perubahan secara manual perubahan menadi tidak bisa dilacak. VCSs mengatasi masalah ini dengan memungkinkan pengembang untuk berbagi perubahan mereka dalam cara yang terstruktur dan dapat dilacak. erubahan dicatat dalam !cs dan konflik dapat diselesaikan dengan mempertimbangkan searah perubahan. otensi kesalahan sehingga berkurang. engembang berinteraksi dengan VCSs melalui berbagai program klien. rogram klien tersebut termasuk antarmuka baris perintah, uung depan grafis, *ingkungan engembangan #erpadu (+-), aplikasi %eb manaemen proyek, atau alat ekstraksi informasi, seperti refactoring sistem reconstruc'tion. rogram klien ini meningkatkan VCSs dengan menggunakan kasus'fungsi tertentu, misalnya dengan menyediakan enis tertentu antarmuka pengguna, atau dengan penggalian data tertentu. al ini diinginkan untuk menggunakan program klien kontrol !ersi yang sama terhadap dif'ferent VCSs. &anfaat yang diberikan oleh sebuah program klien sering berlaku di seluruh VCSs yang berbeda. &isalnya, user interface yang disediakan oleh +-, seperti yang menelusuri searah proyek atau untuk menunukkan perbedaan menadi't%een !ersi yang, untuk sebagian besar, independen dari !cs beton yang digunakan. al ini berlaku untuk program klien lainnya, seperti manaemen proyek aplikasi %eb atau grafis dep an berakhir.
Sayangnya, tidak ada !cs abstraksi didirikan ada. rogram klien yang ingin berinteraksi dengan beberapa VCSs menghadapi kesulitan yang !cs antar'%aah berbeda dalam terminologi dan konsep. erbedaan ini ditangani oleh solusi ad'hoc yang tidak dapat digunakan kembali di program client. enerapan abstraksi kontrol !ersi tergantung pada set VCSs yang mendukung . Set sistem yang didukung itu sendiri tergantung pada pilihan VCSs yang dianalisis untuk menetapkan persyaratan untuk ur. emilihan VCSs tersebut dapat dibuat dengan beberapa kriteria dalam pikiran. Sebuah analisis dari seumlah besar VCSs dapat menamin bah%a berbagai pilihan konsep dianggap tetapi akan pada saat yang sama mengurangi sumber daya yang tersedia untuk analisis setiap sistem tunggal. Sebaliknya, pendekatan yang berla%anan menganalisis seumlah kecil VCSs dapat menamin kedalaman lebih tinggi dari analisis untuk setiap sistem, tetapi hanya dapat menghasilkan hasil yang rele!an ika pemilihan VCSs rele!an dengan banyak pengguna. emilihan VCSs yang dianalisis untuk ur dibatasi untuk satu set kecil VCSs populer. "ami mengidentifikasi VCSs populer dengan sur!ei penelitian terbaru dan penggunaan aktual dari VCSs. ada tahun /001, sub!ersion ditemukan untuk menadi pemimpin di mandiri "onfigurasi erangkat *unak &anaemen (scm) pasar 2Sch013, di mana scm menyediakan konteks yang lebih luas untuk !ersi con'trol 2&4-503. &eskipun tidak ada penelitian diketahui kami menunukkan bah%a pre!alensi Sub!ersion telah menurun dalam pengembangan perangkat lunak proprietary, tren yang kuat terhadap istributed Version Control Systems (VCSs) dapat ob'dilayani dalam proyek'proyek open source 2$S063. #idak seperti sistem terpusat, seperti Sub!ersion, VCSs meniru searah di repositori 27860, Car693. royek'proyek besar seperti kernel *inu, 8oogle $ndroid, ;t, atau V*C sekarang menggunakan 8it5 dan proyek'proyek seperti ython, 7pen7ffice, atau Vim sekarang menggunakan &ercu'rial/. 0ara Kr2a 0ontro3 4r*ion S,*tm
VCSs memungkinkan pengembang untuk mengelola perubahan artefak soft%are. $rtefak Soft%are yang perubahan dilacak dikatakan ber!ersi. VCSs yang dipilih mengekspos artefak perangkat lunak untuk pengguna sebagai hirarki file. Searah hirarki file ini disimpan dalam repositori. alam VCSs dipilih, arsitektur repositori atuh ke dalam dua kategori. Sub!ersi menyimpan searah sebuah proyek di sebuah repositori pusat tunggal. 8it dan &ercurial memungkinkan mereplikasi searah di beberapa repositori.
"etiga VCSs memungkinkan pengembang untuk mengakses file ber!ersi melalui kera'ing salinan, uga dikenal sebagai ruang kera 2-st6=3. Salinan kera adalah salinan direktori hirarki ber!ersi yang berada di ba%ah kendali pengembang. Copy pekeraan tambahan men yimpan data
meta yang menunukkan apa repositori copy pekeraan sesuai dengan dan bagaimana file dalam copy pekeraan berhubungan dengan searah yang tersimpan dalam repositori itu. Copy pekeraan memungkinkan perubahan rekaman. Seorang pengembang dapat memodifikasi file dalam copy pekeraan tanpa mempengaruhi repositori. erubahan hanya trans'ferred ke repositori dan tercatat dalam searah perubahan pada permintaan eksplisit oleh pengembang. #indakan ini sering disebut >komit> dan biasanya membutuhkan pengembang untuk memasukkan pesan yang menelaskan perubahan. erubahan lokal ?ncom'mitted dapat dibatalkan dengan mengembalikan copy pekeraan ke keadaan sebelumnya yang disimpan dalam repositori.
@ika ada perubahan dalam lebih dari satu copy pekeraan secara paralel, pengembangan dikatakan cabang. #ergantung pada perubahan yang dilakukan, mungkin diinginkan untuk menaga cabang terpisah untuk %aktu tertentu, dan dengan demikian !ersi searah cabang secara terpisah. Skenario khas untuk ini adalah cabang yang berisi fitur baru dan stabil dan karena itu tidak untuk digunakan oleh siapa pun kecuali mereka mengembangkan fitur ini. Sebuah model searah menentukan bagaimana searah perubahan soft%are arti'fakta di%akili dalam !cs a. &odel searah dipekerakan oleh tiga VCSs atuh ke dalam dua kategori yang berbeda. 8it dan model searah &ercurial memiliki dukungan yang melekat untuk me%akili bercabang pembangunan. Sebaliknya, Sub!ersion merupakan caba ng di atas model searah. i atas model searah, model bercabang menentukan bagaimana cabang yang terkena sebagai entitas bernama. &odel bercabang dapat dibedakan dari model searah. Sebuah model searah mungkin dapat me%akili keberadaan cabang, tetapi tidak menentukan bagaimana cabang yang terkena sebagai entitas bernama. &u mengidentifikasi cabang dengan nama sering diinginkan, karena memungkinkan pengembang untuk berkomunikasi interaksi antara cabang. Sebagai contoh, mungkin diinginkan untuk meminta !cs untuk menggabungkan perubahan dari >pembangunan> cabang ke >stabil> cabang. Sebuah perbedaan yang elas model searah'dan bercabang hanya dapat ditemukan di 8it dan &ercurial. &eskipun demikian diinginkan untuk membedakan branching' dan model searah, karena menyederhanakan membandingkan 8it dan &ercurial, yang memiliki model searah dekat'identik tetapi di!ergen model bercabang.
0ara mnggunakan 0ontro3 4r*ion S,*tm
Pr5or6
erforce (sumber: http:DD%%%.perforce.comD) VCS yang satu ini bersifat proprietary dan berbayar ika $nda ingin menggunakannya untuk lebih dari /0 pengembang. @ika menggunakannya untuk /0 pengembang $nda akan mendapatkan erforce secara free. erforce memiliki keunggulan dengan sebuah sistem yang dinamakan Continous Delivery. engan menggunakan disiplin tersebut software dapat dirilis menadi production kapanpun. erforce ini dipercaya oleh vendor – vendor besar seperti Netfli, Samsung, Salesforce, dan Ne% Eork Stock -change. erforce memiliki keunggulan seperti massive scalability, hybrid version control , social coding , large binaries, dan unified security. erforce dapat digunakan di *inu, !arian ?ni, 7S F, dan 4indo%s. Saat ini erforce berada di !ersi /05G.5 untuk !ersi Bree. contoh penggunaan erforce (dikutip dari okumentasi erforce): p4 sync //depot/Misc/manuals/...#h //depot/Misc/manuals/recomm c:\p4clients\bruno-1492\Misc\ma
pG sync DDdepotD&iscDmanualsD...Ihead DDdepotD&iscDmanualsDrecommendedJconfiguration.doc added c:KpGclientsKbruno' 5G6/K&iscKmanualsKrecommendedJconfiguration.doc DDdepotD&iscDmanualsDtriggers.doc added c:KpGclientsKbruno' 5G6/K&iscKmanualsKtriggers.doc DDdepotD&iscDmanualsD!endorJbranches.doc added c:KpGclientsKbruno' 5G6/K&iscKmanualsK!endorJbranches.doc Sync copied A files to %orkspace (including A that %ere added) Sync remo!ed no files from %orkspace Sync completed %ith no %arnings or errors.
5 / A G H = 1 9 6 50 pG edit DDbruno'5G6/D&iscDmanualsDrecommendedJconfiguration.doc 55 DDdepotD&iscDmanualsDrecommendedJconfiguration.docI5 ' opened for edit 5/ 7pened 5 files for edit 5A 5G pG re!ert DDdepotD&iscDmanualsDrecommendedJconfiguration.doc 5H re!ert complete. 5 file affected.
0o33a!oration Too3* A7a itu 0o33a!oration Too3*8
"olaborasi sudah ada seak orang telah mampu berkomunikasi satu sama lain. &unculnya internet telah menyediakan orang'orang dengan alat komunikasi yang membuat arak yang memisahkan orang geografis yang besar di planet ini tidak signifikan ika tidak rele!an. Saat ini seseorang dapat berkomunikasi ide atau keputusan hampir seketika melalui email atau layanan instant messenger. Collabo'ransum tidak pernah begitu dekat dan kuat seperti saat ini. 4orld %ide %eb memberikan kita hari ini dengan platform lingkungan kolaborasi yang dapat span seluruh dunia. ?ntuk dapat berkolaborasi pada satu internet harus memiliki alat yang memungkinkan dia untuk memiliki kehadiran di %eb. Sampai saat ini ada berbagai macam perangkat yang memungkinkan seseorang untuk terhubung ke %eb, komputer desktop, laptop, palmtop dan telepon. &asing' masing perangkat memiliki keterbatasan dalam hal kapasitas memori, kecepatan pemrosesan dan kecepatan konekti!itas aringan. Baktor'faktor ini sangat penting dalam menentukan sekali kehadiran di %eb. Sudah ada beberapa bentuk kolaborasi di internet, terutama file sharing dan bermain game. ?ntuk bentuk lain dari kolaborasi, peserta memanfaatkan teknologi bantu seperti forum berita, chatting, email dan pesan instan untuk mengkomunikasikan ide'ide, untuk diskusi dan membuat proyek umum. $pa yang kurang adalah arsitektur perangkat lunak yang sesuai yang akan memudahkan pembuatan dan penyebaran alat kolaborasi. alam tulisan ini kami bertuuan untuk memperkenalkan suatu pendekatan untuk merancang dan membangun alat kolaboratif dimana data bersama dan diperbarui secara real time. Bagaimana 0o33a!oration Too3* Bkr2a8
"oordinator dapat melanutkan tanpa gangguan. "oordinator uga berperilaku sebagai peserta terlihat dalam sesi. $rtinya, ia memiliki salinan data bersama dan semua aturan bisnis yang dibutuhkan untuk memperbaruinya. eran sentral "oordinator digunakan untuk sychroniLe operasi antara eserta apakah melalui penggunaan cap %aktu, nomor urut, atau sebagai am sinkronisasi ser!er yang. "oordinator terdiri dari seumlah layanan yang menyelesaikan tugas' tugas tertentu seperti yang dielaskan di ba%ah ini. *ayanan ?tama elayanan ?tama mendengarkan dan menerima permintaan untuk koneksi dari eserta baru. +ni mengotentikasi koneksi ini dengan mem!alidasi pengguna'nama pasangan D pass%ord yang peserta mentransmisikan untuk pertama kalinya. al ini uga mem!erifikasi tanda tangan dari aplikasi untuk sesi saat ini. Seak "oordinator mungkin sama untuk di ff erent aplikasi kolaboratif, perlu untuk menginformasikan eserta yang mungkin telah terhubung ke sesi yang tidak pantas. @ika otentikasi berhasil, inas ?tama, maka "oordinator mengirimkan
alamat + dan nomor port dari "oordinator cadangan dalam pelayanan. &emang, ika sesi hanya memiliki satu eserta, maka eserta baru secara otomatis dibuat "oordinator cadangan.
' Sepasang ?sername D ass%ord yang akan digunakan untuk mengotentikasi eserta dan berfungsi sebagai + untuk menginformasikan eserta lain dari itu kehadiran. ' Sebuah tanda tangan dari aplikasi kolaboratif, sehingga pertandingan bisa dibuat oleh "oordinator utama menga%asi sesi yang eserta ini ingin bergabung. &oti!asi adalah bah%a "oordinator adalah bagian dari $rsitektur Collaborati!e dan karenanya adalah sama untuk semua aplikasi. erbedaan antara aplikasi kolaboratif dibuat oleh selisih di ff di perpustakaan plugin yang mereka gunakan. 7leh karena itu dianggap penting untuk mengirimkan + dari aplikasi untuk "oordinator sehingga eserta dapat diinformasikan sudah pada a%al ketidakcocokan dalam sesi yang ingin terhubung ke.
rotokol $nalyser &odul mengambil sebagai masukan 7byek Command dan de'menyusun menadi Bragmen perintah. "emudian feed masing'masing untuk mesin e'ecution terdiri dari benda'benda dari paket @a!a.lang.reflect. Semua argumen untuk panggilan metode yang lulus sebagai tipe data a!a.lang.String. &etode yang dipanggil harus membuat enis data kon!ersi yang tepat sehingga argumen dapat digunakan sebagaimana dimaksud. engan demikian, itu adalah tanggung a%ab dari desainer plu'gin memastikan bah%a kendala ini diimplementasikan. @uga seperti ditunukkan di atas, metode yang membentuk bagian dari transaksi harus dielaskan untuk membuang fi.uta.ctk.protocol.Command-ception. engecualian ini digunakan untuk memecahkan loop eksekusi fragmen dalam rotokol $nalyser. Selanutnya, yang terakhir menyimpan daftar dinamis 7bek yang telah dibuat. ada tahap ini benda'benda yang dipanggil biasanya berisi metode pengakses data bersama. "etika permintaan untuk salah satu metode ini dibuat, mesin eksekusi cek di daftar itu untuk referensi yang ada. @ika ada satu, itu digunakan, ika tidak contoh baru dibuat dan referensi untuk itu ditambahkan ke daftar obek yang aktif. S!utkan B!ra7a 6ontoh 0o33a!oration Too3* +an Pn23a*an
0ontoh S+rhana A73ika*i 0o33a!oration Too3*
5 package fi.uta.ctk.protocol.command / import fi.uta.ctk.protocol.Command7bect A import fi.uta.ctk.protocol.rotocol-ception
G H public class
pri!ate float
9 6 50 55
public String get
O
5A 5G public !oid set
M
5=
try
51
M
59
float !alue P Bloat.parseBloat(amount)
56
if(!alue Q 0)
/0
thro% ne% rotocol-ception(>)
/5
this.balance P !alue
//
O
/A
catch(NumberBormat-ception nfe)
/G
M
/H
thro% ne% rotocol-ception(>+n!alid )
/= /1 28O
O O