OLEH
10114215
10114281
M. Ariq Fakhrizal
10114340
Fachri Abdussalam
10114459
10114463
Agi Krisna
KATA PENGANTAR
Puji syukur kehadirat Allah SWT, atas segala berkat, rahmat, hidayah, serta
inayah-Nya sehingga tugas ini dapat terselesaikan. Shalawat serta salam semoga
selalu tercurah kepada nabi besar Muhammad SAW, serta kepada para keluarga,
kerabat dan pada pengikutnya hingga akhir jaman.
Kami mengucapkan terimakasih yang sebanyak-banyaknya kepada Bapak
Hanhan Maulana. S.Kom,. M.Kom. selaku dosen mata kuliah Rekayasa Perangkat
Lunak 1 yang telah memberikan ilmu pengetahuan dan bimbingannya kepada kami
melalui penyusunan tugas dan makalah ini.
Kami mengucapkan terimakasih yang sebanyak banyaknya kepada semua
pihak yang telah membantu menyelesaikan tugas ini, semoga Allah swt membalas
kebaikan kebaikan yang rekan rekan berikan.
Kami menyadari bahwa dalam tugas ini masih banyak kesalahan dan
kekurangan dikarenakan keterbatasan kemampuan yang kami miliki. Oleh karena
itu, penulis mengharapkan kritik dan saran yang bersifat membangun sebagai bahan
masukan penulis di masa yang akan datang.
Akhir kata, penulis mengucapkan terima kasih.
Penulis
DAFTAR ISI
FLOWMAP ................................................................................................... 1
1.
Prosedur Pemesanan..................................................................................... 1
2.
3.
4.
5.
BPMN ............................................................................................................. 7
1.
2.
3.
4.
5.
Pembayaran .................................................................................................. 8
6.
1. Pengertian Git............................................................................................... 9
2. Repositori GIT ............................................................................................ 9
3. Kelebihan Version Control ...................................................................... 10
4. Centralized VCS ....................................................................................... 11
5. Distributed VCS ....................................................................................... 12
6. Memillih VCS ........................................................................................... 12
7. Data Model ................................................................................................ 13
8. Istilah dalam GIT ...................................................................................... 14
9. Cara Instalasi GIT .................................................................................... 15
10.
GITHUB ................................................................................................ 18
11.
12.
13.
5
iii
DAFTAR GAMBAR
Figure 1 Flowmap Pemesanan ................................................................................ 1
Figure 2 Flowmap Penentuan Menu dan Bahan Baku ............................................ 3
Figure 3 Flowmap Hitung Harga Total ................................................................... 4
Figure 4 Flowmap Pembayaran .............................................................................. 5
Figure 5 Flowmap Feedback ................................................................................... 6
Figure 6 BPMN Pencarian Meja dan Kursi ............................................................ 7
Figure 7 BPMN Pemesanan dan Minuman............................................................. 7
Figure 8 BPMN Pembuatan dan Penyajian............................................................. 7
Figure 9 BPMN Feedback ....................................................................................... 8
Figure 10 BPMN Pembayaran ................................................................................ 8
Figure 11 BPMN Laporan ....................................................................................... 8
Figure 12 GIT .......................................................................................................... 9
Figure 13 Direktori Kerja tanpa VCS .................................................................. 10
Figure 14 Direktori Kerja dengan VCS ................................................................ 10
Figure 15 Cara Subversion Menyimpan Revisi .................................................... 14
Figure 16 Cara Git Menyimpan Revisi ................................................................. 14
Figure 17 Git di context-menu ............................................................................. 16
Figure 18 Window Git Bash ................................................................................. 16
Figure 19 Membuka Git Bash melalui context-menu ........................................... 17
Figure 20 Atlassian Source Tree ........................................................................... 17
Figure 21 Git gui ................................................................................................... 18
Figure 22 Struktur Proyek Twitter Bootstrap ....................................................... 19
iv
DAFTAR TABEL
Table 1 Analisis Dokumen dan Deskripsi Prosedur Pemesanan ............................ 1
Table 2 Analisis Dokumen dan Deskripsi Prosedur Pemesanan ............................ 2
Table 3 Analisis Dokumen dan Deskripsi Perhitungan Total Harga ...................... 4
Table 4 Analisis Dokumen dan Deskripsi Prosedur Pembayaran ........................... 5
Table 5 Analisis Dokumen dan Deskripsi Prosedur Feedback ............................... 6
1
1.
FLOWMAP
Prosedur Pemesanan
Analisis Dokumen
1. Katalog Menu
2. Kertas Pesanan
Deskripsi
2.
1. Kertas Pesanan
2. Kertas Menu dan Bahan Baku
Deskripsi
1.
2.
3.
Analisis
Dokumen
1. Kertas Pesanan
2. Nota Pesanan
Deskripsi
5
4.
Prosedur Pembayaran
Analisis Dokumen
1. Nota Pesanan
Deskripsi
6
5.
Prosedur Feedback
Analisis
Dokumen
Deskripsi
1. Formulir Kuisioner
1. CS memberikan formulir kuisioner kepada
pelanggan.
2. Pelanggan mengisi formulir kuisioner, lalu hasil
pengisian formulir kuisioner diberikan kepada
CS untuk didata dan diolah menjadi laporan
hasil kuisioner.
7
2
1.
BPMN
8
4.
Pengisian Feedback
Pembayaran
Pembuatan Laporan
1.
Pengertian Git
Git adalah sistem yang terdistribusi mirip jaringan peer-to-peer. Central
repository hanya berfungsi sebagai perantara dalam proses sinkronisasi. Secara
teknis kita bisa melakukan sinkronisasi langsung antar repositori.
Figure 12 GIT
2.
Repositori GIT
Semua repositori mempunyai derajat yang sama, artinya user yang memiliki
repositori tersebut bisa membuat branch, melakukan commit dan reset atau revert,
memanipulasi histori secara independen tanpa harus berkomunikasi dengan server
dan repositori yang lain.
Pada waktu sinkronisasi diperlukan, user melakukan push ke Git server dan
user yang lain melakukan fetch (ambil) kemudian merge (menggabungkan) update
terbaru di Git server dengan dengan repositori. Dengan kata lain, proses
sinkronisasi dilakukan untuk menyamakan repositori lokal yang dimiliki oleh
seorang user dengan user yang lain dengan perantara Git server.
Jika ingin menggunakan Git bersama orang lain, maka dapat menggunakan
jasa provider seperti Github.
Git adalah nama sebuah version control system (VCS) atau source control
management (SCM) yang dibuat oleh Linus Torvalds ( orang yang juga membuat
Linux ) dan pertama kali digunakan sekitar tahun 2005 untuk pengembangan linux
kernel.
Version Control atau Revision Control adalah sebuah sistem yang merekam
perubahan (revisi) yang terjadi dari waktu ke waktu pada sebuah file atau sekumpulan
10
file sehingga kita bisa kembali ke revisi tertentu dengan mudah -- mirip backup system
misalnya Restore Point di Windows Vista/7 dan Time Machine di Mac OSX. Sebuah
database di mana revisi-revisi tersebut disimpan disebut repositori.
VCS tidak hanya berguna bagi para programmer tetapi juga bagi semua orang
yang bekerja dengan file. VCS dapat dimanfaatkan untuk menyimpan dokumen
dalam beberapa versi atau untuk mengerjakan satu dokumen bersama orang lain.
3.
3.1
11
3.2
3.3
Tracking Changes
Setiap kali kita melakukan check-in, kita bisa menambahkan keterangan
misalnya perubahan apa saja yang kita lakukan dan mengapa. Keterangan ini
nantinya akan ditampilkan dalam bentuk log sehingga kita bisa melacak apa saja
yang telah kita lakukan dan file apa yang kita ubah.
Ingin tahu apa perbedaan antara index.html terbaru dengan index.html setahun
yang lalu? Mudah. Kita bahkan tidak perlu berpindah ke revisi setahun yang lalu.
Cukup kita lakukan satu atau dua perintah.
3.4
SandBoxing
Dalam membuat software atau website, revisi terhadap source code adalah
rutinitas. Tentu kita ingin memastikan bahwa perubahan yang kita lakukan sudah
benar dan tidak menimbulkan masalah baru. VCS memungkinkan kita melakukan
eksperimen dan pengujian tanpa harus melakukan perubahan permanen terhadap
source code di dalam sebuah lingkungan terisolasi (sandbox). Jika tidak ada masalah,
kita bisa lakukan check-in untuk menyimpan revisi. Sebaliknya, kalau ternyata ada
kesalahan, kita bisa membatalkan semua update dan mengembalikan semua file yang
kita modifikasi ke kondisi saat check-in terakhir.
3.5
Kolaborasi
Kita akan merasakan manfaat VCS terbesar pada saat kita berkolaborasi dengan
orang lain. Kita dan rekan kita bisa melakukan update terhadap source code secara
bersamaan tanpa khawatir saling mengganggu. Pada saatnya nanti, kita lakukan
sinkronisasi dan penggabungan semua update yang kita dan rekan kita lakukan.
4.
Centralized VCS
Centralized VCS (CVCS) seperti Subversion, ClearCase, CVS dan lain-lain,
menggunakan satu repositori untuk menyimpan semua revisi file. Semua orang
yang memiliki hak akses bekerja dengan cara check-out & check-in. Pada waktu
kita melakukan check-out sebuah file di repositori, kita mengambil perubahan
12
terakhir dari file tersebut dan mengaplikasikannya pada file yang sama di direktori
kerja kita. Sebaliknya, proses check-in mengirim perbedaan (diff) antara versi
terbaru dari file tersebut di direktori kerja kita dengan versi sebelumnya ke
repositori.
CVCS juga memiliki fitur lock yang mencegah sebuah file dimodifikasi oleh
lebih dari satu orang pada saat bersamaan. Fitur ini berguna untuk meminimalkan
konflik tetapi juga memiliki resiko yaitu kalau kita lupa membuka lock setelah
kita selesai bekerja, orang lain tidak bisa check- in file tersebut sampai kita unlock.
Kelemahan utama dari sistem ini adalah sifatnya yang terpusat menjadikan
repositori yang umumnya diletakkan di sebuah server sebagai single point of failure.
Jika server down atau kita mengalami gangguan koneksi, kita tidak bisa
meneruskan pekerjaan. Lebih parah lagi kalau hard disk server rusak, semua histori
hilang.
5.
Distributed VCS
DVCS dibuat sebagai alternatif yang lebih bisa diandalkan daripada CVCS.
Masing-masing orang yang bekerja memiliki full copy dari repositori sehingga jika
salah satu repositori rusak, recovery bisa dilakukan dengan mudah, cukup dengan
mengkopi repositori yang lain. DVCS memungkinkan kita mengubah file,
menambah atau menghapus file dan merekam perubahan- perubahan tersebut ke
dalam repositori lokal tanpa harus terkoneksi dengan server atau repositori lain.
Kelemahan DVCS adalah kemungkinan terjadinya konflik antar repositori
lebih besar daripada CVCS karena DVCS tidak memiliki fitur lock. Konflik terjadi
pada saat merging (penggabungan) source code di mana dua versi file memiliki
perbedaan isi. Banyak orang menyebutnya dengan istilah "Merging Hell". Hal ini
bisa diminimalisir dengan komunikasi dan arsitektur software yang baik.
6.
Memillih VCS
Dengan sedemikian banyak VCS, bagaimana kita memilih VCS yang tepat
untuk proyek yang akan kita kerjakan? Kita bisa menggunakan VCS manapun
disesuaikan dengan pengalaman kita atau rekan dalam tim. Semua VCS memiliki
kelebihan dan kekurangan masing-masing namun pada intinya, semuanya bertujuan
membantu kita bekerja lebih efisien. Berikut ini beberapa faktor yang bisa kita
pertimbangkan dalam memilih VCS.
13
artikel yang bisa kita temukan di Internet sehingga mudah untuk mencari solusi
apabila kita menemukan masalah.
Development activitity. Tentu tidak masuk akal jika kita menggunakan VCS
Data Model
Berbeda dengan CVCS yang hanya menyimpan bagian-bagian yang berubah
(disebut juga diff atau delta) dalam setiap revisi, Git menyimpan sebuah tree
yang berisi full-backup atau snapshot dari kondisi terakhir repositori dalam
bentuk compressed file yang dapat diekspansi menjadi sebuah struktur direktori
lengkap dengan file dan subdirektorinya. Ini alasannya mengapa repositori Git
selalu berukuran lebih besar daripada repositori CVCS seperti Subversion. Git
menyimpan working directory secara utuh, bukan hanya bagian yang berubah.
Gambar-gambar berikut menunjukkan perbedaan Subversion dan Git dalam
menyimpan revisi. Dalam Figure 15, File B dalam Versi 2, sama dengan File B
dalam Versi 1 karena yang berubah hanya File A dan File C. Dalam Versi 3,
File B mengalami perubahan (revisi) sementara File A dan File C masih sama
dengan yang ada dalam Versi 2. Setiap kali kita melakukan check-in, Subversion
menyimpan perbedaan (diff) antara file yang baru dengan versi sebelumnya.
Figure 16 memperlihatkan Git menyimpan struktur direktori secara utuh
dalam setiap revisi. Dalam Versi 2, File Adan File Csudah dimodifikasi tetapi
pada waktu kita melakukan commit, File B juga ikut disimpan dalam database.
Begitu juga pada Versi 3, File Adan File C yang tidak dimodifikasi juga ikut
disimpan bersama File B yang baru
14
15
dulu di dalam stagin index. Repositori akan diperbarui (update) setelah kita
melakukan commit atas file yang ada di dalam staging index.
Staged File = Staged file adalah file yang ada di dalam staging index.
Unstaged File = Unstaged File adalah file yang sudah dimodifikasi tetapi belum
masuk ke dalam staging index
Branch = Setiap repositori memiliki minimal satu cabang (branch) yang
disebut master branch. Kita bisa membuat lebih dari satu cabang dalam satu
repositori di mana masing-masing cabang memiliki histori sendiri-sendiri. Cabangcabang ini nantinya bisa digabungkan satu sama lain melalui proses merging.
Merge = Merge adalah proses penggabungan sebuah branch lain ke dalam
branch di mana kita berada.
Untracked File = Untracked file adalah file yang tidak pernah dimasukkan ke
dalam staging index sehingga file tersebut berada di luar kontrol Git.
Tracked File = Tracked file adalah file yang dikontrol atau dimonitor oleh Git.
HEAD = HEAD adalah pointer/referensi yang merujuk pada commit terakhir.
Push = Push adalah proses sinkronisasi antara repositori lokal dengan
remote repository. Di dalam proses ini, semua commit terbaru dikirim (upload) ke
repositori tujuan.
Fetch = Fetch adalah kebalikan dari push. Di dalam proses ini semua commit
terbaru di remote repository diunduh (download) ke repositori local.
9.
9.1
Windows
Pengguna Windows bisa
16
Setelah Anda unduh dan install , Anda akan melihat menu baru di
context-menu seperti gambar berikut:
GIT BASH
Git bash adalah aplikasi konsol (terminal) yang disertakan dalam paket instalasi
mysisgit. Konsol ini adalah emulator linux terminal untuk windows jadi beberapa
perintah linux seperti touch, ls, rm, echo, cat, dan grep bisa kita jalankan di sini.
17
9.3
MAC OS
Paket instalasi Git untuk Mac bisa kita dapatkan di alamat berikut dalam
bentuk .dmg.
http://git-scm.com/download/mac
Ada beberapa Git GUI gratis untuk Mac, salah satunya adalah Source Tree
dari Atlassian yang bisa kita dapatkan di Apple AppStore
Kalau Anda tidak ingin menggunakan aplikasi dari pihak ketiga, Anda bisa
menggunakan GUI yang ter-install bersama paket git dengan perintah:
$ git gui
18
10.
GITHUB
Github adalah software Hosting untuk proyek open source yang menggunakan
Tool System revisi kontrol Git. Jadi Git adalah tool untuk melakukan revisi code,
sedangkan github adalah webhostingnya. Mudahnya Github adalah Webhosting
untuk proyek proyek software seperti Google code atau sourceforge.net. Yang
membedakan Github dari Project hosting yang lain bisa kita lihat di bawah ini
1. Github menggunakan Git sebagai tool utama dalam merevisi code.
2. Github menyediakan free hosting untuk proyek open source, namun Github
juga menawarkan hosting berbayar untuk proyek perusahaan atau pribadi yang
sifatnya privat.
3. Github ditargetkan untuk para developer yang bekerja secara tim dan tidak
disatu tempat.
4. Github mempunyai fitur Social seperti Twitter seperti follow atau favorit
(Star).
Github mendukung semua bahasa pemrograman, anda bebas memakai bahasa
dan tool yang biasa dipakai.
11.
19
6. Github Profile,Sama seperti Twitter, Github juga mempunyai profil. Profil
berisi foto, jumlah repo yang dimiliki, jumlah follower, jumlah user yang kita
follow dan Star (jumlah proyek yang kita beri tanda bintang)
7. Fitur Pencarian
8. Github mempunyai lebih dari 10 juta repo sofware ingin mencari proyek open
source tertentu, gunakan fitur pencarian, Hasil pencarian tampak seperti di
gambar 2 diatas. Untuk memperkecil hasil pencarian bisa di filter berdasarkan
Repo, code, issue atau nama user atau bahasa pemrograman. Hasil pencarian
bisa diurutkan berdasarkan jumlah bintang tau jumlah fork.
12.
Bagian Code
Bagian utama dari struktur proyek ini adalah code itu sendiri. Kode ini juga
berisi penjelasan kapan dan apa file terakhir yang diedit berserta penjelasan
perubahan apayang terjadi.
20
Bagian Clone dan Download
Clone in desktop di pakai untuk mengkopi source code proyek terserbut ke
komputer kita , namun komputer kita harus sudah terinstall Github for Windows
atau Mac. Bagian paling penting dan paling sering dipakai adalah menu
download. jika anda ingin langsung mencoba code di komputer ,cukup klik
download, maka source code otomatis akan dizip dan diunduh ke kompuer
anda.
13.
GITHUB GIST
Selain fitur diatas, ada satu lagi fitur github yang cukup bermanfaat, fitur itu
bernama gist. Gist adalah layanan share snippet dari github. Biasanya hanya
potongan code pendek untuk memecahkan solusi di bahasa pemrograman
tertentu. Sebagai contoh, anda ingin tahu bagaimana cara menampilkan
tanggal di php, anda cukup buka https://gist.github.com. lalu masukan query
php date.
Berbagi snipet code di Gist
Jika anda ingin berbagi snippet atau fungsi tertentu, misalkan anda ingin
memberikan snippet fungsi chaptca, cukup klik create gist dan copas code
anda dan berikan penjelasan code secukupnya, Jika ada yang bertanya tentang
captcha, anda cukup mengshare link ke GIST tersebut.
DAFTAR PUSTAKA