Analisis penggunaan multithreading untuk penarikan data pada skala besar di PT.Bina San Prima Bogor

(1)

(2)

(3)

(4)

(5)

Data Pribadi

Nama : M Ellza Suryawan

Jenis Kelamin : Laki-laki

Tempat, Tanggal Lahir : Bogor, 04 Juli 1989

Agama : Islam

Kewarganegaraan : Indonesia Status Perkawinan : Belum Menikah

Anak ke : Satu dari tiga bersaudara Alamat Lengkap : Jl. Raweuy RT/RW 004/001

Kel/Desa Sukasirna Kecamatan Jonggol Kabupten Bogor

Telepon, HP : 085722224289

Email : Mellzasuryawan@yahoo.co.id

Pendidikan Formal

1995 - 2001 : SD Negeri 1 Sukasirna 2001 - 2004 : SLTP PGRI 1 Jonggol 2004 - 2007 : SMA Negeri 1 Raweuy


(6)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Studi S1 Teknik Informatika

Fakultas Teknik dan Ilmu Komputer

M ELLZA SURYAWAN

10107725

PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA 2013


(7)

KATA PENGANTAR

Assalamualaikum Wr Wb.

Puji syukur penulis panjatkan kehadirat Allah S.W.T yang telah memberikan rahmat dan karunia-Nya, shalawat serta salam semoga tercurah kepada Rasulullah SAW, sehingga penulis dapat menyelesaikan Skripsi yang berjudul ANALISIS PENGGUNAAN MULTITHREADING UNTUK PENARIKAN LAPORAN DATA PENJUALAN PADA SKALA BESAR DI PT Bina San Prima Bogor.

Tujuan dari penyusunan skripsi ini adalah untuk memenuhi salah satu syarat dalam menyelesaikan studi jenjang strata satu (S1) di Program Studi Teknik Informatika, Universitas Komputer Indonesia.

Dengan keterbatasan literatur, pengalaman serta ilmu dan pengetahuan yang dimiliki oleh penulis, maka penulis membutuhkan peran serta dari pihak lain dalam proses penyelesaian skripsi ini. Oleh karena itu penulis menyampaikan ucapan terima kasih yang sebesar-besarnya kepada :

1. Orangtua tercinta yang telah memberikan kasih sayang, perhatian, doa dan dorongan baik moril maupun materi yang tiada henti agar penulis menyelesaikan pendidikan tepat pada waktunya. Semoga suatu saat nanti aku dapat membanggakan kalian.

2. Ibu Tati Harihayati M.,S.T.,M.T., selaku dosen pembimbing. Terima kasih karena telah banyak meluangkan waktu untuk memberikan bimbingan, saran dan nasehatnya selama dalam proses penyusunan skripsi ini.


(8)

iv

4. Ibu Dian Dharmayanti, S.T.,M.Kom. selaku penguji II.

5. Bapak Irawan Afrianto, S.T., M.T, Selaku Ketua Jurusan Program Studi Teknik Informatika Universitas Komputer Indonesia.

6. Dosen – dosen Jurusan Teknik Informatika di Universitas Komputer Indonesia yang telah banyak memberikan ilmu yang berharga selama proses pendidikan ini.

7. Seluruh staf karyawan di Jurusan Teknik Informatika Universitas Komputer yang telah membantu demi kelancaran proses pendidikan yang penulis tempuh.

8. Teman-teman di Jurusan Teknik Informatika angkatan 2007 khususnya kelas IF-15 terima kasih atas bantuan dan doronganya.

9. Serta semua pihak yang telah turut membantu baik secara langsung maupun tidak langsung dalam penyusunan skripsi ini, yang tidak bisa disebutkan satu persatu.

Didalam penulisan skripsi ini, penulis telah berusaha semaksimal mungkin, walaupun demikian penulis menyadari bahwa skripsi ini jauh dari sempurna. Untuk itu penulis akan selalu menerima segala masukkan yang tujuannya untuk menyempurnakan skripsi ini. Akhir kata, penulis berharap semoga skripsi ini dapat bermanfaat bagi penulis pada khususnya dan pembaca pada umumnya.

Bandung, Januari 2013


(9)

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... ix

DAFTAR TABEL ... x

DAFTAR SIMBOL ... xii

DAFTAR LAMPIRAN ... xiii

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 2

1.3 Maksud dan Tujuan ... 2

1.4 Batasan Masalah ... 2

1.5 Metodologi Penelitian ... 3

BAB 2 TINJAUAN PUSTAKA ... 7

2.1 Profil Perusahaan ... 7

2.1.1 Sejarah Perusahaan ... 7

2.1.2 Visi dan Misi ... 8

2.1.3 Struktur Organisasi ... 8

2.1.4 Logo ... 9

2.2 Landasan Teori ... 10

2.2.1 Thread ... 10

2.2.1.1 Multithreading ... 11


(10)

vi

2.2.2.2 Shortest Job-First ... 15

2.2.2.3 Priority Scheduling ... 16

2.2.2.4 Round Robin ... 16

2.2.3 Jaringan ... 17

2.2.3.1 Sejarah Jaringan ... 17

2.2.3.2 Jenis – jenis Jaringan Komputer ... 19

2.2.3.3 Tipe – Tipe Jaringan Komputer ... 20

2.2.3.4 Topologi Jaringan ... 22

2.2.4 Client Server ... 25

2.2.4.1 Konsep Dasar Client-server ... 25

2.2.5 Konsep Perancangan Berorientasi Objek ... 26

2.2.5.1 Konsep UML (Unified Modeling Language) ... 27

2.2.5.2 Sejarah UML ... 27

2.2.5.3 Tipe – Tipe Diagram UML ... 28

2.2.6 Jaringan Semantik ... 30

2.2.7 MySQL ... 33

2.2.7.1 Sejarah MySQL ... 33

2.2.8 Borland Delphi ... 34

2.2.8.1 Keistimewaan MySQL ... 34

2.2.9 Microsoft Excel ... 36

BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 37


(11)

3.1.4 Analisis Kebutuhan non-fungsional ... 41

3.1.4.1 Analisis Kebutuhan Perangkat Keras ... 42

3.1.4.2 Analisis Kebutuhan Perangkat Lunak ... 42

3.1.4.3 Analisis Pengguna Sistem ... 43

3.1.4.4 Analisis Metode Multithreading ... 43

3.1.4.5 Analisis Client Server ... 44

3.1.5 Analisis Kebutuhan Fungsional ... 45

3.2 Perancangan sistem ... 61

3.2.1 Diagram Relasi ... 61

3.2.2 Perancangan pesan ... 62

3.2.3 Perancangan Method ... 62

3.2.4 Jaringan Semantik ... 63

3.2.5 Arsitektur Antar Muka ... 64

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ... 66

4.1 Implementasi Sistem ... 66

4.1.1 Perangkat Lunak Pengujian ... 66

4.1.2 Perangkat Keras Pengujian ... 66

4.1.3 Implementasi Basis Data (Database) ... 67

4.1.4 Implementasi Antar Muka ... 69

4.2 Pengujian Sistem ... 72

4.2.1 Rencana Pengujian ... 73


(12)

viii

4.2.2.4 Pengujian Add Principal ... 76

4.2.2.5 Pengujian Principal ... 77

4.2.2.6 Pengujian Schedule ... 78

4.2.2.7 Pengujian Process Single Thread ... 78

4.2.2.8 Pengujian Process MultiThread ... 79

4.2.3 Kesimpulan Hasil Uji Alpha ... 79

4.2.4 Pengujian Beta ... 80

4.2.4.1 Wawancara Pengujian Beta ... 80

4.2.4.2 Kesimpulan Pengujian Beta ... 82

BAB 5 KESIMPULAN DAN SARAN... 83

5.1 Kesimpulan ... 83

5.2 Saran ... 83


(13)

[1]. Sugiyono. Dr.,Prof., Metode Penelitian Kuantitatif Kualitatif Dan R&D, Alfabeta, Bandung, 2010.

[2]. Kadir, Abdul, Pemrograman C++, Andi, Yogyakarta, 2003.

[3]. Malik, Jaja Jamaludin, Membuat Form Cantik Untuk Aplikasi Delphi,

Andi, Yogyakarta, 2006.

[4]. Kupas Tuntas Adobe Dreamweaver CS5 Dengan Pemrograman PHP & MySQL, Andi, Yogyakarta, Madcoms, Madium, 2010.

[5]. Purnomo, Catur Hadi, 250 Tip & Trik Excel 2007 & 2010, Mediakita, Jakarta, 2012.

[6]. Kristanto, Andri, Jaringan Komputer, Graha Ilmu, Yogyakarta, 2003. [7]. Pilone. Dan, Pitman. Neil, UML 2.0 in a Nutshell, O'Reilly Media,

Inc., Sebastopol, 2005.

[8]. Pudjo Widodo. Prabowo, Herlawati, Menggunakan UML,

Informatika, Bandung, 2011.

[9]. Ariyus, Dony. Pangera, Abas Ali, Sistem Operasi, Andi, Yogyakarta, 2010.

[10]. Sommerville. Ian, Software Engineering 8th Edition, England, Addison-Wesley Publishers Limited, 2007.


(14)

1 1.1 Latar Belakang Masalah

PT Bina San Prima Bogor sebagai salah satu anak cabang dari PT Bina San Prima yang berpusat dibandung saat ini memiliki 38 cabang yang tersebar diseluruh wilayah indonesia. PT Bina San Prima Bogor yang bergerak dalam bidang distributor dan menyediakan 3 divisi produk yang berbeda yaitu divisi produk obat-obatan, divisi produk makanan ringan dan divisi produk makanan hewan. PT Bina San Prima Bogor dan cabang PT Bina San Prima lain mempunyai masalah pada saat proses penutupan buku karena saat proses penutupan buku dilakukan maka laporan data penjualan akan ditarik dari setiap cabang, dikarenakan laporan data penjualan pada perusahaan pusat dan cabang masih menggunakan sistem antrian pengiriman singlethread.

PT Bina San Prima Bogor yang akan melakukan penarikan laporan data untuk membentuk laporan penjualan seluruh produk maka sistem yang sekarang berjalan adalah dengan menarik divisi produk secara singlethread, dengan pemrosesan divisi produk pertama hingga selesai kemudian dilanjutkan dengan divisi produk kedua hingga selesai dan seterusnya hingga divisi produk sejumlah ke-n. PT Bina San Pima sekarang memiliki lebih dari 200 macam produk yang terbagi dalam 35 divisi produk yang aktif dalam transaksi faktur, sehingga untuk membentuk laporan penjualan pada seluruh divisi produk penarikan data menjadi sangat lama dan terkadang terdapat data yang sama.

Salah satu solusi dari permasalahan sistem pengiriman singlethread pada PT Bina San Prima Bogor adalah dengan cara menggunakan multithreading.

Multithreading adalah cara pengeksekusian yang mengijinkan beberapa thread

terjadi dalam sebuah proses penarikan data, saling berbagi sumber daya tetapi dapat dijalankan secara independen. Oleh karena itu dalam penelitian ini diambil


(15)

sebuah judul yaitu Analisis Penggunaan Multithreading Untuk Penarikan Laporan Data Penjualan Pada Skala Besar Di PT Bina San Prima Bogor.

1.2 Rumusan Masalah

Berdasarkan latar belakang masalah diperoleh rumusan masalah yaitu menganalisis penggunaan multithreading untuk penarikan laporan data penjualan pada skala besar.

1.3 Maksud dan Tujuan

Maksud dari penulisan tugas akhir ini adalah untuk menganalisis dan mengimplementasikan sistem multithreading kedalam sebuah aplikasi.

Tujuan yang ingin dicapai dalam penelitian ini adalah:

1. Menerapkan konsep teori antrian data laporan penjualan di PT Bina San Prima Bogor kedalam sistem.

2. Mempercepat proses pengiriman laporan data penjualan yang ada di PT Bina San Prima Bogor dengan membandingkan teori single thread dan multithread

kedalam sebuah sistem.

1.4 Batasan Masalah

Batasan masalah diberikan agar tujuan penelitian tugas akhir ini tercapai dengan optimal dan terarah, berikut batasan-batasan dari masalah yang dihadapi yaitu:

1. Hasil pengolahan penarikan data berupa laporan pivot dalam bentuk Microsoft Office Excel.

2. Pengujian & implementasi sistem berbasis satu client dan satu server dengan menggunakan tools Borland Delphi.

3. Algoritma penjadwalan FCFS (First Come First Served Scheduling) digunakan untuk penjadwalan antrian.


(16)

5. Pendekatan analisis pembangunan perangkat lunak berorientasi objek dengan

Unifield Modeling Language (UML).

1.5 Metodologi Penelitian

Metodologi penelitian yang akan digunakan dalam menyusun tugas akhir ini adalah metode Analisis Deskriptif, yaitu suatu metode yang bertujuan untuk mendapatkan gambaran yang jelas tentang hal-hal yang diperlukan, melalui metode Pengumpulan Data dan metode pembangunan perangkat lunak Waterfall.

1.5.1 Metode Pengumpulan Data

Metode Pengumpulan Data ini bertujuan untuk memperoleh data – data apa saja yang dibutuhkan dalam analisis penarikan multithreading. Berikut ini adalah metode yang dilakukan dalam tahap pengumpulan data:

1. Studi Literatur

Studi Literatur adalah sebuah metode pengambilan data dengan menggunakan beberapa buku, karya ilmiah dan e-book sebagai sumber referensi dalam membuat teori-teori yang sangat menunjang materi dalam penyusunan tugas akhir sehingga dapat membuat dokumentasi sesuai dengan yang diharapkan. 2. Observasi

Observasi adalah metode pengumpulan data dengan melakukan penelitian dan peninjauan langsung terhadap permasalahan yang diambil. Dalam hal ini, observasi dilakukan dengan meninjau langsung PT Bina San Prima Bogor sebagai objek penelitian.

1.5.2 Metode Pengembangan Perangkat Lunak

Metode pengembangan perangkat lunak pada penelitian ini menggunakan paradigma model air terjun (waterfall) seperti yang digambarkan pada gambar 1.1.

Terdapat beberapa tahapan dalam pembuatan perangkat lunak pada model


(17)

1. Requirements analysis and definition

Tahapan requirements analysis and definition merupakan tahap pengumpulan data mengenai layanan, batasan, serta tujuan sistem yang akan dibangun berdasarkan kebutuhan user. Kebutuhan didefinisikan secara detail dan disajikan sebagai spesifikasi sistem.

2. System and software design

Tahapan system and software design merupakan tahap untuk mengidentifikasi dan menggambarkan abstraksi sistem perangkat lunak beserta hubungannya.

3. Implementation and unit testing

Tahapan implementation and unit testing merupakan tahap untuk merealisasikan desain menjadi satu set atau unit program dilanjutkan dengan pengujian unit yakni dengan memverifikasi bahwa setiap unit memenuhi spesifikasinya.

4. Integration and system testing

Tahapan integration and system testing merupakan tahap penyatuan unit-unit program kemudian diuji secara keseluruhan untuk memastikan bahwa kebutuhan ataupun persayaratan perangkat lunak telah terpenuhi.

5. Operation and maintenance

Tahapan operation and maintenance merupakan tahap untuk mengoreksi kesalahan yang tidak ditemukan pada tahap awal siklus hidup, meningkatkan implementasi unit sistem, serta meningkatkan pelayanan sistem sebagai kebutuhan yang baru ditemukan.


(18)

Requirements Definitions

System and Software Design

Implementation and Unit Testing

Integration and System Testing

Operation and Maintenance

Gambar 1.1 Model Waterfall [10].

1.6 Sistematika Penulisan

Sistematika penulisan yang digunakan dalam penulisan laporan Tugas Akhir ini adalah sebagai berikut:

BAB 1 PENDAHULUAN

Bab ini menjelaskan tentang Latar Belakang, Rumusan Masalah, Maksud dan Tujuan, Batasan Masalah, Metodologi Penelitian dan Sistematika Penulisan. Dimaksudkan agar dapat memberi gambaran tentang urutan pemahaman dalam menyajikan laporan Tugas Akhir ini.

BAB 2 TINJAUAN PUSTAKA

Bab ini terbagi menjadi dua bagian. Bagian pertama yaitu Profil Perusahaan yang berisi penjelasan tentang sejarah perusahaan, visi dan misi, stuktur organisasi dan logo. Bagian kedua berupa landasan teori, berisi teori-teori pendukung yang digunakan untuk membangun sistem aplikasi penarikan

multithread.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi analisis dan masalah kebutuhan untuk sistem yang akan dibangun sesuai dengan model penelitian yang digunakan. Bab ini akan memperlihatkan perancangan sistem mencangkup pemodelan sistem yang dibuat, seperti, usecase diagram, skenario use case, activity diagram, class diagram, dan


(19)

sequence diagram. Tahap perancangan berisi tahapan-tahapan dalam perancangan antar muka, perancangan input dan perancangan output, jaringan semantik, perancangan method, disertai keterangan komponen yang mendukung terciptanya suatu aplikasi yang dinamis.

BAB 4 IMPLEMENTASI DAN PENGUJIAN

Bab ini berisi hasil implementasi berdasarkan hasil analisis dan perancangan sistem seperti kebutuhan perangkat keras, kebutuhan perangkat lunak, implementasi basis data dan implementasi antarmuka.Termasuk menentukan metode pengujian yang akan dipergunakan dalam aplikasi multithreading dan pengujiannya.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dan saran yang sudah diperoleh dari hasil penelitian tugas akhir.


(20)

7 2.1 Profil Perusahaan

PT Bina San Prima Bogor sebagai salah satu anak cabang dari PT Bina San Prima yang bergerak dalam bidang distributor. Berikut sejarah singkat mengenai perusahaan.

2.1.1 Sejarah Perusahaan

PT Bina San Prima didirikan pada tahun 1994, tujuan awal pendirian adalah untuk mengatasi kendala modal keuangan distributor lokal dan kesetaraan distribusi,yang menghambat pertumbuhan bisnis PT Sanbe Farma Pada tahun 2000 (pasca krisis moneter tahun 1998), PT Bina SanPrima membuka 10 cabang sekaligus dalam 1 (satu) tahun.

Sejak tahun 2003, PT Bina San Prima telah menjadi perusahaan Penanaman Modal Asing.Legenda Capital Pte.Ltd, yang berkantor pusat di Singapura, merupakan pemegang saham utama dan pemegang saham sekunder adalah Mr Jahja Santoso.

PT. Sanbe Farma didirikan pada tahun 1975 di Bandunzg oleh Jahja Santoso bersaudara.Nama Sanbe merupakan singkatan dari Santoso bersaudara (Jahja Santoso adalah seorang apoteker lulusan ITB). Kegiatan utama yaitu memproduksi dan juga menjual obat-obatan.

PT. Sanbe pada mulanya memproduksi obat-obat etikal, tahun 1985 Sanbe memproduksi juga obat-obatan untuk hewan.Tahun 1992, Sanbe mulai memasuki pasar obat bebas (OTC) dengan salah satu merek andalannya yaitu Sanaflu.PT. Sanbe Farma menduduki peringkat tertinggi diantara perusahaan farmasi di Indonesia berdasarkan laporan IMS dengan jumlah karyawan lebih dari 1500 orang.


(21)

2.1.2 Visi dan Misi

Adapun Visi dan Misi perusahaan adalah sebagai berikut: a. Visi

Visi adalah suatu pandangan jauh tentang perusahaan, tujuan - tujuan perusahaan dan apa yang harus dilakukan untuk mencapai tujuan tersebut pada masa yang akan datang. Berikut visi pada perusahaan yaitu:

Memimpin dalam pelayanan yang sangat baik melalui Manajemen Solid dan Profesional untuk memberikan nilai signifikan untuk kepentingan nasabah dan kepala.

b. Misi

Misi adalah pernyataan tentang apa yang harus dikerjakan oleh lembaga dalam usahanya mewujudkan Visi. Berikut misi pada perusahaan yaitu:

1. Untuk melaksanakan dan untuk mencapai standar distribusi praktek yang baik.

2. Untuk melanjutkan perbaikan pada jaringan luas dan daerah.

3. Untuk mencapai ketersediaan produk yang luas kepala sekolah kami dan pertumbuhan faktur untuk memperkuat daya saing dan

kepemimpinan pasar.

2.1.3 Stuktur Organisasi

Organisasi adalah suatu kesatuan yang teratur beberapa kelompok orang yang saling bekerjasama untuk mencapai tujuan bersama. Dalam organisasi diperlukan adanya bentuk dan susunan struktur organisasi untuk menunjukkan kerangka dan susunan perwujudan pola tetap hubungan–hubungan diantara fungsi–fungsi, bagian–bagian atau posisi–posisi, maupun orang–orang yang menunjukkan kedudukan, tugas dan wewenang serta tanggung jawab yang berbeda dalam organisasi. Adapun unsur–unsur organisasi diantaranya kelompok orang dan tujuan bersama. Stuktur organisasi yang ada dapat dilihat pada gambar 2.1.


(22)

Gambar 2.1 Stuktur Organisasi

2.1.4 Logo

Logo merupakan suatu bentuk gambar atau sekedar sketsa dengan arti tertentu, dan mewakili suatu arti dari perusahaan, daerah, perkumpulan, produk, negara, dan hal-hal lainnya yang dianggap membutuhkan hal yang singkat dan mudah diingat sebagai pengganti dari nama sebenarnya. Berikut logo pada perusahaan seperti yang tercantum pada gambar 2.2.

Gambar 2.2 Logo Perusahaan Gambar 2.2 Logo Perusahaan


(23)

Arti dari gambar 2.2 logo perusahaan adalah sebagai berikut :

Warna biru : Antusiasme, Spiritualitas, Percaya Diri, Stabilitas Gradasi : Cepat (FAST)

Elips : Continuous Improvement

Anak Panah : Koordinasi dan sinergi antara BSP dengan Prinsipal

BSP di dalam elips : Kebersamaan dan kerjasaman Tulisan BSP : Kokoh, menjadi the best distributor

2.2Landasan Teori

Landasan teori berisi teori-teori pendukung yang digunakan untuk membangun sistem aplikasi penarikan multithread. Landasan teori yang akan digunakan yaitu Thread, Multithread, algoritma penjadwalan, jaringan, client-server, konsep perancangan berorientasi objek, jaringan semantik, MySQL, Borland Delphi & Microsoft Excel.

2.2.1Thread

Suatu proses didefinisikan oleh resource yang digunakan dan lokasi yang akan dieksekusi. Namun ada kalanya proses-proses akan menggunakan resource

secara bersama-sama. Suatu unit dasar dari CPU utilization yang berisi program counter, kumpulan register, dan ruang stack disebut dengan thread atau lighweigt process (LWP). Thread akan bekerja sama dengan thread yang lainnya dalam hal penggunaan bagian kode,bagian data, dan resource system operasi, seperti open file dan sinyal secara kolektif yang sering disebut dengan task [9].

Thread terdiri atas dua bentuk yaitu: a. UserThread

Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.


(24)

b. KernelThread

Thread yang didukung langsung oleh kernel. Pembuatan penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan threaduser [9].

2.2.1.1Multithreading

Sebuah processor, multithreading secara umum berlangsung dengan cara

time-division multiplexing (multitask ing) : sebuah processor berpindah dari satu

thread ke thread yang lain. Hal tersebut terjadi secara cepat sehingga user akan beranggapan bahwa suatu thread atau task berjalan secara bersamaan. Pada suatu

multiprocessor atau multi-core sistem, suatu thread akan dijalankan bersamaan, dengan setiap processor atau core menjalankan sebuah thread atau task . Dukungan thread dalam bahasa pemrograman bervariasi : tidak semua memiliki bahasa pemrograman mendukung lebih dari satu eksekusi dalam sebuah program untuk dijalankan secara bersamaan [9].

Perbedaan dasar dari thread dan processes adalah :

1. Processes pada umumnya independen, sementara thread merupakan subset dari sebuah process

2. Processes memiliki alamat berbeda, sedangkan thread saling membagi alamat memori.

3. Contextswitching antara thread pada process yang sama cenderung lebih cepat dibandingkan contextswitching antara berbeapa process.

Suatu aplikasi dapat melakukan pekerjaan yang hampir sama oleh banyak

client. Akan dapat terjadi suatu situasi seperti berikut :

1. Sebuah web server menerima banyak request dari client untuk menampilkan suatu web page.

2. Jika suatu server menggunakan teknologi tradisional (single – thread) maka web server hanya akan dapat melakukan satu pelayanan request


(25)

Ada beberapa pendekatan yang dapat diambil untuk mengatasi masalah tersebut. Dengan pendekatan multi – threading kita dapat melakukan hal – hal sebagai berikut :

Solusi pertama :

1. Jika suatu server menerima sebuah request, server tersebut akan membuat suatu proses yang terpisah yang nantinya akan melakukan request tersebut. 2. Proses ini sangat memakan waktu dan menggunakan resource yang cukup

besar.

Solusi kedua :

Jika suatu request dibuat, suatu server akan menciptakan suatu thread lain untuk melayani request tersebut [9].

2.2.1.2Keuntungan Multithreading

Multithreading merupakan model programming dan pengeksekusian yang populer yang memungkinkan untuk banyak thread pada suatu process. Thread

tersebut merupakan bagian dari process yang sama tapi dapat dieksekusikan secara terpisah. Penggunaan teknologi ini dapat digunakan untuk membuat sebuah process dieksekusikan pada banyak processor.

Keuntungan tersebut menjadikan pengeksekusian suatu operasi berjalan lebih cepat pada komputer yang memiliki banyak CPU, CPU yang memiliki banyak inti (core), atau operasi antar banyak mesin (cluster of machines). Hal ini dikarenakan thread dalam program dijalankan secara paralel.

Keuntungan lain yang diperoleh dengan teknologi multithreading, walaupun hanya dengan suatu komputer yang memiliki sebuah CPU, yaitu kemampuan untuk sebuah aplikasi untuk tetap responsive terhadap input. Pada sebuah program yang memiliki sebuah thread, jika sedang mengeksekusikan sebuah task yang lama, seluruh aplikasi tersebut akan tampak berhenti (freeze). Dengan memindahkan task tersebut ke workerthread yang berjalan secara paralel dengan eksekusi thread utamanya, sangat memungkinkan untuk aplikasi tersebut untuk tetap responsive terhadap input dari user selama mengerjakan task tersebut di latar (background).


(26)

Sebuah sistem operasi penjadwalan thread ada dua cara:

1. Preemptivemultithreading dianggap pendekatan yang lebih unggul, hal ini dikarenakan sistem operasi dapat menentukan kapan contextswitch harus dilakukan.

2. Cooperativemultithreading, merupakan suatu pendekatan dimana thread

tersebut yang menentukan kapan thread tersebut akan diberhentikan.

Perangkat keras komputer tradisional tidak memiliki banyak dukungan untuk fasilitas multithreading hal ini dikarenakan perpindahan antar satu thread

dengan thread yang lain dianggap lebih cepat dibandingkan keseluruhan proses

contextswitch. Pada akhir 1990, suatu ide untuk menjalankan instruksi menggunakan banyak thread secara bersamaan dikenal dengan nama

simultaneousmultithreading. Fitur ini diperkenalkan oleh perusahaan Intel dengan nama teknologi hyperthreading.

2.2.1.3Model Multithreading

Multithreading secara umum terbagi menjadi tiga model yaitu: 1. Many to One

Berikut gambar model multithreading many to one seperti yang tercantum pada gambar 2.3.

Gambar 2.3 Many to One [9]

1) Model ini memetakan beberapa thread tingkatan pengguna ke sebuah


(27)

2) Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. 3) Hanya satu thread pengguna yang dapat mengakses threadkernel pada

satu saat. Jadi multiple thread tidak dapat berjalan secara pararel pada multiprrosesor.

4) Contoh : Solaris Green Threads dan GNU PortabelThreads. 2. One by one

Berikut model multithreading one by one seperti yang tercantum pada gambar 2.4.

Gambar 2.4 One by one [9]

1) Model ini memetakan setiap thread tingkatan pengguna kesetiap thread. 2) Menyediakan lebih banyak concurrency dibanding model many to one.

Keuntungannya sama dengan threadkernel.

3) Kelemahan model ini adalah setiap pembuatan thread pengguna memerlukan tambahan threadkernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. 4) Contoh: windows NT/XP/2000, Linux, Solaris 9.

3. Many to Many

Berikut model multithreading many to many seperti yang tercantum pada gambar 2.5.


(28)

Gambar 2.5 Many to Many [9]

1) Model ini memultipleks banyak thread tingkatan pengguna ke threadkernel

yang jumlahnya sedikit atau sama dengan tingkatan pengguna.

2) Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadualkan oleh kernel pada satu waktu.

3) Keuntungan dari sistem ini ialah kernelthread yang bersangkutan dapat berjalan secara pararel pada multiprosesor.

2.2.2Algoritma Penjadwalan

Penjadwalan CPU menyangkut penentuan proses – proses yang ada dalam

ready queue yang akan dialokasikan pada CPU. Terdapat bebreapa algoritma penjadwalan yaitu:

2.2.2.1First-Come First-Served (FCFS)

Algoritma ini merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan algoritma ini setiap proses yang berada pada status ready dimasukkan ke dalam FIFO queue sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi.

Algoritma ini juga menerapkan konsep non-preemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU tidak dapat di interrupt oleh proses yang lain [9].


(29)

2.2.2.2Shortest Job-First (SJF)

Algoritma ini mempunyai cara penjadwalanyang berbeda dengan FCFS.Dengan algoritma ini maka setiap proses yang ada di readyqueue akan dieksekusi berdasarkan burst time terkecil. Hal ini mengakibatkan waiting time

yang pendek untuk setiap proses dan karena hal tersebut maka waiting time rata-ratanya juga menjadi pendek, sehingga dapat dikatakan bahwa algoritma ini adalah algoritma yang optimal.

Ada beberapa kekurangan dari algoritma ini yaitu:

1. Susahnya untuk memprediksi burst time proses yang akan dieksekusi selanjutnya.

2. Proses yang mempunyai burst time yang besar akan memiliki waiting time

yang besar pula karena yang dieksekusi terlebih dahulu adalah proses dengan

burst time yang lebih kecil.

Algoritma ini dapat dibagi menjadi 2 bagian yaitu: a) Preemptive

Jika ada proses yang sedang dieksekusi oleh CPU dan terdapat proses di

readyqueue dengan burst time yang lebih kecil daripada proses yang sedang dieksekusi tersebut, maka proses yang sedang dieksekusi oleh CPU akan digantikan oleh proses yang berada di readyqueue tersebut. Preemptive SJF sering disebut juga Shortest-Remaining-Time-First Scheduling.

b) Non-preemptive

CPU tidak memperbolehkan proses yang ada di ready queue untuk menggeser proses yang sedang dieksekusi oleh CPU meskipun proses yang baru tersebut mempunyai burst time yang lebih kecil [9].

2.2.2.3Priority Scheduling

PriorityScheduling merupakan algoritma penjadwalan yang mendahulukan proses yang memiliki prioritas tertinggi. Setiap proses memiliki prioritasnya masing-masing. Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:


(30)

1. Time limit

2. Memory requirement

3. Akses file

4. Perbandingan antara I/O Burst dengan CPU Burst 5. Tingkat kepentingan proses

PriorityScheduling merupakan algoritma penjadwalan yang mendahulukan proses yang memiliki prioritas tertinggi. Setiap proses memiliki prioritasnya masing-masing.Prioritas suatu proses dapat ditentukan melalui beberapa karakteristik antara lain:

PriorityScheduling juga dapat dijalankan secara maupun non preemptive. Pada preemptive, jika ada suatu proses yang baru datang memiliki prioritas yang lebih tinggi daripada proses yang sedang dijalankan, maka proses yang sedang berjalan tersebut dihentikan, lalu CPU dialihkan untuk proses yang baru datang tersebut.Sementara itu, pada non-preemptive, proses yang baru datang tidak dapat mengganggu proses yang sedang berjalan, tetapi hanya diletakkan di depan queue. Kelemahan pada PriorityScheduling adalah dapat terjadinya indefinite blocking

(starvation). Suatu proses dengan prioritas yang rendah memiliki kemungkinan untuk tidak dieksekusi jika terdapat proses lain yang memiliki prioritas lebih tinggi darinya.Solusi dari permasalahan ini adalah aging, yaitu meningkatkan prioritas dari setiap proses yang menunggu dalam queue secara bertahap [9].

2.2.2.4Round Robin

Algoritma penjadwalan ini mirip dengan algoritma First Come FirstServed, tetapi proses ini memberi suatu batasan waktu untuk setiap proses yang disebut dengan Timequantum. Timequantum adalah suatu satuan waktu yang kecil. Jika proses yang sedang dieksekusi selesai dalam waktu kurang dari 1

Timequantum, tidak ada masalah. Tetapi jika proses berjalan melebihi 1

Timequantum, maka proses tersebut akan dihentikan,lalu digantikan oleh proses yang berikutnya. Proses yang dihentikan tersebut akan diletakkan di queue di urutan paling belakang.Permasalahan utama pada Round Robin adalah menentukan besarnya Timequantum. Jika Timequantum yang ditentukan terlalu


(31)

kecil, maka sebagian besar proses tidak akan selesai dalam 1 Timequantum.Hal ini tidak baik karena akan terjadi banyak switch, padahal CPU memerlukan waktu untuk beralih dari suatu proses ke proses lain (disebut dengan contextswitches

time). Sebaliknya, jika Timequantum terlalu besar, algoritma Round Robin akan berjalan seperti algoritma First Come First Served. Timequantum yang ideal adalah jika 80% dari total proses memiliki CPU burst time yang lebih kecil dari 1

Timequantum [9].

2.2.3 Jaringan

Jaringan komputer adalah sekelompok komputer otonom yang dihubungkan satu dengan yang lainnya dengan menggunakan protokol komunikasi melalui media transmisi atau media komunikasi sehingga dapat saling berbagi data informasi, program–program, share perangkat keras seperti printer

atau harddisk.Tujuan dibangunnya suatu jaringan komputer adalah untuk membawa data informasi dari sisi pengirim menuju penerima secara cepat dan tepat tanpa adanya kesalahan melalui media transmisi atau media komunikasi tertentu [6].

2.2.3.1Sejarah Jaringan

Konsep jaringan komputer lahir pada tahun 1940-an di Amerika dari sebuah proyek pengembangan komputer MODEL I di laboratorium Bell dan

group riset Harvard University yang dipimpin profesor H. Aiken. Pada mulanya proyek tersebut ingin memanfaatkan sebuah perangkat komputer yang harus dipakai bersama. Untuk mengerjakan beberapa proses tanpa banyak membuang waktu kosong, maka dibuatlah proses beruntun (Batch Processing), sehingga beberapa program bisa dijalankan dalam sebuah komputer dengan dengan kaidah antrian.

Ditahun1950-an ketika jenis komputer mulai membesar sampai terciptanya super komputer, maka sebuah komputer harus melayani beberapa terminal(Lihat Gambar 2.6). Untuk itu ditemukan konsep distribusi proses berdasarkan waktu yang dikenal dengan nama TSS (Time Sharing System), maka


(32)

untuk pertama kali bentuk jaringan (network) komputer diaplikasikan. Pada sistem TSS beberapa terminal terhubung secara seri ke sebuah host komputer. Dalam proses TSS mulai nampak perpaduan teknologi komputer dan teknologitelekomunikasi yang pada awalnya berkembang sendiri-sendiri [6].

Gambar 2.6 Jaringan Komputer Model TSS

Memasuki tahun 1970-an, setelah beban pekerjaan bertambah banyak dan harga perangkat komputer besar mulai terasa mahal, maka mulailah digunakan konsep proses distribusi (distributed processing). Seperti pada Gambar 2.6 dalam proses ini beberapa host komputer mengerjakan sebuah pekerjaan besar secara paralel untuk melayani beberapa terminal yang tersambung secara seri disetiap

host komputer. Dalam proses distribusi sudah mutlak diperlukan perpaduan yang mendalam antara teknologi komputer dan telekomunikasi, karena selain proses yang harus didistribusikan, semua host komputer wajib melayani terminal-terminalnya dalam satu perintah dari komputer pusat.


(33)

Ketika harga-harga komputer kecil sudah mulai menurun dan konsep proses distribusi sudah matang, maka penggunaan komputer dan jaringannya sudah mulai beragam dari mulai menangani proses bersama maupun komunikasi antar komputer (peer to peer system) saja tanpa melalui komputer pusat. Untuk itu mulailah berkembang teknologi jaringan lokal yang dikenal dengan sebutan LAN (Local Area Network). Demikian pula ketika Internet mulai diperkenalkan, maka sebagian besar LAN yang berdiri sendiri mulai berhubungan dan terbentuklah jaringan raksasa WAN (Wide Area Network) [6].

2.2.3.2Jenis – Jenis Jaringan Komputer

Jaringan komputer yang digunakan dewasa ini dapat dikelompokkan berdasarkan luasnya area yang dapat dijangkau. Luasnya area ini pada mulanya ditentukan berdasarkan jarak jangkau dalam satuan meter.Namun dalam perkembangan selanjutnya berdasarkan peralatan dan fasilitas. Penggunaan peralatan–peralatan yang dimaksud adalah peralatan–peralatan inter jaringan seperti Repeater, Router atau Gateway dari peralatan tersebut dapat dilihat jangkauan area jaringan dan luasan segmen jaringan yang dibangun. Berdasarkan kriteria–kriteria tersebut secara umum jaringan komputer dapat digolongkan sebagai berikut [6]:

a. Local Area Network ( LAN )

Sebuah LAN adalah jaringan yang dibatasi oleh area yang relatif kecil, umumnya dibatasi oleh area lingkungan seperti sebuah perkantoran di sebuah gedung, atau sebuah sekolah, dan biasanya sekitar 1 km persegi. Komputer- komputer yang terhubung ke dalam jaringan itu biasanya disebut dengan

workstation. Kebanyakan LAN menggunakan media kabel untuk menghubungkan antara satu komputer dengan komputer lainnya.

b. Metropolitan Area Network ( MAN )

Sebuah MAN, biasanya meliputi area yang lebih besar dari LAN, misalnya antar wilayah dalam satu provinsi. Dalam hal ini jaringan menghubungkan beberapa buah jaringan-jaringan kecil ke dalam lingkungan area yang lebih besar, sebagai contoh yaitu : jaringan Bank dimana beberapa kantor cabang


(34)

sebuah Bank di dalam sebuah kota besar dihubungkan antara satu dengan lainnya.

c. Wide Area Network ( WAN )

Wide Area Networks( WAN ) adalah jaringan yang lingkupnya biasanya sudah menggunakan sarana satelit ataupun kabel bawah laut sebagai contoh keseluruhan jaringan suatu Bank yang ada di Indonesia ataupun yang ada di negara - negara lain. menggunakan sarana WAN, Sebuah Bank yang ada di Bandung bisa menghubungi kantor cabangnya yang ada di Jepang, hanya dalam beberapa menit. Biasanya WAN agak rumit dan sangat kompleks, menggunakan banyak sarana untuk menghubungkan antara LAN dan WAN ke dalam komunikasi global seperti Internet. Tapi bagaimanapun juga antara LAN, MAN dan WAN tidak banyak berbeda dalam beberapa hal, hanya lingkup areanya saja yang berbeda satu diantara yang lainnya.

d. Internet

Internet merupakan jaringan Global Internasional di seluruh dunia. Biasanya teknologi ini menggunakan suatu fasilitas layanan yang biasa kita sebut World Wide Web (WWW).

2.2.3.3Tipe – Tipe Jaringan Komputer

Terdapat dua macam model jaringan komputer, yaitu : a. Model Peer to Peer

Pada model jaringan terdapat hanya dua komputer yang saling terhubung. Masing-masing komputer mempunyai kedudukan yang setara atau setingkat sehingga komputer manapun dapat memulai (initiate) dan mengendalikan hubungan dalam jaringan. Model Jaringan ini merupakan jenis yang paling sederhana. Model jaringan peer to peer dapat terlihat pada gambar 2.8 [6].

Komputer 1 Komputer 2


(35)

b. Model ClientServer

Konsep Jaringan client-server ini membedakan dengan jelas kedudukan suatu komputer, mana yang dapat memberikan layanan jaringan (server) dan mana yang hanya meminta layanan (client). Jika suatu komputer diinstall

sebagai server yang memberikan segala sumber daya (resource), contohnya :

printer, modem kepada komputer lain (client) yang terhubung ke jaringan. Untuk dapat saling berkomunikasi antara server dan client, maka digunakan suatu aplikasi jaringan yang dinamakan client-server program, dimana server

menggunakan aplikasi jaringan yang disebut server program, sementara client

menggunakan client program untuk dapat berkomunikasi dengan server program pada server. Model jaringan client-server dapat terlihat pada gambar 2.9 [6].

Client

Server Client

Client Hub/switch

Gambar 2.9 Model Jaringan Client-Server

Beberapa sifat dari client-server diantaranya sebagai berikut : 1. Server dan Client berada pada posisi serta proses yang berbeda. 2. Server dan Client dapat dijalankan pada mesin yang sama atau berbeda. 3. Setiap proses dapat menyembunyikan informasi tersendiri

4. Komunikasi yang dilakukan bisa bersifat protokol peer to peer. Koneksitas client ke Server :

1. Server harus terlebih dahulu dijalankan (running).


(36)

3. Client harus mengetahui nama host dari server beserta port yang digunakan untuk koneksi.

4. Client mengirim pesan ke server untuk melakukan suatu pekerjaan (task ).

Server dan Client bersifat Asimetrik.

2.2.3.4Topologi Jaringan

Topologi jaringan merupakan suatu struktur atau bagaimana menghubungkan antara simpul dan pusat dalam suatu jaringan. Tiap struktur mempunyai keuntungan dan kerugiannya masing-masing. Topologi yang umumnya sebagai berikut :

a. Topologi Linear BUS - Garis Lurus

Topologi sebuah LinearBUS / garis lurus terdiri dari satu jalur kabel utama (backbone) dimana pada masing-masing ujungnya diberikan sebuah

terminator. Semua nodes pada jaringan (file server, workstation, dan perangkat lainnya) terkoneksi ke sebuah kabel utama. Jaringan-jaringan

Ethernet dan Localtalk menggunakan topologi linear ini. Topologi Linear BUS / garis lurus dapat dilihat pada Gambar 2.10.

Gambar 2.10 Topologi Linear BUS / Garis Lurus b. Topologi Star – Bintang

Topologi model ini didesain dimana setap node(file server, workstation, dan perangkat lainnya) terkoneksi ke jaringan melewati sebuah concentrator baik berupa HUB ataupun SWITCH. Data yang terkirim ke jaringan akan melewati

concentrator sebelum melanjutkan ke tempat tujuannya. Concentrator akan mengatur dan mengontrol keseluruhan fungsi jaringan.


(37)

Dia juga bertindak sebagai repeater dalam skala kecil dari aliran data.Konfigurasi pada jaringan model ini menggunakan kabel TwistedPair. Topologi jaringan Bintang / Star dapat dilihat pada Gambar 2.11.

Gambar 2.11 Topologi Jaringan Bintang/Star c. Topologi Tree – Pohon

Topologi model ini merupakan perpaduan antara topologi LinearBUS / Garis Lurus dan Bintang, yang terdiri dari kelompok-kelompok dari workstation

konfigurasi Bintang yang terkoneksi kekabel utama yang menggunakan topologi LinearBUS / Garis Lurus.Topologi ini memungkinkan untuk pengembangan jaringan yang telah ada, dan memungkinkan sebuah perusahaan mengkonfigurasi jaringan sesuai dengan kebutuhannya. Topologi jaringan pohon dapat dilihat pada Gambar 2.12.

Gambar 2.12 Topologi Jaringan Pohon d. Topologi Ring – Cincin

Topologi Ring semua workstation dan server dihubungkan sehingga terbentuk suatu pola lingkaran atau cincin. Tiap workstation ataupun serverakan


(38)

menerima dan melewatkan informasi dari satu komputer ke komputer lain, bila alamat- alamat yang dimaksud sesuai maka informasi diterima dan bila tidak informasi akan dilewatkan. Topologi jaringan ring dapat dilihat pada Gambar 2.13.

Gambar 2.13 Topologi Jaringan Ring 2.2.4 Client-Server

Model clientserver sudah mendominasi untuk penggunaan sistem terdistribusi sejak tahun 1980.Perkembangan model ini pada akhirnya memungkinkan untuk user bekerja pada computer masing – masing yang terhubung dengan jaringan lokal (LAN). Inti dari model ini adalah bagaimana cara mengakses, menggunakan dan membagi (share) suatu sumber daya (resource) yang terdapat pada komputer lain. Pada tahun 1980, komputer dikendalikan oleh sebuah sistem operasi yang memiliki kernelmonolithic , dimana semua servis

merupakan bagian dari keseluruhan perangkat lunak. Pada tahun 1990 model

clientserver sudah dapat digunakan untuk mengembangkan banyak aplikasi. Hal ini dikarenakan model tersebut akan mengurangi biaya baik dalam pengimplementasian dan biaya perawatan [6].

2.2.4.1Konsep Dasar Clientserver

Pada konsep ini terdapat dua buah proses, client yang meminta (request) sebuah servis dari proses yang lain, dan server yang merupakan penyedia servis.


(39)

respons. Respons ini dapat berupa hasil, konfirmasi, maupun peringatan tentang kegagalan dari suatu operasi.

Sebuah model client server yang lebih terperinci memiliki 3 komponen : 1. Service : merupakan sebuah entitas perangkat lunak yang berjalan pada satu

atau lebih mesin. Service menyediakan suatu abstraksi dari rentetan operasi yang diminta oleh perangkat lunak.

2. Server : sekumpulan Service yang berjalan pada sebuah mesin.

3. Client : sebuah entitas perangkat lunak yang mengeksploitasi Service yang disediakan oleh server. Sebuah client dapat berinteraksi dengan user secara langsung, tetapi tidak harus.

Ada 3 masalah utama yang terdapat pada model clientserver :

1. Jika komputer yang menjadi server mengalami gangguan sehingga tidak dapat beroperasi sebagaimana mestinya, maka servis yang diberikan oleh komputer tersebut pun tidak dapat dijalankan. Oleh karena itu, reliability dan

availability dari suatu operasi yang bergantung pada banyak server merupakan suatu produk yang bergantung pada perangkat keras dan jaringan komunikasi. 2. Permasalahan kedua yaitu adanya kemungkinan timbul potensi bottleneck. Hal

ini terjadi karena penambahan client pada sistem.

3. Permasalahan terakhir timbul pada saat mengimplementasikan banyak fungsi yang serupa pada suatu sistem untuk menjaga performansi dan konsistensi. Hal ini meningkatkan biaya keseluruhan dari sistem distribusi tersebut.

2.2.5 Konsep Perancangan Berorientasi Objek

Teknologi objek menganalogikan sistem aplikasi seperti kehidupan nyata yang didominasi oleh objek. Didalam membangun sistem berorientasi objek akan menjadi lebih baik apabila langkah awalnya didahului dengan proses analisis dan perancangan yang berorientasi objek. Tujuannya adalah mempermudah

programmer didalam mendesain program dalam bentuk objek-objek dan hubungan antar objek tersebut untuk kemudian dimodelkan dalam sistem nyata.

Suatu perusahaan software yaitu Rational Software, telah membentuk


(40)

Modelling Language (UML) sebagai bahasa standar dalam Object Oriented Analysist Design (OOAD) [7].

2.2.5.1Konsep UML (Unified Modeling Language)

UML (Unified Modeling Language) merupakan pengganti dari metode analisis berorientasi objek dan desain berorientasi objek (OOA&D) yang dimunculkan sekitar akhir tahun 80-an dan awal tahun 90-an. UML merupakan gabungan dari metode Booch, Rumbaugh (OMT) dan Jacobson. Tetapi UML ini akan mencakup lebih luas daripada OOA&D. Pada pertengahan pengembangan UML dilakukan standarisasi proses dengan OMG (Object Management Group) dengan harapan UML akan menjadi bahasa standar pemodelan pada masa yang akan datang.

UML disebut sebagai bahasa pemodelan bukan metode. Kebanyakan metode terdiri paling sedikit prinsip, bahasa pemodelan dan proses. Bahasa pemodelan (sebagian besar grafik) merupakan notasi dari metode yang digunakan untuk mendesain secara cepat.

Bahasa pemodelan merupakan bagian terpenting dari metode. Ini merupakan bagian kunci tertentu untuk komunikasi. Jika anda ingin berdiskusi tentang desain dengan seseorang, maka Anda hanya membutuhkan bahasa pemodelan bukan proses yang digunakan untuk mendapatkan desain. UML merupakan bahasa standar untuk penulisan blueprint software yang digunakan untuk visualisasi, spesifikasi, pembentukan dan pendokumentasian alat-alat dari sistem perangkat lunak [7].

2.2.5.2Sejarah UML

UML dimulai secara resmi pada oktober 1994, ketika Rumbaugh bergabung dengan Booch pada Relational Software Corporation. Proyek ini memfokuskan pada penyatuan metode Booch dan OMT. UML versi 0.8 merupakan metode penyatuan yang dirilis pada bulan Oktober 1995. Dalam waktu yang sama, Jacobson bergabung dengan Relational dan cakupan dari UML semakin luas sampai diluar perusahaan OOSE. Dokumentasi UML versi 0.9


(41)

akhirnya dirilis pada bulan Juni 1996. Meskipun pada tahun 1996 ini melihat dan menerima feedback dari komunitas Software Engineering.

Dalam waktu tersebut, menjadi lebih jelas bahwa beberapa organisasi perangkat lunak melihat UML sebagai strategi dari bisnisnya, kemudian dibangunlah UML Consortium dengan beberapa organisasi yang akan menyumbangkan sumber dayanya untuk bekerja, mengembangkan, dan melengkapi UML. Di sini beberapa partner yang berkontribusi pada UML 1.0, diantaranya Digital Equipment Corporation, Hewlett-Packard, I-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Relational, Texas Instruments dan Unisys. Dari kolaborasi ini dihasilkan UML 1.0 yang merupakan bahasa pemodelan yang ditetapkan secara baik, expressive, kuat, dan cocok untuk lingkungan masalah yang luas. UML 1.0 ditawarkan menjadi standarisasi dari Object Management Group (OMG) dan pada Januari 1997 dijadikan sebagai standar bahasa pemodelan.

Antara Januari–Juli 1997 gabungan group tersebut memperluas kontribusinya sebagai hasil respon dari OMG dengan memasukkan Adersen Consulting, Ericsson, Object Time Limeted, Platinum Technology, Ptech, Reich Technologies, Softeam, Sterling Software dan Taskon. Revisi dari versi UML (versi 1.1) ditawarkan kepada OMG sebagai standarisasi pada bulan Juli 1997. Dan pada bulan September 1997,versi ini dierima oleh OMG Analysis dan Design Task Force (ADTF) dan OMG Architecture Board dan Akhirnya pada Juli 1997 UML versi 1.1 menjadi standarisasi.

Pemeliharaan UML terus dipegang oleh OMG Revision Task Force (RTF) yang dipimpin oleh Cris Kobryn. RTP merilis editorial dari UML 1.2 pada Juni 1998 dan pada tahun 1998 RTF juga merilis UML 1.3 disertai dengan user guide

dan memberikan technical cleanup [7].

2.2.5.3Tipe-Tipe Diagram UML


(42)

a. Use Case Diagram

Use Case Diagram digunakan untuk menggambarkan konteks sistem yang akan dibangun dan fungsionalitas yang disediakan oleh sistem itu. Use Case Diagram juga menggambarkan siapa (atau apa) berinteraksi dengan sistem. Di dalam sistem hanya terdapat satu user.

b. Class Diagram

Class diagram digunakan untuk menunjukan hubungan dan eksistensi sebuah class dari sudut pandang logis dalam sistem. Sebuah Class Diagram merepresentasikan struktur class yang membentuk arsitektur dan perilaku sistem dalam proses desain dan analisis. Class diagram

memberikan gambaran secara menyeluruh tentang object dan class serta relasinya pada arsitektur sistem yang dibangun. Class diagram

menyediakan fasilitas berbagi model sehingga model yang telah dibangun bisa digunakan kembali (reusable) untuk pemodelan yang lebih rinci pada perilaku dinamis. Notasi pada class diagram bisa digunakan untuk menjelaskan Object Oriented Programming, sehingga semua konsep

Object Oriented Programming bisa di jelaskan menggunakan notasi Class diagram.

c. Statechart Diagram

Statechart Diagram menggambarkan semua state yang dimiliki oleh suatu objek dari suatu class dan keadaan yang menyebabkan state berubah. d. Sequence Diagram

Sequence diagram merupakan suatu diagram yang menggambarkan interaksi antar objek dan mengindikasikan komunikasi diantara objek-objek tersebut. Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh objek-objek yang melakukan suatu tugas atau aksi tertentu. Objek-objek tersebut kemudian diurutkan dari kiri ke kanan, aktor yang menginisialisasi interaksi biasanya disimpan di paling kiri dari diagram.


(43)

e. Collaboration Diagram

Collaboration Diagram menggambarkan kolaborasi dinamis seperti

sequence diagram. Dalam menunjukan pertukaran pesan, collaboration diagram menggambarkan objek dan hubungannya.

f. Activity Diagram

Activity diagram merupakan cara menggambarkan proses bisnis dan urutan aktivitas dalam sebuah proses yang dipakai pada business modeling

untuk memperlihatkan urutan aktifitas proses bisnis. Struktur diagram ini mirip flowchart atau Data Flow Diagram (DFD) pada perancangan terstruktur. Activity diagram sangat bermanfaat apabila kita membuat diagram ini terlebih dahulu dalam memodelkan sebuah proses untuk membantu memahami proses secara keseluruhan.

g. Component Diagram

Menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan diantaranya. Komponen dapat juga berupa

interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lainnya.

h. Package Diagram

Package diagram digunakan untuk menjelaskan hubungan modularitas, enkapsulasi, dan abstraksi pada pengembangan sistem yang kompleks.

Package diagram juga digunakan untuk menjelaskan hubungan

dependency dan visibility antar class yang memiliki asosiai secara modular dengan class lain dalam sistem. Package diagram memungkinkan perancangan sistem bisa di mengerti dengan tingkat pemahaman yang lebih tinggi pada kolaborasi antar elemen model. Dengan menggunakan

package diagram perancangan class diagram bisa di modularisasi secara lebih terstruktur. Package diagram sangat dibutuhkan ketika class diagram yang dibangun sudah semakin kompleks, sehingga penggambaran

class diagram bisa dibangun secara terpisah dengan menggunakan

Package diagram untuk mewakili hubungan yang antar class pada


(44)

i. Deployment Diagram

Deployment diagram digunakan untuk menunjukan alokasi artefak pada node dalam desain fisik sebuah sistem. Sebuah deployment diagram

mewakili sebuah gambaran ke dalam struktur artefak suatu sistem.

Deployment diagram lebih berfokus pada aspek fisik dari object-oriented system. Dengan menggunakan deployment diagram, gambaran mengenai distribusi komponen dan relasinya dengan sistem maupun platform tempat sistem berjalan bisa digambarkan dengan lebih jelas, sehingga dengan menggunakan deployment diagram, gambaran akan interaksi antara

software dan hardware pada sistem akan terlihat lebih jelas [7].

2.2.6 Jaringan Semantik

Jaringan semantik adalah gambaran pengetahuan grafis yang menunjukkan hubungan antar berbagai objek, terdiri dari lingkaran-lingkaran yang dihubungkan dengan anak panah yang menunjukkan objek dan informasi tentang objek-objek tersebut. Gambar berikut menunjukkan representasi pengetahuan menggunakan jaringan semantik.

2.2.7 MySQL

MySQL adalah sebuah sistem manajemen database relasi (relational database management system) yang bersifat “terbuka” (open source).Terbuka maksudnya adalah MySQL boleh di-download oleh siapa saja, baik versi kode program aslinya maupun versi binernya dan dapat digunakan secara (relatif) gratis baik untuk dimodifikasi sesuai dengan kebutuhan seseorang maupun sebagai suatu program aplikasi komputer.

2.2.7.1Sejarah MySQL

Sejarah MySQL yang merupakan hasil buah pikiran dari Michael “Monty” Widenius, David Axmark, dan Alan Larson dimulai tahun 1995.Mereka bertiga kemudian mendirikan perusahaan bernama MySQL AB di Swedia. Tujuan awal


(45)

ditulisnya program MySQL adalah untuk mengembangkan aplikasi web yang digunakan salah satu klien MySQL AB.

2.2.8 Borland Delphi

Delphi adalah paket bahasa pemrograman yang bekerja dalam sistem operasi Windows.Delphi merupakan bahasa pemrograman yang mempunyai cakupan kemampuan yang luas dan sangat canggih.

Kelebihan-kelebihan yang dapat diambil ketika seorang pengembang perangkat lunak menggunakan Borland Delphi adalah :

1. Delphi mendukung Pemrograman Berorientasi Objek (Object Oriented Programming).

2. Hasil dari proses kompilasi berupa sebuah file yang dapat dieksekusi (executabel file) sehingga mempermudah dalam pendistribusian program dan mengurangi banyaknya file pendukung.

3. Delphi menyediakan banyak sekali komponen yang dapat digunakan. Selain itu banyak juga komponen yang bersumber dari pihak ketiga yang biasanya disertai dengan dokumentasi, source code dan lain-lain.Komponen dari pihak ketiga bisa yang komersil atau free.

4. Mendukung banyak database server (MySQL, SQL Server, Interbase, Oracle

dll) sehingga dapat mempermudah dalam membuat aplikasi database.

5. Borland Delphi menyediakan fasilitas yang luas mulai dari fungsi membuat form hingga untuk menggunakan format file berbasis data yang popular seperti

Dbase dan Paradoks.

2.2.8.1Keistimewaan MySQL

Sebagai database server yang memiliki konsep database modern, MySQL memiliki banyak keistimewaan. Berikut ini beberapa keistimewaan yang dimiliki oleh MySQL.

1. Portability

MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac OS X Server, dan lain-lain.


(46)

2. Open Source

MySQL didistribusikan secara Open Source, sehingga dapat digunakan secara bebas.

3. Multi-user

MySQL dapat digunakan oleh beberapa Userdalam waktu yang bersamaan tanpa mengalami masalah.Hal ini memungkinkan sebuah database server

MySQL dapat diakses client secara bersamaan.

4. Performance Tuning

MySQL memiliki kecepatan yang tinggi dalam menangani query, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.

5. Column Types

MySQL memiliki tipe kolom yang sangat kompleks, seperti signed/unsigned integer, float, double, char, varchar, text, blob, date, time, timestamp, year, set

dan enum.

6. Command dan Function

MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah SELECT dan WHERE dalam query.

7. Security

MySQL memiliki lapisan lapisan sekuritas seperti level subnetmask,namahost, dan izin akses Userdengan sistem perizinan yang mendetail serta password

terenkripsi.

8. Scalability dan Limits

MySQL mampu menangani database dengan skala besar, dengan jumlah records lebih dari 50 juta dan 60 juta tabel serta 5 miliar baris. Selain itu, batas indeks yang dapat ditampung mencapai 32 indeks pada setiap tabelnya.

9. Connectivity

MySQL dapat melakukan koneksi dengan client menggunakan protocol

TCP/IP, Unix Socet (UNIX), atau Named Pipes (NT).

10. Localisation

Deteksi pesan kesalahan pada client dengan menggunakan lebih dari 20 bahasa


(47)

11. Interface

Interface terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface)

12. Client dan Tools

Dilengkapi dengan berbagai Tool yang dapat digunakan untuk administrasi

database, dan pada setiap tool yang ada disertakan petunjuk online. 13. Struktur Tabel

Struktur tabel yang lebih fleksibel dalam menangani ALTER TABEL, dibanding database lainnya semacam PostgreSQL ataupun Oracle.


(48)

35 3.1 Analisis Sistem

Analisis sistem yang sedang berjalan merupakan kegiatan mempelajari interaksi sistem, prosedur dan data informasi yang terkait. Pada bagian analisis sistem ini akan dibahas mengenai analisis masalah, analisis penerapan teori antrian, analisis penggunaan multithreading, analisis kebutuhan fungsional dan analisis kebutuhan fungsional. Kegiatan ini memetakan suatu sistem pada model yang dapat menganalisis seluruh aspek yang terlibat dalam sistem tersebut.

3.1.1 Analisis Masalah

Proses pengiriman laporan data dengan menggunakan sistem single thread

belum tentu bisa mengoptimalkan sistem kerja prosesor dan proses pengiriman data laporan itu sendiri. Hal ini disebabkan belum adanya sistem yang bisa mengoptimalkan kinerja prosesor sehingga bisa mempercepat proses pengiriman data.

Berdasarkan hal tersebut penyusun mencoba untuk membuat suatu sistem yang lebih baik untuk proses pengiriman data. Dengan menggunakan sistem

multithreading yang mengizinkan beberapa thread terjadi dalam sebuah proses, tentu bisa mempercepat proses pengiriman laporan data serta mengoptimalkan proses kinerja prosesor. Untuk lebih mengenal sistem multithreading maka diambil sebuah contoh studi kasus pada perusahaan besar yang bergerak dalam bidang distributor yaitu PT Bina San Prima Bogor sebagai salah satu anak cabang dari PT Bina San Prima.

PT Bina San Primas sekarang memiliki lebih dari 200 macam produk yang terbagi dalam 35 divisi produk yang aktif dalam transaksi faktur. Apabila dalam satu proses penarikan data untuk membentuk laporan seluruh produk maka sistem yang sekarang berjalan adalah dengan menarik divisi produk secara one by one, dengan pemrosesan divisi produk pertama hingga selesai kemudian dilanjutkan


(49)

dengan divisi produk kedua hingga selesai dan seterusnya hingga divisi produk sejumlah ke-n.

3.1.2 Analisis Penerapan Teori Antrian

Analisis penerapan teori antrian ini menggunakan penjadwalan algoritma

First-Come First-Served Scheduling (FCFS) ini, merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan algoritma ini setiap proses yang berada pada status ready dimasukkan ke dalam queue sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi. Untuk mengenal lebih jelas tentang penerapan teori antrian FCFS didalam pengiriman laporan data maka diberikan contoh kasus.

PT Bina San Prima Bogor sebagai anak cabang perusahaan distributor yang memiliki 3 divisi produk yang berdeda yaitu produk makanan ringan, obat – obatan dan makanan hewan. PT Bina San Prima Bogor ini selalu melakukan proses penutupan buku pada tiap akhir bulan. Permasalahan yang sering dihadapi adalah ketika PT Bina san Prima bogor ini akan mengirimkan laporan data pada perusahaan pusat dimana divisi produk dari cabang perusahaan makanan ringan yang masih aktif mengirimkan laporan data maka divisi produkobat –obatan dan makanan hewan yang akan mengirimkan laporan data harus menunggu divisi makanan ringan selesai dikirim. Deskripsi contoh permasalahan dapat dilihat pada gambar 3.1.


(50)

Makanan ringan Obat -

obatan Makanan

hewan Server

Server Server

Input Output

Queue

Thread Obat -

obatan Makanan

hewan

Makanan hewan

Gambar 3.1 Penerapan teori antrian PT Bina San Prima Bogor

3.1.3 Analisis Penggunaan Multithreading

Analisis penggunaan multithreading merupakan suatu proses yang mengimplementasikan sistem yang akan digunakan kedalam suatu aplikasi. Untuk memperjelas penggunaan multithreading ini maka diberikan contoh kasus berdasarkan proses pengiriman data antara single thread dengan multithreading.

PT Bina San Prima Bogor akan melakukan proses evaluasi dimana proses evaluasi ini dilakukan rutin setiap bulannya. PT Bina San Prima Bogor ini memasarkan tiga jenis produk yang berbeda yaitu produk pertama adalah makanan ringan produk kedua adalah obat-obatan dan produk yang ketiga adalah makanan hewan.

Diberikan contoh perbedaan proses single thread dan multithread

berdasarkan dari waktu penarikan dan proses yang berjalan dapat dilihat seperti pada gambar 3.2 dan gambar 3.3.


(51)

Makanan ringan

Makanan hewan Obat - obatan

0 5 10 15 20 25 30 35 40

Gambar 3.2 Proses Penarikan Laporan Single Thread Pada gambar 3.2 proses penarikan laporan data menggunakan single thread hanya mengijinkan satu proses terjadi sehingga pada gambar 3.3 proses penarikan laporan data makanan dimulai dari 0 sampai waktu penarikan selesai yaitu 15 kemudian proses penarikan laporan data Obat – obatan dimulai dari 15 sampai 25 dan proses laporan penarikan laporan produk makanan hewan dimulai dari 25 sampai 40. Dengan single thread jika ada tiga produk yang mempunyai waktu yang berbeda dan akan dilakukan proses penarikan laporan data maka akan terjadi antrian penarikan laporan data.

Makanan ringan

Makanan hewan Obat - obatan


(52)

Pada gambar 3.3 proses penarikan laporan data dengan menggunakan

multithreading yang mengijinkan beberapa thread terjadi dalam sebuah proses penarikan maka laporan data penarikan dimulai secara bersamaan dengan jeda waktu tertentu dari proses pertama. Dari kedua proses diatas dapat ditarik kesimpulan seperti pada tabel 3.1.

Tabel 3.1 Kesimpulan Hasil Data Penarikan No

Proses penarikan Awal penarikan

1 single thread Harus menunggu proses selesai baru bisa melakukan proses penarikan kembali, waktu yang dibutuhkan untuk penarikan single thread

adalah 40 detik.

2 multithreading Penarikan data dimulai secara bersamaan dengan

menunggu jeda waktu proses pertama berjalan waktu yang dibutuhkan untuk melakukan proses multithread adalah 17 detik.

3.1.4 Analisis Kebutuhan non-Fungsional

Analisis kebutuhan non fungsional menggambarkan kebutuhan sistem yang menitik beratkan pada properti prilaku yang dimiliki oleh sistem, diantaranya kebutuhan perangkat keras, perangkat lunak, serta user sebagai bahan analisis kekurangan dan kebutuhan yang harus dipenuhi dalam perancangan sistem yang akan diterapkan.

3.1.4.1Analisis Kebutuhan Perangkat Keras

Kebutuhan sistem perangkat keras untuk membangun aplikasi sistem

multithreading ini terbagi atas client sebagai peminta layanan dan server sebagai penyedia layanan dengan kebutuhan minimun dari perangkat keras ini yaitu:


(53)

Tabel 3.2 Perbandingan Kebutuhan Perangkat Keras

Client Server

a. Prosessor 2Ghz a. Prosessor 2Ghz

b. Ram 2 GB b. Ram 4 GB

c. Hardisk 500 GB c. Hardisk 1TB

d. Keyboard dan Mouse d. Keyboard dan Mouse

e. Monitor 17” e. Monitor 17”

f. Operating sistem yang digunakan adalah Windows Xp,7

f. Operating sistem yang digunakan adalah Windows Xp,7

3.1.4.2Analisis Kebutuhan Perangkat Lunak

Perangkat lunak atau software adalah program yang berisi kumpulan instruksi untuk melakukan proses pengolahan data. Berikut perangkat lunak yang digunakan dalam pembangunan aplikasi multithreading adalah:

a. Mysql

b. Borland Delphi c. Microsotf Office Excel d. Microsof Office visio 2007

e. Rational Rose

3.1.4.3Analisis Pengguna Sistem

Analisis pengguna sistem dimaksudkan untuk mengetahui siapa saja aktor yang terlibat dalam menjalankan sistem. Pengguna atau user disini bertugas menganalisis dua sistem aplikasi yang akan digunakan dan membandingkan aplikasi mana yang bekerja lebih baik. Berikut ini karakteristik pengguna sistem yang ditunjukan oleh tabel 3.3.

Tabel 3.3 Karakteristik Pengguna Sistem Pada Perusahaan

Pengguna Usia Hak Akses Tingkat

Pendidikan


(54)

3.1.4.4Analisis Metode Multithreading

Analisis metode multithreading dilakukan untuk memberikan gambaran terhadap pengertian dan model yang akan diambil berdasarkan kebutuhan sistem.

Multithreading adalah cara pengeksekusian yang mengijinkan beberapa thread

terjadi dalam sebuah proses, saling berbagi sumber daya tetapi dapat dijalankan secara independen. Model multithreading yang akan dipakai dalam sistem aplikasi ini adalah model many to many seperti contoh pada gambar 3.4.

Makanan ringan Makanan ringan

Makanan hewan

Obat - obatan Obat - obatan

Makanan hewan

Data Center

Gambar 3.4 Sistem Penarikan Laporan Data Multithread Gambar 3.4 terlihat bahwa sebuah processor berpindah dari satu thread ke

thread yang lain. proses berjalan secara bersamaan berpindah dari satu thread ke

thread yang lain. Hal tersebut terjadi secara cepat sehingga user akan beranggapan bahwa suatu thread atau task berjalan secara bersamaan.

3.1.4.5Analisis Client Server

Konsep Jaringan client-server ini membedakan dengan jelas kedudukan suatu komputer, mana yang dapat memberikan layanan jaringan (server) dan mana yang hanya meminta layanan (client). Jika suatu komputer diinstall sebagai

server yang memberikan segala sumber daya (resource), contohnya : printer,

modem kepada komputer lain (client) yang terhubung ke jaringan. Untuk dapat saling berkomunikasi antara server dan client, maka digunakan suatu aplikasi jaringan yang dinamakan client-server program, dimana server menggunakan aplikasi jaringan yang disebut server program, sementara client menggunakan


(55)

client program untuk dapat berkomunikasi dengan server program pada server. Model client-server yang digunakan dapat terlihat pada gambar 3.5.

Client

Server Client

Client Hub/switch

Gambar 3.5 Model Jaringan Client-Server

Topologi yang akan digunakan dalam Client Server ini berupa topologi pohon karena topologi model ini merupakan perpaduan antara topologi Linear BUS / Garis Lurus dan Bintang, yang terdiri dari kelompok-kelompok dari

workstation konfigurasi Bintang yang terkoneksi ke kabel utama yang menggunakan topologi Linear BUS / Garis Lurus. Topologi ini memungkinkan untuk pengembangan jaringan yang telah ada, dan memungkinkan sebuah perusahaan mengkonfigurasi jaringan sesuai dengan kebutuhannya. Model topologi yang digunakan dapat terlihat pada gambar 3.6.

Gambar 3.6 Topologi Jaringan Pohon

3.1.5 Analisis Kebutuhan Fungsional


(56)

lunak dan perangkat keras dari suatu sistem. Adapun sebagai alat bantu yang digunakan untuk menggambarkan atau memodelkan sistem secara umum yang akan dibangun yaitu dengan menggunakan Unified Modeling Language (UML).

Pemodelan sistem dengan menggunakan Unified Modeling Language

(UML) memiliki beberapa tahapan. Tahap-tahap pemodelan dalam analisis tersebut antara lainUsecase diagram, Sequence Diagram, Activity Diagram, Class Diagram.

A. Use case Diagram

Diagram Use case merupakan bagian tertinggi dari fungsionalitas yang dimiliki sistem yang akan menggambarkan bagaimana seseorang atau aktor akan menggunakan dan memanfaatkan sistem. Diagram ini juga mendeskripsikan apa yang akan dilakukan oleh sistem. Use case terdiri dari tiga bagian yaitu identifikasi aktor, identifikasi Use case dan skenario Use case.

Diagram ini menggambarkan transisis dari perubahan keadaan suatu objek, akibat dari stimulus/input yang diterimanya, statechart diagram menelusuri individu-individu obyek melalui keseluruhan daur hidupnya, menspesifikasikan semua urutan yang mungkin dari pesan-pesan yang akan diterima obyek tersebut, bersama-sama dengan tanggapan atas pesan-pesan tersebut.

Gambar 3.7 Use case penarikan laporan data

Add Principal

penjadwalan penarikan data user

(f rom Actors)

Set Priority

sistem


(57)

Gambar 3.8 menjelaskan bahwa aktor sebagai pengguna aplikasi bisa memilih apa saja yang akan diproses atau jika perlu menambah data sebelum proses penarikan laporan data dijalankan. Actor disini bisa memilih salah satu dari dua proses yang ada yaitu proses single thread atau proses multithread

untuk dijalankan.

1. Identifikasi Aktor

Identifikasi aktor adalah Aktor yang berperan dalam menjalankan sistem, aktor yang berperan dapat dilihat pada tabel 3.4.

Tabel 3.4 Aktor Sistem

Aktor Deskripsi

Pengguna

Merupakan aktor yang menggunakan aplikasi single thread atau

multithreading untuk penarikan laporan data Admin

Merupakan aktor yang akan mengelola aplikasi multithreading.

Dari tabel 3.4 diperoleh keterangan pengguna aplikasi bisa melakukan penarikan data dengan menggunakan aplikasi single thread

atau multithread. Sedangkan admin mengelola kedua proses yang dijalankan.

2. Skenario Use case

Skenario proses-proses yang terdapat didalam Use case dapat dilihat pada tabel-tabel berikut.


(58)

Tabel 3.5 Skenario Use case Add Principal

Identifikasi Nama Use case Add principal

Deskripsi Fungsional untuk menambah data principal

Aktor Pengguna

Tujuan Menambahkan divisi principal

Keadaan Awal Sistem menampilkan informasi principal yang ada

Skenario Utama

Aksi Aktor Reaksi sistem

1. Menambahkan data principal

2. Menekan tanda tambah

3. Melakukan pengecekan data apabila data sesuai maka akan kelangkah 5, jika data tidak sesuai maka akan kelangkah 4. 4. Menampilkan data yang dimasukan tidak sesuai maka akan kembali kelangkah 1

5. menyimpan data principal

Kondisi Akhir Menampilkan data principal yang baru ditambahkan

Tabel 3.6 Skenario Use case Set Priority

Identifikasi Nama Use case Set Priority

Deskripsi Fungsionalitas untuk memilih data yang dipriority

Aktor Pengguna

Tujuan Memilih pilihan data

Keadaan Awal Sistem menampilkan informasi principal yang ada

Skenario Utama

Aksi Aktor Reaksi sistem

1. Memilih periode awal dan akhir 2. Memilih jenis penjualan 3. Memilih jenis Principal

4. Mengklik Penjadwalan penarikan data

5. Melakukan pengecekan data apabila data sesuai maka akan kelangkah 7, jika data tidak sesuai maka akan kelangkah 6. 6. Menampilkan data yang dipilih tidak sesuai maka akan kembali kelangkah 1.

7. Menampilkan informasi penjadwalan


(59)

Tabel 3.7 Skenario Use case Penjadwalan penarikan data

Identifikasi Nama Use case Penjadwalan penarikan data

Deskripsi Fungsionalitas untuk memilih penjadwalan penarikan data

Aktor Pengguna

Tujuan Memilih Antrian

Keadaan Awal Sistem menampilkan informasi produk yang ada

Skenario Utama

Aksi Aktor Reaksi sistem

1. Memilih periode awal dan akhir 2. Memilih jenis penjualan 3. Memilih jenis Principal

4. Mengklik Penjadwalan penarikan data

5. Melakukan pengecekan data apabila data sesuai maka akan kelangkah 7, jika data tidak sesuai maka akan kelangkah 6. 6. Menampilkan data yang dipilih tidak sesuai maka akan kembali kelangkah 1.

7. Menampilkan informasi penjadwalan 8. Memilih penjadwalan antian

jika memilih proses singlethread

maka kelangkah 9, jika memilih proses multithread maka kelangkah 12

9. Memilih proses singlethread

10. Menjalankan proses penarikan secara singlethread Penarikan berjalan secara sendiri-sendiri sehingga didapatkan waktu dari hasil penarikan selama 40detik.

11. Mengeksport database to pivot 12. Memilih proses

multithreading

13. Menjalankan proses penarikan secara singlethread Penarikan berjalan secara sendiri-sendiri sehingga didapatkan waktu dari hasil penarikan selama 17detik.

14. Mengeksport database to pivot

Kondisi Akhir Setelah melakukan proses penarikan singlethread didapatkan waktu selama 40detik sedangkan proses penarikan multithreading

didapatkan waktu selama 17 detik, sehingga dapat diambil kesimpulan bahwa proses penarikan dengan menggunakan


(60)

B. ActivityDiagram

Activity diagram adalah teknik untuk mendeskripsikan logika prosedural, proses bisnis, aliran kerja dalam banyak kasus, menggambarkan rangkaian aliran dari aktivitas, dan digunakan untuk mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga dapat juga digunakan untuk aktifitas lainnya seperti Use case atau interaksi.

Activity diagram mempunyai peran seperti halnya flowchart, akan tetapi perbedannya dengan flowchart adalah activity diagram bisa mendukung perilaku parallel sedangkan flowchart tidak bisa.

1. Acivity Diagram Add principal

Gambar 3.8 Acivity Diagram Add principal m anam bahkan

data principal

klik tom bol tam bah

m elakukan pengecekan

m enyim pan data principal

data tidak s es uai

data s es uai

s is te m us er


(61)

2. Acivity Diagram Set Priority

Gambar 3.9 Acivity Diagram Set priority

memilih periode awal dan akhir

memilih jenis penjualan

memilih jenis principal

mengklik penjadwalan penarikan data

melakukan pengecekan data

memanpilkan informasi penjadwalan data tidak sesuai

data sesuai

sistem user


(62)

3. Acivity Diagram Penjadwalan penarikan data

Gambar 3.10 Acivity Diagram Penjadwalan penarikan data

memilih periode awal dan akhir

memilih jenis penjualan

memilih jenis principal

mengklik penjadwalan penarikan data

memilih penjadwalan antrian

melakukan pengecekan data

menampilkan informasi penjadwalan antiran

menjalankan proses single thread

menjalankan proses multithread

melakukan proses penarikan

menampilkan pivot to report data tidak sesuai

data sesuai

singlethread

multithread

sistem user


(63)

C. Class Diagram

Tahap pertama yang dilakukan dalam melakukan analisis berorientasi objek menggunakan UML adalah menentukan aktor atau pengguna sistem. Kata aktor dalam konteks UML, menampilkan peran (roles) yang pengguna (atau sesuatu di luar sistem yang dikembangkan yang dapat berupa perangkat keras,

end user, sistem yang lain, dan sebagainya).

Gambar 3.11 Class Diagram penarikan laporan

D. Sequence Diagram


(64)

terjadi antar class, operasi apa saja yang terlibat, urutan antar operasi, dan informasi yang diperlukan oleh masing-masing operasi.

1. Sequence Add principal

Gambar 3.12 Sequence Add principal 2. Sequence Set priority

Gambar 3.13 Sequence Set priority : us er

threading m etacontrol

Add principal()

clik buton + ()

cek valid data()

data not valid()

s ave add principal()

tam pil principal()

: us er threading m etacontrol

s et data penarikan awal dan akhir()

s et data penjualan()

s et data principal()

clik penjadwalan penarikan data()

s et priority()

data not valid()

validatedata()


(65)

3. Sequence Penjadwalan penarikan data

: user threading metacontrol

set data penarikan awal dan akhir()

set data penjualan()

set data principal()

clik penjadwalan penarikan data()

set priority()

data not valid()

validatedata()

set penjadwalan antrian()

set singlethread()

getsingle()

export from data base()

exportexcel() data valid()

jika bukan single()

set multithread()


(66)

E. Collaboration Diagram

Pada tahap ini Collaboration Diagram dapat menggambarkan interaksi antar objek seperti Sequence Diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message. Setiap message memiliki Sequence number, di mana message dari level tertinggi memiliki nomor satu. Messages dari level yang sama memiliki prefiks yang sama.

1. Collaboration Single Thread

Gambar 3.15 Collaboration Single : user

: threading

: MetaControl

: server

1: onCreate() 2: validateData( )

3: setPriority( ) 4: getSingle( )

5: executeQuerySQL( )

6: loadData() 7: if(avaible)

8: returnData()

9: returnData() 10: MessageComm entThread


(1)

Pengujian Alpha

Pengujian Dengan Black Box

 Contoh butir uji pilih periode awal

 Contoh butir uji add principal

Kasus dan hasil uji (data normal)

Data masukan Yang diharapkan Pengamatan Kesimpulan

Pilih Tanggal Periode Awal Penarikan.

Menampilkan data yang dicari berdasarkan tanggal periode awal penarikan.

Menampilkan data pada

tanggal awal penarikan. [] diterima [ ] ditolak

Kasus dan hasil uji (data normal)

Data masukan Yang diharapkan Pengamatan Kesimpulan

Isi data principal Data terisi pada field

principal sesuai data masukan

Dapat mengisi field

principal dengan data yang diharapkan

[] diterima [ ] ditolak


(2)

Pengujian Beta

Hasil Wawancara

 Berdasarkan hasil jawaban responden terhadap pertanyaan yang

diajukan pada pengujian beta dapat ditarik kesimpulan bahwa

sistem yang diajukan sudah bisa diterima baik dari segi tampilan maupun pengoperasian dan terbukti dengan menggunakan

konsep multithreading bisa membantu memecahkan masalah dengan mempercepat efisiensi waktu penarikan laporan.


(3)

(4)

Kesimpulan

Analisis penggunaan multithreading untuk penarikan

laporan data dapat mempercepat proses penarikan.

Aplikasi multithreading ini bisa mempermudah proses

penarikan laporan data dengan menyediakan tampilan

pemilihan laporan data yang akan ditarik.


(5)

Saran

Algoritma penjadwalan penarikan laporan data bisa

disesuaikan dengan kebutuhan penarikan.

Data yang akan ditarik bisa disesuaikan dengan


(6)