BAB I PENDAHULUAN I-1

dokumen-dokumen yang mirip
BAB 1 PENDAHULUAN. Kabupaten Jombang merupakan salah satu Kabupaten yang terletak di

BAB III LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI. yang digunakan dalam penyelesaian Tugas Akhir ini, yaitu System Development

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

SIKLUS REKAYASA PERANGKAT LUNAK (SDLC)

BAB 1 PENDAHULUAN. mengenyam pendidikan. Untuk mewujudkan pendidikan yang berkualitas, perlu. dikelola dengan baik adalah masalah keuangan.

Review of Process Model. SE 3773 Manajemen Proyek Teknologi Informasi *Imelda Atastina*

BAB II LANDASAN TEORI. ditulis dan diterjemahkan oleh language software (bahasa Pemrograman) untuk

REKAYASA PERANGKAT LUNAK I

BAB 1 PENDAHULUAN.

Ratna Wardani. Department of Electronic Engineering Yogyakarta State University

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. Lembaga Ilmu Pengetahuan Indonesia (LIPI) merupakan Lembaga

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN.

Arsitektur Sistem Informasi. Tantri Hidayati Sinaga, M.Kom.

SOFTWARE PROCESS MODEL

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN 1-1

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

Jenis Metode Pengembangan Perangkat Lunak

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

BAB I PENDAHULUAN. hal proses pengolahan data, baik itu data siswa, guru, administrasi sekolah maupun data

BAB 1 PENDAHULUAN Latar Belakang

SIKLUS HIDUP PERANGKAT LUNAK

Systems Development Life Cycle (SDLC)

BAB 1 PENDAHULUAN 1.1 Latar Belakang

BAB III LANDASAN TEORI

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

2. BAB II LANDASAN TEORI. lanjut sehingga terbentuk suatu aplikasi yang sesuai dengan tujuan awal.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN I-1

BAB 1 PENDAHULUAN. perkembangan zaman yang paling terlihat adalah perkembangan teknologi yang

REKAYASA PERANGKAT LUNAK I ALIF FINANDHITA, M.T. - TEKNIK INFORMATIKA UNIKOM 1

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. sistem lain. Dalam hal tersebut, database yang tersebar di suatu instansi atau

BAB II LANDASAN TEORI. karyawan, jumlah jam kerja dalam seminggu, nomor bagian persediaan, atau

BAB III METODOLOGI PENELITIAN

BAB I PENDAHULUAN. 1.1.Latar Belakang

BAB I PENDAHULUAN. Skripsi merupakan istilah yang digunakan untuk mengilustrasikan suatu karya

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

SOFTWARE PROCESS MODEL I Disiapkan oleh: Umi Proboyekti, S.Kom, MLIS

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. banyak dimanfatkan perusahaan untuk mencapai tujuannya. Banyak sekali perusahaan

BAB I PENDAHULUAN. sekarang ini, banyak sekali bermunculan usaha bisnis waralaba yang

BAB I PENDAHULUAN. yang mungkin masih belum mengetahui bagaimana kegunaan teknologi

BAB II LANDASAN TEORI. pengertian. Secara garis besar ada dua kelompok pendekatan, yaitu:

BAB 1 PENDAHULUAN. Asosiasi Kafe dan Restoran (AKAR) Kota Bandung adalah Organisasi yang

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

BAB II LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI

1. PENDAHULUAN 1.1. Latar Belakang

BAB II LANDASAN TEORI. harapan akan memperoleh laba dari adanya transaksi-transaksi tersebut dan. atas barang atau jasa dari pihak penjual ke pembeli.

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

BAB II LANDASAN TEORI. Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling

BAB 1 PENDAHULUAN 1.1 Latar Belakang

BAB II LANDASAN TEORI. asing yang ditujukan kepada mereka yang bukan native speaker (Rudman 2011).

BAB I PENDAHULUAN I.1 Latar Belakang Masalah

BAB I PENDAHULUAN. merupakan salah satu factor yang dapat menunjang pencapaian laba bersih secara

BAB I PENDAHULUAN I-1

BAB I PENDAHULUAN. 1.1 Latar Belakang

1 BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI. untuk menyelesaikan suatu sasaran yang tertentu (Jogiyanto, 2005:1).

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN Latar Belakang

BAB 1 PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN I.1. Latar Belakang Masalah

BAB 1 PENDAHULUAN. tidak bisa dipisahkan dari proses bisnis, bahkan tidak jarang teknologi informasi menjadi

BAB II LANDASAN TEORI. beberapa ahli, definisi sistem adalah sebagai berikut.

BAB 1 PENDAHULUAN Latar Belakang

BAB I PENDAHULUAN. Pada era kemajuan teknologi seperti sekarang ini, manusia dapat melakukan


BAB 3 METODE PENELITIAN

BAB 1 PENDAHULUAN. Toko Barokah merupakan toko yang bergerak di bidang penjualan. Produk

LANDASAN TEORI. perusahaan yang usaha utamanya membeli obat untuk dijual kembali dengan

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

DAFTAR ISI. ABSTRAK... vii. KATA PENGANTAR... viii DAFTAR ISI... DAFTAR GAMBAR... xiv. DAFTAR TABEL... xvi. DAFTAR LAMPIRAN...

BAB II LANDASAN TEORI. landasan teori yang digunakan akan dijelaskan di bawah ini.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN 1-1

1. BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN I-1

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

2BAB II LANDASAN TEORI. Perpustakaan adalah institusi pengelola koleksi karyatulis, karya cetak,

1. BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. untuk menyimpan data - data yang terkait dengan proses bisnis seperti akademik,

Rekayasa Perangkat Lunak

1 BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Transkripsi:

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah Membangun sebuah perangkat lunak merupakan sebuah proses yang rumit, dan pada 25 tahun terakhir, para peneliti telah mengidentifikasi aktivitas-aktivitas yang harus dilalui dalam sebuah pengembangan perangkat lunak. Aktivitasaktivitas tersebut antara lain[2] : - Definisi permasalahan - Penggalian requirement - Perencanaan konstruksi - Mendesain arsitektur perangkat lunak, atau sering juga disebut high-level design - Tahap design yang lebih detail. - Coding dan debugging - Unit testing - Integration testing - Integration - System testing - Corrective maintenance Sedangkan Pressman menyatakan tahapan-tahapan pengembangan perangkat lunak sebagai berikut [3] : - Communication - Planning - Modeling - Construction - Deployment Sebelum tahun 2000, lebih dari lima puluh persen pengembangan perangkat lunak yang dilakukan oleh para vendor di Amerika Serikat mengalami I-1

I-2 kegagalan[4], hal ini disebabkan karena perangkat lunak yang dibuat tidak dapat memenuhi kebutuhan dan harapan pengguna (user requirements dan user expectations). Kendala yang dialami ketika mengembangkan sebuah perangkat lunak adalah suatu pengembangan perangkat lunak tidak berhenti ketika perangkat lunak telah dikirim ke konsumen. melainkan terus berlangsung selama masa hidup perangkat lunak tersebut. Setelah sebuah perangkat lunak diterima oleh konsumen, perangkat lunak tersebut harus selalu berubah mengikuti aturan bisnis yang seringkali berubah. Sebagian dari perangkat lunak tersebut harus dimodifikasi untuk menghilangkan error yang ditemukan, untuk beradaptasi terhadap perubahan hardawre dan software, atau untuk meningkatkan performa. Namun perubahan tersebut seringkali menimbulkan permasalahan baru yang tidak terduga sebelumnya. Erlikh(2000) mengadakan polling terhadap industri yang ada di Amerika Serikat, dan hasilnya menunjukkan bahwa 85-90% dari biaya perangkat lunak terletak pada biaya evolusi perangkat lunak. Survey lain menunjukkan bahwa sekitar 2/3 dari biaya perangkat lunak adalah biaya pemeliharaan[5]. Kegagalan-kegagalan dan problema yang ada ketika membangun perangkat lunak menunjukkan bahwa membangun perangkat lunak merupakan hal yang cukup kompleks sehingga dibutuhkan suatu disiplin ilmu yang berfungsi untuk menjelaskan dan memahami karakteristik dari pengembangan perangkat lunak. Hal ini ditunjukkan dengan adanya disiplin ilmu Software Engineering yang memberikan guidelines untuk membangun perangkat lunak. Supaya perangkat lunak yang telah dibangun dapat berevolusi mengikuti aturan bisnis yang selalu berubah-ubah, maka dibutuhkan suatu metode yang disebut dengan SoC(Separation of Concern) ketika membangun perangkat lunak. Gagasan ini dipopulerkan pertama kali oleh Edgar W. Dijkstra pada tahun 1974 dalam papper-nya yang berjudul On Role Scientific Thought. Konsep awal Separation of Concern (SoC) yang dikemukakan Dijkstra, bertujuan untuk memecah sebuah permasalahan yang kompleks ke dalam bagianbagian kecil yang lebih sederhana, lalu mencari solusi pada bagian-bagian kecil

I-3 tersebut. Namun dalam pembangunan sistem berorientasi objek, konsep SoC ini memungkinkan adanya pemisahan domain permasalahan. Pada awal tahun 1960-an, meskipun saat itu paradigma pengembangan perangkat lunak masih didominasi oleh paradigma prosedural maupun struktural, mulai dikembangkan paradigma sistem berorientasi objek. Paradigma ini memiliki salah satu ciri yang menganut prinsip SoC yaitu encapsulation. Dengan adanya encapsulation ini perubahan yang terjadi pada suatu kelas dapat diatur sehingga tidak memengaruhi kelas lainnya. Sekitar tahun 1980-an, ketika perangkat lunak mulai dominan digunakan di perusahaan-perusahaan bisnis berskala besar, sistem berorientasi objek semakin banyak digunakan. Keunggulan-keunggulan sistem berorientasi objek dibandingkan sistem lainnya antara lain dengan adanya konsep-konsep seperti component reusable, inheritance, polymorphism dan lain sebagainya. Karakteristik sistem berorientasi objek menyebabkan sistem ini cocok digunakan pada sistem informasi yang berkaitan dengan dunia bisnis, antara lain sistem informasi akuntansi, sistem informasi manajemen, manufaktur dan lainlain. Kemudahan sistem berorientasi objek dalam berevolusi mengikuti perubahan aturan bisnis pada perusahaan merupakan salah satu nilai tambah dari sistem berorientasi objek. Pada pembangunan Sistem Inventaris, perubahan nilai tukar valas, minimnya stok, membanjirnya permintaan, dan terjadinya suatu bencana alam, dapat menyebabkan fluktuasi pada harga barang dan menyebabkan suatu perubahan pada aturan bisnis yang berlaku. Perubahan pada aturan bisnis tersebut dapat mempengaruhi cara kerja Sistem Inventaris, dan dapat menyebabkan modifikasi pada Sistem. Modifikasi tersebut seringkali menyebabkan munculnya error-error dan bugs baru yang tidak teridentfikasi sebelumnya. Bahkan tidak jarang, modifikasi pada satu bagian sistem menimbulkan tidak berfungsinya bagian sistem yang lain. Berdasarkan uraian di atas, maka pada proposal tugas akhir ini penulis tertarik untuk mengangkat tema tentang pengembangan perangkat lunak dengan

I-4 judul Pemanfaatan Separation of Concern (SoC) pada Sistem Berorientasi Objek (Studi Kasus Sistem Inventaris Toko Aksesoris Komputer). 1.2 Identifikasi Masalah Berdasarkan latar belakang yang telah dipaparkan di atas, maka masalah yang muncul dalam penelitian ini adalah: 1. Banyaknya pembangunan perangkat lunak yang mengalami kegagalan, baik dari segi user requirement maupun dari segi user expectations. 2. Sulitnya membangun perangkat lunak secara tepat waktu dan sesuai budjet. 3. Besarnya biaya dan sumberdaya yang mesti dikeluarkan saat tahap maintenance pada proses pembangunan perangkat lunak. 4. Sistem inventaris yang bersifat fleksibel dan dapat berevolusi mengikuti perubahan aturan bisnis pada perusahaan sulit untuk dikembangkan. 1.3 Rumusan Masalah Berdasarkan identifikasi masalah yang telah dipaparkan di atas, maka masalah yang muncul dalam penelitian ini dapat dirumuskan sebagai berikut: 1. Bagaimana cara agar sebuah perangkat lunak dapat dimodifikasi untuk mengikuti perubahan pada aturan bisnis? 2. Bagaimana membangun sebuah kelas yang menerapkan prinsip SRP (Single Responsibility Principle)? 3. Bagaimana membangun struktur kelas yang menerapkan prinsip OCP (Open Closed Principle)? 4. Bagaimana membangun sebuah Sistem Inventaris yang fleksibel namun robust?

I-5 1.4 Tujuan Penelitian Adapun tujuan dari tugas akhir ini adalah memahami prinsip-prinsip pembangunan sistem berorientasi objek yang memungkinkan kemudahan modifikasi sistem, dengan memperhatikan SoC (Separation of Concern) seperti prinsip SRP (Single Responsibility Principle), OCP (Open Closed Principle), design pattern yang berkaitan dengan SoC, dan membangun aplikasi dengan layering. 1.5 Batasan Masalah Untuk dapat menghindari penyimpangan-penyimpangan serta memperjelas ruang lingkup pelaksanaan penelitian pada tugas akhir ini, penulis memiliki batasan masalah meliputi : 1. Sistem ini hanya mencakup garis besar prinsip-prinsip pemisahan problem domain. 2. Pembangunan sistem ini hanya menggunakan satu komputer, sehingga permasalahan-permasalahan yang bersifat client-server tidak dibahas di sini. 3. Sistem ini tidak membahas tentang keamanan, seperti keamanan aplikasi dan keamanan database. 4. Tidak semua design pattern yang berkaitan dengan SoC digunakan, melainkan hanya design pattern yang berkaitan dengan aplikasi yang dibuat. 1.6 Metode Penelitian Kegiatan penelitian ini dalam bentuk pengembangan perangkat lunak dan menggunakan Waterfall Model, tahapan-tahapan pengembangan yang dilakukan adalah Requirement analysis and definition, system and software design, implementation and unit testing, integration and system testing, dan operation and maintenance. Tahapan-tahapan tersebut saling terkait dan saling mempengaruhi membentuk sebuah siklus hidup perangkat lunak (Software Development Life Cycle). Langkah-langkah yang akan ditempuh dalam pengerjaan Tugas Akhir ini adalah:

I-6 A. Pemahaman Sistem dan Studi Literatur Tahap ini dilakukan dengan cara mempelajari literatur baik yang berupa buku, jurnal maupun halaman web yang berhubungan dengan pembangunan aplikasi pembangunan aplikasi berorientasi objek serta teknik-teknik yang berhubungan dengan Separation of Corncern B. Pengembangan Aplikasi Tahap ini merupakan pengembangan perangkat lunak dengan menggunakan Waterfall Model, tahapan-tahapan pengembangan yang dilakukan adalah : 1. Requirement Analysis and definition (analisis kebutuhan dan pendefinisian dari kebutuhan tersebut). Dalam tahap ini terjadi komunikasi berupa konsultasi dengan calon pengguna sistem mengenai layanan-layanan atau fitur yang disediakan oleh sistem, batasan atau domain yang dicakup oleh sistem, dan tujuan pembangunan sistem. Keseluruhan elemen tersebut kemudian didefinisikan secara detil dan berfungsi sebagai system specification (spesifikasi sistem). 2. System and software design (perancangan sistem dan perancangan perangkat lunak). Proses perancangan sistem mengalokasikan requirement yang telah diperoleh dari tahap analisis ke dalam perangkat lunak dan perangkat keras sistem dengan cara membangun arsitektur sistem secara keseluruhan. Sedangkan proses perancangan perangkat lunak meliputi proses identifikasi dan penggambaran abstraksi dasar sistem beserta relasi-relasinya. 3. Implementation and unit testing Pada tahap ini, desain perangkat lunak diimplementasikan ke dapam kumpulan program-program atau unit program. Unit

I-7 testing meliputi proses verifikasi bagwa setiap unit yang telah diimplementasikan memenuhi spesifikasinya. 4. Integration and system testing Unit-unit program yang masih terpisah diintegrasikan dan ditest sebagai sebuah sistem yang terintegrasi untuk memastikan bahwa requirement perangkat lunak telah dipenuhi. Setelah testing dilakukan, perangkat lunak tersebut kemudian dikirimkan ke konsumen. 5. Integration and system testing Umumnya (meskipun tidak selalu), tahap ini adalah tahap terlama dari SDLC. Sistem tersebut di-install dan mulai digunakan pada dunia nyata. Tahap pemeliharaan meliputi perbaikan error-error yang tidak ditemukan pada tahap-tahap SDLC yang lebih awal, peningkatan implementasi dari unit sistem dan memperbaiki fitur sistem untuk menyesuaikan terhadap requirement-requirement baru yang ditemukan. C. Penyusunan Laporan Tugas Akhir Pada tahapan ini dilakukan untuk membuat laporan dari semua dasar teori dan metode yang digunakan serta hasil- hasil yang diperoleh selama pengerjaan tugas akhir. 1.7 Sistematika Penulisan Pembahasan dalam tugas akhir ini dibagi menjadi beberapa bab sebagai berikut: Bab Satu Pendahuluan, bab ini merupakan suatu dasar penyusunan yang didalamnya berisi latar belakang masalah, rumusan masalah, tujuan, metode pengembangan sistem dan sistematika penulisan. Bab Dua Landasan Teori, bab ini menjelaskan tentang teori-teori yang berhubungan dengan sistem kerja dan pengembangan aplikasi yang bersangkutan.

I-8 Bab Tiga Analisis Sistem. Bab ini membahas tentang analisis kebutuhan sistem, ada empat aktivitas untuk mengetahui kebutuhan sistem, yaitu: Feasibility study, Requirement elicitation and analysis, Requirement specification, dan Requirement validation. Bab Empat Perancangan Sistem. Bab ini menjelaskan tentang perancangan arsitektural sistem, perancangan antarmuka, perancangan komponen sistem, dan perancangan basis data. Bab Lima Kesimpulan dan Saran, dalam bab ini membahas kesimpulan dan saran dari beberapa bab yang telah disusun sebelumnya.