Post on 16-Mar-2019
7
BAB 2
LANDASAN TEORI
2.1 Fraktal
2.1.1 Definisi Fraktal
Terdapat beberapa definisi fraktal yang dicetuskan oleh beberapa orang yang
berbeda, beberapa diantaranya adalah :
1. Gambar yang dibangkitkan oleh komputer berdasarkan perulangan dalam fungsi
matematika, dengan cara mengulang pola yang sama dengan dirinya sendiri
secara terus – menerus.
(Anonim, www.levity.com/mavericks/glossary.htm)
2. Fraktal adalah sebuah pola di dalam pola, di dalam pola.
(Anonim, http://www.enchantedlearning.com/dictionarysubjects/shapes.shtml)
3. Sebuah obyek yang mempunyai ‘dimensi fraktal’; yaitu sesuatu yang mempunyai
variasi yang sama dengan dirinya sendiri dalam berbagai skala, sehingga detail
maksimal tidak akan pernah dapat dicapai dengan meningkatkan skala.
(Hans Zuurins,
www.forestry.umt.edu/academics/courses/for503/stats_glossary.htm )
2.1.2 Sejarah Fraktal
Seperti pembentukan kehidupan, cabang baru dari matematika dan sains tidak
muncul begitu saja. Ide dari geometri fraktal dapat dilacak hingga akhir abad ke – 19,
8
saat matematikawan menciptakan bentuk – kumpulan dari titik – yang kelihatannya
melawan alam. Dengan sangat kebetulan, matematika abstrak yang diturunkan dari
konsepsi awal saat itu, menjadi lebih baik daripada yang lainnya untuk menjelaskan
banyak bentuk natural dan proses.
Pada abad ke-17, Newton dan Leibniz menciptakan kalkulus, dengan
kemampuannya untuk menemukan turunan dari sebuah fungsi – dalam istilah geometri,
menemukan tangen dari sebuah kurva di titik manapun. Benar bahwa beberapa fungsi
memang diskontinu, tanpa nilai tangen pada suatu celah atau sebuah titik yang terisolasi.
Beberapa memiliki singulariti, sebuah perubahan arah dimana makna dari tangen
menjadi tidak bermakna. Namun, hal ini dipandang sebagai suatu perkecualian, dan
perhatian terfokus pada fungsi-fungsi ‘sempurna’ yang berjalan baik pada pemodelan
standar.
Mulai pada awal 1870-an, terjadi 50 tahun transformasi pemikiran matematika.
Weierstrass menjelaskan fungsi yang bersifat kontinu, namun tidak terdiferensiasi (tidak
ada nilai tangen yang dapat dihasilkan pada setiap titik). Cantor menunjukkan
bagaimana sebuah prosedur sederhana dan berulang dapat menjadi sebuah garis,
kemudian menjadi sebaran titik. Kemudian Peano menghasilkan kurva konvulasi yang
menyentuh setiap titik dari bidang datar. Bentuk-bentuk ini jatuh diantara garis 1
dimensi, bidang 2 dimensi dan bangun 3 dimensi. Kebanyakan orang masih melihat hal
itu sebagai kasus yang ‘patologis’, namun dimana-mana mereka mulai menemukan
aplikasinya
Di cabang lain matematika, bentuk-bentuk tidak wajar juga mulai bermunculan.
Poincare berhasil menganalisa kestabilan dari tata surya tahun 1880 dan menemukan
bahwa masalah dinamik berlawanan dengan metode tradisional. Dia menciptakan
9
pendekatan kualitatif, sebuah ‘pernyataan angkasa’ di mana setiap titik mewakili orbit
planet yang berbeda., dan mempelajari hal yang sekarang ini disebut sebagai topologi
semua benda angkasa. Pendekatan ini mengungkapkan banyak pergerakan awal yang
dapat diselesaikan dengan kurva-kurva, ada juga orbital tidak beraturan yang tidak
pernah menjadi periodik dan dapat diduga.
Peneliti lain mencoba untuk memahami fluktuasi, fenomena ‘ke-tidakberaturan’
(banjir pada sungai Nil, urutan harga pada bidang ekonomi, gerak brown pada molekul
benda cair). Mereka berhasil menemukan bahwa model tradisional tidak lagi dapat
dicocokkan dengan data. Mereka harus memperkenalkan fitur skala berdasarkan pilihan
(arbitrary), dengan menggunakan model paku yang semakin jarang bila paku tersebut
semakin besar, tapi tidak dapat hilang sama sekali.
Selama bertahun-tahun, perkembangan ini tampaknya tidak saling berhubungan,
tapi terdapat petunjuk mengenai kesamaan penelitian. Sama seperti gerakan orbital yang
tidak beratur, graph urutan waktu yang tak beraturan terkadang mempunyai kemiripan
sifat: suatu bagian gambar skala kecil yang diperbesar nampak sangat mirip dengan
skala besarnya. (Bert Tyler, http://www.goshen.edu/~kevin/fractint/history.html)
2.1.3 Jenis – Jenis Fraktal
Terdapat banyak sekali tipe dari fraktal, namun pada dasarnya fraktal dapat
digolongkan ke dalam 6 kelompok besar :
1. Fraktal yang diturunkan dari geometri standar menggunakan transformasi iterasi
pada bentuk-bentuk standar seperti garis lurus (the Cantor dust or the von Koch
curve), segitiga (the Sierpinski triangle), atau kubus (the Menger sponge).
10
Bentuk fraktal pertama yang diciptakan di akhir abad 19 dan 20 merupakan
bagian dari kelompok ini.
2. IFS (Iterated Function Sistems). Jenis fraktal ini diperkenalkan oleh Michael
Barnsley. Struktur dari fraktal ini ditentukan oleh satu set dari fungsi linear yang
transformasinya terjadi berdasarkan keseragaman, translasi, dan rotasi. Fungsi
yang dimasukkan ke dalam sistem dipilih secara acak, tapi set akhir/ final adalah
pasti dan memperlihatkan struktur fraktal.
3. Strange Attractors. Bentuk ini dapat dikatakan adalah representasi dari
pergerakan chaos/ acak. Bentuk ini sangat kompleks dan dibentuk dari garis
yang memiliki panjang yang tidak terbatas, digambarkan dengan perulangan
terus-menerus, tanpa pernah bersilangan.
4. Plasma fractals. Dibentuk dengan teknik gerak Brown (Brownian motion) atau
algoritma titik tengah (midpoint). Fraktal jenis ini menghasilkan tekstur indah
dengan sktruktur fraktal seperti awan, api, batu, kayu, dan lain-lain. Banyak
digunakan pada program CAD. Seniman fraktal yang sudah ahli sangat
menyukai plasma untuk membuat tekstur atau latar dari gambar mereka.
5. L-Sistems. Juga disebut sebagai sistem Lindenmayer, tidak diciptakan untuk
membentuk fraktal, tapi untuk memodelkan pertumbuhan dan interaksi. L-Sistem
adalah grammar formal yang secara berulang-ulang melakukan aturan-aturan
(rules) menjadi sebuah set. Sebagai hasilnya, kadang-kadang dihasilkan suatu
struktur fraktal.
6. Gambar fraktal yang diciptakan dengan iterasi dari fungsi polinomial. Mungkin
adalah jenis fraktal yang paling terkenal (Julia dan Mandelbrot). Hanya jenis
11
inilah yang sudah sangat luas diteliti dan dikembangkan dengan berbagai
algoritma pewarnaan.
Banyak jenis fraktal yang diperhitungkan sebagai bagian dari kelompok fraktal
diatas, contohnya fractal terrains, adalah bentuk representasi 3 dimensi dari Plasma
Fractal. Music Fractal, adalah suara yang direpresentasikan oleh pergerakan acak.
Fraktal jenis lain, antara lain quarternionic atau hyperhionic dapat digolongkan sebagai
ekstensi dari dimensi yang lebih tinggi dari polynomial fractal diiterasikan pada bentuk
kompleks. (http://www.mi.sanu.ac.yu/vismath)
2.2 Metode Newton Raphson
2.2.1 Sejarah Metode Newton Raphson
Metode Newton Raphson dijelaskan oleh Isaac Newton dalam De analysi per
aequationes numero terminorum infinitas (ditulis tahun 1669, diterbitkan tahun 1711
oleh William Jones) dan dalam De metodis fluxionum et serierum infinitarum (ditulis
tahun 1671, diterjemahkan dan diterbitkan sebagai Method of Fluxions tahun 1736 oleh
John Colson). Namun, pengertiannya saat itu berbeda dari pengertian modern. Newton
menggunakan metode tersebut hanya untuk fungsi polinomial. Dia tidak menghitung
perkiraan dari xn, tapi menghitung barisan dari polinomial dan hanya pada akhirnya, tiba
pada perkiraan untuk akar x. Pada akhirnya, Newton melihat metode ini sebagai metode
aljabar murni dan gagal untuk melihat hubungannya dengan kalkulus. Isaac Newton
kemungkinan menurunkan metode buatannya tersebut dari metode serupa, namun
mempunyai ketepatan lebih buruk yang dicetuskan oleh François Viète.
Metode Newton pertama kali diterbitkan tahun 1685 pada A Treatise of Algebra
both Historical and Practical oleh John Wallis. Tahun 1690, Joseph Raphson
12
menerbitkan deskripsi yang sudah disederhanakan dalam Analysis aequationum
universalis. Sekali lagi Raphson melihat metode Newton murni sebagai metode aljabar
dan membatasi kegunaannya pada fungsi polinomial, namun dia memperkenalkan
metode perkiraan suksesif xn daripada barisan polinomial yang lebih rumit yang
digunakan oleh Newton.
2.2.2 Sir Isaac Newton
Gambar 2.1 Sir Isaac Newton
Isaac Newton dilahirkan di Lincolnshire, dekat Grantham, pada tanggal 25
Desember 1642, dan meninggal di Kensington, London, pada tanggal 20 Maret 1727.
Dia berkuliah di Trinity College, Cambridge, dan tinggal disana dari tahun 1661 hingga
tahun 1696, dimana dia menghasilkan banyak sekali penelitiannya di bidang
matematika. Tahun 1969 dia mendapat kantor pemerintah yang megah, dan kemudian
pindah ke London, di mana dia tinggal hingga akhir hayatnya.
Ayahnya, yang meninggal tidak lama sebelum Newton lahir, adalah seorang
petani. Dia berpikir bahwa Newton seharusnya mewarisi sawah ayahnya. Newton
13
dikirim ke sekolah di Grantham, dimana pelajarannya dan profisiensi mekanik mendapat
perhatian. Tahun 1656 dia pulang ke rumahnya untuk mempelajari bisnis persawahan,
namun sebaliknya dia menghabiskan banyak waktunya menyelesaikan permasalahan
maupun membuat eksperimen. Pamannya yang pernah berkuliah di Trinity College,
Cambridge, menyarankan bahwa sebaiknya Newton dikirim kesana.
(J J O'Connor, www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Newton.html)
2.2.3 Joseph Raphson
Kehidupan dari Joseph Raphson (1648-1715) diselimuti oleh misteri dan sulit
untuk diikuti. Joseph Raphson dilahirkan di Middlesex, Inggris tahun 1648, diketahui
dari beberapa sumber bahwa Joseph Raphson berkuliah di Jesus College Cambridge dan
lulus dengan gelar Master of Arts tahun 1692. Dengan usia yang sudah lebih tua (43
tahun), secara mengejutkan Raphson menjadi anggota Royal Society tahun 1691, setahun
sebelum kelulusannya. Kehormatan ini adalah dampak langsung dari bukunya yang
diterbitkan tahun 1690, berjudul Analysis aequationum universalis. Buku ini berfokus
terutama pada metode Newton untuk memperkirakan akar dari persamaan, yang
kemudian bernama metode Newton-Raphson. Sebenarnya, metode Newton mengenai
fluks menjelaskan metode yang sama dan contoh-contoh untuk memperkirakan akar
persamaan, walaupun metode tersebut ditulis tahun 1671, namun tidak pernah
diterbitkan sampai 1736, maka Joseph Raphson menerbitkan materi ini dan metodenya
50 tahun sebelum Newton.
Meskipun hubungan antara Newton dan Raphson tidak begitu jelas, namun
diketahui bahwa Raphson diperbolehkan oleh Newton, untuk melihat dan mempelajari
tulisannya secara berkala. Pada kenyataannya, Raphson dan Edmund Halley terlibat
14
bersama Newton dalam publikasi hasil kerja Newton di awal tahun 1670 mengenai
kurva kuadratur, fluks, dan sejenis matematika yang sekarang dikenal sebagai kalkulus,
namun mereka belum dapat melakukannya hingga tahun 1704. Publikasi hasil kerja
Newton tersebut memberkan penjelasan secara detail mengenai metode fluks. Raphson
juga diijinkan untuk melihat penelitian matematika Newton pada tahun 1711, melalui
Roger Cotes dan William Jones. Sebagai hasilnya, Raphson menulis A History of
Fluxions, yang terbit setahun setelah kematiannya. Tulisan ini menjadi dukungan kuat
bagi Newton melawan Leibniz yang mengklaim dirinya sebagai penemu kalkulus.
2.2.4 Cara Kerja Newton Rapshon
Metode Newton Raphson, adalah suatu algoritma untuk menentukan akar
persamaan, yang menggunakan sebagian dari ketentuan pertama dari deret Taylor.
Dalam Metode Numerik, Metode Newton Raphson adalah algoritma yang cukup efisien
untuk menentukan perkiraan akar dari fungsi real. Selain itu, metode Newton Raphson
juga dapat digunakan untuk menentukan nilai maksimum dan minimum dari sebuah
fungsi, dengan cara menentukan nilai nol dari derivasi pertama.
Anggap Rbaf →],[: adalah dapat fungsi yang dapat diturunkan dan berada
dalam interval ],[ ba dengan akar adalah bilangan real dalam R. Kemudian dimulai
dengan menentukan nilai x0 (dengan nilai f(x0) lebih dekat dengan 0 lebih baik) dan
kemudian tentukan untuk setiap angka natural n.
)(')(
1n
nnn xf
xfxx −=+
15
Iterasi terus dilakukan hingga mencapai nilai yang dimaksud, dengan maksimum
error yang juga telah ditetapkan.
Gambar 2.2 Ilustrasi Metode Newton Raphson
Gambar di atas adalah ilustrasi dari metode Newton Raphson. Langkah langkah
untuk mendapatkan nilai nol x pada fungsi f(x) adalah sebagai berikut :
1. Dari titik awal x0, tarik garis sepanjang sumbu y sehingga didapat perpotongan
dengan garis f(x) di titik a1.
2. Tarik garis yang memotong a1 dan mengiris garis f(x), sehingga memotong
sumbu x di x1.
16
3. Dari x1, tarik garis sepanjang sumbu y sehingga didapat perpotongan dengan
garis f(x) di titik a2.
4. Lakukan proses di atas secara iteratif sehingga didapat nilai nol x pada fungsi
f(x).
Contoh masalah : Tentukan nilai positif untuk x dengan cos(x) = x3. Kita dapat
mengubah permasalahan tersebut menjadi : Tentukan nilai nol untuk f(x) = cos(x) – x3.
Dari situ didapatkan f’(x) = -sin(x) – 3x2, Karena 1)cos( ≤x untuk semua x dan x3 > 1
untuk x > 1, kita dapat mengetahui bahwa nilai f(x) = 0 berkisar antara x = 0 dan x = 1.
Proses akan dimulai dengan x0 = 0.5
971121416370.15.03)5.0sin(
)5.0cos(5.0)()(
2
3
01
001 =
×−−−=−=
xfxf
xx
369096726937.0)()(
11
112 ==−= M
xfxfxx
726381820986.03 === MMx
771352988654.04 === MMx
118654740331.05 === MMx
028654740331.06 === MMx
Nilai atau akar yang sebenarnya adalah nilai yang digarisbawahi. Semua digit
pada x6 adalah tepat. Dapat dilihat bahwa jumlah desimal dari digit yang benar
17
meningkat dari 2 (untuk x3) menuju 5 dan 10. Hal itu dapat menunjukkan konvergensi
kuadratik pada metode Newton Raphson.
Untuk lebih memperjelas, persamaan di atas dapat digambarkan sebagai berikut
Gambar 2.3
Grafik Metode Newton Rapshon untuk f(x) = cos(x) – x3
2.2.5 Algoritma Newton Raphson
Metode Newton Raphson berasal dari Metode Taylor :
...)('')(')()( 202
1000 +++=+ εεε xfxfxfxf (1)
18
Karena 2ε dianggap sudah sangat kecil dan tidak dignifikan, maka Newton
hanya mengambil 2 suku pertama dari deret Taylor tersebut, sehingga didapat :
εε )(')()( 000 xfxfxf +=+ (2)
Ekspresi ini dapat digunakan untuk memperkirakan angka dari offset ε yang
dibutuhkan agar mendekati akar sebenarnya, diawali dengan perkiraan awal 0x .
Dengan menentukan nilai 0)( 0 =+ εxf dan menyelesaikan persamaan (2) untuk
0εε ≡ akan didapatkan :
)(')(
0
00 xf
xf−=ε , (3)
yang merupakan bagian pertama untuk mendapatkan akar persamaan. Dengan
menentukan 001 ε+= xx , menghitung nilai baru 1ε , dan seterusnya, proses
tersebut dapat terus diulang sehingga membentuk suatu konvergensi ke arah satu
nilai, menggunakan :
)(')(
n
nn xf
xf−=ε (4)
Sayangnya, prosedur ini dapat menjadi tidak stabil saat mendekati asimptot
horisontal atau nilai ekstrim lokal. Namun, dengan inisialisasi awal dari posisi
akar, algoritma ini dapat diaplikasikan iteratif untuk mendapatkan :
)(')(
1n
nnn xf
xfxx −=+ (5)
Untuk ,...3,2,1=n . Inisialisasi x0 yang menghasilkan nilai konvergensi yang
aman untuk metode Newton tersebut disebut sebagai approximate zero
(perkiraan nol).
19
Iterasi / perulangan dilakukan terus menerus sampai nilai x memenuhi persamaan
f(x) atau nilai error sudah berada di bawah error yang sudah ditentukan
sebelumnya.
Nilai error 1+nε setelah iterasi ke 1+n ditentukan dengan :
1+nε = )( 1 nnn xx −+ +ε
= )(')(
n
nn xf
xf−ε (6)
Diketahui bahwa:
)( nxf = ...)('')(')( 212
111 +++ −−− nnnnn xfxfxf εε
= ...)('')(' 212
11 ++ −− nnnn xfxf εε (7)
)(' nxf = ...)('')(' 11 ++ −− nnn xfxf ε (8)
Kemudian:
)(')(
n
n
xfxf
= ...)('')('
...)('')('
11
121
12
++++
−−
−−
nnn
nnnn
xfxfxfxf
εεε
≈ )('
)('')('
1
121
12
−
−− +
n
nnnn
xfxfxf εε
= 2
1
1
)('2)(''
nn
nn xf
xfεε
−
−+ (9)
Sehingga menjadi:
1+nε = ⎥⎦
⎤⎢⎣
⎡+−
−
− 2
1
1
)('2)(''
nn
nnn xf
xfεεε
= 2
1
1
)('2)(''
nn
n
xfxf
ε−
−− (10)
20
2.2.6 Flowchart Metode Newton Raphson
Persamaan-persamaan tersebut dapat dibentuk menjadi suatu diagram alir (flow
chart) sebagai berikut :
Gambar 2.4 Flowchart Metode Newton Raphson
2.3 Metode Pewarnaan Fraktal
Setiap sistem dinamik menghasilkan barisan nilai z0, z1, z2, …, zn. Gambar fraktal
dibangkitkan dengan cara menuangkan barisan tersebut ke dalam piksel-piksel gambar.
Algoritma pewarnaan adalah suatu susunan yang menentukan warna yang digunakan
pada tiap barisan.
Biasanya, algoritma pewarnaan menghasilkan satu nilai pada tiap piksel. Karena
warna adalah suatu obyek tiga dimensi, maka terlebih dahulu harus mengembangkan
21
piksel yang berbentuk satu dimensi. Metode yang paling sering ditemui adalah membuat
suatu palet, sebuah barisan dari warna 3 dimensi. Hal ini terus bersambung terus dan
nilai dari hasil algoritma pewarnaan tersebut kemudian digunakan sebagai posisi
sepanjang garis multi-segmen (gradien). Jika palet terakhir terhubung dengan yang
pertama, maka suatu perulangan bersegmen yang tertutup akan terbentuk, dan berbagai
nilai real dari algoritma tersebut dapat dipetakan intuk menentukan warna di dalam suatu
gradien. Gradien biasanya diinterpolasikan dalam RGB (Red, Green, Blue), tapi dapat
juga diinterpolasikan dalam HSL (Hue, Saturation, Lightness) dan diinterpolasikan
dalam kurva, disamping segmen garis lurus.
Pemilihan dari gradient adalah bagian yang paling menentukan sisi artistik
dalam membuat gambar fraktal yang indah. Pemilihan warna dapat menekankan satu
bagian dari gambar, sementara bagian lain menjadi kurang terfokus. Dalam kasus yang
ekstrim, dua fraktal dengan parameter yang sama, namun dengan skema warna yang
berbeda, akan nampak sama sekali berbeda.
Beberapa algortima pewarnaan menghasilkan nilai diskrit, sementara beberapa
yang lainnya menghasilkan nilai kontinu. Nilai diskrit akan menghasilkan gradasi warna
yang terlihat mata. Hal ini dulu tidak begitu berpengaruh, karena keterbatasan warna 8-
bit yang memang selalu menghasilkan gradasi warna yang kurang baik. Dengan
diperkenalkannya warna 24-bit, algoritma yang menghasilkan nilai kontinu semakin
penting, karena nilai kontinu memungkinkan interpolasi warna apapun yang
dikehendaki. (http://www.mi.sanu.ac.yu/vismath)
2.3.1 Pembangkitan Gambar Fraktal dengan Menggunakan Metode Newton
Raphson
22
Gambar fraktal dibangkitkan dengan menggunakan metode Newton Raphson.
Gambar dibentuk dengan menggunakan setiap titik dari bilangan kompleks, dan
mewarnai berdasarkan berapa banyak iterasi yang diperlukan untuk mencapai f(x)
mendekati nol. Berikut adalah langkah-langkah untuk menghasilkan suatu gambar
fraktal dari fungsi polinomial menggunakan metode Newton Raphson :
1) Tentukan fungsi polinomial yang akan digunakan
2) Tentukan panjang dan lebar dari gambar yang akan dihasilkan
3) Lakukan iterasi pada setiap piksel gambar dari posisi piksel pertama
4) Ubah x menjadi sebuah fungsi kompleks dimana nilai realnya merupakan posisi
horisontal dan nilai imaginernya merupakan posisi vertikal piksel.
5) Lakukan iterasi menggunakan metode Newton Raphson.
6) Jumlah iterasi merupakan nilai warna yang akan dituangkan pada setiap posisi
piksel
7) Ulangi langkah 3 – 7 sampai posisi piksel terakhir
2.3.2 Flowchart Pembangkitan Fraktal Menggunakan Metode Newton Raphson
23
Gambar 2.5
Flowchart Pembangkitan Fraktal Menggunakan Metode Newton Raphson
2.4 Microsoft Visual Studio .NET
2.4.1 Definisi Microsoft Visual Studio .NET
.NET adalah strategi Microsoft dengan mempergunakan Web Service, untuk
menghubungkan informasi, manusia, sistem, maupun peralatan menggunakan perangkat
24
lunak. Teknologi .NET, yang sudah terintegrasi dalam platform Microsoft, menyediakan
kemampuan untuk membangun, menyebar, menata, dan menggunakan solusi keamanan
yang sudah dipercanggih dengan Web Service. Solusi terhubung .NET membuat
integrasi sistem menjadi lebih cepat, dan membantu mewujudkan janji informasi
kapanpun, dimanapun, dengan alat bantu apapun.
Platform Microsoft mencakup semua hal yang dibutuhkan bisnis untuk membuat
dan men-deploy arsitektur Teknologi Informasi dengan Web service yang terkoneksi :
Server sebagai host Web Service, development tools untuk membuat aplikasi, dan
jaringan network yang mencakup lebih dari 35.000 partner Microsoft yang bersertitikasi
untuk menyediakan bantuan bila diperlukan.
2.4.2 .NET Framework
Microsoft Visual Studio tidak hanya mendukung language-indepence, tapi juga
laguage-integration. Hal ini berarti, bahwa sebuah kelas dapat diwariskan, ditangkap
kesalahannya, dan digunakan fasilitas polimophism-nya melewati batas-batas bahasa.
Hal ini dimungkinkan oleh .NET dengan adanya Common Type Sistem (CTS) yang
harus dipatuhi oleh semua componen .NET. Contohnya, semua hal di dalam .NET
adalah objek dari kelas yang spesifik, yang diturunkan dari kelas utama, yaitu
Sistem.Object.
Menurut Isak Rickyanto (“Membuat Aplikasi Windows dengan Visual Basic
.NET”, halaman 1-6), dikatakan bahwa .NET Framework sebenarnya adalah sebuah
platform komputasi baru yang menyederhanakan proses pembuatan aplikasi pada
lingkungan terdistribusi di Internet. Framework ini didesain untuk memenuhi tujuan
sebagai berikut :
25
• Untuk menyediakan lingkungan permrograman berorientasi objek yang
konsisten meskipun kode objek disimpan dan dijalankan secara lokal,
dijalankan secara lokal tetapi terdistribusi lewat internet, atau dijalankan
secara remote.
• Untuk menyediakan lingkungan yang menjalankan kode dengan
meminimalkan konflik saat deployment dan versioning.
• Untuk menyediakan lingkungan yang menjalankan kode yang
memberikan jaminan keamanan saat menjalankan kode, termasuk kode
yang dijalankan oleh pihak ketiga yang tidak diketahui atau kurang
dipercaya.
• Untuk menyediakan lingkungan yang menjalankan kode yang
menghilangkan masalah performance / kecepatan dari lingkungan
scripting / interpreted.
• Untuk membuat developer mengalami pengalaman yang konsisten di
berbagai tipe aplikasi, seperti aplikasi Windows dan aplikasi berbasis
web.
• Untuk membangun komunikasi standar industri yang memastikan kode
berbasis Framework .NET dapat diintegrasikan dengan kode lain.
Salah satu bentuk keunggulan dari platform ini terlihat pada kompilasi sumber
kode program (source code), dimana semua source code akan dikompilasi menjadi
Microsoft Itermediate Language (MSIL). Selanjutnya MSIL akan dikompilasi oleh
.NET Compiler menjadi bahasa mesin pada saat akan digunakan.
26
File MSIL dikategorikan sebagai Managed Application, artinya aplikasi tersebut
masih dapat dikontrol / diatur (manage) sebelum dijalankan oleh prosesor. Istilah ini
digunakan untuk membedakannya dari istilah Unmanaged Application, yakni aplikasi
program yang kita kenal sekarang ini (misalnya Visual Basic, Delphi, Visual FoxPro,
dan lain-lain).
Framework .NET memiliki 2 komponen utama, yaitu :
• Common Language Runtime (CLR)
• .NET Framework Class Library
Arsitektur dari .NET Framework dapat dilihat pada gambar berikut
Gambar 2.6 .NET Framework
27
Saat ini diketahui bahwa .NET Framework mendukung 15 bahasa pemrograman.
Antara lain Visual Basic , C#, C++, Jscript, VBScript. Bahkan Perl, Cobol, dan Pascal
dapat digunakan untuk menghasilkan aplikasi managed code.
.NET Framework juga dikembangkan untuk mobile dan embedded devices yang
disebut Compact .NET Framework. Jadi, dengan menguasai salah satu bahasa
pemrograman yang didukung oleh .NET Framework, kita dapat menghasilkan berbagai
tipe aplikasi maupun target aplikasi (server, desktop, maupun smart device seperti
PDA).
a. Common Language Runtime
Common language Runtime (sering disingkat menjadi CLR) adalah
pondasi dari .NET Framework. CLR (sering disebut sebagai runtime) dapat
dianggap sebagai agen yang menangani kode pada saat dijalankan,
menyediakan layanan inti seperti manajemen memori, manajemen thread,
dan remoting, juga memastikan pendefinisian tipe data secara ketat dan
bentuk lain untuk memastikan keakuratan kode program sehingga dapat
tercipta keamanan dan ketangguhan suatu program.
Konsep manajemen kode adalah prinsip dasar dari runtime. Program
yang dijalankan oleh CLR disebut sebagai managed code, sedangkan kode
yang tidak memiliki sasaran runtime (CLR) disebut unmanaged code.
.NET Framework dapat di-hosted oleh komponen unmanaged code
yang memanggil CLR ke prosesnya, dan menjalankan managed code,
sehingga menciptakan lingkungan software yang menggunakan fasilitas
managed dan unmanaged. Framework .NET tidak hanya menyediakan
28
beberapa runtime host, tetapi juga mendukung pengembangan dari runtime
host pihak ketiga.
Ilustrasi berikut menunjukkan relasi dari CLR dan Class Library ke
aplikasi dan sistem secara keseluruhan. Ilustrasi ini juga menunjukkan
bagaimana managed code beroperasi dengan arsitektur yang lebih besar.
Managed Applications Unmanaged Applications
InternetInformationService
ASP.NET(Runtime)
Operating System/Hardware
Custom SystemLibraries
ClassLibraryRuntime
Managed WebApplications
Gambar 2.7 Relasi Sistem dalam Visual Studio .NET
b. NET Framework Class Library
.NET Framework Class Library adalah suatu koleksi dari tipe data
yang dapat digunakan ulang yang terintegrasi dengan CLR. Class Library
berorientasi obyek, dan menyediakan tipe data dimana managed code dapat
menurunkan fungsionalitasnya. Hal ini tidak hanya dapat membuat tipe data
dari .NET Framework mudah digunakan, tapi juga mengurangi waktu belajar
29
dari fasilitas .NET Framework. Sebagai tambahan, komponen pihak ketiga
dapat terintegrasi dengan class dari .NET Framework.
Sebagaimana diharapkan dari class library berorientasi objek, tipe-
tipe data .NET Framework memberikan fasilitas untuk menyelesaikan
sejumlah tugas pemrograman yang umum, termasuk manajemen string,
koleksi data, konektivitas database, dan akses file. Sebagai tambahan dari
tugas-tugas umum tersebut, class library mengikutkan tipe data yang
mendukung variasi skenario development. Sebagai contoh, .NET Framework
dapat digunakan untuk membangun aplikasi berikut :
- Aplikasi konsol
- Aplikasi skripting / hosted
- Aplikasi Windows GUI (Windows Form)
- Aplikasi Web (ASP.NET)
- XML Web Services
- Windows Services
XML (Extensible Markup Language)
XML adalah sebuah bahasa yang sudah banyak diadopsi untuk
merepresentasikan teks dan data di dalam sebuah format yang dapat diproses tanpa
melibatkan banyak keahlian manusia maupun mesin. Informasi yang dibuat dalam
format XML dapat dipergunakan lintas platform, bahasa, dan aplikasi. XML juga dapat
digunakan dalam jangkauan yang sangat luas pada pengembangan suatu aplikasi.
Setiap dokumen XML terdiri dari satu atau lebih elemen, batas-batasnya adalah
start-tags dan end-tags, atau untuk elemen kosong, digunakan empty-element tag. Setiap
30
elemen mempunyai tipe, ditandai dengan nama, terkadang disebut “generic identifier”
(GI) dan dapat mempunyai set atribut yang spesifik. Setiap spesifikasi atribut
mempunyai nama dan nilai.
Struktur XML :
- Start-Tag
Start-Tag adalah awal dari setiap elemen XML yang tidak kosong.
Contoh : <xmlelement id="element-id" term="element-term">
- End-Tag
End-Tag adalah penanda akhir dari suatu elemen.
Contoh : </xmlelement>
- Content
Content dari adalah isi dari elemen, terletak diantara Start-Tag dan End-
Tag.
Contoh : <xmlelement>content</xmlelement>
- Empty-Element-Tag
Empty-Element-Tag digunakan untuk setiap elemen yang tidak
mempunyai content.
Contoh : <xmlelement id="element-id" type=”type” />
Keuntungan menggunakan XML :
a. XML adalah data yang dapat menjelaskan dirinya sendiri. Tidak seperti record
dalam database tradisional, XML tidak memerlukan skema relasi (relational
schemata), tabel deskripsi file (file description tables), definisi tipe data eksternal
31
(external data type definitions), dan lain lain karena data XML sudah memuat
informasi tersebut di dalam dirinya sendiri.
b. Dokumen XML dapat memuat semua data, mulai dari data klasik seperti teks dan
angka, obyek multimedia seperti suara, sampai format aktif seperti Java Applet
atau komponen ActiveX.
c. XML merupakan dokumen multi-bahasa dan standar Unicode.
UML (Unified Modeling Language)
Inti dari pemecahan masalah berorientasi obyek adalah dengan membentuk suatu
model. Model tersebut merupakan abstraksi dari detail masalah yang ada pada dunia
nyata. Beberapa alat pemodelan dibungkus dalam UML (Unified Modeling Language).
Dalam UML terdapat beberapa istilah yang harus dipahami sebelumnya. Proses
pembuatan UML dimulai dengan pembentukan model. Model adalah abstraksi dari
masalah yang sedang dihadapi. Domain adalah dunia nyata, di mana masalah tersebut
muncul. Model terdiri dari obyek yang berinteraksi dengan saling mengirimkan pesan
(messages). Obyek mempunya hal-hal yang diketahui (attributes) dan hal-hal yang
dapat dilakukan (behaviors atau operations). Nilai dari atribut suatu obyek menentukan
state. Kelas (class) adalah cetak biru untuk obyek. Sebuah kelas membungkus attributes
(data) dan behaviors (methods atau functions) menjadi sebuah entiti yang unik. Obyek
adalah instance dari kelas.
Dalam UML, terdapat 9 jenis diagram pemodelan, yaitu :
a. Use case diagrams
32
Use case diagrams menjelaskan apa yang dilakukan suatu sistem dari sudut
pandang pengamat yang bersifat eksternal. Penekanan ada pada apa (what) yang
dilakukan sistem daripada bagaimana (how) melakukannya Use case diagrams
sangat berhubungan denga scenario. Skenario adalah contoh dari apa yang terjadi
saat seseorang berinteraksi dengan sistem
b. Class Diagrams
Class diagram memberikan garis besar dari sistem tersebut dengan
memperlihatkan kelas-kelas dan hubungan diantaranya. Class Diagrams
berbentuk statis, dengan hanya menunjukkan apa yang berinteraksi, tapi tidak
menunjukkan apa yang terjadi saat interaksi setiap kelas berinteraksi.
c. Packages and object diagrams
Untuk mempermudah diagram kelas yang kompleks, kelas-kelas tersebut dapat
disatukan ke dalam suatu paket (package). Paket adalah koleksi dari elemen
UML yang berinteraksi secara logis.
d. Sequence diagrams
Class and object diagrams adalah bentuk pemodelan statis, sedangkan
Interaction diagrams berbentuk dinamik, dengan menunjukkan bagaimana
obyek berkolaborasi.
Sequence diagram adalah interaction diagram yang menjelaskan dengan detil
bagaimana suatu operasi berjalan, pesan apa yang dikirim dan kapan. Sequence
33
diagrams diatur berdasarkan waktu. Proses berjalannya waktu sejalan dengan
turunnya halaman. Obyek-obyek yang terlibat dalam operasi terdaftar dari kiri ke
kanan menurut waktu terlibatnya.
e. Collaboration diagrams
Collaboration diagrams juga merupakan interaction diagrams. Pada dasarnya
Collaboration diagrams menghasilkan informasi yang sama dengan sequence
diagrams, tapi terfokus pada peranan obyek daripada waktu pesan dikirim.
f. Statechart diagrams
Obyek mempunyai behaviors dan state. State dari sebuah obyek bergantung pada
kondisi atau aktivitasnya pada saat itu.. Statechart diagram menunjukkan
kemungkinan state dari sebuah obyek dan transisinya yang dapat mengakibatkan
perubahan state.
g. Diagram aktivitas (Activity diagrams)
Diagram aktivitas adalah flowchart yang sederhana. Diagram aktivitas dan
statechart diagrams saling berhubungan. Statechart diagram berfokus pada
proses yang dilakukan oleh suatu obyek, activity diagram berfokus pada aliran
aktivitas yang terlibat pada proses tunggal. Activity diagram memperlihatkan
bagaimana tiap aktivitas tersebut bergantung satu sama lain.
h. Component and deployment diagrams
34
Deployment diagrams menunjukkan konfigurasi fisik dari hardware dan
software.
2.4.3 Keuntungan Menggunakan Microsoft Visual Studio .NET
Microsoft Visual Studio .NET mempunyai framework yang merupakan bagian
integral dari next generation aplication dan XML Web Service. Programmer dapat
membuat aplikasi dalam framework .NET menggunakan beberapa bahasa. Masing-
masing dari bahasa tersebut terkompilasi di dalam Microsoft Intermediate Language
(MSIL), yang kemudian dikonversi ke dalam bahasa natif, dan dieksekusi dalam CLR.
Karena tiap bahasa berinteraksi dengan kode yang ditulis dalam CLR, berbagai aplikasi
yang ditulis dengan bahasa yang satu, dapat berinteraksi dengan aplikasi yang ditulis
dengan bahasa lain. Dengan diperkenalkannya CLR, programmer sekarang ini
mempunyai ruang lingkup bahasa yang lebih luas untuk dipilih, sehingga membantu
pemilihan bahasa yang tepat untuk kemampuan mereka dan untuk tugas yang akan
dihadapi.
2.4.4 Microsoft C# .NET
Visual C# .NET adalah suatu bahasa yang simpel, dengan hanya sekitar 80 kata
kunci, dan lusinan tipe data bawaan, namun, C# sangat tepat untuk
mengimplementasikan konsep pemrograman modern.
Bahasa C# diciptakan oleh sebuah tim kecil yang dipimpin oleh 2 programmer
Microsoft, Anders Hejlsberg dan Scott Wiltamuth. Hejlsberg diketahui juga sebagai
pencipta Turbo Pascal, dan tim utama dalam pembuatan Borland Delphi.
35
a. Konsep Object Oriented Programming (OOP) dalam Microsoft C# .NET
Object Oriented Programming merupakan paradigma baru dalam
pemrograman. Ide dasar dari OOP adalah mengkombinasikan data dan method
(fungsi) untuk mengakses data menjadi sebuah kesatuan unit. Unit ini dikenal
dengan nama object (Abdul Kadir, 1995, p4)
Objek merupakan suatu enkapsulasi dari data dan fungsi. Sebuah
peningkatan dari pemahaman sebelumnya dimana posisi data dalam suatu program
lebih rendah dari fungsi atau method, dalam OOP, data mempunyai kedudukan yang
seimbang dengan fungsi atau method.
b. Class dan Object
Class dapat dianalogikan sebagai cetakan obyek. Class menentukan
spesifikasi pembentukan object. Mulai dari jenis data, fungsi – fungsinya, nilai
awalnya, hingga caranya berinteraksi dengan object lainnya.
Sebuah class umumnya terdiri dari variabel instan dan method untuk obyek.
Method merupakan fungsi (subprogram) yang melekat pada sebuah object atau
instansi dari suatu class tertentu.
(http://java.sun.com/docs/books/concepts.class.html)
c. Inheritance
Inheritance merupakan fitur dasar dalam OOP yang memungkinkan untuk
menurunkan data dan fungsionalitas dari sebuah kelas induk. Daripada membuat
suatu obyek dari awal, programmer dapat mengambil kode dari programmer lain,
dan hanya menambahkan fitur-fitur lain yang diperlukan. Obyek induk yang
merupakan dasar dinamakan base class, sedangkan obyek anak yang mewarisi sifat
base class dinamakan derived class.
36
d. Interface
Interface merupakan suatu mekanisme yang disediakan C# yang
memungkinkan agar banyak class dapat berbagi konstanta maupun bentuk method.
Method yang dipergunakan di sini adalah method abstrak, yang hanya terdapat
deklarasi tanpa definisi.
Suatu class hanya dapat mewarisi variabel dan method dari 1 superclass saja
namun dengan mempergunakan interface, satu class dapat memepergunakan abstact
method dan konstanta dari banyak interface berbeda. Interface juga dapat mewarisi
interface lain seperti halnya class dapat mewarisi class lainnya.
2.4.5 Keunggulan Microsoft Visual C# .NET
- Mewarisi secara kuat sifat-sifat C++
Visual C# mewarisi kuat sifat-sifat C++ yang menjamin pondasi kuat bagi
para developer. Bahasa C++ merupakan bahasa pemrograman yang sudah
dikenal luas, sehingga memudahkan programmer seperti C++ dan Java untuk
mempelajarinya.
- Sistem berbasiskan OOP (Object Oriented Programming)
Visual C# menyediakan bahasa modern dan Object Oriented Programming
yang intuitif.
- Akeses kepada Microsoft .NET Framework
- Component-Oriented Development
- Dukungan terhadap ‘XML Comment’
37
Visual C# memungkinkan programmer untuk menggunakan XML Comment,
yang berguna untuk dokumentasi source code yang ampuh dan dapat
dikostumasi.
- XML Web Service yang interaktif
Visual C# memungkinkan pebuatan web service yang berbasiskan XML
- Dapat digunakan pada berbagai target device
Visual C# memungkinkan programmer menghasilkan aplikasi untuk desktop
komputer, berbagai alat seperti handheld dan wireless device menggunakan
tool dan cara pengembangan yang sama
- Model memori ‘C’
Visual C# memberikan akses manajemen memori dan pointer seperti pada
bahasa C jika diperlukan, tidak menghilangkan pointer dan memaksa
programmer untuk menggunakan cara lain seperti pada kebanyakan bahasa
pemrograman.
- Visual C# IDE
Visual C# menyediakan IDE yang canggih, yaitu Visual Studio .NET
development environment, seperti Task Lists, Property Editors, Microsoft
Intellisense, Forms Designer, dan lain lain, yang telah terbukti dengan
memenangkan penghargaan.
2.5 Grafik Komputer
Grafik komputer adalah salah satu bidang dari visual computing, di mana
manusia menggunakan komputer untuk menghasilkan gambar tiruan dan
menggabungkan atau merubah pandangan dari dunia nyata .
38
Perkembangan penting yang pertama dalam dunia grafik komputer adalah
ditemukannya Sketchpad oleh Ivan Sutherland. Sketchpad adalah sebuah alat yang
terdiri dari pensil dan kertas elektronik, di mana goresan di kertas tersebut akan
tergambar dalam komputer.
Bidang-bidang dalam dunia grafik komputer dapat dibagi lagi ke dalam beberapa
bagian, yaitu : real-time 3D rendering (sering digunakan dalam dunia game), computer
animation (animasi komputer), video capture dan video creation rendering, special
effects editing (sering digunakan dalam film dan televisi), image editing, dan modeling
(sering digunakan untuk tujuan medik)
Perkembangan dalam dunia grafik komputer pertama dibiayai oleh akademi-
akademi yang tertarik pada bidang tersebut, dan sponsor pemerintah. Walau begitu, saat
aplikasi dunia nyata dari grafik komputer dalam penyiaran televisi dan film
menghasilkan alternatif yang lebih baik daripada metode tradisional, dunia komersil
mulai ramai membiayai perkembangannya.
Sering disebutkan, bahwa film pertama yang menggunakan grafik komputer
adalah pada tahun 2001 : A Space Odyssey, yang mencoba menunjukkan bagaimana
komputer dapat menghasilkan grafik di masa depan, namun semua efek ‘komputer’ yang
digunakan dalam film tersebut ternyata dibuat dengan gambar tangan.
Mungkin, yang pertama menggunakan grafik komputer adalah Futureworld
(1976), yang memasukkan animasi wajah manusia dan tangan, diproduksi oleh Ed
Catmull dan Fred Parke di Universitas Utah.
2.5.1 Komputer Grafik 2D
Terdapat dua pendekatan dalam grafik 2 dimensi :
39
- Vektor
Grafik vektor menyimpan data geometrik yang tepat, topologi, dan corak
seperti posisi koordinat dari titik, koneksi dari titik ke titik (untuk membentuk
garis atau jalur) dan warna, ketebalan dan kemungkinan pengisian dari bentuk.
Kebanyakan grafik vektor dapat juga menggunakan bentuk standar primitif
seperti lingkaran dan persegi, dll. Pada banyak kasus, grafik vektor harus diubah
terlebih dahulu menjadi raster untuk dapat dilihat.
- Raster
Grafik raster adalah bentuk dua dimensi sususan piksel-piksel. Setiap
piksel mempunyai nilai yang spesifik seperti tingkat kecerahan, transparansi
warna atau kombinasi dari nilai-nilai tersebut. Grafik raster juga mempunyai
resolusi terbatas yang terdiri atas angka spesifil dari baris dan kolom. Tampilan
komputer standar menunjukkan resolusi grafik raster, misalnya 1280 (kolom) x
1024 (baris) piksel. Sekarang ini orang kebanyakan menggabungkan raster dan
vektor dalam format file majemuk (pdf, swf).
2.5.2 Komputer Grafik 3D
Dengan lahirnya komputer workstation (seperti LISP machines, paintbox
computers, dan Silicon Graphics workstation) lahirlah grafik komputer 3 dimensi,
dengan menggunakan metode grafik vektor. Selain menyimpan informasi mengenai
titik, garis dan kurva dalam grafik vektor 2 dimensi, komputer juga menyimpan lokasi
titik, garis, dan bentuk permukaan (untuk membentuk poligon) dalam ruang 3 dimensi.
Poligon 3 dimensi adalah awal lahirnya semua grafik komputer virtual 3 dimensi.
Sebagai akibatnya, kebanyakan mesin grafik 3 dimensi didasarkan pada penyimpanan
40
titik (koordinat tunggal 3 dimensi), garis yang menghubungkan titik-titik tersebut
menjadi satu, dan permukaan antara garis, dan kemudian membentuk permukaan-
permukaan tersebut menjadi poligon 3 dimensi.
Jaman modern ini, grafik komputer sudah sangat jauh berbeda, tidak hanya
penyimpanan sederhana dari poligon. Grafik sekarang ini tidak hanya menghasilkan
bentuk dari koleksi poligon, namun juga dihasilkan dari teknik seperti shading dan
texturing.
a. Shading
Proses pembentukan bayangan (dalam konteks grafik komputer 3D)
melibatkan simulasi komputer (kalkulasi) bagaimana permukaan dari poligon
akan terlihat saat diterangi oleh sumber cahaya virtual. Kalkulasi secara tepat
berbeda tergantung tidak hanya pada data apa yang tersedia tentang permukaan
yang akan dibentuk bayangannya, tapi juga teknik pembentukan bayangan.
- Flat shading: Teknik yang membentuk bayangan setiap poligon dari
sebuah obyek berdasarkan garis normal poligon, posisi, dan intensitas
dari sumber cahaya.
- Gouraud shading: Ditemukan oleh Henri Gouraud tahung 1971, sebuah
teknik yang cepat dan memperhatikan sumber daya, digunakan untuk
mensimulasikan permukaan yang bayangannya lembut dengan
menginterpolasikan warna garis sepanjang permukaan poligon.
- Texture mapping: Teknik untuk simulasi permukaan yang detail dengan
cara memetakan gambar (tekstur) ke dalam poligon-poligon.
- Phong shading: Ditemukan oleh Bui Tuong Phong, teknik pembentukan
bayangan lembut yang memperkirakan pencahayaan permukaan-
41
lengkung dengan cara menginterpolasikan garis normal garis poligon
sepanjang permukaan; model pencahayaan termasuk pemantulan kilap
dengan level kekilapan yang dapat dikontrol.
- Bump mapping: Ditemukan oleh Jim Blinn, sebuah teknik normal-acak
yang digunakan untuk mensimulasikan permukaan bergelombang atau
berkerut. Ray Tracing: A method based on the physical principles of
geometric optics that can simulate multiple reflections and transparency.
- Radiosity : Teknik untuk pencahayaan global yang menggunakan teori
radiatif untuk mensimulasikan pencahayaan tidak langsung (memantul)
dengan permukaan difus.
- Blobs: Teknik untuk merepresentasikan permukaan tanpa menentukan
batas-batas keras, biasanya digunakan untuk permukaan prosedural.
b. Texturing
Permukaan poligon dapat mengandung data tidak hanya warna, tapi juga
kanvas virtual untuk gambar, atau gambar raster yang lain. Gambar semacam ini
diletakkan dalam permukaan, atau seri-permukaan dan disebut sebagai tekstur.
2.5.3 Model Warna
Sebelum memahami model warna, sangat penting untuk memahami perbedaan
pada sistem. Banyak orang memahami warna sebagai cat. Kemudian saat mencampur
biru dan kuning, akan didapatkan hijau muda. Tapi hasilnya akan berbeda jika
mencampurkan hijau dan merah muda. Hal itu akan menghasilkan warna kuning jika
100% merah dicampurkan dengan hijau muda. Jadi ada baiknya memahami kedua sifat
berbeda ini. Jika memperhatikan warna yang dihasilkan monitor, warna yang dihasilkan
42
oleh cahaya, hal ini didasarkan dari model RGB dan ini adalah model warna aditif. Dari
sini lalu muncul cat atau tinta printer. Kemudian ada juga model CMYK, yang adalah
model warna subtraktif
a. Model RGB (Red Green Blue)
Komputer menciptakan warna berdasarkan model RGB (Red Green
Blue). Hal ini menghasilkan spektrum cahaya tampak. Monitor dapat membuat
jutaan warna dengan mengkombinasikan warna primer ini dengan prosentase
yang berbeda baik merah, hijau, maupun biru. Sedangkan dengan piranti lunak
seperti Photoshop dapat dilihat bahwa warna GRB tersebut telah ditambahkan
dengan nilai numerik, antara 0 s/d 255. Dengan RGB, pencampuran merah dan
hijau secara merata dapat menghasilkan kuning, mencampurkan hijau dengan
biru secara merata dapat menghasilkan sian, dan mencampurkan merah dengan
biru secara merata dapat menghasilkan magenta. Ketika ketiga warna, merah,
hijau, dan biru dicampurkan secara merata dapat menghasilkan cahaya putih.
Maka kemudian dinamakan model warna aditif. Contoh lain model RGB adalah
mata manusia dan scanner.
Keuntungan dasar dari model RGB adalah bahwa model ini sangat
berguna untuk penyuntingan warna lengkap karena model ini mampunyai
jangkauan warna yang luas. Namun disaat yang sama model ini tergantung pada
alat. Artinya bagaimana warna ditampilkan pada layar tergantung pada perangkat
keras yang digunakan untuk menampilkannya.
b. Model CMYK (Cyan Magenta Yellow Black)
43
Kebalikan dari RGB adalah CMY (Cyan Magenta Yellow). Tinta printer
dibuat berdasarkan model ini. Dengan mencampurkan sian, magenta, dan kuning
akan didapatkan hitam. Namun prakteknya pada industri printer tidaklah
mungkin untuk menghasilkan warna hitam murni dari ketiga warna ini.
Hasil dari pencampuran CMY adalah coklat tanah karena ketidakmurnian
dari tinta. Maka tinta hitam ditambahkan untuk mendapatkan warna hitam yang
solid. Hasilnya adalah CMYK di mana K merupakan singkatan dari Black, yang
juga dikenal sebagai warna ‘kunci’. Karena hitam adalah campuran penuh dari
semua warna, tingkat sian, magenta, dan kuning harus dikurangi untuk
menghasilkan warna terang. Saat sinar jatuh ke permukaan hijau atau tinta hijau,
permukaan tersebut akan menyerap semua warna dari sinar, kecuali hijau. Oleh
karena itulah model ini disebut subtraktif model. Produksi printer didasarkan
pada model ini.
Gambar 2.8 Model Warna RGB dan CMYK