Dokumen tersebut membahas tentang version control system Subversion, algoritma Shunting Yard untuk mengkonversi ekspresi infix ke postfix, dan penggunaan Subversion untuk kolaborasi pengembangan perangkat lunak secara berkelompok.
6. Dari Infix ke Postfix
Edsger W Dijkstra
Shunting Yard
Algorithm
Semaphore
Shortest Path
7. Shunting Yard Algorithm
Selama masih ada token dalam string Masukan:
Baca satu token.
Jika token tsb operand:
Tambahkan ke queue Luaran.
Jika token tsb sebuah operator, o1:
while there is an operator token, o2, at the top of the
stack, and
either o1 is left-associative and its precedence is less
than or equal to that of o2,
or o1 is right-associative and its precedence is less
than that of o2,
pop o2 off the stack, onto the output queue;
push o1 onto the stack.
8. Shunting Yard Algorithm
Jika token tsb tanda kurung buka:
Push ke stack.
Jika token tsb tanda kurung tutup:
Lakukan hinggal token pada top of stack adalah tanda
kurung buka:
Pop semua operator dari stack ke queue Luaran.
Pop tanda kurung buka dari stack, tapi tidak
dimasukkan ke queue Luaran.
Jika isi stack habis tanpa menemui tanda kurung buka:
Ada ketidakcocokan tanda kurung.
9. Shunting Yard Algorithm
Jika tidak ada lagi token dalam string Masukan:
Selama masih ada operator dalam stack:
Jika operator di top of stack adalah tanda kurung:
Ada ketidakcocokan tanda kurung.
Pop semua operator ke queue Luaran.
Exit.
11. Contoh
String masukan
3+4*2/(1-5)^2^3
Token Aksi Luaran Stack Keterangan
3 Letakkan di 3
queue Luaran
+ Push ke stack 3 +
4 Letakkan di 34 +
queue
* Push ke stack 34 * + Presedensi *
lebih tinggi
daripada +
12. Contoh
Token Aksi Luaran Stack Keterangan
2 Letakkan di 342 *+
queue
/ Pop stack ke 342* + / dan * memiliki
queue Luaran presedensi
yang sama
Push token ke 342* / + Presedensi /
stack lebih tinggi
daripada +
( Push ke stack 342* (/+
1 Letakkan di 342*1 (/+
queue
- Push ke stack 342*1 -(/+
5 Letakkan di 342*15 -(/+
queue
13. Contoh
Token Aksi Luaran Stack Keterangan
) Pop stack 342*15- ( / + Pop hingga
ketemu "("
Pop stack 342*15- / + Abaikan
pasangan tanda
kurung
^ Push ke stack 342*15- ^ / + Presedensi ^
lebih tinggi
daripada /
2 Letakkan di 342*15-2 ^/+
queue
^ Push ke stack 342*15-2 ^ ^ / + ^ bersifat
asosiatif kanan
3 Letakkan di 342*15–23 ^^/+
queue
$ Pop sisa stack 342*15–23
^^/+
14. Kelompok
Praktek menggunakan Subversion
Setup SVN repository di Google Code
Try it!
Submit your team's URL
Submit your team members
15. Subversion Repository
Checkout
Membuat salinan lokal dari repository
svn checkout
https://alawisoft.googlecode.com/svn/trunk/ alawisoft
--username barliant@gmail.com
svn co https://alawisoft.googlecode.com/svn/trunk/
group-a –username barliant@gmail.com
Username
Alamat e-mail
Password
Auto generated
17. Subversion
Setelah checkout, kerjakan modul masing-masing
Menambahkan berkas
svn add README.txt
Membuat folder baru
svn mkdir data
Setelah melakukan perubahan
svn commit -m "Keterangan perubahan."
Edit dan Review perubahan dengan 'svn commit'
Set environment variabel 'SVN_EDITOR = notepad'
18. Subversion
Mendapatkan perubahan yang dilakukan rekan lain
'svn update'
19. Tugas Kelompok
Implementasikan struktur data Queue
Implementasikan struktur data Stack
Implementasikan Shunting Yard Algorithm
21. Evaluasi Postfix
Token Stack Operasi
1 1 8 3 Push
5 5 1 8 3 Push
- 8 3 Pop 5, Pop 1, Substract
-4 8 3
/ 3 Pop -4, Pop 8, Divide
-2 3
+ Pop -2, Pop 3, Add
1
22. Tiada hari tanpa Subversion
Update
Make changes
Examine changes
Resolve conflicts
Commit changes
23. Sehari-hari Bersama SVN
SVN Update
Lihat perubahan, svn diff
Membuat direktori
Mkdir namaFolder
Tambahkan ke svn management
Svn add namaFolder
Melihat file / folder yang belum di-manage
Svn status
24. Update dan Make Changes
Setelah checkout, kerjakan modul masing-masing
svn update
Edit berkas
Menambahkan berkas
svn add README.txt
Membuat folder baru
svn mkdir data
25. Examine Changes
Lihat status perubahan
svn status
Lihat perubahan setiap berkas
svn diff
Kembalikan ke versi sebelumnya
svn revert
26. Commit Changes
Setelah melakukan perubahan
svn commit -m "Keterangan perubahan." --username
barliant@gmail.com
Edit dan Review perubahan dengan 'svn commit'
Set environment variabel 'SVN_EDITOR = notepad'
27. Resolve Conflicts
Top piece of bread
Mayonnaise
Lettuce
Tomato
Provolone
<<<<<<< .mine
Salami
Mortadella
Prosciutto
=======
Sauerkraut
Grilled Chicken
>>>>>>> .r2
Creole Mustard
Bottom piece of bread
29. Update Working Copy
Svn checkout URL namaFolder –username namaUser
Cd namaFolder
Svn update
A ddition
U pdate
D elete
mer G e
C onflict
30. Tips Command Prompt
Pindah folder
Cd namaFolder
Cd ..
Menyalin berkas
Copy
Membuat folder
Mkdir
Menghapus berkas
Del
Menghapus folder
Rmdir
31. Tips Command Prompt
Panah atas, Panah bawah
Mengulan perintah yang sudah diketikkan
33. Topik-topik Lanjutan
Dokumentasi
Bagaimana membuat dokumentasi yang baik?
Literate programming
Java doc
Doxygen
Docstring
Code Branching
Release code to public
Development still on the go
34. Topik-topik Lanjutan
Software Ticketing / Bug Tracking
Bagaimana menerima laporan bug (incident) dari user?
35.
36. Topik-topik Menarik
Social aspect
Banyak developer (khususnya OSS) tak pernah
bertemu tatap muka!
Start-up companies
Varieties of softwares
Games (yang berkualitas?)