Skip to content

setiyadi-ben/Algoritma-dan-Pemrograman-II

Repository files navigation

alt text

How to Melakukan "Praktikum"

Repositori ini adalah dokumentasi dari proses praktikum dari matakuliah Algoritma dan Pemrograman II. Berikut di bawah ini merupakan langkah - langkah agar dapat mengerjakan praktikum secara lebih efisien.

Alat dan Bahan

Berikut alat dan bahan yang akan digunakan, antaralain:

  • Laptop (Rekomendasi, min : 4GB RAM + SSD)
  • Raspberry Pi 3 model B+ & microSD class 10 (usahakan milik sendiri)
  • RPi OS (bisa download disini)
  • Sensor (DHT11, HC-SR04, BH1750, ... )
  • Project Board
  • Kabel Jumper
  • Multimeter
  • VMWare Workstation (Bila ingin simulasi diluar lab. Bisa download disini)

Oiya, untuk memudahkan dalam pemasangan sensor pada praktikum selanjutnya usahakan memiliki kabel jumper sendiri. Dengan melakukan pelabelan pada setiap jumper dengan menuliskan nomor pin GPIOnya akan menghemat waktu sekitar 10 s/d 15 menit.

Instalasi RPi OS

1.Install Rapberry Pi imager disini.

2.Masukkan microSD kemudian buka Rapberry Pi imager klik Choose storage > pilih microSD tadi. Jika ada tulisan "write protected" geser slider yang ada di adapter sampai tulisan tersebut hilang.

3.Kemudian klik Choose OS > Use custom (scroll kebawah) > pilih Raspbian OS yang didownload tadi.

4.Klik write dan tunggu hingga selesai, setelah itu masukkan microSD kedalam Raspberry Pi.

Pinout Raspberrry Pi 3 Model B+

alt text
  • Untuk pinout ke sensor bisa dilakukan bebas dikarenakan pin - pin yang berada pada Raspberry Pi bertipe GPIO (General Purpose I/O).

Code untuk Sensor

  • Sensor HC-SR04
  • Sensor DHT11 Silahkan dicari ada diatas, untuk sensor yang working hanya kedua itu saja dan penggabungan kedua sensor tersebut berada di main.py.

Instalasi Database phpMyAdmin

  • Berikut konfigurasi Database dalam Raspberry Pi sebagai server.
  sudo apt-get install php php-mbstring
  sudo apt-get install mariadb-server php-mysql
  sudo mysql --user=root
  CREATE USER 'nama_user'@'localhost' IDENTIFIED BY 'password';
  GRANT ALL PRIVILEGES ON*.*TO 'nama_user'@'localhost' WITH GRANT OPTION;
  • Klik Ctrl + D atau Ctrl + C, kemudian
  sudo apt-get install phpmyadmin
  • Jika ada pilihan apache2 atau lighttpd pilih apache2 dengan klik spasi. Jika ada configure db-config bla bla bla pilih "No".

  • Ketikkan ini untuk mengetahui ip Raspberry server

  hostname -I
  • Masukkan ip 192.168.XXX.XX tadi dalam browser dengan menulis phpmyadmin untuk mengakses database tadi menggunakan username dan password yang telah dibuat tadi.
  192.168.XXX.xxx/phpmyadmin

Membuat Database dan Tabel MySQL Baru dan Menkonfigurasi Previleges

  • Setelah berhasil login, buat database baru dengan klik "New". Kemudian isi field untuk nama dan Create. Ingat - ingat untuk kotak biru !

    Screenshot-3.png

  • Setelah database terbuat, cek bagian previlegesnya apakah terdapat error seperti gambar dibawah ini.

    Screenshot-4.png

  • Untuk memperbaiki error tersebut, klik logo phpMyAdmin > ganti server connection collation sama dengan yang dikotak biru sebelumnya. Cek kembali database tersebut untuk memastikan error pada privilegesnya sudah terselesaikan.

    Screenshot-5.png

  • Cek previleges dengan cara klik database kemudian pilih "Previleges". Jika tidak error maka langkah tersebut berhasil.

    Screenshot-5.png

  • Untuk membuat sebuah tabel baru pada database klik New. Kemudian, isikan data sebagai berikut :

    Screenshot-8.png

Test koneksi Python MySQL Connector

  • Langkah ini berfungsi untuk mengecek apakah python kalian gunakan sudah terhubung dengan MySQL agar dapat memanipulasi database yang telah dibuat dengan menggunakan bahasa python.
  • Untuk melakukan test koneksi diperlukan menginstal MySQL driver terlebih dahulu bisa menggunakan perintah dibawah ini.
    sudo python -m pip install mysql-connector-python
  • Untuk mengetesnya kalian tuliskan perintah program dibawah ini (Referensi : W3Schools).
    sudo nano demo_mysql_test.py
    import mysql.connector
    
    mydb = mysql.connector.connect(
      host="localhost",
      user="yourusername",
      password="yourpassword"
    )
    
    print(mydb) 
    python demo_mysql_test.py
  • Jika terdapat error pada saat melakukan testing, uninstal driver tadi dan ikuti langkah dibawah ini (Referensi : StackOverflow).
    sudo pip uninstall mysql-connector-python
    sudo pip3 install mysql-connector-python==8.0.29

Mentransfer Value Sensor kedalam Database MySQL

  • Untuk mentransfernya, diperlukan sebuah perintah query SQL. Untuk sintaks programmnya terdapat pada file dengan nama "mysqlinsert_main.py". Dalam sintaks tersebut sensor yang diinputkan berupa sensor HC-SR04 dan DHT11. Dibawah ini merupakan potongan query SQL dari file mysqlinsert_main.py.

    sql = "INSERT INTO tabelSensor (datetimes, hcsr, temp, humi) VALUES (%s, %s, %s, %s)"
    val = ((formatted_date), (dist), (temperature), (humidity))
  • Jika berhasil data yang telah masuk akan terlihat seperti demikian.

    Screenshot-9.png

Menampilkan data tabel MySQL dalam Website berupa tabel

  • Untuk melakukan ini diperlukan file HTML dengan sintaks PHP untuk merequest data dari database. Untuk mengaksesnya, kalian bisa menyalin file dalam folder website yang dapat kalian modifikasi sendiri.

  • Jika kalian menggunakan setelan data sql tabel yang sama (id, datetimes, hcsr, temp, humi) kalian tinggal ganti yang dikotak merah.

    Screenshot-15.png

    Screenshot-17.png

    Screenshot-16.png

  • Kemudian untuk dapat diakses melalui web kita memperlukan perubahan perizinan pada direktori /var/www/html . Kita bisa rubah perizinan dengan mengetikan perintah seperti berikut.

    sudo chmod -R a+rwx /var/www
  • Pindahkan file tersebut menggunakan SFTP, disini Saya gunakan Bitvise SSH.

    Screenshot-10.png

  • Kemudian kita pastekan file tersebut kedalam folder /var/www/html lewat VNC Viewer. Namun, sebelum itu kalian bisa cari file kalian terlebih dahulu, berikut contoh lokasi direktori Saya.

    Screenshot-11.png

    Screenshot-12.png

  • Berikut tampilan halaman web php untuk memunculkan tabel dari MySQL table.

    Screenshot-13.png

  • Berikut tampilan lengkap halaman web php untuk memunculkan tabel dari MySQL table beserta dashboard.

    Screenshot-14.png

  • Jangan kaget bila saat mengetikan perintah hostname -I punya kalian hanya memunculkan 1 alamat ip saja. Di kasus Saya, raspberry pi terhubung dengan bridged lan ip dari laptop dan satunya terhubung dengan hotspot WiFi. Saat kalian temukan alamat ipnya, karena satu network address jadi dapat diakses melalui hp seperti dibawah ini.

alt text

TERIMA KASIH

alt text