IMPLEMENTASI JARINGAN SYARAF TIRUAN ALGORITMA BACKPROPAGATION UNTUK MEMPREDIKSI LAJU INFLASI DI KABUPATEN KLATEN
NASKAH PUBLIKASI
diajukan oleh Kurniawati Handayani 09.11.3278
kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA YOGYAKARTA 2014
IMPLEMENTATION OF BACKPROPAGATION NEURAL NETWORK ALGORITHM TO PREDICT INFLATION IN KLATEN DISTRICT IMPLEMENTASI JARINGAN SYARAF TIRUAN ALGORITMA BACKPROPAGATION UNTUK MEMPREDIKSI LAJU INFLASI DI KABUPATEN KLATEN Kurniawati Handayani Kusrini Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA ABSTRACT Inflation stability is a prerequisite of economic growth is beneficial for improving the welfare of society . Accurate prediction of inflation rate would have an influence in decisionmaking right. Accuracy with traditional forecasting modeling, multiple regression analysis while only briefly to predict the rate of inflation in the future. Neural networks is the discovery of new information by adopting the workings of biological neurons of the brain that focuses on the human nervous. Backpropagation algorithm can overcome the difficulty in predicting with a certain pattern of searching large amounts of data. Neural network can be a tool to determine eligibility and certainty in predicting the rate of inflation, particularly in the district of Klaten. The use of artificial neural network trained with backpropagation if true, will get the results predicted with accuracy approaching that most of the error in predicting the rate of inflation. Keywords: Artificial Neural Networks, Inflation, Backpropagation
1. Pendahuluan Inflasi merupakan salah satu indikator penting yang dapat memberikan informasi tentang dinamika perkembangan harga barang dan jasa yang dikonsumsi masyarakat. Indikator yang sering digunakan untuk mengukur laju inflasi adalah Indeks Harga Konsumen (IHK). Untuk menjaga kestabilan laju inflasi perlu dilakukan prediksi yang tepat dan akurat. Dalam enam tahun terakhir, inflasi di Kabupaten Klaten selalu berfluktuasi meskipun masih tergolong dalam kategori rendah dibawah 10% (single digit). Inflasi Kabupaten Klaten pada tahun 2008 lebih tinggi daripada inflasi Kabupaten Klaten pada tahun 2009. Tingginya inflasi Kabupaten Klaten selama 2008 terjadi karena adanya kenaikan harga yang ditunjukkan oleh kenaikan indeks pada kelompok bahan makanan, perumahan, transportasi dan komunikasi. (Badan Pusat Statistik (2013)) Inflasi dihitung menggunakan Indeks Harga Konsumen (IHK) yang diperoleh dari 250-300 jenis barang dan jasa yang diwakili 3 (tiga) kualitas untuk setiap jenis barang dan jasa. Perhitungan nilai inflasi menjadi sangat kompleks, karena frekuensi pengumpulan data dan harga berbeda pada setiap item barang sesuai dengan karakteristik barang tersebut. 2. Landasan Teori 2.1 Pengertian Laju Inflasi
Laju inflasi adalah meningkatnya harga barang/jasa kebutuhan masyarakat secara rata-rata (average) atau kenaikan harga-harga barang/jasa kebutuhan masyarakat secara umum dengan memperhatikan kwantum barang dan jasa yang dikonsumsi masyarakat sebagai penimbang. (Badan Pusat Statistik (2013))
2.2 Pengertian Indeks Harga Konsumen
Indek harga konsumen (IHK) adalah angka indek yang menggambarkan perubahan harga sekarang (barang/jasa) yang dikonsumsi masyarakat secara umum, guna mengukur perubahan atau melakukan perbandingan peubah-peubah ekonomi. (Badan Pusat statistik (2013))
1
2.3 Jaringan Syaraf Tiruan Jaringan syaraf tiruan (JST) adalah sistem pemroses informasi yang memiliki karakteristik mirip dengan jaringan syaraf biologi.(Jong Jek Siang, 2005; 2) Secara sederhana Jaringan Syaraf Tiruan merupakan alat pemodelan data nonlinier, yang dapat digunakan untuk memodelkan hubungan yang kompleks antara input dan output untuk menemukan pola-pola data. 2.4 Algoritma Backpropagation Algoritma backpropagation merupakan algoritma yang paling populer dalam jaringan syaraf tiruan untuk diaplikasikan dalam penyelesaian masalah yang berkaitan dengan identifikasi, peramalan, prediksi, pengenalan pola dan lain sebagainya. Secara umum, masalah peramalan dapat dinyatakan dalam runtun waktu (time series) x1, x2, … , xn dengan perkiraan xn+1. 2.4.1
Pelatihan Standar Backpropagation
Pelatihan algoritma backpropagation mempunyai 3 fase. Fase pertama adalah fase maju, dimana pola masukan dihitung maju mulai dari layar masukan hingga layar keluaran menggunakan fungsi aktivasi yang ditentukan. Fase kedua adalah fase mundur, dimana selisih antara keluaran jaringan dan target yang diinginkan merupakan kesalahan yang terjadi. Fase ketiga adalah perubahan bobot, dimana fase ini untuk menurunkan kesalahan yang terjadi. 2.4.2
Optimalitas Arsitektur Backpropagation
Menurut Jong Jek Siang Masalah utama algoritma backpropagation adalah lamanya iterasi yang tidak dapat memberikan kepastian tentang jumlah epoch yang harus dilalui, oleh karena itu parameter-parameter jaringan dibuat untuk menghasilkan jumlah iterasi yang relatif sedikit. (109-113) a. Pemilihan bobot dan bias awal Pemilihan bobot awal akan mempengaruhi jaringan untuk mencapai titik minimum. Nilai bobot awal tidak boleh terlalu kecil dan terlalu besar, oleh karena itu dalam standar backpropagation bobot dan bias awal diisi dengan bilangan acak kecil. b. Jumlah unit tersembunyi
2
Bagi backpropagation penambahan layar tersembunyi kadangkala membuat pelatihan lebih mudah. Jika jaringan memiliki lebih dari satu layar tersembunyi maka algoritma pelatihan tersebut perlu direvisi. c.
Jumlah pola pelatihan Jumlah pola yang dibutuhkan dipengaruhi oleh banyaknya bobot dalam jaringan
serta tingkat akurasi yang diharapkan. Aturan dapat ditentukan dengan rumusan : Jumlah pola = Jumlah bobot / tingkat akurasi d. Lama iterasi Jaringan dapat dilatih terus menerus hingga semua pola pelatihan dikenali dengan benar. Tetapi hal tersebut tidak menjamin jaringan mampu untuk mengenali pola pengujian dengan tepat. Pada umumnya data akan dibagi menjadi 2 bagian saling asing, yaitu pola untuk pelatihan dan pola untuk pengujian. Selama kesalahan menurun, pelatihan terus dialankan. Akan tetapi jika kesalahnnya meningkat, pelatihan tidak ada gunanya untuk diteruskan. e. Momentum Penambahan momentum dimaksudkan untuk menghindari perubahan bobot yang mencolok akibat adanya data yang sangat berbeda dengan yang lain. Apabila beberapa data terakhir yang diberikan ke jaringan memiliki pola serupa berarti arah gradient sudah benar, maka perubahan bobot dilakukan secara cepat.namun jika berbeda maka perubahan dilakukan secara lambat.
2.5 Matlab Matlab adalah sebuah bahasa dengan (high performance) kinerja tinggi untuk analisis dan komputasi masalah numerik. Di perguruan tinggi teknik, matlab digunakan untuk memperkenalkan dan mengembangkan penyajian materi matematika, rekayasa dan keilmuan. (Arhami, 2005; 2) Matlab telah berkembang menjadi sebuah environment pemograman yang canggih untuk melakukan tugas pengolahan sinyal, aljabar linier, dan kalkulasi matematis lainnya. Fitur-fitur matlab sudah banyak dikembangkan dan lebih dikenal dengan nama toolbox. Kemampuan pemrograman yang dibutuhkan tidak telalu sulit jika kita telah memiliki pengalaman dalam pemroghraman lain seperti C, PASCAL, atau FORTAN.
3
3. Analisis 3.1 Analisis Model Jaringan Syaraf Tiruan Pada tahap analisis model ini terdiri atas masukkan (input), proses dan keluaran (output) dari jaringan syaraf tiruan. 1. Kebutuhan Masukkan Kebutuhan masukkan yang dibutuhkan oleh user untuk menentukan struktur jaringan yang akan dibuat adalah dengan memasukkan data untuk mengatur jumlah variable masukkan, nilai variable masukkan, bobot awal, maksimum epoch, learning rate, momentum dan target. 2. Kebutuhan Proses Kebutuhan proses dengan pemasukan data ke sistem untuk diuji seberapa besar pola atau data dikenali oleh jaringan. Proses dilakukan secara bertahap dengan melakukan pengujian terhadap data yang dilatihkan dan pengujian terhadap data baru. 3. Kebutuhan keluaran Kebutuhan keluaran yang dihasilkan oleh sistem jaringan syaraf tiruan model backpropagation ini adalah hasil dari prediksi inflasi bulanan untuk mengetahui angka inflasi bulan berikutnya dengan masukan dari dua bulan berikutnya.
3.2 Perancangan Jaringan Backpropagation Beberapa langkah untuk merancang jaringan dengan algoritma backpropagation yaitu, pertama pengumpulan data yang akan dijadikan variable masukan serta target yang menjadi keluarannya. Lalu pembagian data menjadi data pelatihan dan data pengujian. Berikutnya menentukan arsitektur jaringan sesuai dengan algoritma yang digunakan. Selanjutnya tentukan jumlah sel (neuron) untuk lapisan tersembunyi serta fungsi aktifasi yang digunakan setiap lapisan. 3.3 Pengumpulan Data dan Penentuan Pola Data laju inflasi bulanan diperoleh dari Badan Pusat Statistik (BPS) Klaten yaitu dari bulan januari sampai desember tahun 2012 dan data bulan januari sampai desember tahun 2013. Total data adalah 24 data yang akan dibagi menjadi dua yaitu 12 data untuk pelatihan jaringan, dan 12 data untuk pengujian jaringan. Berikut ini table data laju inflasi yang didapat dari Badan Pusat Statistik (BPS) Klaten :
4
Gambar 3.1 Gambar tabel prosentase perubahan laju inflasi bulanan januaridesember tahun 2012 3.4 Algoritma Pelatihan Menurut Jong Jek Siang Algoritma pelatihan untuk jaringan dengan layar tersembunyi (dengan fungsi aktivasi sigmoid biner) serta penambahan momentum adalah sebagai berikut (102-103) : a. Inisialisasi semua bobot dengan bilangan acak kecil. b. Tetapkan jumlah Epoch Maksimum, Batas Galat, Laju Pembelajaran, dan Momentum. c.
Selama kondisi penghentian belum terpenuhi (epoch < epoch maksimum dan MSE > batas galat), maka lakukan langkahlangkah berikut : 1. Epoch = Epoch + 1
5
2. Untuk setiap pasang data pelatihan, kerjakan Fase Feed Forward, Fase Backpropagation dan Fase Perubahan Bobot. 3.5 Contoh Perhitungan Misalnya dalam kasus ini akan dibuat sebuah jaringan syaraf tiruan backpropagation dengan masukan data laju inflasi bulanan tahun 2012, bualn pertama januari sebagai inputan pertama, bulan kedua yaitu bulan februari sebagai inputan kedua dan bulan maret untuk bulan ketiga dan berlaku seterusnya untuk data samapi bulan desember. Parameter-parameter yang digunakan untuk pelatihan jaringan ini adalah: Fungsi aktivasi
= sigmoid biner
Jumlah sel lapisan masukan
=2
Jumlah sel lapisan tersembunyi = 1 Jumlah neuron lapisan keluaran = 1 Galat yang dizinkan
= 0.001
laju pembelajaran
= 0.5
Momentum
= 0.9
Langkah pertama yang dilakukan adalah menyiapkan data pelatihan, Berikut ini adalah table data pelatihan yang telah disesuaikan menurut urutan data perbulannya. Tabel 3.1 Tabel Pola Pelatihan Jaringan pola
x1
x2
target
1
0.4
0.2
0.33
2
0.2
0.33
-0.05
3
0.33
-0.05
0.43
4
-0.05
0.43
1.08
5
0.43
1.08
0.54
6
1.08
0.54
0.54
7
0.54
0.54
-0.53
8
0.54
-0.53
0.3
9
-0.53
0.3
0.31
10
0.3
0.31
0.06
Setelah itu dilakukan inisialisasi bobot secara acak dengan angka yang berada di antara angka -1 hingga 1. Fase Feed Forward
6
a. Tiap unit masukan xi (i = 1, 2, 3,...,n) menerima sinyal dan meneruskannya ke semua unit lapisan tersembunyi di atasnya. b. Setiap unit di lapisan tersembunyi zj (j = 1, 2, 3, ..., p) menjumlahkan sinyalsinyal input dengan bobotnya masing-masing: z_netj = v j 0 vjo
n
x v i
i 1
ji
= bobot garis yang menghubungkan bias di unit masukan ke unit di lapisan tersembunyi zj
vji
= bobot garis dari unit masukan xi ke unit di lapisan tersembunyi zj
Sinyal output dihitung dengan fungsi aktivasi: zj = f(z_netj) = c.
1
1 e
z _ net j
Unit di lapisan keluaran yk (k = 1, 2, 3, ..., m) menjumlahkan sinyal-sinyal dari unit tersembunyi dengan bobotnya masing-masing: p
y_netk =
wk 0 z j wkj j 1
wko = bobot garis yang menghubungkan bias di unit lapisan tersembunyi ke unit lapisan keluaran yk wkj = bobot garis dari unit lapisan tersembunyi zj ke unit di lapisan keluaran yk Sinyal output dihitung dengan fungsi aktivasi:
yk = f(y_netk) =
1 1 e y _ netk
Fase Backpropagation d. Unit di lapisan keluaran yk (k = 1, 2, 3, ..., m) menerima target lalu dibandingkan dengan masukan yang diterimanya. Factor galat dihitung dengan menggunakan persamaan : δk = (t k – y k) f’(y_netk) = (t k – y k) y k (1 - y k) dimanaδk merupakan kesalahan yang akan dipakai dalam perubahan bobot lapisan di bawahnya. Perubahan bobot Δwkj dihitung untuk merubah bobot wkj dengan laju pembelajaran α
7
Δwkj = α.δk.zj e. Hitung factor δ unit tersembunyi berdasarkan kesalahan disetiap unit tersembunyi zj: m
δ_netj =
k 1
k
wkj
Nilai ini dikalikan dengan turunan fungsi aktivasinya untuk mendapatkan informasi galat: δj = δ _netj f’(z_netj) = δ _netj zj (1 - zj) Kemudian dihitung perubahan bobot Δvji Δvji = α δj x Fase Perubahan Bobot e. Perubahan bobot garis yang menuju ke unit keluaran ditambah factor momentum (µ) : wkj (t+1) = wkj (t) + Δwkj + μ (wkj (t) - wkj (t-1)) bk (t+1) = bk (t) + Δbk + μ (bk (t) - bk (t-1)) perubahan bobot garis menuju ke unit tersembunyi : vji (t+1) = vji (t) + Δvji + μ (vji (t) - vji (t-1)) bj (t+1) = bj (t) + Δbj + μ (bj (t) – bj (t-1)) 3.6 Flowchart Diagram Pelatihan Jaringan Tahap ini adalah proses pengenalan pola–pola data yang telah di normalisasi agar sistem dapat menentukan bobot–bobot yang dapat memetakan antara data input dengan data target output yang diinginkan. Input yang digunakan adalah berupa data laju inflasi bulanan dari periode lalu januari-desember. Target yang digunakan adalah berupa nilai output yang diinginkan misalkan data bulan ketiga. Masing-masing
input yang dilatihkan memiliki target output
tersendiri. Berikut ini flow chart diagram untuk proses pelatihan laju inflasi.
8
Gambar 3.4 Flowchart Diagram Pelatihan Jaringan 3.7 Flowchart Diagram Pengujian Jaringan Setelah bobot yang terbaik pada tahap pelatihan didapat, maka nilai pembobot tersebut digunakan untuk mengolah data masukan untuk menghasilkan keluaran yang sesuai. Hal ini digunakan untuk menguji apakah JST dapat bekerja dengan baik yaitu dapat memprediksi pola data yang telah dilatihkan dengan tingkat kesalahan yang kecil.
9
Gambar 3.5 Flowchart Diagram Pengujian Jaringan 4. Hasil dan Pembahasan 4.1 Membangun Jaringan Syaraf Tiruan Langkah pertama yang harus dilakukan untuk membuat program jaringan syaraf tiruan dengan algoritma backpropagation dengan MATLAB adalah membuat inisialisasi jaringan.
Perintah
untuk
membentuk
jaringan adalah newff. Yang formatnya adalah
sebagai berikut: net = newff(PR,[S1 S2 ... SN],{TF1 TF2 … TFN},BTF,BLF,PF) dengan keterangan : net = Jaringan backpropagation yang terdiri dari n layer PR = Matriks ordo R x 2 yang berisi nilai minimum dan maksimum R buah elemen masukannya. Si = Fungsi aktivasi yang dipakai pada layar ke-i (i=1,2,...,n). Default = tansig (sigmoid bipolar) BTF = Fungsi pelatihan jaringan. Defaultnya = traingdx
10
BLF = Fungsi perubahan bobot/bias. Default=learngdm PF = Fungsi perhitungan error (Mean Square Error MSE) Sebelum pelatihan dilakukan,
terlebih dahulu ditentukan nilai parameter yang
diinginkan guna memperoleh hasil yang optimal. Untuk memberikan nilai parameter dalam MATLAB adalah sebagai berikut : a. Net.trainParam.Show Perintah yang digunakan untuk menampilkan frekuensi perubahan MSE (default setiap 25 epochs) b. Net.trainParam.epochs Perintah yang dipakai untuk menentukan jumlah epochs maksimum pelatihan (default 100 epochs) c.
Net.trainParam.goal Perintah untuk menentukan batas MSE agar iterasi dihentikan. Iterasi akan berhenti jika MSE < dari batas yang ditentukan atau jumlah epoch telah mencapai
maksimum
sesuai
nilai
yang
diberikan
pada
perintah
net.trainParam.epochs d. Net.trainParam.lr Perintah yang digunakan untuk menentukan laju pembelajaran (learning rate). Default-nya adalah 0,01. Semakin besar nilai laju pembelajaran, semakin cepat pula proses pelatihan. Akan tetapi jika nilainya terlalu besar, algoritma menjadi tidak stabil dan mencapai titik minimum lokal. e. Net.trainParam.time Perintah untuk membatasi lama pelatihan (dalam detik). Pelatihan dihentikan jika lamanya melebihi nilai yang ditentukan. f.
Net.trainParam.mc Perintah ini digunakan untuk menentukan nilai momentum antara 0 – 1 (default adalah 0,9).
4.2 Input Data Pelatihan dan Pengujian Sebelumnya data di simpan dengan format excel (.xls) lalu di panggil dengan fungsi bahasa pemrograman pada matlab dan dibaca sebagai matriks pada matlab. Selanjutnya
11
adalah menentukkan input dan target pada data pelatihan yang berlaku sama untuk data ujian. 4.3 Hasil Pelatihan Data Hasil dari pelatihan digunakan untuk menentukan konfigurasi
terbaik dari jaringan
dengan metode backpropagation, error goal 0,001, maksimum epoh 100000 serta fungsi aktivasi menggunakan fungsi tansig. Untuk variasi dalam pelatihan adalah dengan perubahan momentum, karena penulis menggunakan fungsi aktifasi traingdm yaitu parameter yang perlu di ubah adalah momentum. Dimana momentum berguna untuk menurunkan kecepatan iterasi yang sangat lambat. Dengan momentum, perubahan bobot tidak hanya didasarkan atas error yang terjadi pada jumlah epoch. Perubahan bobot saat ini dilakukan dengan memperhitungkan juga perubahan bobot pada epoch sebelumnya. konstanta belajar dan banyaknya neuron pada lapisan tersembunyi serta beberapa parameter diubah secara trial and error. Dari hasil pelatihan yang telah dilakukan, jaringan mengenali 100% dari data yang dilatihkan, ditunjukkan oleh hasil keluaran yang ditampilkan sesuai dengan target yang
telah ditentukan yaitu misalkan pada inflasi bulan pertama
target yang diberikan
adalah 0.4, maka hasil keluarannya menunjukkan 0,975743 yang mendekati 1, begitu juga dengan target lainnya yang terpenuhi. 4.4 Hasil Prediksi Hasil prediksi dalam sistem merupakan data yang telah dilatihkan dan diuji dengan data yang belum dilatihkan dalam sistem. Berikut hasil dari sistem prediksi inflasi berdasarkan variasi yang dilakukan. Berdasarkan masukkan hasil pelatihan dari berbagai inputan prediksi inflasi dengan input data pertama 0.4 dan input data kedua 0.2 memberikan hasil 0.3 adalah misal 0.349408 dan 0.359162 selisih antara hasil kedua prediksi tersebut 0.001.
12
Tabel 4.5 Tabel Akurasi Data Momentum
LR
Hidden Layer
Epoch
MSE
R
0.2
0.5
5
663
0.00099935
0.81266
0.3
8471
0.0009995
0.60606
0.4
2238
0.00099099
0.84628
0.5
876
0.0009999
0.73936
0.6
1172
0.00099834
0.017634
0.7
1438
0.00099945
0.77611
0.8
873
0.00099877
0.73936
0.9
7294
0.00099757
0.84388
40
0.00099867
0.0021356
0.6
393
0.00099992
0.2791
0.7
1433
0.000994
0.51404
0.8
331
0.00099965
0.8374
0.9
301
0.000995
-0.76156
318
0.00099736
0.70501
0.7
77
0.0009765
0.11301
0.8
133
0.00099516
-0.18971
0.5
0.5
0.6
0.5
10
15
Dari tabel di atas dapat dilihat presentasi kebenaran yang paling besar adalah 0.84628, yaitu nilai koefisien relasi output jaringan tepat sama dengan targetnya, karena mendekati angka 1 dan dengan tingkat error 0.00099099 yaitu hampir sama dengan target error 0.001. Berarti dengan tingkat korelasi antara output dan target mencapai 0.84628 atau 84,628 %, maka sistem prediksi inflasi ini mempunyai nilai akurat yang bisa dikatakan tinggi. Contoh hasil pengujian data yang menghasilkan tingkat hubungan output dan target yang menghasilkan R yang mendekati nilai 1.
13
Gambar 4.6 Tampilan Grafik Korelasi Output dan Target Pengujian 5. Kesimpulan Berdasarkan hasil analisis dan pengujian yang dilakukan pada bab sebelumnya, maka kesimpulan dapat diambil adalah sebagai berikut: 1. Aplikasi prediksi prediksi laju inflasi dengan menggunakan metode Backpropagation dapat dijadikan pedoman dalam menentukan laju inflasi bulan berikutnya. 2. Setelah dilakukan percobaan variasi momentum dan jumlah neuron learning rate dalam proses pelatihan dan pengujian sistem dapat diperoleh tingkat akurasi sebesar 84,38% dengan arsitektur jaringan yang optimal sebagai berikut. Jumlah iterasi (epoch) Target error Learning rate
: 7294
: 0,001 : 0,5
Jumlah neuron hidden layer : 5. 3. Hasil pengujian data yang telah dilatih menunjukkan performa yang cukup baik. Selisih antara target yang sebenarnya dengan hasil output program tidak menunjukkan perbedaan yang begitu besar. 4. Jumlah data masukan yang digunakan untuk pelatihan jaringan sangat menentukan output dari pelatihan jaringan. Semakin banyak data yang digunakan untuk pelatihan, jaringan akan semakin mampu mengenali pola, sehingga penentuan nilai galat dapat diperkecil.
14
DAFTAR PUSTAKA Anonim. 2014. Publikasi Indeks Harga Konsumen dan Inflasi Kabupaten Klaten Tahun 2012. http://klatenkab.bps.go.id/index.php?hal=publikasi_detil&id=59. Diakses pada tanggal 30 Maret 2014. Arhami, Muhammad. 2005. Konsep Dasar Sistem Pakar. Penerbit Andi. Yogyakarta. Badan Pusat Statistik. 2014. Indeks Harga Konsumen dan Inflasi Kabupaten Klaten Tahun 2013. Juni. BPS Kabupaten Klaten. Jawa Tengah. Hermawan, Arif, 2006, Jaringan Saraf Tiruan Teori dan Aplikasi, Penerbit Andi, Yogyakarta. Jong, Jek Siang. 2005. Jaringan Syaraf Tiruan dan Pemrogramannya Menggunakan MATLAB. Yogyakarta: Penerbit Andi.
15