implementasi lossy compression pada citra sebagai solusi ...rinaldi.munir/citra/2019-2020/... ·...
TRANSCRIPT
Implementasi Lossy Compression pada Citra sebagai Solusi
Pemuatan Website Lambat
Cornelius Yan Mintareja1
1 Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung, Bandung, Indonesia
E-mail: [email protected]
Abstract. Dari tahun ke tahun, semakin banyak website-website yang menampilkan beragam
citra untuk diperlihatkan kepada penggunanya. Namun demikian, masih banyak orang yang
memiliki koneksi internet tidak baik. Hal ini menyebabkan pemuatan halaman website yang
memiliki banyak citra menjadi lambat. Padahal, mereka perlu memuat website tersebut untuk
melakukan hal-hal lainnya. Salah satu solusi yang dapat menyelesaikannya adalah penerapan
metode kompresi citra otomatis pada website. Pada metode tersebut, website dapat menghitung
kecepatan internet penggunanya di awal dan memberikan file citra yang berukuran lebih kecil
agar dapat dimuat lebih cepat. Untuk memberikan file citra baru tersebut, dilakukan teknik lossy
compression. Hasilnya, pengguna dengan koneksi internet lambat dapat memuat website yang
menampilkan banyak citra dengan lebih cepat cepat sesuai ekspektasi dan user experience yang
didapatkan pun akan menjadi lebih baik.
1. Pendahuluan
Meskipun di zaman sekarang sebagian besar orang sudah memiliki gawai dan koneksi untuk mengakses
website-website di internet dengan mudah, masih banyak orang-orang kurang beruntung di dunia ini
yang belum bisa mengaksesnya dengan mudah, terutama di Indonesia [1]. Banyak daerah-daerah
pedesaan dan pinggiran, termasuk di Indonesia, yang belum memiliki koneksi internet yang cepat.
Padahal, di zaman sekarang, banyak website yang sudah berkembang menjadi kompleks dan
menampilkan banyak citra berkualitas tinggi sehingga memiliki banyak hal berat yang perlu di-request
saat user mengakses halaman website tersebut.
Contohnya saja website Pinterest Indonesia (https://id.pinterest.com). Pada Gambar 1, dapat dilihat
bahwa halaman utama website Pinterest, salah satu website yang menampilkan banyak citra, memiliki
9,7 MB transferred dan 19,5 MB resources. Hal tersebut menggambarkan bahwa untuk setiap kali
seseorang mengakses halaman utama Pinterest, perlu dilakukan pemuatan data dari Website sebesar 9,7
Megabyte. Menurut [2], Indonesia memiliki kecepatan internet pengunduhan sebesar 12,94 Megabit per
detik (Mbps) atau 1,6175 Megabyte per detik (MBps). Kecepatan ini membuat rata-rata waktu yang
diperlukan oleh masyarakat Indonesia untuk membuka halaman utama Pinterest menjadi sekitar 6 detik.
Namun demikian, misalkan di sebuah desa yang memiliki kecepatan internet lambat seperti 1 Mbps atau
0,125 MBps, maka diperlukan waktu sekitar 78 detik untuk benar-benar membuat halaman utama
Pintrest. Durasi tersebut tentunya tidak baik karena terlalu lama untuk ditunggu oleh seorang pengguna
yang hanya ingin membukanya.
Gambar 1. Halaman utama website https://id.pinterest.com membutuhkan
9,7 MB data
Untuk mengatasi hal tersebut, salah satu langkah yang kita bisa lakukan sebagai pengembang website
adalah melakukan kompresi terhadap setiap citra agar ukuran file mengecil dan besar data yang perlu
diunduh pun ikut mengecil. Dampaknya, waktu yang dibutuhkan untuk memuat halaman website pun
tentu akan menurun, meskipun kualitas citra yang ditampilkan tidak setinggi awalnya. Langkah tersebut
tentunya hanya perlu dilakukan untuk pengguna yang memiliki koneksi internet lambat saja agar
pengguna yang memiliki koneksi internet cepat tetap mendapatkan kualitas gambar yang terbaik.
Dengan meningkatnya kecepatan memuat website seperti Pinterest dari para pengguna yang memiliki
internet lambat, maka tingkat produktivitas masyarakat pun akan meningkat.
2. Landasan Teori
2.1. Citra Digital
Citra sering disebut juga gambar pada bidang dwimatra (2-D). Citra adalah sinyal dwimatra yang
bersifat menerus (continue) yang dapat diamati oleh sistem visual manusia [3]. Citra digital adalah
representasi citra melalui pencuplikan (sampling) secara ruang dan waktu. Untuk pencuplikan secara
ruang, diambil berdasarkan koordinat sinyal (x, y). f(x, y) menyatakan intensitas cahaya pada posisi (x,
y), yang dinamakan derajat keabuan.
Citra digital f(x, y) direpresentasikan sebagai matriks berukuran M x N dengan M x N menyatakan
resolusi citra. M menyatakan baris, sedangkan N menyatakan kolom. Setiap elemen matriks menyatakan
sebuah pixel (picture element). [4]
Gambar 2. Citra digital Lena dengan ukuran 128 x 128 pixel.
Umumnya, setiap pixel pada sebuah citra digital direpresentasikan nilai intensitasnya dalam 256 level
(8 bit/pixel). Jika citra digital berukuran M x N dan setiap pixel kedalamannya b bit, maka kebutuhan
memori untuk merepresentasikan citra adalah
M x N x b bit
Untuk citra berwarna, 256 level digunakan untuk setiap warna. Citra berwarna terdiri dari tiga kanal
warna: merah, hijau, dan biru. Kombinasi ketiga warna menghasilkan persepsi warna-warna yang kita
lihat.
2.2. Format File BMP
Secara umum, file citra selalu diawali dengan header yang berisi informasi tentang data citra dan
bagaimana cara membaca data citra. Kebanyakan header diawali dengan signature atau "magic
number", yaitu deretan byte yang mengidentifikasi format file). Beebrapa format file citra yang sering
digunakan saat ini adalah BMP (Bitmap), GIF (Graphic Interchange Format), PNG (Portable Network
Graphics), JPEG (Joint Photographic Experts Group), TIFF (Tagged Image File Format), PGM
(Portable Gray Map), dan FITS (Flexible Image Transport System) [5].
Gambar 3. Struktur file citra BMP.
Format file BMP atau Bitmap merupakan format citra yang baku untuk sistem operasi Windows dan
OS/2. Sebutan lain dari format file BMP adalah device independent bitmap (DIB) file format. Format
file citra BMP ini merupakan format file yang tidak dimampatkan (uncompressed image). Format file
BMP sendiri memiliki kekurangan dan kelebihan. Kekurangannya, format file BMP membutuhkan
memori yang besar. Namun demikian, format file BMP memiliki kelebihan berupa kualitas citranya
lebih bagus daripada citra terkompresi dikarenakan tidak adanya informasi yang hilang. Terdapat tiga
macam citra format BMP, yaitu citra biner, citra berwarna, dan citra hitam-putih (grayscale).
Informasi palet warna terletak sesudah header bitmap dengan panjang 0 sampai 1024 bit. Informasi
palet warna dinyatakan dalam suatu tabel RGB. Setiap entri pada tabel terdiri atas tiga buah field, yaitu
R (red), G (green), dan B (blue). Untuk citra grayscale, nilai R = G = B. Untuk citra berwarna dengan 8
bit/pixel, data bitmap menyatakan indeks ke palet warna. Jumlah kombinasi warna yang dihasilkan
adalah 28 = 256 warna.
Struktur file citra BMP dapat dilihat pada Gambar 3, sedangkan contoh palet warna RGB dari format
file BMP dapat dilihat pada Gambar 4.
Gambar 4. Contoh palet warna RGB dari format file BMP.
2.3. Pemampatan Citra
Pemampatan citra (Image compression) atau kompresi citra adalah metode untuk mereduksi redundansi
pada representasi citra sehingga dapat mengurangi kebutuhan memori untuk ruang penyimpanan.
Biasanya, citra dimampatkan tanpa mengurangi kualitas citra secara visual. Penyebab utama
dilakukannya pemampatan citra adalah besarnya memori yang dibutuhkan untuk merepresentasikan
citra digital [6].
Beberapa tujuan lain dari dimampatkannya citra adalah:
1. Mengurangi kebutuhan ruang penyimpanan sembari tetap mempertahankan kualitas citra secara
visual. (Gonzalez, Woods and Eddings, 2017).
2. Merepresentasikan citra dengan kualitas yang hampir sama dengan citra aslinya namun dalam
bentuk yang lebih kompak.
Sebagai contoh, dapat dilihat bahwa citra Gambar 6 merupakan hasil pemampatan dari citra Gambar 5.
Gambar 5. Citra awal sebelum
dimampatkan.
Gambar 6. Citra akhir setelah
dimampatkan.
Terdapat 2 jenis pemampatan citra, yaitu:
1. Lossy compression
Metode lossy menghasilkan citra hasil pemampatan yang hampir sama dengan citra semula. Ada
informasi yang hilang akibat pemampatan, tetapi dapat ditolerir oleh persepsi visual. Tujuan dari
lossy compression yaitu untuk memperoleh nisbah pemampatan yang tinggi. Contoh dari lossy
compression adalah kompresi JPEG dan kompresi citra fractal.
2. Lossless compression
Metode lossless merupakan metode yang selalu menghasilkan citra hasil penirmampatan yang
tepat sama dengan citra semula, pixel per pixel. Tidak ada informasi yang hilang akibat
pemampatan. Nisbah pemampatan rendah, namun kualitas citra mampat tetap tinggi. Tujuan dari
lossless compression yaitu untuk memampatkan citra yang tidak boleh terdegradasi akibat
pemampatan, misalnya citra medis, citra x-ray. Contoh dari lossless compression adalah metode
Huffman, run-length encoding (RLE), dan quantized coding.
2.4. Penskalaan Citra
Penskalaan Citra (image zooming) merupakan salah satu operasi dasar pengolahan citra. Penskalaan
citra mengubah ukuran citra menjadi lebih besar (zoom out) atau lebih kecil (zoom in) [7].
Rumus penskalaan citra A menjadi citra B adalah:
𝐵[𝑥′][𝑦′] = 𝐴[𝑠𝑥 . 𝑥][𝑠𝑦 . 𝑦] (1)
Operasi zoom out dengan faktor 2 (yaitu 𝑠𝑥 = 𝑠𝑦 = 2) diimplementasikan dengan menyalin setiap pixel
sebanyak 4 kali. Sedangkan operasi zoom in (pengecilan) dengan faktor skala = 1 2⁄ (yaitu 𝑠𝑥 = 𝑠𝑦 =1
2⁄ ) dilakukan dengan mengambil rata-rata dari 4 pixel yang bertetangga menjadi 1 pixel.
Gambar 7. Operasi zoom out
yang menyalin setiap pixel
sebanyak 4 kali.
Gambar 8. Operasi zoom in
yang mengambil rata-rata dari 4
pixel bertetangga menjadi 1
pixel.
3. Analisis Pemecahan Masalah
Tujuan dari makalah ini adalah mengimplementasikan lossy compression pada citra di website agar
dapat diakses dengan lebih cepat oleh pengguna yang memiliki koneksi internet lambat. Maka dari itu,
akan dibuat suatu metode untuk memenuhi kondisi tersebut yang bisa diterapkan pada sebuah website.
Metode yang dibuat mampu tetap memberikan ukuran halaman yang dapat diakses secara cepat (atau
dengan rentang rentang waktu tertentu, sesuai dengan user experience yang diinginkan terjadi) secara
otomatis, terlepas dari kecepatan internet penggunanya. Pada bab ini, akan dijelaskan langkah-langkah
pembuatan metode tersebut.
Pertama-tama, perlu dibuat sebuah website menggunakan bahasa pemrograman atau teknologi apapun.
Website tersebut kemudian diisi dengan kode yang menampilkan citra berukuran besar. Untuk
mempermudah penelitian, dalam makalah kali ini digunakan hanya sebuah citra yang besar saja, dan
memiliki format file BMP.
Setelah website yang menampilkan citra dibuat, website tersebut perlu di-deploy pada suatu server agar
dapat diakses secara bebas oleh seluruh pengguna internet. Catat kecepatan internet yang digunakan,
waktu yang diperlukan untuk memuat halaman website berisi citra, jumlah data yang ditransfer, serta
besar resource yang diterima (jika menggunakan browser Google Chrome, Firefox, atau Safari,
informasi-informasi tersebut dapat dilihat pada bagian menu Network).
Selanjutnya, website harus dapat melakukan pendeteksian kecepatan internet dari pengguna yang
melakukan request. Tujuannya ialah untuk mendapatkan variabel kecepatan internet yang nantinya akan
ikut berkontribusi dalam proses kompresi citra. Terdapat berbagai cara dalam mendeteksi kecepatan
internet dari pengguna. Hampir seluruh teknologi & bahasa pemrograman memiliki caranya masing-
masing. Namun demikian, salah satu cara yang paling sederhana untuk dilakukan adalah dengan cara
memberikan suatu berkas berukuran kecil kepada pengguna tepat setelah ia melakukan request ke
server, lalu mengukur berapa lama waktu yang diperlukan oleh pengguna untuk mengunduh berkas
tersebut.
𝐾𝑒𝑐𝑒𝑝𝑎𝑡𝑎𝑛 𝐼𝑛𝑡𝑒𝑟𝑛𝑒𝑡 = 𝑈𝑘𝑢𝑟𝑎𝑛 𝐹𝑖𝑙𝑒𝐿𝑎𝑚𝑎 𝑚𝑒𝑛𝑔𝑢𝑛𝑑𝑢ℎ 𝑓𝑖𝑙𝑒⁄ (2)
Misalnya pada penelitian kali ini, ketika pengguna melakukan request ke server, server akan
mengirimkan sebuah berkas berukuran 100 KB. Dari sisi pengguna, ia akan mencatat waktu awal mula
pengunduhan. Ketika pengguna selesai mengunduhnya, ia akan mencatat juga waktu ketika sudah
selesai dan mengirimkan selisihnya ke server dan akan dicatat. Dari selisih waktu tersebut, didapatkan
waktu yang dibutuhkan oleh pengguna untuk melakukan pengunduhan dan kecepatan internet yang
dimilikinya pun dapat dihitung dengan cara membagi ukuran memori berkas dengan waktu yang
dibutuhkan untuk mengunduh. Jika waktu yang dibutuhkan adalah 100 ms, maka kecepatan internet dari
pengguna adalah 100 𝐾𝐵0,1 𝑠⁄ = 1 𝑀𝐵𝑝𝑠.
Ketika sudah mendapatkan kecepatan internet dari pengguna, website dapat mengatur waktu yang akan
diperlukan oleh penggunanya ketika memuat citra-citra di dalam halaman tersebut. Caranya adalah
dengan memberikan citra yang memiliki ukuran sesuai dengan kecepatan internet penggunanya. Cara
tersebut mirip dengan fitur Auto quality yang dimiliki oleh website & aplikasi Youtube, yaitu server
secara otomatis memberikan video dengan kualitas tertentu sesuai dengan kecepatan internet
penggunanya agar tidak perlu melakukan buffering karena terlalu lama untuk memuat video berkualitas
tinggi dengan ukuran memori yang besar.
Dalam memberikan citra yang memiliki ukuran sesuai dengan kecepatan internet penggunanya, terdapat
beberapa cara yang dapat dilakukan. Pada implementasi metode di makalah ini, digunakan pemampatan
citra sederhana menggunakan zoom in. Ketika melakukan operasi zoom in pada citra dengan
menggunakan faktor skala 𝑋 dan hasilnya disimpan kembali, kita juga secara tidak langsung melakukan
pemampatan citra secara lossy compression. Hal ini disebabkan karena citra hasil akhir memiliki ukuran
yang lebih kecil dibandingkan ukuran sebelumnya. Semakin kecil ukuran citra, maka semakin kecil pula
memori yang diperlukan untuk menyimpannya. Untuk format file BMP sendiri, ukurannya akan berubah
menjadi 𝑋2 kali ukuran file awal.
𝑈𝑘𝑢𝑟𝑎𝑛 𝐶𝑖𝑡𝑟𝑎 𝐴𝑘ℎ𝑖𝑟 = (𝐹𝑎𝑘𝑡𝑜𝑟 𝑆𝑘𝑎𝑙𝑎)2 𝑥 𝑈𝑘𝑢𝑟𝑎𝑛 𝐶𝑖𝑡𝑟𝑎 𝐴𝑤𝑎𝑙 (3)
Sebagai contoh, terdapat sebuah file citra ITB.bmp, dengan ukuran file 4.57 MB. Ketika melakukan
zoom in pada citra ITB.bmp dengan faktor skala 0,5 (panjang dan lebar citra diubah menjadi setengah
aslinya), maka ukuran file citra akhir ITB.bmp akan menjadi 0,52𝑥 4,57 𝑀𝐵 = 1,1425 𝑀𝐵 atau
seperempat ukuran citra awal.
Dengan mengurangi ukuran citra, maka waktu yang akan diperlukan pengguna untuk memuatnya pun
akan berkurang. Waktu yang akan dibutuhkan tersebut dapat diketahui oleh server dengan menggunakan
persamaan (2) kembali. Terlebih lagi, server juga bahkan dapat menentukan waktu yang ingin pengguna
lalui untuk memuat halaman website dengan mengubah faktor skala pemampatan citra.
Misalnya terdapat pengguna yang memiliki kecepatan internet 1 MBps dan total ukuran citra dalam
halaman website adalah 20 MBps, maka seharusnya pengguna perlu menghabiskan waktu 20 detik
untuk memuat seluruh citra tersebut. Namun dengan menggunakan persamaan (2) dan (3), pemilik
server dapat membuat pengguna tersebut memuat hanya dalam waktu 5 detik (misalnya dikarenakan
oleh faktor user experience yang baik, yaitu waktu untuk memuat website tidak boleh dari 5 detik),
maka server akan memampatkan citra menjadi 1 4⁄ ukuran awal dengan cara memberikan Faktor Skala
dari persamaan (3) dengan nilai 1 2⁄ .
Berikut adalah pseudocode dari metode yang telah dijelaskan di atas:
const t_expected (sudah diatur di config server)
const total_image_size (sudah diatur di config server)
latency = calculate_internet_speed()
original_time_needed = total_image_size / latency
output_quality = original_time_needed / t_expected
images = get_original_images()
if output_quality >= 0:
show images
else:
compressed_images = []
for each img in images:
new_img = img.compress(quality = output_quality)
compressed_images.append(new_img)
show compressed_images
4. Hasil Implementasi Metode
4.1. Pengujian dengan Kondisi Internet Cepat
Pada penelitian kali ini, citra yang akan ditampilkan oleh website berukuran 4,57 MB dan waktu
maksimum yang diharapkan untuk memuatnya adalah 5 detik. Untuk pengambilan data pertama,
disimulasikan kondisi internet yang memiliki kecepatan penuh, yaitu 1,2 MBps. Dengan menggunakan
persamaan (2), maka pengguna akan membutuhkan waktu 3,8 detik untuk memuat halaman tersebut.
Waktu yang akan dibutuhkan tersebut lebih cepat dibandingkan waktu maksimum yang diharapkan.
Oleh karena itu, server tidak perlu melakukan pemampatan citra karena kondisi pengguna sudah lebih
baik dari batas yang diharapkan. Oleh karena itu, pengguna berhasil tetap memuat halaman website
dengan waktu 3,8 detik.
Hasil dari pengujian dengan kondisi internet cepat dapat dilihat pada Gambar 9.
Gambar 9. Pemuatan website dengan internet cepat
4.2. Pengujian dengan Kondisi Internet Cepat
Sama seperti melakukan pengujian sebelumnya, citra yang akan ditampilkan oleh website berukuran
4,57 MB dan waktu maksimum yang diharapkan untuk memuatnya adalah 5 detik. Untuk pengambilan
data kali ini, disimulasikan kondisi internet yang dibatasi penggunaan bandwidth-nya, sehingga dapat
memberikan kecepatan internet yang hanya 0,23 MBps. Dengan menggunakan persamaan (2), maka
pengguna akan membutuhkan waktu 20 detik untuk memuat halaman tersebut. Waktu yang akan
dibutuhkan tersebut lebih lama dibandingkan waktu maksimum yang diharapkan. Oleh karena itu,
server perlu melakukan pemampatan citra hingga pengguna dapat memuatnya dalam waktu maksimum
yang diharapkan. Oleh karena itu, server memampatkan citra menjadi 𝟏𝟒⁄ ukuran awal dengan cara
memberikan Faktor Skala dari persamaan (3) dengan nilai 𝟏 𝟐⁄ . Maka dari itu, pengguna hanya perlu
memuat citra dengan ukuran 1,14 MB saja meskipun dapat dilihat bahwa kualitas citra pun menjadi
menurun. Hasilnya, pengguna berhasil memuat halaman website dalam waktu 5 detik.
Hasil dari pengujian dengan kondisi internet lambat dapat dilihat pada Gambar 10.
Gambar 10. Pemuatan website dengan internet lambat (penurunan kualitas citra dapat tidak terlihat
dikarenakan ukuran gambar yang diperkecil pada makalah)
Terdapat beberapa kekurangan yang masih bisa dapat diperbaiki dari makalah ini, diantaranya:
1. Masih belum ditelitinya perbandingan response server ketika melakukan kompresi yang
banyak. Jika melakukan kompresi membutuhkan waktu yang lebih lama dari sisi server,
terdapat pilihan cara lain yaitu dengan menyiapkan alternatif-alternatif citra sebelumnya yang
dapat ditampilkan kepada pengguna. Misalnya terdapat 5 buah citra yang memiliki ukuran
memori berbeda-beda, dari kecil hingga besar, untuk pengguna dengan kecepatan internet dari
lambat hingga cepat juga.
2. Masih bisa dilakukan penyetelan terhadap format file citra yang ditampilkan dan teknik
pemampatan citra yang digunakan agar dapat menghasilkan citra dengan kualitas sangat baik
meskipun ukuran file yang diinginkan berkurang jauh.
3. Pengguna juga bisa diberi pilihan untuk tetap melakukan pemuatan website dengan kualitas citra
aslinya meskipun memiliki kecepatan internet yang lambat.
5. Kesimpulan
Metode kompresi citra otomatis dapat menjadi solusi untuk lambatnya pemuatan website bagi pengguna
yang tidak memiliki kecepatan internet yang baik. Sebagai dampak dari digunakannya lossy
compression untuk memperkecil ukuran citra dan mempercepat proses pemuatan website, kualitas citra
yang ditampilkan menjadi menurun. Meskipun demikian, penurunan kualitas citra tersebut masih dapat
ditoleransi asalkan informasi yang diberikan citra terkompresi dapat tetap sampai kepada pengguna dan
waktu yang dibutuhkan untuk memuat website menjadi sesuai dengan ekspektasi pembuatnya.
6. Ucapan Terima Kasih
Dengan mengucapkan puji dan syukur kepada Tuhan yang Maha Esa atas segala karunia dan anugrah-
Nya, sehingga makalah dengan judul “Implementasi Lossy Compression pada Citra sebagai Solusi
Pemuatan Website Lambat” ini dapat terselesaikan tepat pada waktunya. Makalah ini dimaksudkan
untuk memenuhi Tugas Makalah IF4073 Interpretasi dan Pengolahan Citra, Sem. I Tahun 2019/2020.
Tak lupa saya juga mengucapkan terima kasih kepada Bapak Rinaldi Munir sebagai dosen dari mata
kuliah Interpretasi dan Pengolahan Citra, atas bimbingan dan ilmu yang sudah diberikannya hingga
makalah ini dapat terselesaikan.
7. Daftar Pustaka
[1] S. Sujarwoto and G. Tampubolon, "Spatial inequality and the internet divide in Indonesia 2010-
2012," Telecommunications Policy, vol. 40, no. 7, pp. 602-616, 2016.
[2] Speedtest, "Speedtest Global Index," Ookla, 1 October 2019. [Online]. Available:
https://www.speedtest.net/global-index. [Accessed 12 12 2019].
[3] R. Munir, Pengantar Pengolahan Citra, Bandung: Sekolah Teknik Elektro dan Informatika
Institut Teknologi Bandung, 2019.
[4] R. Munir, Digitalisasi Citra, Bandung: Sekolah Teknik Elektro dan Informatika Institut
Teknologi Bandung, 2019.
[5] R. Munir, Format Citra dan Struktur Data untuk Citra, Bandung: Sekolah Teknik Elektro dan
Informatika Institut Teknologi Bandung, 2019.
[6] R. Munir, Operasi-Operasi Dasar Pengolahan Citra, Bandung: Sekolah Teknik Elektro dan
Informatika Institut Teknologi Bandung, 2019.
[7] R. Munir, Pemampatan Citra, Bandung: Sekolah Teknik Elektro dan Informatika Institut
Teknologi Bandung, 2019.
Pernyataan
Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan
saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi.
Bandung, 13 Desember 2019
Cornelius Yan Mintareja - 13516113