0% menganggap dokumen ini bermanfaat (0 suara)
24 tayangan

Data Preprocessing

Analitika Data I membahas proses preprocessing data yang meliputi pembersihan data, integrasi data dan transformasi data, serta reduksi data untuk meningkatkan kualitas data sebelum dilakukan analisis lebih lanjut."

Diunggah oleh

anastasiaveren105
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
24 tayangan

Data Preprocessing

Analitika Data I membahas proses preprocessing data yang meliputi pembersihan data, integrasi data dan transformasi data, serta reduksi data untuk meningkatkan kualitas data sebelum dilakukan analisis lebih lanjut."

Diunggah oleh

anastasiaveren105
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 62

Analitika Data I

Semester Ganjil 2022/2023

Data
Preprocessing
Oleh:
Syaiful Anam, S.Si, MT, Ph.D
Lab. Komputer dan Sains Data

Program Studi Sarjana Ilmu Aktuaria


Jurusan Matematika
Universitas Brawijaya Copy Right @Syaiful Anam Matematika UB
Data Preprocessing

Pembersihan Data

Integrasi Data dan


Transformasi Data

Reduksi Data

Copy Right @Syaiful Anam Matematika UB


Mengapa Data dilakukan Pre Processing?
Data di dunia nyata kotor

Occupation=“”
incomplete

noisy Salary=“-10”

Age=“42”
Tidak konsisten Birthday=“03/07/1997”

Peringkat "1,2,3",
sekarang peringkat "A, B,
C”
Copy Right @Syaiful Anam Matematika UB
Contoh data yang tidak lengkap

Client Nama Alamat TglLahir Majalah Umur


Number yang dibeli

22003 Dwi Jl Pasuruan No.1 15/04/86 Car 20


22003 Dwi Jl. Pasuruan No.1 15/04/86 20
22004 Sidiq Jl. Lumajang No.2 15/05/86 Music 20
22003 Dwi Jl. Pasuruan No.1 15/04/86 House 20

Copy Right @Syaiful Anam Matematika UB


Contoh

Client Nama Alamat TglLahir Majalah Umur


Number yang
dibeli
22003 Dwi Jl Pasuruan No.1 15/04/86 Car 20
22003 Dwi Jl. Pasuruan No.1 15/04/86 Music 40
22004 Sidiq Jl. Lumajang No.2 15/05/86 Music 20
22003 Dwi Jl. Pasuruan No.1 15/04/86 House 20

Copy Right @Syaiful Anam Matematika UB


Contoh

Client Nama Alamat TglLahir Majalah yang Umur


Number dibeli
22003 Dwi Jl Pasuruan No.5 15/04/86 Car 20
22003 Dwi Jl. Malang No.1 15/04/86 Music 20
22019 Dewi Jl. Pasuruan No.1 15/05/86 Music 20
22019 Dewi Jl. Pasuruan No.1 15/04/86 House 20

Copy Right @Syaiful Anam Matematika UB


Contoh

Client Nama Alamat TglLahir Majalah Umur


Number yang dibeli
22003 Dwi Jl Pasuruan No.1 15/04/86 Car 20
22003 Dwi Jl. Pasuruan No.1 15/04/86 Music -20
22004 Sidiq Jl. Lumajang No.2 15/05/86 Music 20
22003 Dwi Jl. Pasuruan No.1 15/04/86 House 20

Copy Right @Syaiful Anam Matematika UB


Read CSV File
# impor dataset
dataset = pd.read_csv(
'contoh_dataset.csv',
delimiter=';',
header='infer',
index_col=False
)

Copy Right @Syaiful Anam Matematika UB


Ada beberapa parameter metode
read_csv():
• Nama file (dalam hal ini contoh_dataset.csv),
• delimiter : meskipun format file adalah csv (comma
separated values), delimiter data belum tentu karakter
koma (dalam hal ini ;),
• header : indeks baris yang digunakan sebagai nama kolom,
dalam hal ini ditentukan secara otomatis oleh library
('infer'),
• index_col : kolom yang digunakan sebagai label baris dan
indexing. Tidak diperlukan untuk kasus ini (False).

Copy Right @Syaiful Anam Matematika UB


Contoh
• Menampilkan data kosong di Python

Copy Right @Syaiful Anam Matematika UB


Contoh Menampilkan data di
Python
# impor library
import numpy as np
import pandas as pd
data = {
'Province': ['Banten', 'DKI Jakarta','Jawa Barat','Banten','Jawa Barat','DKI
Jakarta','Banten','Banten','Jawa Barat','DKI Jakarta','Banten','Banten','Jawa
Barat','DKI Jakarta','DKI Jakarta'],
'Age': [24,np.nan,60,34,58,np.nan,21,44,40,51,32,30,30,19,25],
'Wage':
[5000000,3400000,7350000,3500000,np.nan,8000000,5500000,10000000,9
000000,10500000,np.nan,6400000,np.nan,2200000,4500000],
'Life insured':
['Yes','No','No','No','Yes','No','No','Yes','Yes','Yes','No','No','No','Yes','Yes'],
}

dataset = pd.DataFrame(data)
dataset.head(10)

Copy Right @Syaiful Anam Matematika UB


Contoh Menampilkan data di
Python
• dataset=pd.read_csv('finance.csv')
• dataset.head()

Copy Right @Syaiful Anam Matematika UB


Mengapa data tidak lengkap?

◼ Data tidak lengkap berasal dari


– Tidak ada nilai data saat
dikumpulkan
– Pertimbangan yang berbeda
antara waktu ketika data
dikumpulkan dan ketika
dianalisis.
– Masalah manusia / perangkat
keras / perangkat lunak

Copy Right @Syaiful Anam Matematika UB


Mengapa data bernoise?

◼ Data bernoise berasal dari proses


– Koleksi
– Entri
– Transmisi

Copy Right @Syaiful Anam Matematika UB


Mengapa data tidak konsisten?
◼ Data tidak konsisten berasal
dari
– Perbedaan sumber data

Copy Right @Syaiful Anam Matematika UB


Tugas Utama dalam Preprocessing Data

◼ Pembersihan Data

❑ Mengisi nilai-nilai yang hilang,

❑ Melakukan smooting noisy data

❑ Mengidentifikasi atau menghapus outlier, dan

❑ Menyelesaikan inkonsistensi

Copy Right @Syaiful Anam Matematika UB


Tugas Utama dalam Preprocessing
Data

◼ Integrasi Data
◼ Mengintegrasikan multiple databases, data cubes, or
files

Copy Right @Syaiful Anam Matematika UB


Tugas Utama dalam Preprocessing
Data

◼ Transformasi Data
– Menormalisasi and aggregation

Copy Right @Syaiful Anam Matematika UB


Tugas Utama dalam Preprocessing
Data

◼ Reduksi Data
– Memperoleh pengurangan representasi volume tetapi
menghasilkan hasil analitik yang sama atau serupa

Copy Right @Syaiful Anam Matematika UB


Tugas Utama dalam Preprocessing Data

◼ Diskritisasi Data
– Bagian dari reduksi data tetapi dengan kepentingan
khusus, terutama untuk data numerik

Copy Right @Syaiful Anam Matematika UB


Data preprocessing

◼ Kebutuhan untuk pra-pemrosesan di DM

◼ Pengurangan data - terlalu banyak data

◼ Pembersihan data - noise

◼ Integrasi dan transformasi data

Copy Right @Syaiful Anam Matematika UB


Tugas dari Pembersihan Data

◼ Mengisi nilai yang hilang


◼ Identifikasi pencilan dan menghaluskan data bernoise
◼ Memperbaiki data yang tidak konsisten
◼ Mengatasi redundansi yang disebabkan oleh integrasi
data

Copy Right @Syaiful Anam Matematika UB


Data Hilang

◼ Data tidak selalu tersedia


– Contoh. Banyak instances mempunyai nilai
yang tidak tersimpan untuk beberapa atribut,
contohnya seperti customer income dalam
data penjualan

Copy Right @Syaiful Anam Matematika UB


Data hilang mungkin disebabkan
oleh
❑ Kerusakan peralatan
❑ Tdak konsisten dengan data yang direkam lainnya
dan karenanya dihapus
❑ Data tidak dimasukkan karena kesalahpahaman
❑ Data tertentu mungkin tidak dianggap penting pada
saat masuk
❑ tidak terdaftar dalam riwayat atau perubahan data

Data yang hilang mungkin


perlu diinferensi
Copy Right @Syaiful Anam Matematika UB
Bagaimana Menangani Data yang
Hilang?
• Abaikan tupel
• Metode ini tidak terlalu efektif, kecuali tupel berisi
beberapa atribut dengan nilai yang hilang.
• Ini sangat buruk ketika persentase nilai yang hilang
per atribut sangat bervariasi.

Copy Right @Syaiful Anam Matematika UB


Abaikan tupel / menghapus tupple

• dataset.dropna(inplace=True)
• dataset.head(20)

Copy Right @Syaiful Anam Matematika UB


Bagaimana Menangani Data yang
Hilang?
• Mengisi nilai yang hilang secara manual: Secara
umum, pendekatan ini memakan waktu dan
mungkin tidak layak diberikan satu set data besar
dengan banyak nilai yang hilang.

Copy Right @Syaiful Anam Matematika UB


Bagaimana Menangani Data yang
Hilang?
• Gunakan konstanta global untuk mendapatkan
nilai yang hilang.
• Ganti semua nilai atribut yang hilang dengan
konstanta yang sama, seperti label seperti \ Tidak
Dikenal ", atau 1.
• Metode ini sederhana, tetapi tidak dianjurkan.

Copy Right @Syaiful Anam Matematika UB


Bagaimana Menangani Data yang
Hilang?

• Gunakan atribut mean untuk mengisi nilai yang


hilang
• Misalnya, anggaplah pendapatan rata-rata semua
pelanggan Electronics adalah $ 28.000.
• Gunakan nilai ini untuk menggantikan nilai
pendapatan yang hilang.

Copy Right @Syaiful Anam Matematika UB


Slicing
• Data kemudian dibagi menjadi dua jenis: data
independen/prediktor (X) dan data dependen/target (y).
Pembagian data ini menggunakan pandas.
• DataFrame.iloc seperti di bawah. Karena dataset adalah
matriks M*N, kita menggunakan slicing dengan format
[baris, kolom].
• Untuk dataset contoh:

• X = dataset.iloc[:, :-1].values
• y = dataset.iloc[:, -1].values

Copy Right @Syaiful Anam Matematika UB


Menangani nilai kosong (NaN)
• Ada dua pilihan: hapus observasi itu, atau substitusi nilai
dengan mean/rata-rata kolom itu.
• # menangani nilai kosong
from sklearn.impute import SimpleImputer
# ganti NaN dengan mean kolom itu
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer = imputer.fit(X[:, 2:4])
X[:, 2:4] = imputer.transform(X[:, 2:4])
print(X)

Copy Right @Syaiful Anam Matematika UB


Mengisi dengan mean
• dataset[‘Column_name’]=dataset[‘Column_name’].fillna(me
an_value).

Copy Right @Syaiful Anam Matematika UB


Bagaimana Menangani Data yang
Hilang?
• Gunakan nilai yang paling mungkin untuk nilai yang
hilang
• Ini dapat ditentukan dengan alat berbasis inferensi
menggunakan formalisme Bayesian atau induksi
pohon keputusan.
• Misalnya, menggunakan atribut pelanggan lain
dalam kumpulan data Anda, Anda dapat membuat
pohon keputusan untuk memprediksi nilai yang
hilang untuk pendapatan.

Copy Right @Syaiful Anam Matematika UB


Data Bernoise

◼ Noise: kesalahan acak atau varians dalam variabel yang


diukur

◼ Atributsalah mungkin disebabkan


– instrumen pengumpulan data yang salah
– masalah entri data
– masalah transmisi data
– keterbatasan teknologi
◼ Masalah data lainnya yang membutuhkan pembersihan
data
– rekaman rangkap
– data tidak lengkap
– data tidak konsisten
Copy Right @Syaiful Anam Matematika UB
Bagaimana Cara Menangani Data
Bernoise?
◼ Binning method:
– Pertama, mengurutkan data dan partisi menjadi bin (equi-
kedalaman)
– Langkah selanjutnya menghaluskan dengan rata-rata bin,
menghaluskan dengan median bin, atau menghaluskan
dengan batas bin, dll.
◼ Regresi
– menghaluskan dengan memasukkan data ke dalam fungsi
regresi
◼ Clustering
o Mendeteksi dan menghilangkan outlier
◼ Kombinasi Komputer dan inspeksi manusia
o Mendeteksi nilai-nilai yang mencurigakan dan memeriksa oleh
manusia (mis., berurusan dengan kemungkinan pencilan)

Copy Right @Syaiful Anam Matematika UB


Metode Binning untuk Data Smoothing

• * Data yang diurutkan untuk harga (dalam dolar): 4, 8, 9, 15, 21,


21, 24, 25, 26, 28, 29, 34
• * Partition into (equi-depth) bins:
• Bin 1: 4, 8, 9, 15
• Bin 2: 21, 21, 24, 25
• Bin 3: 26, 28, 29, 34
• * Smoothing dengan bin means:
• Bin 1: 9, 9, 9, 9
• Bin 2: 23, 23, 23, 23
• Bin 3: 29, 29, 29, 29
• * Smoothing dengan bin boundaries:
• Bin 1: 4, 4, 4, 15
• Bin 2: 21, 21, 25, 25
• Bin 3: 26, 26, 26, 34
Copy Right @Syaiful Anam Matematika UB
Metode Binning untuk Data
Smoothing
import numpy as np
import math
dataset = [4, 8, 9, 15, 21, 21, 24, 25, 26, 28, 29, 34]

b = dataset #np.zeros(len(dataset))
b=np.sort(b)#sort the array
# create bins
bin=np.zeros([3,4])
# Bin mean
for i in range(0,12,4):
k=int(i/4)
mean=(b[i] + b[i+1] + b[i+2] + b[i+3])/4
print(mean)
for j in range(4):
bin[k,j]=mean

print("Bin Mean: \n",bin)

Copy Right @Syaiful Anam Matematika UB


Metode Binning untuk Data
Smoothing
import numpy as np
import math
dataset = [4, 8, 9, 15, 21, 21, 24, 25, 26, 28, 29, 34]

b = dataset #np.zeros(len(dataset))
b=np.sort(b)#sort the array
# create bins
bin=np.zeros([3,4])
# Bin mean
for i in range(0,12,4):
k=int(i/4)
print(b[i+3])
for j in range(4):
if (b[i+j]-b[i]) < (b[i+3]-b[i+j]):
bin[k,j]=b[i]
else:
bin[k,j]=b[i+3]
print("Bin Boundary: \n",bin)
Copy Right @Syaiful Anam Matematika UB
Metode Binning untuk Data
Smoothing
import numpy as np
import math
dataset = [4, 8, 9, 15, 21, 21, 24, 25, 26, 28, 29, 34]

b = dataset #np.zeros(len(dataset))
b=np.sort(b)#sort the array
# create bins
bdata=4
bin=np.zeros([3,4])
# Bin mean
for i in range(0,12,4):
k=int(i/bdata)
for j in range(4):
if bdata%2==0:
bin[k,j]=(b[i+(bdata)//2-1]+b[i+bdata//2])/2
else:
bin[k,j]=b[i+(bdata)//2]

print("Bin Boundary: \n",bin)


Copy Right @Syaiful Anam Matematika UB
Regression

Y1

Y1’ y=x+1

X1 x

Copy Right @Syaiful Anam Matematika UB


Analisis Cluster

Copy Right @Syaiful Anam Matematika UB


Integrasi Data
◼ Integrasi Data
– menggabungkan data dari berbagai sumber ke
penyimpanan yang koheren
– Masalah identifikasi entitas: mengidentifikasi
entitas dunia nyata dari berbagai sumber data,
contoh., A.cust-id  B.cust-#
◼ Mendeteksi dan menyelesaikan konflik nilai data
– untuk entitas dunia nyata yang sama, nilai atribut
dari sumber berbeda adalah berbeda
– kemungkinan alasan: representasi berbeda, skala
berbeda.
Copy Right @Syaiful Anam Matematika UB
Menangani Redundansi dalam Integrasi
Data

◼ Data redundan sering terjadi ketika integrasi beberapa basis


data
– Atribut yang sama mungkin memiliki nama yang berbeda
di database yang berbeda
– Satu atribut dapat menjadi atribut "turunan" di tabel lain,
mis., Pendapatan tahunan

◼ Datayang redundan mungkin dapat dideteksi dengan


analisis korelasional
◼ Integrasi
data yang cermat dari berbagai sumber dapat
membantu mengurangi / menghindari redudansi dan
inkonsistensi dan meningkatkan kecepatan dan kualitas
penambangan Copy Right @Syaiful Anam Matematika UB
Transformasi Data
◼ Smoothing: menghilangkan noise dari data
◼ Aggregation: peringkasan
◼ Normalisasi: diskalakan agar jatuh dalam kisaran kecil yang ditentukan
– Normalisasi min-max
– Normalisasi z-score
– Normalisasi dengan penskalaan desimal
◼ Konstruksi fitur/ atribut
– Atribut baru dibangun dari yang diberikan

Copy Right @Syaiful Anam Matematika UB


Mengkodekan data kategori
• # kodekan data kategori
• from sklearn.preprocessing import OneHotEncoder
• from sklearn.compose import ColumnTransformer
• # kodekan nama provinsi (kolom ke-0)
• # kode hanya sebatas penanda
• encoder_X = ColumnTransformer([('province_encoder',
OneHotEncoder(), [1])], remainder='passthrough')
• X= encoder_X.fit_transform(X).astype(float)
• print(X)

Copy Right @Syaiful Anam Matematika UB


Mengkodekan data kategori
• # y adalah dependent, cukup kodekan ke angka
• from sklearn.preprocessing import LabelEncoder
• labelencoder_y = LabelEncoder()
• y = labelencoder_y.fit_transform(y)
• print(y)

Copy Right @Syaiful Anam Matematika UB


Membagi dataset ke
dalam training set dan test set
• from sklearn.model_selection import train_test_split
• X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.2, random_state=0)
• Untuk parameter:

• test_size : proporsi test set, dalam hal ini 0.2.


• train_size: proporsi train size. Jika tidak di set, maka akan
menyesuaikan dengan test size (dalam kasus ini 0.8).
Berlaku kebalikannya.
• random_state : konstan ini akan membuat hasil splitting
tetap sama antar runtime atau antar mesin. Nilai bebas.

Copy Right @Syaiful Anam Matematika UB


Transformasi Data: Normalisasi

◼ Normalisasi min-max
v − minA
v' = (new _ maxA − new _ minA) + new _ minA
maxA − minA
◼ Normalisasi z-score
v − meanA
v' =
stand _ devA
◼ Normalisasi dengan penskalaan desimal

v
v'= j dimana j adalah bilangan bulat integer terkecil
10 sedemikian sehingga Max(|v' |)<1

Copy Right @Syaiful Anam Matematika UB


Contoh

• Misalkan data untuk analisis termasuk usia atribut. Nilai


usia untuk tupel data adalah (dalam urutan meningkat):
• 13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25, 25,
30, 33, 33, 35, 35, 35, 35, 36, 40, 45, 46, 52, 70.

a)Gunakan normalisasi min-max untuk mengubah nilai 35


untuk usia ke kisaran [0; 1].
b)Gunakan normalisasi z-skor untuk mengubah nilai 35
untuk usia, di mana standar deviasi usia adalah ?.
c) Gunakan normalisasi dengan penskalaan desimal untuk
mengubah nilai 35 untuk usia.

Copy Right @Syaiful Anam Matematika UB


Gunakan normalisasi min-max untuk mengubah
nilai 35 untuk usia ke kisaran [0; 1].

• data=[13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25,
25, 30, 33, 33, 35,...
• 35, 35, 35, 36, 40, 45, 46, 52, 70]
• Maks=max(data);
• Mins=min(data);
• minnew=input('Minimum Baru =');
• maxnew=input('Maximum Baru =');
• databaru=(35-Mins)/(Maks-Mins)*(maxnew-
minnew)+minnew

Copy Right @Syaiful Anam Matematika UB


Gunakan normalisasi z-skor untuk mengubah nilai 35
untuk usia, di mana standar deviasi usia adalah ??.

• data=[13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25,
25, 30, 33, 33, 35,...
• 35, 35, 35, 36, 40, 45, 46, 52, 70]
• rata=mean(data);
• STD=std(data);
• databaru=(35-rata)/STD

Copy Right @Syaiful Anam Matematika UB


Gunakan normalisasi dengan penskalaan
desimal untuk mengubah nilai 35 untuk usia
• data=[13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25,
25, 30, 33, 33, 35,...
• 35, 35, 35, 36, 40, 45, 46, 52, 70]
• Max=max(data);
• j=1;
• while (abs(Max)/10^j>1)
• j=j+1;
• end;
• Databaru=35/10^j

Copy Right @Syaiful Anam Matematika UB


Normalisasi

• from sklearn.preprocessing import StandardScaler


• sc = StandardScaler()
• # variabel dummy kode provinsi juga diskalakan
• X_train = sc.fit_transform(X_train)
• X_test = sc.transform(X_test)
• print(X_test)

Copy Right @Syaiful Anam Matematika UB


Reduksi Data
◼ Agregasidata
◼ Pemilihan fitur dan pengurangan dimensi
◼ Sampling
– Sampling secara acak
◼ Instance
selection (search based)
◼ Kompresi Data
◼ PCA, Transformasi Wavelet
◼ Diskritisasi Data

Copy Right @Syaiful Anam Matematika UB


Histograms

40
◼ Teknik reduksi data yang
populer 35
◼ Membagi data menjadi
ember dan simpan rata- 30
rata (jumlah) untuk setiap
ember 25
◼ Dapat dibangun secara 20
optimal dalam satu
dimensi menggunakan 15
pemrograman dinamis
10
◼ Terkait dengan masalah
kuantisasi. 5
0
10000 30000 50000 70000 90000
Copy Right @Syaiful Anam Matematika UB
Sampling

Raw Data
Copy Right @Syaiful Anam Matematika UB
Sampling

Raw Data Cluster/Stratified Sample

Copy Right @Syaiful Anam Matematika UB


Diskritisasi
◼ Tigatipe atribut:
– Nominal - nilai dari himpunan tidak berurutan
– Ordinal - nilai dari set yang dipesan
– Continuous - bilangan real
◼ Diskritisasi:
– Membagi rentang atribut kontinu ke dalam interval
– Beberapa algoritma klasifikasi hanya menerima
atribut kategorikal.
– Mengurangi ukuran data dengan diskritisasi
– Bersiaplah untuk analisis lebih lanjut

Copy Right @Syaiful Anam Matematika UB


Beberapa teknik diskritisasi

• Metode Binning– equal-width, equal-frequency

• Metode berbasis Entropy

Copy Right @Syaiful Anam Matematika UB


Metode Binning

• Nilai Atribut (untuk satu atribut :umur):


• 0, 4, 12, 16, 16, 18, 24, 26, 28
• Equi-width binning – untuk bin width =10:
• Bin 1: 0, 4 [-,10) bin
• Bin 2: 12, 16, 16, 18 [10,20) bin
• Bin 3: 24, 26, 28 [20,+) bin
• – denote negative infinity, + positive infinity
• Equi-frequency binning – untuk bin density = 3:
• Bin 1: 0, 4, 12 [-, 14) bin
• Bin 2: 16, 16, 18 [14, 21) bin
• Bin 3: 24, 26, 28 [21,+] bin

Copy Right @Syaiful Anam Matematika UB


Data Preprocessing in Python
using Scikit Learn
• Di python, scikit-learn library memiliki fungsi bawaan di
bawah sklearn.preprocessing.
• Ada lebih banyak opsi untuk pra-pemrosesan

Copy Right @Syaiful Anam Matematika UB


Contoh Data Preprocessing
• https://towardsdatascience.com/ways-to-detect-and-
remove-the-outliers-404d16608dba
• https://www.kaggle.com/anirban7/data-preprocessing-for-
beginners
• https://www.kaggle.com/residentmario/simple-techniques-
for-missing-data-imputation

Copy Right @Syaiful Anam Matematika UB

Anda mungkin juga menyukai