bab 3 analisis dan perancangan - thesis.binus.ac.idthesis.binus.ac.id/asli/bab3/2008-1-00386-if bab...

99
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).

Upload: vokhanh

Post on 02-Mar-2019

226 views

Category:

Documents


0 download

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

98

Gambar 3.7 Diagram Alir Modul Training Data

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

100

Gambar 3.8 Diagram Alir Modul Choose Action

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

102

Gambar 3.9 Diagram Alir Modul Get Index

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

104

Gambar 3.10 Diagram Alir Modul Update Convergence

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:

115

a. STD Menu Utama

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

128

Gambar 3.39 Rancangan Form Training Data

Pseudocode untuk form Training Data:

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

134

3.7.4.5 Rancangan Form Recall New Products

Gambar 3.42 Rancangan Form Recall New Products

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

138

3.7.4.7 Rancangan Form View Matrix R

Gambar 3.44 Rancangan Form View Matrix R

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

140

3.7.4.8 Rancangan Form View Matrix Q – Events

Gambar 3.45 Rancangan Form View Matrix Q – Events

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

144

3.7.4.10 Rancangan Form View Matrix Q – New

Gambar 3.47 Rancangan Form View Matrix Q – New

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

148

3.7.4.12 Rancangan Form View Data Table

Gambar 3.49 Rancangan Form View Data Table

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

150

3.7.4.13 Rancangan Form View Events Table

Gambar 3.50 Rancangan Form View Events Table

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

152

3.7.4.14 Rancangan Form View Priority Table

Gambar 3.51 Rancangan Form View Priority Table

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

154

3.7.4.15 Rancangan Form View Promotion Table

Gambar 3.52 Rancangan Form View Promotion Table

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

156

3.7.4.16 Rancangan Form Program Tutorial

Gambar 3.53 Rancangan Form Program Tutorial

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

158

3.7.4.17 Rancangan Form About Us

Gambar 3.54 Rancangan 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.