Showing posts with label Mahasiswa. Show all posts
Showing posts with label Mahasiswa. Show all posts

Thursday, December 2, 2021

OpenStack AIO Single Node CentOS 8 With Zun Services (Victoria)

 


    OpenStack merupakan platform yang mengontrol dan memanajemen sumber daya komputasi, penyimpanan dan jaringan pada datacenter dengan berbasis cloud yang dikelola dan di sediakan dengan menggunakan layanan API dan mekanisme otentikasi. Dalam mengelolanya, OpenStack memberikan layanan dashboard yang memberikan kemampuan untuk mengontrol dan menyediakan sumber daya kepada pengguna berbasis website. Selain menyediakan layanan berupa infrastruktur, OpenStack memiliki komponen tambahan berupa layanan orkestrasi dan manajemen kesalahan untuk memastikan ketersediaan yang tinggi bagi aplikasi penggunanya. (OpenStack, 2020).

    Zun merupakan sebuah service yang menyediakan API OpenStack untuk meluncurkan dan mengelola kontainer yang didukung oleh teknologi kontainer yang berbeda. Berbeda dari Magnum, Zun adalah untuk pengguna yang ingin memperlakukan kontainer sebagai sumber daya yang dikelola OpenStack. Kontainer yang dikelola oleh Zun seharusnya terintegrasi dengan baik dengan sumber daya OpenStack lainnya, seperti jaringan Neutron dan volume Cinder. Pengguna disediakan API yang disederhanakan untuk mengelola kontainer tanpa perlu mengeksplorasi kompleksitas teknologi kontainer yang berbeda.
Komponen Openstack (Openstack Document).

Pada artikel ini saya akan memberikan guide dari installasi AIO Single Node yang sebelumnya sudah pernah saya implementasikan untuk tugas akhir saya. berikut adalah langkah-langkahnya:


Preparation

Pastikan Tekoneksi Internet dan install dependensi yang di perlukan

$ ping -c3 google.com

$ sudo dnf install nano

$ sudo dnf install python3-devel libffi-devel gcc openssl-devel python3-libselinux

Install dependencies

$ sudo dnf install epel-release

$ sudo dnf install python3-pip

$ sudo pip3 install -U pip

$ sudo dnf install ansible

Install Kolla

$ sudo pip3 install kolla-ansible --ignore-installed PyYAML

$ sudo mkdir -p /etc/kolla

$ sudo chown $USER:$USER /etc/kolla

$ cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

$ cp /usr/local/share/kolla-ansible/ansible/inventory/* .

Tuning ansible

$ sudo nano /etc/ansible/ansible.cfg

[defaults] host_key_checking=False pipelining=True forks=100

$ sudo nano /etc/hosts

127.0.0.1 localhost ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

{{ ip-server1 }} server1

Check ping to server

$ ansible -i all-in-one all -m ping

Generate password untuk setiap service openstack

$ kolla-genpwd #otomatis generate ke file /etc/kolla/passwords.yml

Edit deployment configuration

$ nano /etc/kolla/globals.yml ....

kolla_base_distro: "centos"
kolla_install_type: "source"
network_interface: "eth0"		#interface management
neutron_external_interface: "eth1"	#interface external
kolla_internal_vip_address: "10.33.102.245"	# IP di subnet int management yang tidak terpakai
nova_compute_virt_type: "qemu"
enable_zun: "yes"
enable_kuryr: "yes"
enable_etcd: "yes"
docker_configure_for_zun: "yes"
containerd_configure_for_zun: "yes"

....

Run kolla-ansible

$ kolla-ansible -i ./all-in-one bootstrap-servers $ kolla-ansible -i ./all-in-one prechecks $ kolla-ansible -i ./all-in-one deploy

Using Openstack

$ kolla-ansible post-deploy $ . /etc/kolla/admin-openrc.sh

$ sudo pip3 install python-openstackclient

$ sudo pip3 install python-zunclient

Check openstack cli commmand

$ openstack hypervisor list $ openstack endpoint list $ openstack service list

Screen

$ screen -R deploy

for detach:

$ ctrl+a lalu tekan d

back to session

$ screen-r deploy



Wednesday, June 9, 2021

Installation OpenStack CentOS 8 Kolla-ansible


Cloud Computing
Seiring perkembangan zaman, Teknologi Virtualisasi kini merambah semakin mendekati penggunanya secara langsung. Dari hanya terbatas pada virtualisasi sekala local hingga saat ini ke arah cloud computing. Dengan adanya cloud computing mempermudah deployment suatu server secara virtual, Cloud Computing terbagi menjadi tiga bagian, yaitu:
  • Public Cloud
  • Private Cloud
  • Hybrid Cloud
Public Cloud: Layanan Computasi yang dapat di akses secara Public (GCP, AWS, Azure, Alibaba, Dll.)
Private Cloud: Layanan Computasi yang hanya diakses secara Private (Openstack, Dll.)
Hybrid Cloud: Layanan Computasi yang menggabungkan 2 layanan dari Private dan Public

Tutorial Berikut ini menggunakan OS CentOS8 dan Openstack Victoria
Req Minimal For Stable:
CPU : 4 Core
RAM : 16 GB
HDD :  200GB

 Preparation

$ ping -c3 google.com#pastikan internet berjalan

$ sudo dnf install python3-devel libffi-devel gcc openssl-devel python3-libselinux

Install dependencies

$ sudo dnf install epel-release

$ sudo dnf install python3-pip

$ sudo pip3 install -U pip

$ sudo dnf install ansible

Install Kolla

$ sudo pip3 install kolla-ansible --ignore-installed PyYAML

$ sudo mkdir -p /etc/kolla

$ sudo chown $USER:$USER /etc/kolla

$ cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

$ cp /usr/local/share/kolla-ansible/ansible/inventory/* .

Tuning ansible

$ sudo mkdir -p /etc/ansible

$ sudo nano /etc/ansible/ansible.cfg

[defaults] host_key_checking=False pipelining=True forks=100

$ sudo nano /etc/hosts

127.0.0.1 localhost ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

{{ ip-server1 }} server1

Check ping to server

$ ansible -i all-in-one all -m ping

Generate password untuk setiap service openstack

$ kolla-genpwd #otomatis generate ke file /etc/kolla/passwords.yml

Edit deployment configuration

$ nano /etc/kolla/globals.yml

....

kolla_base_distro: "centos"

kolla_install_type: "source"

network_interface: "eth0" #interface management

neutron_external_interface: "eth1" #interface external

kolla_internal_vip_address: "10.33.102.245" # IP di subnet int management yang tidak terpakai

nova_compute_virt_type: "qemu"

....

Run kolla-ansible

$ kolla-ansible -i ./all-in-one bootstrap-servers 

$ kolla-ansible -i ./all-in-one prechecks 

$ kolla-ansible -i ./all-in-one deploy

Using Openstack

$ kolla-ansible post-deploy $ . /etc/kolla/admin-openrc.sh

$ sudo pip3 install python-openstackclient

Check openstack cli commmand

$ openstack hypervisor list 

$ openstack endpoint list 

$ openstack service list

Screen

$ screen -R deploy

for detach:

$ ctrl+a lalu tekan d

back to session

$ screen-r deploy

Tuesday, June 2, 2020

Soal dan Jawaban Metodologi Penelitian

Berikut ini adalah contoh Soal disertai dengan jawaban yang sesuai dengan prodi Teknologi Informasi
Soal :
1.
a. Apa yang dimaksud dengan Metodologi Penelitian dan Metode Penelitian ?  
b. Apa yang dimaksud dengan penelitian kualitatif dan penelitian kuantitatif ? 
c. Sebutkan dan jelaskan  perbedaan  antara  Karakteristik Penelitian  Kuantitatif  dan  Karakteristik Penelitian Kualitatif !

2.
a. Sebutkan fungsi identifikasi masalah dalam suatu penelitian !  
b. Berilah 2 contoh identifikasi masalah sesuai prodi anda !   ( bobot 10 )
c. Sebutkan 4 karakteristik yang dapat digunakan sebagai pedoman dalam merumuskan masalah ! 
d. Berilah 2 contoh rumusan masalah sesuai dengan prodi anda !  

3.
a. Sebutkan kriteria sumber pustaka bagaimana yang baik untuk dipilih sebagai bahan literature review dalam suatu penelitian !
b. Secara garis besar ada 2 jenis desain penelitian, sebutkan ! dan beri penjelasan perbedaan dari kedua jenis tersebut ! 
c. Desain penelitian apa sajakah yang termasuk desain penelitian deskriptif ? Jelaskan !

Jawaban:
1. a) Metodologi adalah ilmu-ilmu/cara untuk mendapatkan kebenaran melalui tata cara penelusuran tertentu dalam menemukan kebenaran, tergantung dari realitas yang dikaji. Metodologi tersusun dari cara-cara yang terstruktur untuk memperoleh ilmu. Metode penelitian atau desain penelitian merupakan bagian dari metodologi. Metodologi penelitian bisa digunakan ke berbagai macam riset desain. Ada beberapa macam desain penelitian yang bisa kita pilah sesuai dengan penelitian yang ingin kita lakukan, antara lain metode correlational, metode, causal comperative, metode experimental, metode ethnographic yang biasanya diguna-kan dalam bidang sosial, metode historica research, metode survey dan ada juga action research dimana penelitian ini para penelitinya terlibat langsung di dalamnya, penelitian ini biasanya digunakan dalam penelitian bidang sosial. b) Penelitian kualitatif adalah penelitian yang bersifat deskriptif dan cenderung menggunakan analisis. Proses dan makna (perspektif subjek) lebih ditonjolkan dalam penelitian kualitatif. Landasan teori dimanfaatkan sebagai pemandu agar fokus penelitian sesuai dengan fakta di lapangan. Selain itu landasan teori ini juga bermanfaat untuk memberikan gambaran umum tentang latar penelitian dan sebagai bahan pembahasan hasil penelitian. c) Perbedaan penelitian kuantitatif dengan kualitatif menurut wallen 1993 adalah :
Kuantitatif :
• Menekankan hipotesis jadi yang dirumuskan sebelumnya.
• Menekankan definisi operasional yang dirumuskan sebelumnya.
• Data diubah menjadi skor numerik.
• Menekankan pengukuran dan penyempurnaan keajegan skor yang diperoleh dari instrumen.
• Pengukuran validitas melalui rangkaian perhitungan statistik.
• Menekankan teknik acak untuk mendapatkan sampel representatif.
• Menekankan prosedur penelitian yang baku.
• Menekankan desain untuk pengontrolan variabel ekstranus.
• Menekankan desain pengontrolan khusus untuk menjaga bias dalam prosedur penelitian.
• Menekankan rangkuman statistik dalam hasil penelitian
• Menekankan penguraian fenomena kompleks mwnjadi bagian-bagian yang lebih kecil
• Menekankan manipulasi aspek, situasi, kondisi dalam mengkaji fenomena yang kompleks.
Kualitatif:
• Menekankan hipotesis yang berkembang dalam pelaksanaan penelitian.
• Menekankan definisi dalam konteks.
• Menekankan deskriptif naratif.
• Menekankan pada asumsi bahwa keajegan inferensi cukup kuat
• Penguuran validitas melalui cek silang dari sumber informasi.
• Menekankan informan ekspert untuk mendapatkan sampel purposif.
• Menekankan prosedur penelitian deskriptif naratif.
• Menekankan analisis logis dalaam pengontrolan variabel ekstranus.
• Menekankan kejujuran peneliti dalam pengontrolan prosedur bias.
• Menekankan rangkuman naratif dalam hasil penelitian.
• Menekankan deskripsi holistik dari fenomena-fenomena yang kompleks.
• Menekankan sifat alamiah dari fenomena-fenomena yang terjadi.

2. a) Adapun fungsi identifikasi masalah sebagai berikut • Sebagai pertanyaan untuk menuju pada pembuktian hipotesis • Memperjelas arahan penelitian berdasarkan latar belakang • Membatasi arah penelitian • Mempermudah langkah dan sistematika penelitian

b) 1. Apakah pengoptimalan menggunakan container dapat memaksimalkan resource yang ada?
  2. Seberapa efektifkah clustering container dapat memanagement seluruh container yang ada dengan menggunakan docker swarm sebagari orkrestratornya?.
   3. Apa pengaruhnya pengimplementasian dari container yang di orkrestrasi dengan menggunakan docker swarm pada cloud computing?

c) Dalam merumuskan masalah 4 karakteristik yang dapat di gunakan sebagai pedoman adalah: • Dibuat dengan kalimat tanya • Dibuat dengan kalimat yang singkat, padat dan jelas • Harus memiliki sebuah petunjuk untuk mempermudah pengumpulan data yang sesuai dengan rumusan masalah • Mengarahkan dalam sudut pandang terhadap suatu permasalahan yang di bahas

d) 1. Bagaimana cara mengoptimalisasi terhadap traffic data yang ada pada cloud?
     2. Bagaimana cara agar container dapat di otomatisasi?


3.
a) Kriteria dari pemilihan sumber pustaka mencakup:
 1) Ketetapan (adequa-cy)
Isi dari sumber pustaka sesuai dengan penelitian yang dilaksanakan.
2) Kejelasan (clarity)
Sumber pustaka harus mudah dipahami atau dimengerti oleh peneliti.
3) Empiris (empericalness)
Sumber pustaka itu berdasarkan pada kenyataan bukan hasil imajinasi.
4) Terorganisasi (Organization)
Isi dari sumber pustaka harus terorganisasi dengan baik sehingga memudahkan peneliti untuk mencari informasi.
5) Kemutakhiran (Recen-cy)
Sumber pustaka harus berdasarkan perkembangan terbaru dalam bidangnya (up to date). 6) Relevansi (relevance)
Sumber pustaka berhubungan dengan penelitian.
7) Meyakinkan (convic-ingness)
Sumber pustaka dapat menjadi acuan yang terpercaya bagi peneliti.
b) Dalam desain penelitian terdapat 2 desain yaitu desan kuantitatif dan kualitatif
Dengan karekteristiknya:
Kuantitatif :
Desain :
• Spesifik, rinci, dan jelas
• Ditentukan sejak awal
• Menjadi pedoman selanjutnya
Tujuan :
• Menguji teori
Teknik Pengumpulan Data :
• Kuesioner
• Observasi dan wawancara terstruktur
Data :
• Kuantitaif
Instrument:
• Test
• Angket
• wawancara
Kualitatif :
Desain :
• Umum
• Felsibel
• Berkembang selama berproses
Tujuan :
• Menemukan teori
Teknik Pengumpulan Data :
• Participant observation
• In dept interview
• Dokumentasi
• Triangulasi
Data :
• Deskriptif/kualitatif
Instrument:
• Peneliti sebagai Instrument
c) Yang termasuk kedalam penelitian deskriptif adalah
Survey Research,
Riset Experimental,
Historal experimental,
Ethnographic Research, dan quasi experimental,


Pengukuran Kualitas Link Dan Konfigurasi Dasar Pada Wireless Mikrotik Lab 2


Dasar Teori:
Kualitas Sinyal
1. Excellent: -57 sampai -10 dBm (75-100%)
2. Good: -75 sampai -58 dBm (40-74%)
3. Fair: -85 sampai -76 dBm (20-39%)
4. Poor: -95 sampai 86 dBm (0-19%)

Kualitas Throughput( Signal To Noise Ratio)
1. > 40dB SNR = Excellent signal; (5 Bar), throughput maksimal
2. 25dB - 40dB SNR = Very Good (3-4 Bar), throughput maksimal
3. 15 dB - 25 dB SNR = Low Signal (2 Bar), throughput tidak maksimal
4. 10 dB -15 dB SNR = Very Low Signal (1 Bar), throughput rendah
5. 5 dB - 10 dB SNR = No Signal

Pada percobaan yang duilakukan pada Lab 1 (Postingan Berikut ini) untuk mengecek kualitas sinyal dari wireless yang digunakan, didapati bahwa kualitasnya adalah Excellent dikarenakan memiliki nilai -24 sampai dengan -37 dBm. Sedangkan kualitas Throughputnya Excelent Signal karena WiFi memiliki 5 Bar, selain itu nilai dari SNR adalah 70 dB.

Sedangkan untuk percobaan dengan membatasi Data Rates pada AP Bridge, didapati bahwa
Saat Data Rates  tidak dibatasi:

Setelah Data Rates dibatasi dengan  18Mbps

Saat Data Rates dibatasi dengan 11 Mbps:

Pada hal ini dapat disimpulkan bahwa semakin besar Data Rates yang dibatasi oleh AP Bridge maka Bandwitdh yang diterima akan semakin mengecil.

Untuk Selanjutnya Mari Kita Lanjutkan Pada Lab 2
[LAB-2]
- Lakukanlah koneksi ke AP dengan SSID: “Praktikum Jarkom”
- BAND: 2Ghz / 2.4 Ghz
- Frekuensi: 2427 Mhz
- IP Wlan1: 10.100.100.X
- Gateway: 10.100.100.50
- DNS: 10.100.100.50 dan 10.13.10.13
- Subnetmask: 255.255.255.0
- Ether1: 192.168.X.1
- Ether Port: 192.168.X.2
- X adalah nomor meja.

Berikut ini topologi dan alokasi IP Address

Konfigurasi router wireless agar terkoneksi dengan Gateway dan PC dapat terkoneksi ke gateway (internet) !
Informasi IP: (Gunakan alokasi tiap meja seperti gambar diatas) ; DNS: 10.10.10.50

- Langkah Kerja:
1. Membuat IP seperti pada topologi diatas, yang mengarah pada interface ether2 (port pada mikrotik) dan wlan1. ,  jangan lupa untuk menuliskan subnetmask /24 disamping IP agar alamat network yang mengikuti nantinya benar.



1. Buka menu Wireless lalu klik wlan1, ubah mode perangkat menjadi mode Station lalu lakukan Scan SSID dengan Klik Scan> Klik Start> Pilih SSID  “Praktikum  Jarkom” > Klik Connect

2. Setelah pengaturan pada mode dan SSID  telah berhasil dilakukan klik Apply

3. Memberikan Gateway pada mikrotik dengan cara Pilih Menu IP yang terdapat pada baris kiri kemudin klik tanda +, klik baris pengisian Gateway dan masukkan IP 10.100.100.50 lalu Klik Apply.


4. Setelah itu coba untuk melakukan PING pada IP Ehter2 dan juga Wlan1, hal ini untuk memastikan bahwa pengaturan yang kita buat telah berhasil.


5. Melakukan pengaturan IP pada komputer Client dengan IP sesuai dengan  gambar topologi.


6. Mengatur DNS pada mikrotik dengan 10.13.10.13, Buka IP  >  DNS


7. Mengatur NAT dengan cara Pilih menu IP yang berada pada baris kiri, lalu Pilih Firewall > Klik NAT > Klik scrnat. Pada bagian Action atur dalam mode masquerade. Pada bagian Advance ubah Out Interface menjadi wlan1




8. Pada mikrotik uji coba lakukan PING ke arah Gateway

9. Uji coba koneksi wireless dengan melakukan PING ke google, Gateway dan juga alamat ether






Tuesday, April 30, 2019

Rangkuman Latar Belakang Pendidikan Kewarganegaraan,


Latar belakang PKN
1.Secara etimologis, pendidikan kewarganegaraan berasal dari kata “pendidikan” dan kata kewarganegaraan”. Pendidikan berarti usaha sadar dan terencana untuk mewujudkan suasana belajar dan proses pembelajaran agar peserta didik secara aktif mengembangkan potensi dirinya, sedangkan kewarganegaraan adalah segala hal ihwal yang berhubungan dengan warga negara.
2. Secara yuridis, pendidikan kewarganegaraan dimaksudkan untuk membentuk peserta didik menjadi manusia yang memiliki rasa kebangsaan dan cinta tanah air.
3. Secara terminologis, pendidikan kewarganegaraan adalah program pendidikan yang berintikan demokrasi politik, diperluas dengan sumber-sumber pengetahuan lainnya: pengaruh-pengaruh positif dari pendidikan sekolah, masyarakat, dan orang tua. Kesemuanya itu
Memahami tentang Indonesia, memiliki kepribadian Indonesia, memiliki rasa kebangsaan Indonesia, dan mencintai tanah air Indonesia. Dengan demikian, ia menjadi warga negara yang baik dan terdidik (smart and good citizen) dalam kehidupan masyarakat, bangsa, dan negara yang demokratis.
diproses guna melatih para siswa untuk berpikir kritis, analitis,
bersikap dan bertindak demokratis dalam mempersiapkan hidup
demokratis berdasarkan Pancasila dan UUD 1945
4. Negara perlu menyelenggarakan pendidikan kewarganegaraan karena setiap generasi adalah orang baru yang harus mendapat pengetahuan, sikap/nilai dan keterampilan agar mampu mengembangkan warga negara yang memiliki watak atau karakter yang baik dan cerdas (smart and good citizen) untuk hidup dalam kehidupan bermasyarakat, berbangsa dan bernegara sesuai dengan demokrasi konstitusional.
5. Secara historis, PKn di Indonesia awalnya diselenggarakan oleh organisasi pergerakan yang bertujuan untuk membangun rasa kebangsaaan dan cita-cita Indonesia merdeka. Secara sosiologis, PKn Indonesia dilakukan pada tataran sosial kultural oleh para pemimpin di masyarakat yang mengajak untuk mencintai tanah air dan bangsa Indonesia. Secara politis, PKn Indonesia lahir karena tuntutan konstitusi atau UUD 1945 dan sejumlah kebijakan Pemerintah yang berkuasa sesuai dengan masanya.
6. Pendidikan Kewarganegaraan senantiasa menghadapi dinamika perubahan dalam sistem ketatanegaraan dan pemerintahan serta tantangan kehidupan berbangsa dan bernegara.

7. PKn Indonesia untuk masa depan sangat ditentukan oleh pandangan bangsa Indonesia, eksistensi konstitusi negara, dan tuntutan dinamika perkembangan bangsa

Semangat perjuangan
Semangat perjuangan terdiri atas fisik dan non fisik. Semangat perjuangan bangsa yang merupakan kekuatan mental spiritual telah melahirkan kekuatan yang luar biasa dalam masa perjuangan fisik.Semangat perjuangan secara fisik dapat dilihat dari rakyat Indonesia yang solid dan tidak mengenal perbedaan. Hal ini dibuktikan sejak sebelum zaman penjajahan, pada masa mencapai kemerdekaan, dan sampai saat ini.  Dalam kaitannya dengan semangat perjuangan bangsa, maka perjuangan non fisik sesuai dengan bidang profesi masing-masing
memerlukan sarana kegiatan pendidikan bagi setiap warga negara Indonesia pada umumnya. Selain itu, bagi mahasiswa semangat perjuangan secara non fisik yaitu melalui Pendidikan Kewarganegaraan (PKn).

Era globalisasi
Globalisasi ditandai oleh kuatnya pengaruh lembaga–lembaga kemasyarakatan internasional, negara–negara maju yang ikut mengatur percaturan politik, ekonomi, sosial budaya, serta pertahanan dan keamanan global. Disamping itu, isu global yang meliputi demokratisasi, hak asasi manusia, dan lingkungan hidup turut pula mempengaruhi keadaan nasional. Globalisasi juga ditandai oleh pesatnya perkembangan ilmu pengetahuan dan teknologi, khususnya dibidang informasi, komunikasi, dan transportasi. Hingga membuat dunia menjadi transparan seolah–olah tanpa mengenal batas negara. Sedangkan dalam era globalisasi dan masa yang akan datang kita memerlukan perjuangan non fisik sesuai dengan bidang profesi masing–masing. Perjuangan non fisik ini memerlukan sarana kegiatan pendidikan bagi setiap warga Negara Indonesia pada umumnya dan mahasiswa sebagai calon cendikiawan pada khususnya, yaitu melalui Pendidikan Kewarganegaraan. UU No. 20 Tahun 2003 Kep. Dirjen Dikti No. 267/Dikti/2000, tujuan Pendidikan Kewarganegaraan mencakup:
Tujuan Umum
Untuk memberikan pengetahuan dan kemampuan dasar kepada mahasiswa mengenai hubungan antara warga negara dengan negara serta PPBN agar menjadi warga negara yang diandalkan oleh bangsa dan negara.
Tujuan Khusus:
Agar mahasiswa dapat memahami dan melaksanakan hak dan kewajiban secara santun, jujur, dan demokratis serta ikhlas sebagawai WNI terdidik dan bertanggung jawab. Agar mahasiswa menguasai dan memahami berbagai masalah dasar dalam kehidupan bermasyarakat, berbangsa dan bernegara, serta dapat mengatasinya dengan pemikiran kritis dan bertanggung jawab yang berlandaskan Pancasila, Wawasan Nusantara, dan Ketahanan Nasional Agar mahasiswa memiliki sikap dan perilaku yang sesuai dengan nilai-nilai kejuangan, cinta tanah air, serta rela berkorban bagi nusa dan bangsa.

Sunday, February 17, 2019

Konsep Basis Data NORMALISASI DAN DENORMALISASI



NORMALISASI
Secara umum konsep normalisasi adalah memecah ke dalam beberapa “bentuk normal”
Tujuan :
1) menghilangkan karakteristik tertentu yang tidak diinginkan pada rancangan basisdata
Data Redudancy
Update Anomaly, kesulitan dalam operasi update, insert, dan delete karna struktur basis data.
2) Memudahkan pengelolaan data
3) Menyediakan rancangan yang baik
Bentuk Normal 1 : menghilangkan semua nilai ganda (multivalued) atribut, sehingga hanya ada satu nilai                  dalam satu baris-kolom
Bentuk Normal 2  : menghilangkan partial functional dependencies
Bentuk Normal 3 : menghilangkan trasitive dependencies

IOT Analitik Big Data Untuk Smart Home Dengan Fog Dan Cloud Computing

ABSTRAK
Internet of Things (IoT) analytics adalah sarana penting untuk menurunkan pengetahuan dan mendukung aplikasi untuk smart home. Perangkat dan perangkat yang terhubung di dalam smart home menghasilkan jumlah yang signifikan data tentang konsumen dan bagaimana mereka melakukan kegiatan sehari-hari mereka. Analitik IoT dapat membantu dalam personalisasi aplikasi yang bermanfaat bagi pemilik rumah dan industri yang terus bertumbuh yang perlu disentuh profil konsumen. Artikel ini menyajikan platform baru yang memungkinkan analisis inovatif pada IoT ditangkap data dari smart home. Kami mengusulkan penggunaan node fog dan sistem cloud untuk memungkinkan layanan data-driven dan mengatasi tantangan kompleksitas dan kebutuhan sumber daya untuk pemrosesan data online dan offline,

penyimpanan, dan analisis klasifikasi. Kami membahas dalam makalah ini persyaratan dan komponen desain dari sistem. Untuk memvalidasi platform dan menyajikan hasil yang berarti, kami menyajikan studi kasus menggunakan dataset yang diperoleh dari smart home asli di Vancouver, Kanada. Hasil eksperimen menunjukkan dengan jelas manfaat dan kepraktisan platform yang diusulkan.

PENGANTAR
Smart Home adalah tema kehidupan masa depan. Banyak komunitas di seluruh dunia saat ini menyebarkan Smart Home sebagai bagian dari inisiatif modernisasi. Rumah-rumah ini selalu aktif sejumlah besar data berharga dari perangkat pintar dan peralatan yang terhubung ke sistem IoT [1]. Kemampuan untuk menganalisis data ini mendekati real-time dan off-line memungkinkan untuk penemuan berbagai informasi yang memiliki dampak signifikan terhadap masyarakat kita keselamatan, kesehatan, dan ekonomi. Misalnya, kesehatan kota yang cerdas sistem perawatan dapat menentukan status pasien di dalam Smart Home dengan memantau penggunaan peralatan dan mendeteksi mereka
kegiatan rutin atau tidak normal yang dapat menunjukkan tanda-tanda kesehatan masalah. . Perusahaan utilitas dapat menganalisis sejumlah besar data konsumsi energi dari peralatan di dalam rumah untuk belajar tentang perilaku penghuni dan merekomendasikan tagihan listrik

Rencana pengurangan untuk konsumen berdasarkan profil penggunaan energi . Skenario seperti itu menyebabkan pengurangan biaya tidak hanya untuk konsumen tetapi juga juga untuk perusahaan utilitas. Aplikasi IoT real-time memungkinkan pembuatan untuk menganalisis data secara terus menerus dan menentukan atau memprediksi suatu jadwal perawatan alat atau segera ganti kerusakan peralatan. Contoh-contoh aplikasi IoT ini mengungkapkan kelebihannya menganalisis data smart home. Sementara data-data tersebut bermanfaat peluang dalam memahami dinamika dan perilaku smart home dan penghuninya, juga merinci yang luar biasa tantangan terkait manajemen data, penyimpanan, dan analitik. Untuk memastikan bahwa pengguna tidak tenggelam dalam banjir data, mereka butuhkan sistem yang mampu mengelola, menganalisis dan mengubah ini jumlah data menjadi wawasan yang dapat ditindaklanjuti untuk aplikasi kota pintar yang menuntut tindakan cepat dengan persyaratan yang ketat. Ini sistem juga harus memenuhi kebutuhan skalabilitas dengan pertumbuhan volume data dan granularitas temporal pengambilan keputusan, apakah itu off-line atau mendekati real-time.

Untuk evaluasi sistem yang diusulkan, kami menyajikan sebuah kasus studi menganalisis dan memproses aliran data dari smart home. Smart home menghasilkan aliran besar yang terus menerus data dalam interval waktu yang singkat. Memproses dan menganalisis seperti itu data sangat penting untuk banyak aplikasi (mis., sistem perawatan kesehatan, pintar aplikasi manajemen energi grid dll). Kontribusi utama dibuat dalam makalah ini adalah sebagai berikut:
Mengusulkan platform untuk IoT analytics data smart home cerdas dengan cloud dan cloud computing. 
Menyediakan persyaratan detail dan analisis komponen desain arsitektur platform.
Menyajikan studi kasus dari smart home yang sebenarnya. Kami menganalisis data IoT smart home untuk perilaku dan prediksi analisis penghuni yang berkaitan dengan konsumsi energy rutinitas dan pola.

PEKERJAAN YANG BERHUBUNGAN
Baru-baru ini, beberapa penelitian telah mengusulkan sistem dan kerangka kerja untuk analisis data IoT menggunakan berbagai arsitektur yang terlibat fog dan cloud computing. Di bagian ini, kita membahas studi ini terutama mereka yang mewakili negara-of-the-art dan dekat dengan pekerjaan kami.
Banyak peneliti menangani masalah yang terkait erat dengan pekerjaan kami . Misalnya pekerjaan di , berfokus pada analisis prediktif untuk smart home yang membutuhkan akses ke data historis yang harus disimpan dalam database besar itu hanya dapat disediakan oleh sistem cloud. Pekerjaan  diselidiki layanan smart home untuk analisis mendalam tentang rumah alat penggunaan pola yang sering. Secara khusus, penemuan coutilization perilaku peralatan di dalam smart home. Untuk ini Tujuan penulis mengajukan penambangan pola multidimensional kerangka kerja dari sejumlah besar pengguna perumahan yang terhubung Penyedia Layanan Internet (ISP). Para penulis dalam  mengembangkan sebuah sistem gerbang baru untuk secara otomatis mengintegrasikan dan mengkonfigurasi baru perangkat IoT berbasis rumah untuk analisis tanpa batas di sistem cloud. Kerangka kerja SLASH dalam menyajikan pendekatan baru untuk pintar adaptivitas rumah dan mekanisme belajar mandiri. Ide itu termasuk pengembangan lapisan data besar  dengan mesin analitik yang mendukung perilaku penghuni. Pekerjaan dalam mengusulkan suatu sistem otomatisasi rumah end-to-end yang mendukung banyak IoT protokol untuk akuisisi dan analisis data. Para penulis mengklaim itu sistem mereka mampu menangani data yang berasal dari seluruh kota perangkat yang digunakan. Mirip dengan pekerjaan di , kota pintar umum Paradigma diusulkan dalam untuk sistem analisis big data IoT itu mengintegrasikan sensor dari smart home, lalu lintas, kendaraan, pengawasan sensor, dll. menggunakan lingkungan ekosistem nyata Hadoop.

PERSYARATAN PLATFORM
Desain platform inovatif yang cocok untuk mendukung sejumlah besar data yang dihasilkan dari smart home memiliki kekhasan persyaratan, fungsi, dan struktur desain. 
Distribusi Sumber Daya: Memproses sejumlah besar data yang dihasilkan dari peralatan rumah tangga dan perangkat membutuhkan biaya yang efektif dan sumber daya analisis data besar yang efisien lebih dekat sistem fisik.
Scalable Analytics: Aliran data dari smart home hadir prospek yang menantang untuk operasi pengolahan dan penambangan. Aliran data ini diterima di sistem dalam volume tinggi, kecepatan tinggi dan dari berbagai sumber.
Kinerja: Aliran data IoT harus ditangani secara parallel cara untuk meningkatkan kinerja analitik data dan untuk mengoptimalkan operasi smart home.
Integrasi: Pada setiap saat instan, data dikumpulkan dari perangkat yang berbeda di dalam smart home tidak terstruktur dan tidak dapat diproses menggunakan alat konvensional
Visualisasi : Persyaratan utama lain untuk menangani data IoT skala besar dari smart home, adalah relevansi data melalui visualisasi.

Untuk memenuhi persyaratan di atas, dalam tulisan ini kami menyajikan sebuah IoT platform analitik data besar untuk memproses dan menganalisis besar volume aliran data smart home. Ayat selanjutnya menjelaskan platform yang diusulkan.

KOMPONEN DESAIN PLATFORM

Gambar diatas menunjukkan arsitektur dari platform yang diusulkan. Terdiri dari IoT analitik data besar dengan node dan cloud komputasi fog sistem. Komponen platform mendukung operasi yang kompleks integrasi berkesinambungan, pemrosesan dan analitik multiple data smart home. Node fog memperluas layanan cloud sistem ke tepi jaringan dekat dengan lokasi fisik smart home, sehingga memungkinkan pemrosesan data lebih cepat dan aplikasi layanan yang hanya dapat dilayani dalam waktu tertentu. Sistem cloud mengambil proses pengangkatan yang berat aplikasi intensif komputasi.
Analitik operasi termasuk penyaringan dan pembersihan, pengelompokan dan agregasi di mana setiap operasi membutuhkan waktu lama tergantung pada sifat data. Berikut ini adalah detail dari platform tersebut,
Komponen Smart home: Smart home terdiri dari sensor, perangkat, peralatan dan sistem meteran. Komponen-komponennya dari smart home secara kasar dikategorikan ke dalam tiga tingkatan yaitu cyber-fisik, konektivitas, dan kontekstual.
Layanan Manajemen dan Integrasi IoT: Manajemen IoT layanan adalah subsistem berbasis broker yang bertanggung jawab untuk menangani permintaan layanan IoT dari banyak smart home aplikasi ke dalam sistem cloud
Fog Computing Nodes: Node fog menyediakan sumber daya tambahan dan layanan komputasi untuk mendukung berbagai pintar aplikasi yang peka waktu di rumah.
Cloud System: Di platform yang diusulkan, sistem cloud adalah bertanggung jawab untuk menyediakan layanan inti ke aplikasi smart home itu termasuk analisis data historis, penyimpanan diperpanjang kemampuan, dan infrastruktur manajemen smart home inti.

STUDI KASUS

Dalam studi kasus ini, kami melakukan analisis data IoT peralatan dan perangkat dari smart home di Vancouver, British Columbia, Kanada. Data ini tersedia untuk umum dari Harvard Education situs web. Dataset ini terdiri dari pengukuran interval satu menit beberapa peralatan smart home selama rentang dua tahun, April 2012 – April 2014. Kami melakukan analisis data Streaming IOT untuk mengungkap perilaku penghuni penggunaan alat seperti mengidentifikasi pola yang sering dikaitkan dengan peralatan termasuk jam hari, hari dalam seminggu, dan bulan tahun sebagai sarana memahami bagaimana penghuni menjalani rutinitas sehari-hari mereka. Untuk node fog di mana mesin analitis bertanggung jawab melakukan analisis langsung untuk memenuhi persyaratan aplikasi semacam itu sebagai manajemen konsumsi energi, iklan bertarget, aktivitas pengakuan. Idealnya, untuk studi kasus khusus ini dapat skalabel sumber daya komputasi diperlukan untuk meningkatkan kinerja dengan tambahan akuisisi data. Tes kami dilakukan pada node tunggal yang terdiri dari sistem komputer yang menjalankan CPU core i5 dengan 8GB RAM dan 1 TB perangkat penyimpanan. Pengolahan utama sumber daya dialokasikan ke bagian analisis tempat kami memproses 2- tahun data. Waktu berjalan saat ini memakan waktu beberapa menit dapat ditingkatkan dengan lebih banyak sumber daya komputasi, bagaimanapun, itu menunjukkan bahwa satu node fog mampu memproses lebih dari satu smart home. 

Pembersihan dan Persiapan Data: Kumpulan data berisi jutaan catatan (contoh data mentah ditunjukkan Tabel 1) dengan a sejumlah besar data tentang peralatan. Data tentang peralatan adalah dikumpulkan setiap menit selama dua tahun (April 2012– April 2014). Pengukuran data ini termasuk: stempel waktu unix, tegangan listrik, tegangan, daya semu. Proses pembersihan data dimulai dengan mengimpor file data dalam skrip Python. Itu proses pembersihan termasuk menghilangkan kolom yang tidak perlu, konversikan Stempel waktu Unix ke tanggal yang dapat dibaca manusia, hapus nilai yang ada di bawah ambang batas daya siaga, menghapus pencilan dan duplikat baris. Seluruh proses pembersihan selesai menggunakan Python dengan ekspresi reguler (RegEx).
Frequent Pattern Mining: Untuk penambangan pola yang sering, kami adalah tertarik menganalisis kejadian ketika peralatan tertentu sedang digunakan dengan memeriksa keadaan ‘‘ AKTIF / MATI ’dan energi konsumsi. Berada dalam keadaan Aktif memungkinkan untuk kesimpulan bahwa a manusia saat ini menggunakan alat tertentu. Informasi ini dapat bermanfaat dalam aplikasi tertentu, dan sebagai hasilnya, data dan pola yang ditambang memiliki nilai untuk industri. Misalnya, oleh mengetahui kapan seorang individu cenderung memiliki televisi berubah pada dapat membantu perusahaan menargetkan iklan. Kami ingin Dapatkan pola-pola ini dalam hubungan-hubungan yang bernilai tersendiri . Secara khusus, kami mempelajari pola penggunaan alat dari seluruh rumah dan mencari untuk mengungkap asosiasi dari domain waktu. Secara formal, biarkan A menjadi a database yang terdiri dari n itemsets T1 sedemikian rupa sehingga A = (T1, T2,..., Tn). Sebuah itemset dianggap sebagai pola yang sering jika muncul dengan frekuensi tertentu dalam transaksi basis data. Pengguna dapat menentukan level threshold dari penghitungan frekuensi dari suatu itemset dalam suatu transaksi. Salah satu metode untuk menentukan frekuensi hitungan dikenal sebagai hitungan dukungan yang didefinisikan sebagai perhitungan statistik frekuensi suatu itemset dalam suatu transaksi dibawa melalui database A. Sebagai contoh, dua itemsets I (I ⊆ A) dan J (J ⊆ A) dihitung sebagai pola yang sering dalam suatu transaksi jika mereka dukungan sI dan sJ berada di atas nilai ambang batas yang dikenal sebagai minimum mendukung mntup. Dalam kasus menemukan pola yang sering, maka aturan asosiasi ditentukan. Aturan asosiasi dinyatakan sebagai {I ⇒ J} dan berasal dari dukungan - kepercayaan, di mana dukung sI⇒J sedemikian rupa sehingga s (I ⇒ J) = sI⇒J = s (I ∪ J) adalah persentase dari semua transaksi yang memiliki (I ∪ J) di A. Dukungan mewakili prakondisi bersama dari asosiasi ini dalam database sementara keyakinan adalah prasyarat yang berkontribusi pada konsekuensinya. Dalam pengertian ini, frekuensi itemset dalam suatu transaksi menunjukkan signifikansi statistik dari aturan asosiasi (artinya probabilitas P (I, J)), ditentukan oleh kepercayaan (I∪J) | | s (I) | (berarti probabilitas bersyarat P (I | J)) [46,38]. Kami sering menggunakannya algoritma pola FP-Pertumbuhan [46,38] dan perluasannya [5] dalam hal ini dataset smart home. Prosedur (1) menunjukkan langkah-langkah menangkap pola-pola yang sering dari dataset. Buah ara. 4, 5, dan 6 pertunjukan pola konsumsi energi enam peralatan di rumah terdiri dari jam sehari, hari minggu, bulan tahun. Kami mendaftar ambang batas dukungan minimum 30% pada dataset dan berbalik semua nilai yang berada di bawah ambang ke 0 dan semua yang di atas hingga 1. Ini memungkinkan kita untuk mendapatkan matriks biner untuk memeriksa apa peralatan digunakan pada waktu tertentu seperti yang ditunjukkan pada Tabel 2.

Hasil akhir dari penambangan pola sering adalah asosiasi antara peralatan yang merupakan hasil dari penggunaan simultan dari alat oleh penghuni. Gambar 7 menunjukkan contoh penggunaan per jam dan penggunaan perangkat per hari dalam seminggu. Dari Gambar 7-a itu terlihat dua peralatan yang paling banyak digunakan adalah mesin pencuci piring dantelevisi antara jam 6 sore - 10: 30 sore. Untuk ketiganya peralatan (mesin pencuci piring, pengering, dan televisi) pada saat yang sama, waktu yang paling mungkin hari ini akan terjadi antara 8–8: 30 sore. Hari-hari dalam seminggu di Fig. 7-b menunjukkan hal itu sangat sering mesin pencuci piring dan televisi sering bersama di waktu yang sama. Memeriksa setiap hari secara individual, Anda dapat melihat tertentu pola seperti Senin dan Selasa malam mesin pencuci piring dan televisi berada dalam waktu paling lama atau hari Sabtu televisi dan mesin pencuci piring ada di malam hari.
Penambangan Gugus: Analisis pola yang sering dijumpai di atas wawasan tentang bagaimana penghuni smart home memanfaatkan bersama peralatan mereka. Analisis pengelompokan memungkinkan kami menginterpretasikan waktu terkait dengan kelompok peralatan. Ini agak penting untuk mengungkap perilaku lebih dalam konsumsi energi alat waktu spesifik (misalnya jam sibuk). Untuk mencapai tujuan ini, kami mengimplementasikan algoritma pengelompokan k-mean di [38]. Dasar prinsip algoritma k-mean adalah bahwa ia mendefinisikan pusat k yang ditempatkan di posisi tertentu dari satu sama lain. Kemudian, fungsi G (z) = Σk i = 1 ΣCij = 1 (∥ai - bj∥) 2 digunakan untuk menentukan nilai kesalahan kuadrat, di mana ai - bj adalah jarak Euclidean antara a dan b, Ci mewakili jumlah titik data di dalamnya gugus. Menentukan jumlah k yang optimal sangat penting untuk didapatkan hasil yang lebih baik. Ada banyak metode untuk menentukan yang ideal angka k seperti yang dijelaskan dalam [47]. Pendekatan dalam pekerjaan ini menggunakan Koefisien siluet sebagai alat penghitungan yang optimal angka k [48]. Metode ini pada dasarnya mengukur kualitas klaster dengan mengevaluasi seberapa baik titik data diposisikan dalam sebuah cluster. Ini menghitung jarak rata-rata yj yang diberikan sebagai xj = rata-rata {dis (yj, yi)} ke semua titik data lainnya di cluster Ci dan  kemudian tentukan wj = min (wj) di semua kluster kecuali Ci. Koefisien Silhouette untuk yj ditentukan sebagai ryj = (wj − xj) max (xj, wj) dan Koefisien Silhouette untuk cluster Ci dan untuk memiliki k cluster sebagai rCi = rata-rata (syj) untuk j = d1..dn dan rk = rata-rata (sCi) untuk i = 1..k masing-masing. Semakin tinggi nilai siluet rata-rata, semakin baik pengelompokan. Dengan kata lain, Silhouette rata-rata menyediakan observasi tentang berbagai nilai k ∈ 1, 2, 3. . .m, di mana m mewakili objek unik dalam kumpulan data. Untuk mencari tahu jumlah cluster optimal, proses ini terus dijalankan dan koefisien Silhouette rata-rata dihitung sampai menemukan jumlah cluster optimal yang memaksimalkan rk. Gambar 8 menunjukkan pengelompokan peralatan pada jam hari, di mana kekuatan klaster menandakan frekuensi penggunaan alat, yaitu, kekuatan yang lebih tinggi dari gugus untuk alat menunjukkan penggunaan lebih tinggi selama periode tersebut. Penggunaan lebih tinggi atau lebih rendah alat, yaitu, pola penggunaan alat bisa langsung perwakilan perilaku konsumsi energi penghuni. Seperti itu analisis dapat dilakukan pada berbagai tingkatan seperti individu rumah, kelompok rumah, komunitas atau lingkungan, atau di tingkat sistem. Ketika dilakukan pada tingkat yang lebih tinggi seperti lingkungan atau tingkat sistem, hasilnya dapat membantu profil rumah sesuai untuk perilaku konsumsi energi dan menyesuaikan respons permintaan mekanisme menjadi lebih efisien. Selanjutnya, di satu rumah, hasil dapat membantu menyesuaikan rekomendasi untuk mengurangi rumah tangga biaya energi sambil menghormati penghuni mengharapkan kenyamanan. Selain itu, layak untuk mempertimbangkan pembangkit energi terbarukan di tingkat lingkungan atau rumah untuk menyempurnakan respons permintaan program atau rekomendasi pengurangan energi.

KESIMPULAN DAN PEKERJAAN DI MASA DEPAN
Dalam tulisan ini, kami menyajikan platform untuk IoT smart home big data analytics dengan fog dan cloud computing. Kami berikan analisis kebutuhan detail dan ilustrasi komponen platform. Proses melakukan analisis di node fog disajikan, dan hasilnya menunjukkan kemungkinan penerapan sistem dalam berbagai aspek. Misalnya, aplikasi dari data yang diperoleh dapat mencakup pengakuan aktivitas untuk mengidentifikasi kesehatan masalah, identifikasi pola konsumsi energi dan penghematan energi perencanaan, dan memprediksi jadwal perawatan alat untuk dihindari perbaikan mahal dan memastikan operasi yang efisien dari titik pandangan konsumsi energi.
Secara umum, platform dapat membantu keputusan yang efektif dan tepat waktu pembuatan untuk pemilik rumah individu dengan memfasilitasi berbagai program manajemen energi di tingkat rumah. Energi rumah tangga manajemen konsumsi dan analitik data adalah operasi yang kompleks yang membutuhkan integrasi berkesinambungan dari berbagai sumber ke dalam sistem pemrosesan umum dengan akses mudah ke data. Lain aplikasi yang mungkin dapat diperpanjang untuk melayani perusahaan yang tertarik dengan iklan tertarget.
Untuk pekerjaan di masa depan, kami berencana untuk mengembangkan mekanisme pengoptimalan seperti yang ada di [49,50] untuk menentukan distribusi optimal dan konfigurasi fog saat mempertimbangkan sumber daya komputasi dan kemampuan memproses yang dibutuhkan data dari beberapa rumah. Selanjutnya, kami berencana untuk memperbaiki komponen platform dan uji dengan dataset yang berbeda dari berbagai rumah. Pendekatan ini sangat penting untuk memvalidasi penerapan dari platform dan kekuatannya dalam menangani semua jenis data IoT pengukuran. Kami juga berencana untuk mempelajari skema benchmarking menilai dan menangkap kinerja platform dan analitik di bawah berbagai masalah termasuk runtime, utilisasi CPU, data ukuran, permintaan masuk, dll.


Saturday, February 16, 2019

Mysql-PHP-PHPmyadmin-Apache dengan Docker Compose


Docker compose adalah sebuah tool dari docker untuk mempermudah dalam developing aplikasi dan menjalankan aplikasi secara complex. Dengan Compose kamu dapat menjalankan multi container aplikasi dalan satu file. Dan hanya menggunakan satu perintah untuk menjalankan semua aplikasi yang akan kamu develop. Dengan menggunakan YAML file untuk konfigurasi semua servis dari aplikasi. Compose bekerja di dalam semua enviroment ya itu : production, Staging, development, testting  serta pada CI workflows.

Setelah kita berkenalan sekilas dengan Docker compose kali ini kita akan membuild sebuah aplikasi yang menggunakan service dari apache sebagai web server, PHP untuk bahsa nya, phpmyadmin untuk management database dan yang terakhir dari database yaitu mysql.

Sebelum beranjak ke praktik, diharapkan kalian telah memahami cara menggunakan tools dari compose itu sendiri. dan sebenarnya apabila kalian telah memahami dan ingin langsung scriptnya, maka dapat kalian cari di Github saya.

Pertama buatlah direktori dan penempatan file sesuai dengan pemetaan berikut ini :

path:
|_ ./apache/
| |__ Dockerfile
| |________ demo.apache.conf
|_ ./php/
| |___ Dockerfile
|_ ./public_html/
| |___ index.html
|_ ./docker-compose.yml

Setelah kita membuat direktori lalu buatlah file file yang di perlukan seperti Dockerfile dan konfigurasi yang lainnya.
Selanjutnya mari kita buat Docker file pada direktori apache ./apache/Dockerfile : 
FROM httpd:2.4.33-alpine
RUN apk update; \
    apk upgrade;
# Copy apache vhost file to proxy php requests to php-fpm container
COPY demo.apache.conf /usr/local/apache2/conf/demo.apache.conf
RUN echo "Include /usr/local/apache2/conf/demo.apache.conf" \
    >> /usr/local/apache2/conf/httpd.conf

Setelah kita membuat Docker file pada direktori apache (./apache/Dockerfile) maka kita buat juga configurasi untuk apache nya (./apache/demo.apache.conf)
ServerName localhost

LoadModule deflate_module /usr/local/apache2/modules/mod_deflate.so
LoadModule proxy_module /usr/local/apache2/modules/mod_proxy.so
LoadModule proxy_fcgi_module /usr/local/apache2/modules/mod_proxy_fcgi.so

<VirtualHost *:80>
    # Proxy .php requests to port 9000 of the php-fpm container
    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://php:9000/var/www/html/$1
    DocumentRoot /var/www/html/
    <Directory /var/www/html/>
        DirectoryIndex index.php
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    # Send apache logs to stdout and stderr
    CustomLog /proc/self/fd/1 common
    ErrorLog /proc/self/fd/2 
</VirtualHost>
Lanjut ke tahap selanjutnya  pada direktori php kita buat docker file nya (./php/Dockerfile):
FROM php:7.2.7-fpm-alpine3.7
RUN apk update; \
    apk upgrade;
RUN docker-php-ext-install mysqli


Lanjut ke tahap selanjutnya  kali ini pada direktori html_public berfungsi sebagai direktori penghubung antara host ke container. dan kali ini file index ini selain berfungsi sebagai penanda bahwa apache sudah berjalan tetapi juga berfungsi sebagai mekanisme pengecekan terhadap koneksi ke database
<h1>Hello MAHBUBI!</h1>
<h4>Attempting MySQL connection from php...</h4>
<?php
$host = '172.24.0.3:3306';
$user = 'root';
$pass = 'rootpassword';
$conn = new mysqli($host, $user, $pass);

if ($conn->connect_error){die("Connection failed: " . $conn->connect_error);}
echo "Connected to MySQL successfully!"; 
?>
Setelah semua proses telah tecapai maka saat nya kita membuat inti dari Compose ya itu configurasi Compose tersebut ya itu docker-compose.yml (./docker-compose.yml)
version: "3.2"
services:
  php:
    build: './php/'
    volumes:
      - ./public_html/:/var/www/html/
  web:
    build: './apache/'
    depends_on:
      - php
      - db
    ports:
      - "8181:80"
    volumes:
      - ./public_html/:/var/www/html/
  db:
    image: mysql:5.7
    user: "root"
    restart: always
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=rootpassword
      - MYSQL_DATABASE=dbvote

  myadmin:
    image: phpmyadmin/phpmyadmin
    ports:
        - "8282:80"
    links:
      - db:db
    restart: always
    environment:
      - MYSQL_USERNAME=root
      - MYSQL_ROOT_PASSWORD=rootpassword
    depends_on:
       - db

Setelah docker-compose.yml telah kita buat maka saatnya kita jalankan perintah docker-compose up -d agar dapat memulai semua service dan konfigurasi yang telah kita buat di belakang sehingga kita tidak perlu membuka terminal lagi.

Demikianlah Tutorial untuk menjalankan, membuat dengan menggunakan tool dari docker ya itu Compose. apabila ada script yang tidak bisa bisa kalian copy dari Github saya.
sekian dari saya terimakasih telah membaca.

Berkenalan Dengan Docker Compose


Docker compose adalah sebuah tool dari docker untuk mempermudah dalam developing aplikasi dan menjalankan aplikasi secara complex. Dengan Compose kamu dapat menjalankan multi container aplikasi dalan satu file. Dan hanya menggunakan satu perintah untuk menjalankan semua aplikasi yang akan kamu develop. Dengan menggunakan YAML file untuk konfigurasi semua servis dari aplikasi. Compose bekerja di dalam semua enviroment ya itu : production, Staging, development, testting  serta pada CI workflows.
Pada penggunaan Compose secara basic memiliki 3 tahapan proses ya itu :
1. mendefinisikian enviroment dari aplikasi ke dalam “Dockerfile”, dengan begitu  kamu dapat membuatya di mana saja.
2. mendefinisikan service apa saja yang akan di gunakan oleh aplikasimu ke dalam “docker-compose.yml” dengan begitu, akan membuat semua servis tersebut berjalan di dalam isolasi enviroment.
3. menjalankan dengan perintah “docker-compose up” dengan begitu compose akan memulai dan menjalankan aplikasimu.
Contoh dari docker-compose.yml seperti berikut ini:
version: '3'
services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - ./dir:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  ./dir: {}
Contoh sederhana tersebut menjelaskan bahwa pada compose versi 3 dengan service web menggunakan port internal 5000 dan port external container sama dengan internalnya ya itu 5000
Lalu pada bagian volume merupakan layaknya path untuk menyimpan sebuah file yang secara otomatis akan tercopy pada container tersebut.

Monday, September 17, 2018

Hirarki Direktori Linux


Telah kita ketahui bahwa pada sistem operasi linux menggunakan penamaan file system foldernya dengan nama direktori yang tersusun kedalam susunan tunggal. Struktur direktori Linux mengikuti standart “Filesystem Hierarchy Structure (FHS)” yang di pegang oleh Free Standart Group walaupun kebanyakan distribusi memodifikasi standart tersebut. susunan direktori di linux terdiri dari :

/ (root)
Struktur direktori di Linux secara umum diawali dengan root filesystem “/” dan tentu juga merupakan root atau akar dari seluruh direktori global. Partisi dimana di letakkan / (root system) akan menjadi direktori sistem atau partisi pokok.
/boot
Direktori boot tesimpan file-file boot loader diantaranya grub atau lilo. Kernel, initrd dan system.map juga terletak didalam /boot. Jika system yang digunakan menggunakan partisi LVM ataupun partisi dalam jaringan. Maka ada baiknya dibuatkan partisi kecil tersendiri untuk meletakkan /boot di harddisk dengan filesystem konvensional. /boot ini umumnya sangat jarang sekali berubah isinya, kecuali memang kita sering bermain-main dengan kernel.
/sys
Berisi informasi yang berkaitan dengan kernel, device dan firmware. Untuk memudahkan mengingat, direktori ini dianggap kependekan dari 'system'.
/sbin
Berisi file-file biner yang esensinya untuk sistem dan mengendalikan sistem. File-file biner atau bisa dianggap aplikasi sistem ini jika dioperasikan secara tidak tepat bisa berpotensi merusak. Untuk memudahkan mengingat, direktori ini dianggap kependekan dari 'super binary'.
/bin
Berisi file-file binari atau aplikasi yang lebih umum dan dapat digunakan oleh semua user. Untuk memudahkan mengingat, direktori ini dianggap kependekan dari 'binary'.
/lib
Berisi file-file library atau pustaka dari semua aplikasi binari yang tersimpan dalam direktori /sbin dan /bin. Di direktori ini juga tersimpan berbagai macam librari yang digunakan untuk aplikasi lain. Konsep penggunaan librari bersama ini membuat aplikasi di linux dapat menghemat ukuran. Untuk memudahkan mengingat, direktori ini dianggap kependekan dari 'library'
/dev
Merupakan pseudo filesystem, atau directory yang isinya sebenarnya bukan benar-benar berisi file. Isi dari /dev ini berkaitan dengan perangkat-perangkat yang terdapat pada system. Misalkan untuk informasi port serial, port printer, dapat di berlakukan seperti membaca file. Misalkan perangkat serial terletak di /dev/tty01, kemudian partisi dalam harddisk di sebut sebagai /dev/sda7. dan lain sebagainya. Untuk memudahkan mengingat, direktori ini dianggap kependekan dari 'device'.
/etc
Direktori /etc berisi file-file konfigurasi sistem. Mayoritas aplikasi dan layanan konfigurasinya tersimpan di direktori /etc termasuk diantaranya /etc/hosts, /etc/resolv.conf dan lain sebagainya. Di direktori /etc/init.d tersimpan konfigurasi bagaimana sebuah layanan dijalankan. Di direktori /etc/rc*.d tersimpan konfigurasi untuk menentukan service yang dijalankan untuk tiap-tiap sesi init.
/home
Semua direktori home dari pengguna tersimpan di direktori ini dengan nama user masing-masing sebagai pengelompokannya. Untuk beberapa sistem linux yang di spesifikasikan untuk server, direktori pengguna masih dikelompokkan lagi kedalam /home/users. Di dalama direktori /home/nama-user tersimpan konfigurasi-konfigurasi yang spesifik terhadap user tersebut. Oleh karena itu, berbeda user, walaupun berada di sistem yang sama bisa mendapat lingkungan dan tampilan yang sama sekali berbeda. Direktori /home merupakan direktori yang paling 'dekat' dengan user. Direktori /home ini bisa berisi dari dokumen-dokumen pekerjaan user hingga file-file hiburan seperti mp3 dan film juga termasuk foto-foto yang dimiliki oleh user. Oleh karena itu, untuk membatasi agar file-file di pengguna tidak mendesak file-file system, sangat umum untuk meletakkan direktori /home di partisi yang terpisah. Hal ini dapat menahan file-file yang disimpan user hingga total ukuran tertentu tanpa mengganggu ruang gerak system.
/media
Merupakan direktori untuk menyimpan direktori-direktori mount point. CD-ROM, DVD, flash disk, bahkan floppy disk juga akan termount di direktori ini. Pada distro-distro modern, sudah memberikan fasilitas untuk menampilkan device-device yang dimount ke depan Desktop. Sehingga pengguna tidak perlu susah-dan-repot menuju ke /media untuk dapat mengakses flash disk-nya tapi cukup lihat ke desktop-nya dan masuk ke direktori yang teerbuat baru di sana. Untuk workstation yang terintegrasi dengan jaringan, pada umumnya untuk melakukan mounting storage network juga diletakkan di /media. Dengan dikelompokkan seperti itu maka mudah untuk mengenali bahwa semua yang berada di dalam /media merupakan media penyimpan.
/mnt
Pada Linux yang masih umum menggunakan kernel 2.4.x. Untuk tempat mengumpulkan mount point berada di /mnt. Dikarenakan pada sistem berbasis kernel 2.6.x sudah menggunakan /media, maka /mnt ini umumnya kosong. /mnt bisa juga dijadikan mount point pada saat system rescue atau troubleshooting. Untuk memudahkan mengingat, direktori ini dianggap kependekan dari 'mount'.
/opt
Direktori /opt saat ini jarang digunakan. Beberapa paket software terpisah menggunakan direktori ini untuk menyimpan paket yang tidak menuju ke lokasi manapun. Untuk memudahkan mengingat, direktori ini dianggap kependekan dari 'optional'
/usr
Sebuah sub-hirarki dari root filesistem di simpan didalam /usr. Didalam /usr tersimpan aplikasi dan utiliti yang spesifik dengan user. Jika kita melihat kedalam direktori /usr maka kita juga akan menemukan direktori yang mirip dengan di / yaitu bin, sbin dan lib. Hanya saja, aplikasi dan librari yang terletak /usr tidak terlalu kritikal untuk sistem. Untuk istilah mudahnya, /usr merupakan tempat dimana user menginstall aplikasi sendiri yang bukan official dari distro. Misalkan menginstall melalui tar-ball, atau paket yang dibuat sendiri. Jika pengguna termasuk orang yang sering menambah-nambah aplikasi sendiri diluar bawaan paket yang disediakan untuk distro itu, maka direktori /usr sudah dipastikan akan cepat sekali membengkak. Ada baiknya untuk sistem yang penggunanya seperti itu, /usr di berikan partisi sendiri. Untuk aplikasi yang bisa langsung dijalankan, sistem linux akan membaca secara bersamaan yang ada di /bin dan di /usr/bin begitu juga untuk /sbin dan /usr/sbin. Untuk memudahkan mengingat, direktori ini dianggap kependekan dari 'user'.
/usr/share
Merupakan tempat didalam /usr yang digunakan untuk menyimpan data-data yang bisa dibagikan dan tidak terikat dengan platform. Misalnya seperti wallpaper yang bisa dan boleh digunakan oleh semua user akan diletakkan didalam /usr/share. Lalu ada juga fonts, dan sound theme yang berkaitan dengan tampilan.
/usr/doc
Merupakan tempat untuk menyimpan dokumentasi dan catatan yang berkaitan dengan aplikasi. Apabila aplikasi third-party yang digunakan merupakan aplikasi yang dikembangkan dengan baik, maka tentunya juga menyediakan file dokumentasi yang dapat dibaca di dalam /usr/doc.
/usr/src
Merupakan tempat untuk menyimpan source code dari aplikasi sistem. Yang paling umum tersimpan disini adalah source code dari kernel linux. Source code ini sangat bermanfaat untuk melakukan kompilasi ulang atau melakukan optimasi di tingkat kernel dengan dasar kernel sebelumnya.
/usr/include
Di direktori /usr/include tersimpan file-file header dari compiler C. File header ini mendefinisikan struktur dan konstanta yang dibutuhkan untuk membangun sebuah aplikasi yang standart. Direktori didalam /usr/include tersimpan header untuk compiler C++.
/usr/X11R6
Menyimpan sistem X-Window dan hal-hal yang berkaitan dengan X-Window. Subdirectories dibawah /usr/X11R6 tersimpan binari X itu sendiri dan juga dokumentasi, file header, config. icon. sounf, dan sebagainya yang berkaitan dengan grafis.
/usr/local
DI disini tersimpan aplikasi yang terinstall dan file yang yang digunakan di local machine. Jika komputer yang digunakan merupakan bagian dari sebuah jaringan besar, terus direktori /usr lokasi fisiknya terletak di komputer yang berbeda dan di bagikan kedalam jaringan untuk di mount kedalam /usr. Pada jaringan seperti ini, direktori /usr/local akan berisi barang-barang yang hendaknya tidak digunakan di banyak mesin dan hanya di gunakan di local machine saja. Karena kebanyakan komputer tidak memanfaatkan bentuk jaringan seperti yang disebutkan tadi, bukan berarti /usr/local menjadi tidak berguna. Jika kita menemukan aplikasi yang menarik dan secara official tidak tersedia dan bukan bagian dari distro yang digunakan, hendaknya kita menginstallnya kedalam /usr/local. Sebagai contoh, jika aplikasi tambahan yang umum akan tersimpan kedalam /usr/bin, maka aplikasi tambahan yang sifatnya lebih custom hendaknya di simpan di /usr/local/bin. Dengan cara ini maka dapat menghindarkan kebingungan dalam jenis aplikasi yang tersedia dan menjaga sistem tetap bersih dan rapi.
/root
Merupakan direktori home-nya superuser (root). Harap jangan bingung dengan direktori root (/). Walaupun cara menyebutnya sama, tapi sama sekali berfungsi sangat berbeda.
/var
Direktori /var merupakan direktori yang isinya sangat dinamis. Jika digunakan didalam server. Sangat dianjurkan /var ini untuk diletakkan di partisi terpisah dikarenan direktori /var dapat membengkak dengan sangat cepat. Selain itu juga, dengan direktori /var dibuat partisinya sendiri atau secara fisik ditentukan lokasinya, maka dapat mencegah internal fragmentasi, dan proses pencarian file tidak terlalu jauh, hanya seputar cylinder itu-itu saja. Untuk memudahkan mengingat, direktori ini dianggap kependekan dari 'variative'
/var/log
Merupakan direktori untuk menyimpan berbagai macam log atau catatan yang berkaitan dengan sistem. Isi dari /var/log ini terus terupdate selama sistem berjalan. Oleh karena itu, /var/log merupakan alasan dan penyebab utama direktori /var dapat membengkak dengan gila-gilaan. Walaupun di linux sendiri tersendiri tersedia aplikasi logrotate untuk meredam percepatan pembengkakan direktori /var, tapi tetap juga jika tidak disiapkan ruang tersendiri, ukuran log ini dapat menghantam ruang kosong di sistem. Direktori /var/log ini hendaknya menjadi tempat pertama kita lari apabila di sistem terjadi keanehan. System log linux baik kok, keanehan pun akan di tuliskan dengan gamblang kedalam log. Misalkan pada webserver, /var/log/httpd/access.log akan mencatat siapa saja yang mengakses web yang terpasang dan menuju ke mana. Apabila banyak sekali yang mengunjungi web itu, maka file /var/log/httpd/access.log pun akan terupdate dengan kecepatan luar biasa yang susah untuk diikuti oleh pandangan manusia biasa. Misalkan juga /var/log/syslog, disana tersimpan log yang berkaitan dengan system. Misalkan kita colokkan flash disk, maka dengan mengamati /var/log/syslog kita bisa mengetahui apakah sistem bisa mengenali flashdisk itu dan melakukan auto mount, atau memberikan pesan yang lain. Dari /var/log/syslog juga misalnya kita bisa melihat apakan rule crontab yang kita buat berjalan sesuai waktunya atau tidak. Semakin banyak kejadian yang buruk atau yang baik terjadi di system, maka /var/log pun akan semakin membengkak.
/var/mail
Merupakan direktori untuk menyimpan email masuk dan keluar. Direktori /var/mail ini akan sangat terasa fungsinya jika kita membuat mail server menggunakan postfix, sendmail atau qmail. Sebenarnya tanpa menggunakan mailserver itu, kita juga dapat mengirim email, hanya saja terbatas hanya dalam lingkup mesin kita dan user yang terdapat didalamnya. Apabila mesin yang kita gunakan hanya kita sendiri usernya, tentu saja tidak seru, maka perlu dibuatkan mail server yang sesungguhnya agar aktivitas kirim-mengirim email dapat seheboh dengan mail.yahoo.com ataupun mail.ugm.ac.id. Direktori /var/mail merupakan penyebab kedua yang membuat direktori /var dapat membengkak tidak karuan. Aktivitas dan lalulintas saling kirim email yang tinggi, ditambah lagi dengan attachment yang tidak masuk akal ukurannya, menyebabkan /var/mail bertanggung jawab penuh atas membengkaknya /var. Dengan di berikannya direktori /var sebuah partisi tersendiri, maka apabila direktori /var mentok ke total ukuran partisi, 'hanya' menyebabkan mailserver-nya macet. tapi sistem linux itu sendiri masih bisa berjalan dengan nyaman untuk mengatasi 'kekacauan' di /var. Ada juga cara agar direktori /var tidak segera penuh, dengan menerpakan quota di mail server.
/var/spool
Direktori /var/spool merupakan direktori untuk menyimpan file-file yang spooling atau yang sedang mengantri untuk diproses. Yang umum berada didalam /var/spool ini adalah operasi printing. Apabila linux yang dibangun difungsikan sebagai prnter server, atau sharing printer, maka /var/spool ini juga perlu diperhatikan apabila yang menggunakan printer tersebut orangnya sangat banyak.
/var/run
Di direktori ini tersimpan PID (Process ID) dari layanan-layanan yang berjalan. PID yang tercatat didalam /var/run ini nantinya akan digunakan oleh script didalam /etc/init.d/* untuk mengendalikan layanan yang tersedia di linux.
/proc
Direktori /proc juga merupakan pseudo filesystem yang mirip dengan /dev. Bedanya, /proc ini murni hanya berkaitan dengan sistem dan tidak menyangkut pada device. Jika kita melakukan pengecekan ukuran penggunaan space, jangan terkecoh dengan direktori /proc yang tercatat menunjukkan memakan space sangat besar. Segala macam space yang tertulis disitu sama sekali tidak terdapat di dalam media penyimpanan harddisk. Jadi direktori /proc sebenarnya tidak ada sama sekali. Isi dari /proc ini adalah infomasi dari sistem, tetapi jika kita mengubah isi informasi dari beberapa file /proc juga dapat mengubah sifat jalannya sistem. Jangan takut apabila sistem berubah menjadi aneh tatkala kita mengubah isi /proc. Selama pengubahan isi hanya menggunakan echo, maka dengan merestart system, maka isi /proc pun akan langsung kembali ke semula. Misalkan kita ingin melakukan forwarding network, maka informasi pada /proc/sys/net/ipv4/ip_forward yang semula berisi 0 tinggal di ubah menjadi 1. Misalkan kita melihat informasi processor, maka kita dapat melihat dalam /proc/cpuinfo. Tapi jangan harap dengan mengedit /proc/cpuinfo maka kita akan mendapat cpu yang bekerja dengan clock cycle yang lebih menakjubkan.
/tmp
Merupakan file sistem yang menyimpan file-file sementara. Beberapa distro akan otomatis membersihkan isi dari /tmp sewaktu reboot. Direktori /tmp memiliki mode yang sangat terbuka sehingga mudah untuk ditulisi oleh siapa saja. Didalam /var/tmp juga digunakan sebagai penyimpanan file-file sementara, bedanya /var/tmp dengan /tmp yaitu /var/tmp tidak akan dibersihkan saat system reboot. Untuk memudahkan mengingat, direktori ini dianggap kependekan dari 'temporary'
/lost+found
Di direktori ini linux menyimpan file-file yang berhasil di recover saat sistem crash. Dengan melihat kedalam /lost+found mungkin kita dapat menemukan file yang hilang.
 Refrensi :
https://ugos.ugm.ac.id/wiki/panduan:panduan_pengenalan_susunan_direktori_di_linux