BAB 2 LANDASAN TEORI 2.1. S ofa Sofa adalah kursi yang berlapis busa dengan penutup yang biasa disebut upholstery. Sofa berasal dari kata SOPHA yang berarti tempat tidur, atau tempat duduk dengan sandaran. Istilah sofa pertama kali digunakan pada tahun 1680. Pada umumnya, sofa dapat dibagi menjadi dua jenis, yaitu sofa formal dan nonformal. Sofa formal biasa dijumpai pada ruang-ruang rapat, ruang tunggu pada lobi hotel, atau di kantor pribadi pejabat. Sofa ini biasanya cenderung berwarna gelap dengan body yang penuh, selain itu sofa ini biasanya bergaya minimalis, atau army charm look. Sedangkan sofa nonformal bergaya lebih ringan dan dapat di tempatkan di mana saja, sesuai dengan selera pemilik rumah (Ahira,2010). Komponen Sofa yaitu: 1. Rangka atau Frame Rangka merupakan unsur pembentuk sofa. Dengan adanya rangka, sofa dapat dibuat sesuai dengan yang kita inginkan. Ada 2 jenis bahan pembentuk rangka yaitu • Rangka kayu Rangka kayu adalah rangka yang paling umum digunakan dalam pembuatan sofa. 10 • Rangka Besi Rangka besi digunakan untuk menambah kesan minimalis, dan modern pada sofa. 2. Pegas Pegas berfungsi sebagai penahan beban dari berat tubuh pengguna. Pegas berada pada bagian dudukan dan sandaran, dan menyatu dengan rangka. Pegas yang biasa di gunakan dalam pembuatan sofa ada 2 jenis, yaitu • Per Per merupakan sistem pegas yang terbuat dari pegas logam. • Webbing Webbing merupakan sistem pegas yang terbuat dari karet. 3. Dudukan Dudukan merupakan bagian terpenting dalam unsur penyusun sofa. Dudukan terdiri dari foam atau busa yang disusun sedemikian rupa sehingga sofa nyaman untuk di duduki. Terkadang dudukan juga terdiri dari per-per yang disusun untuk mengurangi penggunaan busa, sehingga dapat menekan biaya yang dikeluarkan. 4. Sandaran Sandaran pada sofa dapat terbuat dari foam, dakron, atau bulu angsa. Sandaran yang terbuat dari foam akan memberikan kesan rapi pada sofa, karena foam akan mengikuti rangka sofa. Sedangkan sofa dengan sandaran 11 berbentuk bantalan, biasanya menggunakan dakron atau bulu angsa. Tetapi dengan menggunakan bulu angsa, sofa akan berharga lebih mahal, dibandingkan dengan penggunaan dakron, maupun foam. 5. Upholstery Upholstery adalah kunci dari keindahan sebuah sofa, karena upholstery merupakan kulit dari sebuah sofa. Bahan upholstery sangat beragam, baik produk lokal maupun impor. 2.2. Upholstery M enurut Aini (2009) upholstery adalah kain yang digunakan untuk keperluan interior, seperti kain yang di gunakan untuk sofa, tempat tidur, kursi, gorden, sarung bantal, wallpaper, dan sebagainya. Kain upholstery memiliki karakteristik dan jenis yang berbeda-beda tergantung pada kegunaannya. Upholstery yang digunakan pada sofa, tidak sama dengan yang digunakan pada gorden, atau wallpaper. Upholstery yang digunakan pada sofa harus kuat untuk menahan beban berat, selain itu jahitannya juga harus rapat. Beberapa jenis Upholstery yang biasa digunakan untuk pembuatan sofa yaitu 1. Chenille Kain chenille merupakan kain yang agak tebal, dan memiliki tekstur yang halus ataupun kasar. 12 2. Linen Kain Linen merupakan kain yang tebal dengan tekstur yang kasar, mirip dengan kain karung. Kain Linen sangat cocok digunakan sebagai pelapis sofa. 3. Silk Kain silk merupakan kain yang paling tipis dibandingkan dengan kain lain. Karakter kain ini halus dan cenderung mengkilap. Kain ini dapat menghasilkan kesan mewah pada sofa. 4. Cotton Kain cotton memiliki bahan yang agak tipis, dan memiliki tekstur yang lembut. 5. Jute Kain jute memiliki bahan yang agak panas. Kain ini hampir mirip dengan kain linen, tetapi lebih kasar. 6. Velvet Kain velvet memiliki bahan yang hampir sama dengan kain suede, tetapi lebih tebal, dan memiliki corak yang beraneka ragam. 7. Kulit sintetis Kulit sintetis merupakan kulit buatan yang memiliki tekstur yang mirip dengan kulit asli. Kulit sintetis merupakan bahan yang paling banyak 13 digunakan dalam pembuatan sofa, karena memiliki warna yang beraneka ragam, dan harganya pun relatif murah. 8. Suede Kain Suede merupakan kain yang memiliki bulu-bulu tipis. Kain ini pada umumnya polos, tetapi ada juga yang memiliki motif. Tabel 2.1 Jenis Upholstery No. Jenis Upholstery 1. Chennile 2. Linen Gambar 14 No. Jenis Upholstery 3. Silk 4. Cotton 5. Jute Gambar 15 2.3. No. Jenis Upholstery 6. Velvet 7. Kulit Sintetis 8. Suede Gambar Algoritma Genetika M enurut F.Herrera dan M .Lozano (2000), Algoritma Genetika adalah metode adaptif yang biasa digunakan untuk pencarian nilai dalam sebuah masalah optimasi. Algoritma Genetika menggunakan analogi dari kebiasaan 16 alami yaitu seleksi alam. Di alam, individu-individu yang memiliki sifat- sifat kelangsungan hidup yang lebih baik akan bertahan untuk jangka waktu yang lama. Sedangkan individu-individu yang memiliki sifat yang lemah tidak akan bertahan. Dengan kata lain, yang kuat akan bertahan, yang lemah akan keluar. Inilah yang dimaksud dengan Seleksi Alam. Algoritma ini merupakan populasi dari individu-individu yang masing- masing individu merepresentasikan sebuah solusi yang mungkin dari persoalan yang ada. Individu dilambangkan sebagai nilai fitness yang akan digunakan untuk mencari solusi yang terbaik dari persoalan yang ada. Algoritma Genetika dikembangkan untuk simulasi beberapa proses yang diamati dalam evolusi alami, yaitu sebuah proses yang beroperasi pada kromosom. Sebelum Algoritma Genetika dapat dijalankan, representatif untuk persoalan harus dirancang terlebih dahulu. Untuk itu, maka titik solusi dalam permasalahan harus dikodekan dalam bentuk kromosom yang terdiri dari komponen genetik terkecil, yaitu gen. Di dalam penerapan algoritma genetika, terdapat beberapa operator yang terlibat, yaitu: • Operasi Evolusi yang melibatkan proses seleksi di dalamnya • Operasi Genetika yang melibatkan operator pindah silang dan mutasi. 17 Gambar 2.1 Operasi Dasar Algoritma Genetika (Sumber: www.civil.iitb.ac.in) Karakteristik terpenting dari algoritma genetika adalah pengkodean variabel yang menggambarkan masalah yang akan diteliti. M etode yang paling umum digunakan adalah dengan cara mengubah variable menjadi string biner (Representasi Biner). Representasi Biner banyak digunakan karena dapat mempermudah proses pemrograman di dalam proses algoritma Genetik seperti mutasi dan cross-over Pada Representasi Biner, setiap gen hanya dapat bernilai 0 atau 1. Bilangan Biner dapat digunakan untuk merepresentasikan “ya” atau “tidak”. Bilangan Biner juga biasa digunakan untuk mengkodekan bilangan Bulat dan 18 Real. M isalkan bilangan bulat 14d dapat direpresentasikan ke dalam 4 bit sebagai 1110b. Pada kasus pengoptimalisasian pola sofa, tidak semua bilangan merupakan bilangan bulat. Banyak kasus yang menggunakan bilangan floating, atau bilangan pecahan. Untuk mengubah bilangan pecahan ke dalam bilangan biner, perubahan basis dilakukan dengan mengalikan fraksi pecahan dengan basisnya. Hasil perkalian tersebut kemudian diambil fraksi bulatnya. Sebagai Contoh, bilangan 0.625 akan diubah menjadi basis 2 0.625 x 2 = 1.25 0.25 x 2 = 0.5 0.5 x 2 = 1.0 Sehingga bilangan 0.625 bila direpersentasikan menjadi bilangan biner berbasis 2 adalah Sedangkan dalam merepresentasikan bilangan biner menjadi bilangan real akan digunakan rumus: 19 Gambar 2.2 Floating Biner (Sumber: rhee2n.blogspot.com) Contoh: merepresentasikan bilangan Seperti yang telah dijelaskan di atas, bahwa bilangan biner dapat mempermudah proses pemrograman di dalam proses Algoritma Genetika. Sebelum diproses dalam Algoritma Genetika, solusi yang dibangkitkan baik dalam bentuk integer atau float harus diubah dulu ke dalam bentuk biner. Begitu juga sebaliknya, setelah Algoritma Genetika selesai maka nilai kromosom yang berbentuk biner, harus dikembalikan lagi ke dalam bentuk integer atau float. Langkah- langkah dalam Algoritma Genetika: 20 a. M endefinisikan Individu Individu merupakan salah satu dari solusi dari permasalahan yang ada. Beberapa definisi yang perlu diperhatikan dalam mendefinisikan individu untuk membangun penyelesaian permasalahan dengan Algoritma Genetika yaitu: ¾ Genotype (Gen) Dalam Algoritma Genetika, gen dapat berupa nilai biner, float, integer, maupun karakter, atau kombinatorial. Nilai dari gen disebut Allele ¾ Kromosom Yaitu gabungan dari gen-gen yang membentuk nilai tertentu. ¾ Individu M enyatakan satu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat. ¾ Populasi M erupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi. ¾ Generasi M enyatakan satu siklus proses evolusi atau iterasi di dalam algoritma genetika 21 b. M endefinisikan nilai Fitness Nilai fitness merupakan nilai yang menyatakan baik atau tidaknya suatu solusi (individu) c. M enentukan proses pembangkitan seleksi awal. Pembangkitkan seleksi awal adalah proses membangkitkan beberapa individu secara acak, dan melalui prosedur tertentu. Teknik dalam pembangkitan seleksi awal yang dipakai untuk mengoptimalisasikan penggunaan upholstery dalam pola sebuah sofa, yang paling sesuai adalah penggunaan teknik Random Generator. Inti dari cara ini adalah melibatkan pembangkitan bilangan random untuk nilai setiap gen sesuai dengan nilai setiap kromosom yang digunakan. Jumlah kromosom yang dianjurkan harus lebih besar dari jumlah gen yang ada dalam satu kromosom, tetapi juga harus disesuaikan dengan permasalahan. d. M enentukan proses seleksi yang akan digunakan. Proses seleksi dilakukan untuk memilih individu-individu terbaik, yang akan dipilih untuk proses mutasi gen, atau cross-over. Semakin tinggi nilai fitness individu tersebut, maka kemungkinannya untuk terpilih akan semakin besar. Dalam pengoptimalisasian penggunaan upholstery pada pola sebuah sofa, proses seleksi yang akan digunakan adalah roulette wheel. Cara kerja roulette wheel yaitu: 22 ¾ Hitung nilai fitness dari masing-masing individu.( , di mana i adalah individu ke 1 sampai dengan ke n) ¾ Hitung total nilai fitness semua individu. ¾ Hitung probabilitas masing- masing individu. ¾ Dari probabilitas tersebut, hitung jatah masing-masing individu pada angka 1 sampai 100. ¾ Bangkitkan nilai random antara 1 sampai 100 ¾ Dari bilangan random yang dihasilkan, tentukan individu mana yang terpilih dalam proses seleksi. Gambar 2.3 Roullete Wheel (Sumber: www.civil.iitb.ac.in) 23 e. M enentukan proses mutasi gen dan kawin silang (crossover) yang akan digunakan. ¾ Crossover. Crossover adalah operator dari Algoritma Genetika yang melibatkan dua induk untuk membentuk kromosom baru. Crossover merupakan faktor utama perbedaan antara Algoritma Genetika, dengan algoritma optimisasi lainnya. Operator crossover bergantung pada representasi kromosom yang dilakukan. Crossover dapat dibagi berdasarkan jumlah posisi yang dipilih, yaitu single point crossover dan multi point crossover. o Single-point crossover Prinsip kerja dari single-point crossover adalah memunculkan satu angka random yang bernilai antara satu sampai dengan jumlah gen yang ada dalam kromosom dan nilai random tidak boleh sama dengan satu atau sama dengan jumlah gen. Gambar 2.4 Single-point Crossover (Sumber:www.emeraldinsight.com) 24 o Multi-point crossover Prinsip kerja multi-point crossover hampir sama seperti singlepoint crossover, hanya saja pada multi-point crossover, angka random yang dimunculkan lebih dari satu. Gambar 2.5 Multi-point Crossover (Sumber: www.stumptown.com) ¾ M utasi M utasi adalah penambahan, pengurangan, dan perubahan sebagian kromosom yang diharapkan akan memberikan nilai fitness yang lebih baik. Prinsip kerja dari mutasi adalah memunculkan dua nilai random dari jumlah gen yang ada dalam kromosom tetapi kedua nilai tersebut tidak boleh sama. Setelah kedua nilai random ini dimunculkan, maka dua gen yang berada pada posisi kedua nilai random tersebut akan saling bertukar tempat. M utasi hanya dilakukan jika peluang mutasi 25 terlalu besar, sehingga mengalami banyak gangguan acak, sifat anak kehilangan kemiripan dari induknya, dan algoritma kehilangan kemampuan untuk belajar dari histori pencarian. Jika peluang mutasi terlalu kecil, banyak gen yang mungkin berguna tidak akan pernah dievaluasi. Gambar 2.6 M utasi (Sumber: Yossitompul.blogspot.com) 2.4. Relevansi Algoritma Genetika Dalam Optimalisasi Penyusunan Pola Sofa Untuk mengoptimalisasi penggunaan upholstery pada sofa dapat menggunakan Algoritma Genetika. Algoritma Genetika digunakan untuk mencari susunan pola sofa yang paling optimal jika diketahui terdapat bermacam-macam ukuran dan bentuk pola yang akan dimasukkan ke dalam sebuah bidang dua dimensi yaitu upholstery. 26 Parameter optimal atau tidak dapat dilihat dari sisa ruang kosong pada bidang upholstery yang masih ada. Semakin sedikit ruang kosong yang ada dengan susunan pola tertentu akan menjadi solusi terbaik bagi masalah optimasi penyusunan pola sofa. 2.5. Transformasi Dua Dimensi Transformasi pada dua dimensi pada dasarnya dapat merupakan transformasi komposit dari transformasi- transformasi dasar. Transformasi – transformasi dasar tersebut adalah 2.5.1. Translasi (pergeseran) Secara M atematis, suatu translasi dengan arah akan memindahkan titik ke pada suatu titik di dengan hubungan: Gambar 2.7 Translasi 27 2.5.2. Rotasi (perputaran) Rotasi suatu titik titik di sebesar sudut pada titik origin akan menempatkan dengan hubungan: Gambar 2.8 Rotasi 2.5.3. Skala Skala hubungan: suatu titik akan menempatkan titik di dengan 28 Gambar 2.9 Skala 2.5.4. Refleksi (pencerminan) Suatu titik terhadap sumbu x akan menempatkan titik di dengan hubungan: Gambar 2.10 Refleksi 29 Dalam sistem koordinat, setiap transformasi di atas dapat direpresentasikan ke dalam bentuk matriks transformasi 3x3. Operasi transformasi suatu titik adalah perkalian matriks antara matriks transformasi dengan matriks kolom dari titik yang bersangkutan. M atriks Translasi M atriks Rotasi adalah adalah adalah M atriks Skala M atriks Refleksi Terhadap sumbu x: M atriks Refleksi Terhadap sumbu y: 30 2.6. Model Rekayasa Piranti Lunak M enurut Nirwana (2011) M odel rekayasa piranti lunak yang digunakan oleh penulis adalah model waterfall. M odel ini melibatkan Software Quantity Assurance (SQA) dengan 5 tahapan, di mana setiap tahapan selalu dilakukan verifikasi atau testing. Tahapan model waterfall meliputi: 1. Requirement Tahap requirement atau spesifikasi kebutuhan sistem adalah analisis kebutuhan sistem yang dibuat dalam bentuk yang dapat dimengerti oleh klien dan staf pengembang. Dalam tahap ini, klien atau pengguna menjelaskan segala kendala dan tujuan serta mendefinisikan apa yang diinginkan oleh sistem. 2. Desain Pada tahap desain, pengembang akan menghasilkan sebuah arsitektur sistem secara keseluruhan.Tahap ini meliputi perancangan struktur data, perancangan arsitektur piranti lunak, perancangan rincian prosedur, dan perancangan user interface. 31 3. Implementasi Tahap implementasi yaitu tahapan di mana keseluruhan desain diubah menjadi kode-kode program. Kode program yang dihasilkan masih berupa modul-modul yang selanjutnya akan diintegrasikan menjadi sistem yang lengkap untuk meyakinkan bahwa persyaratan piranti lunak telah terpenuhi. 4. Verifikasi Pada tahap ini, klien akan menguji apakah sistem tersebut telah sesuai dengan kontrak yang telah disetujui. 5. Maintanance Tahap maintenance yaitu tahap pemeliharaan yang termasuk di antaranya instalasi dan proses perbaikan sistem Gambar 2.11 M etode Waterfall (Sumber: www.waterfall-model.com) 32 Keunggulan dari metode waterfall adalah pencerminan kepraktisan rekayasa, yang membuat kualitas software tetap terjaga karena pengembangannya yang terstruktur dan terawasi. Sedangkan kelemahan model waterfall yang utama adalah lambatnya proses pengembangan perangkat lunak. Dikarenakan prosesnya yang satu persatu dan tidak bisa diloncat-loncat menjadikan model klasik ini sangat memakan waktu dalam pengembangannya. 2.7. Delapan Aturan Emas M enurut Sheneiderman, 1998, p74 – 75, Delapan Aturan Emas dapat diuraikan sebagai berikut: 1. Berusaha Untuk Konsisten Rangkaian aksi yang konsisten di butuhkan dalam situasi- situasi yang mirip, terminologi yang identik harus digunakan pada prompts, tampilan menu, layar pertolongan dan perintah yang harus digunakan keseluruhan. 2. M emungkinkan Frequent users menggunakan shortcut Pengguna juga menginginkan pengurangan jumlah interaksi dan meningkatkan kecepatan interaksi guna menjalankan fungsi-fungsi tertentu agar lebih cepat. 3. M emberikan umpan balik yang informatif Umpan balik yang informatif memudahkan user untuk mengerti cara penggunaannya. Untuk aksi yang kecil, balasan harus sederhana, sedangkan untuk aksi yang jarang dan besar, balasan harus lebih lengkap. 33 4. M erancang dialog yang memberikan keadaan awal, tengah, dan akhir. Informasi balasan pada penyelesaian dari kumpulan aksi memberikan kepuasan pada operator dari penyelesaian, perasaan lega dan sebuah indikasi bahwa sudah selesai dan dipersiapkan untuk kumpulan aksi berikutnya. 5. M emberikan pencegahan kesalahan dan penegasan kesalahan yang sederhana Apabila terjadi kesalahan, sistem harus dapat mendeteksi kesalahan tersebut dan menawarkan mekanisme untuk mengatasi kesalahan tersebut. 6. M emungkinkan pembalikan aksi (undo) yang mudah. Dengan cara ini dapat menghilangkan kegelisahan, karena pengguna mengetahui bahwa kesalahan dapat dihindari, sehingga dapat meningkatkan keinginan untuk menelusuri pilihan – pilihan yang asing. 7. M endukung pusat kendali internal. Keadaan yang menjelaskan bahwa mereka sedang berada dalam sistem dan sistem tersebut merespon aksinya. Desain sistem yang membuat pengguna sebagai pengontrol aksi daripada perespon. 8. M engurangi beban ingatan jangka pendek. Keterbatasan manusia dalam memproses ingatan jangka pendek membutuhkan tampilan tetap sederhana, semakin banyak button yang mengarah ke halaman tertentu, semakin banyak pula beban ingatan user.