BAB II TEORI DASAR
2.1 Sistem Produksi Dalam menghadapi persaingan yang semakin ketat, banyak faktor-faktor yang perlu diperhatikan agar perusahaan dapat terus bertahan bahkan semakin berkembang. Hal yang penting di dalam sistem produksi ialah mengenai faktor waktu yang juga merupakan faktor penentu keberhasilan yang mencakup delivery time dan time to market [1]. Delivery time adalah selang waktu antara penerimaan order dan penyerahan produk pada konsumen atau lead time, sedangkan time to market maksudnya adalah selang waktu yang dibutuhkan sejak desain hingga produk siap dipasarkan. Tekanan untuk mengintegrasikan bermacam-macam aspek perencanaan manufaktur muncul dari meningkatnya kebutuhan untuk mengurani lead time produk, terutama dalam lingkungan industri yang memiliki variasi produk yang tinggi dengan jumlah batch yang kecil. Kriteria yang dahulu digunakan yaitu optimasi waktu produksi dan pemaksimalan penggunaan peralatan produksi ternyata sudah tidak dapat diterapkan lagi saat ini. Metoda yang jelas dapat mengurangi waktu pengembangan dan waktu manufaktur dari suatu produk yaitu dengan mnggunakan teknik komputerisasi untuk mengotomasi aktifitas-aktifitas perencanaan manufaktur. Metoda ini sering dideskripsikan sebagai pendekatan Computer Aided Engineering (CAE). Kemudian ide ini diperluas lagi menjadi konsep Computer Integrated Manufacturing (CIM) yang memasukkan metoda penanganan aspek perencanaan operasi. CIM memungkinkan pengintegrasian secara total aktivitas industri mulai dari pemasaran dan aktivitas research & development sampai ke bagian ujung proses pembuatan dan pengiriman produk. Saat ini untuk mencapai tujuan CIM dengan mengurangi lead time produk dapat dilakukan dengan menerapkan konsep Concurrent Engineering dimana aktifitas dalam perencanaan dan manufaktur
7
dilaksanakan hampir secara keseluruhan paralel. Konsep ini membuat semua proses dipusatkan pada produk. Pada sekitar dekade 1980-an mulai dilakukan pengembangan dimana sistem CAD diharapkan dapat menyimpan semua informasi mengenai produk. Namun informasi yang mampu disimpan ternyata hanya berupa informasi mengenai geometri dan topologi produk tetapi tidak dapat menyimpan informasi mengenai hubungan antar entiti-entiti dalam produk tersebut. Selain itu, informasi tersebut harus diproses ulang untuk proses manufaktur karena data yang diperoleh dari CAD tidak dapat dibaca/diterima oleh sistem CAM. Hal ini menyebabkan banyak waktu yang terbuang sis-sia karena proses pengolahan data dari sistem CAD diulang lagi pada sistem CAM. Solusi untuk menyelesaikan persoalan di atas adalah dengan melakukan pengintegrasian CAD dan CAM dengan menggunakan features, yaitu elemen yang secara semantik memiliki level yang lebih tinggi daripada elemen geometri yang digunakan dalam CAD dan CAM. Oleh karena itu pada penelitian ini dipergunakan konsep pemodelan berbasis feature. 2.2 Sistem Produksi Terdistribusi Mandiri Seiring perkembangan teknologi setiap perusahaan dituntut untuk dapat membenahi diri agar dapat bersaing di dalam pasar global. Oleh karena itu, perusahaan memerlukan suatu sistem yang maju dan fleksibel yang dapat mengantisipasi perubahan-perubahan yang tidak dapat diramalkan sebelumnya. Sistem produksi maju memiliki ciri utama yaitu pengintegrasian yang erat antara sistem informasi dan pengendalian proses produksi [9]. Karakteristik yang harus dipenuhi oleh Sistem Produksi Maju dan fleksibel ini adalah: 1. Sistem harus dapat mengantisispasi dengan cepat terhadap perubahan pasar, perubahan produk dan perbaikan desain produk. 2. Sistem harus dapat memberikan respon terhadap adanya gangguan seperti kerusakan perlatan produksi, interupsi oleh pekerjaan berprioritas tinggi dan keterlambatan proses produksi.
8
3. Agar dapat memberikan respon seketika itu juga terhadap adanya ganguan. Sistem harus merupakan integrasi keseluruhan subsistem yang ada. 4. Perluasan sistem (penambahan dan peningkatan fungsi sistem) harus dapat dilakukan dan dikelola dengan mudah. 5. Perangkat lunak harus dapat dengan mudah, yaitu dalam pengembangan lanjutan, integrasi, serta setiap bagian dapat digunakan kembali dengan mudah. Salah satu sistem produksi yang dikembangkan untuk memenuhi kriteria tersebut adalah Sistem Produksi Terdistribusi Mandiri (SPTM). SPTM merupakan suatu sistem produksi dimana elemen-elemen produksinya merupakan elemen yang bersifat mandiri. Perencanaan dan pengendalian produksinya dilakukan secara terdistribusi oleh masing-masing elemen produksi mandiri. SPTM ini mampu menghindari terjadinya konflik di antara elemen produksi mandirinya karena terdapat kooordinasi antar elemen produksi mandiri tersebut [9]. 2.2.1 Konsep Sistem Produksi Terdistribusi Mandiri Konsep SPTM dikembangkan berdasarkan peniruan terhadap tingkah laku makhluk hidup yang cenderung selalu bersifat dinamis dan memiliki kemampuan adaptasi yang cepat terhadap perubahan di lingkungannya [9]. Penerapannya dalam sistem manufaktur memiliki tujuan agar sistem manufaktur dapat memenuhi tuntutan, antara lain: a) Fleksibel (mampu beradaptasi terhadap perubahan) b) Stabil terhadap gangguan c) Efisien dalam penggunaan sumber yang ada d) Respon cepat terhadap perubahan yang terjadi (agile) Konsep dasar SPTM dapat dinyatakan [9]: 1. Pemberian otonomi pada elemen produksi Setiap elemen produksi diberi otonomi untuk melakukan fungsi: a) Monitoring: untuk mengetahui status dirinya.
9
b) Pengambilan keputusan: untuk menentukan proses produksi yang
paling sesuai dilakukan berdasarkan kriteria yang
dimiliki status dirinya. c) Pengendalian: untuk mengendalikan dirinya dalam melakukan operasi produksi. d) Komunikasi: untuk meminta atau memberikan informasi kepada elemen produksi lainnya tentang status dan hasil pengambilan keputusan. 2. Pendistribusian tugas pada elemen produksi Penyelesaian masalah yang dihadapi oleh sistem produksi dilakukan secara terdistribusi oleh elemen-elemen produksi yang masingmasing mempunyai otonom seperti yang dijelaskan dalam butir (1). Oleh karena SPTM merupakan sistem yang terdistribusi, maka tidak terdapat pusat pengendali yang secara langsung mengendalikan aktivitas elemen produksi. Masing-masing elemen produksi akan mendukung penyelesaian masalah produksi yang ada sesuai dengan kemampuannya. Arsitektur pengambilan keputusan pada Sistem Produksi Terdistribusi Mandiri dapat dilihat pada gambar 2.1 berikut ini:
Gambar 2.1 Contoh Arsitektur Pengambilan Keputusan pada SPTM [9]
3. Pengkoordinasian hasil pengambilan keputusan
10
Setiap elemen produksi dapat melakukan pengambilan keputusan secara mandiri. Untuk menghindari adanya konflik dan menciptakan hubungan yang harmonis di antara elemen produksi, dibutuhkan mekanisme
negosiasi
untuk
pengkoordinasian
hasil
pengambilan
keputusan oleh masing-masing elemen produksi. Pada gambar 2.2 di bawah ini terlihat bahwa diperlukan pengkoordinasian hasil pengambilan keputusan yang telah dilakukan oleh setiap elemen produksi.
Gambar 2.2 Pengkoordinasian Pengambilan Keputusan SPTM [9]
2.2.2 Pemodelan Sistem Produksi Terdistribusi Mandiri Pada sistem produksi yang mempunyai peralatan produksi dengan tingkat otomasi tinggi, setiap peralatan produksi yang ada dilengkapi dengan pengendali (komputer) yang dapat melakukan perhitungan dan pengambilan keputusan yang diperlukan bagi pengendalian produksi itu sendiri. Agar konsep SPTM dapat dijalankan, maka diperlukan pemodelan objek riil elemen produksi menjadi objek virtual dikomputer. Objek virtual tersebut dapat diberi sifat-sifat yang sesuai dengan elemen produksi nyata sehingga aktivitas produksi dapat berjalan seperti yang diharapkan sesuai dengan konsep SPTM. Model yang diinginkan oleh konsep SPTM adalah model yang memiliki kedekatan sifat dengan objek riil sesuai dengan fungsi yang dikembangkan [7]. Metode pemodelan yang sesuai dengan model yang diinginkan tersebut adalah
11
metode pemodelan berorientasi objek. Pemodelan Sistem Produksi Terdistribusi Mandiri dapat dilihat pada gambar 2.3 berikut:
Gambar 2.3 Pemodelan SPTM [7]
2.3 Konsep Feature [10] Pengertian mengenai feature didefinisikan sebagai berikut [1]: “ A feature is a collection of high-level information defining a set of characteristics or concepts with a semantic meaning to a particular view in the life-cycle of a building” [ Van Leeuwan et al. 1997] “ Recurring patterns of information related to a part description.” [Shah, 1990] “ A semantic grouping used to describe a part and its asembly. It groups in a
relevant
manner funtional,
design
and manufacturing
information.”
[Giacommati, 1990] Pada awalnya, ketika konsep feature mulai dikembangkan, feature didefinisikan sebagai bentuk bergeometri tertentu yang harus dibuang atau ditambah dalam proses permesinan. Dalam perkembangannya, feature adalah informasi mengenai karakteristik suatu bagian dari suatu produk yang dibutuhkan untuk melakukan proses permesinan, pencekaman, dan pengukuran berdasarkan geometrinya [1].
12
Dalam penelitian ini, feature didefinisikan sebagai unit bentuk yang telah mempunyai geometri baku yang berprimitif balok. Dengan menggunakan konsep dan definisi feature, produk dapat didefinisikan sebagai benda dengan bentuk tertentu sebagai hasil penggabungan beberapa feature. Informasi bentuk dan proses yang dimiliki setiap feature dalam model produk dimanfaatkan untuk mengintegrasikan informasi antara tahap perancangan dengan tahap manufaktur. 2.3.1 Syarat Penting Feature Agar feature dapat bermanfaat dalam rekayasa, khususnya dalam kegiatan perancangan, perencanaan proses dan pembuatan produk, feature harus memenuhi beberapa persyaratan [10]. Beberapa persyaratan yang harus dipenuhi oleh suatu feature adalah memiliki identitas, mampu diklasifikasikan, memiliki sifat matematis penentu posisi maupun orientasi, dan memiliki parameter penentu dimensi. a. Identitas Feature Suatu produk pada hakekatnya merupakan kumpulan feature. Untuk keperluan identifikasi, setiap feature harus memiliki identitas. Agar feature dapat dikenali dengan mudah, dianjurkan pengkodifikasian feature dilakukan dengan memperhatikan kesamaan bentuk, kesamaan operasi, dan identifikasi yang sesuai dengan urutan proses permesinan. b. Klasifikasi Feature Klasifikasi Feature pertama kali dapat dilakukan dengan melihat kedekatan bentuk geometri. Klasifikasi feature selanjutnya dapat diturunkan dengan menilai proses yang mungkin bagi pembuatannya. Menurut jenisnya, feature dapat digolongkan sebagai feature bentuk dan feature tepi. Feature bentuk adalah feature yang memiliki kesesuaian bentuk dengan sebuah bangun geometri yang telah dibakukan. Bangun geometri selanjutnya disebut primitif feature. Beberapa jenis primitif feature yang
13
dipakai dalam model produk, seperti yang diperlihatkan dalam gambar 2.4, antara lain balok, silinder, prisma segitiga dan bentuk bebas .
Gambar 2.4 Feature Bentuk [10]
c. Parameter Penentu Posisi dan Dimensi Feature Setiap feature yang terdapat dalam model produk mempunyai posisi dan orientasi tertentu. Posisi dan orientasi feature ditentukan oleh dua hal, yaitu posisi relatif titik referensi feature dengan titik referensi model produk dan dimensi feature. Dimensi feature ditentukan dengan cara memberi atribut yang menyatakan ukurannya. Sebagai contoh, suatu feature primitif balok mempunyai atribut yang menyatakan panjang, lebar, dan tinggi. Sedangkan untuk feature primitif silinder mempunyai atribut yang menyatakan diameter dan tinggi silinder. Orientasi feature ditentukan dengan melihat posisi feature pada model produk relatif terhadap sumbu koordinat kartesian tiga dimensi. 2.3.2 Metoda Pembentukan Feature Metoda pembentukan feature dapat dilakukan dengan dua cara, yaitu melalui metoda pengurangan dan metoda penambahan [10]. Pada metoda pengurangan, sebagian volume benda kerja tertentu dibuang dari benda kerja. Volume benda kerja yang dibuang disebut volume ubah atau feature pengurangan. Proses produksi yang sesuai dengan metoda pengurangan adalah proses permesinan. Dalam pembuatan feature dengan proses permesinan, pengurangan dilakukan dengan cara menggerakkan pahat relatif terhadap benda kerja sedemikian rupa sehingga lintasan ujung pahat berada dalam ruang volume buang.
14
Pada metoda penambahan, sejumlah volume bahan dengan bentuk tertentu seolah–olah ditempelkan pada benda kerja. Volume bahan yang ditambahkan disebut dengan volume tambah atau feature penambahan. Proses produksi yang sesuai dengan metoda penambahan adalah proses pengelasan.
Gambar 2.5 Metode Pembentukan Feature [10]
2.3.3 Feature Bentuk Berprimitif Balok Feature bentuk berprimitif balok adalah suatu feature yang memiliki kesesuaian bentuk dengan bangun geometri berupa balok [3]. Feature sebagai wakil bagian benda kerja tidak dapat berdiri sendiri tetapi selalu terkait dengan benda kerja dimana feature tersebut berada. Berdasarkan posisi relatif terhadap benda kerja, feature berprimitif balok dapat diturunkan menjadi enam jenis feature balok, yaitu : muka, step, slot, poket sudut, poket tepi, dan poket tengah. Penentuan jenis feature diatas berdasarkan aturan sebagai berikut : Operasi pembuatan Feature Muka (Gambar 2.6) terhadap benda kerja menghasilkan satu bidang datar yang sejajar dengan alas benda kerja. Bidang datar tersebut mempunyai bentuk dan dimensi yang sama dengan alas benda kerja.
15
Gambar 2.6 Feature Muka [3]
Operasi pembuatan Feature Step (Gambar 2.7) terhadap benda kerja menghasilkan dua buah bidang datar. Bidang datar pertama adalah bidang hasil operasi permesinan yang sejajar dengan alas volume buang. Bidang datar kedua adalah bidang yang tegak lurus dengan bidang yang pertama.
Gambar 2.7 Feature Step [3]
Operasi pembuatan Feature Slot (Gambar 2.8) terhadap benda kerja menghasilkan tiga buah bidang datar. Bidang datar pertama adalah bidang yang sejajar dengan alas volume buang. Bidang datar kedua adalah bidang yang tegak lurus bidang pertama. Bidang datar ketiga adalah bidang yang tegak lurus bidang datar pertama dan berhadapan dengan bidang datar kedua.
Gambar 2.8 Feature Slot [3]
16
Operasi pembuatan Feature Poket Tengah (Gambar 2.9) terhadap benda kerja menghasilkan sebuah lubang berbentuk balok yang dibatasi oleh lima buah bidang pembatas. Bidang datar pertama adalah bidang alas Feature Poket Tengah. Bidang datar lainnya merupakan bidang bidang dinding Feature Poket Tengah yang tegak lurus dengan alas Feature Poket Tengah.
Gambar 2.9 Feature Poket Tengah [3]
Operasi pembuatan Feature Hole (Gambar 2.10) terhadap benda kerja menghasilkan sebuah lubang berbentuk balok yang dibatasi oleh empat buah bidang pembatas.
Gambar 2.10 Feature Hole [3]
Operasi pembuatan Feature Poket Tepi terhadap benda kerja menghasilkan empat buah bidang datar. Bidang datar pertama adalah bidang alas Feature Poket Tepi. Bidang datar kedua, ketiga, keempat adalah bidang-bidang dinding feature yang tegak lurus dengan bidang alas feature. Gambar 2.11 berikut menunjukkan gambar Feature Poket Tepi.
17
Gambar 2.11 Feature Poket Tepi [3]
Operasi pembuatan Feature Poket Sudut terhadap benda kerja menghasilkan tiga buah bidang datar yang saling tegak lurus. Bidang pertama adalah bidang alas feature sudut. Bidang kedua dan ketiga adalah bidang-bidang dinding feature. Gambar 2.12 berikut menunjukkan gambar Feature Poket Sudut.
Gambar 2.12 Feature Poket Sudut [3]
2.4 Metoda Pengembangan Sistem Informasi Berorientasi Objek 2.4.1 Definisi Model Model adalah suatu representasi atau perwakilan masalah dalam bentuk yang lebih sederhana dan mudah dikerjakan [7]. Semakin banyak variabel yang terlibat dalam model, maka model yang dibentuk akan semakin dekat dengan keadaan sebenarnya. Namun penyelesaian masalah pada model akan semakin sulit. Oleh karena itu, model yang baik adalah model yang mencakup variabel yang diperlukan dan menunjukkan penyelesaian yang sederhana. Kegunaan model adalah sebagai berikut [7] : Untuk berpikir, abstraksi (membayangkan), menalar dan mengambil kesimpulan
18
Untuk berkomunikasi : dengan menggunakan model, suatu masalah lebih mudah diterangkan kepada pihak lain. Untuk melakukan prediksi : dengan model dapat diperkirakan suatu keadaan yang akan datang. Untuk melakukan suatu pengujian: Suatu model dapat mewakili suatu benda/sistem yang akan mengalami suatu keadaan tertentu, dimana jika diujikan secara langsung pada benda/sistem yang sesungguhnya tidak mungkin dilakukan atau terlalu berbahaya, maupun terlalu menghabiskan biaya. Pengujian seperti ini dapat berupa model simulasi yang dimasukkan dalam komputer. Untuk berlatih : Dengan menggunakan model, seseorang dapat terbantu dalam membiasakan diri menghadapi suatu keadaan pada benda/sistem yang sesungguhnya. Untuk pengendalian : Dengan menggunakan model pada komputer, dapat dihasilkan perintah-perintah, misalnya dalam bentuk NC (numerical controled) program, yang diperlukan bagi pengendalian peralatan otomatis. Umumnya dikenal 3 jenis model, yaitu [7]: Model ikonis : Model yang berbentuk benda tiruan ata gambar dari masalah yang sebenarnya. Model ini umumnya dibuat dengan skala diperbesar atau diperkecil. Contohnya adalah model atom, maket, pesawat model, dan sebagainya. Model analog : Dengan model analog, masalah yang dihadapi diterjemahkan/dianalogikan ke dalam bentuk yang lebih efisien dan efektif, dimana pada bentuk baru itu sifat dan kelakuan benda sebenarnya
tetap
dimiliki.
Misalnya
masalah
kependudukan
dianalogikan dalam bentuk grafik, dan lain-lain. Model simbolik : Model ini tidak menunjukkan benda/masalah yang sesungguhnya tetapi mengutamakan kelakuan dan/atau persamaan matematiknya.
19
Pemodelan suatu sistem dapat dibuat dengan menggabungkan jenis-jenis model diatas. Salah satu contoh pemodelan dengan metode penggabungan ini adalah pemodelan berorientasi objek yang akan dibahas pada subbab selanjutnya. Pemodelan dalam arti sempit adalah virtualisasi objek nyata ke dalam dunia perangkat lunak/komputer. Semakin baik pemodelan yang dilakukan maka semakin dekat sifat objek virtual dengan sifat objek nyata. 2.4.2 Pemodelan Berorientasi Objek Pemodelan berorientasi objek adalah suatu metode pemodelan yang berusaha membuat model objek secara natural sesuai dengan sifat sebenarnya [7]. Sistem pada orientasi objek disusun oleh sekumpulan objek yang merupakan tempat yang berisi struktur data dan sekumpuan metode yang dibutuhkan untuk memproses data. Metode pemodelan berorientasi objek memiliki ciri-ciri penting sebagai berikut [1]: 1. Pola pikir yang alami Pola pikir yang alami timbul dengan mengkategorikan objekobjek tersebut berdasarkan kebiasaan atau perilaku. 2. Dapat dipakai kembali Objek yang telah ada dapat dibangun untuk suatu sistem sehingga hal yang telah ada dapat dimanfaatkan kembali. Dengan demikian akan menghasilkan penghematan biaya dan waktu pengembangan sistem, serta dapat meningkatkan keandalan sistem. 3. Kemudahan dalam membuat model dengan kompleksitas tinggi Kompleksitas objek yang digunakan dapat terus meningkat karena objek dibangun dari objek yang lain. 4. Perancangan dan modifikasi mudah Kelas-kelas dalam pemodelan berorientasi objek memiliki atribut masing-masing
yang
memudahkan
perancangan ataupun modifikasi.
20
untuk
melakukan
Kelebihan metode pemodelan berorientasi objek dibandingkan dengan metode lainnya sebagai berikut [7]: 1. Kelas-kelas objek dirancang untuk dapat digunakan kembali dalam berbagai sistem. 2. Kelas yang digunakan menjadi semakin stabil. 3. Memiliki sifat encapsulation yang dapat menyembunyikan detail objek, sehingga kelas objek yang kompleks mudah untuk digunakan. 4. Perancangan yang relatif lebih cepat. 5. Pemrograman yang lebih mudah. 6. Hasil yang diperoleh mendekati kenyataan karena batas antara analisis, perancangan mapun implementasinya tidak jauh berbeda melainkan langsung diterjemahkan. 7. Dapat diterapkan pada berbagai sistem, baik untuk sistem informasi maupun untuk sistem yang belum menggunakan orientasi objek. 8. Mudah dimodifikasi sesuai dengan kebutuhan. 2.4.3 Pemrograman Berorientasi Objek Pada pemrograman berorientasi objek atau Object Oriented Programming (OOP), kode pemrograman dan data disatukan sebagai suatu objek yang tidak dapat dipisahkan [1]. Ide OOP yaitu bahwa setiap objek akan mengelola sendiri setiap data dan fungsi yang dimilikinya. Hal-hal yang perlu diperhatikan dalam pemrograman berorientasi objek yaitu [1]: 1. Objek (Objects) Objek merupakan suatu kotak hitam berisi kode pemrograman dan data yang
dapat menerima dan mengirimkan pesan.
Pada OOP (Object Oriented Programming) kode pemrograman dan data disatukan dan tidak dapat dipisahkan yaitu sebagai objek. Hal ini yang memberikan perbedaan mendasar antara pemrograman berorientasi objek dengan metode pemrograman yang bukan berorientasi objek. Perbedaan
21
mendasar
ini
akan
memberikan
keuntungan/kemudahan
dalam
pengembangan perangkat lunak. Hal-hal yang dapat dilakukan objek meliputi empat fungsi berikut : 1. Penerimaan pesan, yang dilakukan menggunakan metode yang dimiliki. 2. Pemrosesan data yang ada dalam dirinya sendiri. 3. Pengiriman pesan ke objek lain atau dirinya sendiri. 4. Pengiriman objek sebagai balasan pesan yang diterima.
Gambar 2.13 Aktifitas yang Dapat Dilakukan oleh Objek [1]
Pesan dapat dianggap sebagai pemanggilan prosedur atau metode operasi. Objek pengirim pesan menyebutkan operasi mana yang dikehendaki, bukan bagaimana objek penerima pesan bekerja. Data yang ada dalam objek penerima pesan hanya dapat diubah oleh fungsi atau prosedur yang dimiliki objek itu sendiri. 2. Kelas (Classes) Kelas merupakan kumpulan objek yang memiliki struktur dan perilaku yang serupa. Sebuah objek yaitu contoh (instance) dari sebuah kelas. Dalam mendefinisikan kelas baru ada dua hal penting yang perlu diperhatikan :
22
a. Atribut Adalah tempat menyimpan data atau informasi. Atribut mempunyai nilai tunggal atau beberapa nilai yang digabungkan menjadi satu kelompok, misalnya nama jalan, nomor rumah, kota, dan kode pos dikelompokkan menjadi satu atribut address. b. Metode Adalah pesan yang dimengerti oleh objek yang menjabarkan proses pengolahan
data yang ada dalam sistem. Alat yang dipergunakan
untuk menjabarkan metode contohnya: bagan alir (flow chart), tabel keputusan, dan lain-lain. 3. Pesan (message) Merupakan suatu bentuk komunikasi antar objek. Objek penerima pesan akan mengerti pesan yang diterima apabila pesan tersebut telah didefinisikan terlebih dahulu sebagai interface yang dimilikinya. 4. Penyembunyian (encapsulation) Adalah suatu prinsip penyembunyian informasi tentang nilai atribut dan layanan yang dimiliki sebuah objek terhadap objek yang lain. Ide yang mendasari prinsip ini yaitu bahwa setiap objek akan mengelola tiap data dan fungsi yang dimilikinya sendiri. 5. Pewarisan (inheritance) Subkelas mempunyai sifat turunan dari kelas induknya karena mewarisi segala atribut dan metode kelas induk. Kelas induk sering disebut sebagai parent class atau super class dan merupakan generalisasi dari kelas-kelas turunannya. Sedangkan subkelas sering disebut sebagai kelas turunan dan merupakan spesialisasi dari kelas induknya. 6. Polimorfisme (polymorphism) Yaitu operasi yang sama dapat bersifat/dilakukan berbeda pada kelas yang berbeda pula.
23
7. Struktur Adalah bentuk ekspresi untuk menyederhanakan model masalah yang kompleks
melalui suatu hubungan. Struktur dapat dibedakan dalam dua
kategori : a. Struktur Generalization-Specialization (Gen-Spec) Jenis struktur ini dapat dilihat sebagai pengklasifikasian. Kelas umum (general) ditampilkan pada tingkat teratas dan kelas spesialisasi (khusus) pada
tingkat
di
bawahnya.
Contoh
:
generalisasi
kendaraan,
spesialisasinya minivan. b. Struktur Whole Part Merupakan struktur bagian dari, Contoh: engine, kaca depan, spion mobil. 2.5 Java dan Java 3D API 2.5.1 Pengenalan Bahasa Pemrograman Java Java adalah nama sebuah bahasa pemrograman yang diciptakan oleh Sun Microsystems, sebuah perusahaan besar di Amerika Serikat. Bahasa ini berkembang sangat pesat terutama untuk web programming. Dalam beberapa tahun terakhir, Java telah merambah dunia mobile dengan J2ME. Java juga dipakai dalam aplikasi server dengan J2EE (Enterprise Edition: JSP, servlet) [5]. Sejarah kelahiran Java dimulai pada tahun 1991 ketika Sun Microsystems memulai proyek penelitian yang diberi kode Green. Proyek ini bertujuan untuk membangun sebuah sistem yang memungkinkan komputer berperan dalam peralatan rumah tangga. Mereka mengangankan peralatan cerdas yang dapat saling berkomunikasi serta dapat diperintah oleh manusia hanya dengan sentuhan tombol dari jarak jauh atau diprogram untuk menjalankan tugas-tugas tertentu. Saat itu Sun memfokuskan proyek mereka pada peralatan untuk TV kabel yang disebut set-top box. Untuk merealisasikan proyek ini, mereka merencanakan untuk membangun sebuah sistem operasi yang dibagun dengan bahasa C++. Tetapi, salah satu anggota proyek Green yang bernama James Gosling merasa tidak puas dengan
24
bahasa C++. Kemudian ia memutuskan untuk membuat sendiri bahasa pemrograman baru yang diberi nama Oak. Bahasa baru ini dibuat berdasarkan syntax bahasa C++. Tetapi, Oak lebih sederhana dari C++, lebih stabil, dan lebih mendukung network-programming. Selanjutnya, Sun yang mengalami kegagalan pada impian peralatan cerdasnya, melihat celah lain dalam dunia Web. Bahasa Oak yang dibuat sebagai bahasa multi-platform serta ditujukan untuk pemrograman interaktif dan distributed, dirasa sangat cocok untuk digunakan dalam dunia Web, yang waktu itu mulai tumbuh pesat. Nama Oak kemudian harus diganti karena telah ada produk lain yang mematenkan nama tersebut. Pada tahun 1995, nama Oak diganti menjadi Java. Nama Java sendiri berasal dari kopi Jawa yang kabarnya saat itu sering diminum oleh para programmer Sun. Java memiliki beberapa keunggulan bila dibandingkan dengan bahasa pemrograman lainnya. Ada beberapa aspek yang akan dibahas di sini, yaitu [5]: 1. Java bersifat sederhana dan relatif mudah Java dimodelkan sebagian dari bahasa C++, namun dengan memperbaiki beberapa karakteristik C++, seperti mengurangi kompleksitas beberapa fitur, penambahan fungsionalitas, serta penghilangan beberapa aspek pemicu ketidakstabilan sistem pada C++. Sebagai contoh, java menggantikan konsep pewarisan lebih dari satu (multiple inheritance) dengan
interface,
menghilangkan
konsep
pointer
yang
sering
membingungkan, otomatisasi sistem alokasi memory, dan sebagainya. Ini membuat Java menjadi relatif lebih sederhana dan mudah untuk dipelajari dibandingkan bahasa pemrograman lainnya. 2. Java berorientasi pada objek (Object Oriented) Java adalah bahasa pemrograman yang berorientasi objek (OOP), bukan seperti Pascal, Basic, atau C yang berbasis prosedural. Dalam memecahkan masalah, Java membagi program menjadi objek-objek, kemudian
memodelkan
sifat
dan
tingkah
laku
masing-masing.
Selanjutnya, Java menentukan dan mengatur interaksi antara objek yang satu dengan yang lainnya.
25
3. Java bersifat terdistribusi Pada dekade awal perkembangan PC (Personal Computer), komputer hanya bersifat sebagai workstation tunggal, tidak terhubung satu sama lain. Saat ini, sistem komputerisasi cenderung terdistribusi, mulai dari workstation client, e-mail server, database server, web server, proxy server, dan sebagainya. 4. Java bersifat multiplatform Dewasa ini kita mengenal banyak platform Operating System, mulai dari Windows, Apple, berbagai varian UNIX dan Linux, dan sebagainya. Pada umumnya, program yang dibuat dan dikompile di suatu platform hanya bisa dijalankan di platform tersebut. Java bersifat multiplatform, yakni dapat di-“terjemahkan” oleh Java Inetrpreter pada berbagai sistem operasi. 5. Java bersifat Multithread Thread adalah proses yang dapat dikerjakan oleh program dalam suatu waktu.
Java bersifat Multithread, artinya dapat mengerjakan beberapa
proses dalam waktu yang hampir bersamaan. 2.5.2 Java 3D API (Application Programming Interface) Java 3D API adalah hierarki kelas-kelas Java yang dibuat sebagai interface untuk menampilkan grafik tiga dimensi
dan sistem suara [11]. Java 3D
menyediakan fungsi-fungsi untuk membuat gambar, visualisasi, animasi, dan aplikasi program dengan grafik 3D (3 Dimensi). Suatu program Java 3D tersusun dari objek-objek Java 3D yang ditempatkan dalam sebuah struktur data scene graph. Scene graph adalah susunan objek Java 3D dalam bentuk struktur pohon yang menjelaskan isi virtual universe dan cara menampilkannya. Simbol objek-objek penyusun scene graph ditunjukkan pada gambar 2.14.
26
Gambar 2.14 Simbol yang Merepresentasikan Objek pada Scene Graph [11]
Berikut ini adalah penjelasan simbol objek yang digunakan pada scene graph [11]: •
Virtual Universe Merupakan ruang/alam virtual untuk menampilkan grafik 3D dan sistem suara. Pada struktur scene graph, virtual universe berada pada tingkat teratas sehingga untuk jumlahnya hanya satu untuk satu aplikasi.
•
Locale (Lokal) Merupakan manajer atau penghubung antara branch group dengan virtual universe. Pada struktur scene graph, kedudukan lokal berada satu tingkat di bawah virtual universe dan jumlahnya hanya satu untuk satu aplikasi. Lokal hanya menghubungkan satu branch group saja untuk satu aplikasi.
•
Group (Grup) Merupakan kumpulan objek-objek penyusun grafik 3D dan sistem suara. Objek grup ada dua macam, yaitu Branch Group (BG) dan Transform Group (TG). Branch group dapat berupa kumpulan objek leaf dan kumpulan dari transform group. Sedangkan transform group merupakan kumpulan objek yang memiliki fungsi transformasi.
27
•
Leaf Merupakan objek yang menyusun grafik 3D secara geometri. Objek ini dapat dibentuk dengan dua cara. Cara pertama yaitu berdasarkan bentuk primitifnya, seperti balok, silinder, bola dan kerucut. Sedangkan cara kedua yaitu dengan memasukkan titik-titik koordinat kartesian penyusun bentuk geometri primitif. Supaya mudah dikenali dalam penulisan program biasanya penamaan objek leaf diakhiri oleh 3D seperti Balok3D, Feature3D dan sebagainya. Objek leaf dapat mereferensi objek-objek yang didefinisikan dalam bentuk NodeComponent untuk mendukung tampilannya seperti untuk warna, mode tampilan dan lain-lain.
•
NodeComponent Merupakan objek yang digunakan sebagai referensi bagi objek lainnya. Misalnya digunakan sebagai referensi warna dan tampilan pada objek atau referensi daerah transformasi pada objek transform group.
Gambar 2.15 menunjukkan contoh scene graph dari sebuah kubus berwarna yang memiliki fungsi rotasi dan gambar 2.16 menunjukkan tampilan dari aplikasi tersebut.
Gambar 2.15 Scene graph [11]
28
Gambar 2.16 Visualisasi Aplikasi Java 3D [11]
2.5.3 Metoda Pencahayaan pada Java 3D Proses pencahayaan pada Java 3D dibuat berdasarkan sifat materialnya dan cahaya yang berada di dalam virtual universe [11]. Pembentukan bayangan pada objek sebenarnya merupakan hasil dari model pencahayaan ketika diberikan suatu sumber cahaya. Pembentukan bayangan (shading) dari suatu objek pada Java 3D tergantung kepada banyak faktor. Java 3D API menyediakan informasi yang cukup lengkap untuk melakukan pemodelan pencahayaan pada suatu objek. 2.5.3.1 Model Pencahayaan (Lighting Model) Pada dunia nyata, warna yang kita lihat adalah kombinasi dari sifat fisik objek, karakteristik sumber cahaya, posisi relatif objek terhadap sumber cahaya, dan sudut datang dari mana objek dilihat [11]. Java 3D menggunakan model pencahayaan untuk mendekati secara fisik dari dunia nyata. Model pencahayaan tergantung kepada 3 (tiga) macam vektor, yaitu: 1. Vektor normal terhadap permukaan (N). 2. Arah pencahayaan (L). 3. Arah terhadap posisi si pelihat (viewer’s eye) (E). Gambar 2.17 menunjukkan ketiga macam vektor tersebut pada dua daerah yang berbeda dari permukaan bola. Vektor untuk setiap daerah permukaan memiliki arah yang berbeda tergantung pada keadaan tertentu. Ketika vektor pencahayaan
29
dan vektor dari si pelihat bervariasi, maka prosesnya dihitung pada waktu pembuatan pembentukan bayangan. Oleh karena itu, setiap titik dari permukaan bola memungkinkan mengalami perbedaan di dalam status pembentukan bayangannya.
Gambar 2.17 Sumber Cahaya, Permukaan Normal, dan Vektor dari “Si Pelihat” [11]
2.5.3.2 Konsep Pencahayaan Objek Pencahayaan pada objek memerlukan parameter-parameter yang harus dipenuhi pada kelas pencahayaan yang telah disediakan oleh Java 3D API [11]. Penciptaan dan pemberian objek sebagai sumber cahaya dapat dilakukan dengan menambahkan objek cahaya pada scene graph. Setiap objek yang akan dibuat bayangannya harus memiliki vektor normal permukaan dan sifat material. Hal-hal tersebut merupakan parameter yang diperlukan untuk memberikan pencahayaan pada Java 3D. Apabila salah satu dari parameter tersebut tidak terdapat ketika dilakukan proses shading, maka proses pencahayaan tidak akan terjadi. 2.5.3.3 Kelas-kelas Cahaya Java 3D API memiliki empat kelas cahaya [11]. Setiap kelas tersebut diturunkan dari Kelas Cahaya. Gambar 2.18 menunjukkan hirarki kelas pada java 3D yang berhubungan dengan cahaya. Cahaya, sebagai kelas, menyediakan method dan kemampuan untuk memanipulasi keadaan, warna, dan batas-batas dari objek cahaya.
30
Gambar 2.18 Hirarki Kelas Java 3D API untuk Kelas-kelas Cahaya [11]
Berdasarkan kelas yang telah disediakan oleh Java 3D API maka kelas cahaya dapat dibagi menjadi 4 subkelas, yaitu: Ambient Light, Directional Light, Point Light, dan Spot Light. Ambient Light Objek dari kelas ini menyediakan cahaya dengan intensitas yang sama pada semua lokasi dan semua arah. Kelas ini memodelkan cahaya sebagai refleksi dari objek lainnya. Seperti yang telah dijelaskan sebelumnya, bahwa pembentukan bayangan adalah hasil dari sumber cahaya, sifat material, dan geometrinya (jarak dan arah). Khusus untuk kelas ini geometri bukanlah faktor yang diperlukan. Directional Light Sumber cahaya dari kelas ini seperti sebuah sumber cahaya yang berada sangat jauh dengan intensitas yang sangat besar seperti matahari. Tidak seperti ambient light, sumber Directional Light menyediakan pencahayaan dari satu arah saja. Objek-objek yang diterangi oleh sumber cahaya ini memiliki vektor cahaya yang tetap. Gambar 2.19 menunjukkan dua buah daerah pada permukaan bola yang sama memiliki vektor cahaya yang sama
31
Gambar 2.19 Vektor Cahaya Selalu Tetap untuk Sumber Cahaya Directional Light [11]
Point Light Kelas ini secara konsep berlawanan dengan Directional Light. Kelas ini memiliki intensitas yang semakin lemah terhadap jarak dan memiliki hubungan dengan lokasi (Directional Light tidak memiliki lokasi hanya arah saja). Gambar 2.20 menunjukkan hubungan antara objek PointLight dengan bola.
Gambar 2.20 Vektor Cahaya Bervariasi untuk Sumber PointLight [11]
Spot Light Kelas ini merupakan subkelas dari point light. Kelas ini menambahkan arah dan konsentrasi terhadap posisi serta parameter-parameter yang semakin memperlemah proses pencahayaan. Intensitas cahaya yang dihasilkan dari sumber SpotLight menghasilkan cahaya di dalam sudut spread dari arah sumber cahaya. Jika suatu daerah berada di luar sudut spread tersebut maka tidak akan ada cahaya yang dihasilkan pada objek tersebut. Gambar 2.21 mengilustrasikan pada 2D bagaimana intensitas cahaya bervariasi dari sumber PointLight di dalam 3D.
32
Gambar 2.21 Intensitas Cahaya Bervariasi dengan Jarak dan Arah dari Sumber Cahaya [11]
33