bab 3 analisis dan perancangan - thesis.binus.ac.idthesis.binus.ac.id/asli/bab3/2008-1-00386-if bab...
TRANSCRIPT
62
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Gambaran Permasalahan Secara Umum
Pemasaran adalah bidang yang memegang peranan yang cukup penting dalam
suatu perusahaan. Suatu perusahaan dapat berkembang dengan baik atau tidak sangat
bergantung pada bidang pemasarannya. Semakin baik kemampuan pemasaran suatu
perusahaan, semakin bertambah besarlah perusahaan tersebut. Karenanya sebagian besar
perusahaan berusaha untuk memperkuat kemampuan pemasarannya sehingga dapat
bertahan dalam persaingan pasar.
Promosi adalah salah satu metode pemasaran yang cukup efektif. Konsumen,
yang umumnya mudah terbujuk oleh promosi yang diadakan oleh suatu perusahaan,
menjadi faktor utama berkembangnya metode ini. Perusahaan yang gemar menggunakan
cara ini untuk melakukan pemasaran adalah supermarket. Dengan melakukan berbagai
macam metode promosi untuk alat-alat dan kebutuhan rumah tangga, tidak diragukan
lagi, keuntungan yang dapat dicapai menjadi sangat besar. Pada saat seseorang
berbelanja ke suatu supermarket dengan membawa suatu daftar belanjaan, besar
kemungkinannya orang ini akan terbujuk oleh promosi barang lain di luar daftarnya
yang dirasa sifatnya menguntungkan. Karena itulah sebuah supermarket harus
memperhatikan metode pengadaan promosinya, agar dapat menarik minat konsumen
pada momen yang tepat dalam segala hal (Ravikumar et al., 2006), yaitu penawaran
yang tepat untuk konsumen yang tepat pada saat yang tepat (right price to the right
customer at the right time).
63
Pada saat sekarang ini, bidang pemasaran dalam suatu supermarket umumnya
masih menggunakan cara manual dalam menentukan kegiatan promosi yang akan
dilakukan pada suatu periode waktu tertentu. Para karyawan di bagian pemasaran
supermarket tersebut akan memilih metode promosi yang terbaik dengan
memperhitungkan beberapa hal, misalnya hari besar apa yang terdekat pada saat itu,
persediaan barang apa saja yang masih menumpuk atau bahkan yang telah menipis di
gudang, produk-produk yang sudah mendekati tanggal kadaluarsa, dan sebagainya. Dari
beberapa hal ini dapat ditentukan produk-produk mana saja yang akan dipromosikan
pada periode atau jangka waktu tertentu. Namun, mereka masih harus menentukan
metode promosi apa yang akan digunakan untuk masing-masing produk, supaya
hasilnya dapat dikatakan optimal, baik bagi konsumen maupun bagi perusahaan tersebut.
Ada bermacam-macam metode promosi yang bisa menjadi pilihan, di antaranya yang
paling umum digunakan adalah metode diskon atau potongan harga, penggabungan
produk (product bundling), dan beli satu gratis satu atau BOGOF (Buy One Get One
Free). Untuk jumlah produk yang sangat besar, penentuan metode promosi secara
manual ini dirasakan mempunyai banyak kerugian, antara lain dalam hal waktu dan
tenaga kerja, bahkan menimbulkan satu kerugian yang cukup crucial, yaitu kekalahan
dalam persaingan karena perusahaan lain telah lebih dulu melakukan promosi, sehingga,
secara tidak langsung, pangsa pasar telah berkurang. Tingkat keakuratan dalam
menentukan metode promosi terbaik secara manual juga belum tentu tinggi. Dalam
menghadapi sejumlah besar jenis produk, maka manusia akan semakin sulit untuk
mengambil keputusan berdasarkan logika, dan pada akhirnya menyebabkan penurunan
keoptimalan solusi metode promosi yang dilakukan di dalam perusahaan tersebut.
64
Secara singkat, dapat disimpulkan bahwa kekurangan penentuan metode promosi
dengan menggunakan cara manual adalah:
1. memakan waktu yang lama,
2. hasil yang dicapai bersifat kurang optimal,
3. menghabiskan tenaga dan pikiran, karena terlalu banyaknya data yang harus
dianalisa, dan
4. memakan biaya yang besar untuk membayar upah tenaga kerja.
3.2 Kebutuhan Sistem dan Pemenuhan Kebutuhan Sistem
Sistem yang dibutuhkan untuk memecahkan masalah ini adalah sistem yang
dapat berpikir dan belajar seperti manusia, bahkan dapat menganalisa data dengan cepat.
Sistem yang dapat berpikir dan belajar seperti manusia akan dapat memberikan solusi
atau pemecahan yang optimal terhadap masalah penentuan metode promosi produk
dalam suatu supermarket. Karenanya untuk memenuhi kebutuhan ini digunakan metode
pembelajaran Reinforcement Learning (RL) dengan Q-learning.
Reinforcement Learning (RL) memiliki kelebihan dapat membuat sistem menjadi
pintar setelah belajar dan berinteraksi dari lingkungan (environment). Pada akhirnya,
sistem akan menjadi ‘pintar’ dan dapat menentukan metode promosi mana yang
memberikan keuntungan maksimal dari perusahaan, dengan juga memperhitungkan
kondisi pada saat ini, yaitu event apa yang akan datang dalam waktu dekat, jumlah
persediaan barang di dalam gudang, karakteristik produk (baru atau lama), dan jarak
antara tanggal kadaluarsa produk dengan waktu sekarang.
Sistem yang menggunakan metode RL dengan Q-learning ini pada awalnya tidak
memiliki pengetahuan apapun tentang apa yang akan dipelajarinya. Sehingga, sistem
65
membutuhkan data dan rules untuk proses pembelajarannya. Ketentuan-ketentuan yang
di-input oleh user, dalam hal ini administrator, akan menjadi pedoman seperti apa
sistem ini nantinya. Proses pembelajaran dari nol ini memang membutuhkan waktu yang
cukup lama, namun sangat singkat bila dibandingkan dengan proses pembelajaran
tenaga kerja yang direkrut dalam menentukan metode promosi secara manual. Namun
setelah proses pembelajaran selesai, proses selanjutnya, yaitu pemanggilan solusi
(disebut juga dengan proses recall actions), hanya membutuhkan waktu yang jauh lebih
singkat. Selain itu, solusi yang dihasilkan pun dapat dikatakan sangat akurat, sesuai
dengan input-input yang telah diajarkan sebelumnya.
Karena itulah, metode RL dengan Q-learning ini dapat mengatasi kekurangan
dan kelemahan penentuan metode promosi dengan cara manual, yaitu:
1. waktu yang dibutuhkan sangat singkat dibandingkan dengan cara manual,
2. hasil yang dicapai lebih akurat dan optimal karena diperoleh dengan
memperhitungkan ilmu yang didapat saat proses pembelajaran sistem,
3. tidak menghabiskan tenaga dan pikiran manusia, karena sistemlah yang bekerja,
dan
4. dapat menghemat biaya untuk upah tenaga kerja yang direkrut untuk menentukan
metode promosi secara manual.
66
3.3 Alur Program Secara Umum
Alur proses pencarian solusi optimal yang menggunakan metode Reinforcement
Learning dengan Q-learning ini dapat dilihat melalui Gambar 3.1.
Gambar 3.1 Alur Proses Pencarian Solusi Optimal Menggunakan
Metode Pembelajaran Reinforcement Learning dengan Q-Learning
Proses pencarian solusi pada Q-learning secara umum terbagi menjadi 3 (tiga)
tahap, yaitu: inisialisasi, proses training, dan proses recall data. Tahap inisialisasi
dimulai dengan perancangan database. Setelah seluruh data telah dimasukkan ke dalam
database, dibangun koneksi dari aplikasi ke database. Langkah selanjutnya terdiri atas 4
(empat) buah proses, yaitu:
• Perancangan matriks R : untuk menyimpan nilai reward
• Inisialisasi matriks Q : untuk menyimpan nilai Q-value
• Inisialisasi learning parameter γ : untuk discount rate dalam proses learning
67
• Inisialisasi ε-greedy parameter ε : untuk mengatur jumlah eksplorasi dan
eksploitasi yang akan dilakukan agen
Tahap kedua adalah menjalankan proses training dengan Q-learning berdasarkan
matriks-matriks dan parameter yang telah ditentukan sebelumnya. Iterasi dilakukan
sampai mencapai nilai Q-value yang konvergen (sudah tidak berubah lagi). Setelah
mencapai konvergen, iterasi dihentikan, dan matriks Q disimpan. Pada akhir tahap ini,
bisa dikatakan bahwa aplikasi sudah dapat menghasilkan solusi yang optimal pada
proses recall data.
Tahap ketiga dan terakhir adalah recall data. Tahap ini diawali dengan proses
load matriks Q hasil training pada tahap sebelumnya. Sesudah di-load, user dapat
melakukan input data berdasarkan masalah yang dihadapi, dan aplikasi akan
memberikan output berupa solusi optimal sesuai dengan apa yang telah dipelajari
melalui proses training.
3.4 Inisialisasi
Tahap ini merupakan tahap paling awal dari keseluruhan proses pencarian solusi
metode promosi optimal RL dengan Q-learning. Tahap inisialisasi ini terdiri atas 3 (tiga)
langkah, yaitu perancangan database, pembentukan koneksi ke database, dan inisialisasi
matriks dan parameter yang dibutuhkan.
68
3.4.1 Perancangan Database dan Input Data
Pada langkah pertama, akan dirancang suatu database yang berisikan data dan
informasi yang dibutuhkan untuk proses training. Data-data yang dimasukkan terdiri
dari:
a. keseluruhan produk yang dijual di supermarket tersebut dan dikelompokkan
dalam kategori-kategori,
b. harga modal atau harga beli masing-masing produk,
c. harga jual masing-masing produk,
d. status persediaan (stock) masing-masing produk,
e. karakteristik produk, apakah produk tersebut merupakan produk baru atau
produk lama, dan apakah produk tersebut sudah mendekati masa kadaluarsanya
atau tidak,
f. metode-metode promosi yang akan digunakan, dan
g. macam-macam event yang berpengaruh terhadap promosi penjualan.
Dalam mengumpulkan rules yang akan digunakan untuk proses pembelajaran
sistem dalam aplikasi ini, dilakukan pengumpulan data dari luar. Pada awalnya, metode
pengumpulan data yang ingin dilakukan adalah dengan melakukan survei langsung ke
bagian pemasaran produk beberapa perusahaan. Namun karena adanya faktor
konfidensialitas perusahaan-perusahaan tersebut mengenai metode pemasaran mereka,
akhirnya pengumpulan data dilakukan atas data-data yang sifatnya terbuka untuk umum
dan mudah didapatkan, yaitu dengan cara:
• mengumpulkan brosur-brosur promosi dari berbagai supermarket ternama,
seperti Carrefour, Hero, dan Hypermart,
69
• melakukan pengamatan dan pengumpulan data langsung di lapangan dari
berbagai supermarket, toko-toko kelontong serta pasar tradisional, dan
• mengadakan wawancara dengan beberapa orang yang sudah berpengalaman di
bagian pemasaran (marketing) produk, salah satunya adalah dengan karyawan
bagian Humas dari supermarket Hero.
Dari data-data yang didapat, dilakukan riset atau penelitian secara lebih
mendalam. Dari riset dan penelitian yang telah dilakukan, dapat ditarik kesimpulan
bahwa:
• supermarket berskala nasional seperti Hero dan Hypermart masih belum
menggunakan aplikasi komputer dalam menentukan metode promosi produk,
namun masih menggunakan pemikiran manusia (human),
• beberapa metode promosi yang umumnya dilakukan oleh suatu supermarket
adalah:
- diskon atau potongan harga dalam persen,
- Buy One Get One Free (BOGOF),
- penggabungan produk (product bundling),
- voucher atau potongan harga dalam rupiah,
- bekerja sama dengan perusahaan lain, misalnya kartu kredit,
70
• suatu produk dipromosikan berdasarkan kategori tertentu, dan alasan mengapa
produk tersebut dikategorikan demikian, yaitu:
1. events products, dilihat dari kemasan produk yang digunakan dan
penempatan produk tersebut pada suatu tempat khusus di supermarket
dalam rangka menyambut suatu hari raya,
2. near expired products, apabila jarak antara tanggal sekarang dengan
tanggal kadaluarsa adalah 3 (tiga) bulan atau kurang,
3. new products, apabila produk tersebut merupakan produk baru,
4. too many products, apabila produk tersebut kurang laris sehingga
mengakibatkan persediaan di gudang menjadi menumpuk,
• keuntungan optimal dan minimal yang harus diperoleh sesudah melakukan
promosi produk berbeda-beda untuk setiap alasan promosi, yaitu:
1. events products; optimal = 55%, minimal = 20%,
2. near expired products; optimal = 35%, minimal = 20%,
3. new products; optimal = 60%, minimal = 20%,
4. too many products; optimal = 40%, minimal = 20%.
71
Untuk merepresentasikan kebutuhan data-data di atas, maka dibentuklah
beberapa tabel database yang sesuai dan bersifat membantu, yaitu:
1. Tabel Barang
Tabel ini berisi Kode Barang, Nama Barang, Kelas Barang, serta Kode State
pada matriks R. Tabel ini menyimpan seluruh jenis barang yang dijual di
supermarket (Lampiran L1).
field itemCode itemName classCode stateCodetype text text text text
Tabel 3.1 Rancangan Tabel Barang
2. Tabel Alasan Promosi
Tabel ini berisi Kode Alasan Promosi, Alasan Promosi, serta Kode State pada
matriks R. Tabel ini menyimpan berbagai macam alasan promosi yang
digunakan sebagai bahan pertimbangan dalam menentukan produk apa yang
akan dipromosikan dalam suatu perusahaan (Lampiran L2).
field reasonCode reasonName stateCodetype text text text
Tabel 3.2 Rancangan Tabel Alasan Promosi
72
3. Tabel Hari Raya
Tabel ini berisi Kode Hari Raya dan Nama Hari Raya. Tabel ini menyimpan
jenis-jenis hari raya yang dapat mempengaruhi penjualan produk-produk tertentu
di supermarket (Lampiran L2). Dalam aplikasi ini, hari raya yang disertakan
adalah:
• Hari Raya Idul Fitri
• Kemerdekaan RI
• Liburan Sekolah
• Hari Raya Natal dan Tahun Baru
• Hari Raya Tahun Baru Imlek
field eventCode eventNametype text text
Tabel 3.3 Rancangan Tabel Hari Raya
Kelima hari raya tersebut disertakan karena dalam menyambut hari-hari raya ini
umumnya supermarket melakukan promosi dengan intensitas yang lebih
dibandingkan pada saat hari raya lainnya.
73
4. Tabel Kelas
Tabel ini berisi Kode Kelas, Nama Kelas, Kode Kategori, dan Keterangan.
Dalam aplikasi ini setiap produk dikelompokkan berdasarkan kelas-kelasnya
(Lampiran L2). Ada 7 (tujuh) buah kelas yang digunakan untuk pengelompokan
ini, yaitu:
• Grocery - Kebutuhan makanan sehari-hari
• Fresh - Produk makanan segar
• Bazaar - Peralatan rumah tangga dan hobi
• Appliance - Alat-alat elektronik
• Textile - Pakaian dan sepatu
• Health - Kesehatan
• Beauty – Kecantikan
field classCode className categoryCode Descriptiontype text text text text
Tabel 3.4 Rancangan Tabel Kelas
74
5. Tabel Kategori
Tabel ini berisi Kode Kategori dan Nama Kategori. Dalam aplikasi ini setiap
kelas produk dikategorikan dalam makanan (food) dan bukan makanan (non-
food) (Lampiran L2).
field categoryCode categoryNametype text text
Tabel 3.5 Rancangan Tabel Kategori
6. Tabel Status Kadaluarsa
Tabel ini berisi Kode Kadaluarsa dan Status Kadaluarsa. Dalam aplikasi ini
masing-masing produk memiliki status kadaluarsa, yang direpresentasikan
dengan yes (untuk barang mendekati masa kadaluarsa) dan no (untuk barang
dengan masa kadaluarsa yang masih dapat dikatakan aman) (Lampiran L3).
Secara umum, suatu produk (non fresh) dikatakan memasuki masa kadaluarsa
dalam jangka waktu 3 (tiga) bulan sebelum tanggal kadaluarsa.
field nearExpCode nearExpNametype text text
Tabel 3.6 Rancangan Tabel Status Kadaluarsa
7. Tabel Prioritas
Tabel ini berisi Kode Prioritas, Kode Hari Raya, dan Kode Barang. Tabel ini
berfungsi untuk menyimpan data tentang produk apa saja yang berhubungan
dengan suatu event (hari raya) (Lampiran L3). Suatu produk dikatakan
75
berhubungan dengan suatu hari raya apabila dalam menyambut hari raya itu,
banyak konsumen yang membeli produk tertentu, sehingga produk itu dapat
terjual dalam jumlah yang jauh lebih besar pada momen tersebut dibandingkan
dengan pada momen lainnya. Misalnya, untuk Hari Raya Idul Fitri, produk-
produk yang berhubungan adalah biskuit, sirup, minuman ringan, gula, dan lain
sebagainya.
field priorityCode eventCode itemCodetype text text text
Tabel 3.7 Rancangan Tabel Prioritas
8. Tabel Status
Tabel ini berisi Kode Status Barang dan Status Barang. Dalam aplikasi ini,
masing-masing produk memiliki status (Lampiran L3). Untuk menentukan status
suatu produk dapat dilihat dari apakah produk tersebut merupakan produk baru
(new product) atau produk lama (old product).
field statusCode statusNametype text text
Tabel 3.8 Rancangan Tabel Status
9. Tabel Kategori Persediaan Barang
Tabel ini berisi Kode Kategori Persediaan Barang dan Status Persediaan Barang.
Barang atau produk dengan persediaan yang terlalu banyak seharusnya
dipromosikan untuk mengurangi biaya atau pengeluaran (cost) pada saat
76
penyimpanan di gudang (high maintenance cost). Dalam aplikasi ini, status
persediaan barang terdiri dari 3 (tiga) kategori, yaitu:
• Normal - untuk persediaan pada batas normal
• Few - untuk persediaan di bawah batas normal
• Many - untuk persediaan di atas batas normal
Adapun untuk menentukan persediaan barang pada aplikasi ini tidak digunakan
angka atau bentuk nominal, karena metode untuk menentukan status persediaan
suatu produk dapat berbeda dengan produk lainnya, jadi batas normal jumlah
persediaan produk tidak dapat disamaratakan untuk semua produk (Lampiran
L4). Misalnya, apabila jumlah persediaan produk A dan produk B di gudang
adalah sama-sama sebesar 1000 (seribu) buah, maka besar kemungkinan bahwa
status persediaan produk A dapat dikatakan di bawah batas normal, sedangkan
status persediaan produk B dikatakan di atas batas normal. Sebagai contoh,
dimisalkan produk A adalah mie instan dan produk B adalah mesin cuci.
field stockCode stockNametype text text
Tabel 3.9 Rancangan Tabel Kategori Persediaan Barang
10. Tabel Metode Promosi
Tabel ini berisi Kode Metode Promosi, Jenis Metode Promosi, Nilai Promosi,
serta Kode State pada matriks Q dan matriks R. Tabel ini menyimpan macam-
macam metode promosi yang akan digunakan oleh supermarket untuk menarik
77
minat konsumen (Lampiran L4). Dalam aplikasi ini, terdapat beberapa macam
metode promosi, yaitu:
1. Diskon 5% - potongan harga sebesar 5% dari harga tercantum produk
2. Diskon 10% - potongan harga sebesar 10% dari harga tercantum produk
3. Diskon 15% - potongan harga sebesar 15% dari harga tercantum produk
4. Diskon 20% - potongan harga sebesar 20% dari harga tercantum produk
5. Diskon 25% - potongan harga sebesar 25% dari harga tercantum produk
6. Diskon 30% - potongan harga sebesar 30% dari harga tercantum produk
7. Diskon 35% - potongan harga sebesar 35% dari harga tercantum produk
8. Diskon 40% - potongan harga sebesar 40% dari harga tercantum produk
9. Diskon 45% - potongan harga sebesar 45% dari harga tercantum produk
10. Diskon 50% - potongan harga sebesar 50% dari harga tercantum produk
11. Diskon 55% - potongan harga sebesar 55% dari harga tercantum produk
12. Diskon 60% - potongan harga sebesar 60% dari harga tercantum produk
13. Diskon 65% - potongan harga sebesar 65% dari harga tercantum produk
14. Beli 1 (satu) gratis 1 (satu) - untuk setiap pembelian 1 (satu) buah produk
ini, maka akan mendapatkan gratis 1 (satu) buah produk yang sama
15. Beli 2 (dua) gratis 1 (satu) - untuk setiap pembelian 2 (satu) buah produk
ini, maka akan mendapatkan gratis 1 (satu) buah produk yang sama
field promotionCode promotionName promotionValue stateCodetype text text text text
Tabel 3.10 Rancangan Tabel Metode Promosi
78
Dalam aplikasi ini, hanya digunakan 15 (lima belas) buah metode promosi yang
telah disebutkan di atas, karena metode-metode tersebut merupakan metode yang
paling umum digunakan dan mudah untuk diamati. Metode lain yang umum
digunakan di supermarket namun tidak diikutsertakan dalam aplikasi ini adalah
voucher dan product bundling. Hal ini disebabkan karena keterbatasan data yang
diperoleh selama melakukan penelitian.
11. Tabel Data
Tabel ini mencakup sebagian besar dari tabel di atas. Tabel ini berisi Nama
Barang, Status Persediaan Barang, Status Kadaluarsa, Status Barang, Harga Beli,
Harga Jual, serta Kode State pada matriks Q dan matriks R. Tabel inilah yang
memegang peranan penting dalam proses training dengan Q-learning yang akan
dilakukan (Lampiran L5). Berikut diberikan contoh Tabel Data, yang nantinya
akan digunakan untuk alat pembelajaran dalam proses training data.
field itemCode stockCode nearExpCode statusCode buyingPrice sellingPricetype text text text text text text
Tabel 3.11 Rancangan Tabel Data
3.4.2 Koneksi ke Database
Langkah kedua adalah membangun suatu koneksi dari aplikasi ke database.
Koneksi ini bertujuan mengambil data yang terdapat di dalam tabel-tabel pada database
sebagai input untuk proses training, yang nantinya akan menghasilkan output yang
diinginkan, yaitu solusi metode promosi yang optimal.
79
3.4.3 Inisialisasi Matriks dan Parameter
Langkah ketiga adalah inisialisasi matriks dan parameter, terdiri atas 4 (empat)
buah proses, yaitu: perancangan matriks R, inisialisasi matriks Q, dan inisialisasi
learning parameter atau discount rate γ dan parameter ε-greedy ε.
3.4.3.1 Perancangan Matriks R
Mula-mula dilakukan perancangan terhadap matriks R. Matriks R adalah matriks
yang menyimpan nilai reward, atau dengan kata lain, matriks R berfungsi sebagai model
of environment untuk agen dalam proses pembelajarannya. Dari permasalahan awal yang
dihadapi sekaligus dari data-data yang telah tersedia, dapat dibuat environment sebagai
lingkungan belajar agen, yang terdiri atas:
• State berjumlah 87 (delapan puluh tujuh) buah, yaitu:
- 4 (empat) buah state alasan promosi (dapat dilihat pada Lampiran L2):
Events - hari raya terdekat
Near Expired - produk mendekati masa kadaluarsa
New Product - produk baru
Too Many Product - persediaan produk terlalu banyak
- 68 (enam puluh delapan) buah state produk:
Dapat dilihat pada Lampiran L1
- 15 (lima belas) buah state jenis promosi:
Dapat dilihat pada Lampiran L4
80
• Action:
- Pemilihan alasan promosi
- Pemilihan jenis produk yang akan dipromosi
- Pemilihan metode promosi
Dari sekian banyak state dan action di atas, dapat dibuat representasi
environment-nya dalam bentuk graph, dengan masing-masing state sebagai vertex atau
node, dan masing-masing action sebagai edge atau link, seperti gambar di bawah ini:
Gambar 3.2 Representasi Model of Environment Dalam Bentuk Graph
Berdasarkan graph yang telah terbentuk, dapat dirancang suatu matriks R
berukuran [72x87] yang dapat dilihat pada Lampiran L7. Baris hanya berjumlah 72
(tujuh puluh dua) baris, yaitu jumlah seluruh state (87 buah) dikurangi dengan 15 (lima
belas), karena apabila agen telah memilih action metode promosi, maka satu episode
81
pembelajaran telah berakhir, dengan kata lain, tidak ada action lagi yang perlu dilakukan
oleh agen pada saat mencapai state metode promosi.
Nilai -1 pada matriks R berarti tidak ada transisi atau pilihan action. Sedangkan
nilai 0 pada matriks R berarti ada transisi atau pilihan action. Pada kasus-kasus lain,
umumnya pada matriks R, untuk state yang mengarah ke goal state, maka nilai reward
akan diisi dengan nilai yang terbesar, misalnya 100. Tetapi pada kasus ini, secara khusus
tidak ada goal state. Pada final state (bukan goal state), yaitu state terakhir (setelah agen
memilih action terakhir), akan dilakukan perhitungan keuntungan yang didapat dari
pasangan produk dan metode promosi yang telah dipilih oleh agen dalam proses
learning-nya. Sehingga untuk state yang mengarah ke final state, nilai reward-nya pun
diisi dengan nol.
3.4.3.2 Inisialisasi Matriks Q
Matriks Q berisikan nilai Q-value, dengan kata lain ‘otak agen’, yaitu merupakan
representasi dari hasil pembelajaran agen melalui proses training.
Pada aplikasi ini, akan dibuat 4 (empat) buah matriks Q, yaitu:
• matriks Q0 - untuk menyimpan data dari proses pembelajaran agen
berdasarkan event (hari raya),
• matriks Q1 - untuk menyimpan data dari proses pembelajaran agen
berdasarkan near expired products (produk-produk yang mendekati masa
kadaluarsa),
• matriks Q2 - untuk menyimpan data dari proses pembelajaran agen
berdasarkan new products (produk-produk baru), dan
82
• matriks Q3 - untuk menyimpan data dari proses pembelajaran agen
berdasarkan too many products (produk-produk yang persediaannya
masih terlalu banyak).
Baris pada setiap matriks Q menunjukkan current state dari agen, dan kolom
pada setiap matriks Q menunjukkan pilihan action untuk ke state berikutnya. Jumlah
baris dan kolom pada setiap matriks Q berbeda dengan jumlah baris dan kolom pada
matriks R. Pada setiap matriks Q, state dan action-nya adalah sebagai berikut:
• State berjumlah 84 (delapan puluh empat) buah, yaitu:
- 1 (satu) dari 4 (empat) buah state alasan promosi (dapat dilihat pada
Lampiran L2):
Events - untuk matriks Q0
Near Expired - untuk matriks Q1
New Product - untuk matriks Q2
Too Many Product - untuk matriks Q3
- 68 (enam puluh delapan) buah state produk:
Dapat dilihat pada Lampiran L1
- 15 (lima belas) buah state jenis promosi:
Dapat dilihat pada Lampiran L4
• Action:
- Pemilihan alasan promosi
- Pemilihan jenis produk yang akan dipromosi
- Pemilihan metode promosi
83
Ukuran setiap matriks Q adalah [69x84]. Baris hanya berjumlah 69 (enam puluh
sembilan) baris, yaitu jumlah seluruh state (84 buah) dikurangi dengan 15 (lima belas),
karena tidak ada action lagi yang perlu dilakukan oleh agen pada saat mencapai state
metode promosi.
Pada tahap inisialisasi, pada setiap matriks Q, semua Q-value bernilai nol, karena
pada awalnya agen tidak memiliki pengetahuan apapun. Matriks Q inilah yang nilainya
nantinya akan berubah-ubah selama proses training, dan pada akhirnya digunakan untuk
proses recall data dalam pencarian solusi optimal. Inisialisasi matriks Q ini dapat dilihat
pada Lampiran L8.
3.4.3.3 Inisialisasi Learning Parameter
Terdapat 1 (satu) buah parameter yang digunakan dalam proses learning
menggunakan Q-learning, yaitu parameter γ (gamma). Parameter γ memiliki range nilai
berkisar antara 0 sampai 1 (0 < γ < 1). Semakin dekat nilai γ dengan nol, agen akan lebih
memperhitungkan immediate reward (reward langsung). Sebaliknya, semakin dekat
nilai γ dengan satu, agen akan lebih memperhitungkan future reward dengan weight
(bobot) yang lebih besar, atau dengan kata lain, agen memiliki kemampuan untuk
menunda reward.
3.4.3.4 Inisialisasi ε-greedy Parameter
Parameter ε memiliki range nilai dari 0 sampai 1 (0 < ε < 1). Semakin dekat
nilai ε dengan 1 (satu), maka agen akan memilih action yang tersedia secara acak
(eksplorasi). Sebaliknya, semakin dekat nilai ε dengan 0 (nol), maka agen akan memilih
84
action dengan nilai Q-value tertinggi (eksploitasi). Tujuan dari eksplorasi agen adalah
untuk mencari kemungkinan adanya reward yang lebih besar.
3.5 Proses Training dengan Q-Learning
Pada tahap ini, dilakukan proses learning menggunakan metode pembelajaran
RL dengan Q-learning pada data yang tersedia pada matriks R. Untuk proses learning
ini, rumus yang digunakan adalah:
]),([.),(),( actionsallstatenextQMaxactionstateRactionstateQ γ+=
di mana:
- ),( actionstateQ adalah Q-value pada suatu state dengan memilih action tertentu
- ),( actionstateR adalah reward yang didapat pada suatu state dengan memilih
action tertentu
- γ adalah discount rate, berkisar antara 0 sampai 1 (0 < γ < 1)
- ),( actionsallstatenextQ adalah Q-value pada semua kemungkinan state
selanjutnya dengan memilih semua kemungkinan action
Mula-mula initial state (state awal) akan di-random, sehingga menghasilkan
state awal secara acak. Kemudian dalam proses training ini, agen akan memilih action
secara acak pula di setiap state-nya. Setelah sampai pada final state, akan dilakukan
perhitungan terhadap keuntungan (laba kotor) yang didapat berdasarkan pasangan state-
action, dalam hal ini pasangan produk dan metode promosi, yang telah dipilih oleh agen.
85
Perhitungan keuntungan (laba kotor) dilakukan berdasarkan rumus berikut:
%100×−
=hrgBeli
hrgBelihrgJualKotorLaba
Kemudian semua matriks Q, yang berisi Q-value, akan di-update berdasarkan
perhitungan laba kotor tersebut. Untuk reward yang optimal (dalam kasus ini 100) akan
diberikan apabila laba kotor dikatakan mencapai optimal. Pada aplikasi ini, laba kotor
optimal untuk masing-masing alasan promosi besarnya berbeda-beda. Hal ini dilakukan
berdasarkan pengamatan pasar. Berikut adalah hasil pengamatan laba optimal dan
minimal untuk masing-masing alasan promosi:
1. Events products; optimal = 55%, minimal = 20%
2. Near expired products; optimal = 35%, minimal = 20%
3. New products; optimal = 60%, minimal = 20%
4. Too many products; optimal = 40%, minimal = 20%
Proses update nilai Q-value pada matriks Q0 (berdasarkan event) akan dilakukan
berdasarkan perhitungan berikut:
1. Jika %57%53 ≤≤ KotorLaba maka reward = 100
2. Jika %53%20 << KotorLaba maka reward = )5380( −+KotorLaba
3. Jika %20%0 ≤≤ KotorLaba maka reward = 5
4. Jika %0<KotorLaba maka reward = KotorLaba
5. Jika %57>KotorLaba maka reward = 50
86
Proses update nilai Q-value pada matriks Q1 (berdasarkan near expired
products) akan dilakukan berdasarkan perhitungan berikut:
1. Jika %37%33 ≤≤ KotorLaba maka reward = 100
2. Jika %33%20 << KotorLaba maka reward = )3380( −+KotorLaba
3. Jika %20%0 ≤≤ KotorLaba maka reward = 5
4. Jika %0<KotorLaba maka reward = KotorLaba
5. Jika %37>KotorLaba maka reward = 50
Proses update nilai Q-value pada matriks Q2 (berdasarkan new products) akan
dilakukan berdasarkan perhitungan berikut:
1. Jika %62%58 ≤≤ KotorLaba maka reward = 100
2. Jika %58%20 << KotorLaba maka reward = )5880( −+KotorLaba
3. Jika %20%0 ≤≤ KotorLaba maka reward = 5
4. Jika %0<KotorLaba maka reward = KotorLaba
5. Jika %62>KotorLaba maka reward = 50
Proses update nilai Q-value pada matriks Q3 (berdasarkan too many products)
akan dilakukan berdasarkan perhitungan berikut:
1. Jika %42%38 ≤≤ KotorLaba maka reward = 100
2. Jika %38%20 << KotorLaba maka reward = )3880( −+KotorLaba
3. Jika %20%0 ≤≤ KotorLaba maka reward = 5
4. Jika %0<KotorLaba maka reward = KotorLaba
5. Jika %42>KotorLaba maka reward = 50
87
Berikut adalah pseudocode yang digunakan dalam proses training dengan
Reinforcement Learning dengan metode Q-learning:
Iterasi akan terus dijalankan sampai mencapai nilai Q-value yang konvergen,
artinya sudah tetap, tidak akan berubah lagi. Setelah mencapai nilai konvergen, Q-value
yang diperoleh dapat dikatakan sudah berupa Q-value yang dapat menghasilkan solusi
yang optimal pada proses recall data. Nilai Q-value ini akan disimpan ke dalam file .txt.
Ketika akan melakukan proses recall data, nilai ini akan di-load kembali.
1. Set parameter γ, and environment reward (reward function)
2. Initialize the table entry ),(ˆ asQ to zero
3. For each episode:
a. Select random initial state
b. Do while not reach goal state:
• Select action a from s using ε-greedy strategy for the current state
• Receive immediate reward r • Observe the new state s′
• Update the table entry for ),(ˆ asQ as follows:
),(ˆmax),(ˆ asQrasQa
′′+←′
γ
• Set the next state as the current state
End Do
End For
88
3.6 Proses Recall Data
Proses ini terdiri atas 2 (dua) tahap, yaitu:
1. Load matriks Q hasil training
Matriks Q yang telah dihasilkan dari proses training akan di-load untuk
menjalankan proses recall data ini. Matriks inilah yang sangat berguna dalam
menghasilkan solusi optimal.
2. Input data
Langkah selanjutnya adalah user melakukan input data, berupa permasalahan
yang diinginkan solusinya. Dalam hal ini, permasalahan yang akan di-input oleh
user berupa pilihan alasan dilakukannya promosi, yaitu jenis event (hari raya),
near expired product (produk yang sudah mendekati masa kadaluarsa), new
product (produk yang baru), atau too many product (produk yang persediaannya
terlalu banyak di gudang). Berdasarkan hal tadi, akan dilakukan proses recall
data dengan pseudocode sebagai berikut:
Setelah selesai melakukan recall data, aplikasi akan menampilkan solusi metode
promosi optimal sesuai dengan alasan promosi yang telah di-input oleh user.
1. Set current state = initial state
2. From current state, find action that produce maximum Q value
3. Set current state = next state
4. Go to 2 until current state = goal state
89
3.7 Perancangan Aplikasi
Proses-proses yang berjalan dalam aplikasi pencarian solusi metode promosi
optimal dengan Q-learning adalah sebagai berikut:
1. Mula-mula dilakukan perancangan database dan koneksi dari aplikasi ke
database. Database ini dirancang sesuai dengan permasalahan yang dihadapi,
dan dibuat sedemikian hingga dapat mempermudah dalam pembentukan matriks-
matriks dan juga dalam proses learning agen.
2. Setelah itu dibuatlah graph sesuai dengan data pada database dan permasalahan
yang dihadapi. Dari graph inilah dapat dirancang suatu matriks R, yang berisi
model of environment untuk proses learning agen. Kemudian dijalankan modul
Inisialisasi Matriks R, yang berfungsi untuk mengisi nilai awal matriks R,
berdasarkan ada atau tidaknya transisi pada graph.
3. Sesudah merancang dan inisialisasi matriks R, maka dapat dilanjutkan dengan
perancangan dan inisialisasi matriks Q. Perancangan matriks Q merupakan hal
yang tidak sulit, karena ukurannya ditentukan juga berdasarkan graph, dengan
kata lain ukurannya pasti sama dengan matriks R. Hanya saja pengisian nilai
awal (inisialisasi)-nya berbeda. Untuk pengisian nilai awal matriks Q akan
dijalankan modul Inisialisasi Matriks Q.
4. Langkah berikutnya adalah mengisi nilai awal learning parameter, γ (gamma).
Untuk mengisi nilai γ (gamma), dijalankan modul Set Parameter Gamma.
5. Setelah menjalankan modul Set Parameter Gamma, selanjutnya dijalankan modul
Set Parameter ε, untuk mengisi nilai awal ε-greedy parameter (ε).
6. Pada saat proses training dijalankan, maka modul Training dipanggil. Modul ini
kemudian akan memanggil modul-modul lain yang berhubungan dengan
90
jalannya proses training dengan Q-learning, yaitu modul Update Convergence,
Get Index, dan Choose Action. Setelah modul Training selesai dijalankan,
apabila user ingin menyimpan data hasil Training ke dalam file, dijalankan
modul Save Matrix Q.
7. Apabila proses training telah selesai dijalankan, untuk melakukan pencarian
solusi promosi produk, selanjutnya user dapat melakukan proses recall data.
Untuk menjalankan proses ini, dilakukan pemanggilan terhadap modul Load
Matrix Q terlebih dahulu, kemudian dilanjutkan dengan pemanggilan modul
Recall Data.
Setelah melakukan beberapa langkah di atas, user akan memperoleh solusi
promosi produk supermarket yang dihasilkan oleh aplikasi berdasarkan rules dan data
yang telah diberikan.
91
3.7.1 Rancangan Modul
3.7.1.1 Modul Inisialisasi
Modul Inisialisasi Matriks R
inisialisasiMatriksR()
BEGIN
numberOfState jumlah seluruh node pada graph
setLength(matriksR, numberOfState, numberOfState) matriks yang
terbentuk adalah matriks 2 dimensi dengan ukuran [numberOfState x
numberOfState]
FOR i = 0 to numberOfState-1 DO
FOR j = 0 to numberOfState-1 DO
IF matriksR[i][j] have possible action THEN
matriksR[i][j] = 0
ELSE
matriksR[i][j] = -1 tidak ada kemungkinan action ke
state/node lain
END
92
Gambar 3.3 Diagram Alir Modul Inisialisasi Matriks R
Modul Inisialisasi Matriks R berfungsi untuk mengisi nilai awal matriks R sebagai
model of environment untuk proses pembelajaran agen menggunakan metode
Reinforcement Learning dengan Q-learning.
93
Modul Inisialisasi Matriks Q
inisialisasiMatriksQ()
BEGIN
numberOfState jumlah seluruh node pada graph
setLength(matriksQ, numberOfState, numberOfState) matriks yang
terbentuk adalah matriks 2 dimensi dengan ukuran [numberOfState x
numberOfState]
FOR i = 0 to numberOfState-1 DO
FOR j = 0 to numberOfState-1 DO
matriksQ[i][j] = 0
END
94
Gambar 3.4 Diagram Alir Modul Inisialisasi Matriks Q
Modul Inisialisasi Matriks Q berfungsi untuk mengisi nilai awal matriks Q sebagai
memory atau ingatan dari agen, yang nantinya akan di-update melalui proses
pembelajaran agen menggunakan metode Reinforcement Learning dengan Q-learning.
95
Modul Set Parameter γ
inisialisasiparameter γ()
BEGIN
Gamma discount rate
END
Gambar 3.5 Diagram Alir Modul Set Parameter γ
Modul Set Parameter γ berfungsi untuk mengisi nilai awal dari learning parameter γ
sebagai discount rate pada proses pembelajaran agen menggunakan metode
pembelajaran Reinforcement Learning dengan Q-learning.
96
Modul Inisialisasi Parameter ε
inisialisasiParameter ε()
BEGIN
e parameter ε-greedy END
Gambar 3.6 Diagram Alir Modul Inisialisasi Parameter ε
Modul Inisialisasi Parameter ε berfungsi untuk mengisi nilai awal dari ε-greedy
parameter ε sebagai penyeimbang perilaku agen pada proses pembelajarannya
menggunakan metode Reinforcement Learning dengan Q-learning.
97
3.7.1.2 Modul Training Data
Modul Training Data
training() BEGIN percent = 0 persentase keuntungan yang didapat profit = 0 besar keuntungan yang didapat reward = 0 besar reward yang didapat oleh agen updateConvergance(); REPEAT REPEAT curr = random(4) UNTIL curr = 0 AND convergance[0][0] != 1 REPEAT REPEAT nextState = chooseAction(nextState) UNTIL convergance[0][nextState-3] != 1 IF nextState = finalState THEN BEGIN profit = (sellPrice - (percent * sellPrice)) - buyPrice percent = (profit / buyPrice) * 100 IF percent ≈ optimalCondition1 THEN reward = 100 ELSE IF percent ≈ optimalCondition2 THEN reward = (80 – optimalCondition2) + percent ELSE IF percent ≈ optimalCondition3 THEN reward = 5 ELSE IF percent < 0 THEN reward = percent IF reward = matrixQ[curr-3][nextState-3] THEN convergance[curr-3][nextState-3] = 1 ELSE matrixQ[curr-3][nextState-3] = reward END ELSE BEGIN IF curr = 0 THEN matrixQ[0][nextState-3] = matrixR[curr][nextState] + (γ
* MaxValue(matrixQ[nextState-3])) ELSE matrixQ[curr-3][nextState-3] = matrixR[curr][nextState]
+ (γ * MaxValue(matrixQ[nextState -3])) END curr = nextState updateConvergance() UNTIL curr = finalState UNTIL convergance[0][0] = 1 END
99
Modul Training Data berfungsi untuk proses training atau proses pembelajaran agen
menggunakan metode Reinforcement Learning dengan Q-learning untuk menghasilkan
solusi yang optimal.
Modul Choose Action chooseAction(curr) BEGIN choice = 0 j = 0 n = random(11)/10 FOR i = 0 TO numberOfState-1 BEGIN action[j] = i j++ END IF n < e THEN exploration BEGIN REPEAT choice = action[random(j)] UNTIL convergence[curr-3][choice-3] = 0 RETURN = choice END ELSE exploitation BEGIN IF curr = initialState THEN m = MaxValue(matrixQ[0]) ELSE m = MaxValue(matrixQ[curr-3]) END IF m = 0 THEN RETURN = action[random(j)] ELSE RETURN = getIndex(m, curr) END END
101
Modul Choose Action berfungsi untuk memilih action yang tersedia pada suatu state
dalam proses pembelajaran agen menggunakan metode Reinforcement Learning dengan
Q-learning.
Modul Get Index getIndex(m, curr) BEGIN j = 0 IF curr = initialState THEN curr = 0 ELSE curr = curr – 3 FOR i = 0 TO numberOfState-4 BEGIN IF matrixQ[curr][i] = m THEN BEGIN indexMax[j] = i + 3 j++ END END RETURN = indexMax[random(j)] END
103
Modul Get Index berfungsi untuk mendapatkan index action dari matriks R dalam
proses pembelajaran agen menggunakan metode Reinforcement Learning dengan Q-
learning.
Modul Update Convergence updateConvergence() BEGIN
count = 0 FOR i = 1 TO numOfProduct BEGIN FOR j = numOfProduct+1 TO numberOfState-1 BEGIN IF convergence[i][j] = 1 THEN count++ END IF count = numOfPromotion THEN convergence[0][i] = 1 count = 0 END FOR i = 1 TO numOfProduct BEGIN IF convergence[0][i] = 1 THEN count++ END IF count = numOfProduct THEN convergence[0][0] = 1 ELSE convergence[0][0] = 0
END
105
Modul Update Convergence berfungsi untuk meng-update nilai konvergensi dari
matriks Q dalam metode pembelajaran Reinforcement Learning dengan Q-learning.
Modul Save Matrix Q saveMatrixQ() BEGIN fileName = ExtractFilePath(Application.ExeName) + 'matrixQ.txt' AssignFile(fileHandle, fileName) Rewrite(fileHandle) FOR i = 0 TO numOfProduct BEGIN FOR j = 0 TO numOfState writeLine(fileHandle, matrixQ[i][j]) END closefile(fileHandle); END
106
Gambar 3.11 Diagram Alir Modul Save Matrix Q
Modul Save Matrix Q berfungsi untuk menyimpan hasil training ke dalam file.
107
3.7.1.3 Modul Recall Data
Modul Recall Data recallData() BEGIN loadMatrixQ()
max = 0 curr = initialState REPEAT max = maxValue(matrixQ[curr]) nextState = getIndex(max) curr = nextState; UNTIL curr = finalState
END
108
Gambar 3.12 Diagram Alir Modul Recall Data
Modul Recall Data berfungsi untuk memanggil kembali (recall) data hasil training
sehingga dapat menghasilkan output yang diinginkan.
109
Modul Load Matrix Q loadMatrixQ() BEGIN fileName = ExtractFilePath(Application.ExeName) + 'matrixQ.txt' AssignFile(fileHandle, fileName) Reset(fileHandle) FOR i = 0 TO numOfProduct BEGIN FOR j = 0 TO numOfState BEGIN readLine(fileHandle, temp) IF temp = '' THEN BREAK matrixQ[i][j] := temp END END closefile(fileHandle); END
110
Gambar 3.13 Diagram Alir Modul Load Matrix Q
Modul Load Matrix Q berfungsi untuk mengambil nilai-nilai matriks Q dari file.
111
3.7.2 Rancangan Struktur Menu
Rancangan struktur menu program aplikasi ini adalah sebagai berikut:
a. Struktur Menu Utama
Menu Utama Learning Process
View Database
View Matrix
Recalling Process
Help
Gambar 3.14 Gambar Struktur Menu Utama
b. Struktur Menu Learning Process
Gambar 3.15 Gambar Struktur Menu Learning Process
112
c. Struktur Menu Recalling Process
Gambar 3.16 Gambar Struktur Menu Recalling Process
d. Struktur Menu View Matrix
Gambar 3.17 Gambar Struktur Menu View Matrix
113
e. Struktur Menu View Database
View Database View Data Table
View Promotion Table
View Priority Table
View Events Table
Gambar 3.18 Gambar Struktur Menu View Database
f. Struktur Menu Help
Gambar 3.19 Gambar Struktur Menu Help
114
3.7.3 State-Transition Diagram (STD)
State-Transition Diagram (STD) menggambarkan bagaimana perilaku sistem
saat mendapatkan event dari luar (external events). STD mewakili berbagai mode
perilaku dari sistem dan perlakuan yang terdapat pada transisi antar state. STD menjadi
dasar dari model perilaku. Berikut adalah simbol-simbol yang digunakan dalam STD:
State 1
Condition
Action
State 2
Gambar 3.20 State Transition Diagram
Adapun rancangan STD untuk program aplikasi ini adalah sebagai berikut:
116
Men
ungg
u Pi
lihan
pad
aM
enu
Uta
ma
Men
ungg
u Pi
lihan
pad
aM
enu
Lear
ning
Pro
cess
Men
ungg
u Pi
lihan
pad
a M
enu
Reca
lling
Pro
cess
Men
ungg
u Pi
lihan
pad
a M
enu
View
Mat
rix
Men
ungg
u Pi
lihan
pad
a M
enu
View
Dat
abas
eM
enun
ggu
Pilih
an p
ada
Men
u H
elp
Tam
pilk
an p
iliha
n pa
daM
enu
Lear
ning
Pro
cess
Pilih
Men
u Le
arni
ng P
roce
ss
Tam
pilk
an p
iliha
n pa
daM
enu
Reca
lling
Pro
cess
Pilih
Men
u Re
calli
ng P
roce
ss
Tam
pilk
an p
iliha
n pa
daM
enu
View
Mat
rix
Tam
pilk
an p
iliha
n pa
daM
enu
View
Dat
abas
eTa
mpi
lkan
pili
han
pada
Men
u H
elp
Pilih
Men
u Vi
ew M
atri
xPi
lih M
enu
View
Dat
abas
ePi
lih M
enu
Hel
p
Men
ungg
u Pi
lihan
pa
da L
ayar
Trai
ning
Dat
a
Kel
uar d
ari
Prog
ram
Pilih
Men
uTr
aini
ng D
ata
Tam
pilk
an L
ayar
Trai
ning
Dat
a
Pilih
Men
u Ex
it
Prog
ram
Sel
esai
Men
ungg
u Pi
lihan
pa
da L
ayar
View
Mat
rix
R
Men
ungg
u Pi
lihan
pa
da M
enu
View
Mat
rix
Q
Pilih
Men
uVi
ew M
atri
x Q
Tam
pilk
an p
iliha
n pa
daM
enu
View
Mat
rix
QTa
mpi
lkan
Lay
arVi
ew M
atri
x R
Pilih
Men
uVi
ew M
atri
x R
Men
ungg
u Pi
lihan
pa
da L
ayar
Prog
ram
Tut
oria
l
Men
ungg
u Pi
lihan
pa
da L
ayar
Abou
t Us
Pilih
Men
uPr
ogra
m T
utor
ial
Pilih
Men
uAb
out U
s
Tam
pilk
an L
ayar
Prog
ram
Tut
oria
lTa
mpi
lkan
Lay
arAb
out U
s
Men
ungg
u Pi
lihan
pa
da L
ayar
Reca
llH
olid
ay P
rodu
cts
Men
ungg
u Pi
lihan
pada
Lay
arRe
call
Nea
r Exp
ired
Pro
duct
s
Men
ungg
u Pi
lihan
pa
da L
ayar
Reca
llN
ew P
rodu
cts
Men
ungg
u Pi
lihan
pa
da L
ayar
Reca
llTo
o M
any
Prod
ucts
Tam
pilk
an L
ayar
Reca
ll H
olid
ay P
rodu
cts
Pilih
Men
uRe
call
Hol
iday
Pro
duct
sPi
lih M
enu
Reca
ll N
ear E
xpir
ed P
rodu
cts
Tam
pilk
an L
ayar
Reca
ll N
ear E
xpir
ed P
rodu
cts
Pilih
Men
uRe
call
New
Pro
duct
sPi
lih M
enu
Reca
ll To
o M
any
Prod
ucts
Tam
pilk
an L
ayar
Reca
ll N
ew P
rodu
cts
Tam
pilk
an L
ayar
Reca
ll To
o M
any
Prod
ucts
Men
ungg
u Pi
lihan
pa
da L
ayar
View
Dat
a Ta
ble
Men
ungg
u Pi
lihan
pa
da L
ayar
View
Even
ts T
able
Men
ungg
u Pi
lihan
pa
da L
ayar
View
Prio
rity
Tab
le
Men
ungg
u Pi
lihan
pa
da L
ayar
View
Prom
otio
n Ta
ble
Pilih
Men
uVi
ew D
ata
Tabl
e
Tam
pilk
an L
ayar
View
Dat
a Ta
ble
Tam
pilk
an L
ayar
View
Eve
nts T
able
Tam
pilk
an L
ayar
View
Pri
ority
Tab
leTa
mpi
lkan
Lay
arVi
ew P
rom
otio
n Ta
ble
Pilih
Men
uVi
ew E
vent
s Tab
lePi
lih M
enu
View
Pri
ority
Tab
lePi
lih M
enu
View
Pro
mot
ion
Tabl
e
Men
ungg
u Pi
lihan
pa
da L
ayar
View
Mat
rix
Q –
Hol
iday
Men
ungg
u Pi
lihan
pada
Lay
arVi
ew M
atri
x Q
– N
ear E
xpir
ed
Men
ungg
u Pi
lihan
pada
Lay
arVi
ew M
atri
x Q
– N
ew
Men
ungg
u Pi
lihan
pada
Lay
arVi
ew M
atri
x Q
– T
oo M
any
Tam
pilk
an L
ayar
View
Mat
rix
Q –
Hol
iday
Tam
pilk
an L
ayar
View
Mat
rix
Q –
Nea
r Exp
ired
Tam
pilk
an L
ayar
View
Mat
rix
Q –
New
Tam
pilk
an L
ayar
View
Mat
rix
Q –
Too
Man
y
Pilih
Men
uVi
ew M
atri
x Q
– T
oo M
any
Pilih
Men
uVi
ew M
atri
x Q
– N
ewPi
lih M
enu
View
Mat
rix
Q –
Nea
r Exp
ired
Pilih
Men
uVi
ew M
atri
x Q
– H
olid
ay
Gambar 3.21 STD Menu Utama
b. STD Menu Training Data
117
Menunggu Pilihanpada Layar
Cek Validasi
Tombol
diaktifkan
Tampilan Layar
TampilanProses
Cek
TombolTampilkan
Layar
Klik Tombol
Kembali ke Layar
Klik Tombol
Tampilkan Proses
Tampilan Layar
Tampilan Layar Berhasil
Tampilkan Layar Berhasil
Tampilkan Layar
Klik Tombol Klik Tombol
Menunggu Pilihan
pada Menu
Menunggu Pilihan
pada Menu
Menunggu Pilihan
pada Menu
Menunggu Pilihanpada Menu
Menunggu Pilihan
pada Menu
Tampilkan pilihan pada
Menu
Pilih Menu
Tampilkan pilihan pada
Menu
Pilih Menu
Tampilkan pilihan pada
Menu
Tampilkan pilihan pada
Menu
Tampilkan pilihan pada
Menu
Pilih MenuPilih Menu
Pilih Menu
Proses
selesai dijalankan
Tampilan Layar
berhasil
Tampilkan
berhasil
Gambar 3.22 STD Menu Training Data
118
c. STD Menu Recall Events Products
Menunggu Pilihanpada Layar
RecallEvents Products
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada Menu
View Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Pilih Menupada Combo Box
Enable TombolRecall
Tombol Recalldiaktifkan
Klik TombolRecall
Tampilkan HasilRecall Events Products
Tampilan Layar Recall
Events Products
Kembali ke LayarRecall Events Products
Recall Events Productsselesai dijalankan
Gambar 3.23 STD Menu Recall Events Products
119
d. STD Menu Recall Near Expired Products
Tampilan LayarRecall
Near Expired Products
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada MenuView Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Gambar 3.24 STD Menu Recall Near Expired Products
e. STD Menu Recall New Products
Gambar 3.25 STD Menu Recall New Products
120
f. STD Menu Recall Too Many Products
Tampilan LayarRecall
Too Many Products
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada MenuView Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Gambar 3.26 STD Menu Recall Too Many Products
g. STD Menu View Matrix R
Tampilan LayarView Matrix R
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada MenuView Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Gambar 3.27 STD Menu View Matrix R
121
h. STD Menu View Matrix Q – Events
Tampilan LayarView MatrixQ – Events
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada MenuView Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Gambar 3.28 STD Menu View Matrix Q – Events
i. STD Menu View Matrix Q – Near Expired
Tampilan LayarView Matrix
Q – Near Expired
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada MenuView Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Gambar 3.29 STD Menu View Matrix Q – Near Expired
122
j. STD Menu View Matrix Q – New
Tampilan LayarView Matrix
Q – New
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada MenuView Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Gambar 3.30 STD Menu View Matrix Q – New
k. STD Menu View Matrix Q – Too Many
Tampilan LayarView Matrix
Q – Too Many
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada MenuView Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Gambar 3.31 STD Menu View Matrix Q – Too Many
123
l. STD Menu View Data Table
Tampilan LayarView
Data Table
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada MenuView Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Gambar 3.32 STD Menu View Data Table
m. STD Menu View Events Table
Tampilan LayarView
Events Table
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada MenuView Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Gambar 3.33 STD Menu View Events Table
124
n. STD Menu View Priority Table
Menunggu Pilihanpada Layar View
Priority Table
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada Menu
View Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Pilih Menupada Combo Box
Tampilkan HasilView Priority Table
Tampilan LayarView
Priority Table
Kembali ke LayarView Priority Table
View Priority Tableselesai dijalankan
Gambar 3.34 STD Menu View Priority Table
o. STD Menu View Promotion Table
Gambar 3.35 STD Menu View Promotion Table
p. STD Menu Program Tutorial
125
Tampilan LayarProgram Tutorial
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada MenuView Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Gambar 3.36 STD Menu Program Tutorial
q. STD Menu About Us
Tampilan LayarAbout Us
Menunggu Pilihanpada Menu
Learning Process
Menunggu Pilihanpada Menu
Recalling Process
Menunggu Pilihanpada MenuView Matrix
Menunggu Pilihanpada Menu
View Database
Menunggu Pilihan
pada MenuHelp
Tampilkan pilihan padaMenu Learning Process
Pilih MenuLearning Process
Tampilkan pilihan padaMenu Recalling Process
Pilih MenuRecalling Process
Tampilkan pilihan padaMenu View Matrix
Tampilkan pilihan padaMenu View Database
Tampilkan pilihan padaMenu Help
Pilih MenuView Matrix
Pilih MenuView Database
Pilih MenuHelp
Gambar 3.37 STD Menu About Us
3.7.4 Rancangan Layar
126
3.7.4.1 Rancangan Form Main Menu
Gambar 3.38 Rancangan Form Main Menu
Menu ini merupakan tampilan awal dari aplikasi. Pada layar ini akan ditampilkan judul
program beserta pembuatnya. Dari menu ini, user dapat memilih menu-menu lainnya:
Learning Process, Recalling Process, View Matrix, View Database, dan Help. Menu-
menu tersebut memiliki sub-menu masing-masing.
Pseudocode untuk form Main Menu:
127
3.7.4.2 Rancangan Form Training Data
Inisialisasi matriks R
Inisialisasi semua matriks Q
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
129
Disable semua input box
Enable input box Discount Rate dan ε-greedy Parameter
Disable semua tombol kecuali Start Training
IF ditekan tombol Start Training THEN
BEGIN
Cek validasi input Discount Rate dan ε-greedy Parameter
IF all input is valid THEN
Jalankan modul Training Data
ELSE
Tampilkan pesan Warning
END IF
Enable tombol Save Data
IF ditekan tombol Save Data THEN
Jalankan modul Save Data
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
130
3.7.4.3 Rancangan Form Recall Events Products
Gambar 3.40 Rancangan Form Recall Events Products
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
131
Pseudocode untuk form Recall Events Products:
Disable tombol Recall
IF diisi combo box Jenis Event THEN
Enable tombol Recall
IF ditekan tombol Recall THEN
Jalankan modul Recall Data
Tampilkan hasil Recall Events Products
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
132
3.7.4.4 Rancangan Form Recall Near Expired Products
Gambar 3.41 Rancangan Form Recall Near Expired Products
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
133
Pseudocode untuk form Recall Near Expired Products:
Jalankan modul Recall Data
Tampilkan hasil Recall Near Expired Products
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
135
Pseudocode untuk form Recall New Products:
Jalankan modul Recall Data
Tampilkan hasil Recall New Products
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
136
3.7.4.6 Rancangan Form Recall Too Many Products
Gambar 3.43 Rancangan Form Recall Too Many Products
137
Pseudocode untuk form Recall Too Many Products:
Jalankan modul Recall Data
Tampilkan hasil Recall Too Many Products
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
139
Pseudocode untuk form View Matrix R:
Tampilkan matriks R
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
141
Pseudocode untuk form View Matrix Q – Events:
Tampilkan matriks Q0
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
142
3.7.4.9 Rancangan Form View Matrix Q – Near Expired
Gambar 3.46 Rancangan Form View Matrix Q – Near Expired
143
Pseudocode untuk form View Matrix Q – Near Expired:
Tampilkan matriks Q1
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
145
Pseudocode untuk form View Matrix Q – New:
Tampilkan matriks Q2
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
146
3.7.4.11 Rancangan Form View Matrix Q – Too Many
Gambar 3.48 Rancangan Form View Matrix Q – Too Many
147
Pseudocode untuk form View Matrix Q – Too Many:
Tampilkan matriks Q3
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
149
Pseudocode untuk form View Data Table:
Tampilkan Data Table
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
151
Pseudocode untuk form View Events Table:
Tampilkan Events Table
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
153
Pseudocode untuk form View Priority Table:
IF dipilih combo box Jenis Event THEN
Tampilkan Priority Table
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
155
Pseudocode untuk form View Promotion Table:
Tampilkan Promotion Table
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
157
Pseudocode untuk form Program Tutorial:
Tampilkan tutorial program
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
159
Pseudocode untuk form About Us:
Tampilkan About Us
IF dipilih menu Training Data THEN
Tampilkan form Training Data
IF dipilih menu Exit THEN
Keluar dari Aplikasi
IF dipilih menu Recall Events Products THEN
Tampilkan form Recall Events Products
IF dipilih menu Recall Near Expired Products THEN
Tampilkan form Recall Near Expired Products
IF dipilih menu Recall New Products THEN
Tampilkan form Recall New Products
IF dipilih menu Recall Too Many Products THEN
Tampilkan form Recall Too Many Products
IF dipilih menu View Matrix R THEN
Tampilkan form View Matrix R
IF dipilih menu View Matrix Q – Events THEN
Tampilkan form View Matrix Q – Events
IF dipilih menu View Matrix Q – Near Expired THEN
Tampilkan form View Matrix Q – Near Expired
IF dipilih menu View Matrix Q – New THEN
Tampilkan form View Matrix Q – New
IF dipilih menu View Matrix Q – Too Many THEN
Tampilkan form View Matrix Q – Too Many
IF dipilih menu View Data Table THEN
Tampilkan form View Data Table
IF dipilih menu View Events Table THEN
Tampilkan form View Events Table
IF dipilih menu View Priority Table THEN
Tampilkan form View Priority Table
IF dipilih menu View Promotion Table THEN
Tampilkan form View Promotion Table
IF dipilih menu Program Tutorial THEN
Tampilkan form Program Tutorial
IF dipilih menu About Us THEN
Tampilkan form About Us
160
Demikianlah rancangan-rancangan dari aplikasi yang akan dibuat ini.
Keseluruhan rancangan berupa rancangan modul, State-Transition Diagram, dan
rancangan layar ini akan diimplementasikan ke dalam aplikasi pencarian solusi promosi
produk perusahaan ini, dan pembahasannya akan dilakukan lebih lanjut pada Bab 4.