LAMPIRAN A: DAFTAR UKURAN LAYAR LAPTOP Daftar ukuran layar laptop yang paling diminati di pasaran dapat dilihat pada tabel berikut ini : Nama toko Notebook store Plaza medan fair Lt.IV no.4-5
Hercules computer Plaza medan fair Lt.IV. fcc no.34
Notebook store ETC plaza madan fair Lt. IV no.4-5-26
Famicom Computer center No. 36
Acer point Lt. IV no.58
Urutan 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
Ukuran layar (inchi) 14 10 13 11 dan 12 15 dan 17 10 14 13 11 dan 12 15,16 dan 17 14 10 13 11 dan 12 15,16 dan 17 10 14 11 dan 12 13 15 dan 17 14 10 13 11 dan 12 15 dan 17
1 LAMPIRAN B: DAFTAR URUTAN PROCESSOR MENURUT TAHUN KELUARAN
Intel Pentium Processor : 1993
Saat itu Intel 486 marak di pasaran. Juga orang-orang terbiasa dengan skema nama prosesor 80x86. Ketika Intel sedang sibuk bekerja pada generaso prosesor berikutnya, nama 80586 tidak dapat dipakai. Ada beberapa isu hukum seputar merek dagang nomor 80586 oleh Intel. Jadi, sebagai gantinya, Intel mengubah nama prosesor ke Pentium, sebuah nama yang dengan mudah menjadi trademark. Intel merilis Pentium pada tahun 1993. Performa Pentium asli bekerja pada 60MHz dan 100 MIPS. Juga disebut P5 atau P54, chip yang terkandung 3.210.000 transistor dan bekerja pada 32-bit. Memiliki bus eksternal 64-bit data yang dapat beroperasi dua kali kecepatan 486. Pentium bertahan cukup lama. Ia dirilis pada berbagai kecepatan serta jenis yang berbeda. Bahkan, Intel menerapkan “s-spec” rating yang ditandai pada setiap CPU Pentium yang memberitahu pemilik beberapa data tentang prosesor untuk meyakinkan mereka telah men-set motherboard dengan tepat. Prosesor ini mampu menangani berbagai jenis data seperti suara, bunyi, tulisan tangan, dan foto. Intel Pentium MMX : 1997 Generasi ketiga dari prosesor Pentium adalah Pentium MMX (yang memiliki nama kode P55C) yang dirilis pada tahun 1997. Intel memasukkan tambahan 57 instruksi MMX baru ke dalam prosesor, tanpa melakukan perombakan terhadap desain. karena modul MMX hanya ditambahkan begitu saja ke dalam rancangan Pentium tanpa rancang ulang, Intel terpaksa membuat unit MMX dan FPU melakukan sharing, dalam arti saat FPU aktif MMX non-aktif, dan sebaliknya. Sehingga Pentium MMX dalam mode MMX tidak kompatibel dengan Pentium. Selain ditujukan untuk prosesor desktop, prosesor ini juga tersedia untuk prosesor mobile, yang bekerja pada frekuensi 266MHz/66MHz. Ukuran Cache pun ditingkatkan pada prosesor ini: Pentium MMX memiliki 16 KB Data cache yang bersifat write-back (yang pada versi Pentium sebelumnya hanya terdapat 8 KB).
2 Intel mengganti dudukan prosesor ke socket baru, Socket-7 321-pin, yang memiliki fitur pengatur voltase secara otomatis (Automatic Voltage Regulator Module). Untuk menggunakan prosesor ini, akhirnya pengguna dipaksa lagi untuk mengganti motherboard-nya. Intel Pentium II : 1997 Prosesor Intel Pentium II ialah prosesor penerus Pentium Pro, yang dilengkapi dengan teknologi MMX yang diluncurkan pertama kali pada Mei 1997. Sebelum diberi nama Pentium II, prosesor ini dikenal dengan codename Klamath. Dengan menggunakan teknologi 350 nanometer (0.35 mikron) dan 250 nanometer (0.25 mikron) dan dilengkapi dengan instruksi MMX, prosesor ini menjadi prosesor untuk mainstream setelah Pentium MMX, setelah Pentium Pro mengalami kegagalan pada kelas desktop dan hanya bisa dipakai untuk server. Prosesor ini adalah prosesor 32-bit. Meski ia memiliki address-bus sebesar 36bit yang mampu mengalamati hingga 64 Gigabyte, limitasi pada arsitektur 32-bit menyebabkan prosesor ini hanya mampu mengalamati hingga 4 Gigabyte saja. Pengecualian terjadi pada sistem multiprosesor, yang dikonfigurasikan dalam mode NUMA (Non-Uniform Memory Access) dimana setiap prosesor memiliki jalur memorinya sendiri-sendiri. Intel Celeron : 1998 Processor Intel Celeron merupakan processor yang dikeluarkan sebagai processor yang ditujukan untuk pengguna yang tidak terlalu membutuhkan kinerja processor yang lebih cepat bagi pengguna yang ingin membangun sebuah system computer dengan budget (harga) yang tidak terlalu besar. Celeron adalah keluarga mikroprosesor buatan Intel Corporation dengan arsitektur Pentium II, tetapi dengan sedikit pengurangan memori cache demi mempertahankan faktor ekonomis. Memori cache L2 Celeron hanya berukuran 128KB, sementara Pentium II memiliki memori cache L2 sebesar 612 KB. Celeron dapat dipasang pada motherboard yang mempunyai slot 1 maupun soket PGA 370. Intel Pentium III : 1999
Pentium III mengacu pada merek Intel 320bit x86 desktop dan mobile berdasarkan mikroprosesor generasi keenam mikroarsitektur Intel P6 diperkenalkan
3 pada 26 Februari 1999. Merek prosesor awal yang sangat mirip dengan Pentium II awal-merek mikroprosesor. -
Katmai Versi pertama dari Pentium III diberi kode nama “Katmai” yang menggunakan proses fabrikasi 0,25 micron mirip dengan Pentium II. Perberdaan antara Pentium II dengan Katmai adalah Katamai memiliki intruksi SSE dan L1 cache yang lebih besar. Pentium III tersedia dalam kecepatan 450 dan 550 MHz lalu pada bulan Mei dan Agustus tahun yang sama dikeluarkan Pentium III dengan kecepatan 550 dan 600 MHz.
-
-
Coppermine Versi kedua dari Pentium III yaitu “Coppermine” yang dibuat menggunakan proses fabrikasi 0,18 micron dan memiliki L2 cache yang terintegrasi sebesar 256 KB yang tersedia dalam dua platform, yaitu Slot 1 dan Socket 370. Ketika pertama kali diluncurkan pada bulan Oktober tersedia dalam kecepatan 500, 533, 550, 600, 650, 667, 700, dan 733 MHz dan pada Mei tahun 2000 tersedia dalam kecepatan 750, 800, 850, 866, 933, dan 1000 MHz (1 GHz). Pada pertengahan tahun 2000, diluncurkan Coppermine yang berkecepatan 1,13 GHz, namun belum beberapa lama ditarik kembali karena terbukti tidak stabil. Tualatin Versi ketiga dan terakhir dari Pentium III yang diluncurkan ketika pentium 4 sudah tersedia dipasaran yang diberi kode nama “Tualatin” . Tualatin muncul ke pasaran selama tahun 2001 sampai awal tahun 2002 dengan kecepatan 1,13, 1,2, 1,26, dan 1,4 GHz. Perbedaan Coppermine dan Tualatin adalah Tualatin dibuat dengan menggunakan fabrikasi 0,13 micron dan beberapa Tualatin memiliki L2 cache sebesar 512 KB dan disebut Pentium III-S yang lebih ditujukan untuk server. Tualatin menggunakan platform baru yaitu FC-PGA2. yang menarik dari dari Tulatin adalah teknologi yang diusung Tualatin mirip dengan Pentium 4 dan Athlon XP. Sama sperti Pentium 4, Tualatin juga menggunakan heat spreader untuk melindungi core-nya.
Intel Celeron II : 2000
Sama seperti Pentium III adalah Pentium II dengan SSE dan beberapa fitur yang ditambahkan, Celeron II hanyalah sebuah Celeron dengan SSE, SSE2, dan beberapa fitur tambahan. Chip ini tersedia dari 533 MHz sampai 1,1 GHz. Chip ini pada dasarnya merupakan pengembangan dari Celeron sebelumnya, dirilis untuk menanggapi kompetisi AMD di level low-cost dengan Duron. PSN dari Pentium III telah dinonaktifkan di Celeron II, Intel menyatakan bahwa fitur ini tidak perlu di pasar low-cost. Karena beberapa inefisiensi dalam cache L2 masih menggunakan bus
4 66MHz (kecuali di overclock). Celeron II tidak akan dirilis dengan 100MHz bus support sampai edisi 800MHz, yang dikeluarkan pada awal tahun 2001. Intel Pentium IV : 2000
Akhir tahun 2000 pada bulan November Intel mengeluarkan Intel Pentium 4. Sebenarnya, kecepatan pada Pentium 4 tidak lebih baik dari Pentium III dalam menjalankan proses integer dan floating point. Namun Pentium 4 memiliki kelebihan, yaitu berjalan paga kecepatan (MHz) yang lebih tinggi dan memiliki kinerja yang lebih baik dalam menjalankan intruksi SSE. -
Willamette Versi pertama ini memiliki kode nama “Willamette” diluncurkan dengan kecepatan 1400 dan 1500 MHz dan dibuat dengan menggunakan proses fabrikasi 0,18 micron. Willamette berjalan dengan kecepatan bus (FSB) 400 MHz menggunakan platform baru, yaitu Socket 423 dan diganti menjadi Socket 478. Willamette menawarkan feature yang menarik namun kinerjanya mengecewakan. Pada beberapa hasil pengujian, Willamette tidak dapat mengalahkan saingannya prosesor AMD Athlon dan Pentium III. Awal tahun 2001, Willamette diluncurkan dengan kecepatan 1300 MHz, pada April 2001 diluncurkan dengan kecepatan 1700 MHz dan menarik minat para pengguna saat itu, lalu pada Agustus dikeluarkan Willamette berkecepatan 1600, 1800, 1900, dan 2000 MHz.
-
Northwood Versi kedua ini memiliki kode nama “Northwood” diluncurkan pada awal tahun 2002 tersedia dalam kecepatan 2000 dan 2200 MHz. Northwood dibuat dengan menggunakan proses fabrikasi 0,13 micron dan L2 cache-nya menjadi 512 KB. Intel mengeluarkan Northwood 2400 dan 2530 MHz (2,53 GHz). Northwood 2,53 GHz ini mengalami perubahan kecepatan bus menjadi 533 MHz dan dikenal dengan nama Pentium 4 “B”. Lalu pada bulan Agustus dan November tahun 2002 dikeluarkan Northwood dengan kecepatan 2600, 2800, 3060 MHz.ng menarik dari Northwood adalah mengeluarkan kecepatan yang lebih kecil menggantikan jajaran prosesor Willamette yang dihentikan produksinya. Yang membawa dampak lebih besar dalam perkembangan Pentium 4 ada Northwood 3,06 GHz karena prosesor ini mengusung feature yang menjadi treadmark untuk prosesor Intel selanjutnya, yaitu disediakannya teknologi Hyper-treading pada prosesor untuk komputer pribadi. Hypertreading membuat operating sistem menganggap terdapat dua prosesor yang bekerja dalam satu komputer, padahal terdapat hanya satu logical prosesor dan satu lagi virtual prosesor.
5 Pada April 2003, dirilis Northwood dengan kecepatan 2400 sampai 3000 MHz. Perbedaan dengan northwood yang lama adalah prosesor ini sudah memiliki feature Hyper-treading dan berjalan pada FSB 800 MHz dikenal juga sebagai Pentium 4 “C”. Pada pertengahan tahun 2003 dikeluarkan Northwood dengan kecepatan 3200 MHz dan pada awal 2004 dirilis Northwood yang memiliki kecepatan 3400 MHz. -
Extreme Edition Pada bulan September 2004 diluncurkan versi terbaru dari Pentium 4, yaitu Pentium 4 Exteme Edition yang memiliki spesifikasi teknis sama persis dengan Pentium 4. Bedanya hanya pada Pentium 4 EE ditambahkan Level 3 (L3) cache yang menyebabkan pada aplikasi Office Pentium 4 lebih pelan dari pada Northwood karena L3 cache menyebabkan waktu jeda dalam mengakses data yang lebih besar. Peningkatan kinerja terjadi ketika Pentium 4 EE digunakan untuk aplikasi multimedia seperti game. Saat Pentium 4 EE tersedia dalam kecepatan 3200 dan 3400 MHz. Pentium 4 EE ada juga yang menggunakan platform baru LGA775, yaitu Pentium 4 EE 3,4 GHz.
-
Prescott Pada 1 Febuari 2004, Intel mengenalkan versi terbaru dengan kode nama “Prescott” yang dibuat dengan proses fabrikasi 0,09 micron. Prescott tidak memiliki perbedaan kinerja dibandingkan dengan Willmette. Namun, arsitektur baru memungkinkan Prescott berjalan pada kecepatan yang lebih tinggi. Prescott memiliki pipeline yang lebih panjang dan sudah memiliki instruksi SSE3 dan dikenal dengan Pentium 4 “E”. Prescott pada awalnya tersedia dalam kecepatan 2400 sampai 2800 MHz menggunakan FSB 533 MHz. Kecepatan yang tertinggi terdapat pada Prescott berkecepatan 3,6 GHz. Beberapa Prescott menggunakan platform LGA775. Perbedaan LGA 775 dengan socket adalah pin atau kaki prosesor sudah tidak terdapat lagi pada prosesor tetapi menempel pada socket prosesor di motherboard.
Intel Core 2 : 2005 – Present
Core 2 sendiri adalah generasi ke-8 dari jajaran processor dari Intel yang sudah memakai microprocessor dengan arsitektur x86. Arsitektur tersebut oleh Intel dinamakan dengan Intel Core Microarchitecture, di mana arsitektur tersebut menggantikan arsitektur lama dari Intel yang disebut dengan NetBurst sejak tahun 2000 yang lalu. Penggunaan Core 2 ini juga menandai era processor Intel yang baru, di mana brand Intel Pentium yang sudah digunakan sejak tahun 1993 diganti menjadi Intel Core. - CONROE
6 Processor ini dibangun dengan menggunakan teknologi 65 nm dan ditujukan untuk penggunaan desktop menggantikan jajaran Pentium 4 dan Pentium D. Bahkan pihak Intel mengklaim bahwa Conroe mempunyai performa 40% lebih baik dibandingkan dengan Pentium D. Core 2 Duo hanya membutuhkan daya yang lebih kecil 40% dibandingkan dengan Pentium D. Beberapa jenis Conroe yang sudah beredar di pasaran adalah tipe E6300 dengan clock speed sebesar1.86 GHz, tipe E6400 dengan clock speed sebesar 2.13 GHz, tipe E6600 dengan clock speed sebesar 2.4 GHz, dan tipe E6700 dengan clock speed sebesar 2.67 GHz. Untuk processor dengan tipe E6300 dan E6400 mempunyai Shared L2 Cache sebesar 2 MB, sedangkan tipe yang lainnya mempunyai L2 cache sebesar 4 MB. Jajaran dari processor ini memiliki FSB (Front Side BUS) sebesar 1066 MT/s (Megatransfer) dan daya yang dibutuhkan hanya sebesar 65 Watt TDP (Thermal Design Power). Berdasarkan pengetesan yang ada processor dari keluarga Core 2 tersebut mampu menandingi musuh besarnya, yaitu AMD. Dan pada saat di-overclocking sampai sebesar 4 GHz sekalipun, processor dengan tipe E6600 dan E6700 masih mampu berkerja secara stabil walaupun multipliers yang dimiliki sangat terbatas. - CONROE XE Conroe XE sendiri adalah core processor dari Intel Core 2 Extreme yang diluncurkan bersamaan dengan Intel Core 2 Duo pada 27 Juli 2006. Conroe XE mempunyai tenaga lebih dibandingkan dengan Conroe. Tipe pertama dan satu-satunya yang dikeluarkan oleh Intel untuk jajaran processor Core 2 Extreme adalah X6800 dan sudah beredar di pasaran saat ini dengan jumlahnya sangat terbatas. Processor Intel Core 2 yang sudah memakai Intel Core 2 Extreme dengan core Conroe XE ini akan menggantikan posisi dari Processor Pentium 4 EE (Extreme Edition) dan Dual Core Extreme Edition. Core 2 Extreme mempunyai clock speed sebesar 2.93 GHz dan FSB sebesar 1066 MT/s. Keluarga dari Conroe XE memerlukan TDP hanya sebesar 75 sampai 80 Watt. Dalam keadaan full load temperature processor dari X6800 yang dihasilkan tidak akan melebihi 450C. Lain lagi jika fungsi SpeedStep-nya berada dalam keadaan aktif, maka temperatur processor saat keadaan idle yang dihasilkan oleh X6800 hanya berkisar sekitar 250C. Hampir sama seperti Core 2 Duo, Core 2 Extreme memiliki shared L2 cache sebesar 4 MB hanya saja perbedaan yang paling terlihat dari kedua Conroe tersebut adalah kecepatan dari masing-masing clock speednya saja. Core 2 Extreme mempunyai fitur untuk merubah multipliers sampai 11x (step) untuk mendapatkan hasil overclocking yang maksimal. Fiturfitur unik lain yang disertakan juga pada Core 2 Extreme Edition kali ini adalah FSB yang lebih besar, L2 cache lebih besar, dan adanya L3 cache. Intel Core 2 Extreme Edition dengan tipe X6800 mempunyai kinerja 36% lebih tinggi dibandingkan dengan AMD Athlon 64 FX-62. Core 2 Extreme Edition X6800 mampu dioverclock sampai 3.4 GHz hanya dengan menggunakan sebuah heatsink standar saja.
7 - ALLENDALE Core processor ini dipakai oleh processor Core 2 Duo dengan core Conroe yang hanya memiliki 2 MB L2 Cache. Beberapa Core 2 Duo yang memakai Allendale sebagai core processornya adalah E6300 dengan clock speed sebesar 1.86 GHz dan E6400 dengan clock speed 2.13 GHz, keduanya memiliki FSB sebesar 1066 MT/s. Intel Core 2 Quad : 2006
Intel Core 2 Quad Q6600 di keluarkan pada tahun 2006. Processor untuk type desktop dan digunakan pada orang yang ingin kekuatan lebih dari komputer yang ia miliki memiliki 2 buah core dengan konfigurasi 2.4GHz dengan 8MB L2 cache (sampai dengan 4MB yang dapat diakses tiap core), 1.06GHz Front-side bus, dan thermal design power ( TDP ). Intel juga meliris jenis prosesor lain yaitu dengan nama Core 2 Quad Q8200. Prosesor ini memiliki Core clock sebesar 2.33GHz dan diperkenalkan pada 31 Agustus 2006 Intel Atom : 2008
Intel Atom ini diklaim oleh Intel sebagai prosesor terkecil, dibuat dengan teknologi baru yang disebut “hafnium infused 45 nanometer high-k silicon” yang disingkat dengan sebutan teknologi 45 nanometer. Prosesor yang besarnya kurang dari 26 milimeter persegi itu mengandung 47 juta transistor. Selain terkecil dalam ukuran, Atom juga diklaim kecil dalam mengonsumsi daya. yaitu membutuhkan daya kurang dari 1 watt sampai 2,5 watt. sehingga cocok untuk perangkat mobile karena akan hemat baterai. Intel Core i7 : 2008
8
Generasi terbaru prosesor Intel dikeluarkan di awal bulan November 2008. Prosesor ini merupakan generasi penerus dari prosesor sebelumnya dengan tetap menggunakan nama Core, walaupun secara mikroarsitektur sudah berbeda dengan Core 2 dan Core. Prosesor ini mempunyai codename Nehalem. Spesifikasi yang membedakan Core i7 dengan prosesor-prosesor lainnya adalah: 1. Memiliki performa lebih tinggi dan lebih efisien dalam penggunaan energi dibandingkan dengan prosesor sebelumnya. 2. FSB (Front Side Bus) digantkan dengan Quick Path Interface. Smentara ini hanya chipset yang mendukung QuickPath Interface saja yang bisa menggunakan prosesor ini, misal chipset Intel X58. 3. Memory Controller ada dalam prosesor, tidak seperti yang sebelumnya terpisah dalam chip tersendiri. Dengan teknologi ini memori akan langsung terhubung dengan prosesor. 4. Support Three Channel Memory, tiap-tiap kanal berisi 2 slot memori, sehingga total slot yang ada dalam mainboard yang mendukung prosesor ini ada 6 slot. Tentu saja kapasitas memori yang bisa disupport oleh prosesor ini akan semakin besar. 5. Prosesor Core i7 ini hanya mendukung jenis DDR3 6. Core i7 menggunakan single-die device : core (inti prosesor), memory controller, dan cache berada dalam satu die. 7. Menggunakan tipe soket baru yaitu Socket B (soket LGA 1366) Selain penjelasan diatas, ternyata prosesor Core i7 ini menggunakan kembali teknologi lama Intel Pentium yaitu Hyper-Threading yang sudah tidak diaplikasikan semenjak generasi Intel Core. Intel Pentium E6600 : 2010 Pentium dual core tercepat Wolfdale 45nm saat ini adalah Pentium E6600 dan pda kuartal 1 2010 suksesor dari E6600 telah dipasarkan. Intel Pentium E6500 ini memiliki kecepatan 2.93GHz, FSB 1,066MHz, cache 2MB dan konsumsi power 65W TDP. Suksesornya yaitu E6600 akan menjadi Pentium pertama berbasis Wolfdale dengan teknologi 45nm yang mencapai kecepatan 3.06GHz, yang dirilis pada Januari 2010. Intel Atom : 2010
9
Intel tidak berhenti mengeluarkan CPU Atom terbaru. Setelah Intel mengumumkan pengiriman Atom N470, N475 dan N455 pada kuartal 2010. Sekarang Intel bersiap mengirim CPU Atom untuk desktop tercepat yaitu N475 dan N455 yang sudah mendukung memori DDR3. Atom D519 ini adalah dual core dengan kecepatan 1.66GHz yang akan segera dikirim. Dan sekarang Intel merencanakan Atom D525 1,8GHz, D525 ini bisa mendukung DDR2 dan DDR3 dan memiliki clock speed yang lebih tinggi sekitar 140MHz, D510 menggunakan konsumsi power 13W TDP sedangkan D525 menggunakan konsumsi power yang sama. Core i7 870s : 2010
Setelah berita mengenai CPU Intel yang corenya dapat diunlock yaitu Core i7 875K dan Core i5 655K. Sekarang Intel mengenalkan CPU baru yaitu Core i7 870s pada beberapa bulan lagi. CPU ini adalah versi lower dari Core i7 870, Core i7 870s ini memiliki clock speed 2.66GHz sedangkan Core i7 870 memiliki clock speed 2.93GHz. tetapi kedua CPU ini dapat mencapa kecepatan 3.6GHz dengan Turbo Boost. Core i7 870s ini memiliki konsumsi power 82W TDP dimana Core i7 870 memiliki konsumsi power 95W. Spesifikasi keduanya sama dan berbasis Lynnfield quad core 45nm dan cocok menggunakan soket LGA 1156.
1
LAMPIRAN C: LISTING PROGRAM FrmMenu unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, jpeg, ExtCtrls; type TFrmMenu = class(TForm) MainMenu1: TMainMenu; Data1: TMenuItem; Laptop1: TMenuItem; Metode1: TMenuItem; AHP1: TMenuItem; Image1: TImage; procedure AHP1Click(Sender: TObject); procedure Laptop1Click(Sender: TObject); procedure OPSIS1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var FrmMenu: TFrmMenu; implementation uses Unit2, Unit3, Unit5; {$R *.dfm} procedure TFrmMenu.AHP1Click(Sender: TObject); begin FrmMtdAhp.Show end; procedure TFrmMenu.Laptop1Click(Sender: TObject); begin FrmData.Show end; procedure TFrmMenu.OPSIS1Click(Sender: TObject); begin FrmMtdTOPSIS.Show end; end.
FrmMtdAHP unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls; type TFrmMtdAHP = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel;
2
Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label19: TLabel; Label20: TLabel; Label21: TLabel; Label22: TLabel; Label23: TLabel; Label24: TLabel; Label25: TLabel; Label26: TLabel; Label27: TLabel; Label28: TLabel; Label29: TLabel; Label30: TLabel; Label31: TLabel; Label32: TLabel; Label33: TLabel; Label34: TLabel; Label35: TLabel; Label36: TLabel; Label37: TLabel; Label38: TLabel; Label39: TLabel; Label40: TLabel; Label41: TLabel; Label42: TLabel; Label43: TLabel; Label44: TLabel; Label45: TLabel; Label46: TLabel; Label47: TLabel; Label48: TLabel; Label49: TLabel; Label50: TLabel; Label51: TLabel; Label52: TLabel; Label53: TLabel; Label54: TLabel; Label55: TLabel; Label56: TLabel; Label57: TLabel; Label58: TLabel; Label59: TLabel; Label60: TLabel; Label61: TLabel; Label62: TLabel; Label63: TLabel;
3
Label64: TLabel; Label65: TLabel; Label66: TLabel; Label67: TLabel; Label68: TLabel; Label69: TLabel; Label70: TLabel; Label71: TLabel; Label72: TLabel; Label73: TLabel; Label74: TLabel; Label75: TLabel; Label76: TLabel; Label77: TLabel; Label78: TLabel; Label79: TLabel; Label80: TLabel; Label81: TLabel; Label82: TLabel; Label83: TLabel; Label84: TLabel; Label85: TLabel; Label86: TLabel; Label87: TLabel; Label88: TLabel; Label89: TLabel; Label90: TLabel; BtNext: TButton; Image1: TImage; procedure BtNextClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var FrmMtdAHP: TFrmMtdAHP; implementation uses Unit4; {$R *.dfm} procedure TFrmMtdAHP.BtNextClick(Sender: TObject); begin FrmMtdAHP1.Show; FrmMtdAHP.Hide; end; end.
FrmData unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, DB, DBTables, ADODB, jpeg, ExtCtrls; type TFrmData = class(TForm) DataSource1: TDataSource; Label1: TLabel;
4
Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; EdKode: TEdit; EdHarga: TEdit; BtSimpan: TButton; BtKembali: TButton; DBGrid1: TDBGrid; BtEdit: TButton; BtHapus: TButton; BtKeluar: TButton; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; Image1: TImage; ADOQuery2: TADOQuery; DataSource2: TDataSource; ComboLayar: TComboBox; Label11: TLabel; Label12: TLabel; Combo_Uk_Memori: TComboBox; Combo_Type_Memori: TComboBox; ComboWebcam: TComboBox; ComboBluetooth: TComboBox; ComboProcessor: TComboBox; ComboHarddisk: TComboBox; ComboMerek: TComboBox; ComboType: TComboBox; ADOQuery3: TADOQuery; ADOQuery4: TADOQuery; procedure BtSimpanClick(Sender: TObject); procedure refresh; procedure BtKeluarClick(Sender: TObject); procedure BtEditClick(Sender: TObject); procedure BtHapusClick(Sender: TObject); procedure BtKembaliClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure ComboMerekChange(Sender: TObject); private { Private declarations } public { Public declarations } end; var FrmData: TFrmData; implementation uses Unit9; {$R *.dfm} procedure TFrmData.refresh; var query,query_konv:string; begin query:='select * from id_laptop'; ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(query);
5
ADOQuery1.Active:=true; end; procedure TFrmData.BtSimpanClick(Sender: TObject); const petik=''''; var query_kode,query,query_konv,query_konv_kode,merk:string; harga,layar,processor,uk_memori,type_memori,harddisk,bluetooth,webcam :integer; begin merk:=ComboMerek.Text+' '+ComboType.Text+' '+EdKode.Text; query_kode:='select * from id_laptop where merek_type='+petik+merk+petik; ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(query_kode); ADOQuery1.Active:=true; if(ADOQuery1.RecordCount=0) then begin query:='insert into id_laptop values('+petik+merk+petik+','+petik+EdHarga.Text+petik+','+petik+Comb oLayar.Text+petik+','+petik+ComboProcessor.Text+petik+','+petik+Combo _Uk_Memori.Text+petik+','+petik+Combo_Type_Memori.Text+petik+','+peti k+ComboHarddisk.Text+petik+','+petik+ComboBluetooth.Text+petik+','+pe tik+ComboWebcam.Text+petik+')'; ADOConnection1.Execute(query); ShowMessage('Data Laptop Berhasil Disimpan'); if (strtoint(EdHarga.Text)>15000000) then begin harga:=1; end else if (strtoint(EdHarga.Text)>=8500000) then begin harga:=2; end else if (strtoint(EdHarga.Text)>=7000000) then begin harga:=3; end else if (strtoint(EdHarga.Text)>=5500000) then begin harga:=4; end else if (strtoint(EdHarga.Text)<5500000) then begin harga:=5; end; if (ComboLayar.Text='15') or (ComboLayar.Text='17') then begin layar:=1; end else if (ComboLayar.Text='11') or (ComboLayar.Text='12') then begin layar:=2; end else if (ComboLayar.Text='14') then begin layar:=5; end else if (ComboLayar.Text='10') then begin
6
layar:=4; end else if (ComboLayar.Text='13') begin layar:=3; end;
then
if (ComboProcessor.Text='pentium')then begin processor:=1; end else if (ComboProcessor.Text='dual core')or (ComboProcessor.Text='core 2 duo')or(ComboProcessor.Text='atom') then begin processor:=2; end else if (ComboProcessor.Text='dual core') then begin processor:=2; end else if (ComboProcessor.Text='core i3') then begin processor:=3; end else if (ComboProcessor.Text='core i5') then begin processor:=4; end else if (ComboProcessor.Text='core i7') then begin processor:=5; end; if Combo_Uk_Memori.Text= '1' then begin uk_memori:=1; end else if Combo_Uk_Memori.Text= '2' then begin uk_memori:=2; end else if Combo_Uk_Memori.Text= '3' then begin uk_memori:=3; end else if Combo_Uk_Memori.Text= '4' then begin uk_memori:=4; end else if Combo_Uk_Memori.Text= '8' then begin uk_memori:=5; end; if Combo_Type_Memori.Text= 'DDR2' then begin type_memori:=3; end else if Combo_Type_Memori.Text= 'DDR3' then begin type_memori:=5; end;
7
if ComboHarddisk.Text='250' then begin harddisk:=1; end else if ComboHarddisk.Text='320' then begin harddisk:=2; end else if ComboHarddisk.Text='500' then begin harddisk:=3; end else if ComboHarddisk.Text='640' then begin harddisk:=4; end else if ComboHarddisk.Text>='>640' then begin harddisk:=5; end; if ComboBluetooth.Text='Ada' then begin bluetooth:=5; end else if ComboBluetooth.Text='Tidak Ada' then begin bluetooth:=3; end; if ComboWebcam.Text='Ada' then begin webcam:=5; end else if ComboWebcam.Text='Tidak Ada' then begin webcam:=3; end; query_konv:='insert into htgahp_topsis(merek_type,harga,ukuran_layar,processor,kapasitas_memor i,type_memori,harddisk,bluetooth,webcam) values('+petik+merk+petik+','+inttostr(harga)+','+inttostr(layar)+',' +inttostr(processor)+','+inttostr(uk_memori)+','+inttostr(type_memori )+','+inttostr(harddisk)+','+inttostr(bluetooth)+','+inttostr(webcam) +')'; ADOConnection1.Execute(query_konv); end else begin ShowMessage('Data Laptop Telah ada Sebelumnya'); end; refresh; end; procedure TFrmData.ComboMerekChange(Sender: TObject); const petik=''''; var query:string; begin query:='select * from type as t, merek as m where m.nama_merek='+petik+ComboMerek.Text+petik+' and m.id_merek=t.id_merek'; ADOQuery4.Active:=false; ADOQuery4.SQL.Clear;
8
ADOQuery4.SQL.Add(query); ADOQuery4.Active:=true; ComboType.Items.Clear; ComboType.Text:='Pilih Type'; while not (ADOQuery4.Eof) do begin ComboType.AddItem(ADOQuery4.FieldByName('nama_type').Value,self); ADOQuery4.Next; end; end; procedure TFrmData.FormShow(Sender: TObject); var query:string; begin refresh; query:='select * from merek'; ADOQuery3.Active:=false; ADOQuery3.SQL.Clear; ADOQuery3.SQL.Add(query); ADOQuery3.Active:=true; ComboMerek.Items.Clear; while not (ADOQuery3.Eof) do begin ComboMerek.AddItem(ADOQuery3.FieldByName('nama_merek').Value,self); ADOQuery3.Next; end; end; procedure TFrmData.BtKeluarClick(Sender: TObject); begin Application.Terminate end; procedure TFrmData.BtEditClick(Sender: TObject); begin FrmEditData.Show; end; procedure TFrmData.BtHapusClick(Sender: TObject); var query:string; begin query:='truncate id_laptop'; ADOConnection1.Execute(query); query:='truncate htgahp_topsis'; ADOConnection1.Execute(query); query:='truncate ranking'; ADOConnection1.Execute(query); ShowMessage('Database Telah dikosongkan'); refresh; end; procedure TFrmData.BtKembaliClick(Sender: TObject); begin FrmData.Hide; end; end.
FrmMtdAHP1 unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
9
Dialogs, StdCtrls, jpeg, ExtCtrls, DB, ADODB; type TFrmMtdAHP1 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label19: TLabel; Label20: TLabel; Label21: TLabel; Label22: TLabel; Label23: TLabel; Label24: TLabel; Label25: TLabel; Label26: TLabel; Label27: TLabel; Label28: TLabel; Label29: TLabel; Label30: TLabel; Label31: TLabel; Label32: TLabel; Label33: TLabel; Label34: TLabel; Label35: TLabel; Label36: TLabel; Label37: TLabel; Label38: TLabel; Label39: TLabel; Label40: TLabel; Label41: TLabel; Label42: TLabel; Label43: TLabel; Label44: TLabel; Label45: TLabel; Label46: TLabel; Label47: TLabel; Label48: TLabel; Label49: TLabel; Label50: TLabel; Label51: TLabel; Label52: TLabel; Label53: TLabel; Label54: TLabel; Label55: TLabel; Label56: TLabel; Label57: TLabel;
10
Label58: TLabel; Label59: TLabel; Label60: TLabel; Label61: TLabel; Label62: TLabel; Label63: TLabel; Label64: TLabel; Label65: TLabel; Label66: TLabel; Label67: TLabel; Label68: TLabel; Label69: TLabel; Label70: TLabel; Label71: TLabel; Label72: TLabel; Label73: TLabel; Label74: TLabel; Label75: TLabel; Label76: TLabel; Label77: TLabel; Label78: TLabel; Label79: TLabel; Label80: TLabel; Label81: TLabel; Label82: TLabel; Label83: TLabel; Label84: TLabel; Label85: TLabel; Label86: TLabel; Label87: TLabel; Label88: TLabel; Label89: TLabel; Label90: TLabel; Label91: TLabel; Label92: TLabel; Label93: TLabel; Label94: TLabel; Label95: TLabel; Label96: TLabel; Label97: TLabel; Label98: TLabel; Label99: TLabel; Label100: TLabel; Label101: TLabel; Label102: TLabel; Label103: TLabel; Label104: TLabel; Label105: TLabel; Label106: TLabel; Label107: TLabel; BtLanjut_TOPSIS: TButton; Image1: TImage; Image2: TImage; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; procedure BtLanjut_TOPSISClick(Sender: TObject); procedure get_query(query:string); private { Private declarations } public
11
{ Public declarations } end; var FrmMtdAHP1: TFrmMtdAHP1; implementation uses Unit5; {$R *.dfm} procedure TFrmMtdAHP1.get_query(query:string); begin FrmMtdTOPSIS.ADOQuery1.Active:=false; FrmMtdTOPSIS.ADOQuery1.SQL.Clear; query:='select*from htgahp_topsis'; FrmMtdTOPSIS.ADOQuery1.SQL.Add(query); FrmMtdTOPSIS.ADOQuery1.Active:=true; end; procedure TFrmMtdAHP1.BtLanjut_TOPSISClick(Sender: TObject); const petik=''''; var harga_norm,ukuran_layar_norm,processor_norm,kapasitas_memori_norm,typ e_memori_norm,harddisk_norm,bluetooth_norm,webcam_norm,harga_norm_bob ot,ukuran_layar_norm_bobot,processor_norm_bobot,kapasitas_memori_norm _bobot,type_memori_norm_bobot,harddisk_norm_bobot,bluetooth_norm_bobo t,webcam_norm_bobot,pembagi_harga,pembagi_layar,pembagi_processor,pem bagi_kapmem,pembagi_tipmem,pembagi_harddisk,pembagi_bluetooth,pembagi _webcam:double; query:string; query_update,query_kode,query_ranking,query_prioritas:string; i,n:integer; mat_norm:array[1..100,1..100]of double; pembagi:array[1..100]of double; mat_norm_bobot:array[1..100,1..100]of double; bobot:array[1..100] of double; x:array[1..100,1..100]of integer; max,min:array[1..100]of double; sep_neg,sep_pos:array[1..100]of double; kode:array[1..100]of string; c:array[1..100]of double; j: Integer; k: Integer; begin FrmMtdTOPSIS.show; refresh; i:=1; while not(FrmMtdTOPSIS.ADOQuery1.Eof) do begin kode[i]:=FrmMtdTOPSIS.ADOQuery1.FieldByName('merek_type').Value; x[i,1]:=FrmMtdTOPSIS.ADOQuery1.FieldByName('harga').Value; x[i,2]:=FrmMtdTOPSIS.ADOQuery1.FieldByName('ukuran_layar').Value; x[i,3]:=FrmMtdTOPSIS.ADOQuery1.FieldByName('processor').Value; x[i,4]:=FrmMtdTOPSIS.ADOQuery1.FieldByName('kapasitas_memori').Value; x[i,5]:=FrmMtdTOPSIS.ADOQuery1.FieldByName('type_memori').Value; x[i,6]:=FrmMtdTOPSIS.ADOQuery1.FieldByName('harddisk').Value; x[i,7]:=FrmMtdTOPSIS.ADOQuery1.FieldByName('bluetooth').Value; x[i,8]:=FrmMtdTOPSIS.ADOQuery1.FieldByName('webcam').Value; pembagi_harga:=pembagi_harga+sqr(x[i,1]); pembagi_layar:=pembagi_layar+sqr(x[i,2]); pembagi_processor:=pembagi_processor+sqr(x[i,3]); pembagi_kapmem:=pembagi_kapmem+sqr(x[i,4]); pembagi_tipmem:=pembagi_tipmem+sqr(x[i,5]);
12
pembagi_harddisk:=pembagi_harddisk+sqr(x[i,6]); pembagi_bluetooth:=pembagi_bluetooth+sqr(x[i,7]); pembagi_webcam:=pembagi_webcam+sqr(x[i,8]); i:=i+1; FrmMtdTOPSIS.ADOQuery1.Next; end; pembagi[1]:=sqrt(pembagi_harga); pembagi[2]:=sqrt(pembagi_layar); pembagi[3]:=sqrt(pembagi_processor); pembagi[4]:=sqrt(pembagi_kapmem); pembagi[5]:=sqrt(pembagi_tipmem); pembagi[6]:=sqrt(pembagi_harddisk); pembagi[7]:=sqrt(pembagi_bluetooth); pembagi[8]:=sqrt(pembagi_webcam); query:='select * from kriteria'; ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(query); ADOQuery1.Active:=true; n:=1; while not ADOQuery1.Eof do begin bobot[n]:=StrToFloat(adoquery1.FieldByName('bobot').Value); n:=n+1; ADOQuery1.Next; end; for j := 1 to i - 1 do begin for k := 1 to 8 do begin mat_norm[j,k]:=x[j,k]/pembagi[k]; mat_norm_bobot[j,k]:=mat_norm[j,k]*bobot[k]; end; query_update:='update htgahp_topsis set harga_norm='+FloatToStr(mat_norm[j,1])+',ukuran_layar_norm='+floattos tr(mat_norm[j,2])+',processor_norm='+FloatToStr(mat_norm[j,3])+',kapa sitas_memori_norm='+FloatToStr(mat_norm[j,4])+',type_memori_norm='+Fl oatToStr(mat_norm[j,5])+',harddisk_norm='+FloatToStr(mat_norm[j,6])+' ,bluetooth_norm='+FloatToStr(mat_norm[j,7])+',webcam_norm='+FloatToSt r(mat_norm[j,8])+',harga_norm_bobot='+FloatToStr(mat_norm_bobot[j,1]) +',ukuran_layar_norm_bobot='+floattostr(mat_norm_bobot[j,2])+',proces sor_norm_bobot='+FloatToStr(mat_norm_bobot[j,3])+',kapasitas_memori_n orm_bobot='+FloatToStr(mat_norm_bobot[j,4])+',type_memori_norm_bobot= '+FloatToStr(mat_norm_bobot[j,5])+',harddisk_norm_bobot='+FloatToStr( mat_norm_bobot[j,6])+',bluetooth_norm_bobot='+FloatToStr(mat_norm_bob ot[j,7])+',webcam_norm_bobot='+FloatToStr(mat_norm_bobot[j,8])+' where merek_type='+petik+kode[j]+petik; ADOConnection1.Execute(query_update); end; for j := 1 to 8 do begin max[j]:=0; min[j]:=1; for k := 1 to i-1 do begin if(mat_norm_bobot[k,j]>max[j])then max[j]:=mat_norm_bobot[k,j]; if(mat_norm_bobot[k,j]<min[j])then min[j]:=mat_norm_bobot[k,j]; end;
13
query_update:='update kriteria set solusi_positif='+FloatToStr(max[j])+',solusi_negatif='+FloatToStr(min [j])+' where kode_kriteria='+petik+inttostr(j)+petik; ADOConnection1.Execute(query_update); end; for j := 1 to i-1 do begin sep_pos[j]:=0; for k := 1 to 8 do begin sep_pos[j]:=sep_pos[j]+sqr(mat_norm_bobot[j,k]-max[k]); sep_neg[j]:=sep_neg[j]+sqr(mat_norm_bobot[j,k]-min[k]); end; sep_pos[j]:=sqrt(sep_pos[j]); sep_neg[j]:=sqrt(sep_neg[j]); if(sep_neg[j]+sep_pos[j]=0)then c[j]:=sep_neg[j] else begin c[j]:=sep_neg[j]/(sep_neg[j]+sep_pos[j]); end; query_update:='update htgahp_topsis set separasi_positif='+FloatToStr(sep_pos[j])+',separasi_negatif='+FloatT oStr(sep_neg[j])+',c='+FloatToStr(c[j])+' where merek_type='+petik+kode[j]+petik; ADOConnection1.Execute(query_update); end; query_ranking:='truncate table ranking'; ADOConnection1.Execute(query_ranking);query_prioritas:='select * from htgahp_topsis order by c DESC'; ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(query_prioritas); ADOQuery1.Active:=true; i:=1; while not ADOQuery1.Eof do begin query_ranking:='insert into ranking values('+petik+inttostr(i)+petik+','+petik+ADOQuery1.FieldByName('mer ek_type').Value+petik+')'; ADOConnection1.Execute(query_ranking); i:=i+1; ADOQuery1.Next; end; FrmMtdAHP1.close; end; end.
FrmMtdTOPSIS unit Unit5; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables, jpeg, ExtCtrls, ADODB; type TFrmMtdTOPSIS = class(TForm) Label1: TLabel;
14
Label2: TLabel; DataSource1: TDataSource; DBGrid1: TDBGrid; BtLanjut: TButton; Image1: TImage; Image2: TImage; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DataSource2: TDataSource; DBGrid3: TDBGrid; BtnProses: TButton; BtnKembali: TButton; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label9: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label19: TLabel; Label18: TLabel; Label20: TLabel; ADOQuery2: TADOQuery; procedure BtLanjutClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure BtnProsesClick(Sender: TObject); procedure BtnKembaliClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var FrmMtdTOPSIS: TFrmMtdTOPSIS; implementation {$R *.dfm} uses unit6, Unit1; procedure TFrmMtdTOPSIS.BtLanjutClick(Sender: TObject); begin FrmMtdTOPSIS1.show end; procedure TFrmMtdTOPSIS.BtnKembaliClick(Sender: TObject); begin FrmMenu.Show; FrmMtdTOPSIS.Close; end; procedure TFrmMtdTOPSIS.BtnProsesClick(Sender: TObject); begin FrmMtdTOPSIS1.Show; FrmMtdTOPSIS.Hide; end; procedure TFrmMtdTOPSIS.FormShow(Sender: TObject);
15
begin ADOConnection1.Connected:=true; ADOQuery1.Active:=false; ADOQuery1.Active:=true; ADOQuery2.Active:=false; ADOQuery2.Active:=true; end; end.
FrmMtdTOPSIS1 unit Unit6; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids, jpeg, ExtCtrls, ADODB; type TFrmMtdTOPSIS1 = class(TForm) Label1: TLabel; Label2: TLabel; DBGrid1: TDBGrid; DBGrid2: TDBGrid; BtnLanjut: TButton; Label3: TLabel; Image1: TImage; ADOQuery2: TADOQuery; ADOQuery1: TADOQuery; ADOConnection1: TADOConnection; DataSource2: TDataSource; DataSource1: TDataSource; procedure BtnLanjutClick(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var FrmMtdTOPSIS1: TFrmMtdTOPSIS1; implementation uses Unit7; {$R *.dfm} procedure TFrmMtdTOPSIS1.BtnLanjutClick(Sender: TObject); begin FrmMtdTOPSISII.show; FrmMtdTOPSIS1.Hide; end; procedure TFrmMtdTOPSIS1.FormShow(Sender: TObject); begin ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select merek_type,harga_norm,ukuran_layar_norm,processor_norm,kapasitas_memo ri_norm,type_memori_norm,harddisk_norm,bluetooth_norm,webcam_norm from htgahp_topsis'); ADOQuery1.Active:=true; ADOQuery2.Active:=false; ADOQuery2.SQL.Clear;
16
ADOQuery2.SQL.Add('select merek_type, harga_norm_bobot, ukuran_layar_norm_bobot, processor_norm_bobot, kapasitas_memori_norm_bobot, type_memori_norm_bobot, harddisk_norm_bobot, bluetooth_norm_bobot, webcam_norm_bobot from htgahp_topsis'); ADOQuery2.Active:=true; end; end.
FrmMtdTOPSISII unit Unit7; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids, jpeg, ExtCtrls, ADODB; type TFrmMtdTOPSISII = class(TForm) Label1: TLabel; DBGrid1: TDBGrid; Label2: TLabel; DBGrid2: TDBGrid; BtnLanjut: TButton; Image1: TImage; DataSource2: TDataSource; ADOQuery2: TADOQuery; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DataSource3: TDataSource; procedure BtnLanjutClick(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var FrmMtdTOPSISII: TFrmMtdTOPSISII; implementation uses Unit8; {$R *.dfm} procedure TFrmMtdTOPSISII.BtnLanjutClick(Sender: TObject); begin FrmMtdTOPSISIII.Show; FrmMtdTOPSISII.Hide; end; procedure TFrmMtdTOPSISII.FormShow(Sender: TObject); var jlh:integer; begin ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from id_laptop'); ADOQuery1.Active:=true; jlh:=ADOQuery1.RecordCount; if(jlh>0)then begin ADOQuery1.Active:=false; ADOQuery1.SQL.Clear;
17
ADOQuery1.SQL.Add('select nama_kriteria,solusi_positif,solusi_negatif from kriteria'); ADOQuery1.Active:=true; end else ADOQuery1.Active:=false; ADOQuery2.Active:=false; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('select merek_type,separasi_negatif,separasi_positif from htgahp_topsis'); ADOQuery2.Active:=true; end; end.
FrmMtdTOPSISIII unit Unit8; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, jpeg, ExtCtrls, ADODB; type TFrmMtdTOPSISIII = class(TForm) Label1: TLabel; DBGrid1: TDBGrid; BtnKeluar: TButton; Image1: TImage; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DataSource3: TDataSource; BtKembali: TButton; procedure BtnKeluarClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure BtKembaliClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var FrmMtdTOPSISIII: TFrmMtdTOPSISIII; implementation uses Unit1; {$R *.dfm} procedure TFrmMtdTOPSISIII.BtKembaliClick(Sender: TObject); begin FrmMenu.Show; FrmMtdTOPSISIII.Close; end; procedure TFrmMtdTOPSISIII.BtnKeluarClick(Sender: TObject); begin Application.Terminate end; procedure TFrmMtdTOPSISIII.FormShow(Sender: TObject); begin ADOQuery1.Active:=false; ADOQuery1.Active:=true; end;
18
end.
FrmEditData unit Unit9; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB, jpeg, ExtCtrls; type TFrmEditData = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; EdHarga: TEdit; BtSimpan: TButton; BtBatal: TButton; BtnCari: TButton; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; BtnHapus: TButton; Image1: TImage; ComboLayar: TComboBox; ComboProcessor: TComboBox; Combo_Uk_Memori: TComboBox; Combo_Type_Memori: TComboBox; ComboHarddisk: TComboBox; ComboBluetooth: TComboBox; ComboWebcam: TComboBox; Image2: TImage; ComboMerek: TComboBox; ComboType: TComboBox; EdKode: TEdit; ADOQuery2: TADOQuery; ADOQuery3: TADOQuery; procedure BtnCariClick(Sender: TObject); procedure tampil; procedure sembunyi; procedure BtSimpanClick(Sender: TObject); procedure BtBatalClick(Sender: TObject); procedure BtnHapusClick(Sender: TObject); procedure ComboMerekChange(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var FrmEditData: TFrmEditData; implementation uses Unit3; {$R *.dfm}
19
procedure TFrmEditData.tampil; begin Label2.Visible:=true; Label3.Visible:=true; Label4.Visible:=True; Label5.Visible:=true; Label6.Visible:=true; Label7.Visible:=True; Label8.Visible:=true; Label9.Visible:=True; EdHarga.Visible:=true; ComboLayar.Visible:=true; ComboProcessor.Visible:=true; Combo_Uk_Memori.Visible:=true; Combo_Type_Memori.Visible:=true; ComboHarddisk.Visible:=true; ComboBluetooth.Visible:=true; ComboWebcam.Visible:=true; BtSimpan.Visible:=true; BtnHapus.Visible:=true; end; procedure TFrmEditData.sembunyi; begin Label2.Visible:=False; Label3.Visible:=False; Label4.Visible:=False; Label5.Visible:=False; Label6.Visible:=False; Label7.Visible:=False; Label8.Visible:=False; Label9.Visible:=False; EdHarga.Visible:=False; ComboLayar.Visible:=False; ComboProcessor.Visible:=False; Combo_Uk_Memori.Visible:=False; Combo_Type_Memori.Visible:=False; ComboHarddisk.Visible:=False; ComboBluetooth.Visible:=False; ComboWebcam.Visible:=False; BtSimpan.Visible:=false; BtnHapus.Visible:=false; end; procedure TFrmEditData.BtnCariClick(Sender: TObject); const petik=''''; var query_cek,merek:string; begin merek:=ComboMerek.Text+' '+ComboType.Text+' '+EdKode.Text; query_cek:='select * from id_laptop where merek_type='+petik+merek+petik; ADOQuery3.Active:=false; ADOQuery3.SQL.Clear; ADOQuery3.SQL.Add(query_cek); ADOQuery3.Active:=true; if(ADOQuery3.RecordCount=0) then begin ShowMessage('Data Laptop yang anda cari tidak ada'); sembunyi; end else begin
20
EdHarga.Text:=ADOQuery3.fieldbyname('harga').Value; comboLayar.Text:=ADOQuery3.fieldbyname('ukuran_layar').Value; ComboProcessor.Text:=ADOQuery3.fieldbyname('processor').Value; Combo_Uk_Memori.Text:=ADOQuery3.fieldbyname('kapasitas_memori').Value ; Combo_Type_Memori.Text:=ADOQuery3.fieldbyname('type_memori').value; ComboHarddisk.Text:=ADOQuery3.fieldbyname('harddisk').Value; ComboBluetooth.Text:=ADOQuery3.fieldbyname('bluetooth').Value; ComboWebcam.Text:=ADOQuery3.fieldbyname('webcam').Value; tampil; end; end; procedure TFrmEditData.BtSimpanClick(Sender: TObject); const petik=''''; var query,merek:string; harga,layar,processor,uk_memori,type_memori,harddisk,bluetooth,webcam :integer; begin if (strtoint(EdHarga.Text)>15000000) then begin harga:=1; end else if (strtoint(EdHarga.Text)>=8500000) then begin harga:=2; end else if (strtoint(EdHarga.Text)>=7000000) then begin harga:=3; end else if (strtoint(EdHarga.Text)>=5500000) then begin harga:=4; end else if (strtoint(EdHarga.Text)<5500000) then begin harga:=5; end; if (ComboLayar.Text='15') or (ComboLayar.Text='17') then begin layar:=1; end else if (ComboLayar.Text='11') or (ComboLayar.Text='12') then begin layar:=2; end else if (ComboLayar.Text='14') then begin layar:=5; end else if (ComboLayar.Text='10') then begin layar:=4; end else if (ComboLayar.Text='13') then begin layar:=3; end;
21
if (ComboProcessor.Text='pentium') then begin processor:=1; end else if (ComboProcessor.Text='dual core')or (ComboProcessor.Text='core 2 duo')or(ComboProcessor.Text='atom') then begin processor:=2; end else if (ComboProcessor.Text='dual core') then begin processor:=2; end else if (ComboProcessor.Text='core i3') then begin processor:=3; end else if (ComboProcessor.Text='core i5') then begin processor:=4; end else if (ComboProcessor.Text='core i7') then begin processor:=5; end; if Combo_Uk_Memori.Text= '1' then begin uk_memori:=1; end else if Combo_Uk_Memori.Text= '2' then begin uk_memori:=2; end else if Combo_Uk_Memori.Text= '3' then begin uk_memori:=3; end else if Combo_Uk_Memori.Text= '4' then begin uk_memori:=4; end else if Combo_Uk_Memori.Text= '8' then begin uk_memori:=5; end; if Combo_Type_Memori.Text= 'DDR2' then begin type_memori:=3; end else if Combo_Type_Memori.Text= 'DDR3' then begin type_memori:=5; end; if ComboHarddisk.Text='250' then begin harddisk:=1; end else if ComboHarddisk.Text='320' then begin harddisk:=2;
22
end else if ComboHarddisk.Text='500' then begin harddisk:=3; end else if ComboHarddisk.Text='640' then begin harddisk:=4; end else if ComboHarddisk.Text>='>640' then begin harddisk:=5; end; if ComboBluetooth.Text='Ada' then begin bluetooth:=5; end else if ComboBluetooth.Text='Tidak Ada' then begin bluetooth:=3; end; if ComboWebcam.Text='Ada' then begin webcam:=5; end else if ComboWebcam.Text='Tidak Ada' then begin webcam:=3; end; merek:=ComboMerek.Text+' '+ComboType.Text+' '+EdKode.Text; query:='update htgahp_topsis set harga='+inttostr(harga)+',ukuran_layar='+inttostr(layar)+',processor= '+inttostr(processor)+',kapasitas_memori='+inttostr(uk_memori)+',type _memori='+inttostr(type_memori)+',harddisk='+inttostr(harddisk)+',blu etooth='+inttostr(bluetooth)+',webcam='+inttostr(webcam)+' where merek_type='+petik+merek+petik; ADOConnection1.Execute(query); query:='update id_laptop set harga='+petik+EdHarga.Text+petik+',ukuran_layar='+petik+ComboLayar.Te xt+petik+',processor='+petik+ComboProcessor.Text+petik+',kapasitas_me mori='+petik+Combo_Uk_Memori.Text+petik+',type_memori='+petik+Combo_T ype_Memori.Text+petik+',harddisk='+petik+ComboHarddisk.Text+petik+',b luetooth='+petik+ComboBluetooth.Text+petik+',webcam='+petik+ComboWebc am.Text+petik+' where merek_type='+petik+merek+petik; ADOConnection1.Execute(query); ShowMessage('Data Berhasil DiEdit'); frmdata.refresh; sembunyi; end; procedure TFrmEditData.ComboMerekChange(Sender: TObject); const petik=''''; var query:string; begin query:='select * from type as t, merek as m where m.nama_merek='+petik+ComboMerek.Text+petik+' and m.id_merek=t.id_merek'; ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(query); ADOQuery1.Active:=true;
23
ComboType.Items.Clear; ComboType.Text:='Pilih Type'; while not (ADOQuery1.Eof) do begin ComboType.AddItem(ADOQuery1.FieldByName('nama_type').Value,self); ADOQuery1.Next; end; end; procedure TFrmEditData.FormShow(Sender: TObject); var query:string; begin refresh; query:='select * from merek'; ADOQuery2.Active:=false; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add(query); ADOQuery2.Active:=true; ComboMerek.Items.Clear; while not (ADOQuery2.Eof) do begin ComboMerek.AddItem(ADOQuery2.FieldByName('nama_merek').Value,self); ADOQuery2.Next; end; end; procedure TFrmEditData.BtBatalClick(Sender: TObject); begin frmEditData.close; end; procedure TFrmEditData.BtnHapusClick(Sender: TObject); const petik=''''; var merek,query:string; begin merek:=ComboMerek.Text+' '+ComboType.Text+' '+EdKode.Text; query:='delete from id_laptop where merek_type='+petik+merek+petik; ADOConnection1.Execute(query); query:='delete from htgahp_topsis where merek_type='+petik+merek+petik; ADOConnection1.Execute(query); query:='delete from ranking where merek_type='+petik+merek+petik; ADOConnection1.Execute(query); ShowMessage('Data Berhasil Dihapus'); FrmData.refresh; sembunyi; end; end.