Anda di halaman 1dari 33

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.AHU85901.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%).

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

(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
2.1.6.1.
Stru
uktur Organ
nisasi Perussahaan
Berikkut ini merrupakan strruktur organ
nisasi dari PT. Kalbe Morinaga
I
Indonesia.

Gambar 2.1 Strukturr Organisasi Menengah kke Atas

2 Struktur O
Organisasi Menengah
M
kee Bawah
Gambar 2.2

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.
c.

Meningkatkan Produktivitas dan menurunkan loss.

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 mesinmesin 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.
d.

Me-review proses pinjaman bank dan cadangan valas.


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

Terbatasnya area cakupan pengujian karena yang

cakupannya luas.

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


Tester/penguji tidak perlu memahami bahasa
pemrograman/sistem operasi.

Skenario pengujian sulit untuk dirancang.

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

Dibutuhkan

tentang sumber kode, akan menjadi sangat

pengujian.

biaya

besar

untuk

melakukan

mudah untuk mengetahui jenis data. Hal ini


dapat membantu dalam pengujian aplikasi
secara efektif.

Tester berfungsi sebagai penguji ataupun

Kadang-kadang sulit untuk melihat ke setiap

pengoptimasi kode.

sudut untuk mengetahui kesalahan tersembunyi


yang

dapat

menimbulkan

masalah

karena

banyaknya proses yang harus diuji.


Dapat secara langsung memperbaiki kode dari

Sulit untuk mempertahankan white box testing

aplikasi tersebut.

menggunakan alat bantu seperti analisis kode dan


alat debugging yang diperlukan.

Karena pengetahuan tester mengenai kode,


jangkauan

maksimum

dicapai

pengujian berdasarkan skenario.

selama

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

Karena akses ke dalam kode dan database

dan black box testing.

terbatas, maka cakupan tes terbatas.

Grey box tester tidak hanya bergantung pada

Tes dapat berlebihan jika desainer perangkat

kode sumber, namun dapat juga bergantung

lunak telah menjalankan uji kasus.

pada

interface

aplikasi

dan

spesifikasi

fungsional.
Skenario tes yang sangat baik terutama di

Pengujian setiap aliran masukan yang mungkin

sekitar protokol komunikasi dan penanganan

tidak realistis akan mamakan banyak waktu.

tipe data.
Tes

ini

dilakukan

dari

pengguna dan bukan desainer.

sudut

pandang

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 masalahmasalah 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

4.

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

Portability Testing
Portability testing meliputi pengujian software yang dilakukan dengan
tujuan mengecek apakah software dapat digunakan secara berulang (reuseable) 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.