ini adalah salah satu modul latihan yang ada di Dqlab, pada modul ini di lakukan perapian data pelanggan pada beberapa kolom yang isinya masih kotor, data preparation ini perlu di lakukan agar saat di lakukan analisisnantinya bisa mengahasilkan data yang hasil yang baik,
library(RMySQL)
## Loading required package: DBI
library(bpa)
library(ggplot2)
con <- dbConnect(MySQL(), user = "root", password = "", host = "localhost", dbname = "belajar_r")
data pelanggan sini tersimpan pada Database di localhost jika ada ingin mendapatkan tabel database ini bisa di akses pada alamat github penulis berikut: https://github.com/hasanalfatih/data_latihan.git gunakan file data_pelanggan.sql
sql <- "SELECT*FROM data_pelanggan "
rs <- tryCatch(dbSendQuery(con, sql), finally = print("Querry OK"))
## [1] "Querry OK"
data_pelanggan <- fetch(rs, n=-1)
str(data_pelanggan)
## 'data.frame': 155 obs. of 16 variables:
## $ kode_pelanggan : chr "KD-00032" "KD-00053" "KD-00133" "KD-00056" ...
## $ nama_lengkap : chr "Eva Novianti, S.H." "Ibu Heidi Goh" "Unang Handoko" "Jokolono Sukarman" ...
## $ alamat : chr "Vila Sempilan, No. 67 - Kota B" "Vila Sempilan, No. 11 - Kota B" "Vila Sempilan, No. 1 - Kota B" "Vila Permata Intan Berkilau, Blok C5-7" ...
## $ tanggal_lahir : chr "1 April 2028" "19-08-1986" "11-07-1981" "10/13/79" ...
## $ aktif : chr "FALSE" "1" "FALSE" "0" ...
## $ kode_pos : chr "567130" "567130" "567130" "876551" ...
## $ nomor_telepon : chr "085419651438216" "6282189517223455" "+6282952955586979" "6289278629437370" ...
## $ nilai_belanja_setahun : int 1275600 317800 1537200 1524700 655400 1444400 350400 354600 541300 536000 ...
## $ pola_kode_pelanggan : chr "AA-99999" "AA-99999" "AA-99999" "AA-99999" ...
## $ pola_nama_lengkap : chr "AaawAaaaaaaa,wA.A." "AaawAaaaawAaa" "AaaaawAaaaaaa" "AaaaaaaawAaaaaaaa" ...
## $ pola_alamat : chr "AaaawAaaaaaaa,wAa.w99w-wAaaawA" "AaaawAaaaaaaa,wAa.w99w-wAaaawA" "AaaawAaaaaaaa,wAa.w9w-wAaaawA" "AaaawAaaaaaawAaaaawAaaaaaaa,wAaaawA9-9" ...
## $ pola_tanggal_lahir : chr "9wAaaaaw9999" "99-99-9999" "99-99-9999" "99/99/99" ...
## $ pola_aktif : chr "AAAAA" "9" "AAAAA" "9" ...
## $ pola_kode_pos : chr "999999" "999999" "999999" "999999" ...
## $ pola_nomor_telepon : chr "999999999999999" "9999999999999999" "+9999999999999999" "9999999999999999" ...
## $ pola_nilai_belanja_setahun: int 9999999 999999 9999999 9999999 999999 9999999 999999 999999 999999 999999 ...
sql1 <- "SELECT kode_pelanggan, nama_lengkap FROM data_pelanggan "
rs1 <- tryCatch(dbSendQuery(con, sql1), finally = print("Querry OK"))
## [1] "Querry OK"
nama <- fetch(rs1, n=-1)
head(nama)
## kode_pelanggan nama_lengkap
## 1 KD-00032 Eva Novianti, S.H.
## 2 KD-00053 Ibu Heidi Goh
## 3 KD-00133 Unang Handoko
## 4 KD-00056 Jokolono Sukarman
## 5 KD-00111 Tommy Sinaga
## 6 KD-00036 Irwan Setianto
nama[grepl("[^A-Za-z., ]", nama$nama_lengkap), ]
## kode_pelanggan nama_lengkap
## 15 KD-00113 Edi %$ Alexander
## 36 KD-00010 Ibu Sri Wahyuni@, IR
## 50 KD-00039 Joko Wiryanto Abadi (Pelanggan OKE)
## 68 KD-00005 Prihatin Setyonugroho (021-5555555544)
## 70 KD-00001 Agus Cahyono's
## 88 KD-00063 Widianto Nuryajaya - 08222222999111)
## 107 KD-00120 Dewi Sr|yani
nama$nama_lengkap <- gsub("[^A-Za-z., ]","",nama$nama_lengkap)
nama[grepl("[^A-Za-z., ]", nama$nama_lengkap), ]
## [1] kode_pelanggan nama_lengkap
## <0 rows> (or 0-length row.names)
nama$nama_lengkap <- gsub("\\bibu\\b","",nama$nama_lengkap, ignore.case = TRUE)
nama$nama_lengkap <- gsub("\\bbapak\\b","",nama$nama_lengkap, ignore.case = TRUE)
nama$nama_lengkap <- gsub("\\bir\\b","Ir",nama$nama_lengkap, ignore.case = TRUE)
nama[grepl(" {2}",nama$nama_lengkap), ]
## kode_pelanggan nama_lengkap
## 9 KD-00046 Ir. Ita Nugraha
## 15 KD-00113 Edi Alexander
## 35 KD-00117 Florensia Novianti
## 88 KD-00063 Widianto Nuryajaya
## 145 KD-00108 Jujur Suwito
nama$nama_lengkap <- gsub(" {2}","", nama$nama_lengkap)
nama$nama_lengkap <- trimws(nama$nama_lengkap, which = "both")
nama[grep(" {2}",nama$nama_lengkap), ]
## [1] kode_pelanggan nama_lengkap
## <0 rows> (or 0-length row.names)
kode_pelanggan <- nama$kode_pelanggan
nama_lengkap <- nama$nama_lengkap
staging.nama <- data.frame(kode_pelanggan, nama_lengkap)
staging.nama
## kode_pelanggan nama_lengkap
## 1 KD-00032 Eva Novianti, S.H.
## 2 KD-00053 Heidi Goh
## 3 KD-00133 Unang Handoko
## 4 KD-00056 Jokolono Sukarman
## 5 KD-00111 Tommy Sinaga
## 6 KD-00036 Irwan Setianto
## 7 KD-00126 Agus Cahyono
## 8 KD-00137 Maria Sirait
## 9 KD-00046 Ir. ItaNugraha
## 10 KD-00027 Djoko Wardoyo, Drs.
## 11 KD-00002 Khairul Nissa
## 12 KD-00075 Kaka Ari Lima
## 13 KD-00076 Safira Hana Sahrani
## 14 KD-00035 Sidharta Paul
## 15 KD-00113 EdiAlexander
## 16 KD-00099 Sanjaya Priyantoro
## 17 KD-00132 Rachmat Chandra
## 18 KD-00088 Ayu
## 19 KD-00119 Tri Sulistianti
## 20 KD-00096 Rahmat Chandra
## 21 KD-00139 Agnes Rita
## 22 KD-00090 Andreas Sutanto
## 23 KD-00074 Taka Teguh
## 24 KD-00021 Paulus Angkasa Putra
## 25 KD-00045 Usman Pandajaya
## 26 KD-00012 Cahyono, Agus
## 27 KD-00030 Hendi
## 28 KD-00129 Edward Salim
## 29 KD-00122 Christine Angkasa
## 30 KD-00059 Prof Dr. Sadli Masikun
## 31 KD-00079 Meiti Kuswara
## 32 KD-00134 Budi Yahya
## 33 KD-00064 Fauzan Amir
## 34 KD-00038 Putri Utomo
## 35 KD-00117 Florensia Novianti
## 36 KD-00010 Sri Wahyuni, Ir
## 37 KD-00028 Aman Pakpahan
## 38 KD-00125 Tedi Halim
## 39 KD-00069 Syarifuddin Mahmud
## 40 KD-00114 Tri Iskandar
## 41 KD-00062 Zulkifli Kirana
## 42 KD-00006 DR. Candra Wijaya
## 43 KD-00024 Solihin Chaerul
## 44 KD-00084 Surya
## 45 KD-00104 Iqbal Setiawan
## 46 KD-00103 Yonathan Bagus
## 47 KD-00143 Hari Wibowo
## 48 KD-00034 Rita Meutia Latief
## 49 KD-00087 Budi Setiawan
## 50 KD-00039 Joko Wiryanto Abadi Pelanggan OKE
## 51 KD-0047 Puspita Citra
## 52 KD-00149 Chandra Rachmat
## 53 KD-00003 Slamet Wiyanto
## 54 KD-00043 Suharno Jamar
## 55 KD-00135 Tiah Feris
## 56 KD-00050 Intan Tri Wahyuni
## 57 KD-00110 Sumartono Salim
## 58 KD-00049 Dianto Laksmana
## 59 KD-00141 Edi Sumantri
## 60 KD-00044 dr. Yati Octavianus
## 61 KD-00124 Yakob Tan
## 62 KD-00105 Urip Chandra Effendi
## 63 KD-00107 Rachmat Chandra
## 64 KD-00086 Sisilia Lai
## 65 KD-00123 Rakhmat Chandra
## 66 KD-00025 DRG. Euis Rosidawati
## 67 KD-00008 Willy Sanjaya
## 68 KD-00005 Prihatin Setyonugroho
## 69 KD-00101 Fera Kurniawan
## 70 KD-00001 Agus Cahyonos
## 71 KD-00020 Hendri Winarto
## 72 KD-00080 Cristian Pakpahan Winarno
## 73 KD-00102 Leny Sarmini
## 74 KD-00146 Roger Sirait
## 75 KD-00048 Lilis Ong
## 76 KD-00019 Maria Yuniarti
## 77 KD-00151 Ferry Thia
## 78 KD-00130 Jujur Suwito
## 79 KD-00073 Takashi Yudistira Arief
## 80 KD-00778 Cahyono Agus H.
## 81 KD-00066 Purnomo Hadi
## 82 KD-00041 Poernomo Hadi
## 83 KD-00140 Leonardo Tedja
## 84 KD-00116 Risma Sihombing
## 85 KD-00127 Herdi Rivanto
## 86 KD-00057 Sumardi Utomo
## 87 KD-00016 Indra K.
## 88 KD-00063 Widianto Nuryajaya
## 89 KD-00148 Kuswanto
## 90 KD-00023 Ir. Yahya Permata
## 91 KD-00029 Sri Rahayu
## 92 KD-00136 Joko Wibawa
## 93 KD-00106 Budi Yahya
## 94 KD-00026 Anton Winarta
## 95 KD-00145 Lilis Kasim
## 96 KD-00018 Sudirman Kartono
## 97 KD-00058 Fineli Rahmadianto
## 98 KD-00051 Abdul Kadir
## 99 KD-00144 Risma Sihombing
## 100 KD-00128 Tedi Rahmanto
## 101 KD-00115 Teddy Rahmanto
## 102 KD-00009 Antonius Winarta
## 103 KD-00092 M Hasbi
## 104 KD-00070 I Made Mulyana
## 105 KD-00118 Abdul Kadir
## 106 KD-00052 Iriawan
## 107 KD-00120 Dewi Sryani
## 108 KD-00055 Maria Wiryawan
## 109 KD-00089 Acmad Junaidi
## 110 KD-00042 Ahmad Junaidi
## 111 KD-00112 Ari Masbun
## 112 KD-00098 B. Sulaiman
## 113 KD-00033 Citra Permana
## 114 KD-00013 Danang Santosa
## 115 KD-00138 Teddja Yanto
## 116 KD-00094 Sri Utami
## 117 KD-00054 Yudistira Utomo
## 118 KD-00100 Rahayu Sri Asih
## 119 KD-00121 Diana Sumirah
## 120 KD-00061 Tjipto Kesuma Wardhaya
## 121 KD-00031 Risman Suparyo Permata
## 122 KD-00040 Sri Utami
## 123 KD-00068 Miliana
## 124 KD-00131 Dewi Pratiwi
## 125 KD-00097 Frenkie Pranata
## 126 KD-00004 DRS. Maria Simangunsong
## 127 KD-00071 Suparta
## 128 KD-00093 Partono
## 129 KD-00082 Darmadi
## 130 KD-00150 Maria Utami
## 131 KD-00065 Civara Intan Wahyudi
## 132 KD-00067 Niken Sri Utami
## 133 KD-00011 Rosalina Kurnia
## 134 KD-00091 Indri Nourina Marthia
## 135 KD-00147 Budi Setiawan
## 136 KD-00081 Andy Gunawan
## 137 KD-00109 Purwadianto Hadi
## 138 KD-00072 Harry Widijanto
## 139 KD-00014 Elisabeth Suryadinata, SKOM, ST
## 140 KD-00078 Gugun Gunawan Wijaya
## 141 KD-00095 Sri Resti Agung
## 142 KD-00022 Mbak Dian Sukowati
## 143 KD-00017 Irfan Putra Wijaya
## 144 KD-00037 Cynthia Agus
## 145 KD-00108 JujurSuwito
## 146 KD-00015 Mario Setiawan
## 147 KD-00083 Setiawan Mario
## 148 KD-00060 Sulaiman Baskara
## 149 KD-00007 Indra Kurniawan, ST
## 150 KD-00077 Frenki Pranata
## 151 KD-00085 Frenki P.
## 152 KD-00142 Tedi Rahmanto
## 153 KD-00192 Sanjaya Priyantoro
## 154 KD-00298 Safira Hana Sahrani
## 155 KD-00492 dr. Yati Octavianus
standarisai penulisan nomor telepon di perlukan, untuk menyeragamkan penulisan nomor telepon yang tidak seragam, seperti nomor yang menggunakan kode negara dan ada juga yang tidak menggunakan kode negara dan anomali seperti itu perlu cepat di tindak lanjuti dan untuk melakukan standarisasi tahapan yang perlu di lakukan adalah melihat pola dari nomor telepon untuk melihat apakah ada nomor telepon yang tidak sesuai. pola ini dapat dilihat pada pada kolom pola_nomor_telepon yang merupakan outpu dari fungsi bpa.
sql2 <- "SELECT pola_nomor_telepon, length(pola_nomor_telepon) as panjang_text, count(*) as jumlah_data FROM data_pelanggan GROUP BY pola_nomor_telepon"
rs2 <- tryCatch(dbSendQuery(con, sql2))
profile_nomor <- fetch(rs2,n=-1)
profile_nomor
## pola_nomor_telepon panjang_text jumlah_data
## 1 +99999999999999 15 2
## 2 +9999999999999999 17 57
## 3 - 1 1
## 4 9999999999999 13 1
## 5 99999999999999 14 3
## 6 999999999999999 15 53
## 7 9999999999999999 16 38
Berikut adalah analisa dari hasil di atas. • Ada tujuh pola yang teridentifikasi. • Mayoritas jumlah ada pada pola nomor 2, 6 dan 7. • Panjang data pada 2, 6 dan 7 adalah 17, 15 dan 16. Namun karena pola no 2 ada tanda +, jadi kemungkinan panjangnya sebenarnya adalah 16. Sama dengan pola no 7. • Tidak ada karakter lain selain angka dan tanda +. Kecuali satu data di pola no. 3 hanya tanda minus (-). Ini bisa dianggap missing value. • Pola lain yang tidak biasa adalah pola no 1 (+99999999999999, jumlahnya hanya 2 data), 4 (9999999999999, jumlahnya hanya 1 data), dan 5 (99999999999999, hanya 3 data). • Pola nomor 1, 3, 4 dan 5 akan kita flag sebagai outlier yang perlu ditindaklanjuti pada praktek selanjutnya. • Ada perbedaan jumlah teks antara pola no 5, 6 dan 2 (jumlah teks masing-masing adalah 15, 16, dan 17), kita asumsikan ini disebabkan angka awal mobile 0, 62 dan +62 di depannya. Ini akan kita cek dengan query tambahan pada profiling selanjutnya.
Menganalisa jumlah data dari pola pada praktek sebelumnya dengan memperhatikan angka akan lebih menarik jika langsung divisualisasikan. Untuk analisa distribusi dari pola no_telepon ini kita bisa gunakan visualisasi bar chart seperti gambar berikut.
plot.profile <- ggplot(data = profile_nomor, aes(x = pola_nomor_telepon, y = jumlah_data, fill = pola_nomor_telepon))
plot.profile <- plot.profile + theme(axis.text.x = element_text(angle = 45, vjust = 0.5))
plot.profile + geom_bar(stat = "identity")
## Profiling 3 Kembali ke hasil profiling 1 sebelumnya, terlihat ada perbedaan antara pola 6, 7 dan 1 dari sisi jumlah teks (15, 16 dan 17). Kita asumsikan ini dikarenakan variasi penulisan awal nomor mobile berupa angka 0, 62 dan +62. Kita akan uji asumsi ini dengan mengambil: • satu karakter pertama dari isi kolom no_telepon untuk pola nomor 6 (999999999999999). • dua karakter pertama dari isi kolom no_telepon untuk pola nomor 7 (9999999999999999). • Tiga karakter pertama dari isi kolom no_telepon untuk pola nomor 2 (+9999999999999999). pada pengunjian gunakan function left untuk mengambil sejumlah karakter pertama dari kolom no_telepon. Perhatikan kalau function left ini turut serta dimasukkan ke dalam grouping. Ini dikarenakna function left ini mengambil karakter yang bisa angka maupun bukan, dan bukan operasi matematika seperti function length maupun count di praktek sebelumnya.
sql3 <- "SELECT left(nomor_telepon,1) as prefix_no_telepon, pola_nomor_telepon FROM data_pelanggan WHERE pola_nomor_telepon = '999999999999999' GROUP BY left(nomor_telepon,1), pola_nomor_telepon"
rs3 = tryCatch(dbSendQuery(con, sql3))
profile.no1 <- fetch(rs3, n=-1)
profile.no1
## prefix_no_telepon pola_nomor_telepon
## 1 0 999999999999999
sql4 <- "SELECT left(nomor_telepon,2) as prefix_no_telepon, pola_nomor_telepon FROM data_pelanggan WHERE pola_nomor_telepon = '9999999999999999' GROUP BY left(nomor_telepon,2), pola_nomor_telepon"
rs4 = tryCatch(dbSendQuery(con, sql4))
profile.no2 <- fetch(rs4, n=-1)
profile.no2
## prefix_no_telepon pola_nomor_telepon
## 1 62 9999999999999999
sql5 <- "SELECT left(nomor_telepon,3) as prefix_no_telepon, pola_nomor_telepon FROM data_pelanggan WHERE pola_nomor_telepon = '+9999999999999999' GROUP BY left(nomor_telepon,3), pola_nomor_telepon"
rs5 = tryCatch(dbSendQuery(con, sql5))
profile.no3 <- fetch(rs5, n=-1)
profile.no3
## prefix_no_telepon pola_nomor_telepon
## 1 +62 +9999999999999999
Pada umumnya nomor telepon diberi kode negara dan pada saat dial kita menggunakan tanda +. Berdasarkan kedua hal tersebut, untuk dataset kita diputuskan untuk menggunakan standarisasi dimana nomor telepon dimulai dari tanda + diikuti 62 (kode negara untuk Indonesia). Untuk melakukan hal ini maka ada dua hal yang perlu kita lakukan berdasarkan profiling kita pada praktek sebelumnya: • Menambahkan awalan “+” untuk pola “9999999999999999” (16 digit angka). • Mengganti awalan “0” menjadi “+62” untuk pola “999999999999999” (15 digit angka). Pertama yang kita perlu ketahui adalah filter dataset setelah dibaca di R, karena dari MySQL akan kita tarik seluruh data.
sql6 <- "SELECT kode_pelanggan,nomor_telepon, pola_nomor_telepon FROM data_pelanggan"
rs6 <- tryCatch(dbSendQuery(con,sql6), finally = print("Querry OK"))
## [1] "Querry OK"
data.telepon <- fetch(rs6, n=-1)
head(data.telepon)
## kode_pelanggan nomor_telepon pola_nomor_telepon
## 1 KD-00032 085419651438216 999999999999999
## 2 KD-00053 6282189517223455 9999999999999999
## 3 KD-00133 +6282952955586979 +9999999999999999
## 4 KD-00056 6289278629437370 9999999999999999
## 5 KD-00111 084384621977881 999999999999999
## 6 KD-00036 6285842418573681 9999999999999999
Untuk menambahkan “+” untuk pola “9999999999999999” kita gunakan function paste – yang membutuhkan input berupa beberapa teks yang akan digabungkan, dan pemisah teks dengan parameter sep="".
data.telepon[data.telepon$pola_nomor_telepon == "9999999999999999",]$nomor_telepon <- paste("+",data.telepon[data.telepon$pola_nomor_telepon =="9999999999999999",]$nomor_telepon,sep="")
data.telepon[data.telepon$pola_nomor_telepon == "999999999999999",]$nomor_telepon <- gsub("^0","+62", data.telepon[data.telepon$pola_nomor_telepon == "999999999999999",]$nomor_telepon)
head(data.telepon$nomor_telepon)
## [1] "+6285419651438216" "+6282189517223455" "+6282952955586979"
## [4] "+6289278629437370" "+6284384621977881" "+6285842418573681"
kode_pelanggan <- data.telepon$kode_pelanggan
nomor_telepon <- data.telepon$nomor_telepon
staging.nomor <- data.frame(kode_pelanggan,nomor_telepon)
head(staging.nomor)
## kode_pelanggan nomor_telepon
## 1 KD-00032 +6285419651438216
## 2 KD-00053 +6282189517223455
## 3 KD-00133 +6282952955586979
## 4 KD-00056 +6289278629437370
## 5 KD-00111 +6284384621977881
## 6 KD-00036 +6285842418573681
Standarisasi bertujuan untuk memastikan kode pos ditulis dengam benar, standarisai ini di lakukan dengan melihat pola kode pos yang telah dibuat menggunakan fungsi bpa.
Teknik profilenya sama dengan proses profiling no_telepon
sql6 <- "SELECT pola_kode_pos, length(pola_kode_pos) as panjang_text, count(*) as jumlah_data FROM data_pelanggan GROUP BY pola_kode_pos"
rs6 <- tryCatch(dbSendQuery(con, sql6), finally = print("Query OK"))
## [1] "Query OK"
pola.kode.pos <- fetch(rs6,n=-1)
pola.kode.pos
## pola_kode_pos panjang_text jumlah_data
## 1 - 1 5
## 2 999999 6 147
## 3 99999A 6 1
## 4 9999A9 6 2
Terlihat selain ada 5 data yang diisi dengan tanda minus (-). Data lainnya sama panjang semua, namun pola 3 dan 4 berisi anomali. Kode pos pada contoh kita harusnya berisi 6 digit angka semua seperti terlihat pada pola no 2. Namun pada pola nomor 3 dan 4, di antara angka terdapat huruf. Ini yang akan kita lihat isi datanya pada praktek selanjutnya.
Teks ‘99999A’ dan ‘9999A9’ adalah dua pola anomali yang kita temukan. Dari pola ini terlihat ada huruf diantara angka. Harusnya kode pos terdiri dari angka semua.gunakan perintah SELECT…WHERE…IN, perintah IN digunakan untuk memfilter isi dari pola anomali tersebut
sql7 <- "SELECT kode_pelanggan, kode_pos, pola_kode_pos FROM data_pelanggan WHERE pola_kode_pos IN('99999A','9999A9')"
rs7 <- tryCatch(dbSendQuery(con, sql7), finally = print("Query OK"))
## [1] "Query OK"
pola1.kode.pos <- fetch(rs7,n=-1)
pola1.kode.pos
## kode_pelanggan kode_pos pola_kode_pos
## 1 KD-00093 96722O 99999A
## 2 KD-00083 8765I1 9999A9
## 3 KD-00085 9876O1 9999A9
Terlihat terdapat huruf O, yang harusnya 0 (nol) untuk kode_pelanggan = ‘KD-00093’ dan untuk kode_pelanggan = ‘KD-00085’. Setelah itu terdapat huruf I yang mungkin maksudnya adalah angka 1. Pada tahap selanjutnya kita coba gantikan dulu dengan asumsi kita, O menjadi 0. Dan I menjadi 1.
satndarisasi dilakukan dengan cara: • Mengganti huruf O menjadi 0. • Mengganti huruf I menjadi 1. Dan untuk ini cukup menggunakan function gsub()
sql8 <- "SELECT kode_pelanggan, kode_pos, pola_kode_pos FROM data_pelanggan "
rs8 <- tryCatch(dbSendQuery(con, sql8), finally = print("Query OK"))
## [1] "Query OK"
data.kode.pos <- fetch(rs8,n=-1)
data.kode.pos$kode_pos <- gsub("o","0", data.kode.pos$kode_pos, ignore.case = TRUE)
data.kode.pos$kode_pos <- gsub("i","1", data.kode.pos$kode_pos, ignore.case = TRUE)
data.kode.pos[grepl("99999A",data.kode.pos$pola_kode_pos),]
## kode_pelanggan kode_pos pola_kode_pos
## 128 KD-00093 967220 99999A
data.kode.pos[grepl("9999A9",data.kode.pos$pola_kode_pos),]
## kode_pelanggan kode_pos pola_kode_pos
## 147 KD-00083 876511 9999A9
## 151 KD-00085 987601 9999A9
kode_pelanggan <- data.kode.pos$kode_pelanggan
kode_pos <- data.kode.pos$kode_pos
stagin.pos <- data.frame(kode_pelanggan, kode_pos)
head(stagin.pos)
## kode_pelanggan kode_pos
## 1 KD-00032 567130
## 2 KD-00053 567130
## 3 KD-00133 567130
## 4 KD-00056 876551
## 5 KD-00111 876551
## 6 KD-00036 876552
Penulisan alamat dengan sistem yang paling kaku sekalipun biasanya harus memiliki input free text dimana user bisa bebas melakukan input. Akitabnya banyak penulisan yang tidak standar, misalkan untuk “jalan” menjadi “jl” dan “jln” seperti terlihat pada sebagian dataset kita sebagai berikut. Jl. Pulo Bambu No. 15, Kota Tenggara Lama Jln. Tegal Sari Indah, No. D87 – Kota H Jalan Hang Tuah, No. 11, Kota DM Jl. Puri Arteri Raya, No. 88 - Kota T Jl. Pahlawan, No. 69CCD Jl. Bintang Supernova, No. 78 Jl. Wisma Tenteram Saja, No. A22 Jln. Manggis II, Gang Buntu No. 1 Jalan. Kebon Jahe, No. F16 - Kota E Untuk kondisi ini, tidak ada jalan lain selain mengumpulkan daftar “kesalahan umum” (common mistakes) ini dan perbaiki berdasarkan daftar tersebut. Dan untuk contoh di atas, kita akan ganti semua variasi singkatan di atas dengan “Jalan”. Pola regexnya adalah sebagai berikut: jln[ ]\. \bjln\b jl[ ]\. \bjl\b jalan\. dimana • \b adalah penanda batas kata. • \. adalah penulisan titik. • [ ]*\. menunjukkan perulangan spasi yang mungkin mengikuti sebelum tanda titik. Catatan: Pola ini hanya contoh untuk kasus ini, pada prakteknya Anda perlu mengumpulkan pola-pola ini untuk melakukan standarisasi.
sql9 <- "SELECT kode_pelanggan, alamat from data_pelanggan"
rs9 <- tryCatch(dbSendQuery(con,sql9), finally = print("Querry Ok"))
## [1] "Querry Ok"
data.alamat <- fetch(rs9, n=-1)
data.alamat$alamat <- gsub("jln[ ]*\\.","jalan", data.alamat$alamat, ignore.case = TRUE)
data.alamat$alamat <- gsub("jl[ ]*\\.","jalan", data.alamat$alamat, ignore.case = TRUE)
data.alamat$alamat <- gsub("\\bjln\\b","jalan", data.alamat$alamat, ignore.case = TRUE)
data.alamat$alamat <- gsub("\\bjl\\b","jalan", data.alamat$alamat, ignore.case = TRUE)
data.alamat$alamat <- gsub("\\bjalan\\b","jalan", data.alamat$alamat, ignore.case = TRUE)
data.alamat
## kode_pelanggan alamat
## 1 KD-00032 Vila Sempilan, No. 67 - Kota B
## 2 KD-00053 Vila Sempilan, No. 11 - Kota B
## 3 KD-00133 Vila Sempilan, No. 1 - Kota B
## 4 KD-00056 Vila Permata Intan Berkilau, Blok C5-7
## 5 KD-00111 Vila Permata Intan Berkilau, Blok A1/2
## 6 KD-00036 Vila Gunung Seribu, Blok O1 - No. 1
## 7 KD-00126 Vila Gunung Seribu, Blok F4 - No. 8
## 8 KD-00137 Vila Bukit Sagitarius, Gang. Sawit No. 3
## 9 KD-00046 Vila Bukit Sagitarius, Gang Kelapa No. 6
## 10 KD-00027 Vila Bukit Sagitarius, Blok A1 No. 1
## 11 KD-00002 Taman Vivo Indah, Blok AA No. 7
## 12 KD-00075 Taman Vivo Indah, Blok AA No. 7
## 13 KD-00076 Taman Bunga Langit, jalan Utara No. 3
## 14 KD-00035 Taman Bunga Langit, jalan Timur No. 1
## 15 KD-00113 Taman Bunga Langit, jalan Selatan No. 12
## 16 KD-00099 Taman Bunga Langit, jalan Barat Laut No. 6
## 17 KD-00132 Rusun Kerinci Indah, Lt. 6 No. 1
## 18 KD-00088 Rusun Kerinci Indah, Lt. 5 No. 6
## 19 KD-00119 Rumah Susun Gelora, Lantai 1 No. 12
## 20 KD-00096 Rumah Susun Eunos, Lantai 2 No. 2
## 21 KD-00139 Ruko Azalea, No. 3 RT 001/002
## 22 KD-00090 Ruko Almond Manis, Blok C7/8
## 23 KD-00074 Puspa Loka, No. 98F, Kota Y
## 24 KD-00021 Puspa Loka, No. 98B, Kota Y
## 25 KD-00045 Pulo Bambu No. 57, Kota Tenggara Lama
## 26 KD-00012 Pulo Bambu No. 15, Kota Tenggara Lama
## 27 KD-00030 Pondok Bima Sakti, jalan Asrama Pelajar No. 11FF
## 28 KD-00129 Perumahan Sektor Telekomunikasi, jalan Afrika No. 3
## 29 KD-00122 Perumahan Sektor Bougenville, jalan Sawit No. 8A
## 30 KD-00059 Perumahan Sektor Bougenville, jalan Karet No. 7P
## 31 KD-00079 Perumahan Duku Satu, Gang Merpati - No. 41
## 32 KD-00134 Perumahan Duku Lima, Gang Perkutut No. 1
## 33 KD-00064 Perumahan Catalina, jalan Kereta Api No. 77
## 34 KD-00038 Perumahan Bina Andromeda, jalan Teri No. 4
## 35 KD-00117 Perumahan Bina Andromeda, jalan Salmon No. 22
## 36 KD-00010 Perum Venus, Gg. Harimau No. 1A
## 37 KD-00028 Perum Venus, Gang. Kelinci No. 12
## 38 KD-00125 Perum Venus, Gang. Harimau No. 4A
## 39 KD-00069 Perum Titan, jalan. Trobos No. 8
## 40 KD-00114 Perum Titan, jalan. Kelinci No. 12
## 41 KD-00062 Perum Sektor 50, Gang Permai No. 5
## 42 KD-00006 Perum Pluto, Blok C No. 1
## 43 KD-00024 Perum Maju Permai Persada Indah, Gang Kenari No. 3
## 44 KD-00084 Perum Maju Permai P.I., Gang Kesturi No. 5
## 45 KD-00104 Perum Maju Permai P.I., Gang Kesturi No. 5
## 46 KD-00103 Perum Kali Meksiko, No. D22
## 47 KD-00143 Perum Kali Meksiko, No. 8F
## 48 KD-00034 Perum Kali Meksiko, No. 8C
## 49 KD-00087 Perum Indah Supernova, No. 1
## 50 KD-00039 Perum Indah Supernova II, No. 9
## 51 KD-0047 Perum Bimasakti Raya, Blok A No. 10
## 52 KD-00149 Perum Bimasakti Raya, Blok A No. 10
## 53 KD-00003 Meta Residences, No. 32C
## 54 KD-00043 Meta Residences, No. 1A
## 55 KD-00135 Kota T, jalan Taman Kencana No. 11112
## 56 KD-00050 Kompleks Selatan-Selatan, No. 121
## 57 KD-00110 Kompleks Selatan-Selatan, No. 111
## 58 KD-00049 Kompleks Permai Angkasa, Blok M No. 10
## 59 KD-00141 Kompleks Permai Angkasa, Blok J No. 09
## 60 KD-00044 Kompleks Pelaut Tangguh, No. 5A
## 61 KD-00124 Kompleks Nelayan Permai, Blok DD - 98/99
## 62 KD-00105 Kompleks Akademi Perawat, Gang Farmasi No. 3
## 63 KD-00107 Kampung Kijang, Blok D3 - No. 12
## 64 KD-00086 Kampung Harimau, No. 88, Kota K
## 65 KD-00123 Kampung Harimau, No. 3
## 66 KD-00025 Kampoeng Harimau, No. 81 - Kota K
## 67 KD-00008 Kali Mars Cluster, No. 24C
## 68 KD-00005 jalan Tegal Sari Indah, No. D87 -- Kota H
## 69 KD-00101 jalan Tegal Sari Indah, No. D77 -- Kota H
## 70 KD-00001 jalan Pulo Bambu No. 15, Kota Tenggara Lama
## 71 KD-00020 jalan Manggis II, Gang Buntu No. 1
## 72 KD-00080 jalan Manggis II - Gang Buntu No. 4
## 73 KD-00102 jalan Kangguru No. 92, RT 005 - kota R
## 74 KD-00146 jalan G. Asri Mawar Harum Blok G No. 9
## 75 KD-00048 jalan Wisma Tenteram Saja, No. A31
## 76 KD-00019 jalan Wisma Tenteram Saja, No. A22
## 77 KD-00151 jalan Taman Kencana No. 11112, Kota T
## 78 KD-00130 jalan Raya Griya Barbarosa, Blok AF 789
## 79 KD-00073 jalan Puri Indah Menawan, No. 818 - Kota T
## 80 KD-00778 jalan. Pulau Bambu No. 15 - Kota Tenggara Lama
## 81 KD-00066 jalan Pulau Sentosa No. 133
## 82 KD-00041 jalan. Pulau Sentosa No. 133
## 83 KD-00140 jalan Pulau Sentosa No. 1335
## 84 KD-00116 Apartemen Lucky Beruntung, Lt. 5 No. 4
## 85 KD-00127 jalan Pulau Sentosa No. 133
## 86 KD-00057 jalan Pahlawan, No. 69FFF
## 87 KD-00016 jalan Pahlawan, No. 69CCD
## 88 KD-00063 jalan Macan Buntung, No. 4F
## 89 KD-00148 jalan Macan Buntung, No. 1F - Kota D
## 90 KD-00023 jalan Macan Buntung, No. 1F
## 91 KD-00029 jalan Kp. Kijang, Blok A1 - No. 2F
## 92 KD-00136 jalan Kemenangan Besar, Blok C8 No. 22 RT 02
## 93 KD-00106 jalan Kemenangan Besar, Blok C8 No. 22
## 94 KD-00026 jalan Kebon Jahe, Kota EntahDimana
## 95 KD-00145 jalan Kampung Kijang, Blok C5 - No. 9
## 96 KD-00018 jalan Bintang Supernova, No. 78
## 97 KD-00058 jalan Bintang Supernova, No. 78
## 98 KD-00051 jalan Binjai 200, Kota L
## 99 KD-00144 Apartemen Lucky Beruntung, Lt. 3 No. 4
## 100 KD-00128 Apartemen Bukit Merah, Annex Plaza, Lt 3 No. A1
## 101 KD-00115 Apartemen Bukit Merah Annex Plaza, Lt 3 No. A1
## 102 KD-00009 jalan. Kebon Jahe, No. F16 - Kota E
## 103 KD-00092 jalan. Bukit Tol Km. 3, No. 971
## 104 KD-00070 jalan Wisma Tenteram Saja No. B-01
## 105 KD-00118 jalan Semantik Semut Berjalan, No. 3333
## 106 KD-00052 jalan Ring Road Neolitik, No. 1 RT 5
## 107 KD-00120 jalan Ring Road Konstan, No. 5
## 108 KD-00055 jalan Raya Jupiter Titan, No. 55
## 109 KD-00089 jalan Raya Hang Lekir, No. 62 - Kota Z
## 110 KD-00042 jalan Raya Hang Lekir, Kota Z, No. 62
## 111 KD-00112 jalan Raya Andromeda, Blok D No. 3
## 112 KD-00098 jalan Pesisir No. 5, Kampoeng Maju Surya Gemilang
## 113 KD-00033 jalan Hang Tuah, No. 31, Kota DM
## 114 KD-00013 jalan Hang Tuah, No. 11, Kota DM
## 115 KD-00138 jalan Gula Pahit, No. 081
## 116 KD-00094 jalan Gula Pahit, No. 015
## 117 KD-00054 jalan Gula Pahit, No. 001
## 118 KD-00100 jalan Asia No. 55, Kompleks Pelajar Kota C
## 119 KD-00121 Indah Mars Cluster, No. 22F
## 120 KD-00061 Griya Asri Mawar Harum, Blok G No. 1
## 121 KD-00031 Gang Tupai, No. 7 - Desa CL
## 122 KD-00040 Gang Samun Saja No. 132, Kode Pos A99222
## 123 KD-00068 Gang Piranha, No. 3 - Desa BT
## 124 KD-00131 Gang Piranha, No. 13 - Desa BT
## 125 KD-00097 Gang Kelinci, No. 666 - Kota B
## 126 KD-00004 Gang Bulan Desember III, No. 9
## 127 KD-00071 Gang Bulan Desember III, No. 155
## 128 KD-00093 Gang Bulan Desember III, No. 145
## 129 KD-00082 Gang Arwana, No. 6 - Kota S
## 130 KD-00150 Gang Arwana No. 12, Kota S
## 131 KD-00065 Corina Residences Apartment, No. 0612
## 132 KD-00067 Condominium Pesona Indah, No. 0708
## 133 KD-00011 Cluster Ikan Mas, Taman Intan No. 2
## 134 KD-00091 Cluster Ikan Mas, Taman Baru No. 96
## 135 KD-00147 Cluster Griya Bima Sakti, Blok A No. 1
## 136 KD-00081 Bukit Vivo Indah, Blok C 2/4
## 137 KD-00109 Bukit Vivo Indah, Blok C 2/4
## 138 KD-00072 Boulevard Raya Residences, Blok AB2 No. 102
## 139 KD-00014 Boulevard Raya Residences, Blok AA2 No. 88
## 140 KD-00078 Blok C 2/4, Bukit Vivo Indah
## 141 KD-00095 Asrama Perawat IV, No. 2 - Kota D
## 142 KD-00022 Asrama Perawat IV, No. 1 - Kota D
## 143 KD-00017 Asrama Pelajar No. 22 A - Pondok Bima Sakti
## 144 KD-00037 Asrama Pelajar No. 11 B - Pondok Bima Sakti
## 145 KD-00108 Apartement Clifften, Lantai 12 No. 3
## 146 KD-00015 jalan Puri Arteri Raya, No. 88 - Kota T
## 147 KD-00083 jalan Puri Arteri Raya, No. 88 - Kota T
## 148 KD-00060 Apartemen Kecapi Indah, Lt. 18 No. 1801
## 149 KD-00007 Apartemen Kecapi Indah, Lt. 16 No. 1610
## 150 KD-00077 jalan Sutomo Baru 21 - Kota M
## 151 KD-00085 jalan. Sutomo Baru No. 21 - Kota M
## 152 KD-00142 Apartemen Bukit Baru, Dahlia Tower, No. A3
## 153 KD-00192 Taman Bunga Langit, jalan Barat Laut No. 6
## 154 KD-00298 Taman Bunga Langit, jalan Utara No. 3
## 155 KD-00492 Kompleks Pelaut Tangguh, No. 5A
kode_pelanggan <- data.alamat$kode_pelanggan
alamat <- data.alamat$alamat
staging.alamat <- data.frame(kode_pelanggan, alamat)
head(staging.alamat)
## kode_pelanggan alamat
## 1 KD-00032 Vila Sempilan, No. 67 - Kota B
## 2 KD-00053 Vila Sempilan, No. 11 - Kota B
## 3 KD-00133 Vila Sempilan, No. 1 - Kota B
## 4 KD-00056 Vila Permata Intan Berkilau, Blok C5-7
## 5 KD-00111 Vila Permata Intan Berkilau, Blok A1/2
## 6 KD-00036 Vila Gunung Seribu, Blok O1 - No. 1
sql10 <- "SELECT aktif, pola_aktif, count(*) as jumlah_data FROM data_pelanggan GROUP by aktif, pola_aktif"
rs10 <- tryCatch(dbSendQuery(con, sql10), finally = print("Query Ok"))
## [1] "Query Ok"
pola.aktif <- fetch(rs10, n=-1)
pola.aktif
## aktif pola_aktif jumlah_data
## 1 - - 1
## 2 0 9 23
## 3 1 9 98
## 4 FALSE AAAAA 13
## 5 I A 1
## 6 O A 2
## 7 TRUE AAAA 17
Melihat hasil tersebut, dapat kita simpulkan bahwa asumsi kita sebelumnya benar untuk jumlah data, namun salah untuk isi data pada pola “A”. Pola “A” ternyata isinya adalah “I” dan “O”, salah tulis untuk angka “1” dan “0”.
gunakan fungsi gsub() untuk mengganti semua huruf menjadi angka sesuai asumsi pola yaitu: 1. I = 1 2. o = 0 3. FALSE = 0 4. TRUE = 1
sql11 <- "SELECT kode_pelanggan, aktif, pola_aktif FROM data_pelanggan"
rs11 <- tryCatch(dbSendQuery(con, sql11), finally = print("Query Ok"))
## [1] "Query Ok"
data.aktif <- fetch(rs11, n=-1)
data.aktif$aktif <- gsub("O","0",data.aktif$aktif)
data.aktif$aktif <- gsub("I","1",data.aktif$aktif)
data.aktif$aktif <- gsub("FALSE","0",data.aktif$aktif)
data.aktif$aktif <- gsub("TRUE","1",data.aktif$aktif)
data.aktif$aktif
## [1] "0" "1" "0" "0" "1" "1" "1" "1" "1" "0" "1" "1" "1" "0" "0" "1" "1" "1"
## [19] "1" "1" "1" "0" "1" "1" "1" "0" "0" "1" "1" "1" "1" "1" "1" "0" "0" "1"
## [37] "1" "1" "1" "1" "1" "1" "1" "1" "1" "0" "0" "1" "1" "1" "1" "1" "1" "1"
## [55] "1" "1" "1" "0" "1" "1" "0" "1" "1" "0" "1" "1" "1" "1" "1" "1" "1" "1"
## [73] "0" "1" "0" "1" "1" "0" "1" "1" "1" "1" "1" "1" "1" "1" "0" "1" "1" "1"
## [91] "0" "1" "1" "1" "1" "1" "1" "0" "1" "0" "0" "1" "1" "1" "0" "1" "1" "1"
## [109] "1" "1" "1" "1" "1" "1" "0" "1" "0" "0" "1" "1" "1" "1" "0" "1" "1" "0"
## [127] "0" "1" "1" "1" "1" "1" "0" "1" "1" "0" "1" "-" "1" "1" "0" "0" "1" "1"
## [145] "1" "1" "1" "0" "0" "0" "1" "1" "1" "1" "1"
kode_pelanggan <- data.aktif$kode_pelanggan
aktif <- data.aktif$aktif
staging.aktif <- data.frame(kode_pelanggan, aktif)
head(staging.aktif)
## kode_pelanggan aktif
## 1 KD-00032 0
## 2 KD-00053 1
## 3 KD-00133 0
## 4 KD-00056 0
## 5 KD-00111 1
## 6 KD-00036 1
staging.teks <- merge(x=staging.nama, y=staging.nomor,by.x = "kode_pelanggan", by.y = "kode_pelanggan", all=TRUE)
staging.teks <- merge(x=staging.teks, y=stagin.pos,by.x = "kode_pelanggan", by.y = "kode_pelanggan", all=TRUE)
staging.teks <- merge(x=staging.teks, y=staging.alamat,by.x = "kode_pelanggan", by.y = "kode_pelanggan", all=TRUE)
staging.teks <- merge(x=staging.teks, y=staging.aktif,by.x = "kode_pelanggan", by.y = "kode_pelanggan", all=TRUE)
staging.teks <- data.frame(kode_pelanggan,nama_lengkap,alamat,nomor_telepon,kode_pos,aktif)
staging.teks
## kode_pelanggan nama_lengkap
## 1 KD-00032 Eva Novianti, S.H.
## 2 KD-00053 Heidi Goh
## 3 KD-00133 Unang Handoko
## 4 KD-00056 Jokolono Sukarman
## 5 KD-00111 Tommy Sinaga
## 6 KD-00036 Irwan Setianto
## 7 KD-00126 Agus Cahyono
## 8 KD-00137 Maria Sirait
## 9 KD-00046 Ir. ItaNugraha
## 10 KD-00027 Djoko Wardoyo, Drs.
## 11 KD-00002 Khairul Nissa
## 12 KD-00075 Kaka Ari Lima
## 13 KD-00076 Safira Hana Sahrani
## 14 KD-00035 Sidharta Paul
## 15 KD-00113 EdiAlexander
## 16 KD-00099 Sanjaya Priyantoro
## 17 KD-00132 Rachmat Chandra
## 18 KD-00088 Ayu
## 19 KD-00119 Tri Sulistianti
## 20 KD-00096 Rahmat Chandra
## 21 KD-00139 Agnes Rita
## 22 KD-00090 Andreas Sutanto
## 23 KD-00074 Taka Teguh
## 24 KD-00021 Paulus Angkasa Putra
## 25 KD-00045 Usman Pandajaya
## 26 KD-00012 Cahyono, Agus
## 27 KD-00030 Hendi
## 28 KD-00129 Edward Salim
## 29 KD-00122 Christine Angkasa
## 30 KD-00059 Prof Dr. Sadli Masikun
## 31 KD-00079 Meiti Kuswara
## 32 KD-00134 Budi Yahya
## 33 KD-00064 Fauzan Amir
## 34 KD-00038 Putri Utomo
## 35 KD-00117 Florensia Novianti
## 36 KD-00010 Sri Wahyuni, Ir
## 37 KD-00028 Aman Pakpahan
## 38 KD-00125 Tedi Halim
## 39 KD-00069 Syarifuddin Mahmud
## 40 KD-00114 Tri Iskandar
## 41 KD-00062 Zulkifli Kirana
## 42 KD-00006 DR. Candra Wijaya
## 43 KD-00024 Solihin Chaerul
## 44 KD-00084 Surya
## 45 KD-00104 Iqbal Setiawan
## 46 KD-00103 Yonathan Bagus
## 47 KD-00143 Hari Wibowo
## 48 KD-00034 Rita Meutia Latief
## 49 KD-00087 Budi Setiawan
## 50 KD-00039 Joko Wiryanto Abadi Pelanggan OKE
## 51 KD-0047 Puspita Citra
## 52 KD-00149 Chandra Rachmat
## 53 KD-00003 Slamet Wiyanto
## 54 KD-00043 Suharno Jamar
## 55 KD-00135 Tiah Feris
## 56 KD-00050 Intan Tri Wahyuni
## 57 KD-00110 Sumartono Salim
## 58 KD-00049 Dianto Laksmana
## 59 KD-00141 Edi Sumantri
## 60 KD-00044 dr. Yati Octavianus
## 61 KD-00124 Yakob Tan
## 62 KD-00105 Urip Chandra Effendi
## 63 KD-00107 Rachmat Chandra
## 64 KD-00086 Sisilia Lai
## 65 KD-00123 Rakhmat Chandra
## 66 KD-00025 DRG. Euis Rosidawati
## 67 KD-00008 Willy Sanjaya
## 68 KD-00005 Prihatin Setyonugroho
## 69 KD-00101 Fera Kurniawan
## 70 KD-00001 Agus Cahyonos
## 71 KD-00020 Hendri Winarto
## 72 KD-00080 Cristian Pakpahan Winarno
## 73 KD-00102 Leny Sarmini
## 74 KD-00146 Roger Sirait
## 75 KD-00048 Lilis Ong
## 76 KD-00019 Maria Yuniarti
## 77 KD-00151 Ferry Thia
## 78 KD-00130 Jujur Suwito
## 79 KD-00073 Takashi Yudistira Arief
## 80 KD-00778 Cahyono Agus H.
## 81 KD-00066 Purnomo Hadi
## 82 KD-00041 Poernomo Hadi
## 83 KD-00140 Leonardo Tedja
## 84 KD-00116 Risma Sihombing
## 85 KD-00127 Herdi Rivanto
## 86 KD-00057 Sumardi Utomo
## 87 KD-00016 Indra K.
## 88 KD-00063 Widianto Nuryajaya
## 89 KD-00148 Kuswanto
## 90 KD-00023 Ir. Yahya Permata
## 91 KD-00029 Sri Rahayu
## 92 KD-00136 Joko Wibawa
## 93 KD-00106 Budi Yahya
## 94 KD-00026 Anton Winarta
## 95 KD-00145 Lilis Kasim
## 96 KD-00018 Sudirman Kartono
## 97 KD-00058 Fineli Rahmadianto
## 98 KD-00051 Abdul Kadir
## 99 KD-00144 Risma Sihombing
## 100 KD-00128 Tedi Rahmanto
## 101 KD-00115 Teddy Rahmanto
## 102 KD-00009 Antonius Winarta
## 103 KD-00092 M Hasbi
## 104 KD-00070 I Made Mulyana
## 105 KD-00118 Abdul Kadir
## 106 KD-00052 Iriawan
## 107 KD-00120 Dewi Sryani
## 108 KD-00055 Maria Wiryawan
## 109 KD-00089 Acmad Junaidi
## 110 KD-00042 Ahmad Junaidi
## 111 KD-00112 Ari Masbun
## 112 KD-00098 B. Sulaiman
## 113 KD-00033 Citra Permana
## 114 KD-00013 Danang Santosa
## 115 KD-00138 Teddja Yanto
## 116 KD-00094 Sri Utami
## 117 KD-00054 Yudistira Utomo
## 118 KD-00100 Rahayu Sri Asih
## 119 KD-00121 Diana Sumirah
## 120 KD-00061 Tjipto Kesuma Wardhaya
## 121 KD-00031 Risman Suparyo Permata
## 122 KD-00040 Sri Utami
## 123 KD-00068 Miliana
## 124 KD-00131 Dewi Pratiwi
## 125 KD-00097 Frenkie Pranata
## 126 KD-00004 DRS. Maria Simangunsong
## 127 KD-00071 Suparta
## 128 KD-00093 Partono
## 129 KD-00082 Darmadi
## 130 KD-00150 Maria Utami
## 131 KD-00065 Civara Intan Wahyudi
## 132 KD-00067 Niken Sri Utami
## 133 KD-00011 Rosalina Kurnia
## 134 KD-00091 Indri Nourina Marthia
## 135 KD-00147 Budi Setiawan
## 136 KD-00081 Andy Gunawan
## 137 KD-00109 Purwadianto Hadi
## 138 KD-00072 Harry Widijanto
## 139 KD-00014 Elisabeth Suryadinata, SKOM, ST
## 140 KD-00078 Gugun Gunawan Wijaya
## 141 KD-00095 Sri Resti Agung
## 142 KD-00022 Mbak Dian Sukowati
## 143 KD-00017 Irfan Putra Wijaya
## 144 KD-00037 Cynthia Agus
## 145 KD-00108 JujurSuwito
## 146 KD-00015 Mario Setiawan
## 147 KD-00083 Setiawan Mario
## 148 KD-00060 Sulaiman Baskara
## 149 KD-00007 Indra Kurniawan, ST
## 150 KD-00077 Frenki Pranata
## 151 KD-00085 Frenki P.
## 152 KD-00142 Tedi Rahmanto
## 153 KD-00192 Sanjaya Priyantoro
## 154 KD-00298 Safira Hana Sahrani
## 155 KD-00492 dr. Yati Octavianus
## alamat nomor_telepon
## 1 Vila Sempilan, No. 67 - Kota B +6285419651438216
## 2 Vila Sempilan, No. 11 - Kota B +6282189517223455
## 3 Vila Sempilan, No. 1 - Kota B +6282952955586979
## 4 Vila Permata Intan Berkilau, Blok C5-7 +6289278629437370
## 5 Vila Permata Intan Berkilau, Blok A1/2 +6284384621977881
## 6 Vila Gunung Seribu, Blok O1 - No. 1 +6285842418573681
## 7 Vila Gunung Seribu, Blok F4 - No. 8 +6289522699290044
## 8 Vila Bukit Sagitarius, Gang. Sawit No. 3 +6288389541238485
## 9 Vila Bukit Sagitarius, Gang Kelapa No. 6 +6288267903981205
## 10 Vila Bukit Sagitarius, Blok A1 No. 1 +6284871003581659
## 11 Taman Vivo Indah, Blok AA No. 7 +6287132221371404
## 12 Taman Vivo Indah, Blok AA No. 7 +6283309536733507
## 13 Taman Bunga Langit, jalan Utara No. 3 +6286815308308264
## 14 Taman Bunga Langit, jalan Timur No. 1 +6286725681847845
## 15 Taman Bunga Langit, jalan Selatan No. 12 +6281413705348345
## 16 Taman Bunga Langit, jalan Barat Laut No. 6 +6281729600654645
## 17 Rusun Kerinci Indah, Lt. 6 No. 1 +6282352225142570
## 18 Rusun Kerinci Indah, Lt. 5 No. 6 +6283203183708137
## 19 Rumah Susun Gelora, Lantai 1 No. 12 +6289176501199576
## 20 Rumah Susun Eunos, Lantai 2 No. 2 +6286210781145764
## 21 Ruko Azalea, No. 3 RT 001/002 +6285986817540683
## 22 Ruko Almond Manis, Blok C7/8 +6287066745737382
## 23 Puspa Loka, No. 98F, Kota Y +6281902807450191
## 24 Puspa Loka, No. 98B, Kota Y +6285991672131933
## 25 Pulo Bambu No. 57, Kota Tenggara Lama +6282607473168157
## 26 Pulo Bambu No. 15, Kota Tenggara Lama +62829891111222
## 27 Pondok Bima Sakti, jalan Asrama Pelajar No. 11FF +6282261101749552
## 28 Perumahan Sektor Telekomunikasi, jalan Afrika No. 3 +6289323214692782
## 29 Perumahan Sektor Bougenville, jalan Sawit No. 8A +6286663398617904
## 30 Perumahan Sektor Bougenville, jalan Karet No. 7P +6283468728620812
## 31 Perumahan Duku Satu, Gang Merpati - No. 41 +6284927709580269
## 32 Perumahan Duku Lima, Gang Perkutut No. 1 +6284094392278758
## 33 Perumahan Catalina, jalan Kereta Api No. 77 +6285526151431004
## 34 Perumahan Bina Andromeda, jalan Teri No. 4 +6286621940809359
## 35 Perumahan Bina Andromeda, jalan Salmon No. 22 +6283166638654813
## 36 Perum Venus, Gg. Harimau No. 1A +6284079659289143
## 37 Perum Venus, Gang. Kelinci No. 12 +6289311313046417
## 38 Perum Venus, Gang. Harimau No. 4A +6286353637542265
## 39 Perum Titan, jalan. Trobos No. 8 +6281298730359784
## 40 Perum Titan, jalan. Kelinci No. 12 +6284122970381517
## 41 Perum Sektor 50, Gang Permai No. 5 +6286916223612856
## 42 Perum Pluto, Blok C No. 1 +6284063423953696
## 43 Perum Maju Permai Persada Indah, Gang Kenari No. 3 +6281718632538241
## 44 Perum Maju Permai P.I., Gang Kesturi No. 5 +6286837329291803
## 45 Perum Maju Permai P.I., Gang Kesturi No. 5 +6286401899308998
## 46 Perum Kali Meksiko, No. D22 +6283481690089399
## 47 Perum Kali Meksiko, No. 8F +6281672571203724
## 48 Perum Kali Meksiko, No. 8C +6284588563149814
## 49 Perum Indah Supernova, No. 1 +6285318844151067
## 50 Perum Indah Supernova II, No. 9 +6289122766908102
## 51 Perum Bimasakti Raya, Blok A No. 10 +6282793268821143
## 52 Perum Bimasakti Raya, Blok A No. 10 +6289337617505007
## 53 Meta Residences, No. 32C +6285725955303368
## 54 Meta Residences, No. 1A +6285158186394886
## 55 Kota T, jalan Taman Kencana No. 11112 +6283674655321990
## 56 Kompleks Selatan-Selatan, No. 121 +6283594524411404
## 57 Kompleks Selatan-Selatan, No. 111 +6288942588082822
## 58 Kompleks Permai Angkasa, Blok M No. 10 +6284311691840121
## 59 Kompleks Permai Angkasa, Blok J No. 09 +6286730629494828
## 60 Kompleks Pelaut Tangguh, No. 5A +6285879131063825
## 61 Kompleks Nelayan Permai, Blok DD - 98/99 +6284366427534780
## 62 Kompleks Akademi Perawat, Gang Farmasi No. 3 +6288507258756263
## 63 Kampung Kijang, Blok D3 - No. 12 +6282792175097533
## 64 Kampung Harimau, No. 88, Kota K +6281334304509664
## 65 Kampung Harimau, No. 3 +6286051245623557
## 66 Kampoeng Harimau, No. 81 - Kota K +6286035230854391
## 67 Kali Mars Cluster, No. 24C +6285312577710538
## 68 jalan Tegal Sari Indah, No. D87 -- Kota H +6286843623971825
## 69 jalan Tegal Sari Indah, No. D77 -- Kota H +6285375019511143
## 70 jalan Pulo Bambu No. 15, Kota Tenggara Lama 08298911112222
## 71 jalan Manggis II, Gang Buntu No. 1 +6287384329533477
## 72 jalan Manggis II - Gang Buntu No. 4 +6284032125604618
## 73 jalan Kangguru No. 92, RT 005 - kota R +6281941958971086
## 74 jalan G. Asri Mawar Harum Blok G No. 9 +6288888862370254
## 75 jalan Wisma Tenteram Saja, No. A31 +6285317681095918
## 76 jalan Wisma Tenteram Saja, No. A22 +6289317147992822
## 77 jalan Taman Kencana No. 11112, Kota T +6287896807815060
## 78 jalan Raya Griya Barbarosa, Blok AF 789 +6282833816760984
## 79 jalan Puri Indah Menawan, No. 818 - Kota T +6281859313870200
## 80 jalan. Pulau Bambu No. 15 - Kota Tenggara Lama +62829891112222
## 81 jalan Pulau Sentosa No. 133 -
## 82 jalan. Pulau Sentosa No. 133 08763322558899
## 83 jalan Pulau Sentosa No. 1335 +6289699357035892
## 84 Apartemen Lucky Beruntung, Lt. 5 No. 4 +6287642929298977
## 85 jalan Pulau Sentosa No. 133 +6284991627085550
## 86 jalan Pahlawan, No. 69FFF +6286996345317721
## 87 jalan Pahlawan, No. 69CCD +6289222405928430
## 88 jalan Macan Buntung, No. 4F +6285463027900499
## 89 jalan Macan Buntung, No. 1F - Kota D +6289756523291187
## 90 jalan Macan Buntung, No. 1F +6287660464098623
## 91 jalan Kp. Kijang, Blok A1 - No. 2F +6283177123456315
## 92 jalan Kemenangan Besar, Blok C8 No. 22 RT 02 +6288841308560422
## 93 jalan Kemenangan Besar, Blok C8 No. 22 +6283460823430150
## 94 jalan Kebon Jahe, Kota EntahDimana +6284204043307629
## 95 jalan Kampung Kijang, Blok C5 - No. 9 +6281980423349356
## 96 jalan Bintang Supernova, No. 78 +6282283957103749
## 97 jalan Bintang Supernova, No. 78 +6289503422652894
## 98 jalan Binjai 200, Kota L +6283835679381969
## 99 Apartemen Lucky Beruntung, Lt. 3 No. 4 +6287642929298977
## 100 Apartemen Bukit Merah, Annex Plaza, Lt 3 No. A1 0898198765432
## 101 Apartemen Bukit Merah Annex Plaza, Lt 3 No. A1 08765439876543
## 102 jalan. Kebon Jahe, No. F16 - Kota E +6282722234294686
## 103 jalan. Bukit Tol Km. 3, No. 971 +6284298240961859
## 104 jalan Wisma Tenteram Saja No. B-01 +6281950071656111
## 105 jalan Semantik Semut Berjalan, No. 3333 +6281693345459608
## 106 jalan Ring Road Neolitik, No. 1 RT 5 +6282695676827512
## 107 jalan Ring Road Konstan, No. 5 +6285239934324639
## 108 jalan Raya Jupiter Titan, No. 55 +6288385590443770
## 109 jalan Raya Hang Lekir, No. 62 - Kota Z +6281550391417945
## 110 jalan Raya Hang Lekir, Kota Z, No. 62 +6284399241602502
## 111 jalan Raya Andromeda, Blok D No. 3 +6285734298900666
## 112 jalan Pesisir No. 5, Kampoeng Maju Surya Gemilang +6283382626807712
## 113 jalan Hang Tuah, No. 31, Kota DM +6286734992308497
## 114 jalan Hang Tuah, No. 11, Kota DM +6282672925000608
## 115 jalan Gula Pahit, No. 081 +6286357357965169
## 116 jalan Gula Pahit, No. 015 +6284941125391866
## 117 jalan Gula Pahit, No. 001 +6288743246116630
## 118 jalan Asia No. 55, Kompleks Pelajar Kota C +6282208807303229
## 119 Indah Mars Cluster, No. 22F +6288508083942658
## 120 Griya Asri Mawar Harum, Blok G No. 1 +6283534357190274
## 121 Gang Tupai, No. 7 - Desa CL +6287382247200814
## 122 Gang Samun Saja No. 132, Kode Pos A99222 +6287263432705516
## 123 Gang Piranha, No. 3 - Desa BT +6284941004806026
## 124 Gang Piranha, No. 13 - Desa BT +6284939933374036
## 125 Gang Kelinci, No. 666 - Kota B +6282055715061873
## 126 Gang Bulan Desember III, No. 9 +6283376770990635
## 127 Gang Bulan Desember III, No. 155 +6285361733615048
## 128 Gang Bulan Desember III, No. 145 +6287029784792141
## 129 Gang Arwana, No. 6 - Kota S +6284338493742386
## 130 Gang Arwana No. 12, Kota S +6287188198226353
## 131 Corina Residences Apartment, No. 0612 +6287500842511771
## 132 Condominium Pesona Indah, No. 0708 +6286546368604671
## 133 Cluster Ikan Mas, Taman Intan No. 2 +6288339032314103
## 134 Cluster Ikan Mas, Taman Baru No. 96 +6288718681168878
## 135 Cluster Griya Bima Sakti, Blok A No. 1 +6282891052016637
## 136 Bukit Vivo Indah, Blok C 2/4 +6288590906353243
## 137 Bukit Vivo Indah, Blok C 2/4 +6286240577462157
## 138 Boulevard Raya Residences, Blok AB2 No. 102 +6288942438259785
## 139 Boulevard Raya Residences, Blok AA2 No. 88 +6285455084014504
## 140 Blok C 2/4, Bukit Vivo Indah +6283670227924527
## 141 Asrama Perawat IV, No. 2 - Kota D +6285736296760607
## 142 Asrama Perawat IV, No. 1 - Kota D +6285796817992325
## 143 Asrama Pelajar No. 22 A - Pondok Bima Sakti +6289984358708389
## 144 Asrama Pelajar No. 11 B - Pondok Bima Sakti +6283155468652762
## 145 Apartement Clifften, Lantai 12 No. 3 +6284037884325249
## 146 jalan Puri Arteri Raya, No. 88 - Kota T +6282989111122220
## 147 jalan Puri Arteri Raya, No. 88 - Kota T +6282989111122220
## 148 Apartemen Kecapi Indah, Lt. 18 No. 1801 +6286106166597558
## 149 Apartemen Kecapi Indah, Lt. 16 No. 1610 +6283840529196797
## 150 jalan Sutomo Baru 21 - Kota M +6283957775331152
## 151 jalan. Sutomo Baru No. 21 - Kota M +6289781665737911
## 152 Apartemen Bukit Baru, Dahlia Tower, No. A3 +6289859935888974
## 153 Taman Bunga Langit, jalan Barat Laut No. 6 +6281729600654645
## 154 Taman Bunga Langit, jalan Utara No. 3 +6286815308308264
## 155 Kompleks Pelaut Tangguh, No. 5A +6285879131063825
## kode_pos aktif
## 1 567130 0
## 2 567130 1
## 3 567130 0
## 4 876551 0
## 5 876551 1
## 6 876552 1
## 7 876552 1
## 8 877521 1
## 9 877521 1
## 10 877521 0
## 11 712983 1
## 12 712983 1
## 13 712984 1
## 14 712984 0
## 15 712984 0
## 16 712984 1
## 17 633429 1
## 18 633429 1
## 19 633430 1
## 20 633431 1
## 21 511431 1
## 22 511431 0
## 23 511432 1
## 24 511432 1
## 25 876511 1
## 26 876511 0
## 27 349922 0
## 28 986454 1
## 29 986455 1
## 30 - 1
## 31 986456 1
## 32 986456 1
## 33 987451 1
## 34 987452 0
## 35 987452 0
## 36 987453 1
## 37 987453 1
## 38 - 1
## 39 349981 1
## 40 349981 1
## 41 487451 1
## 42 487851 1
## 43 811613 1
## 44 811613 1
## 45 811613 1
## 46 877613 0
## 47 877614 0
## 48 877615 1
## 49 764449 1
## 50 764449 1
## 51 764450 1
## 52 764450 1
## 53 764550 1
## 54 764550 1
## 55 876612 1
## 56 321321 1
## 57 321321 1
## 58 321321 0
## 59 321321 1
## 60 321321 1
## 61 321321 0
## 62 321321 1
## 63 893422 1
## 64 813442 0
## 65 813442 1
## 66 813442 1
## 67 813444 1
## 68 476511 1
## 69 476511 1
## 70 876511 1
## 71 476533 1
## 72 476533 1
## 73 666122 0
## 74 666123 1
## 75 866162 0
## 76 - 1
## 77 876612 1
## 78 876614 0
## 79 876512 1
## 80 876511 1
## 81 896549 1
## 82 896549 1
## 83 896549 1
## 84 986455 1
## 85 896549 1
## 86 896550 1
## 87 896550 0
## 88 768091 1
## 89 768091 1
## 90 - 1
## 91 896566 0
## 92 896555 1
## 93 896555 1
## 94 896555 1
## 95 896555 1
## 96 896555 1
## 97 896555 1
## 98 696193 0
## 99 986455 1
## 100 986455 0
## 101 986455 0
## 102 896555 1
## 103 696193 1
## 104 696193 1
## 105 696193 0
## 106 567120 1
## 107 567120 1
## 108 696193 1
## 109 696193 1
## 110 696193 1
## 111 696193 1
## 112 696193 1
## 113 666122 1
## 114 666122 1
## 115 896549 0
## 116 896549 1
## 117 896549 0
## 118 896549 0
## 119 896112 1
## 120 896113 1
## 121 896114 1
## 122 896115 1
## 123 567151 0
## 124 567151 1
## 125 567120 1
## 126 967220 0
## 127 967220 0
## 128 967220 1
## 129 967221 1
## 130 967221 1
## 131 967222 1
## 132 967223 1
## 133 967223 0
## 134 967223 1
## 135 967224 1
## 136 967229 0
## 137 967229 1
## 138 817321 -
## 139 - 1
## 140 817324 1
## 141 768031 0
## 142 768031 0
## 143 768034 1
## 144 768034 1
## 145 768035 1
## 146 876511 1
## 147 876511 1
## 148 986455 0
## 149 986455 0
## 150 987601 0
## 151 987601 1
## 152 986455 1
## 153 712984 1
## 154 712984 1
## 155 321321 1