BAB 2 TINJAUAN PUSTAKA 2.1 Software Engineering Sementara itu menurut Brandon, D. (2006: p. 60) Project Management for Modern Information Systems. Software Engineering adalah disiplin ilmu yang berfokus pada pengembangan aplikasi komputer yang besar. Software Engineering tidak hanya mencakup pada sisi teknikal saja, tetapi juga pada sisi manajemen. Seperti mengarahkan Tim Programming, penentuan jadwal, dan budgeting. Jadi dapat disimpulkan dari definisi dan penjelasan diatas Software Engineering adalah proses untuk menyelesaikan masalah customer dengan menggunakan sebuah sistem yang sistemis yang meliputi sisi teknikal dan juga manajemen. 2.2 Software Development Lifecycle Menurut Brandon, D. (2006: p. 60) Project Management for Modern Information Systems. Software Development Lifecycle adalah metode yang terintegrasi dengan system IT dan dibagi-bagi dalam beberapa tahapan. Tahapannya adalah: •
Definition
•
Specification (Requirement)
•
Design
•
Construction (Programming & Unit Testing)
•
Testing (System & Integration)
•
Installation
•
Operation & Maintenance
2.3 Agile Software Development Sedangkan menurut Brandon D. (2006: p. 75) Project Management for Modern System Information. Agile Software Development adalah sebuah meode
7
8 yang dikembangkan dari metodologi seperti Crystal, Scrum, Adaptive, FeatureDriven Development, Dynamic System Development Method, dan Extreme Programming. Sekitar tahun 1990an, terdapat kebutuhan untuk membangung system IT secara cepat untuk mengerjakan teknologi baru seperti Web Application dan e-commerce. Maka dikembangkanlah sebuah metodologi untuk mengatasi masalah tersebut. Beberapa perusahaan IT mengembangkan teknikteknik tersebut. Metodologi baru tersebut dilakukan untuk mengatasi SDLC (Software Development Life Cycle) yang lambat dan menghambat Developer. Seperti requirement resmi dan dokumentasi yang banyak. Kebanyakan Agile Project Management memiliki prinsip inti yang sama, seperti: a. Menggunakan desain yang simple b. Desain terus berjalan, sementara coding juga bisa berjalan c. Melakukan penambahan modul sedikit demi sedikit d. Mengerjakan hanya satu pekerjaan dalam satu waktu e. Menggunakan tools IDE dan RAD f. Hanya menggunakan teknik yang benar-benar dipakai oleh Developer nya Kelebihan dari Agile Software Development adalah a. Lebih cepat bereaksi terhadap perubahan requirement b. Secara keseluruhan menggunakan desain yang simple c. Coding terlebih dahulu sangat dimungkinkan d. Progress Code hampir selalu dalam keadaan stable 2.4 Scrum Methodology Menurut Team Scrum Methodology. Scrum adalah bagian dari metode Agile. Agile sendiri merupakan perbaikan banyak kekurangan dari metode Software
9 Development Project Management (termasuk Waterfall) dan mengambil metode dari learn manufacturing. Pada Scrum, terdapat 3 peran: a. Product Owner Pemilik Produk haruslah orang yang memiliki visi, berwenang, dan selalu tersedia. Pemilik Produk merespon secara continue
segala
komunikasi dan memiliki prioritas tinggi terhadap tim pengembang. b. Scrum Master Seorang Scrum Master berperan sebagai penghubung antara pemilik produk dengan Team c. Team Team itu mengatur dirinya sendiri. Tim pengembang juga harus responsible terhadap perintah organisasi untuk menyelesaikan pekerjaan. Dalam mengerjakan sistem tata kelola perkebunan kelapa sawit ini, kami menggunakan metodologi Scrum. Scrum bukanlah langkah standar seperti metode lainnya yang berurutan dan mejamin produk dihasilkan bagus atau selalu tepat waktu. Scrum adalah sebuah metode untuk mengorganisasikan dan mengatur sebuah project berdasarkan standar nilai, prinsip dan praktek di lapangan. Sehingga menciptakan sebuah fondasi yang kuat dalam melakukan pengerjaan project. Adapun penerapan Scrum adalah dengan diterapkannya: 1. Scrum Roles 2. Scrum Activities 3. Scrum Artifacts
10
Gambar 2. 1: Detail dari Penerap an Metodologi Scrum
2.4.1
Scrum Roles
Dalam Scrum terdapat 3 roles atau peran yang memegang bagian penting terhadap project yang sedang dikerjakan. Bisa juga terdapat lebih dari 3 peran, namun pada umumnya memakai 3 peran ini. Yaitu product owner, Scrum Master, dan Development Team.
11
Gambar 2. 2: Komponen dari Scrum Team
2.4.1.1 Product Owner Pemilik produk merupakan bagian sentral dari kepemimpinan pengerjaan project. Pemiliki produk haruslah menjelaskan tujuan yang ingin dicapai dalam pengerjaan project. 2.4.1.2 Scrum Master Scrum Master adalah seorang yang memimpin dan mengatur Development Team atau tim pengembang. Di satu sisi ia juga menerima arahan dari Product Owner. Kemudian dari arahan tersebut disesuaikan dengan project yang sedang dikerjakan. Yang harus diperhatikan disini, Scrum Master adalah seorang pemimpin bukan manajer. Karena Scrum Master tidak punya kewenangan untuk mengkontrol tim. 2.4.1.3
Development Team
Berbeda dengan metodologi tradisional seperti waterfall yang memiliki tim komplit terdiri dari analis, arsitek, tester, programmer, desainer, dan lain lain. Pada metodologi Scrum tidak demikian, di Scrum terdapat tim yang sangat fleksibel dan responsible
12 seperti
seseorang
dapat
mengerjakan
desain,
perancangan, dan testing produk sekaligus. 2.4.2
Scrum Activities and Artifacts
Gambar 2. 3: Alur dari Scrum Activities and Artifacts
2.4.2.1
Product Backlog
Menggunakan metode Scrum, kita selalu memulai dari fitur yang paling penting terlebih dahulu. Pemilik produk dan Scrum Team beserta para stakeholder nya menentukan list prioritas apa saja yang akan dikerjakan terlebih dahulu. List tersebutlah yang dinamakan dengan Product Backlog.
Gambar 2. 4: Product Backlog diurutakan dari segi prioritas
13 Segala aktivitas diatas dalam pembuatannya, estimasi lama pengerjaan,
dan
menentukan
prioritas
disebut
dengan
grooming.
Gambar 2. 5: Alur pengerjaan Product Backlog
2.4.2.2
Sprint
Pada Scrum, alur kerja biasanya dipresentasikan dalam sebuah perulangan yang diatur sesuai batasan waktu nya. Hal ini lah yang disebut dengan Sprints.
Gambar 2. 6: Contoh Sprint
Sprints diatur pada ruang waktu. Oleh karena itu antar satu Sprint dengan sprint lainnya selalu dimulai dengan start date dan end date. 2.4.2.3
Sprint Planning
Suatu product backlog merupakan representasi kerja satu pekan hingga beberapa pekan kedepan. Pada dasarnya
14 tahapan kerja tersebut dapat diselesaikan dalam sebuah short sprint. Sementara itu sprint planning adalah proses menentukan langkap apa saja yang penting dari backlog product untuk dikerjakan pada sprint berikutnya. Pemiliki produk, tim pengembang, dan Scrum Master lah yang menentukan sprint planning.
Gambar 2. 7: Alur Sprint Planning
2.4.2.4
Sprint Backlog
Untuk menentukan apakah suatu produk dapat diselesaikan, banyak tim pengembang membuat turunan dari masing-masing target yang ingin dicapai dan kemudian turunan-turunan itu dimasukkan dalam sebuah tugas tersendiri.
Kumpulan
dari
tugas-tugas
tersebut
yang
berhubungan dengan product backlog item itulah yang disebut dengan sprint backlog.
15
Gambar 2. 8: Contoh Sprint Backlog
2.4.2.5
Sprint Execution
Sekali Tim Scrum menyelesaikan sprint planning dan setuju dengan list pekerjaan sprint berikutnya, maka tim pengembang dengan dibimbing scrum master langsung mengerjakan tugas yang sudah di list.
Gambar 2. 9: Alur Sprint Execution
2.4.2.6
Daily Scrum
Masing-masing hari di Sprint satu dengan sprint lainnya biasa dikerjakan dalam waktu bersamaan. Tim pengembang memegang time boxed daily scrum yang membagi waktu dalam 15 menit atau kurang. Daily scrum bukanlah aktivitas pemecahan masalah, daily scrum juga bukanlah meeting secara konvensional. Daily scrum adalah tempat komunikasi perkembangan status
16 backlog
item
pengembang.
yang
sudah
Intinya
daily
dikerjakan scrum
diantara
adalah
tim
inspeksi,
sinkornisasi, dan tempat beradaptasi perencanaan aktivitas yang
membantu
tim
pengembang
untuk
melakukan
pekerjaan lebih baik.
Gambar 2. 10: Alur Daily Scrum
2.4.2.7
Done
Pada Scrum, hasil dari semua sprint yang sudah dikerjakan terdapat pada potentially shippable product increament. Yang artinya tim pengembang setuju dengan hasil yang sudah dikerjakan.
17
Gambar 2. 11: Posisi Done pada Scrum Activities
2.4.2.8
Sprint Review
Tujuan dari sprint review adalah untuk melakukan inspeksi dan adaptasi perkembangan produk yang sudah dibuat. Pada aktivitas ini leibatkan scrum team, stakeholder, sponsor, customer dan member lainnya. Aktivitas ini fokus untuk mereview fitur-fitur baru yang ditambahkan pada proses pengembangan di tahapan-tahapan sebelumnya.
Gambar 2. 12: Alur Sprint Review
2.4.2.9
Sprint Retrospective
Pada Sprint Retrospective, Scrum team menganalisa dan mencari Scrum process apa saja yang dapat digunakan
18 untuk meningkatkan kualitas produk. Hasil dari Sprint Retrospective sendiri adalah fitur-fitur atau aktivitas apa saja yang dapat dipakai kembali pada Product Backlog. Pada sprint retrospective tim pengembang, Scrum master, dan product owner melakukan pertemuan untuk mendiskusikan apa-apa saja yang dapat dipakai dan tidak dapat dipakai pada metodologi Scrum.
Gambar 2. 13: Sprint Retrospective sebagai akhir dari Activity
2.5 Teknologi yang Dipakai Dalam pembuatan sistem tata kelola terdapat beberapa teknologi yang digunakan. Diantaranya adalah sebagai berikut. 2.5.1
Model-View-Controller (MVC)
Menurut Brandon D. (2006: p. 395) Project Management for Modern System Information. MVC atau Model-View-Controller adalah sebuah pola desain dalam membangun sebuah user interface. Jadi dapat disimpulkan dari penjelasan dan definisi diatas, bahwa MVC adalah sebuah pola desain pembuatan system dengan pemisahan antar Model,View, dengan Controller sehingga bisa dikerjakan secara bersamaan. 2.5.2
Hypertext Markup Language (HTML)
Menurut Castro (2007: p. 14). HTML atau HyperText Markup Language adalah bahasa standarisasi Web dimana dari Tag-Tag tersebut
19 bisa menampilkan tampilan layout suatu web. HTML sendiri dapat dijalankan di berbagai sistem operasi seperti Mac, Linux, Windows, atau bahkan mobile OS seperti Andorid. 2.5.3
Cassading Stylesheet (CSS)
Menurut Lewis, RJ dan Meitar, M. (2009: p. 28), Advanced CSS. CSS adalah tambahan dari bahasa HTML yang dapat mengubah suatu sifat website menjadi lebih interaktif. CSS merupakan tambahan yang dapat diterapkan pada bahasa HTML. Artinya adalah CSS adalah bahasa yang dilihat dan ditampilkan pada browser user. 2.5.4
Hypertext Preprocessor (PHP) Menurut Babin, L. (2007: p. 26) Beginning AJAX with PHP: From
Novice to Professional. PHP adalah bahasa pemrograman web yang berbasis open source memiliki banyak fungsi, bisa beorientasi object, relatif stabil dan dapat dikombinasikan dengan bahasa pemrograman lain seperti HTML dan JavaScript. Contoh penulisan PHP:
Example
2.5.5
MySQL Menurut Schwartz, B., Peter Z., dan Vadim T. (2012: p. 1). Hight
Performance MySQL. MySQL adalah sebuah server database dimana arsitekturnya berbeda dengan server database lain. MySQL tidaklah sempurna, tetapi cukup fleksibel untuk digunakan oleh berbagai platform seperti web application yang pada bersamaan MySQL juga menyediakana data untuk embeded application, data warehouse, dan Online Transaction Processing (OTP).
20
Gambar 2. 14: Logo MySQL
2.5.6
JavaScript
Menurut Flanagan, D. (2011: p. 1) JavaScript The Definitive Guide. JavaScript adalah sebuah bahasa pemrograman yang kebanyakan dipakai oleh web. JavaScript merupakan bahasa pemrograman yang dapat dijalankan di berbagai platform seperti tablet, smartphone, Desktop, dan bahkan game consoles. JavaScript merupakan satu dari tiga bahasa pemrograman yang wajib dipelajari oleh web developer selain HTML dan CSS. Jika HTML adalah representasi dari isi web. CSS mempercantik tampilan web, maka JavaScript merupakan sifat dari web tersebut. 2.5.7
jQuery
Menurut Dominic, D. (2012: p. 165) Enterprise Software Architecture and Design. jQUery adalah sebuah library dari bahasa pemrograman JavaScript yang dimana mendukung declarative API yang dapat menyesuaikan dengan DOM tree. JQuery juga bisa menggantikan berbagai fungsi dari JavaScript native seperti getElementById dan getElementByName. 2.5.8
Codeigniter
Menurut Griffiths, A. (2010: p. 7) Codeigniter 1.7 Professional Development.
Codeigniter
merupakan
framework
PHP
untuk
merancang web berbasis open source. Codeigniter meenggunakan pola
MVC
(Model-View-Controller)
dalam perancangan
web
application nya. Model dipakai untuk proses pengerjaan database.
21 View untuk tampilan fornt-end nya. Sedangkan Controller untuk logika permasalahan dari aplikasi yang kita buat, sekaligus meengatur Model dan View nya. 2.5.9
Bootstrap Menurut getbootstrap.com. Bootstrap adalah sebuah open
source framework untuk mendesain suatu website yang responsive. Pada
awalnya
bootstrap
digunakan
untuk
mendesain
dan
mengembangkan Twitter. Oleh karena itu bootstrap juga dikenal sebagai Twitter Blueprint. Kelebihan bootstrap adalah cukup satu framework sudah bisa mendesain untuk semua device. Selain itu bootstrap juga memiliki banyak fitur. Mulai dari HTML element, custom HTML element, CSS component, dan awesome jQuery plugin. 2.6 Unified Modeling Language (UML) Menurut Bruegge, B., dan Allen H. Dutoit (2010: p. 30) Object-Oriented Software Engineering Using UML, Patterns, and JavaTM. Unfied Modeling Language atau UML adalah sbuah notasi dari suatu penyatuan dari OMT (Object Modeling Technique) dan OOSE (Object Oriented Software Engineering). UML juga terpengaruh dari notasi lainnya yang berorientasi object. Tujuan dari UML adalah menyediakan standar notasi yang dapat dipakai oleh semua metode yang berorientasi pada object.
UML sendiri berisi beberapa tipe diagram, diantaranya: 2.6.1
Usecase Diagram
Menurut Bruegge, B., dan Allen H. Dutoit (2010: p. 31) ObjectOriented Software Engineering Using UML, Patterns, and JavaTM. Usecase Diagram merupakan penjelasan suatu fungsi yang tersedia oleh sistem yang terlihat dan melibatkan seorang aktor. Suatu aktor menjelaskan sebuah entitas yang berinteraksi pada sistem.
22
r. Gambar 2. 15: Contoh Use Case tentang ATM
2.6.2
Activity Diagram Menurut Bruegge, B., dan Allen H. Dutoit (2010: p. 33)
Object-Oriented Software Engineering Using UML, Patterns, and JavaTM. Activity Diagram merupakan diagram yang menjelaskan sifat kebutuhan dari suatu sistem. Aktivtas terdiri dari element modeling yang merepresentasikan eksekusi dari suatu operasi. Suatu aktivitas dapat terjadi jika aktivitas lainnya selesai.
Gambar 2. 16: Contoh Activity Diagram pada Sistem Peminjaman Perpustakaan
23 2.6.3
Class Diagram
Menurut Bruegge, B., dan Allen H. Dutoit (2010: p. 32) ObjectOriented Software Engineering Using UML, Patterns, and JavaTM. Class Diagram merupakan sebuah diagram yang menjelaskan struktur dari suatu sistem. Suatu class abstraksi yang menjelaskan struktur umum dan sifat dari suatu object.
Gambar 2. 17: Contoh Class Diagram menggunakan Sistem MVC
2.6.4
Sequence Diagram
Menurut Bruegge, B., dan Allen H. Dutoit (2010: p. 32) ObjectOriented Software Engineering Using UML, Patterns, and JavaTM. Sequence Diagram merupakan diagram yang digunakan untuk menjelaskan atau memvisualisasikan alur dan komunikasi antar Object. Hal ini sangat berguna untuk mengidentifikasi object yang diambil dari suatu use case.
24
Gambar 2. 18: Contoh Sequence Diagram pada Sistem ATM
2.6.5
Entity Relationship Diagram (ERD)
Menurut Bruegge, B., dan Allen H. Dutoit (2010: p. 177) ObjectOriented Software Engineering Using UML, Patterns, and JavaTM. ERD merupakan suatu diagram yang merepresntasikan relasi antara entitas satu dengan entitas lainnya yang berguna untuk keperluan data pada suatu sistem. Dalam merancang database biasanya dibagi ke dalam 6 tahap. Sedangkan model ER (Entity Relationship) dibagi kedalam tiga tahap awal. Yaitu: a. Requirement Analysis Langkah awal dari merancang datbase adalah dengan mendeskripsikan apa tujuan membuat suatu aplikasi. Apa saja yang dibutuhkan. Biasanya dalam tahap ini terdapat diskusi grup dan juga adanya meeting anatara pihak sponsor dengan pihak pengembang. Hasil dari tahap ini adanya dokumen yang dapat dianalisis untuk tahap selanjutnya. b. Conceptual Database Design Informasi dari tahap sebelumnya diolahh menjadi sebuah deskripsi yang mendetail. Biasanya dalam tahap inilah dibuat ERD c. Logical Database Design
25 Pada tahap ini pengembang atau pembuat aplikasi memilih DBMS
apa
yang
akan
digunakan
dan
kemudian
diimplementasikan. Adapun tiga tahap lanjutan nya adalah sebagai berikut: d. Schema Refinement e. Physical Database Design f. Application and Security Design
Gambar 2. 19: Contoh ERD
2.7 Pengadaan Menurut Mak, J. (2014: p. 2) What is Procurement?. Pengadaan adalah aktivitas atau proses pada pembelian barang dan jasa untuk keperluan manajemen. Terdapat beberapa aspek yang harus diperhatikan ketika melakukan pengadaan, atau biasa yang disebut dengan The Purchasing Environment. Yaitu: a. Relasi supplier yang terdekat b. Audit manajemen Kualitas kerja (Bukan inspeksi) c. Kontrol stok barang agar barang selalu dijaga standar minimum kuantitas nya d. Rantai pasokan barang yang baku e. Beberapa alternatif supplier
26 f. Distribusi barang dari supplier yang terpecaya dan dengan harga yang relatif terjangkau serta diusahakan tidak overhead g. Administrasi yang tidak ribet dan pengawasan yang ketat 2.8 Persediaan Menurut Reid & Sanders, T. (2007: p. 4) Persediaan adalah pertanggungjawaban atas ketersediaan stok barang. Ini sangat penting untuk keperluan operasional yang membutuhkan bahan mentah, jadi ataupun setengah jadi. Yang perlu menjadi pertimbangan adalah kuantitas dan kualitas barang.
Gambar 2. 20: Alur Pengadaan
Kontrol persediaan berfungsi mengoptimalisasikan 3 aspek penting pada perusahaan, yaitu: a. customer service b. inventory costs c. operating costs 2.9 Agribisnis Perkebunan Kelapa Sawit Menurut Pahan, I (2013: p. 2). Panduan Lengkap Kelapa Sawit: Manajemen Agribisnis dari Hulu hingga Hilir. Agribisnis perkebun kelapa sawit adalah segala aktivitas pengembangan dan pemberdayaan
27 pada perkebunan kelapa sawit mulai dari proses pengadaan dan penyaluran sarana produksi (Agroindustri Hulu) kemudian produksi primer (Budi daya pertanian), Pengolahan (Agroindustri Hilir), hingga ke pemasaran. Dalam kegiatan agribisnis pada perkebunan kelapa sawit terdapat beberapa aspek yang harus diperhatikan, yaitu: a. Pembibitan b. Pembukaan lahan c. Penanaman d. Pemupukan e. Pemeliharaan f. Produksi g. Panen h. Traksi dan Transportasi 2.10
State of the Art Dikaranekan semakin cepatnya arus informasi dan perkembangan
teknologi, management dan akuntansi perkebunan kelapa sawit pun di tuntut juga untuk bisa menyesuaikan untuk mencapai hasil yang optimal dan efisien. Maka dari itu penulis membuat Sistem tata kelola kelapa Sawit ini yang akan dipakai oleh PT Borneo Indo Tani. Didapatkan dari berbagai sumber, terdapat banyak sistem informasi perkebunan kelapa sawit yang sudah ada dengan pengolahan data yang berbedabeda. Beberapa Penelitian yang pernah dilakukan dan terdapat Sistem Informasi yang berhubungan dengan Sistem tata kelola Perkebunan Kelapa Sawit penulis adalah sebagai berikut : Lina Yanti (2012) Judul penelitian ini adalah Penggunaan Sistem Informasi dalam Perkebunan Kelapa Sawit. Dalam penelitian ini penulis menjelaskan secara detail tentang Implementasi ERP pada perusahaan Kebun Kelapa Sawit dengan menggunakan berbagai ERP seperti penerapan SAP pada Kelapa Sawit, lalu Software JD Edwards Grower Management berbasis Oracle, dan terakhir ADem Sawit dari Adempire. Hasil dari penilitiannya penulis lebih ke arah Penggunaan dan penerapa beberapa Sistem ERP pada perusahaan Kelapa
28 Sawit. Sehingga dari penelitian tersebut Sistem ERP yang diterapkan dapat dijadikan contoh dalam pengembagan sistem tata kelola. Rizky Rahardika (2012) Judul penelitian ini adalah Penerapan ERP (Enterprise Resource Planning) di PT Sinar Mas Agro Resources And Technology (SMART), Tbk. Dalam penelitian ini penulis menjelaskan tentang implementasi ERP yang sudah berjalan di PT SMART. ERP yang sudah berjalan adalah mySAP Business dengan modul-modul dibawahnya, diantaranya: MIS (Marketing Information System), SAP Human Capital Management, Finance and Accounting System, Supply Chain Management. Penulis juga menjelaskan secara general bahwa system ERP sudah berjalan dengan baik dan terintegrasi satu dengan lainnya. Beberapa diantaranya: a). Pendukung fungsi logistik perusahaan, terakait dengan aliran barang dari hulu ke hilir. b). Pemantauan Kinerja setiap Perkebunan, untuk saling bersaing meningkatkan produktivitas kebun. c). Mempertahankan pemasokan CPO dari setiap perkebunan, dengan pengambilan data secara berkala. d). Pengendaliaan Persediaan bahan baku dan bahan tambahan dalam pabrik pengolahan. e). Pemantauan harga berdasarkan tahun sebelumnya dan digunakan sebagai acuan harga jual periode berikutnya. f). Pemantauan hal yang terakit dengan karyawan perusahaan dan kualitas sdm. Hasil dari penelitian ini adalah bahwa PT SMART telah mengintegrasikan ERP ke semua divisi dengan baik.