thesis bab2 kalbe
DESCRIPTION
Thesis Bab2 KalbeTRANSCRIPT
5
BAB II LANDASAN TEORI
2.1 Latar Belakang Perusahaan
2.1.1 Sejarah Singkat Pendirian Perusahaan
PT Kalbe Morinaga Indonesia ( Perusahaan ) didirikan berdasarkan Akta
notaris No.33 tanggal 7 Februari 2005 dari notaris DR. Irawan Soerodjo, S.H.,
Msi. Aktapendirian tersebut telah disahkan oleh Menteri Hukum dan Hak Asasi
ManusiaRepublik Indonesia dalam Surat Keputusannya No.C-06329
HT.01.01.TH.2005 pada tanggal 10 Maret 2005 serta diumumkan dalam Berita
Negara Republik Indonesia No.70 tanggal 1 September 2005, Tambahan
No.9374. Anggaran Dasar telah diubah berdasarkan aktaNotaris No.46 tanggal 28
Agustus 2008 dari notaris Tjong Trisnawati,SH. tentang penyesuaian Anggaran
Dasar Perusahaan dengan Undang-Undang Nomor40 tahun 2007 tentang
Perseroan Terbatas. Perubahan anggaran dasar telah disetujui Menteri Hukum dan
hak Asasi manusia Republik Indonesia dengan surat keputusan No.AHU-
85901.AH.01.02 Tahun 2008 tanggal 13 November 2008.Kantor dan pabrik
Perusahaan beralamat di Kawasan Industri Indotaisei Sektor I A BlokQ1 Kawasan
Industri Indotaisei, Kota Bukit Indah Kalihurip Cikampek Karawang, JawaBarat.
Perusahaan tergabung dalam kelompok usaha (grup) Kalbe.Perusahaan dimiliki
oleh PT Kalbe (70%), Morinaga Milk Industry Co. Ltd, Japan(30%).
6
2.1.2. Jenis Layanan Manufaktur Perusahaan
Sesuai dengan pasal 3 anggaran dasar Perusahaan, ruang lingkup kegiatan
perusahaan adalah bergerak dalam bidang penerimaan titip olah produksi(toll
manufacturing) atas susu bayi dan produk-produk lainnya. Layanan manufaktur
perusahaan untuk pelanggan antara lain adalah :
1. Layanan manufaktur produksi susu bayi.
2. Layanan manufaktur produksi susu ibu hamil.
3. Layanan manufaktur produksi susu untuk anak umur 1-3 tahun.
4. Layanan manufaktur produksi susu untuk anak umur 3-6 tahun.
2.1.3 Visi dan Misi Perusahaan secara Umum
Dalam menjalankan kegiatan usahanya serta sebagai arah dalam mencapai
tujuannya setiap perusahaan memiliki visi dan misi yang jelas. Demikian pula
dengan PT. Kalbe Morinaga Indonesia yang juga memiliki visi dan misi untuk
menentukan arah bisnisnya. Adapun visi dari PT. Kalbe Morinaga Indonesia
adalah : “To become an Excellent Toll Manufacturing in Indonesia, prioritized for
Morinaga Products”. Sementara itu misi dari PT. Kalbe Morinaga Indonesia yaitu
: “To Provide Excellent Services for Our Customer and To become and remain
Market Leaders”.
2.1.5. Sejarah Pemegang Saham
PT. Kalbe Farma mendistribusikan produk susu bayi Morinaga sejak tahun
1978 (Perusahaan Farmasi), karena produk morinaga di Indonesia
7
(pertumbuhannya)sangat baik, maka di tahun 1985 morinaga ( Jepang ) menunjuk
Kalbe Farma sebagai distributor tunggal produk Morinaga. Pertumbuhan
Morinaga yang pesat menjadi pemimpin pasar dan pemain dominan di Indonesia
untuk susu bayi. Di tahun 2005 Kalbe Farma dan Morinaga menyetujui untuk
membangun pabrik yang memproduksi susu bayi berlokasi di Indonesia. Total
investasi US$ 45-50 juta dengan kapasitas 12,000 ton per tahun.
2.1.6. Struktur Perusahaan
Setiap perusahaan membutuhkan struktur organisasi untuk mencapai
tujuanperusahaan yang telah ditetapkan. Struktur organisasi perusahaan bertujuan
untukmelaksanakan kegiatan atau aktivitas perusahaan, seperti masalah
pembagian kerja,pembagian fungsi, pembagian tugas dan tanggung jawab, agar
dalam pelaksanaannyadapat berjalan dengan efektif dan efisien. Untuk mencapai
tujuan yang telah ditetapkan tersebut diperlukan suatu penetapan struktur
organisasi yang jelas dan sesuai dengankebutuhan.
Dengan adanya struktur organisasi, masing-masing karyawan divisi dapat
memahami tugas dan tanggung jawab apa yang dilimpahkan kepadanya. Selain itu
jugauntuk mengetahui hubungan formal antar unit dalam organisasi. Struktur
organisasiperusahaan tidak selalu bersifat tetap, karena adanya kemungkinan
perubahan situasidan kondisi didalam perusahaan yang memungkinkan terjadinya
perubahan strukturorganisasi perusahaan.
2
I
2.1.6.1. Stru
Berik
Indonesia.
uktur Organ
kut ini mer
Gambar
Gambar 2
nisasi Perus
rupakan str
2.1 Struktur
2.2 Struktur O
sahaan
ruktur organ
r Organisasi
Organisasi M
nisasi dari
Menengah k
Menengah ke
PT. Kalbe
ke Atas
e Bawah
8
Morinaga
:
9
2.1.6.2. Detail Wewenang dan Tanggung Jawab
Struktur organisasi perusahaan membantu menelusuri wewenang dan
tanggungjawab masing-masing karyawan di perusahaan. Uraian dan penjelasan
wewenang dantanggung jawab dari PT Kalbe Morinaga Indonesia adalah sebagai
berikut :
1. Board of Commisioners ( Dewan Komisaris )
Board of Commisioners berada pada posisi teratas perusahaan dalam
struktur organisasi dipimpin oleh seorang Presiden Komisaris yang
membawahi tiga orang commisioner, dan satu orang tambahan
commisioner saat ini.
2. Board of Director ( Dewan Direktur )
Dipimpin oleh seorang President Director yang membawahi seorang
Direktur Teknis dan Direktur Administrasi & Keuangan.
3. President Director
President Director berada pada posisi teratas perusahaan dalam struktur
organisasi dan memimpin pihak manajemen dengan uraian tanggung
jawab sebagai berikut :
a. Menerapkan tujuan perusahaan agar tumbuh terus menerus di
ataspertumbuhan perusahaan lain yang sejenis.
b. Selalu meningkatkan strategic position perusahaan agar lebih
unggul dibanding pesaing.
c. Membuat strategi 5 tahunan,dan diimplementasikan tahun demi
tahun secara konsisten dengan menjabarkan seluruh activity yang
relevan dan tercermin dalam budget tahunan.
10
d. Menjabarkan dan mengkomunikasikan strategi tahunan perusahaan
baik secara verbal maupun dalam bentuk Individual Score Card
(ISC) yang juga menjadi tolak ukur keberhasilan karyawan itu
sendiri maupun perusahaan.
e. Membangun budaya kerja yang inovatif, penuh dengan
improvement, pembelajar, membuat jaringan kerja/informasi
dengan pihak lain serta sistem berpikir yang rasional ( speak with
data ).
4. Technical Director
Bersama dengan President Director, bertanggung jawab dalam :
a. Memastikan bahwa proses produksi memenuhi standart kualitas
Morinaga.
b. Memastikan proses produksi telah memenuhi kualitas yang telah
ditetapkanoleh perusahaan.
c. Memberikan nasehat teknis dalam pencapaian mutu, target
produksi dan dalam trial formula baru.
5. Administration, Finance and Accounting Director
Secara umum, bertanggung jawab dalam perencanaan dankontrol dalam
perusahaan baik dari sisi perencanaan finansial dan kebijakan perusahaan,
bertanggung jawab atas akunting dan hubungan dengan institusi utama,
pemegang saham dan komunitas finansial.
11
6. Secretary BOD
Secara umum, bertanggung jawab untuk mengatur jadwal rapat, jadwal
kerja, dan jadwal pertemuan (Board of Director) dengan client perusahaan
dan membuat notulen hasil rapat koordinasi.
7. Finance & Accounting Manager
Secara umum, memiliki tanggung jawab untuk memacu pertumbuhan
bisnis yang berkesinambungan melalui pengendalian dan optimalisasi
penggunaan uang serta aset berdasarkan sistem informasi keuangan yang
terintegrasi, akurat, tepat waktu serta membangun team yang solid
Memiliki uraian tanggung jawab sebagai berikut :
a. Membuat perencanaan strategis jangka panjang (5 tahun) Divisi
Finance & Accounting.
b. Mengendalikan dan mengoptimalkan penggunaan uang dan aset
perusahaan.
c. Mengarahkan bawahan dalam pembuatan rencana jangka
menengah dan jangka pendek (3 dan 1 tahun) berikut penyusunan
anggaran tahunan.
d. Menganalisa, mengantisipasi, memberikan usulan kepada
Manajemen mengenai penanganan issue keuangan baik internal
maupun eksternal.
e. Mengkoordinir seluruh kegiatan di Divisi Finance & Acccounting
untuk mencapai Visi dan target perusahaan.
f. Mengelola hubungan, terutama dengan eksternal auditor, Bank,
suppliers, kantor Pajak.
12
g. Mengelola sumberdaya manusia di Divisi Finance & Accounting
termasuk perencanaan tenaga kerja, rekrutmen, pengelolaan
kinerja, pelatihan dan pengembangan SDM.
h. Memonitor, me-review dan mempertanggungjawabkan kinerja
Divisi Finance & Accounting.
8. Senior Plant Manager
Secara umum, memiliki tanggung jawab untuk mengelola seluruh sumber
daya Plant (manusia, mesin, teknologi, informasi, uang dan sumberdaya
lainnya), agar seluruh aktivitas Plant berlansung efektif dan efisien, sesuai
dengan objective perusahan dengan berlandaskan pada QCS (Quality,
Cost, dan Speed) serta membangun team yang solid dan memiliki
kompetensi tinggi dalam proses pengolahan susu formula.
Memiliki uraian tanggung jawab sebagai berikut :
a. Membuat perencanaan strategis jangka panjang (5 tahun) Plant
division sesuai objektif perusahan.
b. Memastikan seluruh aktivitas Plant division berlangsung sejalan
dengan objektifperusahaan.
c. Mengarahkan bawahan dalam pembuatan rencana jangka
menengah (3 tahun) dan jangka pendek (1 tahun) berikut
penyusunan anggaran tahunan.
d. Memastikan seluruh aktivitas Plant Division sesuai dengan
Standard Quality System (HACCP, GMP, ISO) dan prosedur
standar yang telah ditetapkan.
13
e. Me-monitor, mereview, dan mempertanggungjawabkan kinerja
Plant division.
9. Human Resource Manager
Secara umum, bertanggung jawab untuk memacu pertumbuhan bisnis yang
berkesinambungan dengan mempersiapkan dan mengelola sumber daya
manusia melalui sistem HRD, pengembangan yang terintegrasi dan
menciptakan iklim kerja yang mendukung produktivitas di perusahaan
dengan membangun team yang solid.
Memiliki uraian tanggung jawab sebagai berikut :
a. Membuat perencanaan strategis jangka panjang (5 tahun) Divisi
Human Resource Department.
b. Mengarahkan bawahan dalam pembuatan rencana jangka
menengah dan jangka pendek (3 dan 1 tahun) berikut penyusunan
anggaran tahunan.
c. Mengembangkan sistem dan policy pengelolaan HRD.
d. Mengembangkan sistem dan policy pengelolaan General Affairs.
e. Mengembangkan sistem Succession Planning untuk
mempersiapkan kader yang kompeten.
f. Mengembangkan dan mengimplementasikan Human Resource
Programs yang ditujukan untuk menjaga dan memelihara tingkat
kepuasan karyawan.
g. Mendayagunakan sumber daya manusia secara optimal untuk
meningkatkan produktivitas.
14
h. Mengembangkan dan mengelola HRIS (Human Resources
Information System) untuk seluruh proses bisnis HRD.
i. Mengkoordinir seluruh kegiatan di Divisi Human Resources dan
General Affairs untuk mencapai visi dan target perusahaan.
j. Mengelola hubungan, terutama dengan bagian internal organisasi,
Institusi pemerintah, dan perwakilan karyawan.
10. Quality Assurance Manager
Secara umum, bertanggung jawab untuk memastikan produk yang
dihasilkan sesuai standar yang telah ditetapkan melalui penerapan Quality
System (HACCP, GMP, ISO) yang baik dan benar selama proses produksi
dan membangun team Quality Assurance yang solid dan memiliki
kompetensi tinggi dalam aktivitas pengawasan mutu susu formula dan
membangun team QA yang solid dan memiliki kompetensi tinggi dalam
aktivitas pengawasan mutu susu formula.
Memiliki uraian tanggung jawab sebagai berikut :
a. Membuat perencanaan program kerja departement QA jangka
menengah (3 tahun) dan jangka pendek (1 tahun).
b. Mengelola seluruh kegiatan di Quality Assurance dengan :
i. Memastikan penerapan Quality System dalam segala
aktivitas plant.
ii. Memonitor sistem kerja Plant, mulai dari penerimaan Raw
Material/Packaging Material sampai penyimpanan
Finished Goods, agar sesuai dengan standar yang
ditetapkan.
15
iii. Mengelola proses internal audit sistem mutu di Plant.
iv. Menangani keluhan pelanggan berkaitan dengan kualitas
produk.
v. Mengelola hubungan dengan suppliers.
vi. Mengevaluasi hasil analisa dan menentukan status produk.
vii. Mengelola sumberdaya manusia di Departemen QA
termasuk perencanaan tenaga kerja, rekrutmen, pengelolaan
kinerja, pelatihan dan pengembangan SDM dalam rangka
membangun team yang solid dan memiliki kompetensi
tinggi.
viii. Me-monitor, me-review dan mempertanggungjawabkan
kinerja departemen QA.
11. Warehouse Manager
Memiliki uraian tanggung jawab sebagai berikut :
a. Memastikan gudang memiliki stok yang akurat.
b. Memastikan pengambilan barang mudah dan cepat.
c. Memastikan pengiriman tepat waktu, jenis, dan jumlah.
d. Me-monitor, me-review dan mempertanggungjawabkan kinerja
departemen Warehouse.
12. Production Manager
Secara umum, bertanggung jawab untuk mengelola seluruh sumber daya
produksi (manusia, mesin, waktu, informasi, material, uang dan sumber
daya lainnya). Agar departemen produksi dapat melaksanakan fungsinya
untuk memproduksi produk secara efektif dan efisien berlandaskan
16
QCS(Quality, Cost, dan Speed) serta membangun team produksi yang
solid dan memiliki kompetensi tinggi dalam bidang pengolahan susu
formula.
Memiliki uraian tanggung jawab sebagai berikut :
a. Membuat perencanaan produksi jangka menengah (3 tahun), dan
jangka pendek (1 tahun) berdasarkan objective perusahan.
b. Mengkoordinir seluruh kegiatan untuk menunjang pelaksanakan
proses produksi secara efektif dan efisien dengan :
i. Mengelola penggunaan sumber daya manusia.
ii. Mengelola penggunaan RM, PM.
iii. Mengelola pemeliharaan sarana Produksi dengan baik.
iv. Menjamin penerapan Quality System ( GMP, HACCP, ISO)
secara konsisten.
v. Meningkatkan Produktivitas dan menurunkan loss.
c. Mengelola sumberdaya manusia di departemen produksi termasuk
perencanaan tenaga kerja, rekrutmen, pengelolaan kinerja,
pelatihan dan pengembangan SDM dalam rangka membangun
team yang solid dan memiliki kompetensi tinggi.
d. Bekerjasama dengan depertemen terkait (QA, WH, ENG, HRD),
untuk menjamin proses produksi berlansung lancar, sesuai standar,
efektif dan efisien.
13. Engineering Manager
Secara umum, bertanggung jawab untuk mengelola seluruh sumberdaya
departemen Engineering, agar departemen Engineering dapat
17
melaksanakan fungsinya untuk merawat mesin produksi, bangunan,
fasilitas utility, dan penanganan limbah dengan baik, berlandaskan konsep
QCS(Quality, Cost, dan Speed) serta membangun team Engineering yang
solid dan memiliki kompetensi tinggi dalam bidang penanganan mesin-
mesin pengolahan susu formula.
Memiliki uraian tanggung jawab sebagai terikut :
a. Membuat perencanaan jangka menengah (3 tahun) dan jangka
pendek (1 tahun) berdasarkan berdasarkan objective Perusahaan.
b. Mengelola sumberdaya manusia di departemen enginering
termasuk perencanaan tenagakerja, rekrutmen, pengelolaan kinerja,
pelatihan dan pengembangan SDM dalam rangka membangun
team enginering yang solid dan memiliki kompetensi tinggi dalam
penanganan mesin mesin pengolahan susu formula.
c. Mengelola persediaan spare part agar proses maintenance
berlangsung efektif dan efisien.
d. Memastikan aktivitas perawatan dan perbaikan mesin produksi,
sarana utility, bangunan dan sarana lainya terlaksana dengan baik
sesuai rencana.
e. Berkoordinasi dengan departemen terkait, untuk menjaga
kelancaran proses produksi.
f. Me-monitor, me-review dan mempertanggungjawabkan kinerja
departemen Enginering.
18
14. IT Supervisor
Secara umum, bertanggung jawab terhadap pengelolaan operasional
sumber daya teknologi informasi dalam perusahaan. Memiliki uraian
tanggung jawab sebagai berikut :
a. Mengembangkan ketentuan dan prosedur teknologi informasi
untuk mendukung tujuan dari bisnis perusahaan.
b. Mengevaluasi kebutuhan bisnis perusahaan yang berhubungan
dengan pengaturan informasi, sistem, peralatan, dukungan dan
pelatihan yang ditujukan untuk bahan pertanggung jawaban dalam
memutuskan dan melaksanakan serta mengatur segala aspek dari
kondisi teknologi informasi guna mendukung kebutuhan didalam
perusahaan.
c. Bertanggung jawab dalam mengatur dan memberi dorongan
kepada staf dan mengembangkan level kemampuan teknologi
informasi yang berguna untuk pelaksanaan bisnis perusahaan.
d. Mengatur kegiatan IT termasuk pengaturan keuanganyang sesuai
dengan peraturan yang berlaku.
e. Memberi masukan dalam hal perubahan sistem yang ditujukan
pada kebutuhan perusahaan dan meningkatkan keefektifitasan
operasional.
f. Me-monitor, me-review dan mempertanggungjawabkan kinerja
departemen IT.
19
15. HR Finance and Accounting Supervisor
Secara umum, Finance dan Accounting Supervisor memiliki tanggung
jawab memaksimalkan penggunaan keuangan perusahaan dan menjaga
asset perusahaan terhadap resiko-resiko keuangan.
Memiliki uraian tanggung jawab sebagai berikut :
a. Membuat perencanaan strategi jangka pendek (1 tahun)
departemenFinance & Accounting selaras dengan sasaran jangka
panjang DepartemenFinance & Accounting beserta anggaran.
b. Mengarahkan bawahan dalam menyusun rencana jangka pendek (1
tahun).
c. Mengatur cash flow perusahaan untuk mendukung kegiatan
operasional, antara lain :
i. Memastikan sesuai dengan target yang ditetapkan
manajemen.
ii. Memaksimalkan penggunaan kelebihan uang kas bekerja
sama dengan treasury Corporate.
iii. Me-review proses pinjaman bank dan cadangan valas.
d. Mengelola sumber daya manusia termasuk perencanaan tenaga
kerja, pengelolaan kinerja, pelatihan dan pengembangan SDM di
Finance & Accounting Department.
e. Mengelola hubungan dengan Bank, Institusi Keuangan.
f. Memastikan compliance proses pembayaran, penerimaan sesuai
dengan aturan yang berlaku dan memastikan tersedianya budget.
20
g. Me-monitor dan me-review kondisi keuangan cabang secara
periodik serta merekonsiliasi laporan keuangan cabang dan catatan
kantor pusat.
2.2 Software Testing
Software testing adalah proses mengevaluasi suatu sistem atau komponen
dengan tujuan untuk menemukan bahwa apakah software memenuhi persyaratan
yang ditentukan atau tidak. Hasil kegiatan ini sebenarnya, diharapkan dan
perbedaan antara hasil mereka. Dengan kata sederhana pengujian mengeksekusi
sistem untuk mengidentifikasi kesenjangan, kesalahan atau persyaratan yang
hilang bertentangan dengan keinginan yang sebenarnya atau persyaratan.
Menurut standar ANSI / IEEE 1059, Pengujian dapat didefinisikan sebagai
suatu proses menganalisis item perangkat lunak untuk mendeteksi perbedaan
antara kondisi yang ada dan yang dibutuhkan (yang cacat / kesalahan / bug) dan
untuk mengevaluasi fitur item perangkat lunak (Perry, E. W., 2006).
2.2.1 Jenis Software Testing
Ada dua jenis cara dalam melakukan pengujian software (Perry, E. W.,
2006), yakni :
1. Manual Testing
Pengujian ini dilakukan secara manual yakni tanpa menggunakan alat
otomatis atau tulisan apapun. Pada tipe ini tester mengambil alih peran
pengguna akhir dan menguji software untuk mengidentifikasi respon yang
21
tidak diharapkan atau bug. Ada tahapan yang berbeda untuk pengujian
manual seperti unit testing, pengujian Integrasi, pengujian sistem dan
pengguna.
Penguji menggunakan tes rencana, uji kasus atau skenario tes untuk
menguji software untuk memastikan kelengkapan pengujian. Pengujian
manual juga mencakup pengujian eksplorasi sebagai penguji
mengeksplorasi perangkat lunak untuk mengidentifikasi kesalahan di
dalamnya.
2. Automation Testing
Automation test adalah ketika tester menulis skrip dan menggunakan
perangkat lunak lain untuk menguji software. Pengujian Otomasi
digunakan untuk kembali menjalankan skenario pengujian yang dilakukan
secara manual, cepat dan berulang.
Terlepas dari pengujian regresi, pengujian Otomasi juga digunakan untuk
menguji aplikasi dari beban (load testing), kinerja (performance testing)
dan stress testing. Hal ini meningkatkan cakupan tes, meningkatkan
akurasi, menghemat waktu dan uang dibandingkan dengan pengujian
manual.
22
2.2.2 Metode Testing
Ada beberapa metode untuk melakukan web testing (Perry, E. W., 2006),
di antaranya adalah :
1. Black Box Testing
Teknik testing yang dijalankan tanpa dibutuhkannya pengetahuan tentang
cara kerja interior (kode) dari aplikasi. Tester menyadari arsitektur sistem
namun tidak memiliki akses ke kode sumber. Biasanya, ketika melakukan
black box testing, tester akan berinteraksi dengan user interface sistem
dengan memberikan masukan dan memeriksa output tanpa mengetahui
bagaimana dan di mana input bekerja.
Table 2.1 Keunggulan dan Kerugian Metode Black Box Testing
Keunggulan Kerugian
Tepat dan efisien untuk segmen software yang
cakupannya luas.
Terbatasnya area cakupan pengujian karena yang
diuji hanya sebatas skenario yang telah
ditentukan.
Tidak membutuhkan akses ke dalam kode. Pengujian bisa menjadi tidak efisien apabila
penguji tidak memahami alur kerja software.
Memisahkan perspektif pengguna/tester
dengan perspektif pengembang
Skenario pengujian sulit untuk dirancang.
Tester/penguji tidak perlu memahami bahasa
pemrograman/sistem operasi.
23
2. White Box Testing
White box testing adalah penyelidikan rinci logika internal dan struktur
kode. White box testing juga disebut glass testing atau open box testing.
Dalam rangka untuk melakukan white box testing pada aplikasi, tester
perlu memiliki pengetahuan tentang alur kerja internal kode. Tester perlu
melihat dalam sumber dan mengetahui unit / serangkaian kode yang
terdapat pada software.
Table 2.2 Keunggulan dan Kerugian Metode White Box Testing
Keunggulan Kerugian
Sebagai tester yang memiliki pengetahuan
tentang sumber kode, akan menjadi sangat
mudah untuk mengetahui jenis data. Hal ini
dapat membantu dalam pengujian aplikasi
secara efektif.
Dibutuhkan biaya besar untuk melakukan
pengujian.
Tester berfungsi sebagai penguji ataupun
pengoptimasi kode.
Kadang-kadang sulit untuk melihat ke setiap
sudut untuk mengetahui kesalahan tersembunyi
yang dapat menimbulkan masalah karena
banyaknya proses yang harus diuji.
Dapat secara langsung memperbaiki kode dari
aplikasi tersebut.
Sulit untuk mempertahankan white box testing
menggunakan alat bantu seperti analisis kode dan
alat debugging yang diperlukan.
Karena pengetahuan tester mengenai kode,
jangkauan maksimum dicapai selama
pengujian berdasarkan skenario.
24
3. Grey Box Testing
Grey box testing adalah teknik untuk menguji aplikasi dengan
pengkombinasian antara white box testing dan black box testing. Dalam
pengujian software. Menguasai sistem selalu memberikan tester
keunggulan atas seseorang dengan pengetahuan sistem yang terbatas, baik
dari sisi kode maupun alur kerja software. Tidak seperti black box testing,
di mana tester hanya menguji aplikasi user interface, dalam grey box
testing, tester memiliki akses ke dokumen desain dan database. Dengan
memiliki pengetahuan ini, tester dapat lebih mempersiapkan data uji dan
skenario pengujian ketika membuat rencana uji.
Table 2.3 Keunggulan dan Kerugian Metode Grey Box Testing
Keunggulan Kerugian
Memiliki keunggulan dari white box testing
dan black box testing.
Karena akses ke dalam kode dan database
terbatas, maka cakupan tes terbatas.
Grey box tester tidak hanya bergantung pada
kode sumber, namun dapat juga bergantung
pada interface aplikasi dan spesifikasi
fungsional.
Tes dapat berlebihan jika desainer perangkat
lunak telah menjalankan uji kasus.
Skenario tes yang sangat baik terutama di
sekitar protokol komunikasi dan penanganan
tipe data.
Pengujian setiap aliran masukan yang mungkin
tidak realistis akan mamakan banyak waktu.
Tes ini dilakukan dari sudut pandang
pengguna dan bukan desainer.
25
2.3 Level of Testing
Dalam software testing, ada beberapa tingkat yang berbeda selama
pengujian (Perry, E. W., 2006), di mana masing-masing tingkat pengujian
meliputi beberapa metodologi testing yang berbeda. Berikut ini adalah beberapa
tingkat software testing :
1. Pengujian fungsional
2. Pengujian non-fungsional
2.3.1 Pengujian Fungsional
Pengujian fungsional adalah pengujian yang menggunakan metode black
box testing yang didasarkan pada pengujian kode software berdasarkan spesifikasi
software yang akan diuji. Apalikasi akan diuji dengan memberikan masukkan dan
kemudian hasilnya diperiksa. Pengujian fungsional dari software ini dilakukan
secara lengkap, berdasarkan kebutuhan sesuai dengan standar yang telah
ditetapkan oleh perusahaan.
Ada lima langkah dalam melakukan pengujian aplikasi secara fungsional :
1. Menentukan bagian mana saja yang ingin diuji sesuai dengan kebutuhan.
2. Menentukan data yang akan dijadikan masukkan (input) ketika pengujian
berlangsung.
3. Menentukan keluaran (output) berdasarkan masukkan yang telah
ditentukan.
4. Penulisan skenario pengujian dan pelaksanaan pengujian kasus.
26
5. Perbadingan hasil aktual dan yang diharapkan didasarkan pada hasil
pengujian yang telah dieksekusi.
Sebuah praktek pengujian akan efektif jika mengikuti langkah di atas
sebagai standar pengujian pada semua organisasi. Langkah di atas memberikan
standar yang ketat untuk pengujian sebuah perangkat lunak dalam sebuah
organisasi.
Di dalam fungsional testing dikenali beberapa jenis urutan ujian yang
diterapkan sebagai standar pengujian, antara lain :
1. Unit Testing
Jenis pengujian yang dilakukan oleh pengembang sebelum aplikasi
diserahkan kepada tim penguji aplikasi secara resmi untuk melakukan uji
kasus. Unit testing dilakukan oleh masing-masing pengembang aplikasi
pada setiap bagian kode yang areanya telah ditentukan. Para pengembang
menggunakan data uji yang terpisah dari data uji yang akan digunakan
oleh tim penguji kualitas.
Tujuan dari unit testing adalah mengisolasi setiap bagian dari program dan
menunjukkan bahwa masing-masing dari bagian program itu tidak
memiliki kesalahan baik dalam hal fungsionalitas maupun berdasarkan
standar yang telah ditentukan oleh perusahaan.
Keterbatasan dalam unit testing adalah tidak dapat menangkap semua bug
dari aplikasi. Hal ini tidak dimungkinkan karena tidak mungkin
mengevaluasi setiap jalur eksekusi di dalam sebuah software. Keterbatasan
jumlah skenario dan data uji bahwa pengembang dapat digunakan untuk
27
memverifikasi sumber kode. Jadi setelah pengembang kehabisan opsi,
maka biasanya pengujian terhenti karena dianggap telah berhasil.
2. Integration Testing
Pengujian pengintegrasian sistem secara bersama-sama, baik dari hasil
kode yang telah dibuat oleh developer maupun dari pihak organisasi.
Pengujian ini ditujukan untuk mengetahui apakah hasil yang telah jadi
sesuai dengan kesepakatan sebelumnya. Ada dua metode dalam
melakukan integration testing, yakni bottom-up integration test dan top
down integration test.
Bottom-up integration test dimulai dari unit testing (testing internal dari
tim developer), diikuti dengan test yang yang lebih jauh baik dalam hal
pemanggilan modul/fungsionalitas secara lebih menyeluruh. Top down
integration test dimulai dari pemanggilan modul/fungsionalitas yang lebih
tinggi dan secara perlahan menuju ke modul/fungsionalitas yang lebih
rendah.
Dalam lingkungan pengembangan software yang baik, bottom-up testing
biasanya tidak dilakukan bergantian dengan top-down testing. Proses
meliputi berbagai macam test dari dari aplikasi secara menyeluruh
berdasarkan skenario yang telah didesain guna mencegah kesalahan yang
akan terjadi baik dari pihak pengguna, sistem itu sendiri maupun kesalahan
teknis lainnya.
3. System Testing
System testing adalah tingkat berikutnya dalam pengujian dan tes sistem
secara menyeluruh. Setelah semua komponen terintegrasi, aplikasi secara
28
keseluruhan diuji secara ketat untuk melihat bahwa aplikasi telah
memenuhi standar mutu. Jenis pengujian dilakukan oleh tim khusus.
Pengujian sistem ini sangat penting karena langkah ini adalah langkah
pertama dalam Software Development Life Cycle, di mana aplikasi ini diuji
secara keseluruhan. Aplikasi diuji secara menyeluruh untuk melakukan
verifikasi bahwa aplikasi telah memenuhi spesifikasi fungsionalitas dan
teknis. Aplikasi harus diuji di dalam lingkungan yang sangat dekat dengan
lingkungan produksi di mana aplikasi akan diterapkan. Pengujian sistem
memungkinkan kita untuk menguji, memverifikasi dan memvalidasi baik
untuk kebutuhan bisnis maupun kepentingan arsitektur dari aplikasi itu
sendiri.
4. Regression Testing
Regression testing dilakukan apabila ada beberapa bagian dari software
aplikasi mengalami perubahan, dan di mana perubahan itu akan
mempengaruhi beberapa area lain dari aplikasi itu sendiri. Untuk
memverifikasi bahwa bug tetap tidak menghasilkan fungsi yang salah pada
beberapa bagian dari software maupun keseluruhan. Tujuan dari pengujian
regresi adalah memastikan bahwa perubahan seperti perbaikan bug tidak
menimbulkan masalah atau kesalahan lain yang ditemukan di dalam
aplikasi.
Pengujian regresi sangat penting karena meminimalkan kesenjangan dan
kesalahan aplikasi terhadap perubahan yang telah dilakukan. Pengujian
baru yang dilakukan untuk memverifikasi bahwa perubahan tidak
mempengaruhi area lain dalam aplikasi. Hal ini mengurangi resiko
29
terjadinya kesalahan karena tes dapat dilakukan ketika perubahan terjadi
tanpa memanjangkan jadwal pengembangan selanjutnya. Oleh karena itu
pengujian regresi sangat penting untuk meningkatkan kecepatan dalam
memverifikasi aplikasi sehingga aplikasi dapat dengan cepat digunakan
ataupun dipasarkan.
5. Acceptance Testing
Acceptance testing dapat dikatakan sebagai jenis tes yang paling penting
dalam pengujian fungsionalitas. Pengujian ini dilakukan oleh tim penjamin
mutu, dan tes ini dilakukan untuk mengukur sampai sejauh mana aplikasi
telah memenuhi spesifikasi aplikasi yang diingikan dan diharapkan
sebagaimana keinginan pengguna. Tim penjamin mutu akan memiliki satu
set pra skenario tertulis dan uji kasus yang akan digunakan untuk menguji
aplikasi.
Banyaknya ide yang tercantum dalam pengujian dapat meningkatkan
keakuratan aplikasi agar dapat diterima oleh pengguna. Tes ini tidak hanya
ditujukan untuk menunjukkan kesalahan-kesalahan sederhana seperti
ejaan, kesalahan tampilan atau kesenjangan interface, namun juga
ditujukan untuk menunjukkan bug dalam apikasi yang akan menghasilkan
kesalahan yang lebih besar berdasarkan kesalahan-kesalahan yang
ditemukan di dalam aplikasi.
Dengan melakukan acceptance test pada aplikasi yang diuji, tim dapat
menyimpulkan sampai sejauh mana aplikasi dapat digunakan atau diterima
oleh pengguna terutama pengguna yang dekat dengan area produksi atau
pengguna software secara langsung.
30
Acceptance testing dibagi menjadi dua tahap, yakni :
a. Alpha Testing
Alpha testing adalah tahap pertama dari acceptance testing dan
dilakukan hanya di dalam area tim pengembang aplikasi. Unit
testing, integration testing dan system testing digabungkan untuk
melakukan aplha testing. Selama fase ini ada beberapa hal yang
biasanya diuji, hal-hal seperti kesalahan ejaan, pengecekan broken
link, waktu yang dibutuhkan untuk membuka aplikasi dengan
menggunakan mesin yang memiliki spesifikasi terendah untuk
menjalankan aplikasi, serta masalah latency ketika aplikasi
dijalankan.
b. Beta Testing
Beta testing dilakukan setelah alpha testing dilakukan. Dalam beta
testing pengujian sampel dari audiens atau pengguna dibutuhkan
sebagai tester utama dari aplikasi. Beta testing dikenal juga dengan
istilah pre-release testing. Versi beta dari software idealnya
didistribusikan kepada banyak orang, sebagai bentuk tes program
dalam dunia nyata dan hasil preview dari tes ini akan digunakan
sebagai acuan dasar untuk melakukan perilisan aplikasi. Dalam
fase ini pengguna akan menggunakan dan menjalankan aplikasi
guna menyediakan feedback kepada tim developer aplikasi.
Setiap kesalahan kecil, baik dalam hal-hal yang menyulitkan
pengguna baik dari sisi kesalahan penulisan kata di dalam aplikasi
atau bahkan crash wajib dilaporkan pengguna agar perbaikan dapat
31
dilakukan. Hasil feedback dari pengguna harus diteliti dan
diperbaiki oleh tim developer agar memastikan masalah yang sama
tidak muncul kembali dalam versi berikutnya. Semakin banyak
masalah yang muncul dan semakin banyak perbaikan yang
dilakukan, maka tingkat kualitas aplikasi semakin tinggi. Hal ini
dikarenakan semakin sedikit masalah yang muncul, berarti semakin
tinggi tingkat aplikasi dapat diterima oleh pengguna. Tingginya
kualitas dari sebuah aplikasi ditentukan oleh tingkat kepuasan
pengguna.
2.3.2 Pengujian Non-Fungsional
Pengujian non-fungsional dilakukan berdasarkan pengujian aplikasi tanpa
didasarkan oleh fungsionalitas dari aplikasi itu sendiri. Pengujian ini melibatkan
pengujian tingkat kinerja software, keamanan, user interface dan lain sebagainya.
Berikut ini adalah beberapa jenis pengujian non-fungsional yang biasanya
digunakan oleh dunia luas, antara lain :
1. Performance Testing
Performance testing banyak digunakan untuk menunjukkan dan
memverifikasi permasalahan-permasalahan kinerja ataupun masalah-
masalah yang lumrah terjadi seperti bottleneck. Performance testing tidak
ditujukan untuk menunjukkan kesalahan-kesalahan aplikasi dari sisi kode
(bugs) dalam software. Ada beberapa hal yang kerap menjadi
permasalahan dalam penurunan performa software aplikasi, hal-hal seperti
32
network delay, client side processing, database transaction processing,
load balancing between servers maupun data rendering.
Performance testing biasanya dilakukan sebagai salah satu bagian
terpenting dan mandatori dalam pengujian aplikasi non-fungsionalitas.
Aspek-aspek seperti kecepatan (baik dari sisi waktu respon aplikasi, data
rendering dan pengaksesan), kapasitas, stabilitas dan skalabilitas.
Performance test dapat berupa kegiatan pengujian kualitatif ataupun
kuantitatif dan dapat dibagi menjadi sub jenis pengujian seperti Load dan
Stress testing.
Load testing adalah sebuah proses testing yang menguji perilaku software
dengan menerapkan beban maksimum dalam hal pengaksesan aplikasi dan
mainpulasi data input dalam jumlah yang besar. Hal ini dapat dilakukan
pada kondisi beban normal dan puncak. Jenis pengujian
mengidentifikasikan kapasitas maksimum software dan perilakunya saat
puncak. Biasanya load testing menggunakan tools untuk melakukan
pengujian secara otomatis. Pengguna virtual (VUsers) dari automation
tools tersebut didefinisikan dalam alat pengujian otomatis dan script yang
dijalankan untuk memverifikasi pengujian beban pada software. Jumlah
pengguna dapat dimanipulasi sesuai dengan kebutuhan, baik meningkat
maupun menurun.
Sedangkan stress teseting adalah sebuah proses pengujian perilaku
software dalam kondisi abnormal. Tes ini menggunakan sumber daya yang
melebihi batas normal dari beban software, oleh karena itu tes ini disebut
sebagai stress testing. Tujuan utama adalah untuk menguji software
33
dengan menerapkan beban ke sistem dan mengambil sumber daya yang
biasanya digunakan software untuk mengidentifikasikan titik putus (shut
down). Test ini dapat dilakukan dengan cara mengacak port jaringan dan
melakukan tindakan seperti restart atau shut down port jaringan tersebut,
mematikan atau menghidupkan database dengan waktu acak maupun
menjalankan proses yang berbeda guna mengurangi sumber daya
komputer seperti CPU, memori ataupun hal lainnya dari server aplikasi.
2. Usability Testing
Usability testing meliputi konsep dan definisi yang berbeda dari pengujian
kegunaan dari sudut pandang software. Metode black box testing
digunakan bukan untuk menangkap kesalahan dari software (bugs), namun
kesalahan dari pengguna software tersebut ketika menggunakan dan
menemukan kesalahan dalam software. Usability testing dapat
didefinisikan ke dalam lima faktor yakni efisiensi, learning (mudah
dipelajari), satisfaction (memuaskan), software mudah untuk diingat serta
mudah untuk digunakan. Software dapat berguna dan berjalan dengan baik
apabila pengguna memiliki semua faktor di atas.
Usability testing adalah persyaratan dari sebuah software agar dapat
diterima dengan baik oleh pengguna, karena berkaitan dengan interaksi
antara sistem dengan manusia. Apabila pengguna akhir puas dengan
aplikasi yang telah jadi, maka software dapat secara efektif digunakan oleh
pengguna. Hal ini ditetapkan dengan beberapa standar dan kualitas model
dan metode yang menentukan kegunaan dalam bentuk atribut maupun sub
34
atribut, seperti diterangkan di dalam ISO-9126, ISO-9241-11, ISO-13407
dan IEEE std.610.12 dan lain-lain.
Pengujian Graphical User Interface (GUI) software memastikan bahwa
software sesuai dan tepat dalam hal pemilihan warna, keselarasan, ukuran
maupun sifat-sifat lainnya yang berhubungan dengan tampilan software
agar dapat diterima dengan baik oleh pengguna. Pengujian usability sisi
lain memastikan user interface bersifat user friendly dan dirancang agar
mudah digunakan, mudah diingat, efisien, tidak menimbulkan
kebingungan bagi pengguna akhir (end user). Pengujian user interface
merupakan sub bagian dari pengujian usability.
3. Security Testing
Security testing meliputi testing keamanan software dari sisi keamanan
untuk mengidentifikasikan setiap celah yang terdapat dalam software. Hal
ini penting karena setiap celah ataupun titik kerentanan software terhadap
serangan siber dari luar maupun dari dalam. Setiap sudut software harus
diperhatikan agar tidak menimbulkan permasalahan-permasalahan sosial
seperti hilangnya data pribadi, pembajakan identitas pengguna, maupun
pengoprekan software oleh pihak lain untuk dijadikan milik pribadi.
Berikut ini adalah aspek-aspek utama yang perlu diperhatikan dalam
pengujian keamanan, antara lain :
a. Confidentiality
b. Integritas
c. Otentikasi
d. Availability
35
e. Ototisasi
f. Non-repudiation
g. Keamanan data
h. Validasi input
i. Pertahanan terhadap SQL injection
j. Software sesuai dengan semua standar kebijakan yang ada
k. Session management
l. Penyerangan software dari cross site scripting
m. Kerentanan buffer overflow
n. Directory transversal attacks
4. Portability Testing
Portability testing meliputi pengujian software yang dilakukan dengan
tujuan mengecek apakah software dapat digunakan secara berulang (re-
useable) dan dapat dipindahkan ke dalam bentuk operating system maupun
software lain. Berikut ini adalah beberapa cara untuk melakukan
portability testing, antara lain ;
a. Percobaan melakukan instalasi software dari satu komputer ke
komputer lainnya.
b. Melakukan instalasi software dari satu platform ke dalam suatu
platform yang berbeda (baik operating system, browser, dan lain
sebagainya).
Pengujian portabilitas dianggap sebagai salah satu pengujian yang cukup
penting dari pengujian sebuah sistem, karena hal jenis pengujian ini dapat
dijadikan titik ukur sampai sejauh mana software dapat menerima
36
lingkungan yang berbeda (interopability). Perbedaan komputer, operating
system serta browser menjadi fokus utama dari pengujian ini. Portability
testing dapat dilakukan apabila software telah menetapkan aturan dasar
bahwa software dapat ditempatkan di lingkungan yang berbeda. Pengujian
ini dapat dilakukan setelah tahap-tahap pengujian lain seperti unit testing,
integration testing telah dilakukan terhadap software yang terkait dan
batasan lingkungan untuk melakukan testing telah dilakukan.
2.4 Throughput
Througput pada dasarnya memiliki definisi yang berbeda dengan
bandwith. Bandwith adalah jumlah besaran data yang mengalir melewati jaringan
dalam ukuran bits per second, sedangkan throughput adalah besaran rerata dari
paket yang berhasil dikirim lewat jaringan. Data yang dimaksudkan di sini dapat
berupa link fisik atau logikal, atau dikirimkan melewati sebuah node network
tertentu.
Pada jaringan, throuput dibatasi oleh faktor-faktor seperti protokol
jaringan yang digunakan, kemampuan router dan switch, maupun jenis kabel
seperti ethernet dan serat optik. Throughput pada jaringan wireless dipengaruhi
juga oleh adapter jaringan yang terdapat pada sistem klien. Berikut ini adalah
perumusan dasar dari perhitungan throughput :
37
Throughput = / RTT
Keterangan :
Total window size = besaran TCP window size pada operating system
RTT = Round Trip Time adalah waktu yang dibutuhkan untuk
mengirimkan paket data.
2.5 Web Application Performance Tools (WAPT).
Web application performance tools (WAPT) digunakan untuk menguji
aplikasi web serta interface dari web itu sendiri. Tools ini digunakan untuk load
dan stress testing pada aplikasi web, situs web, web server dan interface. WAPT
cenderung mensimulasikan pengguna virtual yang akan mengulangi baik direkam
URL atau URL tertentu dan memungkinkan pengguna untuk menentukan berapa
kali atau iterasi yang pengguna virtual akan harus mengulang rekaman URL.
Dengan demikian, alat ini berguna untuk memeriksa hambatan dan kebocoran
kinerja di website atau web aplikasi sedang diuji. WAPT memiliki spesifikasi
sebagai berikut (Kundu, S., 2012):
a. Menangani konten dinamis dan HTTPS / SSL.
b. Mudah digunakan.
c. Dukungan untuk pengalihan dan segala jenis proxy.
d. Jelas laporan dan grafik.