bab ii landasan teori 2.1 problem, optimasi,...

25
BAB II LANDASAN TEORI 2.1 Problem, algoritma, optimasi, simulasi 2.1.1 Definisi problem Problem (permasalahan) adalah suatu tujuan dinyatakan dalam konteks yang jelas tetapi tidak dapat dengan serta merta dicapai. Suatu permasalahan dikatakan sudah selesai bila tujuan telah dicapai atau sudah tidak ada lagi (Psquet, Sebastian,2001,p1). 2.1.2 Algoritma 2.1.2.1 Pengertian Ditinjau dari asal usul katanya, Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal- Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari Algorism menjad i Algorithm muncul karena kata Algorism sering

Upload: leduong

Post on 20-May-2018

215 views

Category:

Documents


1 download

TRANSCRIPT

BAB II

LANDASAN TEORI

2.1 Problem, algoritma, optimasi, simulasi

2.1.1 Definisi problem

Problem (permasalahan) adalah suatu tujuan dinyatakan dalam konteks

yang jelas tetapi tidak dapat dengan serta merta dicapai. Suatu permasalahan

dikatakan sudah selesai bila tujuan telah dicapai atau sudah tidak ada lagi

(Psquet, Sebastian,2001,p1).

2.1.2 Algoritma

2.1.2.1 Pengertian

Ditinjau dari asal usul katanya, Algoritma sendiri mempunyai

sejarah yang aneh. Orang hanya menemukan kata Algorism yang

berarti proses menghitung dengan angka arab. Anda dikatakan

Algorist jika anda menghitung menggunakan Angka Arab. Para ahli

bahasa berusaha menemukan asal kata ini namun hasilnya kurang

memuaskan. Akhirnya para ahli sejarah matematika menemukan

asal kata tersebut yang berasal dari nama penulis buku arab yang

terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi.

Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al

Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-

Muqabala yang artinya “Buku pemugaran dan pengurangan” (The

book of restoration and reduction). Dari judul buku itu kita juga

memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari

Algorism menjadi Algorithm muncul karena kata Algorism sering

8

dikelirukan dengan Arithmetic, karena perhitungan dengan angka

Arab sudah menjadi hal yang biasa. Maka lambat laun kata

Algorithm berangsur-angsur dipakai sebagai metode perhitungan

(komputasi) secara umum, sehingga kehilangan makna kata aslinya.

Dalam Bahasa Indonesia, kata Algorithm diserap menjadi

Algoritma.

2.1.2.2 Definisi Algoritma

Beberapa definisi algoritma adalah sebagai berikut :

a. Kamus Bahasa Indonesia

Algoritma adalah urutan logis pengambilan keputusan untuk

pemecahan masalah.

b. Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi

Algoritma adalah suatu metode khusus untuk menyelesaikan

suatu permasalahan.

c. Goodman Hedetniemi

Algoritma adalah urutan-urutan terbatas dari operasi-operasi

yang terdefinisi dengan baik yang masing-masing membutuhkan

memori dan waktu yang terbatas untuk menyelesaikan suatu

permasalahan.

2.1.3 Definisi Optimasi

Optimasi (Wikipedia, optimasi,2007) adalah suatu proses untuk mencapai

hasil yang ideal atau optimal (nilai efektif yang dapat dicapai). Dalam

disiplin matematika, optimasi merujuk pada studi permasalahan yang

mencoba untuk mencari nilai minimum dan maksimum dari suatu fungsi

9

nyata. Untuk mencapai nilai minimum dan maksimum tersebut, secara

sistematis dilakukan pemilihan integer atau bilangan nyata yang akan

memberikan solusi yang optimal.

Sedangkan optimasi menurut Kamus Besar Bahasa Indonesia adalah

prosedur yang digunakan untuk membuat sistem atau desain yang fungsional

atau seefektif mungkin dengan menggunakan teknik aplikasi matematika.

2.1.4 Definisi Simulasi

Simulasi (Wikipedia, optimasi,2007) adalah suatu peniruan sesuatu yang

nyata, keadaan sekelilingnya (state of affairs), atau proses. Aksi melakukan

simulasi sesuatu secara umum mewakilkan suatu karakteristik kunci atau

kelakkuan dari sistem-sistem fisik atau abstrak.

2.2 Gambaran Umum Objek

Kontainer diberikan dalam bentuk tiga dimensi. Gambar dibawah ini

menggambarkan bagian kiri, depan dan bagian lainnya. Penggambaran satu set

kotak direpresentasikan dalam bentuk vector. Tinggi kontainer didefinisikan sebagi

hc, lebar kontainer didefinisikan sebagai wc dan panjang kontainer didefinisikan

sebagai lc.

10

Gambar 2.1 Kontainer Dalam Sistem Koordinat Tiga Dimensi

Berbagai asumsi telah dibuat dalam rangka untuk menyederhanakan,

memformulasikan dan menyelesaikan masalah penyusunan barang pada kontainer

ini. Beberapa asumsi yang dimaksud adalah sebagai berikut :

a) Bidang yang digunakan berbentuk persegi panjang (kotak atau balok) dengan

ukuran yang berbeda-beda.

b) Kotak tersebut harus diatur sedemikian rupa dengan kontainer dan paralel

dengan bagian dinding-dindingnya.

c) Kotak tersebut dapat dirotasi maupun tidak, tergantung kebutuhan dan keadaan

yang terjadi. Rotasi tersebut memiliki enam kemungkinan posisi. Posisi

tersebut diantaranya akan diperlihatkan pada gambar 2.2 dibawah ini:

d)

11

Gambar 2.2 Enam Kemungkinan Posisi Barang

d) Kotak dengan ukuran paling besar harus disusun terlebih dahulu yang diikuti

dengan kotak yang lebih kecil

e) Kotak tersebut diseimbangkan dengan cara mengisi bagian-bagian yang kosong

dengan busa. (Pisinger, 2002).

f) Kotak yang berada paling atas didukung oleh kotak-kotak yang ada

dibawahnya.

Model matematika umum untuk memaksimalkan volume kontainer yang

digunakan dapat diformulasikan sebagai berikut :

12

dimana i = Kotak ke-1 sampai dengan kotak ke-n

j = Kontainer ke-1 sampai dengan kontainer ke-n

Si = Ukuran kotak ke-1 sampai dengan ke-n

Vi =

Volume kotak ke-1 sampai dengan ke-n

Smax = Ukuran kontainer

2.3 NP-Hard dan NP-Complete

Waktu yang dibutuhkan algoritma terbaik untuk menghasilkan solusi dari

banyak problem (permasalahan) dapat dibagi menjadi dua kelompok, yaitu :

P (Polynomial Problem)

Polynomial Problem adalah suatu permasalahan dimana waktu yang

dibutuhkan untuk menghasilkan solusi terbatas pada waktu polynomial dalam

tingkat kecil. Contohnya : permasalahan evaluasi polynomial dengan O(n),

pengurutan dengan O(n log n) dan string editing dengan O(mn)

NP (Non Polynomial)

Dalam pencarian untuk mengembangkan algoritma yang efisien, tidak

satupun yang dapat mengembangkan algoritma dengan waktu polynomial

13

untuk permasalahan NP. Hal ini sangat penting karena algoritma yang waktu

pencarian solusinya lebih besar dari polynomial (biasanya waktu pencarian

adalah eksponensial) membutuhkan waktu yang cukup lama untuk

menjalankan permasalahan skala menengah (Horowitz, Sahni dan

Sanguthevar Rajasekaran, 1998, pp495-553). Contoh NP adalah

permasalahan travelling salesman person dengan O(n22n) dan permasalahan

knapsack dengan O(2 n/2).

Dibagi menjadi dua yaitu: NP-hard dan NP-complete. Suatu

permasalahan yang termasuk kedalam NP-complete memiliki sifat yang

dapat dipecahkan dalam waktu polynomial jika dan hanya jika seluruh

permasalahan NP-complete juga dapat dipecahkan dalam waktu polynomial.

Jika sebuah permasalahan NP-hard dapat dipecahkan dalam waktu

polynomial maka seluruh permasalahan NP-complete dapat dipecahkan

dalam waktu polynomial. Seluruh permasalahan NP-complete merupakan

permasalahan NP-hard , tetapi sebagian permasalahan NP-hard belum tentu

menajadi permasalahan NP-complete (Horowitz, Sahni dan Sanguthevar

Rajasekaran, 1998, pp495-553).

Relasi antara P,NP, NP-complete, NP-hard akan ditunjukkan pada

gambar dibawah ini:

14

Gambar 2.3 Relasi antara P,NP, NP-complete, NP-hard

2.4 Wall Building Approach

Diperkenalkan oleh George dan Robinson. Pada wall building approach

mengisi kontainer sesuai jumlah layer yang sejajar dengan kedalaman kontainer.

Pendekatan pada algoritma ini berdasarkan normalized layer depth dimana hanya

mempertimbangkan layer dengan kedalaman (d) tertentu yang sesuai dengan

dimensi kotak. Untuk lebih jelas perhatikan gambar dibawah ini :

Gambar 2.4 Wall Building Approach

15

Kedalaman layer harus diseleksi secara teliti untuk mendapatkan solusi yang

baik. Oleh karena itu ketika akan membuat sebuah layer, algoritma ini menerapkan

aturan pengurutan untuk memilih nilai d. Diantara kotak yang tersisa, akan dipilih

kotak yang memiliki dimensi terbesar. Alasan utamanya karena kotak tersebut

akan sulit untuk dimuat apabila ditempatkan pada urutan terakhir dalam prosedur

pengepakan.

Setelah kedalam layer ditentukan, dilakukan pengepakan dengan metode

greedy per baris secara horizontal disetiap potongan layer. Setiap potongan akan

dimasukkan kotak yang tersisa secara berurutan berdasarkan urutan panjang kotak

yang terbesar terlebih dahulu.

2.5 Metode Greedy

Pengisian barang dalam kontainer dalam ruang tiga dimensi merupakan suatu

permasalahan NP-Hard (Pisinger, 2002). Sampai sekarang ini, hanya ada beberapa

metode yang dapat digunakan untuk menyelesaikan permasalahan ini. Fekette dan

Schepers (1997) mengembangkan model umum untuk solusi yang tepat dalam

ruang multi-dimensi. Martello et al. (2000) memperkenalkan metode Branch &

Bound (B&B) untuk pengisian barang dalam kontainer dalam ruang tiga dimensi

(Wikipedia,2008).

Metode yang akan digunakan pada pengis ian kontainer ini adalah metode

greedy yang dapat diartikan rakus, tamak. Dimana prinsip dari metode ini sendiri

adalah “take what you can get now”. Algoritma nya sendiri merupakan solusi

langkah per langkah dan pada setiap langkahnya banyak pilihan yang perlu

dieksplorasi oleh karena itu pada setiap langkah perlu dibuat keputusan yang

16

terbaik dalam menentukan pilihan. Pada setiap langkah juga didapat hasil yang

dinamakan optimum lokal (local optimum) yang diharapkan langkah sisanya akan

mengarah ke optimum global (global optimum).

Pada tabel berikut ini penulis akan menjelaskan karakteristik geometrik dari

barang dan kontainer:

Tabel 2.1 Properti Kendaraan dan Barang yang Digunakan

Time windows sering dikarakteristikkan sebagai time interval, namun dalam

formulasi matematika yang akan digunakan time windows ti merupakan single time

dan merepresentasikan rentang waktu secara keseluruhan

Gambar 2.5 Karakteristik Geometrik Dari Kontainer dan Barang

Vehicle j Item i

N : Number of itemsM : number of vehicle L

j : Length l

i : Length

Hj : Height hi : Height

Dj : Depth di : Depth

Wj : Capacity w

j : weight

Nj : Number of slices k

i : Type of goods

ti : Time windows

17

Untuk mempertimbangkan kompatibilitas diantara produk yang berbeda, maka

digunakan relasi ekivalen dimana relasi tersebut merupakan relasi yang sesuai,

dinotasikan dengan C. Relasi ini dapat dipresentasikan dengan q by q compatibility

matrix yang dinotasikan dengan Z, dimana q merupakan jumlah kategori yang

dipertimbangkan

sebagai contoh, jika z13 = 0, maka itu berarti barang kategori 1 tidak sesuai dengan

barang kategori 3

xijk = (xi, yi, zi) yang merupakan koordinat tiga dimensi dari barang yang akan

dimasukkan kedalam kontainer. Selain itu, terdapat Eij yang merupakan bagian

dari kontainer j (vehicle j) untuk barang tertentu.

Setiap kontainer terbagi menjadi beberapa potongan, yang dinamakan Nj

jumlah potongan dalam kontainer tersebut. Potongan dikarakteristikkan dengan

lebar. Gambar 2.6 memberikan penjelasan lebih detil tentang potongan itu:

18

Gambar 2.6 Representasi Potongan Pada Kontainer

Masalah dalam pengisian barang dalam kontainer untuk meminimalkan tempat

kosong dapat dideskripsikan dengan persamaan matematika berikut ini :

(1)

Persamaan (1) digunakan untuk meminimasi tempat kosong pada kontainer.

(2)

Persamaan (2) digunakan untuk memastikan bahwa barang-barang yang akan

disusun dalam kontainer tidak melebihi berat maksimal yang dapat ditampung oleh

kotainer tersebut

(3)

Persamaan (3) digunakan untuk memastikan bahwa volume barang-barang yang

akan disusun dalam kontainer tidak melebihi volume maksimal yang dapat

ditampung oleh kotainer tersebut

(4)

19

Persamaan (4) membuat barang-barang tidak mungkin untuk disusun diluar dari

kontainer, dengan kata lain semua barang berada didalam kontainer

(5)

(6)

(7)

Persamaan (7) memastikan bahwa semua barang yang akan dimasukkan itu

compatible. =1, jika barang i compatible dengan barang j, artinya keduanya

berada dalam satu kontainer.

(8)

Persamaan (8) tidak mengizinkan setiap barang yang berbeda overlapping didalam

satu kontainer.

(9)

(10)

Persamaan (6) dan (9) berdasarkan letak barang untuk memperhatikan time

windows. Sedangkan untuk persamaan (5) dan (10) digunakan untuk membatasi

tiap barang untuk diletakan hanya pada satu kontainer.

(11)

(12)

20

(13)

Pertidaksamaan (11) berpotensial digunakan untuk meletakkan barang kurang dari

satu kontainer berdasarkan pertimbangan beratnya dan pertidaksamaan (12)

mempertimbangkan barang mana yang tingginya melebihi tinggi kontainer, barang

mana yang lebarnya melebihi lebar kontainer dan barang mana yang panjangnya

melebihi panjang kontainer. Dalam pertidaksamaan (13) diasumsikan bahwa berat

barang lebih besar dari berat maksimal kontainer sebaliknya dalam kasus non-

geometric , solusi yang didapat merupakan sebuah pilihan.

2.5.1 Kelemahan dan Kelebihan Metode Greedy

Kelemahan umum algoritma greedy, yaitu hanya mencari solusi terbaik

saat itu, padahal belum tentu terbaik untuk langkah berikutnya. Di sisi lain,

algoritma ini pun mempunyai kelebihan yakni kompleksitas waktu dan

ruangnya rendah, sehingga komputer sangat kecil kemungkinan mengalami

masalah dalam lamanya waktu pencarian langkah atau masalah ketersediaan

memori.

2.6 Model Rekayasa Piranti Lunak

Model rekayasa piranti lunak yang digunakan adalah yang seringkali disebut

sebagai prototype model. Model ini memberikan pendekatan-pendekatan yang

sistematis dan berurutan (sequential) dalam pengembangan suatu software.

Tahapan-tahapan yang terdapat dalam prototype model adalah sebagai berikut :

21

Gambar 2.7 Prototype Model

Proses prototype model seperti yang telah digambarkan diatas akan dijelaskan

berikut ini :

• Pengumpulan kebutuhan

Developer dan klien bertemu dan menentukan tujuan umum, kebutuhan yang

diketahui dan gambaran bagian-bagian yang akan dibutuhkan berikutnya.

Detail kebutuhan mungkin tidak dibicarakan pada awal pengumpulan

kebutuhan.

• Perancangan

Perancangan dilakukan cepat dan rancangan mewakili semua aspek software

yang diketahui, dan rancangan ini menjadi dasar pembuatan prototype.

22

• Evaluasi prototype

Klien mengevaluasi prototype yang dibuat dan digunakan untuk memperjelas

kebutuhan software.

2.7 Model Perancangan

2.7.1 Object Oriented

Dari tahun 1950 sampai dengan tahun 1970-an, perusahaan-perusahaan

menekankan proses saat mengembangkan sistem informasi dan

menggunakan alat-alat pembuatan model proses seperti flowchart dan Data

Flow Diagram. Selama tahun 1970-an dan 1980-an, penekanan bergeser ke

data, dengan menggunakan Entity Relationship Diagram dan kamus data.

Selama tahun 1990-an kecenderungan berubah menjadi mengkombinasikan

proses dan data menjadi object.

Keuntungan object-oriented menurut Mathiassen et al (2000, pp5-6) adalah :

1. Object-oriented menyediakan informasi yang jelas mengenai konteks

sistem.

2. Hubungan yang kuat di antara object-oriented analysis, object-oriented

design, object-oriented user interface, dan object oriented programming.

Object dapat memodelkan sosial, ekonomi, dan kondisi organisasi,

demikian juga dengan system interface, function, process, dan

component. Dalam analisis, pengembang menggunakan object untuk

menggambarkan sistem itu sendiri. Pengembang juga menggunakan

object sebagai konsep sentral dalam pemrograman.

23

3. Object menawarkan pengembangan sebuah cara pemikiran yang alami

atas suatu permasalahan yang mendukung abstraksi tanpa memaksakan

cara pandang teknik satu sisi.

2.7.2 Object Oriented Analysis and Design

Menurut Mathiassen et al (2000, pp14-15) terdapat 4 aktivitas utama

dalam Object Oriented Analysis and Design, yaitu Problem Domain

Analysis, Application Domain Analysis, Architectural Design, dan

Component Design. Seperti diperlihatkan gambar dibawah ini :

Gambar 2.8 Aktivitas Utama pada Object Oriented Analysis and Design

Sumber : (Mathiassen et al, 2000, p15)

24

2.7.2.1 Problem Domain Analysis

Problem domain dapat didefinisikan sebagai bagian dari

sebuah keadaan yang dikelola, diawasi atau dikontrol oleh sistem

(Mathiassen et al, 2000, p6).

Menurut Mathiassen et al (2000, p46), tujuan dari problem

domain analysis adalah untuk mengembangkan model yang dapat

digunakan untuk merancang dan mengimplementasikan sebuah

sistem yang dapat memproses, mengkomunikasikan, dan

memberikan informasi mengenai problem domain dalam cara

yang tepat dan dapat digunakan. Problem domain analysis terdiri

dari tiga aktivitas yakni: class, structure, dan behaviour

(Mathiassen et al, 2000, pp46-47).

2.7.2.2 Application Domain Analysis

Menurut Mathiassen et al (2000,p6), application domain

adalah organisasi yang mengelola, mengawasi, atau mengontrol

sebuah problem domain. Application domain analysis terdiri dari

tiga tahap, yakni: usage, function, dan interface.

2.7.2.3 Architectural Design

Perbedaan dari sistem yang sukses dengan system yang

kurang sukses terletak pada architectural design yang baik.

Architecture (arsitektur) dari sebuah sistem memenuhi

perancangan kriteria tertentu, juga berguna sebagai kerangka kerja

untuk aktivitas pengembangan yang tersisa (Mathiassen et al,

2000, p173).

25

Menurut Mathiassen et al (2000, p174), konsep architecture

dapat dibedakan menjadi 2, component architecture yang

memiliki fokus pada class (aspek stabil), dan process architecture

yang memiliki fokus pada object (aspek dinamis).

2.7.2.4 Component Design

Tujuan dari component design adalah untuk menentukan

sebuah implementasi dari persyaratan kebutuhan dalam

architectural framework (Mathiassen et al, 2000, p231). Aktivitas

component design terdiri dari tiga bagian yaitu : model

component, function component, connecting component.

2.7.3 UML (Unified Modeling Language)

Unified Modelling Language (UML) adalah sebuah "bahasa" yg telah

menjadi standar dalam industri untuk visualisasi, merancang dan

mendokumentasikan sistem piranti lunak. UML menawarkan sebuah

standar untuk merancang model sebuah sistem. Dengan menggunakan

UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak,

dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi

dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun.

Tetapi karena UML juga menggunakan class dan operation dalam konsep

dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa

berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun

demikian, UML tetap dapat digunakan untuk memodelkan aplikasi

prosedural dalam VB atau C.

26

Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan

syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk

menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki

makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk

tersebut dapat dikombinasikan

Sampai dengan awal tahun 1990-an, metode object oriented analysis

and design dikarateristikkan dengan berbagai macam aktivitas dan notasi.

Perbedaan ini dibuat untuk mengembangkan object oriented. Konsep

dasarnya didefinisikan secara berbeda dan tidak ada standar notasi. Banyak

yang melihat keadaan ini merupakan faktor yang signifikan dalam usaha

mengembangkan object oriented. Pertengahan tahun 1990-an, usaha untuk

menstandarisasi notasi object oriented dimulai. Hasilnya adalah UML

(Unified Modeling Language), yang distandarisasikan pada tahun 1997.

(Mathiassen et al, 2000, p330-331).

UML mendefinisikan diagram-diagram diantara :

1. Use Case Diagram

Use case diagram menggambarkan fungsionalitas yang diharapkan

dari sebuah system, yang ditekankan adalah “apa” yang diperbuat sistem,

dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah

interaksi antara aktor dengan sistem. Use case merupakan sebuah

pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar

belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas

manusia atau mesin yang berinteraksi dengan sistem untuk melakukan

pekerjaan-pekerjaan tertentu.

27

Gambar 2.9 Contoh Use-Case Diagram

2. Activity Diagram

Activity diagrams menggambarkan berbagai alir aktivitas dalam

sistem yang sedang dirancang, bagaimana masing-mas ing alir berawal,

decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity

diagram juga dapat menggambarkan proses paralel yang mungkin terjadi

pada beberapa eksekusi.

Activity diagram merupakan state diagram khusus, di mana sebagian

besar state adalah action dan sebagian besar transisi di-trigger oleh

selesainya state sebelumnya (internal processing). Oleh karena itu

activity diagram tidak menggambarkan behaviour internal sebuah sistem

(dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan

proses-proses dan jalur-jalur aktivitas dari level atas secara umum.

28

Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih.

Aktivitas menggambarkan proses yang berjalan, sementara use case

menggambarkan bagaimana aktor menggunakan sistem untuk melakukan

aktivitas.

Sama seperti state, standar UML menggunakan segiempat dengan

sudut membulat untuk menggambarkan aktivitas. Decision digunakan

untuk menggambarkan behaviour pada kondisi tertentu. Untuk

mengilustrasikan proses-proses paralel (fork dan join) digunakan titik

sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal.

Activity diagram dapat dibagi menjadi beberapa object swimlane

untuk menggambarkan objek mana yang bertanggung jawab untuk

aktivitas tertentu.

Gambar 2.10 Contoh Activity Diagram

29

3. Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam

dan di sekitar sistem (termasuk pengguna, display, dan sebagainya)

berupa message yang digambarkan terhadap waktu. Sequence diagram

terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek

yang terkait).

Sequence diagram biasa digunakan untuk menggambarkan skenario

atau rangkaian langkah-langkah yang dilakukan sebagai respons dari

sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang

men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi

secara internal dan output apa yang dihasilkan.

Masing-masing objek, termasuk aktor, memiliki lifeline vertikal.

Message digambarkan sebagai garis berpanah dari satu objek ke objek

lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi

operasi/metoda dari class.

Activation bar menunjukkan lamanya eksekusi sebuah proses,

biasanya diawali dengan diterimanya sebuah message. Untuk objek-objek

yang memiliki sifat khusus, standar UML mendefinisikan icon khusus

untuk objek boundary, controller dan persistent entity.

2.7.4 Flowchart

Flowchart adalah representasi skematik dari sebuah algoritma atau

sebuah proses yang teratur, menunjukkan langkah-langkah dalam kotak-

kotak yang bervariasi dan urutannya dengan menghubungkan kotak-kotak

tersebut dengan panah. Flowchart digunakan dalam mendesain atau

30

mendokumentasikan sebuah proses atau program (Wikipedia, 2008).

Flowchart pertama kali diperkenalkan oleh Frank Gilbreth kepada anggota

ASME (American Society of Mechanical Engineers) pada tahun 1921

sebagai representasi “Process Charts – First Steps in Finding the One Best

Way” dan saat ini menjadi alat yang sering digunakan untuk menunjukkan

aliran proses dalam suatu algoritma.

Dua macam flowchart yang menggambarkan proses dengan komputer,

yaitu:

• System flowchart

Bagan yang memperlihatkan urutan prosedur dan proses dari

beberapa file dalam media tertentu. System flowchart menggambarkan :

1. Hubungan antar suatu file dengan file lainnya

2. Media yang dipakai untuk setiap file

• Program flowchart

Bagan yang memperlihatkan urutan dan hubungan proses dalam suatu

program.

Flowchart (Diagram Alur)

Langkah awal pembuatan program

Urutan proses di program menjadi lebih jelas

Sebuah Flowchart pada umumnya memiliki simbol-simbol sebagai berikut :

31

SIMBOL NAMA FUNGSI

TERMINATOR Permulaan/akhir program

GARIS ALIR

(FLO W LINE) Arah aliran program

PREPARATION

Proses inisialisasi/pemberian

harga awal

PROSES

Proses perhitungan/proses

pengolahan data

INPUT/OUTPUT

DATA

Proses input/output data,

parameter, informasi

PREDEFINED

PROCESS

(SUB PROGRAM)

Permulaan sub program/proses

menjalankan sub program

DECISION

Perbandingan pernyataan,

penyeleksian data yang

memberikan pilihan untuk

langkah selanjutnya

ON PAGE

CONNECTOR

Penghubung bagian-bagian

flowchart yang berada pada satu

halaman

OFF PAGE

CONNECTOR

Penghubung bagian-bagian

flowchart yang berada pada

halaman berbeda

Tabel 2.2 Simbol-Simbol Flowchart