Cara Install OpenCV di Segala Jenis Raspberry - Carakubisa

Sebelum menginstall openCV pastikan raspberry kalian sudah memenuhi syarat:

*Sudah Teristall OS (Raspbian OS)
*Koneksi internet yang stabil dan kencang

Menginstall opencv Untuk Semua Jenis Raspberry

Jika kamu pernah dipasang opencv pada sebuah raspberry pi ( atau apapun platform lain sebelum ) , kau tahu bahwa proses dapat cukup memakan waktu lama dengan banyak pre-requisites dependensi dan yang harus dipasang .Tujuan dari tutorial ini adalah untuk dengan demikian memimpin kamu bertahap melalui menyusun dan proses instalasi .Dalam rangka untuk membuat pemasangan proses pergi lebih lancar , aku sudah memasukkan timings untuk setiap langkah jadi anda tahu kapan untuk mengambil jeda , ambil secangkir kopi , dan untuk memeriksa diri pada email sementara pi mengkompilasi opencv .Biarkan pergi ke depan dan mendapatkan mulai memasang opencv 3 pada raspberry anda pi 3 berjalan raspbian meregangkan .

Langkah # 1: Memperluas FileSystem

Hal pertama yang anda harus lakukan adalah memperluas sistem berkas anda untuk memasukkan semua tersedia pada micro-sd anda:

sudo raspi-config
Setelah itu akan muncul Advanced Option ,dan ikuti cara dibawah ini:

Anda harus memilih opsi pertama, “A1. Perluas Sistem File ", tekan Enter pada keyboard Anda, panah ke bawah ke tombol" <Finish> ", dan kemudian reboot Pi Anda.

Setelah reboot, sistem file Anda seharusnya diperluas untuk memasukkan semua ruang yang tersedia pada kartu micro-SD Anda. Anda dapat memverifikasi bahwa disk telah diperluas dengan mengeksekusi df -h dan memeriksa output:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        30G  4.2G   24G  15% /
devtmpfs        434M     0  434M   0% /dev
tmpfs           438M     0  438M   0% /dev/shm
tmpfs           438M   12M  427M   3% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           438M     0  438M   0% /sys/fs/cgroup
/dev/mmcblk0p1   42M   21M   21M  51% /boot
tmpfs            88M     0   88M   0% /run/user/1000

Seperti yang Anda lihat, sistem file Raspbian saya telah diperluas untuk mencakup semua 32GB kartu micro-SD.

Namun, bahkan dengan sistem file saya yang diperluas, saya sudah menggunakan 15% dari kartu 32GB saya.

Jika Anda menggunakan kartu 8GB, Anda mungkin menggunakan hampir 50% dari ruang yang tersedia, jadi satu hal sederhana yang harus dilakukan adalah menghapus mesin LibreOffice dan Wolfram untuk membebaskan sebagian ruang pada Pi Anda:

$ sudo apt-get purge wolfram-engine
$ sudo apt-get purge libreoffice*
$ sudo apt-get clean
$ sudo apt-get autoremove

Kok uninstall libreoffice? ,cara ini supaya memperlega kapasitas SD-Card anda,tapi jika kalian tidak mau menghapus libreoffice kalian bisa lewati step ini.

Langkah # 2: Instal Package

Ini bukan pertama kalinya saya membahas cara menginstal OpenCV pada Raspberry Pi, jadi saya akan menyimpan instruksi ini secara singkat, memungkinkan Anda untuk bekerja melalui proses instalasi: Saya juga sudah memasukkan jumlah waktu diperlukan untuk menjalankan setiap perintah (beberapa tergantung pada kecepatan Internet Anda) sehingga Anda dapat merencanakan instalasi OpenCV + Raspberry Pi 3 Anda yang sesuai (OpenCV sendiri membutuhkan waktu sekitar 4 jam untuk mengkompilasi - lebih lanjut tentang ini nanti).

Langkah pertama adalah memperbarui dan meningkatkan paket apa pun yang ada:

$ sudo apt-get update
$ sudo apt-get upgrade

kemudian perlu menginstal beberapa alat pengembang, termasuk CMake, yang membantu kami mengonfigurasi proses pembuatan OpenCV:

$ sudo apt-get install build-essential cmake pkg-config

Selanjutnya, kita perlu menginstal beberapa paket I / O gambar yang memungkinkan kita memuat berbagai format file gambar dari disk. Contoh format file tersebut termasuk JPEG, PNG, TIFF, dll

$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev

kita membutuhkan paket I / O gambar, kita juga membutuhkan paket I / O video. Pustaka ini memungkinkan kami membaca berbagai format file video dari disk serta bekerja langsung dengan stream video:

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev

OpenCV dilengkapi dengan sub-modul bernama highgui yang digunakan untuk menampilkan gambar ke layar kita dan membangun GUI dasar. Untuk mengkompilasi modul highgui, kita perlu menginstal pustaka pengembangan GTK:

$ sudo apt-get install libgtk2.0-dev libgtk-3-dev

Banyak operasi di dalam OpenCV (yaitu operasi matriks) dapat dioptimalkan lebih lanjut dengan menginstal beberapa dependensi tambahan:

$ sudo apt-get install libatlas-base-dev gfortran

Pengoptimalan ini sangat penting untuk perangkat sumber daya terbatas seperti Raspberry Pi.

Terakhir, mari kita instal file header Python 2.7 dan Python 3 agar kita dapat mengkompilasi OpenCV dengan binding Python:

$ sudo apt-get install python2.7-dev python3-dev

Jika Anda bekerja dengan instalasi OS yang baru, ada kemungkinan bahwa versi Python ini sudah ada di versi terbaru (Anda akan melihat pesan terminal yang menyatakan ini).

Jika Anda melewati langkah ini, Anda mungkin melihat kesalahan terkait dengan file header Python.h tidak ditemukan saat menjalankan make untuk mengkompilasi OpenCV.

Langkah # 3: Unduh OpenCV

Sekarang kita memiliki dependensi yang diinstal, mari kita ambil arsip 3.3.0 OpenCV dari repositori resmi OpenCV. Versi ini termasuk modul dnn yang telah kita bahas dalam posting sebelumnya di mana kami melakukan Deep Learning dengan OpenCV (Catatan: Saat versi openCV dirilis, Anda dapat mengganti 3.3.0 dengan nomor versi terbaru):

$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip
$ unzip opencv.zip

Jika sudah, selanjutnya kita membutuhkan contrib :

$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip
$ unzip opencv_contrib.zip

Pastikan versi opencv dan opencv_contrib Anda sama (dalam hal ini, 3.3.0). Jika nomor versi tidak cocok, maka kemungkinan Anda akan mengalami kesalahan waktu kompilasi atau runtime.

Langkah # 4: Python 2.7 atau Python 3 atau Keduanya?

Sebelum kita dapat mulai mengkompilasi OpenCV pada Raspberry Pi 3 kita, pertama-tama kita perlu menginstal pip, manajer paket Python:

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ sudo python3 get-pip.py

Setelah itu kita mulai proses penginstallan di virtualenv dan virtualenvwrapper.
Jadi, mengingat itu, apa gunanya menggunakan virtualenv dan virtualenvwrapper?

Pertama, penting untuk memahami bahwa lingkungan virtual adalah alat khusus yang digunakan untuk menjaga dependensi yang dibutuhkan oleh berbagai proyek di tempat yang berbeda dengan menciptakan lingkungan Python yang terisolasi dan independen untuk masing-masingnya.

Singkatnya, ini memecahkan "Proyek X tergantung pada versi 1.x, tetapi Proyek Y membutuhkan dilema 4.x". Itu juga membuat paket situs global Anda rapi, rapi, dan bebas dari kekacauan.

Jika Anda ingin penjelasan lengkap tentang mengapa lingkungan virtual Python adalah praktik yang baik, benar-benar memberikan posting blog yang sangat baik di RealPython ini sebagai bacaan.

Merupakan praktik standar di komunitas Python untuk menggunakan lingkungan virtual semacam itu, jadi saya sangat menyarankan Anda melakukan hal yang sama:

$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/.cache/pip

Setelah itu jalankan satu-satu command dibawah ini:

$ export WORKON_HOME=$HOME/.virtualenvs
$ export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
$ source /usr/local/bin/virtualenvwrapper.sh
$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile
$ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile
$ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile
$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile
$ source ~/.profile 

Selanjutnya kita akan membuat virtualenv dengan nama sesuka kalian :

$ mkvirtualenv cv -p python2
# //CV ganti dengan nama sesuka kalian
python2 : untuk membuat env khusus python2 jadi jikalau kalian ingin menggunakan python3 maka angka 2 ganti jadi 3.
Setelah itu coba kalian masuk ke virtualenv kalian dengan command :

$ source ~/.profile
$ workon cv

Langkah # 5: Instal OpenCV

Kami sekarang siap untuk mengkompilasi dan menginstal OpenCV! Periksa kembali apakah Anda berada di lingkungan virtual cv dengan memeriksa prompt Anda (Anda akan melihat teks (cv) sebelumnya), dan jika tidak, cukup jalankan workon:
Pastikan kalian tetap didalam virtualenv
$ cd ~/opencv-3.3.0/
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \
    -D BUILD_EXAMPLES=ON ..

 
Tunggu beberapa saat dan pastikan hasil sesuai dengan yang dibawah :
Selanjutnya inilah proses yang melelahkan,karena kita harus menunggu "Make" dari opencv tersebut.

$ make -j

Tunggu hingga 100% ,selanjutnya lakukan step berikut ini :

$ sudo make install
$ sudo ldconfig

Langkah # 6: Selesai menginstal OpenCV pada Pi Anda

Kami hampir selesai - hanya beberapa langkah lagi dan Anda akan siap untuk menggunakan Raspberry Pi 3 Anda dengan OpenCV 3 pada Peregangan Raspbian.






Perhatikan jika tadi kalian memilih python 2 atau 3 ikuti salah satu langkah dibawah ini

Untuk Python 2.7:

$ ls -l /usr/local/lib/python2.7/site-packages/
total 1852
-rw-r--r-- 1 root staff 1895772 Mar 20 20:00 cv2.so

$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so


Untuk Python 3:

$ ls -l /usr/local/lib/python3.5/site-packages/
total 1852
-rw-r--r-- 1 root staff 1895932 Mar 20 21:51 cv2.cpython-34m.so
$ cd /usr/local/lib/python3.5/site-packages/
$ sudo mv cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so

$ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
$ ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so


Step #7: Testing OpenCV

$ source ~/.profile
$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'3.3.0'
>>>

Jika hasilnya seperti diatas ,selamat openCV anda sudah terinstall di raspberry kalian.

Sekian ,semoga bermanfaat.

Cara Install OpenCV di Segala Jenis Raspberry


Sebelum menginstall openCV pastikan raspberry kalian sudah memenuhi syarat:

*Sudah Teristall OS (Raspbian OS)
*Koneksi internet yang stabil dan kencang

Menginstall opencv Untuk Semua Jenis Raspberry

Jika kamu pernah dipasang opencv pada sebuah raspberry pi ( atau apapun platform lain sebelum ) , kau tahu bahwa proses dapat cukup memakan waktu lama dengan banyak pre-requisites dependensi dan yang harus dipasang .Tujuan dari tutorial ini adalah untuk dengan demikian memimpin kamu bertahap melalui menyusun dan proses instalasi .Dalam rangka untuk membuat pemasangan proses pergi lebih lancar , aku sudah memasukkan timings untuk setiap langkah jadi anda tahu kapan untuk mengambil jeda , ambil secangkir kopi , dan untuk memeriksa diri pada email sementara pi mengkompilasi opencv .Biarkan pergi ke depan dan mendapatkan mulai memasang opencv 3 pada raspberry anda pi 3 berjalan raspbian meregangkan .

Langkah # 1: Memperluas FileSystem

Hal pertama yang anda harus lakukan adalah memperluas sistem berkas anda untuk memasukkan semua tersedia pada micro-sd anda:

sudo raspi-config
Setelah itu akan muncul Advanced Option ,dan ikuti cara dibawah ini:

Anda harus memilih opsi pertama, “A1. Perluas Sistem File ", tekan Enter pada keyboard Anda, panah ke bawah ke tombol" <Finish> ", dan kemudian reboot Pi Anda.

Setelah reboot, sistem file Anda seharusnya diperluas untuk memasukkan semua ruang yang tersedia pada kartu micro-SD Anda. Anda dapat memverifikasi bahwa disk telah diperluas dengan mengeksekusi df -h dan memeriksa output:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        30G  4.2G   24G  15% /
devtmpfs        434M     0  434M   0% /dev
tmpfs           438M     0  438M   0% /dev/shm
tmpfs           438M   12M  427M   3% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           438M     0  438M   0% /sys/fs/cgroup
/dev/mmcblk0p1   42M   21M   21M  51% /boot
tmpfs            88M     0   88M   0% /run/user/1000

Seperti yang Anda lihat, sistem file Raspbian saya telah diperluas untuk mencakup semua 32GB kartu micro-SD.

Namun, bahkan dengan sistem file saya yang diperluas, saya sudah menggunakan 15% dari kartu 32GB saya.

Jika Anda menggunakan kartu 8GB, Anda mungkin menggunakan hampir 50% dari ruang yang tersedia, jadi satu hal sederhana yang harus dilakukan adalah menghapus mesin LibreOffice dan Wolfram untuk membebaskan sebagian ruang pada Pi Anda:

$ sudo apt-get purge wolfram-engine
$ sudo apt-get purge libreoffice*
$ sudo apt-get clean
$ sudo apt-get autoremove

Kok uninstall libreoffice? ,cara ini supaya memperlega kapasitas SD-Card anda,tapi jika kalian tidak mau menghapus libreoffice kalian bisa lewati step ini.

Langkah # 2: Instal Package

Ini bukan pertama kalinya saya membahas cara menginstal OpenCV pada Raspberry Pi, jadi saya akan menyimpan instruksi ini secara singkat, memungkinkan Anda untuk bekerja melalui proses instalasi: Saya juga sudah memasukkan jumlah waktu diperlukan untuk menjalankan setiap perintah (beberapa tergantung pada kecepatan Internet Anda) sehingga Anda dapat merencanakan instalasi OpenCV + Raspberry Pi 3 Anda yang sesuai (OpenCV sendiri membutuhkan waktu sekitar 4 jam untuk mengkompilasi - lebih lanjut tentang ini nanti).

Langkah pertama adalah memperbarui dan meningkatkan paket apa pun yang ada:

$ sudo apt-get update
$ sudo apt-get upgrade

kemudian perlu menginstal beberapa alat pengembang, termasuk CMake, yang membantu kami mengonfigurasi proses pembuatan OpenCV:

$ sudo apt-get install build-essential cmake pkg-config

Selanjutnya, kita perlu menginstal beberapa paket I / O gambar yang memungkinkan kita memuat berbagai format file gambar dari disk. Contoh format file tersebut termasuk JPEG, PNG, TIFF, dll

$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev

kita membutuhkan paket I / O gambar, kita juga membutuhkan paket I / O video. Pustaka ini memungkinkan kami membaca berbagai format file video dari disk serta bekerja langsung dengan stream video:

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev

OpenCV dilengkapi dengan sub-modul bernama highgui yang digunakan untuk menampilkan gambar ke layar kita dan membangun GUI dasar. Untuk mengkompilasi modul highgui, kita perlu menginstal pustaka pengembangan GTK:

$ sudo apt-get install libgtk2.0-dev libgtk-3-dev

Banyak operasi di dalam OpenCV (yaitu operasi matriks) dapat dioptimalkan lebih lanjut dengan menginstal beberapa dependensi tambahan:

$ sudo apt-get install libatlas-base-dev gfortran

Pengoptimalan ini sangat penting untuk perangkat sumber daya terbatas seperti Raspberry Pi.

Terakhir, mari kita instal file header Python 2.7 dan Python 3 agar kita dapat mengkompilasi OpenCV dengan binding Python:

$ sudo apt-get install python2.7-dev python3-dev

Jika Anda bekerja dengan instalasi OS yang baru, ada kemungkinan bahwa versi Python ini sudah ada di versi terbaru (Anda akan melihat pesan terminal yang menyatakan ini).

Jika Anda melewati langkah ini, Anda mungkin melihat kesalahan terkait dengan file header Python.h tidak ditemukan saat menjalankan make untuk mengkompilasi OpenCV.

Langkah # 3: Unduh OpenCV

Sekarang kita memiliki dependensi yang diinstal, mari kita ambil arsip 3.3.0 OpenCV dari repositori resmi OpenCV. Versi ini termasuk modul dnn yang telah kita bahas dalam posting sebelumnya di mana kami melakukan Deep Learning dengan OpenCV (Catatan: Saat versi openCV dirilis, Anda dapat mengganti 3.3.0 dengan nomor versi terbaru):

$ cd ~
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip
$ unzip opencv.zip

Jika sudah, selanjutnya kita membutuhkan contrib :

$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip
$ unzip opencv_contrib.zip

Pastikan versi opencv dan opencv_contrib Anda sama (dalam hal ini, 3.3.0). Jika nomor versi tidak cocok, maka kemungkinan Anda akan mengalami kesalahan waktu kompilasi atau runtime.

Langkah # 4: Python 2.7 atau Python 3 atau Keduanya?

Sebelum kita dapat mulai mengkompilasi OpenCV pada Raspberry Pi 3 kita, pertama-tama kita perlu menginstal pip, manajer paket Python:

$ wget https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
$ sudo python3 get-pip.py

Setelah itu kita mulai proses penginstallan di virtualenv dan virtualenvwrapper.
Jadi, mengingat itu, apa gunanya menggunakan virtualenv dan virtualenvwrapper?

Pertama, penting untuk memahami bahwa lingkungan virtual adalah alat khusus yang digunakan untuk menjaga dependensi yang dibutuhkan oleh berbagai proyek di tempat yang berbeda dengan menciptakan lingkungan Python yang terisolasi dan independen untuk masing-masingnya.

Singkatnya, ini memecahkan "Proyek X tergantung pada versi 1.x, tetapi Proyek Y membutuhkan dilema 4.x". Itu juga membuat paket situs global Anda rapi, rapi, dan bebas dari kekacauan.

Jika Anda ingin penjelasan lengkap tentang mengapa lingkungan virtual Python adalah praktik yang baik, benar-benar memberikan posting blog yang sangat baik di RealPython ini sebagai bacaan.

Merupakan praktik standar di komunitas Python untuk menggunakan lingkungan virtual semacam itu, jadi saya sangat menyarankan Anda melakukan hal yang sama:

$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/.cache/pip

Setelah itu jalankan satu-satu command dibawah ini:

$ export WORKON_HOME=$HOME/.virtualenvs
$ export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
$ source /usr/local/bin/virtualenvwrapper.sh
$ echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.profile
$ echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.profile
$ echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.profile
$ echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.profile
$ source ~/.profile 

Selanjutnya kita akan membuat virtualenv dengan nama sesuka kalian :

$ mkvirtualenv cv -p python2
# //CV ganti dengan nama sesuka kalian
python2 : untuk membuat env khusus python2 jadi jikalau kalian ingin menggunakan python3 maka angka 2 ganti jadi 3.
Setelah itu coba kalian masuk ke virtualenv kalian dengan command :

$ source ~/.profile
$ workon cv

Langkah # 5: Instal OpenCV

Kami sekarang siap untuk mengkompilasi dan menginstal OpenCV! Periksa kembali apakah Anda berada di lingkungan virtual cv dengan memeriksa prompt Anda (Anda akan melihat teks (cv) sebelumnya), dan jika tidak, cukup jalankan workon:
Pastikan kalian tetap didalam virtualenv
$ cd ~/opencv-3.3.0/
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \
    -D BUILD_EXAMPLES=ON ..

 
Tunggu beberapa saat dan pastikan hasil sesuai dengan yang dibawah :
Selanjutnya inilah proses yang melelahkan,karena kita harus menunggu "Make" dari opencv tersebut.

$ make -j

Tunggu hingga 100% ,selanjutnya lakukan step berikut ini :

$ sudo make install
$ sudo ldconfig

Langkah # 6: Selesai menginstal OpenCV pada Pi Anda

Kami hampir selesai - hanya beberapa langkah lagi dan Anda akan siap untuk menggunakan Raspberry Pi 3 Anda dengan OpenCV 3 pada Peregangan Raspbian.






Perhatikan jika tadi kalian memilih python 2 atau 3 ikuti salah satu langkah dibawah ini

Untuk Python 2.7:

$ ls -l /usr/local/lib/python2.7/site-packages/
total 1852
-rw-r--r-- 1 root staff 1895772 Mar 20 20:00 cv2.so

$ cd ~/.virtualenvs/cv/lib/python2.7/site-packages/
$ ln -s /usr/local/lib/python2.7/site-packages/cv2.so cv2.so


Untuk Python 3:

$ ls -l /usr/local/lib/python3.5/site-packages/
total 1852
-rw-r--r-- 1 root staff 1895932 Mar 20 21:51 cv2.cpython-34m.so
$ cd /usr/local/lib/python3.5/site-packages/
$ sudo mv cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so

$ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
$ ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so


Step #7: Testing OpenCV

$ source ~/.profile
$ workon cv
$ python
>>> import cv2
>>> cv2.__version__
'3.3.0'
>>>

Jika hasilnya seperti diatas ,selamat openCV anda sudah terinstall di raspberry kalian.

Sekian ,semoga bermanfaat.

Load Comments

Subscribe Our Newsletter

Notifications

Disqus Logo