## Implementasi Algoritma Blum Blum Shub Pada Kuis Sandi Semaphore Berbasis Augmented Reality
*1 Ridwan Alamsyah , 2 Erlan Darmawan , 3 Rio Andriyat , 4 Yulyanto 5 Endra Suseno Universitas Kuningan Fakultas Ilmu Komputer
1,3 Teknik Informatika, 2,5 Sistem Informasi, 4 Desain Komunikasi Visual Email: 1 ralamsyah195@gmail.com, 2 erlandarmawan2@gmail.com,
3 rioandriyat@uniku, 4 yulyanto@uniku.ac.id, 5 endra@uniku.ac.id

## Abstrak
Semaphore  adalah  suatu  cara  untuk  mengirim  dan  menerima  berita  dengan menggunakan  bendera,  dayung,  batang,  tangan  kosong  atau  dengan  sarung  tangan. Pembelajaran semaphore yang ada di Sekolah pada saat ini masih menggunakan buku panduan pramuka dan hanya berupa gambar 2D dan juga disampaikan oleh Pembina pramuka. Sehingga siswa  cenderung  jenuh  dalam  belajar  Gerakan  semaphore  dan  kurangnya pemahaman  dan edukasi  dalam  proses  pembelajaran  di  era  modern  ini.  Dari permasalahan  yang  ada  maka dibangun aplikasi pembelajaran Gerakan semaphore dan kuis semaphore dengan menggunakan teknologi augmented reality berbasis android guna memberikan pembelajaran yang menarik dan interaktif. Aplikasi ini dibangun dengan menambahkan algoritma Blum- Blum Shub (BBS) untuk proses  pengacakan  soal  yang  berfungsi  untuk  mengenerate  bilangan  acak  secara  proses matematis  dengan  output  yang  dihasilkan  adalah  deretan  angka  biner.  Aplikasi  di  buat menggunakan  Unity 3D,  dan  dikembangkan  menggunakan  metode  RUP  (Rational  Unifed Process). Dengan adanya aplikasi ini dapat mempermudah siswa dalam memahami materi yang ada pada pembelajaran semaphore
Kata  Kunci — Pembelajaran Semaphore, Unity  3D, Augmented  Reality,  Algoritma  Blum-Blum Shub (BBS), RUP (Rational Unifed Process).

## Abstract
Semaphore is a way to send and receive news by using a flag, paddle, trunk, bare hands or gloves. The semaphore learning at School at this time still uses the Scout's manual and it is only in the form of 2D images and it is also delivered by the Scout coach . So that students tend to get bored in  learning  the  semaphore  movement  and  lack  of  understanding  and  education  in  the learning  process  in  this  modern  era.  From  the  existing  problems,  the  semaphore  movement learning application and semaphore quiz were built using augmented reality technology based on android to provide interesting and interactive learning. This application was built by adding the Blum-Blum Shub (BBS) algorithm for the randomization process which functions to generate random numbers in a mathematical process with the resulting output is a series of binary numbers. Application  created  uses  Unity  3D,  and  developed  uses  the  RUP  (Rational  Unifed  Process) method.  With  this  application,  it  can  make  easier  for  students  to  understand  the  material  in semaphore learning..
Keywords — 3-5  Semaphore  Learning,  Unity  3D,  Augmented  Reality,  Blum-  Blum  Shub  (BBS) Algorithm, RUP (Rational Unifed Process).
Diajukan: 08 Juli 2023 Disetujui: 10 Juli  2023 Dipublikasi: 11 July 2023 1. PENDAHULUAN Semaphore adalah suatu cara untuk mengirim  dan  menerima  berita  dengan menggunakan  bendera,  dayung,  batang, tangan  kosong  atau  dengan  sarung  tangan.
Informasi  yang  didapat,  dibaca  melalui posisi bendera atau tangan. Namun kini yang umumnya  digunakan  adalah  bendera,  yang
dinamakan  bendera Semaphore (Trianto Juliatmojo,  2013).  Penyampaian  materi Semaphore  di  Sekolah  tersedia  di  dalam buku  panduan  pramuka  dan  hanya  berupa gambar 2 dimensi dan bisa juga
penyampaian materi dilakukan oleh pembina pramuka atau anggota lainnya yang lebih senior, hal ini menjadikan penyampaian  materi Semaphore tersebut masih memiliki kekurangan. Pada penelitian ini  akan  dibuat  sebuah  sistem  yang  dapat digunakan  sebagai    sarana  pembelajaran tentang sandi semaphore bagi siswa dengan menggunakan  teknologi augmented  reality dan  ditunjang  oleh  algoritma Blum-Blum Sub. Dengan  teknologi augmented  reality akan  menghasilkan  berupa  pembelajaran sandi  semaphore dengan objek 3D. sedangkan  untuk  proses  evaluasi  atau feedback dari  hasil  proses  belajar  ini  akan ditambah  soal  kuis  tentang  pembelajaran sandi semaphore untuk mengetahui seberapa dalam  pemahaman  dari  anggota  pramuka tentang apa yang dipelajari melalui aplikasi ini.  Sedangkan  fungsi  dari  algoritma Blum- Blum  Sub sebagai  algoritma  pengacak  soal pada implementasi dari proses evaluasi dari aplikasi  ini  yaitu  pembelajaran  sandi semaphore berupa soal- soal pilihan ganda.
.
2. METODE PENELITIAN
2.1 Tahapan Penelitian Metode pengembangan sistem yang
digunakan oleh penulis dalam penelitian ini adalah pendekatan Rational Unified Process (RUP).  Rational  Unified  Process  (RUP) merupakan suatu metode rekayasa perangkat lunak yang dikembangkan dengan mengumpulkan  berbagai  best  practice  yang terdapat  dalam  industri  pengembangan perangkat  lunak.  Ciri  utama  metode  ini adalah menggunakan use-case driven dan 6 pendekatan iteratif
untuk siklus pengembangan perangkat lunak (Rosa A.S., 2013).  Gambar  dibawah  ini   menunjukan secara  keseluruhan  arsitektur  yang  dimiliki RUP.
Gambar 1. Rational Unified Process (RUP) (Sumber : Daniel Siahaan, 2012) Metode Rational Unified Proces memiliki 4 tahap dalam pengembangan perangkat lunak yaitu :
Inception (Permulaan), Sebagai tahap awal untuk  menentukan  ruang  lingkup  proyek yang  akan  dilakukan,  dengan  memodelkan proses  bisnis  ( business  modelling )  dan mendefinisikan kebutuhan sistem ( requirements ).  Pada  tahap  ini  penulis mengumpulkan  informasi  dengan  cara melakuakn  observasi  dan  wawancara di MTsN  11  Majalengka.  Informasi  tersebut berupa data sebagai bahan pembentuk dalam melakukan  perancangan  aplikasi  serta  data hasil  perumusan  indikator  yang  akan digunakan.
Elaboration (Perluasan/Perencanaan), Tahap ini lebih difokuskan pada perencanaan  arsitektur  sistem.  Tahap  ini juga  dapat  mendeteksi  apakah  arsitektur sistem  yang  diinginkan  dapat  dibuat  atau tidak.  Mendeteksi  resiko  yang  mungkin terjadi  dari  arsitektur  yang  dibuat. Tahap ini  lebih  pada  analisis  dan  desain  sistem serta  implementasi  sistem yang fokus pada purwarupa sistem ( Prototype ). Perancangan sistem menggunakan UML ( Unified Modeling Language) yang meliputi pembuatan  Use  case  diagram,  skenario, activity  diagram,  class  diagram,  dan sequence diagram.
Construction  (Kontruksi) ,  Pada  tahap  ini akan  dilakukan  implementasi  perancangan perangkat  lunak  kedalam  kode  program dengan menggunakan bahasa pemrograman C#  pada  Visual  Studio  Code  berdasarkan perancangan  arsitektur  yang  telah  dibuat pada tahapan sebelumnya. Transition  (Transisi) ,  Pada  tahap  ini dilakukan pengujian, penyerahan dan pelatihan penggunaan aplikasi serta
pemeliharaan  penggunaannya.  Pengujian pada aplikasi ini dilakukan dengan menggunakan blackbox testing dan whitebox testing untuk  memastikan  sistem  berjalan dengan  baik.  Serta  pengujian  UAT (User Acceptance Test) untuk mengetahui apakah aplikasi  yang  sudah  dikembangkan  dapat diterima atau tidak
2.2 Alur Sistem yang dibuat Berikut alur sistem yang dibuat,
digambarkan  pada  flowchart  sistem   pada gambar berikut :
Gambar 2. Flowchart Alur Sistem yang
akan dibuat.
2.3 Analisis Penyelesaian Masalah Untuk menyelesaikan masalah dalam aplikasi  yang  dibangun  digunakan  sebuah algoritma Blum blum shub untuk melakukan pengacakan pada suatu kunci jawaban setiap objek 3D semaphore yang ditampilkan. Algoritma Blum Blum Shub Blum-Blum  Sub  (BBS)  merupakan  suatu Pseudo  Random  Number  Generator yang diajukan  pada  tahun  1986  oleh  Lenore Blum,  Manuel  Blum  dan  Michael  Shub. BBS memiliki bentuk persamaan:
Xn+1  = Xn 2 mod n
dengan n merupakan hasil dari perkalian dua buah  bilangan  prima  besar p dan q ,  serta output -nya  dalam Least  Significant  Bit dari Xn dimana hal yang sama sebagai parity dari Xn. Dua buah bilangan prima p dan q harus kongruen  terhadap  3  mod  4  dan Greatest
Common Divisor (GCD) harus kecil. Berikut langkah algoritma dari BBS [11]:
1. Pilih dua bilangan prima p dan q , di mana p dan q keduanya  kongruen terhadap  3  modulo  4. p ≡ 3 mod  4 dan q ≡  3 mod 4.
2. Hasilkan  bilangan  bulat  Blum n
dengan menghitung n =  p × q . 3. Pilih  lagi  sebuah  bilangan  acak s sebagai  umpan,  bilangan  yang dipilih harus memenuhi kriteria: a. 2 ≤ s < n
b. s dan n adalah relatif prima. 4. Hitung nilai xo  = s 2 mod n . 5. Hasilkan  bilangan  bit  acak  dengan cara : a. Hitung xi =  x(i – 1) 2 mod n.
b. Hasilkan zi  =  bit  -  bit yang diambil  dari xi . Bit yang diambil  bisa  merupakan  LSB ( Least  Significant  Bit )  atau hanya  satu  bit  atau  sebanyak j bit ( j tidak melebihi log2  (log2 n)) . Bilangan bit acak dapat digunakan langsung atau  di-format  dengan  aturan  tertentu, sedemikian hingga menjadi bilangan bulat.

## Gambar 3 Flowchart Algoritma BBS
Perhitungan Algoritma Blum-Blum Shub perhitungan  algoritma Blum  Blum  Shub pada  media  pembelajaran Sandi Semaphore:
- Langkah Pertama Masukkan :
banyakBil = 26 ukuranBil = 5
- Langkah ke-dua Pilih  p  dengan  bilangan  acak  atau random. Kemudian periksa apakah sesuai dengan syarat  (p mod 4 = 3). Jika sesuai lanjut,  dan jika tidak ulangi terus  sampai memenuhi syarat.
Contoh : 1 mod 4 = 3 (salah)
19 mod 4 = 3 (benar) maka p = 19
Pilih  q  dengan  bilangan  acak  atau random. Kemudian periksa apakah sesuai dengan syarat  (p mod 4 = 3). Jika sesuai lanjut,  dan jika tidak ulangi terus  sampai memenuhi syarat. 5 mod 4 = 3 (salah) 27 mod 4 = 3 (benar) Maka q = 27 - LANGKA KE-TIGA Hitung n = p * q = 19 * 27 = 513 - Langkah ke-empat Pilih bilangan acak bulat lain, S = 5 Hitung : X0 = s 2 mod n = 5 2 mod 513 = 25 mod 513 =25 - Langkah ke-lima Menghitung bilangan 1 : Diketahui : X0 = 25 n = 513 Xi  = X(i-1) 2 mod n Tabel 1. Penyelesaian Bilangan 1 𝑿 𝒊 Penyelesaian 𝒁 𝒊 Nilai
𝑋 1 = 𝑥 ( 𝑖 −1) 2 mod n = 𝑥 0 2 𝑚𝑜𝑑 n = 25 2 𝑚𝑜𝑑 513 𝑋 1 = 625 mod 513 𝑧 1 0 112
𝑋 2 = 𝑥 (2−1) 2 mod n = 𝑥 1 2 𝑚𝑜𝑑 n = 112 2 𝑚𝑜𝑑 513
𝑋 2 = 12544 mod 513 𝑧 2 0
232 𝑋 3 = 𝑥 (3−1) 2 mod n = 𝑥 2 2 𝑚𝑜𝑑 n = 232 2 𝑚𝑜𝑑 513 𝑋 3 = 222784 mod 5 13 𝑧 3 0 472
𝑋 4 𝑋 4 = 𝑥 (4−1) 2 mod n 𝑧 4 0
= 𝑥 4 2 𝑚𝑜𝑑 n
= 472 2 𝑚𝑜𝑑 513
= 222784 mod 5 13
142
𝑋 5 = 𝑥 (5−1) 2 mod n
= 𝑥 5 2 𝑚𝑜𝑑 n
= 142 2 𝑚𝑜𝑑 513
𝑋 5 = 20164 mod 5 13 𝑧 5 1 157 Hasil bilangan 1 1 Konversi bilangan 1
Untuk  menghitung  bilangan  ke-2  dan seterusnya  menggunakan  langkah-langkah yang  sama,  namun  dengan  nilai 𝑥 𝑜 yang diacak.  Setelah  dilakukan  perhitungan sebanyak  26  bilangan  dengan  nilai 𝑥 𝑜 = random.
Untuk  menghitung  bilangan  ke-2  dan seterusnya  menggunakan  langkah-langkah yang  sama,  namun  dengan  nilai 𝑥 𝑜 yang diacak.  Setelah  dilakukan  perhitungan sebanyak  26  bilangan  dengan  nilai 𝑥 𝑜 = random,  maka didapat  hasil  seperti  pada tabel 2 berikut ini.
Tabel 2. Hasil Perhitungan 26 Bilangan
Jadi  kemunculan  pertanyaan  pada  media pembelajaranSemaphore berbasis augmented reality adalah pertanyaan nomor 1, 0,2,3,18,15,9,12,14,13,8,4,21,25,17,5,23,16, 6,20,24,7,22,11,19 dan 10. Use Case Diagram Use case diagram menggambarkan interaksi  antara  sistem  dan  aktor atau mendeskripsikan  tipe  interaksi  antara pengguna dengan sistem. Gambar 4 Use Case Diagram

## 3. HASIL DAN PEMBAHASAN
3.1. Pengujian Sistem ( Testing and Implementations ) Pengujian  sistem  merupakan  proses menjalankan  dan  mengeksekusi  sistem perangkat  lunak  untuk  mengetahui  apakah sistem  dapat  berjalan  dengan  baik  di perangkat yang sudah ditentukan dan semua
fungsi  yang  dikembangkan  dapat  berajalan sesuai dengan yang diinginkan. Pada sistem ini dilakukan pengujian dengan menggunakan  metode black  box dan white box. 3.2 Pengujian Black Box
Pengujian  ini  digunakan  untuk  menguji fungsi-fungsi  dari  sebuah  perangkat  lunak yang dirancang, kebenaran fungsi yang diuji dilihat  berdasarkan  output  yang  dihasilkan. Pengujian black box adalah sebagai berikut Pembahasan terhadap hasil penelitian dan pengujian  yang  diperoleh  disajikan  dalam bentuk uraian teoritik, baik secara kualitatif
maupun kuantitatif. Hasil percobaan sebaiknya  ditampilkan  dalam  berupa  grafik atau pun tabel. Untuk grafik dapat mengikuti format untuk diagram dan gambar.
Tabel 3. Pengujian Black Box aplikasi

## ArSemaphore

## 3.1 Pengujian White Box
Pengujian ini dilakukan untuk menguji yang didasarkan  pada  detail  prosedur  dan  alur logika  kode  program.  Pada  kegiatan whitebox testing, tester melihat source code program  dan  menemukan  bugs  dari  kode program yang diuji. Pada dasarnya whitebox testing  adalah  pengujian  yang  dilakukan sampai  kepada  detail  pengecekan  kode program.  Berikut  pada  tabel  4.2  pengujian
white box  aplikasi  augmented  reality  yang dibuat.
Tabel 3 Pengujian White Box Testing
3.2 Pengujian UAT ( User Acceptance Test )
Pengujian  UAT  ( User  Acceptante Test )  dilakukan  untuk  menilai  kelayakan
dari media penyampaian informasi pengenalan  Gerakan  Sandi  Semaphore. Aplikasi ini diuji coba kepada siswa MTsN 11  Majalengka  untuk  mengetahui  respon siswa terhadap media penyampaian informati yang dikembangkan.
Tabel 4.3. Pilihan Jawaban UAT Jawaban Keterangan  Bobot A Sangat Mudah 5 B Mudah 4 C Netral 3 D Sulit 2 E Sangat Sulit 1 Implementasi antar muka Implementasi antar muka dilkakukan dengan  setiap  tampilan  program  yang dibangun.  Berikut  ini  adalah  implementasi
No. Fungsi yang diuji Cara menguji Hasil yang diharapkan Hasil yang dikeluarkan Valid/tidak valid 1 Halaman Pindai Marker. Pengguna memilih menu “pindai marker" Menampilkan kamera untuk proses pemindaian gambar Sesuai yang diharapkan. Valid Pengguna melakukan pemindaian gambar Menampilkan objek 3D semaphore. Sesuai yang diharapkan. Valid Pengguna memilih tombol "kembali" Menampilkan halaman utama. Sesuai yang diharapkan. Valid Pengguna memilih "Tombol
Kuis" Menampilkan halaman bermain Sesuai yang diharapkan. Valid 2 Halaman bermain Pengguna memilih tombol “bermain”. Menampilkan soal kuis semaphore dengan kondisi teracak Sesuai yang diharapkan. Valid Pengguna memilih 4 opsi jawaban Jika jawaban benar akan menambah 5 point dan jika jawaban salah akan mengurangi nyawa Sesuai yang diharapkan. Valid 3 Halaman panduan. Pengguna memilih menu "Panduan" Menampilkan informasi cara penggunaan aplikasi Sesuai yang diharapkan. Valid 4 Halaman tentang. Penggunan memilih menu “tentang”. Menampilkan informasti tentang pembuat aplikasi Sesuai yang diharapkan. Valid 5 Halaman keluar. Pengguna memilih menu “keluar”. Menampilkan dialog persetujuan untuk keluar dari aplikasi Sesuai yang diharapkan. Valid No Kode Program 1 public static List<E> ShuffleListItems<E>(List<E> inputList) { static long seed; static long p ; static long q ; static long m = p * q; 2 { List<E> originalList = new List<E>(); originalList.AddRange(inputList); List<E> randomList = new List<E>(); System.Random BBS = new System.Random(); int randomIndex = 0; 3 while (originalList.Count > 0) { randomIndex = BBS.Next(0, originalList.Count); randomList.Add(originalList[randomIndex]); originalList.RemoveAt(randomIndex); } 4 return randomList; } } 5 public int BBS(int n, int min, int max) { int nextRandomNumber = (int)((p * seed + q) % m); seed = nextRandomNumber; return nextRandomNumber; int[] sequence = new int[n];
antarmuka aplikasi Augmented  reality Sandi Semaphore yang dibuat.
Gambar 3. Halaman Profil
Halaman  profil  merupakan  halaman  untuk memasukan  nama  dari masing-masing user yang akan masuk ke aplikasi tersebut.
Gambar 4.Halaman Pindai Marker
Halaman pindai marker merupakan halaman yang  berfungsi  untuk  membuka  kamera untuk melakukan pemindaian gambar untuk menampilkan objek 3D Gerakan semaphore seperti pada gambar 5 Berikut
Gambar 5. Halaman tombol pindai marker
Pada  halaman  pindai  marker  terdapat  dua tombol  yaitu  tombol  “kembali”  yang berfungsi untuk Kembali ke halaman utama, tombol  “kuis”  yang  berfungsi untuk menampilkan halaman bermain
Gambar 6. Halaman Bermain
Halaman  bermain  merupakan  halaman untuk  memulai  bermain  dengan  cara menekan  tombol  “bermain”  yang  akan menampilkan  halaman  kuis  seperti  pada gambar 7 Berikut.
Gambar 7. Halaman Mengisi Soal Kuis
Saat  user  menekan  tombol  bermain,  maka akan  muncul  halaman  mengisi  soal  seperti pada  gambar  7.  Diatas.  User  mengerjakan soal  kuis  dengan  memilih  4  opsi  jawaban, jika user memilih jawaban benar maka akan mendapatkan  5  point  jika  user  menjawab salah maka akan mengurangi  nyawa.
Gambar 8. Halaman Highscore
Halaman  highscore  merupakan  halaman untuk  menampilkan  score terakhir dari kuis semaphore tersebut.
Gambar 9. Halaman Panduan Halaman  panduan  menampilkan  informasi terkait cara penggunaan aplikasi
ArSemaphore.
Gambar 10. Halaman Tentang
Halaman  tentang  menampilkan  informasi pembuat aplikasi  ArSemaphore. Gambar 11. Halaman Exit Halaman exit menampilkan dialog
persetujuan  untuk  keluar  dari  aplikasi ArSemaphore. 4. KESIMPULAN
Berdasarkan  hasil  analisis  dan  pengujian sistem  pada  aplikasi  ArSempahore  dapat ditarik kesimpulan bahwa Aplikasi ArSemaphore  ini  dibuat  untuk  media pembelajaran  gerakan  sandi  semaphore  di MTS  dimana  Dengan  adanya  media pembelajaran  gerakan  sandi  semaphore  ini dapat menambah minat siswa dalam belajar dan mempermudah siswa dalam memahami gerakan  sandi  semaphore.  Penggunaan Metode algoritma Blum-Blum Shub digunakan  untuk  mengacak  kemunculan soal  bisa  berjalan  dengan  baik  dan
Berdasarkan
hasil pengujian UAT mendapatkan nilai 86,70138

## DAFTAR PUSTAKA
[1]  P.  Sandi,  M.  Dan,  S.  Semaphore,  and  P.  Soepomo, “Pembelajaran  Sandi  Morse  Dan  Sandi  Semaphore Dalam Bentuk Simulasi Berbasis Multimedia,” Jurnal Sarjana Teknik Informatika , vol. 1, no. 1, 2013.
[2]  T.  S.  Waruwu  and  K.  Telaumbanua,  “Kombinasi Algoritma  OTP  Cipher  dan  Algoritma  BBS  dalam Pengamanan File,” Jurnal SIFO Mikroskil , vol. 17, no.
1, 2016, doi: 10.55601/jsm.v17i1.278.
[3]  Suhendar,  “Pemodelan  Visual  dengan  Menggunakan UML dan Rational Rose,” Jurnal Teknologi Informasi DINAMIK Volume , vol. XIV, no. 1, 2008.
[4]  Sukamto dan and Shalahuddin, “Shalahuddin, M. Rosa A.S 2014. Rekayasa Perangkat Lunak Terstruktur dan Berorientasi  Objek.  Bandung:  Informatika  Bandung,”
Jurnal Pilar Nusa Mandiri , 2014.
[5]  I.  Mustaqim,  “PEMANFAATAN  AUGMENTED REALITY  SEBAGAI  MEDIA  PEMBELAJARAN,” Jurnal  Pendidikan  Teknologi  dan  Kejuruan ,  vol.  13,
no. 2, 2016, doi: 10.23887/jptk.v13i2.8525.
[6]  M. B. Sanjaya and P. A. Telnoni, “IMPLEMENTASI BLUM-BLUM-SHUB  DAN  CHAOTIC  FUNCTION UNTUK  MODIFIKASI  KEY  GENERATING PADA AES,” Jurnal  Elektro  dan  Telekomunikasi  Terapan , vol. 2, no. 2, 2016, doi: 10.25124/jett.v2i2.102.
[7]  K.  Teguh  Martono,  “Augmented  Reality  sebagai Metafora Baru dalam Teknologi Interaksi Manusia dan Komputer,” Jurnal  Sistem  Komputer ,  vol.  1,  no.  2,
2011, doi: 10.14710/JSK.V1I2.13.
[8]  Nazruddin Safaat H, Android : Pemrograman Aplikasi Mobile  Smartphone  dan  Tablet  PC  Berbasis  Android (Edisi Revisi) . 2012.
[9]  S.  Cawood  and  M.  Fiala, Augmented  reality:  a practical guide , vol. 62. 2008.
[10] R.  H.  Creighton, Unity  3D  Game  Development  by Example . 2010.
[11] I.  Efendi,  “Pengertian  Augmented  Reality  (AR),” IT Jurnal, https://www. it-jurnal. com/pengertian- augmented-realityar , vol. 17, 2017.