Menghitung Jumlah Kalimat dengan Regular Expression

[perolehan.inf|t.kom|lab.soft|per.4]

Jumlah kalimat dihitung berdasarkan jumlah stop indicator, dalam hal ini berupa simbol titik. Tentu saja ada beberapa kondisi khusus, misalnya ketika merepresentasikan sebuah bilangan, maka titik tidak dianggap sebagai stop condition. Termasuk juga untuk penunjukan bab atau referensi dalam tanda kurung.

Lanjutkan proyek sederhana perhitungan jumlah kata yang telah dibahas pada pertemuan yang lalu. Tambahkan sebuah tombol pushbutton dan edit text, masing-masing untuk perintah eksekusi dan mengeluarkan/mepresentasikan hasil eksekusi.

Fungsi Find

Silahkan ketik “help find” pada command window untuk mempelajari aturan penulisannya. Dengan melakukan kode di bawah ini pada fungsi Jumlah Kalimat = dapat diketahui lokasi dan jumlah titik yang dimiliki suatu string.

  • titik=find(handles.str==’.’)         %mencari lokasi karakter “.” berada
  • [baris,jlhtitik]=size(titik)            %mencari jumlah titik yang ditemukan
  • set(handles.edit3,’String’,jlhtitik)    %mengeluarkan jawab berapa banyak titik/sekaligus jlh kalimat

Perhatikan gambar di atas. Karena ada dua titik maka terhitung jumlah kalimatnya dua. Bagaimana jika ada titik yang ternyata bukan akhir sebuah kalimat, misalnya sub-bab atau angka decimal, dan lain-lain?

Fungsi Regular Expression (REGEXP)

Fungsi ini bermaksud mencari berdasarkan karakter (huruf per huruf). Fungsi ini digunakan ketika mencari kasus kusus jika ada angka dengan titik di dalamnya yang tidak dihitung sebagai stopping suatu kalimat.

  • titik=find(handles.str==’.’)            %menemukan karakter titik
  • [baris,jlhtitik]=size(titik)                %menghitung banyaknya titik
  • pat = {‘(\d)+[.]’};                    %keyword
  • angkatitik=regexp(handles.str,pat,’match’)    %mencari angka dengan titik
  • angka=angkatitik{1}                %mengeluarkan isi cell
  • [baris,jlhangka]=size(angka)            %menghitung berapa banyak angka-titik
  • jlhtitik=jlhtitik-jlhangka                %mengurangkan jlh titik
  • set(handles.edit3,’String’,jlhtitik)        %mengirim hasil pemrosesan teks

Instruksi pat={‘\d+[.]’) bermaksud mempersiapkan keyword fungsi regexp. Simbol \d+ maksudnya mencari angka desimal (simbol “d”) yang bersisian dengan titik (simbol “[.]”). Perhatikan titik harus dilingkupi dengan kurung kotak “[ ]” yang mengharuskan regexp menyamakan dengan karakter di dalam kurung tersebut, dalam hal ini titik.

Suatu string “Perhatikan gambar 3.2 di bawah ini.” jika menggunakan kode tambahan di atas akan menghasilkan jumlah kalimat yang tepat walaupun ada dua titik di sana karena titik yang berdekatan setelah angka dianggap bukan akhir kalimat. Tentu saja ada masalah jika string “Perhatikan gambar 3.”. Maka harus dibuat kode tambahan agar titik tersebut dianggap akhir kalimat, silahkan coba buat kode-nya sendiri untuk mengatasi hal tersebut.

Iklan

Praktek Menghitung Jumlah Kata dan Kalimat dengan Regular Expression Matlab

[perolehan.informasi|tek.komputer|lab.software|pert.3]

Salah satu fungsi penting dalam perolehan informasi (information retrieval) adalah pencarian kata. Untuk sampai ke sana ada baiknya mengetahui berapa jumlah kata dalam suatu berkas. Dan untuk itu harus mampu membedakan antara kata dengan bukan kata. Yang bukan kata seperti tanda petik, tanda khusus (bintang, pagar), dan spasi.

Fungsi REGEXP

Regular expresion merupakan fungsi yang ditemui dalamm mata kuliah teknik komputesi dan kompilasi. Fungsinya adalah mencari serangkaian kata atau diistilahkan token dalam materi tersebut. Untuk materi perolehan informasi (dan juga text mining) fungsinya sama. Pada Matlab fungsi regular expresion dalam bentuk regexp.

Menghitung Jumlah Kata

Bagi yang sering mengetik dengan MS Word, pasti sudah mengenal indikator jumlah kata yang telah diketik. Letaknya di bagian kiri MS Word. Misalnya, ketika saya menulis sampai sini ada indikator jumlah kata yang tertulis sebanyak 143 kata.

Untuk mengetahui fungsi regexp silahkan mengetik help regexp pada command window. Tampak untuk mencari suatu kata menggunakan parameter \w+ dan ‘match’. Untuk mencobanya, masukan kode berikut pada command window:

  1. string=’Presiden Jokowi mengunjungi kota Palu’;
  2. hasil=regexp(string,’\w+’,’match’);
  3. [baris,kolom]=size(hasil);
  4. jumlahkata=kolom
  5. jumlahkata =
  6. 5

Baris ke 3 hingga 5 menghitung jumlah kata yang berhasil dipilah. Jumlah kata string tersebut sesuai dengan jumlah kata yang berhasil dipisahkan oleh fungsi regexp. Pada lab software coba buat GUI seperti di bawah ini. Jika tombol Jumlah Kata = ditekan maka akan menunjukan jumlah kata yang terdapat pada string yang dicopas dan paste-kan ke edit text di atasnya. Ada perbedaan antara kata yang dihitung MS Word dengan kode di atas, perlu diteliti lebih lanjut.

Menghitung Jumlah Kalimat

Untuk menghitung jumlah kalimat, fungsi regexp harus mampu menghitung berapa jumlah titik dalam satu berkas. Jika ada dua titik maka ada dua kalimat. Tentu saja di sini harus mampu membedakan antara titik desimal dengan titik yang merupakan akhir dari kalimat. Silahkan mencoba dahulu.

Sains Harus Belajar dari Marketing

Sepintas sungguh aneh, bahkan bagi orang murni sains marketing dianggap bukanlah ilmu, setidaknya disebut “an oxymoron” alias retorika yang ambigu yang sering dipakai politisi kita (pro maupun kontra). Benarkah marketing itu bukan ilmu? Postingan kali ini terinspirasi dari buku web mining (lihat post yang lalu) yang akan segera saya kembalikan ke perpustakaan. Di buku tersebut di bab “Using Marketing Tests to Understand Customers” disinggung masalah ilmu unik marketing.

Power of Marketing

Sebelum lanjut, sepertinya kita sadari terlebih dulu kondisi aneh perusahaan-perusahaan saat ini dalam kaitannya dengan masalah disruption. Banyak perusahaan yang terkenal mapan langsung terpuruk karena fenomena tersebut. Salah satunya adalah ditinggalkan oleh konsumennya yang memilih produk lain yang dianggap memenuhi harapannya. Salah satu aspek terpenting suatu perusahaan adalah marketing karena merupakan sarana untuk menarik konsumen yang kemudian berdampak terhadap keuntungan. Tanpa keuntungan tentu saja tidak dapat membiayai ongkos-ongkos suatu perusahaan. Bolehlah teknik, riset, dan sejenisnya terhadap suatu produk atau manufaktur, tetapi tanpa melakukan riset dalam marketing, siap-siap mengambil resiko besar terhadap kerugian. Ipad waktu itu siap dipasarkan apple, tetapi bagian riset marketing ternyata melihat animo masyarakat terhadap Iphone lebih tinggi, padahal Iphone waktu itu belum siap publish. Dan benar, dengan menahan Ipad dan melapas Iphone terlebih dahulu, apple mendulang untung besar. Para pekerja aktif seperti perawat, dokter, dan sejenisnya lebih membutuhkan piranti cerdas mungil dibanding yang lebih besar.

Marketing & Sains

Apa itu sains? Sains intinya melakukan riset runtun yang berdasarkan tahapan-tahapan yang disebut metode ilmiah: hipotesa, disain eksperimen, eksperimen, analisa hasil, dan merevisi hipotesa. Tahapan-tahapan itu haris bisa ditiru oleh periset lain sehingga terbukti keandalan dan akurasi temuannya (confidence). Bagaimana dengan marketing? Tunggu dulu, dengan data yang ada sebelumnya ternyata hasil hipotesa tidak berlaku dengan kondisi yang ada sekarang. Jangankan data beberapa tahun yang lalu, data beberapa bulan yang lalu saja belum tentu akurat untuk diterapkan saat ini. Lalu bagaimana ini?

Buku rujukan web mining menjelaskan bahwa titik penting bagian riset di marketing adalah hipotesa. Hipotesa yang tidak tepat tentu saja tidak bermanfaat walaupun benar. Walaupun mengikuti metode ilmiah tetapi jika tidak menjawab persoalan utama, tentu saja tidak bermanfaat. Untuk itu saintis harus belajar bagaimana marketing menentukan hipotesa risetnya yang terkadang bagi ilmuwan kurang greget, kurang wah, kurang berbobot, tapi ternyata dampaknya besar. Berikut hal-hal yang bisa dipelajari dari marketing dalam penentuan hipotesa:

  • Kreativitas: dibutuhkan untuk menemukan hipotesa yang menarik
  • Skeptisme/keraguan: bukan hanya solve problem, ternyata meyakinkan suatu itu penting, terutama dengan pencarian dan perbandingan alternatif-alternatif.
  • Kepercayaan diri untuk maju berdasarkan hasil riset. Terkadang di kampus kita selalu menekankan hasil riset harus OK, model harus fit, dan sejenisnya. Parahnya siswa suka mengutak-atik data agar “cakep”. Ternyata bagi orang marketing, sejelek apapun data maupun hasil riset, bisa digunakan untuk move on (termasuk diterapkan bagi yg calonnya kalah pemilu).

Marketing untuk Dana Penelitian

Sering sekali teknik marketing saya gunakan untuk memperoleh hibah penelitian. Sebagian hibah penelitian sebenarnya berdasarkan proses marketing kita, baik ketika membuat proposal maupun saat presentasi. Tidak semua judul yang lolos di jurnal lolos pula di hibah (sepertinya sebaliknya juga berlaku). Kreativitas, keraguan, dan kepercayaan untuk maju yang telah dibahas di atas, sangat diperlukan. Keahlian dalam mengemas sesuatu yang biasa-biasa saja jadi berharga dan sesuatu yang sudah berharga dikemas agar terlihat bermanfaat sangat diperlukan untuk mendapatkan dana hibah. Ketika mengajukan proposal hibah terkadang saya sengaja membuat bimbang reviewer. Bolehlah dia marah-marah ketika presentasi, setidaknya saya telah membuat mereka bimbang untuk menolaknya disaat memutuskan lolos atau tidak. Sepertinya perlu postingan tersendiri untuk masalah hibah. Sekian semoga bermanfaat.

Reference

Linoff, G. S., & Berry, M. J. A. (2001). Mining the Web. United States of America: Wiley.

Aplikasi anti plagiarisme, free dan yang Berbayar.

Dalam dunia akademik, plagiasi merupakan suatu pelanggaran serius. Belakangan karena maraknya kasus plagiasi di suatu kampus memaksa pemerintah mengganti rektornya. Agar kejadian ini tidak terulang lagi, alangkah baiknya suatu institusi memiliki fasilitas untuk mengecek suatu tulisan apakah mencontek karya orang lain. Dengan demikian tiap karya yang dipublikasikan benar-benar murni tulisan si penulis. Sepertinya teknologi web-mining diterapkan dalam aplikasi-aplikasi anti plagiarisme ini (lihat pembahasan mengenai web mining)

Selain untuk mencegah, ternyata alat bantu cek plagiasi bisa membantu mahasiswa untuk mengetahui apakah tulisannya pernah ditulis orang lain. Terkadang si mahasiswa memang benar-benar menulis sendiri tulisannya, tetapi ternyata kebetulan sama dengan tulisan yang telah dipublikasikan orang lain. Di sinilah fungsi lain dari plagiarism checking tool tersebut, yaitu membuat suatu tulisan berbeda dengan karya orang lain.

1. Aplikasi anti plagiarisme yang terkenal adalah Turnitin. Hanya saja aplikasi ini tidak gratis dan harus berlangganan. Tetapi bagi suatu institusi sepertinya tidak masalah, mengingat manfaat yang diberikan tool ini. Salah satu aspek penting dari alat bantu ini adalah adanya bukti otentik bahwa suatu tulisan orisinal. Biasanya suatu kampus mensyaratkan prosentasi tertentu, misalnya di tempat saya tingkat kemiripannya kurang dari 15%. Selain itu jika ada sumber lain yang mirip, maksimal 5% kemiripannya dengan satu sumber itu. Berikut tampilan setelah Log-in.

Seperti biasa, jika ada yang berbayar maka ada juga yang menyediakan fasilitas yang gratis. Namun demikian belum tentu benar-benar akurat dan harus diuji. Tetapi tidak ada salahnya menggunakannya. Berikut ini adalah beberapa yang bisa dicoba.

2. PlagScan. Tool ini mirip seperti turnitin, login terlebih dahulu. Namun ada kolom khusus bisa mengecek tulisan tanpa login. Misal saya ambil contoh dari paper terdahulu saya.

Ternyata hasilnya benar-benar akurat, yakni 99% menyontek. Dengan kata lain memang benar bahwa itu tulisan saya yang dulu. Jika ada orang lain yang copy paste bisa terdeteksi. Lumayan untuk mengoreksi tugas-tugas mahasiswa apakah menyontek atau tidak. Tetapi di sini menyontek dengan tulisan yang sudah dipublikasi, kalau menyontek temannya belum tentu ketahuan (tapi tentu saja dosennya tahu, tinggal tuduh saja yang mengumpulkan belakangan berarti nyontek).

3. Smallseotools. Mirip dengan plagscan, kita diminta register terlebih dahulu. Tetapi bisa juga tanpa register dengan limit 1000 kata. Saya ambil contoh mirip dengan kasus sebelumnya. Hasilnya tingkat kemiripan 92%, sepertinya lebih akurat Plagscan. Terlihat juga proses smallseotools ini lebih lama dibandingkan plagscan.

Salah satu yang perlu dipertimbangkan adalah smallseotools menjamin tulisan yang ingin dicek tidak diambil mereka. Tiap selesai proses data langsung dihapus. Tetapi tetap saja saya masih ragu-ragu.

4. Duplichecker. Mirip dengan plagscan dan smallseotools (jadi mikir jangan-jangan mereka pakai engine yang sama). Tetapi antara plagscan dengan smallseotools terbukti berbeda hasilnya, jadi disimpulkan sementara memakai mesin yang berbeda. Oke, kita coba dengan tulisan yang sama dengan sebelumnya. Sama dengan smallseotools, maksimal 1000 kata. Upps.. ternyata salah, harusnya 100% plagirized.

Ketika saya mau tes lagi ternyata harus signup dulu karena melebihi limit (sekali cek). Menurut saya aplikasi ini tidak recomended. Walaupun harus diuji lagi setelah Sign-up masih salah apa tidak (silahkan coba).

Sepertinya plagscan lebih bagus di antara ketiga plagiarism checker gratisan tersebut. Namun demikian perlu diuji lagi untuk tulisan yang banyak dengan naskah “gado-gado”, apakah bisa mendeteksi atau seperti yang terakhir, “no plagiarism detected”, padahal pakai tools yang lain “plagiarized”.

Satu hal yang ditakutkan adalah ketika kita memasukan suatu naskah ke plagiarism checker yang mencuri naskah tersebut. Tetapi kalau memang sudah pasti segera dipublikasikan ya tidak masalah, toh kalau dipublikasi sudah tentu dibaca semua orang. Bagi pengelola jurnal yang penting pastikan Google scholar minimal mendeteksi suatu tulisan resmi yang dipublish sehingga jika ada yang menyontek pasti terlambat karena Google sudah mendeteksi terlebih dahulu naskah aslinya. Sedikit banyak semoga postingan ini bermanfaat.

Update: 8 Februari 2018

Ternyata software anti plagiarisme sangat dibutuhkan untuk dosen yang ingin naik pangkat ke lektor kepala atau guru besar. Surat pemberitahuannya sudah diedarkan oleh Dikti sebagai berikut:

Riset Tentang Web Mining

Lanjutan dari postingan yang lalu. Semua orang pasti memiliki jawaban yang sama tentang pentingnya aplikasi web, yaitu sangat penting. Mulai dari facebook, google, baca berita, dan mencari informasi lainnya selalu menggunakan aplikasi berbasis web. Walaupun saat ini aplikasi android sudah menjamur, tetapi tetap saja web menjadi hub yang menghubungkan client dengan server aplikasi dan server data. Perkembangannya yang sangat cepat membuat riset di bidang ini harus secepat mungkin karena satu teknologi akan segera usang seiring berjalannya waktu.

Banyak Anak Muda yang Tertarik

Web mining merupakan ilmu yang baru. Anak-anak muda karena sudah mengenal web sejak sekolah menengah tidak akan merasa kesulitan untuk mempelajarinya. Terkadang mereka lebih mahir dari pada guru-guru bahkan dosennya. Ketika saya mengikuti wawancara untuk mendapatkan beasiswa S3, saya iseng meminjam proposal milik peserta yang kebanyakan masih muda. Kebanyakan mereka ingin riset yang ada hubungannya dengan web, misalnya semantik web.

Bukan hanya untuk riset, banyak orang menggunakan web untuk mencari uang (affiliate marketing) dengan teknologi-teknologi yang dikembangkan seperti web crawler ataupun robot-robot yang diistilahkan dengan nama bot.

Bidang-bidang Riset Web Mining

Sesuai dengan unsur katanya, web mining berarti menggali informasi yang ada di web. Berbeda dengan data mining yang menggali informasi dari data terstruktur, web mining menggali informasi dari data semi-structure bahkan unstructured. Web mining lebih sulit karena jenis datanya yang tidak terstruktur dan terkadang banyak data “sampah” yang mengganggu proses penggalian data.

Untuk melakukan riset, langkah pertama yang harus ditempuh adalah mempelajari prinsip-prinsip dasar yang sudah baku di buku teks. Jangan sampai kita melakukan riset terhadap sesuatu yang sudah “established”. Teori-teori di buku biasanya sudah fix dan diakui kebenarannya oleh hampir peneliti-peneliti di dunia. Biasanya mahasiswa S3 terkadang mengambil mata kuliah bidang yang akan diriset sebelum masuk ke kandidasi (syarat untuk diperbolehkan meneliti). Langkah berikutnya adalah men-searching jurnal-jurnal terkini tentang web mining.

Untuk buku silahkan baca buku-buku yang beredar, terutama yang bahasa Inggris, misalnya “Mining the web” dan buku-buku semantic web lainnya (Linoff & Berry, 2001; Yu, 2011). Di sini disebutkan ada tiga aktivitas Web mining yang penting:

  • Mining structure
  • Mining usage
  • Mining content

Structure Mining

Silahkan masuk ke salah satu bidang web mining di atas. Yang pertama adalah Mining structure. Penggalian ini bermaksud mencari struktur dari web, biasanya link-link yang ada dalam suatu halaman. Halaman mana saja yang kerap menjadi target dari halaman yang lain? Halaman mana yang menunjuk ke halaman-halaman lain? dan seterusnya. Grafik yang sering dibuat adalah graf berarah yang menunjukan hubungan satu halaman dengan halaman lainnya. Penerapan yang sering dibuat adalah menghitung sitasi terhadap suatu halaman. Istilah yang sering muncul adalah hub, authorities, dan populer site. Tidak hanya melibatkan halaman yang berbeda, struktur lokal pun masuk dalam domain structure mining asalkan melibatkan hubungan-hubungan link.

Mining Usage Pattern

Di sini ada tambahan kata “pattern” karena biasanya yang digali adalah pola penggunaan suatu page. Dua bidang utamanya adalah clickstream analysis dan web logs. Masalah-masalah yang muncul adalah bersih atau tidaknya page yang dikoleksi. Oleh karena itu diperlukan langkah-langkah sebagai berikut:

  • Filtering
  • Despidering (anti spider)
  • User identification
  • Sessionalization, dan
  • Path completian.

Mining Content

Menggali isi web-web yang berserakan di dunia maya membutuhkan keahlian dalam menangani text/string karena sebagian besar web tidak terstruktur. Baca dan pelajari information retrieval dari buku-buku yang tersedia, misalnya buku yang gratis didonlot dari penerbitnya ini. Konsep-konsep stemming, dan sejenisnya (recall, precission, dll) banyak di bahas di buku tersebut. Oiya, sebagian saya tulis di post tentang information retrieval. Silahkan riset jika tertarik, saya sendiri masih meraba-raba, jika tidak sanggup ya back to basic: spatial data optimization.

Ref:

  • Linoff, G. S., & Berry, M. J. A. (2001). Mining the Web. United States of America: Wiley.
  • Yu, L. (2011). A Developer’s Guide to the Semantic Web. New York: Springer.

 

Term Frequency dan Invers Document Frequency (Tf-Idf)

Karena kelemahan scoring dengan Jaccard adalah tidak disertakannya frekuensi suatu term dalam suatu dokumen, maka diperlukan skoring dengan kombinasi dari Term Frequency dan Invers Document Frequency atau disingkat tf-idf.

Term Frequency (tf)

Tf menyatakan jumlah berapa banyak keberadaan suatu term dalam satu dokumen dan kemudian dilogaritmikan agar mengurangi besarnya bilangan, dimana logaritmik suatu bilangan akan mengurangi digit jumlah, misalnya 1000 dengan log (1000) hanya menghasilkan angka tiga. Rumus Tf adalah sebagai berikut:

Jadi jika suatu term terdapat dalam suatu dokumen sebanyak 5 kali maka diperoleh bobot = 1 + log (5) =1.699. Tetapi jika term tidak terdapat dalam dokumen tersebut, bobotnya adalah nol.

Inverse Document Frequency (Idf)

Terkadang suatu term muncul di hampir sebagian besar dokumen mengakibatkan proses pencarian term unik terganggu. Idf berfungsi mengurangi bobot suatu term jika kemunculannya banyak tersebar di seluruh koleksi dokumen kita. Rumusnya adalah dengan inverse document frequency. Document frequency adalah seberapa banyak suatu term muncul di seluruh document yang diselidiki.

Sehingga bobot akhir suatu term adalah dengan mengalikan keduanya yaitu tf x idf. Berikut ini kita mengambil contoh suatu kasus. Misalnya kita memiliki vocabulary sebagai berikut:

girl, cat, assignment, exam, peace

Dan kita diminta merangking suatu query: “girl exam” terhadap dua dokumen di bawah ini:

Document 1 : exam peace cat peace peace girl

Document 2 : assignment exam

Langkah pertama adalah kita membuat tabel dengan term urut abjad (lexicography) dan mengisi nilai bobotnya untuk document 1 dan document 2. Setelah itu menghitung score(q,d1) dan score(q,d2) yang menyatakan berturut-turut skor rangking query terhadap dokumen 1 dan dokumen 2.

Bagaimana angka-angka tf-idf tersebut muncul? Jawabannya adalah dengan menghitung bobotnya lewat rumus tf x idf di atas. Perhatikan exam dan girl yang merupakan query (ditandai kotak hitam). Tampak untuk dokumen 1 score-nya adalah 0 + 0.3 = 0.3, sementara untuk dokumen 2 score-nya 0 + 0 = 0, jadi jika diranking, yang pertama adalah dokumen 1 dan berikutnya dokumen 2. Bagaimana menghitung bobot Wt,d untuk girl pada document 2 di atas yang diperoleh hasil 0.3? berikut ini jalan lengkapnya:

Coba hitung bobot di kolom yang lainnya siapa tahu saya salah hitung.

Koefisien Jaccard

Antara query dengan document perlu dihitung skor untuk mengetahui ranking hasil dari searching kita. Salah satu teknik termudah adalah dengan koefisien Jaccard. Koefisien ini mudah karena kita tinggal mencari item mana saja yang sama dibagi dengan total item keduanya.

Berikut ini adalah contoh sederhana kasus menghitung koefisien Jaccard. Jika diketahui A={1,2,3,4}, B={1,2,4}, dan C={1,2,4,5}, berapakah Jaccard (A,B), Jaccard(B,C), dan Jaccard(A,C). Berikut ini penyelesaiannya.

Berikutnya untuk kasus query dan document. Misalnya kita punya query: ides of march dengan dua buah document yaitu doc1: caesar died in march, doc2: the long march. Cari koefisien jaccard antara query dengan doc1 dan doc2.

Koefisien jaccard memiliki kelemahan dimana koefisien ini tidak memperhatikan term frequency (berapa kali suatu term terdapat di dalam suatu dokumen). Perlu diketahui, bahwa terms yang jarang muncul dalam suatu koleksi sangat bernilai dari sisi informasi, tetapi koefisien Jaccard tidak mempertimbangkan hal ini. Jadi kita butuh cara lain untuk menormalisasikannya.