• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
26
0
0

Teks penuh

(1)

6

LANDASAN TEORI

Pada bab 2 ini mengenai landasan teori. Yang mana di landasan teori ini menjelasakan mengenai pengoptimalan, optimisasi, algoritma, analisi algoritma, gambaran umum tentang pallet, Kompleksitas waktu algoritma dan masalah, permasalahan NP-Hard dan NP-Complete, definisi heuristic, bin packing, bahasa pemrograman C#, dan Unified modeling language. Penjelasan lebih lanjut bisa kita simak atau pelajarin di bawahin.

2.1 Pengoptimalan, Optimisasi, Algoritma, dan Analisis Algoritma

Pada sub-Bab Pengoptimalan, Optimisasi, Algoritma, dan Analisis Algoritma, akan menjelaskan mengenai definisi pengoptimalan, definisi optimisasi, definisi algoritma, dan definisi analisi algoritma. Yang mana definisi-definisi ini akan terkait dengan aplikasi yang saya buat.

2.1.1 Definisi Pengoptimalan

Dalam Kamus Besar Bahasa Indonesia, pengoptimalan diartikan sebagai proses, cara, perbuatan untuk menjadi paling baik, paling tinggi, paling menguntungkan, dan sebagainya. Pengoptimalan ialah proses memodifikasi proses dalam suatu kegiatan untuk meningkatkan mutu suatu proses. Berdasarkan sasaran anda, pengoptimaland dapat mencakup perbaikan pada penerapan proses perbaikan pada suatu proses kegiatan.

(2)

2.1.2 Definisi Optimasi

Menurut Kamus Besar Bahasa Indonesia, optimisasi adalah prosedur yang digunakan untuk membuat sistem atau desain yang fungsional atau seefektif mungkin dengan menggunakan teknik aplikasi matematika. Optimasi secara umum adalah untuk memaksimalkan atau mengoptimalkan sesuatu hal yang bertujuan untuk mengelola sesuatu yang dikerjakan, sehingga optimasi bisa dikatakan kata benda yang berasal dari kata kerja, dan optimasi bisa dianggap baik sebagai ilmu pengetahuan dan seni menurut tujuan yang ingin dimaksimalkan.(Dunia optimasi, optimasi, 2011)

Optimisasi (Wikipedia, optimasi, 2012) adalah suatu proses untuk mencapai hasil yang ideal atau optimal (nilai efektif yang dapat dicapai). Dalam disiplin matematika optimisasi merunjuk pada studi permasalahan yang mencoba untuk mencari nilai minimum dan maksimum dari suatu fungsi nyata. Untuk mencapai nilai minimum dan maksimum tersebut, secara sistematis dilakukan pemilihan integer atau bilangan nyata yang akan memberikan solusi optimal.

2.1.3 Definisi Algoritma

Algoritma berasal dari kata Algoris dan Ritmis, yang pertama kali diungkapkan oleh Al-Khawarizmi, penemu algoritma ialah langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis (Rinaldi Munir, 2002). Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah (KBBI, 1998). Algoritma adalah suatu himpunan hingga dari instruksi-instruksi yang secara jelas memperinci langkah-langkah proses pelaksanaan, dalam pemecahan suatu masalah tertentu, atau

(3)

suatu kelas masalah tertentu, dengan dituntut pula bahwa himpunan instruksi tersebut dapat dilaksanakan secara mekanik (Team Gunadarma, 1988).

Menurut Microsoft Press Computer and Internet Dictionary 1997, 1998, definisi algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat – lompat.

Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinyta dapat berupa kalimat, gambar, atau tabel tertentu (Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1).

Contoh Algoritma dalam kehidupan nyata :

a. Jika seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun tidak pasti akan melakukan suatu langkah – langkah tertentu sehingga masakannya atau kuenya jadi.

b. Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain, langkah yang harus dilakukan adalah:

1. Menulis surat

2. Surat dimasukkan ke dalam ampolp tertutup 3. Amplop ditempeli perangko secukupnya.

4. Pergi ke Kantor Pos terdekat untuk mengirimkannya.

2.1.4 Definisi Analisis Algoritma

(4)

maka diharapkan adanya suatu evaluasi mutu hasil dari algoritma tersebut (Liu, C.L, 1995, p271). Sekali sebuah algoritma diberikan kepada sebuah permasalah dan dijamin akan memberikan hasil yang diharapkan, maka langkah penting selanjutnya adalah menentukan besar biaya yang diperlukan algoritma tersebut untuk memperoleh hasil itu. Proses inilah yang disebut dengan analisis algoritma (Weiss, Mark Allen, 1996, p149).

Maksud dilakukan analisis algoritma (Horowitz, Elis dan Sartaj Sahni, 1978, p1) adalah untuk:

a. Memenuhi aktivitas intelektual.

b. Meramalkan suatu hal yang akan terjadi atau yang akan didapat dari algoritma tersebut.

c. Mengetahui efektifitas suatu algoritma dibanding dengan algoritma yang lain untuk persoalan yang sama.

2.2 Gambaran Umum Tentang Pallet

Pada sub-Bab gambaran umum tentang pallet ini saya akan menjelaskan mengenai: Pengertian pallet, di dalam pengertian pallet ini menjelaskan pallet itu terbuat dari pada, dan sedikit mengenai sejarah pallet. Biar lebih jelas silakan dibaca dan dipelajarin dengan seksama.

2.2.1 Pengertian Pallet

Sebuah pallet, kadang-kadang disebut slip, adalah struktur transportasi datar yang mendukung barang dalam mode stabil sementara diangkat oleh forklift, pallet

jack, perangkat jacking depan loader atau lainnya. Pallet adalah fondasi struktural

(5)

atau pengiriman kontainer sering ditempatkan pada pallet dijamin dengan tegap,

stretch wrap atau shrink wrap dan dikirim.

Sementara kebanyakan pallet kayu , pallet juga terbuat dari plastik, logam, dan kertas. Masing-masing bahan memiliki kelebihan dan kekurangan relatif terhadap yang lain. Pallet membuatnya lebih mudah untuk memindahkan tumpukan berat. Beban dengan pallet di bawah mereka dapat ditarik oleh truk forklift dengan ukuran yang berbeda, atau bahkan dengan tangan-tangan dipompa dan jack pallet ditarik. Gerakan mudah di lantai, lebar, kuat, datar, terbuat dari beton yang sangat baik pallet jack. Sebuah truck forklift dapat biaya sama seperti mobil mewah, namun tangan digambarkan baik pallet jack dengan biaya beberapa ratus dolar. Untuk membantu masalah yang terdapat pada pallet, beberapa standar pallet kemudian di buat (europallet dan Militer AS 35 x 45,5 x 1.156mm in/889) dirancang untuk melewati pintu standar. Organisasi menggunakan pallet standar untuk bongkar muatan dengan biaya jauh lebih rendah untuk penanganan dan penyimpanan.

Pallet perlahan-lahan diperkenalkan sepanjang awal abad 20, kotak kayu,

peti, tong dan tong jauh lebih umum digunakan untuk unitize, melindungi, menyimpan dan transportasi barang. Pendahulu dari pallet kayu modern tergelincir sederhana yang hanya terdiri dari stringer diikat ke dek atas. Ini pertama kali muncul di pabrik-pabrik Amerika dalam hubungannya dengan truck angkat rendah. Sebuah truck mengangkat tangan mentah yang rendah ditemukan pada tahun 1887 dan lebih tahan lama semua baja mengangkat desain truck rendah diperkenalkan pada tahun 1909.

Sekarang, palet tidak lagi hanyalah sarana untuk memindahkan bahan-bahan di dalam pabrik. Truk angkat tinggi yang dibuat vertikal memungkinkan

(6)

penumpukan beban unit dan peningkatan dramatis yang dihasilkan dari efisiensi

gudang penyimpanan dan pabrik.

Palet ini dikembangkan secara bertahap. Spacer digunakan antara beban untuk memungkinkan masuknya garpu, maju ke papan atas penempatan stringers untuk membuat tergelincir. Akhirnya papan itu diikat ke bawah untuk menciptakan palet. Penambahan papan bawah di selip, yang muncul dengan 1925, mengakibatkan bentuk modern dari palet. Misalnya, papan bawah yang disediakan distribusi berat lebih baik dan mengurangi kerusakan produk, mereka juga diberikan kekuatan penumpukan yang lebih baik dan kekakuan. Dalam ukuran, meluncur mulai sempit dalam rangka untuk melewati pintu biasa. Sebagai fasilitas dibangun kembali, banyak organisasi dioptimalkan bangunan mereka untuk palet yang lebih besar dalam rangka mengurangi biaya tenaga kerja.

Pengaruh pada rel transportasi Palet dan forklift juga disediakan perputaran lebih cepat dari gerbong box dan kapal. Ketika jumlah yang sama barang-barang dimuat ke dalam truk kereta api di palet atau meluncur, tugas hanya mengambil empat jam. Beban palletized bisa menangani lebih banyak barang dengan lebih sedikit orang, membebaskan orang untuk tugas militer, tetapi juga dapat meningkatkan kapasitas penyimpanan gudang dan throughput, mengurangi kebutuhan kapasitas gudang tambahan.

Palet persegi atau hampir persegi membantu beban melawan kemiringan.

While palet mengatur dimensi tunggal standar, ukuran yang berbeda secara luas

digunakan.

2.3 Kompleksitas Waktu Algoritma dan Masalah

(7)

lamanya waktu yang diperlukan. Pengukuran waktu diperlukan dalam mengeksekusi suatu algoritma dinamakan kompleksitas waktu algoritma tersebut (Liu, C.L, 1995, p272).

Besarnya waktu yang dibutuhkan algoritma untuk menyelesaikan sebuah permasalahan sebanding dengan jumlah inputan yang diberikan untuk permasalahan tersebut. Semakin besar data maka akan semakin besar waktu yang diperlukan. Sebagai contoh, diperlukan waktu yang lebih besar untuk mengurutkan 10.000 buah data dibanding dengan 10 buah data data. Akan tetapi, pada keadaan sebenarnya, nilai dari suatu algoritma ditentukan dari banyak faktor, misalnya kecepatan komputer yang dipakai, kualitas compiler dan dalam beberapa kasus, kualitas program itu sendiri (Weiss, Mark Allen, 1996, p149).

Dua buah algoritma yang berbeda dapat digunakan memecahkan masalh yang sama dan mungkin saja mempunyai kompleksitas waktu yang sangat berbeda (Liu, C.L, 1995, p274). Kompleksitas waktu algoritma terbaik untuk memecahkan masalah tersebut dinamakan sebagai kompleksitas waktu suatu masalah (Liu, C.L, 1995, p277).

Berdasarkan pengertian masalah diatas, tidak semua masalah dapat dipecahkan, dengan kata lain mempunyai algoritma solusi.

Ada dua buah klasifikasi permasalahan, yaitu sebagai berikut :

a. Permasalahan yang dapat dipecahkan (decidable / solvable problem) Permasalahan ini adalah semua jenis permasalahan yang mempunyai algoritma solusi, walaupun kadang kala tidak prakis.

b. Peramasalahan yang tidak dapat dipecahkan (undecidable /

unsolveable problem)

(8)

permasalahan yang tidak mampunyai algoritma solusi, maksudnya adalah tidak dapat dilakukan perhitungan, atau tidak dapat diperoleh jawaban dalam waktu singkat, contohnya permasalahan unbounded

tiling.

Ada beberapa definisi yang diberikan pengukuran kompleksitas suatu masalah (Weiss, Mark Allen, 1996, p161), yaitu sebagai berikut:

1. Big-O

Definisi :

T(n) = O(F(n)),jika ada konstanta positif c dan No di mana T(n) <

cF(n), ketika N > No

2. Big-Omega

Definisi:

T(n) = Ω(F(n)), jika ada konstanta positif c dan No di mana T(n) >

cF(n), ketika N>No

3. Big-Theta

Definisi:

T(n) = Θ(F(n)), jika dan hanya jika T(n) = O(F(n)) dan T(n) = Ω (F(n))

4. Little-O

Definisi:

T(n) = o(F(n)), jika dan hanya jika T(n) = O(F(n)) dan T(n) ≠ Θ(F(n))

Dari keempat definisi yang diberikan di atas, definisi pertama yang sering digunakan dalam mengukur kompleksitas suatu permasalahan (Weiss, Mark Allen, 1996, p161).

(9)

Fungsi Nama

C Konstanta

Log N Logaritma

Log2 N Logaritma Kuadrat

N Linear

N Log N N Logaritma N

N2 Kuardatis

N3 Kubik

2n eksponensial

Tabel 2.1 Fungsi kompleksitas suatu masalah dalam urutan ascending.

2.4 Permasalahan NP-Hard dan NP-Complete

Salah satu ukuran biaya dalam pengeksekusian sbuah algoritma adalah lamanya waktu yang diperlukan. Pengkuruan waktu yang perlukan dalam mengeksekusi suatu algoritma dinamakan kompleksitas waktu (time complexity) algoritma tersebut. Namun juga masih ada ukuran-ukuran lainnya, contohnya besarnya memori yang diperlukan untuk mengeksekusi algoritma tesebut (Liu, C.L, 1995, p272). Besarnya wauktu yang dibutuhkan algoritma untuk menyelesaikan sebuah permasalahan sebanding dengan jumlah inputan yang diberikan untuk permasalahan tersebut. Semakin besar data maka akan semakin besar waktu yang diperlukan. (Weiss, Mark Allen, 1996, p149).

(10)

banyak problem (permasalahan) dapat di bagi menjadi dua kelompok. Kelompok pertama terdiri dari problem di mana waktu yang dibutuhkan untuk menghasilkan solusinya terbatas pada waktu polynomial polynomial dalam tingkat kecil tersebut juga Polynomial Problem (P), seperti permasalahan evaluasi polynomial dengan

O(n), pengurutan (sorting) dengan O(n log n) dan string editing dengan O(mn).

Kelompok kedua terdiri dari permasalahan dengan algoritma Non Polynomial

(NP), seperti permasalahan traveling sales person dengan O(n22n) dan

permasalahan Knapsack dengan O(2n/2). Dalam pencarian untuk mengembangkan

algoritma yang efisien, tidak satupun yang dapat mengembangkan algoritma dengan waktu polynomial untuk permasalahan kelompok kedua. Hal ini sangat penting karena algoritma yang waktu pencarian solusinya lebih besar dari

polynomial (biasanya waktu pencarian adalah eksponesial) membutuhkan waktu

yang cukup lama untuk manjalankan problem skala menengah.

Algoritma Non Polynomial (NP) dibagi menjadi dua kelas yaitu NP-hard dan NP-complete. Suatu problem yang termasuk kedalam NP-complete memiliki sifat dapat dipecahkan dalam waktu polynomial jika dan hanya jika seluruh

problem NP-complete juga dapat dipecahkan dalam waktu polynomial. Jika

sebuah problem NP-hard dapat dipecahkan dalam waktu polynomial maka seluruh

problem NP-complete dapat dipecahkan dalam waktu polynomial. Seluruh problem NP-complete merupakan problem NP-hard, tetapi sebagaian problem hard belum tentu menjadi problem NP complete. Hubungan antara P, NP, NP-complete dan NP-hard dapat dilihat dengan jelas dengan gambar berikut.

(11)

Gambar 2.1 Relasi antara P, NP, NP-complete dan NP-hard

2.5 Definisi Heuristic

Definisi heuristic yang didapat dari berbagai sumber diterangkan pada penjelasan berikut ini:

a. Sebuah algoritma heuristic adalah suatu aturan untuk mengetahui bagaimana memecahkanpermasalahan tertentu, tidak memberikan instruksi yang spesifik tetapi panduan umum untuk bermacam

pendekatan yang mungkin dapat bekerja.

(http://thesaurus.maths.org)

b. Istilah heuristic digunakan untuk algoritma dimana mencari solusi melalui semua kemungkin yang ada, tetapi dalam pencariannya tidak bisa dijamin ditemukan solusi yang terbaik, oleh karena itu heuristic dapat dianggap algoritma perkiraan. Algoritma ini biasanya mencari solusi yang dekat dengan solusi terbaik dan proses pencariannya cepat dan mudah. Terkadang algoritma ini dapat menjadi akurat dan menemukan solusi terbaik, tetapi algoritma ini tetap disebut

P

NP

NP- Hard NP-complete

(12)

heuristic hingga solusi terbaik itu terbukti untuk menjadi yang

terbaik. (http://students.ceid.upatras.gr/)

2.6 Bin Packing

Dalam problem ini diberikan obyek sebanyak n (element) yang harus ditempatkan pada bin (tempat penyimpanan) dengan kapasitas L. Obyek i membutuhkan unit li dari kapasitas bin. Tujuan bin packing adalah utnuk menentukan jumlah bin yang dibutuhkan di dalam suatu bin dan sebagaian lain di dalam bin lainnya.

Gambar 2.2 one-dimensional bin packing

2.6.1 One Dimensional Bin Packing

One dimensional binpacking termasuk kedalam permasalahan bin packing

yang selama ini dianggap merupakan area di mana riset operasional bertemu dengan puzzle (matematika rekreasional) dan termasuk ke dalam persamalahan

NP-hard. A element A B B E E C C D D Bin

(13)

Permasalahan optimalisasi bin packing termasuk kedalam kelompok di mana tidak ada algoritma baku untuk menyelesaikannya, karena setiap kasus permasalahannya biasanya memiliki batasan-batasan unik tertentu (constraint). Karena itu algoritma yang digunakan dalam one dimensional bin packing tergolong ke dalam algoritma heuristic.

Untuk mengetahui optimal atau tidaknya suatu algoritma dalam one

dimensional bin packing.

2.6.2 Deret Aritmatika

Deret aritmatika dalam bidang matematika adalah urutan bilangan di mana bilang berikutnya merupakan penambahan bilangan sebelumnya dengan suatu bilangan beda tertentu. Contohnya adalah 3,5,7,9,11,13,... Deret aritmatika ini dapat dinyatakan dengan rumus sebagai berikut:

Dalam hal ini suku ke – n:

Jumlah semua suku :

2.6.3 Algoritma First Fit

Algoritma First Fit merupakan algoritma yang sering dipakai pada alokasi memori. Dapat dilakukan pada pencatatan memori dengan bit map maupun senarai berkait. Manager memori menscan sampai menemukan lubang besar yang mencukupi penempatan proses. Lubang dibagi dua, untuk proses dan lubang tak digunakan, keculai ketika lubang tersebut tepat sama dengan ukuran yang

(14)

diperlukan proses. Keunggulan algoritma ini ialah menemukan lubang memori paling cepat dibandingkan dengan algoritma – algoritma lain.

Namun algrotima First Fit kita akan gunakan dalam optimasi peletakan pallet yang mana dalam perumusan matematikanya :

Rumus Deret : N = N1 + N2 + N3 + N4+ ... + Nn N = Jumlah keseluruhan Nn = suku n. Contoh : 2, 3, 4, 5 ,6 ,7 N = 2+3+4+5+6+7 N = 27.

Dalam peletakan pallet : N = Bin.

Nn = pallet yang digunakan. Contoh soal :

Terdapat pallet berukuran 1, 2, 5, 6, 2, 3, 5. Dan ukuran Bin yang digunaka ialah 10.

Jawab :

Bin1 = 10

Pallet in 1, bin1 – pallet = 10 – 1 Bin 1= 9

Pallet in 2, bin1 - pallet = 9 – 2 Bin1 = 7

Pallet in 5, bin1 – pallet =7 – 5 Bin1 = 2

(15)

Bin1 < 6 Bin2 = 10

Pallet in 6, bin2 – pallet = 10 – 6 Bin2 = 4

Pallet in 2, bin2 – pallet = 4 – 2 Bin2 = 2

Bin2 < 3 Bin3 = 10

Pallet in 3, bin3 – pallet = 10 – 3 Bin3 = 7

Pallet in 5, bin3 – pallet = 7 – 5 Bin3 = 2

Jadi dengan contoh di atas, dengan menggunakan algoritma First Fit kita menggunakan banyak Bin dan membuat banyak sisa Bin.

Algorithm First Fit

1: for All objects i = 1,2,...,n do 2: for all bins j = 1,2,...,n do 3: If object i fits in bin j then

4: pack object i in bin j.

5: Break the loop and pack the next object.

6: end if

7: end for

8: if Object i did not fit in any available bin then 9: create new bin and pack object i.

(16)

10: end if 11: end for

Gambar 2.3 Algoritma First-Fit Algorithm First Fit Decreasing

1: Sort objects in decreasing oder using Counting Sort. 2: Apply First Fit to the sorted list of objects.

Gambar 2.4 Algoritma First-Fit-Decreasing

2.6.4 Algoritma First Fit Decreasing

Algoritma First Fit Decreasing adalah algoritma yang mengutamakan elemen berukuran besar untuk lebih dulu ditempatkan di dalam bin. Berbeda dengan algoritma First Fit biasa yang menempatkan elemen kedalam bin tanpa prioritas tertentu (algoritma first fit adalah algoritma yang menempatkan elemen pertama yang ditemui kedalam bin), sehingga kadang terjadi banyak elemen berukuran besar tertinggal di belakang. Dalam First Fit Decreasing menggunakan deret

aritmatika dasar yaitu . Namun ada perubahan

dalam prosesnya itu sebelum masuk ke dalam rumus kita melakukan penyortiran prioritas dan pada saat proses terjadi penambahan logika First Fit Decreasing. Berikut adalah contoh cara kerja dari algoritma First Fit Decreasing.

Misalkan kita memiliki elemen dengan ukuran dan jumlah tertentu seperti di bawah ini :

a. Ukuran 5 meter sebanyak 2. b. Ukuran 4 meter sebanyak 3. c. Ukuran 3 meter sebanyak 2. d. Ukuran 1 meter sebanyak 3.

(17)

Dan bin berukuran 11 meter.

Maka berikut adalah langkah penempatan yang dilakukan oleh algoritma

First Fit Decreasing :

Langkah 1 : Bin 1 : 5, sisa = 6

5 adalah elemen terbesar yang masih cukup untuk ditempatkan di dalam bin yang ada.

Langkah 2 :

Bin 1 : 5, 5, sisa = 1

5 masih elemen terbesar yang masih cukup untuk ditempatkan di dalam bin yang ada.

Langkah 3 :

Bin 1 : 5, 5, 1, sisa = 0

Elemen berukuran 4 dan 3 tidak bisa ditempatkan di dalam bin karena ukurannya lebih besar daripada ukuran bin yang tersisa. Dan satu satunya elem yang masih bisa ditempatkan dalam bin adalah elemen ukuran 1.

Langkah 4 :

Bin 1 : 5, 5, 1, sisa = 0 Bin 2 : 4, sisa = 7

Diambil bin baru karena bin pertama sudah penuh dan tidak bisa diisi lagi, elemen berukuran 4 adalah elemen terbesar yang ada sekarang, sehingga elemen 4 ditempatkan di dalam bin.

Langkah 5 :

Bin 1 : 5, 5, 1, sisa = 0

(18)

Diambil bin berukuran 4 karena itu merupakan elemen terbesar yang bisa ditempatkan dalam bin.

Langkah 6 :

Bin 1 : 5, 5, 1, sisa = 0 Bin 2 : 4, 4, 3, sisa = 0

Diambil bin berukuran 3 karena itu merupakan elemen terbesar yang bisa ditempatkan dalam bin.

Langkah 7 :

Bin 1 : 5, 5, 5, sisa = 0 Bin 2 : 4, 4, 3, sisa = 0 Bin 3 : 4, sisa = 7

Diambil bin baru, bin 2 telah sepenuhnya terisi. Kemudian elemen berukuran 4 ditempatkan karena merupakan elemen terbesar yang bisa ditempatkan dalam bin.

Langkah 8 :

Bin 1 : 5, 5, 5, sisa = 0 Bin 2 : 4, 4, 3, sisa = 0 Bin 3 : 4, 3, sisa = 4

Diambil bin berukuran 3 karena itu merupakan elemen terbesar yang bisa ditempatkan dalam bin. (elemen yang tersisa hanya ukuran 1 dan 3)

Langkah 9 :

Bin 1 : 5, 5, 5, sisa = 0 Bin 2 : 4, 4, 3, sisa = 0 Bin 3 : 4, 3, 1, sisa = 3

Elemen dengan ukuran 1 ditempatkan ke dalam bin. Langkah 10 :

(19)

Bin 1 : 5, 5, 5, sisa = 0 Bin 2 : 4, 4, 3, sisa = 0 Bin 3 : 4, 3, 1, 1, sisa = 2

Elemen terakhir yang tersisa, berukuran 1 ditempatkan ke dalam bin dan dengan ini semua elemen telah ditempatkan ke dalam bin sehingga algoritma telah selesai dijalankan.

Dari hasil algoritma First Fit Decreasing didapat hasil seperti pada langkah 10 dengan menggunakan 3 buah bin dan waste (sisa) yang didapat adalah 2.

2.7 Bahasa Pemrograman C#

C# adalah sebuah bahasa pemrograman berbasis OOP(Object Oriented

Programming) yang merupakan pengembangan dari bahasa pemrograman C. C#

berada dalam lingkungan .NET(red: dot net) Framework yang sudah sejak lama digencar-gencarkan oleh Microsoft. Anders Hejlsberg adalah yang merancang bahasa pemrograman ini, atau biasa disebut Language Designer-nya.

C# adalah salah satu dari banyak bahasa yang bisa dipakai untuk pemrograman .NET. Kelebihan utama bahasa ini adalah sintaksnya yang mirip C, namun lebih mudah dan bersih. Beberapa keunggulan dari C# lainnya, yaitu :

1. Sederhana (Simple)

C# bersifat sederhana, karena bahasa ini didasarkan kepada bahasa C dan C++.

2. Object Oriented Language

C# memenuhi syarat-syarat sebagai sebuah bahasa pemrograman yang bersifat object oriented, yaitu encapsulation, inheritance, dan

(20)

3. Powerfull dan Flexible

C# dapat digunakan untuk membuat berbagai macam aplikasi, seperti aplikasi pengolah kata, grafik, spreadsheets, atau bahkan compiler untuk sebuah bahasa pemrograman.

4. Efisien

C# tidak memiliki terlalu banyak keyword, sehingga dapat mengurangi kerumitan.

5. Modular

Kode C# ini ditulis dengan pembagian masing-masing class yang tediri dari beberapa routines yang disebut sebagai member methods. Masing-masing class dan metode ini dapat digunakan kembali oleh program atau aplikasi lain. Hanya dengan memberikan informasi yang dibutuhkan oleh class dan metode yang dimaksud, maka kita dapat membuat suatu kode yang dapat digunakan oleh satu atau beberapa aplikasi dan program (reusable code).

Visual Studio versi 2010 ini di klaim oleh beberapa orang versi yang paling stabil. Visual Studio versi ini memiliki bahasa pemrograman yang ada didalamnya, seperti ASPX/WEB Developer, Visual Basic . NET, C#, Visual C++ dan F# yang terbaru dan masih banyak lagi fitur lainnya. Namun tidak mengikutsertakan Crystal Report.

2.8 Unified Modeling Language

Menurut Wikipedia, Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UML dikembangkan sebagai suatu alat untuk analisis dan

(21)

desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson.

Namun demikian, UML dapat digunakan untuk memahami dan

mendokumentasikan setiap sistem informasi.

Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sitem operasi, dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka UML lebih cocok untuk penulisan piranti lunak dalam bahasa berorientasi objek, seperti C++, C#, Java, atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi dalam VB atau C.

Menurut Bentley & Whitten (2010, p371), UML adalah satu set dari ketentuan modeling yang digunakan untuk menspesifikasi atau mendeskripsikan sebuah sistem perangkat lunak dalam suatu kondisi dari objek.

UML dibagi menjadi beberapa komponen : a. Class Diagram

Class diagram adalah penggambaran grafis mengenai struktur objek

statis dari sebuah sistem, menunjukkan kelas-kelas objek yang menyusun sebuah sistem dan juga hubungan antara kelas objek tersebut. Class diagram digunakan secara grafis untuk menggambarkan objek dan asosiasinya. (Bentley & Whitten, 2010, p400).

Class diagram digunakan untuk memberikan gambaran dari class yang

ada, hubungan antar class, dan menjelaskan kedudukan class tersebut berada dalam sub sistem yang mana. Class diagram memiliki atribut, operasi, dan juga berbagai macam tipe peran dan asosiasi.

(22)

sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metode/fungsi). Class diagram menggambarkan struktur dan deskripsi

class, package, dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain sebagainya.

Class memiliki tiga area pokok, yaitu nama, atribut, dan metoda.

Atribut dan metoda dapat memiliki salah satu sifat berikut :

1. Private, tidak dapat dipanggil dari luar class yang bersangkutan.

2. Protected, hanya dapat dipanggil oleh class yang bersangkutan

dan anak-anak yang mewarisinya. 3. Public, dapat dipanggil oleh siapa saja.

Hubungan antar class, yaitu :

a. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui ekstensi class lain, atau class yang harus mengetahui eksistensi class yang lain. Panah

navigability menunjukkan arah query antar class.

b. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).

c. Pewarisan, yaitu hubungan hierarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metode

class asalnya dan menambahkan fungsionalitas baru, sehingga ia

disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.

d. Hubungan dinamis yaitu rangkaian pesan yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat

(23)

digambarkan dengan menggunakan sequence diagram.

b. Use Case Diagram

Use case diagram menggambarkan interaksi antara sistem, sistem

eksternal dan pengguna. Use case diagram menggambarkan secara grafis siapa yang menggunakan sistem dan dengan cara seperti apa yang diharapkan pengguna untuk berinteraksi dengan sistem. (Bentley & Whitten, 2010, p246-250)

Use case diagram berisi actor dan use case, yang memberikan

gambaran mengenai hubungan yang terjadi antara dua hal tersebut. Use

case diagram adalah titik permulaan dalam tahap analisa pada saat

merancang sistem. Diagram ini dibuat oleh Ivan Jacobson.

Tujuan dari use case diagram adalah memberikan gambaran keseluruhan dari struktur sistem dan fitur yang ada kepada pihak non teknis, seperti bagian manajemen dan pengguna. Diagram ini juga dapat digunakan untuk menggambarkan urutan kejadian dalam sistem, apabila tidak ada kesalahan.

Use case merupakan sebuah pekerjaan tertentu, misalnya login ke

sistem, membuat daftar belanja, dan sebagainya. Seorang/sebuah actor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu.

c. Sequence Diagram

Sequence diagram menggambarkan secara grafis bagaimana objek

(24)

operasi. Diagram ini menggambarkan langkah-langkah pesan dikirim dan diterima antara objek. (Bentley & Whitten, 2010, p394)

Sequence diagram digunakan untuk menggambarkan interaksi antara actor dengan objek dan objek dengan objek lain. Pesan disampaikan

dari actor kepada objek, objek ke objek, dan dari objek ke actor untuk menunjukkan aliran control dalam sistem. Diagram ini juga dapat digunakan untuk menggambarkan semua aliran yang mungkin terjadi dalam interaksi sistem, atau menggambarkan sebuah aliran saja.

Sequence diagram menggambarkan interaksi antar objek di dalam dan

di sekitar sistem, termasuk pengguna, display, dan sebagainya dalam berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri antar dimensi vertical (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 kejadian 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 actor, memiliki lifeline vertical. 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 untk objek boundary, controller, dan persistent entity.

(25)

d. Activity Diagram

Activity diagram menggambarkan secara grafis alur yang berurutan dari

aktifitas use case atau proses bisnis, atau logika dari metode objek. Diagram ini juga dapat digunakan untuk memodelkan logika dengan suatu sistem. (Bentley & Whitten, 2010, p390)

Activity diagram digunakan untuk melakukan analisa terhadap perilaku

yang ada dalam suatu use case yang kompleks dan memberikan gambaran interaksi antar use case tersebut.

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem

yang sedang dirancang, bagaimana masing-masing alir berawal,

decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses parallel yang

mungkin terjadi pada beberapa eksekusi.

Activity diagram merupakan state diagram khusus, dimana 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 sub sistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.

Dalam standar UML menggunakan segiempat dengan sudut membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Dan untuk mengilustrasikan proses-proses parallel (fork dan join) digunakan titik

(26)

sinkronisasi yang dapat berupa titik, garis horizontal atau vertical.

Activity diagram dapat dibagi menjadi beberapa object swimlane untuk

menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu.(Bentley, L. D., & Whitten, J. L. (2010). Systems Analysis & Design For The Global Enterprise 7 th Edition. New York : McGraw-Hill Companies Inc.)

Landasan-landasan teori yang saya jelas di atas merupakan teori-teori yang akan digunakan pada perancangan program aplikasi optimasi peletakan pallet pada kotak kontainer dengan metode first fit decreasing. Setelah jelas dengan landasan-landasan teori yang ada di atas, selanjutnya kita lihat bab 3 yang menjelaskan analisis dan perancangan program yang akan dibuat.

Gambar

Tabel 2.1 Fungsi kompleksitas suatu masalah dalam urutan ascending.
Gambar 2.1 Relasi antara P, NP, NP-complete dan NP-hard
Gambar 2.2 one-dimensional bin packing

Referensi

Dokumen terkait

dan mudah berkembang sehingga dapat diadopsi dan menyesuaikan diri dengan hukum formal negara karena hukum formal negara sebenarnya berasal dari hukum adat hanya

Pengaruh Capital Adequacy Ratio (CAR) terhadap Return On Assets (ROA) CAR adalah rasio permodalan yang digunakan untuk mengukur kinerja bank dalam menyediakan dana untuk

Penciptaan karya seni fotografi dokumenter yang berjudul “Pekerja Wanita Pengelola Tembakau Jember Dalam Fotografi Dokumenter” dapat memberikan informasi khusunya penikmat

Manjemen berbasis sekolah (MBS), sebagai paradigma baru dalam pengoperasionalan sekolah. 2 Yang semula sekolah hanya merupakan perpanjangan tangan birokrasi pemerintah

Berdasarkan hasil perhitungan korelasi maka diketahui bahwa pengaruh hutang terhadap laba usaha sebesar 0,2 yang artinya tingkat hubungan rendah, sehingga dapat dikatakan

(1) hipotesis nol (H 0 ) yang menyatakan tidak terdapat perbedaan kemampuan aplikasi konsep biologi dan pemahaman NoS yang signifikan antara siswa yang

Berdasarkan permasalahan diatas, penelitian ini bertujuan untuk merekomendasikan sistem aplikasi pembayaran tagihan listrik berbasis web dengan harapan mampu