Anda di halaman 1dari 132

KEMENTERIAN PENDIDIKAN, KEBUDAYAAN,

RISET, DAN TEKNOLOGI

Modul Diklat

INTERNET OF THINGS (IoT)


BERBASIS DATA SCIENCE

Dr. Eko Subiyantoro, S.Pd.,S.ST.,MT.


Abdul Munif, S.Pd.,S,ST.,MT
Widyaiswara Madya
Program Keahlian Teknologi Informasi

BALAI BESAR PENGEMBANGAN


PENJAMINAN MUTU PENDIDIKAN VOKASI
BBPPMPV BOE Malang-TI-2020

BIDANG OTOMOTIF DAN ELEKTRONIKA


KATA PENGANTAR

Balai Besar Pengembangan Penjaminan Mutu Pendidikan Vokasi Bidang


Otomotif Dan Elektronika (BBPPMPV BOE) sebagai salah satu unit pelaksana teknis
pada Direktorat Jenderal Pendidikan Vokasi, Kementerian Pendidikan dan Kebudayaan
memiliki tugas dan fungsi untuk melaksanakan pengembangan dan pemberdayaan
Pendidik dan Tenaga Kependidikan (PTK) di Indonesia. Dalam program Revitalisasi
SMK, BBPPMPV BOE menempati peran strategis khususnya dalam meningkatkan
jumlah dan kompetensi bagi pendidik dan tenaga kependidikan SMK. Disamping
kompetensi professional kejuruan guru juga dituntut untuk memiliki Kompetensi
Pedogogik. Kompetensi Pedagogik adalah kemampuan mengelola pembelajaran
peserta didik meliputi pemahaman terhadap peserta didik, perancangan dan
pelaksanaan pembelajaran, evaluasi hasil belajar, dan pengembangan peserta didik
untuk mengaktualisasi ragam potensi yang dimilikinya. Dalam mengelola pembelajaran
guru dituntut untuk menguasai berbagai metode pembelajaran dan menciptakan alat
bantu pengajaran (teaching aids) untuk memudahkan siswa memahami konsep
kejuruan.
Salah satu metode pembelajaran yang cocok untuk pendidikan kejuruan adalah
Project Based Learning (PjBL). Pendidikan vokasi diminta untuk mengimplementasikan
model pembelajaran PjBL. Hal ini diterapkan guna menjawab persoalan terkait
kebutuhan tenaga kerja saat ini. Dengan metode ini pembelajaran di pendidikan vokasi
menggunakan proyek sebagai media. Sehingga, tidak hanya hard skill yang terbentuk,
namun soft skill juga diperkuat melalui metode tersebut. Oleh karena itu, Diklat
Pembuatan Alat Bantu Pengajaran (Teaching Aids) ini menggunakan pendekatan
Project Based Training.
Universal IoT System (UnIoTsys) merupakan teaching aids yang dapat digunakan
dalam proses transfer pengetahuan dan teknologi terdiri dari dua bagian utama, yaitu
hardware merupakan module-module yang saling terintergrasi dan fleksibel dalam
penggunaanya (plug and play) yang terdiri dari SBC Raspberry Pi 4, LCD hdmi, mikrotik,
module sensor, module relay, terminal AC output 220, projectboard, dan komponen-
komponen elektronika. Software merupakan perangkat lunak open source GNU General
Public License (GPL) yang terdiri dari sistem operasi raspbian, sd card formatter, python
up to version 3, flask webserver, dan library-library lain.

BBPPMPV BOE Malang-DepTI-RPL-2023


i
Sekolah dapat memanfaatkan UnIotSys untuk membuat projek-projek IoT yang
dibutuhkan sekolah dalam mewujudkan transforrmasi digital berbagai peralatan
sekolah. Selain itu, lembaga pelatihan dapat memanfaatkan UnIotSys untuk melatih
masyarakat dalam penerapan teknologi IoT untuk keperluan smart home dan aplikasi
lainnya. BBPPMPV BOE dapat memanfaatkan UnIotSys untuk melatih Guru-Guru SMK
dengan sain dan teknologi terbaru yang sesuai dengan revolusi indutri 4.0.
Ucapan terima kasih tak lupa disampaikan kepada pihak-pihak yang terlibat baik
secara langsung maupun tidak dalam memberikan bimbingan dan bantuan kepada
penulis, diantaranya:
1. Bapak Dr. Abdul Rochim, MM selaku plt. Kepala BBPPMPV BOE-VEDC Malang
atas dukungan dan bantuanya.
2. Bapak Drs. Supriyanto, M.T selaku Koordinator Program Keahlian Teknologi
Informasi. Terima kasih atas kesempatan yang telah diberikan kepada penyusun.
3. Rekan-rekan Widyaiswara Departemen Teknologi Informasi yang telah
memberikan dukungan dan semangat.
4. Pihak-pihak yang tak bisa penulis sebutkan satu persatu, terima kasih atas segala
dukungannya. Jazakumullah Khairan Katsiran.
Demikian pengantar dari penulis, semoga modul teaching aids Universal Iot
System dapat memberi manfaat pada Guru-Guru Program Keahlian Teknik Komputer
dan Informatika pada khususnya, dan Guru-Guru SMK pada umumnya.
Malang, 01 Maret 2023

Penulis

BBPPMPV BOE Malang-DepTI-RPL-2023


ii
DAFTAR ISI

KATA PENGANTAR ............................................................................................................. i


DAFTAR ISI ...........................................................................................................................iii
DAFTAR GAMBAR ............................................................................................................... v
DAFTAR TABEL ...................................................................................................................vi
STRUKTUR DIKLAT .......................................................................................................... vii
BAB I PENDAHULUAN ....................................................................................................... 1
1.1 Pengantar ................................................................................................................ 1
1.2 Tujuan ...................................................................................................................... 3
1.3 Manfaat.................................................................................................................... 3
1.4 Sistematika Penulisan............................................................................................ 4
BAB II SPESIFIKASI TEACHING AIDSPUSTAKA .......................................................... 5
2.1 Hardware ................................................................................................................ 5
2.2 Software................................................................................................................... 8
BAB III KONSEP DAN IMPLEMENTASI DATA SCIENCE ......................................... 10
3.1. Apa itu Data Science............................................................................................ 10
3.2. Manfaat data Science ........................................................................................... 10
3.3. Alur Proses Data Science .................................................................................... 11
3.4. Mechine Learning ................................................................................................ 12
3.4.1. Istilah-istilah dalam mechine learning ............................................. 12
3.4.2. Jenis Machine Learning ...................................................................... 14
3.4.3. Algoritma dan Proses (task) Mesin Learning .................................. 15
3.4.4. Performance Measure ......................................................................... 16
3.5. Interaktif Visualisasi Data. ................................................................................. 17
3.6. Interaktif Model Data .......................................................................................... 18
3.7. Mengelola data dengan Library Numpy .......................................................... 20
Apa itu Library Numpy ...................................................................................... 20
Membuat data array ............................................................................................ 20
3.8. Memanipulasi Data den Library Pandas .......................................................... 23
3.9. Membuat Simulasi Interaktif Model data dan memprediksi ........................ 26
BAB IVLEMBAR KERJA ..................................................................................................... 30
4.1. Single Board Computer (SBC) Raspberry Pi4 .................................................. 30
4.1.1. Identifikasi SBC Raspberry Pi4 .......................................................... 30

BBPPMPV BOE Malang-TI-2020 iii


4.1.2. Instalasi Sistem Operasi...................................................................... 32
4.1.3. Administrasi Sistem Operasi Raspbian ............................................ 35
4.2. Instalasi Bahasa Pemrograman Python ............................................................ 39
4.3. Dasar Pemrograman Python .............................................................................. 43
4.4. Struktur Kontrol ................................................................................................... 49
4.5. Fungsi dan Module.............................................................................................. 62
4.6. Digital Input-Output ........................................................................................... 74
4.7. Digital Analog Sensor ......................................................................................... 78
4.8. IoT Webserver ...................................................................................................... 89
4.9. Flask dan Bootstrap ............................................................................................. 96
BAB IV PENUTUP ............................................................................................................. 111
4.1 Kesimpulan ......................................................................................................... 120
4.2 Saran .................................................................................................................... 120
DAFTAR PUSTAKA .......................................................................................................... 121
LAMPIRAN......................................................................................................................... 122
PENULIS.............................................................................................................................. 123

BBPPMPV BOE Malang-DepTI-RPL-2023


iv
DAFTAR GAMBAR
Gambar 1. 1 Arsitektur Internet of Things.............................................................................. 1
Gambar 1. 2 Integrasi Raspberry Pi dengan Pemrograman Python ................................... 3

Gambar 2. 1 Desain Teaching Aids Universal IoT System ................................................... 5

Gambar 3. 1 Jenis Raspsberry Pi............................................................................................. 30


Gambar 3. 2 Raspberry Pi 4..................................................................................................... 31
Gambar 3. 3 Peralatan Pendukung Raspberry Pi ................................................................ 31
Gambar 3. 4 Sistem Operasi Raspberry Pi ............................................................................ 33
Gambar 3. 5 Jenis Sistem Operasi Raspberry Pi .................................................................. 33
Gambar 3. 6 Hubungan Raspberry Pi 4 dengan Perangkat Pendukung .......................... 35
Gambar 3. 7 Sistem File Raspbian .......................................................................................... 35
Gambar 3. 8 Operasi Dasar Sistem Operasi Raspbian ........................................................ 36
Gambar 3. 9 Alur interpreter dan compiler source code python ...................................... 39
Gambar 3. 10 Alur pembuatan kode program python ....................................................... 41
Gambar 3. 11 Fungsi input dan output ................................................................................. 43
Gambar 3. 12 Ilustrasi variabel dengan tipe data ................................................................ 45
Gambar 3. 13 Flowchart perintah if ....................................................................................... 50
Gambar 3. 14 Flowchart perintah if…else ............................................................................ 51
Gambar 3. 15 Flowchart perintah if…elif…else ................................................................... 52
Gambar 3. 16 Flowchart perintah for..................................................................................... 54
Gambar 3. 17 Flowchart perintah while ................................................................................ 57
Gambar 3. 18 Flowchart perintah break ................................................................................ 59
Gambar 3. 19 Cara kerja perintah break dalam for dan while loop .................................. 59
Gambar 3. 20 Flowchart perintah continue .......................................................................... 60
Gambar 3. 21 Cara ker perintah continue dalam for dan while loop ............................... 61
Gambar 3. 22 Cara kerja fungsi dalam Python .................................................................... 63
Gambar 3. 23 Fungsi Rekursif ................................................................................................ 67
Gambar 3. 24 Cara Kerja Fungsi Rekursif ............................................................................. 68
Gambar 3. 25 GPIO Raspberry Pi 4 ........................................................................................ 74
Gambar 3. 26 Rangkaian Kerja LED Blink ............................................................................ 75
Gambar 3. 27 Rangkaian Kerja Lampu Berjalan .................................................................. 77
Gambar 3. 28 Rangkaian Kerja Traffic Light ........................................................................ 77
Gambar 3. 29 Bentuk Push Button ......................................................................................... 78
Gambar 3. 30 Cara Kerja Push Button ................................................................................... 78
Gambar 3. 31 Bentuk dan Simbol Tactile Switch ................................................................. 79
Gambar 3. 32 Rangkaian Kerja Kontrol LED dengan Push Button ................................... 80
Gambar 3. 33 Simbol dan Bentuk LDR.................................................................................. 82
Gambar 3. 34 Cara Mengukur LDR Pada Kondisi Terang ................................................. 82
Gambar 3. 35 Cara Mengukur LDR Pada Kondisi Gelap ................................................... 83
Gambar 3. 36 Rangkaian Kerja Sensor LDR ......................................................................... 83
Gambar 3. 37 Rangkaian Kerja Projek Sensor ...................................................................... 88
Gambar 3. 38 Cara Kerja Webserver Flask ........................................................................... 90
Gambar 3. 39 Komunikasi Webserver dengan Raspberry Pi 4 .......................................... 93

BBPPMPV BOE Malang-DepTI-RPL-2023


v
DAFTAR TABEL

Tabel 2. 1 Spesifikasi Hardware dalam Universal IoT System ............................................ 6


Tabel 2. 2 Spesifikasi Software dalam Universal IoT System............................................... 8

Tabel 3. 1 Operator Aritmatika............................................................................................... 46


Tabel 3. 2 Operator Relasi ....................................................................................................... 46
Tabel 3. 3 Operator Logika ...................................................................................................... 47
Tabel 3. 4 Perintah-Perintah Python if................................................................................... 49
Tabel 3. 5 Perintah-Perintah Python Loop ............................................................................ 53
Tabel 3. 6 Perintah-Perintah Kontrol Loop ........................................................................... 54

BBPPMPV BOE Malang-DepTI-RPL-2023


vi
STRUKTUR DIKLAT

Projek Internet of Things

Lab.8 Digital Input-Output Lab.9 Digital Analog Sensor Lab.10 Flask Webserver
IoT IoT IoT

Lab.5 Dasar Pemrograman Lab.6 Struktur Kontrol Lab.7 Fungsi - Module


Python 3 Python 3 Python 3

Lab.4 Instalasi Pemrograman Python 3 dan IDE

Lab.2 Instalasi Sistem Operasi


Lab.1 Identifikasi Hardware Lab.3 Administrasi Rapsbian
Rapsbian

SBC Rapsberry Pi 4

BBPPMPV BOE Malang-TI-2020 vii


BAB I PENDAHULUAN

PENDAHULUAN

1.1 Pengantar
Internet of Things atau IoT pertama kali dikeluarkan oleh Kevin Ashton pada tahun 1999 di
salah satu presentasinya. Caragas mendefinisikan, bahwa Internet Of Things (IoT) adalah sebuah
infrastruktur jaringan global, yang dapat mengubungkan perangkat keras dan virtual melalui
eksploitasi data capture serta kemampuan komunikasi. Dalam Infrastruktur terdiri dari jaringan
yang sudah ada dan internet beserta pengembangan jaringannya. IoT dapat diterapkan di hampir
semua benda-benda yang ada disekitar kita, bahkan anggota tubuh kita. Saat kita menggunakan
jam tangan yang menghitung berapa langkah kita berjalan dalam satu hari, maka data perjalanan
tersebut dapat disimpan di internet untuk dipergunakan di kemudian hari. Atau mungkin kita
pernah mendengar tentang konsep rumah cerdas (smart home), dimana lampu kamar dapat
dihidupmatikan dengan perintah suara kita dan/atau dari smartphone di kejauhan. Jika semua
benda-benda dapat terhubung ke internet, maka berbagai bidang pekerjaan, mulai dari
kesehatan, pendidikan, manufaktur, ekonomi, dan lain sebagainya dapat dikembangkan dengan
bantuan IoT. Secara garis besar, konsep IoT dapat dilihat Gambar 1.1

Gambar 1. 1 Arsitektur Internet of Things

Dewasa ini banyak perusahaan besar mulai mendalami Internet of Things sebut saja Intel,
Microsoft, Oracle, dan banyak lagi lainnya. Banyak yang memprediksikan bahwa IoT adalah

BBPPMPV BOE Malang-DepTI-RPL-2023


1
“The Next Big Thing” di dunia teknologi informasi, hal ini karena IoT menawarkan banyak
potensi yang bisa dikembangkan kembali. Contohnya adalah implementasi dari internet of
Things (IoT) misalnya adalah kulkas yang dapat memberitahukan kepada pemiliknya via SMS
atau email tentang makanan dan minuman apa saja yang sudah habis dan harus distok lagi. Salah
satu cara untuk mengimplementasikan projek-projek IoT dengan menggunakan raspberry pi
dengan pemrograman python.
Raspberry Pi adalah komputer kecil dengan dimensi 85,60 mm x 53,98 mm x 17 mm,
dan beratnya hanya 45 g. Ukurannya yang kecil sangat cocok untuk otomasi rumahan,
karena perangkat kecil dapat dengan mudah diletakkan dalam kotak dan dipasang di dalam
kotak listrik, atau pengganti perangkat termostat yang ada di dinding [1]. Raspberry Pi
merupakan komputer mikro single boardyang dikembangkan dengan tujuan mengajarkan
dasar-dasar ilmu komputer dan pemrograman. Raspberry Pi sangat berbeda dari
mikrokontroler jenis lainnya, seperti Arduino, yang lebih populer untuk proyek-proyek
prototyping, karena sesungguhnya Raspberry Pi adalah komputer. Raspberry Pi dapat
digunakan untuk banyak hal seperti halnya komputer, misalnya: spreadsheet, word
processing, pemrograman, dan lain-lain [2].
Python diciptakan oleh Guido van Rossum yang diperkenalkan sebagai bahasa
pemrograman untukkomputasi. Pada tahun 1999 beliau memperkenalkan bahasa pemrograman
ini pada anak Sekolah Dasar dan Menengah, hingga sekian dekade, python muncul pada
raspberry Pi. Python merupakan bahasa pemrograman yang berorientasi obyek dinamis paling
mudah untuk dipelajari sehingga dapat digunakan untuk bermacam-macam
pengembangan perangkat lunak.
Python menyediakan dukungan yang kuat untuk integrasi dengan bahasa pemrograman
lain dan alat-alat bantu lainnya. Python hadir dengan pustaka-pustaka standar yang dapat
diperluas [3]. Python merupakan interpreted language atau scripting language artinya anda
tinggal menuliskan program kemudian langsung bisa menjalankannya tanpa harus
mengkompilasinya terlebih dahulu. Sebagai interpreter Python memiliki keuntungan misalnya
tidak perlu secara eksplisit mendeklarasikan jenis variabel apakah String atau integer, layaknya
bahasa pemrograman compiler seperti C/C++ dan Java. Karena Python sebagai bahasa
pemrograman interpreter ia tidak memiliki file binary seperti halnya pada C/C++ dimana source

BBPPMPV BOE Malang-DepTI-RPL-2023


2
code bisa dirahasiakan, dan cukup mendistribusikan file binary untuk bisa dijalankan. Di Python,
source code adalah program itu sendiri yang bisa langsung dijalankan.

Gambar 1. 2 Integrasi Raspberry Pi dengan Pemrograman Python

Universal IoT System (UnIoTsys) meruapakan teaching aids yang mengintegrasi hardware
dan software dalam satu modulebox yang fleksibel dan kompatibel dan mudah digunakan dalam
proses pembelajaran di sekolah ataupun lembaga pelatihan. UnIoTsys terdiri dari dua bagian
utama, yaitu hardware merupakan module-module yang saling terintergrasi dan fleksibel dalam
penggunaanya (plug and play) yang terdiri dari SBC Raspberry Pi 4, LCD hdmi, mikrotik,
module sensor, module relay, terminal AC output 220, projectboard, dan komponen-komponen
elektronika. Software merupakan perangkat lunak open source GNU General Public License (GPL)
yang terdiri dari sistem operasi raspbian, sd card formatter, python up to version 3, flask
webserver, dan library-library lain.
1.2 Tujuan
Tujuan pembuatan teaching aids UnIoTsys adalah:
1. Menerapkan teknologi IoT melalui teknologi rapsberry pi dan pemrograma python dalam
saatu teaching aids yaitu Universal IoT Sytems.
2. Membangun interkoneksi hardware dalam pengembangan IoT di sekolah atau lembaga
pelatihan.
3. Menciptakan software aplikasi IoT yang dibutuhkan oleh lingkungan sekolah dan
masyarakat sekitar.
1.3 Manfaat
Manfaat pembuatan teaching aids Universal IoT System adalah:

BBPPMPV BOE Malang-DepTI-RPL-2023


3
1. Sekolah.
1.1 Mempermudah penerapan metode Project Base Learning dalam suatu mata pelajaran.
1.2 Membuat projek-projek IoT yang dibutuhkan sekolah dalam mewujudkan
transforrmasi digital berbagai peralatan sekolah.
2. Lembaga Pelatihan
2.1 Melatih masyarakat dalam penerapan teknologi IoT untuk keperluan smart home dan
aplikasi lainnya.
3. BBPPMPV BOE Malang
3.1 Melatih Guru-Guru SMK dengan sain dan teknologi terbaru yang sesuai dengan
revolusi indutri 4.0.
3.2 Menciptkan inovasi-inovasi yang bersesuaian dengan education top project yang sedang
berkembang saat ini.

1.4 Sistematika Penulisan


Sistematika penulisan modul teaching aids UnIoTsys ini tersusun atas empat bab, penjelasan
untuk setiap bab adalah sebagai berikut
1. Bab I. Pendahuluan, membahas mengenai latar belakang pembuatan teaching aids, tujuan,
manfaat pembuatan teaching aids, dan sistematika penulisan modul .
2. Bab II. Spesifikasi Teaching Aids, berisi tinjauan hardware dan software yang diperlukan
dalam teaching aids UnIoTsys.
3. Bab III. Lembar Kerja, berisi projek-projek lab untuk melatih keterampilan merakit hardware
dan membuat coding pemrogramn python.
4. Bab VII. Kesimpulan, berisi tentang kesimpulan dan saran pembuatan teaching aids
UnIoTsys.

BBPPMPV BOE Malang-DepTI-RPL-2023


4
BAB II SPESIFIKAS I TE ACHING AIDSPUS TAKA

SPESIFIKASI TEACHING AIDS

Dalam bab ini disajikan spesifikasi teaching aids yang dikembangkan dalam pembuatan
Universal IoT System (UnIoTsys). Secara garis besar terdapat dua bagian utama, yaitu:
1. Hardware merupakan module-module yang saling terintergrasi dan fleksibel dalam
penggunaanya (plug and play) yang terdiri dari SBC Raspberry Pi 4, LCD hdmi, mikrotik,
module sensor, module relay, terminal AC output 220, projectboard, dan komponen-
komponen elektronika.
2. Software merupakan perangkat lunak open source GNU General Public License (GPL) yang
terdiri dari sistem operasi raspbian, sd card formatter, python up to version 3, flask
webserver, dan library-library lain.

2.1 Hardware
UnIoTsys dirancang fleksibel dalam berbagai penggunaan untuk membuat aplikasi-aplikasi
yang mendukung pengembangan projek-projek IoT, ilustrasi UnToTsys disajikan dalam Gambar
2.1, sedangkan module dan komponen-komponen elektroniknya disajikan dalam Tabel 2.1.

Gambar 2. 1 Desain Teaching Aids Universal IoT System

BBPPMPV BOE Malang-DepTI-RPL-2023


5
Tabel 2. 1 Spesifikasi Hardware dalam Universal IoT System

No. Hardware Keterangan


1. Raspberry Pi 4 Model B  Broadcom BCM2711 processor (1.5
GHz quad-core Arm Cortex-A72 CPU)
 VideoCore 6 GPU
 1GB, 2GB, or 4GB of RAM
 microSD card reader for storage
 x USB 3.0 ports
 x USB 2.0 ports
 1 x USB Type-C port (for power)
 2 x micro HDMI 2.0 ports
 Gigabit Ethernet
 3.5mm audio jack
 802.11ac WiFi
 Bluetooth 5.0
 40-pin connector
2. HDMI LCD 16”  Layar 7inch IPS
 Resolusi sampai 1280 x 720 (Pixel)
 Full view (underscan disabled)
 Compatible dengan semua model
Raspberry Pi
 Compatible dengan BeagleBone Black
and Banana Pi/Pro

3. Mikrotik  Architecture: SMIPS-BE


 CPU: QCA9531-BL3A-R
 Main Storage/NAND: 16MB,RAM:
32MB
 LAN Ports: 4
 Switch Chip: 1
 Integrated Wireless: 1
 Wireless Standarts: 802.11 b/g/n
 Wireless Tx Power: 22dbm
 Integrated Antenna: Yes
 Antenna Gain: 2 x 1.5dBi
 Power Jack: MicroUSB, 5v
 Dimentions: 113x89x28mm
 Operating System: RouterOS
 Temperature Range: -20C to +70C
 RouterOS License: Level4
4. Module Sensor Sensor adalah sebagai Transduser Input
karena dapat mengubah energi fisik seperti
cahaya, tekanan, gerakan, suhu atau energi
fisik lainnya menjadi sinyal listrik ataupun

BBPPMPV BOE Malang-DepTI-RPL-2023


6
No. Hardware Keterangan
resistansi (yang kemudian dikonversikan
lagi ke tegangan atau sinyal listrik

Sensor suhu DHT11

Sensor Motion PIR HCSR501 Detector


Infrared Gerak Manusia

Sensor cahaya Light Dependent Resistor

5. Project Board atau yang sering disebut


sebagai BreadBoard adalah dasar
konstruksi sebuah sirkuit elektronik dan
merupakan prototipe dari suatu rangkaian
elektronik. Di zaman modern istilah ini
sering digunakan untuk merujuk pada jenis
tertentu dari papan tempat merangkai
komponen, dimana papan ini tidak
memerlukan proses menyolder.
6. Resistor (R) merupakan komponen
elektronik yang memiliki dua pin dan
didesain untuk mengatur tegangan listrik
dan arus listrik. Resistor mempunyai nilai
resistansi (tahanan) tertentu yang dapat
memproduksi tegangan listrik di antara
kedua pin dimana nilai tegangan terhadap
resistansi tersebut berbanding lurus
dengan arus yang mengalir, berdasarkan
persamaan hukum Ohm I = V/R
7. Light Emitting Diode atau sering disingkat
dengan LED adalah komponen elektronika
yang dapat memancarkan cahaya
monokromatik ketika diberikan tegangan
maju. LED merupakan keluarga Dioda
yang terbuat dari bahan semikonduktor.
Warna-warna Cahaya yang dipancarkan
oleh LED tergantung pada jenis bahan
semikonduktor yang dipergunakannya.
8. Module Relay  5V 4-Channel Relay interface board

BBPPMPV BOE Malang-DepTI-RPL-2023


7
No. Hardware Keterangan
 Equipped with high-current relay,
AC250V 10A ; DC30V 10A
 Standard interface that can be
controlled directly by microcontroller
 Opto-isolated inputs
 Indication LEDs for Relay output status

2.2 Software
Tabel 2. 2 Spesifikasi Software dalam Universal IoT System

No Software Keterangan
.
1. NOOBS Noobs adalah tool untuk menginstal
sistem operasi dengan mudah untuk
Raspberry Pi. Dengan menggunakan
software ini Anda akan dapat dengan
mudah memilih sistem operasi pilihan
Anda dan menginstalnya pada Raspberry
Pi . Berikut Sistem Operasi saat ini yang
termasuk dalam noobs :
 Raspbian
 Pidora
 OpenE LEC
 RaspBMC
 OS RISC
www.raspberrypi.org/downloads/
2. Python Python adalah bahasa pemograman
tingkat tinggi yang dapat digunakan
secara luas di berbagai bidang. Python
diciptakan pertama kali oleh Guido van
Rossum pada tahun 1991. Python banyak
digunakan untuk membuat berbagai
macam program, seperti: program CLI,
Program GUI (desktop), Aplikasi Mobile,
Web, IoT, Game, Program untuk Hacking,
dsb.
3. Pychram PyCharm adalah salah satu IDE open
source terbaik untuk bahasa
Python. Muncul dalam beberapa opsi
lisensi dari open source ke versi berbayar.
Kamu bisa memilih lisensi apa pun sesuai
kebutuhan. PyCharm adalah paket fitur
IDE yang mendukung bahasa Python dari

BBPPMPV BOE Malang-DepTI-RPL-2023


8
No Software Keterangan
.
setiap aspek. Muncul dengan fitur seperti
penyelesaian kode berkualitas tinggi,
debugger canggih, inspeksi kode, dll.
PyCharm juga mendukung pemrograman
web dan kode yang ditulis dalam SQL dan
bahasa terkait database lainnya.
https://www.jetbrains.com/pycharm/do
wnload/

4. Thonny Thonny adalah IDE baru (lingkungan


pengembangan terintegrasi) yang
dibundel dengan versi terbaru dari
Raspbian dengan sistem operasi PIXEL.
Menggunakan Thonny, sekarang lebih
mudah untuk belajar membuat kode.

BBPPMPV BOE Malang-DepTI-RPL-2023


9
BAB III

KONSEP DAN IMPLEMENTASI DATA SCIENCE

3.1. Apa itu Data Science


Data science adalah bidang ilmu yang mempelajari proses pengolahan data, mulai dari
penggalian hingga presentasi data. Tujuan utama adalah mengubah data mentah menjadi
informasi yang bermanfaat, mendeskripsikan dan menghasilkan prediksi yang tepat. Hasil
prediksi dapat digunakan untuk membantu proses pengambilan keputusan. Data science
mengkombinasikan kemampuan programming, matematika, statistika, dan pengetahuan umum
untuk mendapatkan suatu insight dari data struktur maupun tidak. Data science membutuhkan
beberapa bidang ilmu lain: ilmu komputer, domain knowledge, artifical inteligence (meliputi
deep learning, machine learning, dan natural language processing (NLP)). Data scientist adalah orang
yang bertugas untuk mengumpulkan dan mengolah data. Sedangkan data analyst adalah orang
yang melakukan analisa data dan menafsirkan datanya.

3.2. Manfaat data Science


Berdasarkan riset Statistik diprediksi akan ada sekitar 74 zettabyte data baru yang muncul di
tahun 2021 dimana satu zettabyte setara dengan satu triliun gigabyte. Dampak positif
peningkatan jumlah data terhadap para pelaku bisnis adalah dapat memanfaatkannya untuk
membuat keputusan-keputusan bisnis yang lebih logis dan kredibel. Selain itu banyak hal yang
bisa dinikmati dengan memanfaatkan data antara lain adalah:
1. Dengan menganalisis data histori penjualan bisnis bisa memprediksi produk yang laku pada
musim-musim tertentu (prediksi)
2. Bisnis manufaktur bisa melihat data produk gagal untuk meningkatkan kualitas produknya.
3. Bisnis logistik dapat mengecek data traffic, rute untuk membuat proses pengiriman menjadi
efisien.
4. Untuk meningkatkan tingkat kepuasan karyawan, divisi HRD dapat mengevaluasi data
yang berasal dari feedback karyawan.
5. Sebuah perusahaan sekuritas dapat melihat data tentang pola pasar finansial untuk
membuat keputusan investasi yang lebih efektif (pengambilan Keputusan)
6. Pengolahan data science dapat digunakan untuk mendeteksi celah keamanan website
berdasarkan data yang diperoleh dari plugin keamanan (deteksi)
7. Menentukan nilai akreditasi berdasarkan data terkait performa instansi (Pengambilan
keputusan)
8. membedakan produk berkualitas tinggi dan rendah sesui data dari tim quality control
(Klasifikasi)
9. memberikan saran atau rekomendasi produk dari toko online berdasarkan halaman produk
yang dikunjungi calon pembeli (Rekomendasi)

BBPPMPV BOE Malang-DepTI-RPL-2023


10
3.3. Alur Proses Data Science
Proses atau cara kerja sistem data science cukup komplek tergantung dan terkait dengan ragam,
jenis, kompleksitas data dan permasalahannya. Dari beberapa proses yang komplek tersebut alur
penerapan data science dapat disederhanakan menjadi lima tahapan yaitu:
a. Perencanaan: Data scientist merencanakan proyek yang akan dijalankan dan hasil yang
diharapkan
b. Penggalian data: merupakan proses pencarian atau pengumpulan data melalui metode
kualitatif dan atau kuantitatif.
c. Pengelolaan data: Setelah didapatkan data yang diinginkan, data scientist akan
menyimpan data secara teratur agar mudah untuk diakses.
d. Identifikasi data: Data yang didapat akan diidentifikasi. Biasanya dengan memasang
kategori atau label pada masing-masing datanya.
e. Analisis data: setiap data akan diolah dan dianalisis agar pelaku bisnis atau pemangku
kepentingan bisa mendapat informasi yang diinginkan.
f. Visualisasi data: Informasi yang diperoleh akan ditafsirkan ke dalam format yang lebih
mudah dipahami. Contohnya seperti grafik laporan.

Gambar Tahapan model Knowladge Discovery Database

Selection adalah proses memilih data dari big data menggunakan query basis data dan menjadi
target data. Preprocessing adalah proses yang mengkonversi data mentah menjadi format yang
dapat dipahami. Data pada dunia nyata sering tidak memadai, tidak konsisten, tidak teratur,
kurang mengikuti pola/tren tertentu. Hal ini mengakibatkan kualitas pengumpulan dan model
data yang dihasilkan rendah. Preprocessing data dapat dilakukan melalui beberapa proses antara
lain adalah:

a. Data Cleaning. Proses ini adalah suatu proses untuk mengatasi missing value,
penanganan noisy data, identifikasi atau menghapus outlier, penanganan data yang
inkonsisten
b. Data Integration. Proses ini akan mengintegrasi beberapa sumber data dan format data.
c. Data Transformation. Proses normalisasi data, diskritisasi, penyeragaman nilai data,
agregasi atau bahkan split atribut

BBPPMPV BOE Malang-DepTI-RPL-2023


11
d. Data Reduction. Proses ini adalah proses yang akan mereduksi dimensi atau
menyeleksi atribut

Data hasil preprocessing akan diolah, dianalisis dan disajikan menjadi suatu informasi yang
mudah difahami (visualisasi). Data tersebut sebagai masukan proses pembuatan model data
menggunakan algoritma mesin learning. Dari Pola atau trend model data tersebut dapat
dilakukan prediksi terhadap data baru berdasarkan model data yang telah dibuat.

Data mining merupakan bagian dari Data Science, yaitu proses pengumpulan informasi untuk
melihat pola dari kumpulan data yang sangat besar dan data discovery. Data mining
mengekstrak pola dari data dengan menggunakan metode statistika agar dapat dianalisa. Hasil
dari analisa ini akan digunakan untuk mencari prediksi yang tepat agar dapat digunakan untuk
mengambil keputusan.

Gambar Tahapan masukan, pemodelan data dengan algoritma mesin learning dan evaluasi
model

3.4. Mechine Learning


Machine Learning merupakan bagian dari AI digunakan agar sistem komputer dapat melakukan
proses pembelajaran dengan sendirinya secara otomatis, tanpa diberi intruksi pemrograman
terlebih dahulu serta dapat meningkatkan keakuratan hasil prediksi. Secara umum
penggunaannya bersifat realtime.

3.4.1. Istilah-istilah dalam mechine learning


Sistem berbasis pembelajaran mesin (mechine learning) tidak diprogram secara eksplisit tetapi
dipelajari dari data. Algoritma pembelajaran mesin menyimpulkan pola dan hubungan antara
variabel yang berbeda dalam dataset kemudian menggunakan pengetahuan itu untuk
menggeneralisasi di luar pelatihan Dataset. Istilah yang digunakan dalam konteks pembelajaran
mesin adalah: 1) Data mining (Penambangan data), 2) Fitur, 3) Label, 4) Model, 5) Akurasi dan 6)
Presisi

a. Data set
Data set adalah koleksi atau kelompok data-data yang berkaitan, dikumpulkan dan
disimpan pada tempat yang sama, merupakan sekelompok record data yang sama dan

BBPPMPV BOE Malang-DepTI-RPL-2023


12
saling terhubung dalam memori komputer. Sekumpulan data dapat ditampilkan dalam
suatu tabel (kolom dan baris). Dimensi kolom terdiri dari atribute/feature dan
class/label/target. Sedangkan dimensi baris berupa kumpulan record/object
/sample/tuple.

b. Feature/atribute
Atribut/feature mewakili variabel independen. Dalam dataset tabular, baris mewakili
observasi dan kolom mewakili fitur. Fitur juga secara kolektif disebut sebagai dimensi.
Atribute terdiri dari numerical dan categorical. Ciri ciri Fitur Kategoris: - dapat
mengambil salah satu dari sejumlah nilai diskrit dengan nama atau label, - Nilai fitur
kategorikal tidak memiliki urutan (ordered), - Jenis kelamin adalah contoh atribut kategoris
yang hanya dapat mengambil satu dari dua nilai, - data bersifat ordinal tidak memiliki
susunan hirarkis misal suasana hati, peringkat kepuasan, - data bersifat nominal tidak
memiliki hirarkis (misal: tipe darah, warna mata, jenis anjing). Ciri ciri Fitur Numerik: -
Dapat mengambil nilai numerik apa pun, - fitur numerik memiliki urutan matematis, - fitur
numerik bersifat diskrit pilihan terbatas: misalnya jumlah orang, jumlah kamar, - fitur
numerik bersifat terus menerus(continuous) pilihan tidak terbatas misalnya: nilai suhu

Gambar Hirarki data dalam data science/data mining

c. Class/label/target
Class/label adalah atribut yang akan dijadikan target. label adalah variabel yang
dipelajari oleh pembelajaran mesin untuk diprediksi yang terdiri: - label kategoris: mis,
kategori artikel berita adalah label kategoris dan, - label numerik: misalnya, harga adalah
label numerik

Gambar contoh dataset dalam data science

BBPPMPV BOE Malang-DepTI-RPL-2023


13
d. Model
Model adalah konstruksi matematis untuk menangkap pola dalam kumpulan data,
memperkirakan, merupakan hubungan antara variabel terikat dan variabel bebas. Model
memiliki kemampuan prediktif, dapat menghitung atau memprediksi nilai variabel
dependen ketika mendapatkan nilai variabel independen. Melatih model adalah tugas
komputasi intensif, sementara menggunakannya bukan tugas komputasi. Sebuah model
umumnya disimpan di disk, sehingga dapat digunakan tanpa melatih mesin lagi. Data
Pelatihan (80% dari data) adalah data yang digunakan oleh algoritme pembelajaran mesin
untuk melatih model. Data Uji (20% dari data) adalah data yang digunakan untuk
mengevaluasi kinerja prediktif suatu mode.

e. Akurasi dan presisi


Akurasi adalah seberapa dekat nilai yang diukur dengan nilai sebenarnya (benar). Presisi
adalah seberapa dekat nilai yang diukur satu sama lain

Gambar ragam jenis Akurasi dan presisi


3.4.2. Jenis Machine Learning
Teknik-teknik yang digunakan dalam mesin learning antara lain adalah: 1) Supervised Learning,
2) Unsupervised Learning, 3) Semi-supervised Learning, 4) Reinforcement Learning

Gambar bidang-bidang yang terkait untuk penerapan Artificial Intelegency

a. Surpervised
Supervised Learning merupakan sebuah pemodelan dimana algoritmanya dapat
membangkitkan suatu fungsi yang memetakan input ke output yang diinginkan. Pada

BBPPMPV BOE Malang-DepTI-RPL-2023


14
Supervised Learning pengguna mengolah data yang memiliki label. Tujuan pengolahan
adalah mengelompokkan data ke data yang sudah ada. Model ini memerlukan data
training. Data training digunakan dalam memprediksi maupun mengklasifikasi data.
Model ini dapat ditemukan pada kasus prediksi harga saham, klasifikasi pelanggan,
klasifikasi gambar. Ciri ciri mesin learning – Supervised: - Pembelajaran terbimbing, -
Data memiliki output/label/target class, - Memiliki fase training untuk mempelajari
pemetaan antara input dan output (membentuk model), - Kategori pekerjaan meliputi:
klasifikasi, regresi, deteksi anomali.

b. Unsupervised
Unsupervised Learning merupakan sebuah pemodelan dimana algoritmanya memodelkan
sekumpulan input secara otomatis tanpa adanya panduan output yang diinginkan. Model
ini mengolah data yang tidak memiliki label, tujuannya adalah mengelompokkan suatu
data yang hampir sama dengan data tertentu. Model ini tidak membutuhkan data training
dalam melakukan prediksi maupun klasifikasi. Ciri-ciri mesin learning – Unupervised: -
Pembelajaran tidak terbimbing, - Data tidak memiliki output/label/target class, - Tidak
memiliki fase training, algoritma bekerja untuk menemukan pola/hubungan pada data
input, Kategori pekerjaan meliputi: klusterisasi, asosiasi, demensionality reduction

3.4.3. Algoritma dan Proses (task) Mesin Learning


a. Surpervised
 Classification
• Two Class Classification - Logistic Regression (Fast), - Decision Tree (Fast). - Decision
jungle (Accurate), - SVM (Accurate) (>100 features), - Boosted Decision Tree (Fast - Large
memory), - Bayes point machine (Fast)

BBPPMPV BOE Malang-DepTI-RPL-2023


15
• Multi Class Classification: - Decision Tree (Fast), - Logistic Regression (Fast), - Random
Forest (Accurate), - Gradient Boosting Tree (Accurate), - Naive Bayes (Big Data), -
Decision jungle (Accurate)
 Regression: - Linear Regression (Fast), - Decision Tree (Fast), - Random Forest (Accurate),
- Gradient Boosting Tree (Accurate), - Ordinal regression, - Bayesian linear regression, -
Boosted Decision Tree (Fast – Large memory), - SGD Regressor (<100K rows), - Lasso/
ElasticNet (Few Features), - RidgeRegression, - SVR (kernel=linear/ rbf), -
EnsembleRegressors
 Anomaly Detection: - One Class SVM (support vector machine), - PCA based Anomaly
Detection, - Time Series Anomaly Detection
 Text Analytics (Supervised Learning): - Named Entity Recognition - Sentimental Analysis

b. Unsupervised
• Clustering: - K-means Clustering,- K-modes (Categorical variables), - DBScan (predict the
number of clusters automatically),- OPTICS (predict the number of clusters automatically)
• Association: -Apriori
• Dimension Reduction: - PCA, - Singular value decomposition,
• Recommendation: - Matchbox Recommender
• Computer Vision: - OpenCV Library

3.4.4. Performance Measure


a. Confusion Matrix
Confusion matrix adalah matiks yang digunakan untuk mengukur performa model
klasifikasi jika diberikan sejumlah data uji. Jumlah matrik bergantung pada kelas target
yang diklasifikasi. Beberapa parameter beserta Formulasi yang digunakan adalah:
 Accuracy = (TP+TN) / (TP+FP+FN+TN)
 Error Rate = (FP+FN) / (TP+FP+FN+TN)
 Precision = TP / (TP+FP)
 Recall = TP / (TP+FN)
 F- Measure = (2* Recall*Precision) / (Recall+ Precision)

b. MAD, MSE, MAPE


Mean Absolute Deviation (MAD) adalah rata-rata dari nilai absolute simpangan. Mean
Squared Error (MSE) adalah nilai rata-rata kuadratik error. Sedangkan Mean Absolute
Percentage Error (MAPE) merupakan nilai persentase rata-rata kesalahan absolut

c. Silhoutte Coeffision
Silhouette Coefficient adalah matiks yang digunakan untuk mengukur performa dari
teknik kluster. Rentang nilai -1 sampai 1. Nilai 1: cluster terpisah dengan baik satu sama

BBPPMPV BOE Malang-DepTI-RPL-2023


16
lain dan dibedakan dengan jelas. Nilai 0: cluster indefferent, jarak antar cluster tidak
signifikan. Nilai-1: cluster terkelompok dengan cara yang salah

3.5. Interaktif Visualisasi Data.


Interaktif Visualisasi data adalah merupakan visualisasi data dimana informasi yang
ditampilkan bersifat dinamis sesuai dengan event atau aksi dari pengguna (UI/UX). Contoh
berikut merupakan hasil dari Exploration Data Analisys (EDA) yang dibangun menggunakan
framework Dash-ploty dan bahasa Python.

Gambar EDA, trend harga dan penjualan apokat di Amerika Serikat tahun 2015 – 2018

BBPPMPV BOE Malang-DepTI-RPL-2023


17
Gambar EDA, visualisasi dan peta persebaran data kasus terorisme global di berbagai negara

3.6. Interaktif Model Data


Interkatif model data adalah merupakan suatu pola/model/knwoledge yang dibangun
menggunakan algoritma mesin learning, memprediksi data masukan (aksi dari pengguna) sesuai
pola yang dibentuk.

Gambar penerapan Support Victor Model untuk mengelompokkan data

BBPPMPV BOE Malang-DepTI-RPL-2023


18
Gambar Simulasi RandomForestRegresor model untuk prediksi/optimalisasi produksi
manufaktur

BBPPMPV BOE Malang-DepTI-RPL-2023


19
3.7. Mengelola data dengan Library Numpy
Lab. 10 Bekerja dengan Library Numpy dan Matplotlib
Tujuan 1. Memahami struktur data Array Numpy
2. Menerapkan Array Numpy
3. Membuat visualisasi data array Numpy menggunakan Matplotlib
Array Apa itu Library Numpy
Numpy
Numpy memudahkan dalam mendefiniskan array 1D,2D ... nD, menyimpan, memanipulasi
data dalam memory dan menggunakan fungsi aljabar linier. Penerapannya cukup luas
dalam data science. Kumpulan data dapat berasal dari berbagai sumber dan berbagai
format, termasuk koleksi kumpulan dokumen, kumpulan gambar, kumpulan klip suara,
kumpulan pengukuran numerik. Misal: gambar digital—dapat dianggap hanya sebagai
array dua dimensi yang mewakili kecerahan piksel di seluruh area. Suara klip dapat
dianggap sebagai array satu dimensi intensitas dibanding waktu. Teks bisa diubah dalam
berbagai cara menjadi representasi numerik
Membuat data array
Array pada dasarnya berisi satu pointer ke satu blok data yang berdekatan. List Python
berisi pointer ke blok pointer, yang masing-masing menunjuk ke objek Python penuh
seperti integer Python. List bersifat fleksibil karena setiap elemen List adalah struktur
lengkap yang berisi data dan tipe informasi, list dapat diisi data dari tipe apa pun. Array
NumPy dengan tipe tetap tidak memiliki fleksibilitas seperti list, tetapi jauh lebih efisien
untuk menyimpan dan memanipulasi data. Python menawarkan beberapa opsi berbeda
untuk menyimpan data secara efisian dalam tipe tetap buffer data. Modul array bawaan
(tersedia sejak Python 3.3) dapat digunakan untuk membuat array padat dari tipe yang
seragam

Fixed Type Array Array Numpy from python lIst

#Numpy meng-upcast data int ke float Mengatur data array numpy dengan keyword
dtype

Tidak seperti List Python, array NumPy dapat secara eksplisit multidimensi;

BBPPMPV BOE Malang-DepTI-RPL-2023


20
Membuat array numpy multidimensi

Visualisasi Ploting grafik scatter, step, bar, fillbeteen dan barh


Data Array
Numpy 1 import matplotlib.pyplot as plt
2 import numpy as np
3 import scipy as sp
4 x = np.linspace(0, 5, 20)
5 y = x ** 2
6 n = np.array([0,1,2,3,4,5])
7 xx = np.linspace(-0.75, 1., 100)
8 fig, axes = plt.subplots(1, 5, figsize=(12,3))
9 axes[0].scatter(xx, xx + 0.25*np.random.randn(len(xx)))
10 axes[0].set_title("scatter")
11 axes[1].step(n, n**2, lw=2)
12 axes[1].set_title("step")
13 axes[2].bar(n, n**2, align="center", width=0.5, alpha=0.5)
14 axes[2].set_title("bar")
15 axes[3].fill_between(x, x**2, x**3, color="green", alpha=0.5);
16 axes[3].set_title("fill_between");
17 axes[4].barh(n, n**2, align="center")

Ploting grafik trigonometri, teks/simbol dan annotate


1 import numpy as np
2 import matplotlib.pyplot as plt
3 p=np.linspace(0,10,100)
4 plt.figure(figsize=(12,4))
5 plt.subplot(1,3,1)

BBPPMPV BOE Malang-DepTI-RPL-2023


21
6 plt.plot(p, np.sin(p),'r-')
7 plt.xlabel('Sumbu x')
8 plt.ylabel('Sumbu y')
9 plt.title('Grafik sin x')
10 plt.text(0, -0.5, r'$\mu=100,\ \sigma=15$')
11 plt.grid()
12 plt.subplot(1,3,2)
13 plt.plot(p,np.cos(p),'g--')
14 plt.annotate('local min', xy=(3.5, -1), xytext=(5.5, -0.75),
15 arrowprops=dict(facecolor='black', shrink=0.05),
16 )
17 plt.xlabel('Sumbu x')
18 plt.ylabel('Sumbu y')
19 plt.title('Grafik cos x')
20 plt.grid()
21 plt.subplot(1,3,3)
22 plt.plot(p,np.tan(p),'b*-')
23 plt.xlabel('Sumbu x')
24 plt.ylabel('Sumbu y')
25 plt.title('Grafik tan x')
26 plt.suptitle('Garfik trigonometri')
27 plt.tight_layout()
28 plt.savefig('plotGambar.jpg', bbox_inches='tight', dpi=150)
29 plt.grid()
30 plt.show()

Referensi Sub materi tentang manipulasi data array menggunakan teknik slicing,
Numpy reshaping, joining, concatenation dan splitting dapat dilihat pada ”python
data science handbook” halaman 47 – 50. Kunjungi tautan dan temukan
dokumentasi library numpy di: https://numpy.org/doc/stable/
Referensi Untuk memperdalam materi pemanfaatan library Matplotlib dengan fitur-
Matplotlib fitur, canggihnya seperti: “Visualizing Errors, Density and Contour Plots,
Customizing plot legend and Colorbars, multi subplot, Histograms, Binnings,
and Density, Configurations and Stylesheets, Three-Dimensional Plotting,
Geographic Data with Basemap “ dapat dilihat pada ”python data science
handbook”-chapter 4 Visualization with Matplotlib halaman: hal 220 – 310.
Kunjungi dan temukan dokumentasi library matplotlib di:
https://matplotlib.org/stable/users/index.html

BBPPMPV BOE Malang-DepTI-RPL-2023


22
3.8. Memanipulasi Data den Library Pandas
Lab. 11 Bekerja dengan Library Pandas Data Frame
Tujuan 1. Memahami struktur data Pandas Data Frame
2. Menerapkan Pandas Data Frame
3. Membuat visualisasi data Pandas Data Frame
Pendahulu Apa itu Library Pandas
an Objek Pandas dapat dianggap sebagai penyempurnaan versi dari Array terstruktur
NumPy, di mana baris dan kolom diidentifikasi dengan label bukan indeks bilangan bulat
sederhana. Pandas menyediakan sejumlah alat, metode, dan fungsionalitas yang berguna
untuk memahami dasar struktur data. Struktur data dasar pada Pandas meliputi: Seri,
DataFrame, dan Indeks.

Pandas Series sebagai dictionary khusus


Series Pandas agak mirip dengan type data dictionary. Dictionary adalah struktur data
yang memetakan kunci arbitrer ke kumpulan nilai arbitrer, dan Series adalah struktur
yang memetakan typed keys ke kumpulan types values. Hal ini penting: sama seperti
kode kompilasi tipe khusus di belakang array NumPy yang membuatnya lebih efisien
daripada List Python untuk operasi tertentu. Pengguna dapat membuat analogi Series-
sebagai-dictionary menjadi lebih jelas dengan membangun objek Series langsung dari
dictionary Python

DataFrame sebagai generalisasi dari NumPy array


DataFrame dapat dianggap sebagai generalisasi dari array NumPy, atau sebagai
spesialisasi dictionary Python.

BBPPMPV BOE Malang-DepTI-RPL-2023


23
Manipulasi Mengelolaan Data menggunakan Data Frame
Data
Proyek sederhana ini akan mengelola data menggunakan struktur pandas dataFrame yang
menyimpan data nama kota, jumlah penduduk, kode kendaraan, suhu, kelembaban, tingkat
polusi. Operasi yang diterapkan adalah: create, update, visualisasi data, mengatasi missing
value, menyimpan file ke csv, membaca file csv, meyimpan file gambar.
1 #1.Menginport library
2 import pandas as pd
3 import matplotlib.pyplot as plt
4 import seaborn as sns
5 #2.membuat variabel data berjenis dictionary
6 data={'namaKota':['Jakarta', 'Surabaya','Semarang'],
7 'jumPenduduk':[6000,5000,4000]}
8 print(data)
9 #3.menkonversi data dictionary ke pandas data frame
10 df=pd.DataFrame(data)
11 print(df)
12 #4.Menambahkan kolom kodekendaraan dan datanya
13 df['kodeKendaraan']=['B','L','H']
14 print(df)
15 #5.Menambahkan satu baris data
16 df=df.append({'namaKota':'Bogor', 'jumPenduduk':3000, 'kodeKendaraan':'F'},ignore_index=Tr
17 ue)
18 print(df)
19 #6.Menambahkan kolom suhu dan mengisi data antara 25 - 35
20 import numpy as np
21 df['Suhu']=np.random.randint(25,35,size=4)
22 print(df)
23 #7.Menambahkan kolom kelembaban dengan satu datakosong (NaN)
24 df['kelembaban']=[80,np.nan,85,75]
25 print(df)
26 #8.Menambahkan satu baris data baru dengan data suhu kosong (NaN)
27 df=df.append({'namaKota':'Banyuwangi', 'jumPenduduk':2500, 'kodeKendaraan':'p', 'Suhu':np.
28 nan,'kelembaban':70},ignore_index=True)
29 print(df)
30 #9.Menambahkan kolom kualitasUdara disiisi data kategorikal
31 kualitas={'kualitasUdara':['kurang','cukup','baik','sangat baik','baik']}
32 kualitasUdara=pd.DataFrame(kualitas)
33 df=pd.concat((df,kualitasUdara),axis=1)
34 print(df)
35 #10.Menambahkan satu data baru dengan kualitasUdara disisi None (kosong)
36 df=df.append({'namaKota':'Magelang', 'jumPenduduk':2700, 'kodeKendaraan':'AA', 'Suhu':26,'k
37 elembaban':90,'kualitasUdara':None},ignore_index=True)
38 print(df)

BBPPMPV BOE Malang-DepTI-RPL-2023


24
39 #11.mengecek dan menghitung data yang kosog(NaN atau Noneg)
40 print(df.isnull().sum())
41 #12. Mengisi data kosong suhu dengan nilai rata-ratanya
42 df.at[4,'Suhu']=df['Suhu'].mean()
43 print(df)
44 #13. Mengisi data kosong kualitasUdara dengan nilai modusnya
45 from scipy.stats import mode
46 df['kualitasUdara']=df['kualitasUdara'].fillna(df['kualitasUdara'].mode()[0])
47 print(df)
48 #14. Mengisi data kosong kelembaban dengan nilai tengahnya
49 df=df.fillna(df.kelembaban.median())
50 print(df)
51 #15.mengecek dan menghitung kembali data yang kosog(NaN atau Noneg)
52 Print(df.isnull().sum())
53 #16.Menyimpan data ke file dataku1.csv
54 df.to_csv('dataku1.csv',index=False)
55 #17.Membaca data file dataku.csv
56 df1=pd.read_csv('dataku1.csv')
57 print(df1)
58 #18.Melihat data statistik untuk setiap atribute numerik
59 print(df1.describe())
60 #19.Melihat struktur dan type datanya
62 printdf1.info()
63 #20.membuat visualisasi pairplot untuk melihat hubungan antar variabel
64 import seaborn as sns
65 sns.pairplot(df)
66 #21.menyimpan grafik ke format jpg
67 plt.savefig('pairplot.jpg', bbox_inches='tight', dpi=150)
68

Tabel data awal dengan hasil data collection dengan beberapa missing value attribute

Tabel data hasil preprocessing data (data clearning) mengatasi missing value

BBPPMPV BOE Malang-DepTI-RPL-2023


25
3.9. Membuat Simulasi Interaktif Model data dan memprediksi
Lab. 11 Proyek Data science: membuat simulasi model data dengan mesin learning
Tujuan 1. Memahami penerapan data science
2. Menerapkan framework dash-ploty
3. Menerapkan algoritma mesin learning untuk memprediksi/optimasi proses produksi
Pendahulu Deskripsi proyek
an Proyek ini akan membuat simulasi data modeling menggunakan mesin learning yang
digunakan untuk memprediksi atau mengoptimalisasi proses produksi. Algoritma
menggunakan RandomForestRegresor yang merupakan bagian dari task regression dari
algoritma mesin learning. Data set dibangkitkan oleh program dengan sejumlah 1000 data
sampel, 8 atribut/fitur (variabel X atau independen dan 1 fitur sebagai target (Variabel y
atau dependent). Delapan atribute tersebut adalah “Temperature", "Viscosity","Pressure",
"pH","Inlet_flow", "Rotating_Speed", "Particles_size", "Color_density". Atribut Y adalah
target data merupakan nilai optimalisasi proses produksi dalam prosentasi.

Modeling Kode program proyek data science


data dan
Prediksi/op 1 #Program simulasi prediksi/optimalisasi proses produksi dengan delapan
timalisasi 2 #faktor yang berpengaruh
proses 3 #Refferensi: https://towardsdatascience.com/build-a-machine-learning-#simulation-tool-with-
4 dash-b3f6fd512ad6
5
6 #1.Import standar library mesin learning
7 import pandas as pd
8 import numpy as np
9 import math
10 from sklearn.datasets import make_regression
11 from sklearn.ensemble import RandomForestRegressor
12
13 #2.Improt library framework Dash-ploty
14 import plotly.graph_objects as go
15 import dash
16 import dash_core_components as dcc
17 import dash_html_components as html
18 import dash_daq as daq
19 from dash.dependencies import Input, Output
20
21 #3.Generate data set (virtual regression use-case)
22 X, y = make_regression(n_samples=1000, n_features=8, n_informative=5, random_state=22)
23 print(X)
24 print(y)
25
26 #4.mengatur nama atribute kolom sebagai 8 parameter industri manufaktur
27 col_names = ["Temperature","Viscosity","Pressure", "pH","Inlet_flow", "Rotating_Speed","Parti
28 cles_size","Color_density"]
29 #5.Membuat obyek df bertype pandas dataframe
30 df = pd.DataFrame(X, columns=col_names)
31

BBPPMPV BOE Malang-DepTI-RPL-2023


26
32 #5.Merubah rentang fitur penting agar terlihat seperti angka sebenarnya
33 df["pH"]=6.5+df["pH"]/4
34 df["Pressure"]=10+df["Pressure"]
35 df["Temperature"]=20+df["Temperature"]
36 df["Y"] = 90+y/20
37 print(df)
38
39 #6.Melatih mesin menggunakan simple RF model
40 model = RandomForestRegressor()
41 model.fit(df.drop("Y", axis=1), df["Y"])
42
43 #7.membuat DataFrame untuk menyimpan fitur dan label yang sesuai
44 df_feature_importances = pd.DataFrame(model.feature_importances_*100,columns=["Import
45 ance"],index=col_names)
46 df_feature_importances = df_feature_importances.sort_values("Importance", ascending=False
47 )
48
49 #8.membuat diagram/Bagan Batang unutk Fitur-fiturnya
50 fig_features_importance = go.Figure()
51 fig_features_importance.add_trace(go.Bar(x=df_feature_importances.index,
52 y=df_feature_importances["Importance"],marker_color='rgb(171, 226, 251)')fig_features_imp
53 ortance.update_layout(title_text='<b>Features Importance of the model<b>', title_x=0.5)
54
55 #9.Perintah berikut dapat diaktifkan di notebook standar untuk #menampilkan #grafik
56 fig_features_importance.show()
57 #memberikan nama, min, mean, dan maks dari tiga fitur terpenting
58 dropdown_1_label = df_feature_importances.index[0]
59 dropdown_1_min = math.floor(df[dropdown_1_label].min())
60 dropdown_1_mean = round(df[dropdown_1_label].mean())
62 dropdown_1_max = round(df[dropdown_1_label].max())
63 dropdown_2_label = df_feature_importances.index[1]
64 dropdown_2_min = math.floor(df[dropdown_2_label].min())
65 dropdown_2_mean = round(df[dropdown_2_label].mean())
66 dropdown_2_max = round(df[dropdown_2_label].max())
67
68 dropdown_3_label = df_feature_importances.index[2]
69 dropdown_3_min = math.floor(df[dropdown_3_label].min())
70 dropdown_3_mean = round(df[dropdown_3_label].mean())
71 dropdown_3_max = round(df[dropdown_3_label].max())
72
73 #########################################################
74 #################10.menjalankan konstruktur framework dash
75 app = dash.Dash()
76 # Struktur halaman akan menjadi:
77 # diagram fitur penting
78 # <H4> fitur nama #1
79 # Slider untuk memperbarui fitur nilai #1
80 # <H4> fitur nama #2
81 # Slider untuk memperbarui fitur nilai #2
82 # <H4> Feature #3 name
83 # Slider untuk memperbarui fitur nilai #3
84 # <H2> Updated Prediction

BBPPMPV BOE Malang-DepTI-RPL-2023


27
85 #memanggil fungsi callback dengan nilai Slider sebagai input dan Prediksi #sebagai Output
86
87 #11.menerapkan formating tataletak dasar HTML
88 app.layout = html.Div(style={'textAlign': 'center', 'width': '800px', 'font-family': 'Verdana'},
89 children=[
90 # Logika yang sama diterapkan pada nama / slider berikut
91 html.H1(children="Simulation Tool"),
92 #meemanggil fungsi graph dengan parameter figur=fig_feature important
93 dcc.Graph(figure=fig_features_importance),
94 # menampilkan nama fitur yang paling penting
95 html.H4(children=dropdown_1_label),
96 # Dash Slider dibuat sesuai dengan rentang Fitur #1
97 dcc.Slider(
98 id='X1_slider',
99 min=dropdown_1_min,
100 max=dropdown_1_max,
101 step=0.5,
102 value=dropdown_1_mean,
103 marks={i: '{}°C'.format(i) for i in range(dropdown_1_min, dropdown_1_max+
104 1)}),
105 #Logika yang sama diterapkan pada nama / slider berikut
106 html.H4(children=dropdown_2_label),
107 dcc.Slider(
108 id='X2_slider',
109 min=dropdown_2_min,
110 max=dropdown_2_max,
111 step=0.5,
112 value=dropdown_2_mean,
113 marks={i: '{} bars'.format(i) for i in range(dropdown_2_min, dropdown_2_ma
114 x+1)}),
115 html.H4(children=dropdown_3_label),
116 dcc.Slider(
117 id='X3_slider',
118 min=dropdown_3_min,
119 max=dropdown_3_max,
120 step=0.1,
121 value=dropdown_3_mean,
122 marks={i: '{}'.format(i) for i in np.linspace(dropdown_3_min,dropdown_3_ma
123 x,1+(dropdown_3_max-dropdown_3_min)*5)},),
124
125 #Hasil prediksi akan ditampilkan dan diperbarui di sini
126 html.H2(id="prediction_result"),])
127
128 #12.Fungsi callback akan memberikan satu "Output" berupa string #(=children)
129 @app.callback(Output(component_id="prediction_result",component_property="children"),
130 # The values correspnding to the three sliders are obtained by calling their id and value proper
131 ty
132 [Input("X1_slider","value"), Input("X2_slider","value"), Input("X3_slider","value")])
133
134 #13.Nilai yang sesuai dengan ketiga slider diperoleh dengan memanggil properti id dan
135 nilainya
136 def update_prediction(X1, X2, X3):

BBPPMPV BOE Malang-DepTI-RPL-2023


28
137
138 #14.membuat array NumPy dalam bentuk fitur asli
139 # ["Pressure","Viscosity","Particles_size", "Temperature","Inlet_flow", "#Rotating_Speed","pH"
140 ,"Color_density"]
141 # Kecuali untuk X1, X2 dan X3, semua parameter non-mempengaruhi lainnya #diatur ke rata-
142 ratanya
143 input_X = np.array([X1,
144 df["Viscosity"].mean(),
145 df["Particles_size"].mean(),
146 X2,
147 df["Inlet_flow"].mean(),
148 df["Rotating_Speed"].mean(),
149 X3,
150 df["Color_density"].mean()]).reshape(1,-1)
151 # Prediksi dihitung berdasarkan array input_X
152 prediction = model.predict(input_X)[0]
153 # mengembalikan nilai ke Output dari panggilan fungsi
154 return "Prediction: {}".format(round(prediction,1))
155
156 #15.Menjalankan server
157 if __name__ == "__main__":
158 app.run_server()
159
160
161
162
163
164
165

BBPPMPV BOE Malang-DepTI-RPL-2023


29
BAB IV LEMBAR KERJA

LEMBAR KERJA

4.1. Single Board Computer (SBC) Raspberry Pi4


4.1.1. Identifikasi SBC Raspberry Pi4

Lab. 1 Identifikasi SBC Raspberry Pi


Tujuan 1. Memahami fungsi-fungsi dalam raspberry Pi
2. Menganalisis komponen-komponen utama dalam raspberry Pi
3. Mengevaluasi perbedaan raspberry Pi dengan motherboard
Pendahuluan Raspberry Pi, sering disingkat dengan nama Raspi, adalah komputer papan
tunggal(single-board circuit; SBC) yang seukuran dengan kartu kredit yang
dapat digunakan untuk menjalankan program perkantoran, permainan
komputer, dan sebagai pemutar media hingga video beresousi tinggi.
Raspberry Pi dikembangkan oleh yayasan nirlaba, Rasberry Pi Foundation,
yang digawangi sejumlah pengembang dan ahli komputer dari Universitas
Cambridge, Inggris.
Raspberry Pi memiliki website di www.raspberrypi.org yang memiliki
cukup banyak informasi tentang produk, aksesoris sampai dengan contoh
proyek pembelajaran yang dapat dikerjakan dengan Raspberry Pi. Berikut ini
adalah tampilan website Raspberry Pi.
Produk dan aksesoris Raspberry Pi dapat dilihat di website ini juga, ada
banyak jenis Raspberry Pi yang dapat dipilih sesuai dengan kebutuhan.
Aksesoris tambahan seperti Sense Hat, I/O Board Computer Module, Touch
Display sampai dengan Case tersedia untuk melengkapi Raspberry Pi dalam
memenuhi keiinginan pengguna untuk merealisasikan ide kreatif dengan
komputer mini ini.

Gambar 3. 1 Jenis Raspsberry Pi

BBPPMPV BOE Malang-DepTI-RPL-2023


30
Alat dan  SBC Raspberry Pi 4 Model B
Bahan
Rangkaian
Kerja

Gambar 3. 2 Raspberry Pi 4

Gambar 3. 3 Peralatan Pendukung Raspberry Pi

Tugas 1. Identifkasi semua komponen penting dalam Raspberry Pi 4


2. Jelaskan fungsi masing-masing peralatan pendukung
3. Jelaskan perbedaan Raspberry Pi dengan motherboard PC

Kesimpulan

BBPPMPV BOE Malang-DepTI-RPL-2023


31
4.1.2. Instalasi Sistem Operasi

Lab. 2 Instalasi Sistem Operasi Raspberry Pi 4


Tujuan 1. Memahami sistem operasi dalam raspberry Pi
2. Membuat USB bootable
3. Merakit raspberry Pi dengan perangkat pendukung
Pendahuluan Sistem Operasi
Raspbian adalah sistem operasi "resmi" dari Raspberry Pi dan oleh karena itu
kebanyakan orang ingin memulai dari Raspbian. Raspbian adalah versi
Linux yang dibangun khusus untuk Raspberry Pi, berbasis Debian yang
dioptimalkan untuk perangkat keras Raspberry Pi. Raspbian tidak berafiliasi
dengan Raspberry Pi Foundation. Raspbian diciptakan oleh tim pengembang
kecil yang merupakan penggemar perangkat keras Raspberry Pi, yang
berdedikasi untuk tujuan pendidikan Raspberry Pi Foundation dan Proyek
Debian.
Raspbian dilengkapi dengan semua perangkat lunak yang Anda perlukan
untuk setiap tugas dasar dengan komputer. Anda akan mendapatkan
LibreOffice sebagai perangkat perkantoran (office suite), browser web,
program email, dan beberapa alat untuk mengajarkan pemrograman kepada
anak-anak (scratch) dan orang dewasa (python, java, c/c++). Bahkan
didalamnya terdapat permainan Minecraft.
Raspbian adalah tulang punggung bagi hampir semua proyek do-it-yourself
(DIY) yang ada di luar sana, jadi jika Anda ingin membuat sesuatu, sebaiknya
Anda mulai dari Raspbian. Karena sistem operasi ini sangat banyak yang
menggunakan, juga mudah menemukan panduan dan tips pemecahan
masalah. Namun, jika Anda baru mengenal Linux, Raspbian akan sedikit
membingungkan bagi Anda. “Rpi Beginners wiki” atau “Raspberry Pi
Tutorials Channel” merupakan titik awal belajar yang disarankan, begitu
juga berbagai sumber resmi di website Raspberry Pi. Referensi tersebut akan
memandu Anda melalui semua hal yang Anda perlukan untuk
menggunakan Raspbian.

BBPPMPV BOE Malang-DepTI-RPL-2023


32
Gambar 3. 4 Sistem Operasi Raspberry Pi

New Out Of the Box Software (NOOBS) adalah perangkat lunak ini akan
membantu Anda memulai beroperasi dengan Raspberry Pi dengan mudah.
Di dalamnya mencakup banyak sistem operasi yang beraneka ragam. Yang
harus Anda pilih tentu saja bergantung pada keperluan Anda. Inilah cara
membuat pilihan yang tepat. NOOBS adalah cara yang bagus untuk menguji
sistem operasi baru dan mengenal Raspberry Pi Anda, jadi bermanfaat untuk
sedikit bereksperimen dengan mereka semua. Jika Anda mencari pilihan lain,
ada satu ton proyek siap pakai lainnya yang tidak termasuk dalam NOOBS
yang layak untuk dilihat.

Gambar 3. 5 Jenis Sistem Operasi Raspberry Pi

NOOBS adalah installer sistem operasi yang mudah yang berisi Raspbian. Ini
juga menyediakan pilihan sistem operasi alternatif yang kemudian dapat
diunduh dari internet dan kemudian dipasang. NOOBS Lite berisi installer
sistem operasi yang sama tanpa pre-loaded Raspbian. Ini menyediakan menu
pilihan sistem operasi yang sama yang memungkinkan Raspbian dan
gambar lainnya untuk didownload dan diinstal.
Sistem operasi yang direkomendasikan untuk digunakan pada Raspberry Pi
disebut Raspbian. Raspbian adalah versi GNU / Linux yang dirancang
khusus untuk bekerja dengan baik di hardware Raspberry Pi. Anda memiliki
beberapa pilihan ketika datang untuk mendapatkan memegang salinan
Raspbian.
Alat dan  Raspberry Pi 4 Model B
Bahan  Monitor atau TV
 Kabel HDMI
 Keyboard dan mouse

BBPPMPV BOE Malang-DepTI-RPL-2023


33
 Micro USB power supply
 Micro SD card
Langkah A. Format Kartu micro SD
Kerja 1. Kunjungi website SD Association dan download SD Formatter 4.0
(untuk
Windows atau Mac) pada link berikut :
https://www.sdcard.org/downloads/
2. Ikuti petunjuk untuk menginstal perangkat lunak.
3. Masukkan kartu micro SD Anda ke komputer kemudian perhatikan
huruf
drive dimana kartu micro SD dialokasikan untuk itu, misalnya F:/.
4. Pada SD Formatter, pilih huruf drive untuk kartu micro SD dan
lakukan
format.
B. Instalasi Raspbian dengan NOOBS
1. NOOBS singkatan New Out Of Box Software, dan jika Anda belum
pernah bermainmain dengan GNU/Linux sebelumnya, maka
disarankan Anda memulai dengan NOOBS.
2. Kunjungi halaman resmi Raspberry Pi Downloads.
https://www.raspberrypi.org/downloads/
3. Klik pada NOOBS.
4. Klik pada tombol Download ZIP di bawah ‘NOOBS (offline dan
install via jaringan)’, dan pilih folder untuk menyimpannya.
5. Ekstrak file dari ZIP.
6. Setelah kartu SD Anda telah diformat, copy semua file dalam folder
NOOBS yang telah diekstrak ke drive kartu micro SD .
7. File yang diperlukan kemudian akan ditransfer ke kartu SD Anda.
8. Ketika proses ini selesai, keluarkan kartu SD dengan aman (safely
remove) dan masukkan ke Raspberry Pi.
C. Hubungkan Raspberry Pi 4 dengan Perangkat Penghubung
1. Hubungkan perangkat pendukung dengan Raspberry Pi 4 seperti
Gambar 2.2

BBPPMPV BOE Malang-DepTI-RPL-2023


34
Gambar 3. 6 Hubungan Raspberry Pi 4 dengan Perangkat Pendukung

Tugas 1. Amati dan catat pembuatan USB bootable sistem operasi Raspbian
2. Lakukan proses instalasi sistem operasi raspbian
Kesimpulan

4.1.3. Administrasi Sistem Operasi Raspbian

Lab. 3 Operasi Dasar OS


Pendahuluan Sistem File
Layaknya sistem Operasi keluarga Linux, Raspbian memiliki file sistem yang
dijelaskan dengan Gambar 3.7

Gambar 3. 7 Sistem File Raspbian

BBPPMPV BOE Malang-DepTI-RPL-2023


35
Bagi anda yang masih baru mengenal linux, ada baiknya anda membiasakan
dengan struktur file sistem tersebut, dengan bernavigasi ke direktori –
direktori yang ada. Berikut sintaks dasar dalam Gambar 3.8

Gambar 3. 8 Operasi Dasar Sistem Operasi Raspbian

 cd : change directory untuk mengubah posisi direktori kerja yang sedang


dirambah.
 ls : Akronim dari List, untuk melihat isi file pada direktori kerja yang
sedang dirambah. Identik dengan dir pada windows
 tree : Menampilkan pohon (tree) dari struktur file sistem dari direktori
yang sedang dirambah
 mv : akronim dari move digunakan untuk memindahkan file atau
direktori. Bisa juga digunakan untuk merename file atau direktori
 rm : menghapus (remove) file ataupun direktori
Alat dan  Raspberry Pi 4 Model B
Bahan  Monitor atau TV
 Kabel HDMI
 Keyboard dan mouse
 Micro USB power supply
 Micro SD card
Langkah D. Membuka Jendela Terminal
Kerja 1. Anda akan melihat prompt berikut ini:

pi @ raspberrypi ~ $

2. Ketik “pwd” pada direktori kerja sekarang, diikuti dengan tombol


Enter.

pi @ raspberrypi ~ $pwd

BBPPMPV BOE Malang-DepTI-RPL-2023


36
3. Ketik “ls-l” pada direktori kerja sekarang, diikuti dengan tombol
Enter.

pi @ raspberrypi ~ $ls-l

E. Operasi file dan Folder


1. Ketik perintah berikut, diikuti dengan tombol Enter

pi @ raspberrypi ~ $mkdir baru

2. Ketik perintah berikut, diikuti dengan tombol Enter

pi @ raspberrypi ~ $cp /home/pi/new/file.txt

3. Ketik perintah berikut, diikuti dengan tombol Enter

pi @ raspberrypi ~ $mv /home/pi/new/file.txt

4. Ketik perintah berikut, diikuti dengan tombol Enter

pi @ raspberrypi ~ $mv oldproject.txt newproject.txt

5. Ketik perintah berikut, diikuti dengan tombol Enter

pi @ raspberrypi ~ $ rm testfile.txt

F. Informasi perangkat keras Raspberry Pi


2. Ketik perintah berikut, diikuti dengan tombol Enter

pi @ raspberrypi ~ $cat / proc / cpuinfo

3. Ketik perintah berikut, diikuti dengan tombol Enter

pi @ raspberrypi ~ $ cat / proc / meminfo


4. Ketik perintah berikut, diikuti dengan tombol Enter

pi @ raspberrypi ~ $cat / proc / cpuinfo

5. Ketik perintah berikut, diikuti dengan tombol Enter

pi @ raspberrypi ~ $ cat / proc / partisi

BBPPMPV BOE Malang-DepTI-RPL-2023


37
6. Ketik perintah berikut, diikuti dengan tombol Enter

pi @ raspberrypi ~ $ cat / proc / versi

7. Ketik perintah berikut, diikuti dengan tombol Enter

pi @ raspberrypi ~ $ vcgencmd measure_temp

Tugas 1. Lakukan instalasi dengan OS Raspbian


2. Amati dan catat semua hasil perintah-perintah pada langkah kerja A,B,
dan C

Kesimpulan

BBPPMPV BOE Malang-DepTI-RPL-2023


38
4.2. Instalasi Bahasa Pemrograman Python

Lab. 2 Instalasi Pemrograman Python


Tujuan 1. Memahami bahasa pemrograman python
2. Melakukan instalasi bahasa pemrograman python
3. Melakukan instalasi IDE untuk pemrograman python
Pendahuluan Python adalah bahasa pemograman tingkat tinggi yang dapat digunakan
secara luas di berbagai bidang. Python diciptakan pertama kali oleh Guido
van Rossum pada tahun 1991. Sintaks dan fungsi pada Python dipengaruhi
oleh beberapa bahasa seperti C, C++, Lisp, Perl dan Java. Oleh karena itu,
kita dapat menemui konsep pemograman prosedural, fungsional dan object-
oriented di Python. Python relatif mudah dipelajari bila dibandingkan
dengan C++, Java dan PHP karena sintaks Python lebih singkat, lebih jelas
dan mudah dipahami oleh programmer pemula.
PyPy merupakan implementasi dari bahasa pemrograman Python yang
ditulis dengan Python. Interpreter ditulis dalam RPython (bagian dari
Python) seperti dalam Gambar 3.9

Gambar 3. 9 Alur interpreter dan compiler source code python

Konsep sederhana PyPy adalah menggunakan JIT (just-in-time compilation)


dalam mengkompilasi untuk membuat sistem interpreter lebih efisien dan
cepat. Jadi pada dasarnya JIT memungkinkan untuk mengkompilasi kode
sumber menjadi kode mesin asli yang membuatnya sangat cepat.
Source code .py pertama kali dikompilasi menjadi kode byte sebagai .pyc.
Selanjutnya byte code ini dapat diterjemahkan oleh JIT compiler.
Python banyak digunakan untuk membuat berbagai macam program,
seperti: program CLI, Program GUI (desktop), Aplikasi Mobile, Web, IoT,
Game, Program untuk Hacking, dsb.
Instalasi Python: Interpreter yang menerjemahkan bahasa python ke bahasa mesin,
Python 3 sehingga program bisa dijalankan pada operating sistem Linux, tidak perlu
diinstal. Karena Sebagian besar distro Linux sudah menyediakannya secara
default.Untuk mengeceknya, silahkan ketik perintah python --version di
terminal.

$ python –version

BBPPMPV BOE Malang-DepTI-RPL-2023


39
Instalasi python di Windows dengan mendownload file python.msi, pada
alamat situs resminya yaitu
https://www.python.org/downloads/windows/

Setelah download selesai, kita akan mendapatkan file python-3.9.0.msi. File


python-3.9.0.msi adalah file instalator python. File ini akan melakukan
instalasi ke sistem windows.
IDE Python PyCharm adalah salah satu IDE open source terbaik
untuk bahasa Python. Jika kamu adalah pengembang
individu atau pemula, IDE ini sangat cocok untukmu.
Muncul dalam beberapa opsi lisensi dari open source ke
versi berbayar. Kamu bisa memilih lisensi apa pun
sesuai kebutuhan. PyCharm adalah paket fitur IDE
yang mendukung bahasa Python dari setiap aspek.
Muncul dengan fitur seperti penyelesaian kode berkualitas tinggi, debugger
canggih, inspeksi kode, dll. PyCharm juga mendukung pemrograman web
dan kode yang ditulis dalam SQL dan bahasa terkait database lainnya.
PyCharm bahkan memungkinkanmu untuk memperluas fungsinya
menggunakan plugin eksternal.
https://www.jetbrains.com/pycharm/download/

Jupyter adalah IDE open source yang hadir dengan


banyak fitur canggih. Ini sebenarnya aplikasi berbasis
web yang mendukung lebih dari 40 bahasa
pemrograman. Jupyter memungkinkanmu untuk
menambahkan komponen HTML dari gambar ke
video. jika kamu ingin berkarier di bidang data science,
Jupyter dapat banyak membantu. Kamu bisa melakukan
pembersihan data, transformasi data, simulasi numerik,
pemodelan statistik, visualisasi data, banyak fungsi lainnya dengan Jupyter.
Kamu bahkan dapat menggunakan Jupyter IDE untuk membuat dan berbagi
dokumen dengan kode langsung, persamaan, teks, dan visual. Meskipun
instalasinya sedikit rumit, ini memberikan output interaktif dan membuat
seluruh pengembangan lebih lancar. https://jupyter.org/

BBPPMPV BOE Malang-DepTI-RPL-2023


40
Thonny adalah IDE baru (lingkungan pengembangan
terintegrasi) yang dibundel dengan versi terbaru dari Raspbian
dengan sistem operasi PIXEL. Menggunakan Thonny, sekarang
lebih mudah untuk belajar membuat kode. Thonny hadir dengan
Python 3.6 bawaan, jadi Anda tidak perlu menginstal apa pun.
Buka saja programnya, yang akan Anda temukan di Menu> Pemrograman.
Ini menawarkan banyak fitur canggih yang saat ini tidak tersedia di program
Python 3 (IDLE), yang masih disertakan dengan Raspbian.
Alur 1. Membuat skrip python dengan teks editor.
Pembuatan 2. Skrip python diterjemahkan ke dalam kode biner oleh (intepreter) python,
Program sehingga komputer dapat mengerti arti perintah tersebut.
3. Komputer mengerjakan perintah tersebut.

Gambar 3. 10 Alur pembuatan kode program python

Aturan 1. Penulisan Statement Python


Penulisan Statement adalah sebuah intruksi atau kalimat perintah yang akan
Sintak Python dieksekusi oleh komputer.

print("Hello Guru-Guru TKJ!")


print("Belajar Python dari Nol")
nama = "Eljava Mifzal Herbiyan"
Penulisan satu statement tidak diakhiri dengan tanda titik-koma.
2. Penulisan String pada Python
String adalah teks atau kumpulan dari karakter.String dalam
pemrograman biasanya ditulis dengan dibungkus menggunakan tanda
petik. Bisa menggunakan tanda petik tunggal maupun ganda.

nama = "Eljava Mifzal Herbiyan"


kelas = "TKJ - 01"
3. Penuilsan Case pada Python
Menurut rekomendasi style guide Google, berikut ini contoh penulisan
case yang disarankan:

BBPPMPV BOE Malang-DepTI-RPL-2023


41
## Snake Case digunakan pada:
module_name, package_name, method_name, function_name,
global_var_name, instance_var_name, function_parameter_name,
local_var_name.

## CamelCase digunakan Pada:


ClassName, ExceptionName

## ALL CAPS digunakan Pada:


GLOBAL_CONSTANT_NAME

4. Penulisan Blok Program


Blok program adalah kumpulan dari beberpaa statement yang
digabungkan dalam satu blok.Penulisan blok program harus
ditambahkan indentasi (tab atau spasi 2x/4x)

# blok percabangan if
if username == 'eljava':
print("Selamat Datang Admin")
print("Silahkan ambil tempat duduk")
# blok percabangan for
for i in range(10):
print i
5. Penulisan Komentar
Komentar merupakan baris kode yang tidak akan dieksekusi.Komentar
digunakan untuk memberikan informasi tambahan dan untuk
menonaktifkan kode.
Ada beberapa cara menulis komentar pada pemrograman Python:
 Menggunakan Tanda Pagar (#)
# ini adalah komentar
# Ini juga komentar
 Menggunakan Tanda Petik
Selain untuk mengapit teks (string), tanda petik juga dapat digunakan
untuk membuat komentar.

"Ini adalah komentar dengan tanda petik ganda"


'Ini juga komentar, tapi dengan tanda petik tunggal'
Penulisan komentar dengan tanda petik jarang digunakan,
kebanyakan orang lebih memilih untuk menggunakan tanda pagar,
jadi tidak direkomendasikan.

Tugas 1. Melakukan instalasi bahasa pemrograman python


2. Melakukan instalasi IDE untuk pemrograman python

BBPPMPV BOE Malang-DepTI-RPL-2023


42
4.3. Dasar Pemrograman Python

Lab. 3 Dasar-Dasar Pemrograman Python


Tujuan 1. Menerapkan fungsi input dan output
2. Menerapkan tipe data dan variabel bahasa pemrograman python
3. Menerepkan operator bahasa pemrograman python
Input dan Input adalah masukan yang kita berikan ke program.Program akan
Output memprosesnya dan menampilkan hasil outputnya. Input, proses, dan output
adalah inti dari semua program komputer.

input(“Teks”) print(“Teks”, isi_varabel)

Gambar 3. 11 Fungsi input dan output

Input dari Keyboard


Python sudah menyediakan fungsi input() dan raw_input() untuk
mengambil inputan dari keyboard.
Cara pakainya:

nama_varabel = input("Sebuah Teks")

Artinya, teks yang kita inputkan dari keyboard akan disimpan ke dalam
nama_variabel.
# Mengambil input
nama = input("Siapa nama kamu ? ")
umur = input("Berapa umur kamu ? ")
# Menampilkan output
print ("Hello",nama,"umur kamu adalah",umur,"tahun")
Hasilnya:

Menampilkan Output
Untuk menampilkan output teks, kita menggunakan fungsi print().
Menampilkan Variabel dan Teks
Pada contoh di atas kita menggunakan tanda koma (,) untuk
menggabungkan teks dan variabel yang akan ditampilkan.

print "Hello World!"


print nama_variabel
print ("Gabung dengan" + nama_variabel)

BBPPMPV BOE Malang-DepTI-RPL-2023


43
Tipe Data dan Tipe Data
Variabel Secara umum, tipe data primitif dalam python dibagi menjadi tiga jenis:
1. Tipe data angka
Tipe data angka dibagi menjadi beberapa jenis lagi:
 int (Integer): bilangan bulat, contoh 32, 22, 12, 10, dsb.
 float: bilangan pecahan, contoh 1.3, 4.2, 22.3, dsb.
harga = 12000 #tipe int
berat = 23.12 #float
jarak = 3e3 #float 3000.0, huruf e artinya eksponen 10
2. Tipe data teks
Tipe data teks dibagi menjadi dua jenis lagi:
 Char: Karakter, contoh 'E'.
 String: Kumpulan karakter, contoh "SMK Bisa Hebat".
Penulisan tipe data teks harus diapit dengan tanda petik. Bisa
menggunakan petik tunggal ('...'), ganda ("..."), dan tiga ('''...''' atau
"""...""").

nama = "Hisyam Herbiyan"


jenis_kelamin = 'L'
alamat = """
Graha Gardenia,D9. RT/RW 02/14,
Saptorenggo, Malang
"""
agama = 'Islam'
3. Tipe data boolean
Tipe data boolean adalah tipe data yang hanya memiliki dua nilai yaitu
True dan False atau 0 dan 1.
Penulisan True dan False, huruf pertamnya harus kapital dan tanpa tanda
petik.

nyala = True
nyala = 1 #Nilai 1 tipe int, tapi bisa menjadi bool

Konversi Tipe Data


Meskipun Python telah otomatis mendeteksi tipe data yang tersimpan dalam
variabel, tapi ada kalanya kita perlu melakukan konversi tipe data.
Misalkan, pada contoh berikut ini:
a = 10
b=3
c=a/b

print c #output: 3
Pembagian nilai a dan b menghasilkan 3 (integer). Mengapa demikian?
Karena nilai a dan b bertipe integer, maka hasilnya pun berupa integer.
Bagaimana agar hasilnya ada komanya?
Tentu kita harus merubah tipe variabel a dan b menjadi bilangan pecahan
(float) dulu, baru setelah itu dibagi.

BBPPMPV BOE Malang-DepTI-RPL-2023


44
a = 10
b=3
c = float(a) / float(b) #output: 3.3333333333333335
print c
Fungsi float() akan mengubah nilai a menjadi 10.0 dan b menjadi 3.0.
Fungsi-fungsi untuk mengubah tipe data:
 int() untuk mengubah menjadi integer;
 long() untuk mengubah menjadi integer panjang;
 float() untuk mengubah menjadi float;
 bool() untuk mengubah menjadi boolean;
 chr() untuk mengubah menjadi karakter;
 str() untuk mengubah menjadi string.
 bin() untuk mengubah menjadi bilangan Biner.
 hex() untuk mengubah menjadi bilangan Heksadesimal.
 oct() untuk mengubah menjadi bilangan okta.

Variabel
Variabel merupakan tempat menyimpan data, sedangkan tipe data adalah
jenis data yang terseimpan dalam variabel.

Gambar 3. 12 Ilustrasi variabel dengan tipe data

Variabel bersifat mutable, artinya nilainya bisa berubah-ubah.


Variabel di python dapat dibuat dengan format:

nama_variabel = <nilai>

Contoh:

variabel_ku = "ini isi variabel"


variabel2 = 20

Kemudian untuk melihat isi variabel, kita dapat menggunakan fungsi print.

print variabel_ku
print variabel2

Aturan Penulisan Variabel


1. Nama variabel boleh diawali menggunakan huruf atau garis bawah (_),
contoh: nama, _nama, namaKu, nama_variabel.

BBPPMPV BOE Malang-DepTI-RPL-2023


45
2. Karakter selanjutnya dapat berupa huruf, garis bawah (_) atau angka,
contoh: __nama, n2, nilai1.
3. Karakter pada nama variabel bersifat sensitif (case-sensitif). Artinya
huruf besar dan kecil dibedakan. Misalnya, variabel_Ku dan variabel_ku,
keduanya adalah variabel yang berbeda.
4. Nama variabel tidak boleh menggunakan kata kunci yang sudah ada
dalam python seperti if, while, for, dsb.
Operator Operator merupakan simbol-simbol yang digunakan untuk melakukan
operasi tertentu.
Ada enam jenis operator dalam pemrograman yang wajib diketahui:
1. Operator Aritmatika
2. Operator Pembanding/Relasi
3. Operator Penugasan
4. Opeartor Logika
5. Operator Bitwise
6. Operator Ternary

1. Operator Aritmatika
Opeartor aritmatika terdiri dari:
Tabel 3. 1 Operator Aritmatika
Operator Simbol
Penjumlahan +
Pengurangan -
Perkalian *
Pembagian /
Sisa Bagi %
Pemangkatan **
Contoh:
a = int(input("Inputkan nilai a: "))
b = int(input("Inputkan nilai b: "))

# Menggunakan operator penjumlahan


c=a+b
print ("Hasil ", a, "+" , b,"=", c )

2. Operator Relasi
Operator ini digunakan untuk membandingkan dua buah nilai. Operator ini
juga dikenal dengan operator relasi dan sering digunakan untuk membuat
sebuah logika atau kondisi.

Tabel 3. 2 Operator Relasi


Operator Simbol
Lebih Besar >
Lebih Kecil <

BBPPMPV BOE Malang-DepTI-RPL-2023


46
Sama Dengan ==
Tidak Sama dengan !=
Lebih Besar Sama dengan >=
Lebih Kecil Sama dengan <=

Contoh:
a=9
b=5
c=a<b
Apakah isi dari variabel c?
Isinya adalah False, karena nilai 9 lebih kecil dari 5 (9 < 5) adalah salah (False).

3. Operator Logika
Operator logika digunakan untuk membuat operasi logika, seperti logika
AND, OR, dan NOT.Operator logika terdiri dari:
Tabel 3. 3 Operator Logika
Operator Simbol
Logika AND and
Logika OR or
Negasi/kebalikan not

Contoh:
a = True
b = False

# Logika AND
c = a and b
print (a, "and", b, "adalah", c)

Tugas 1. Jalankan dan analisa kode program :


# Ambil input untuk mengisi nilai
a = int(input("Inputkan nilai a: "))
b = int(input("Inputkan nilai b: "))

# Menggunakan operator penjumlahan


c=a+b
print ("Hasil ", a, "+" , b,"=", c )

# Menggunakan operator pengurangan


c=a-b
print ("Hasil ", a, "-" , b,"=", c )

# Menggunakan operator perkalaian


c=a*b
print ("Hasil ", a, "X" , b,"=", c )

# Menggunakan operator pembagian


c=a/b

BBPPMPV BOE Malang-DepTI-RPL-2023


47
print ("Hasil ", a, "/" , b,"=", c )

# Menggunakan operator sisa bagi


c=a%b
print ("Hasil ", a, "%" , b,"=", c )

# Menggunakan operator pangkat


c = a ** b
print ("Hasil ", a, "^" , b,"=", c )

2. Jalankan dan analisa kode program :


a = int(input("Inputkan nilai a: "))
b = int(input("Inputkan nilai b: "))

# apakah a sama dengan b?


c = a == b
print ("Apakah" ,a, "==" ,b, ":",c)

# apakah a < b?
c=a<b
print ("Apakah" ,a, "<" ,b, ":",c)

# apakah a > b?
c=a>b
print ("Apakah" ,a, ">" ,b, ":",c)

# apakah a <= b?
c = a <= b
print ("Apakah" ,a, "<=" ,b, ":",c)

# apakah a >= b?
c = a >= b
print ("Apakah" ,a, ">=" ,b, ":",c)

# apakah a != b?
c = a != b
print ("Apakah" ,a, "!=" ,b, ":",c)

3. Jalankan dan analisa kode program :


a = True
b = False

# Logika AND
c = a and b
print (a, "and", b, "adalah", c)

# Logika OR
c = a or b
print (a, "or", b, "adalah", c)

# Logika NOT

BBPPMPV BOE Malang-DepTI-RPL-2023


48
c = not a
print ("not", a, "adalah", c)

Kesimpulan

4.4. Struktur Kontrol

Lab. 4 Struktur Kontrol


Tujuan 1. Menerapkan struktur kontrol percabangan
2. Menerapkan struktur kontrol perulangan
Python Pengambilan keputusan merupakan antisipasi terhadap kondisi yang terjadi
if…else saat pelaksanaan program dan menentukan tindakan yang diambil sesuai
dengan kondisi tersebut. Struktur keputusan mengevaluasi beberapa ekspresi
yang menghasilkan TRUE atau FALSE sebagai hasil. Anda perlu menentukan
tindakan mana yang harus diambil dan pernyataan mana yang akan
dieksekusi jika hasilnya TRUE atau FALSE sebaliknya. Berikut ini adalah
bentuk umum dari struktur pengambilan keputusan yang ditemukan di
sebagian besar bahasa pemrograman.
Tabel 3. 4 Perintah-Perintah Python if
No Perintah Diskripsi
1 if Pernyataan if terdiri dari ekspresi boolean yang
diikuti oleh satu atau beberapa pernyataan.
2 if … else Pernyataan if dapat diikuti oleh pernyataan lain
opsional, yang dieksekusi ketika ekspresi boolean
adalah FALSE.
3 If … else if… Pernyataan untuk multi kondisi, if dapat diikuti
else oleh pernyataan if yang lain, yang dieksekusi
ketika ekspresi boolean adalah FALSE.

Sintak Perintah Python if

if test expression:
statement(s)

Program mengevaluasi ekspresi test dan akan mengeksekusi pernyataan


hanya jika ekspresi test adalah True. Dalam Python, isi pernyataan if
ditunjukkan oleh indentasi. Isi perintah if dimulai dengan indentasi baris
pertama dan yang tidak diberi indentasi menandai akhir. Flowchart perintah
if…else ditunjukkan dalam Gambar 3.13

BBPPMPV BOE Malang-DepTI-RPL-2023


49
Gambar 3. 13 Flowchart perintah if

Contoh
num = 3
if num > 0:
print(num, "adalah angka positif.")
print("Ini selalu dicetak.")

num = -1
if num > 0:
print(num, " adalah angka negatif.")
print("Ini juga selalu dicetak.")

Saat Anda menjalankan program, hasilnya adalah:

Analisa Program
Dalam contoh di atas, num> 0 adalah ekspresi uji. Isi if dijalankan hanya jika
bernilai True. Ketika variabel num sama dengan 3, ekspresi uji adalah True
dan pernyataan di dalam tubuh if dijalankan. Jika variabel num sama dengan
-1, ekspresi uji salah dan pernyataan di dalam tubuh if dilewati. Pernyataan
print () berada di luar blok if (tidak diberi jarak). Karenanya, ini dijalankan
terlepas dari ekspresi pengujian.

Sintak Perintah Python if…else

if test expression:
Body of if
else:
Body of else

Pernyataan if..else mengevaluasi ekspresi pengujian dan akan mengeksekusi


isi if hanya jika kondisi pengujian adalah True. Jika kondisinya False, maka
tubuh dari else dieksekusi. Indentasi digunakan untuk memisahkan blok.
Flowchart perintah if…else ditunjukkan dalam Gambar 3.14

BBPPMPV BOE Malang-DepTI-RPL-2023


50
Gambar 3. 14 Flowchart perintah if…else

Contoh
num = -1
if num >= 0:
print("Positive or Zero")
else:
print("Negative number")
Hasilnya:

Analisa Program
Dalam contoh di atas, ketika num sama dengan 7, ekspresi uji adalah True dan
isi if dijalankan dan isi else dilewati. Jika num sama dengan -5, ekspresi tesnya
False maka isi if dilewati dan isi else dijalankan.

Sintak Perintah Python if…elif… else

if test expression:
Body of if
elif test expression:
Body of elif
else:
Body of else

Elif adalah kependekan dari else if. Ini memungkinkan kita untuk memeriksa
beberapa ekspresi. Jika kondisi jika False, ia memeriksa kondisi blok elif
berikutnya dan seterusnya. Jika semua kondisinya False, body dari else
dieksekusi. Hanya satu blok di antara beberapa blok if ... elif ... else dijalankan
sesuai dengan kondisi. Blok if hanya dapat memiliki satu blok lagi. Tapi itu
bisa memiliki beberapa blok elif. Flowchart perintah if…else ditunjukkan
dalam Gambar 3.15

BBPPMPV BOE Malang-DepTI-RPL-2023


51
Gambar 3. 15 Flowchart perintah if…elif…else

Contoh
num = 3.4

if num > 0:
print("Positive number")
elif num == 0:
print("Zero")
else:
print("Negative number")
Hasilnya:

Analisa Program
Ketika variabel num bernilai positif, maka Positive number dicetak. Jika num
bernilai 0, maka Zero dicetak. Jika num bernilai negatif, maka Negative
number dicetak.

Perintah Python nested if

Kita dapat memiliki pernyataan if ... elif ... else di dalam pernyataan if ... elif
... else. Ini disebut nested dalam pemrograman komputer.
Sejumlah pernyataan ini bisa bertumpuk di dalam satu sama lain. Indentasi
adalah satu-satunya cara untuk mengetahui tingkat bersarang. Mereka bisa
membingungkan, jadi harus dihindari kecuali jika perlu.
Contoh:
num = int(input("Enter a number: "))
if num >= 0:
if num == 0:
print("Zero")
else:
print("Positive number")

BBPPMPV BOE Malang-DepTI-RPL-2023


52
else:
print("Negative number")

Output 1:
Enter a number: 5
Positive number

Output 2:
Enter a number: -1
Negative number

Output 3:
Enter a number: 0
Zero

Python for Secara umum, pernyataan dieksekusi secara berurutan: Pernyataan pertama
Loop dalam suatu fungsi dijalankan pertama, diikuti oleh yang kedua, dan
seterusnya. Mungkin ada situasi ketika Anda perlu mengeksekusi blok kode
beberapa kali.
Bahasa pemrograman menyediakan berbagai struktur kontrol yang
memungkinkan jalur eksekusi yang lebih rumit. Pernyataan loop
memungkinkan kita untuk mengeksekusi pernyataan atau sekelompok
pernyataan beberapa kali.
Tabel 3. 5 Perintah-Perintah Python Loop
No Perintah Diskripsi
1 for Menjalankan urutan pernyataan beberapa kali dan
menyingkat kode yang mengelola variabel loop.
2 while Mengulangi pernyataan atau sekelompok
pernyataan saat kondisi yang diberikan True. Ini
menguji kondisi sebelum menjalankan badan
perulangan.

BBPPMPV BOE Malang-DepTI-RPL-2023


53
3 Nested loop Anda dapat menggunakan satu atau lebih loop di
dalam while lainnya, for atau do.. while loop.

Perintah Kontrol Loop


Pernyataan kontrol loop mengubah eksekusi dari urutan normalnya. Saat
eksekusi meninggalkan ruang lingkup, semua objek otomatis yang dibuat
dalam lingkup itu dimusnahkan. Python mendukung pernyataan kontrol
berikut.
Tabel 3. 6 Perintah-Perintah Kontrol Loop
No Perintah Diskripsi
1 break Menghentikan pernyataan loop dan mentransfer
eksekusi ke pernyataan segera setelah loop.
2 continue Menyebabkan loop melewati sisa tubuhnya dan
segera menguji ulang kondisinya sebelum
mengulang.
3 pass Pernyataan pass dalam Python digunakan ketika
pernyataan diperlukan secara sintaksis tetapi
Anda tidak ingin perintah atau kode apa pun
dieksekusi.

Sintak Perintah Python for


Perulangan for di Python digunakan untuk mengulangi urutan (list, tuple,
string) atau objek iterable lainnya. Iterasi pada suatu urutan disebut traversal.

for val in sequence:


Body of for
Di sini, val adalah variabel yang mengambil nilai item di dalam urutan pada
setiap iterasi. Pengulangan berlanjut hingga kita mencapai item terakhir
dalam urutan. Badan loop for dipisahkan dari kode lainnya menggunakan
indentasi. Flowchart perintah for ditunjukkan dalam Gambar 3.16

Gambar 3. 16 Flowchart perintah for

BBPPMPV BOE Malang-DepTI-RPL-2023


54
Contoh
# List of numbers
numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11]

# variable to store the sum


sum = 0

# iterate over the list


for val in numbers:
sum = sum + val

print(numbers)
print("The sum is", sum)

Saat Anda menjalankan program, hasilnya adalah:

Fungsi range()
Kita bisa menghasilkan urutan angka menggunakan fungsi range(). range (10)
akan menghasilkan angka dari 0 sampai 9 (10 angka).Kita juga bisa
mendefinisikan ukuran start, stop dan step sebagai range(start, stop,
step_size). step_size default ke 1 jika tidak disediakan.
Untuk memaksa fungsi ini mengeluarkan semua item, kita dapat
menggunakan function list().

Contoh berikut akan menjelaskan hal ini.


print(range(10))
print(list(range(10)))
print(list(range(2, 8)))

Output:
range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7]

Kita bisa menggunakan fungsi range () di for loop untuk mengulang melalui
urutan angka. Itu dapat dikombinasikan dengan fungsi len () untuk
mengulang melalui urutan menggunakan pengindeksan. Berikut ini
contohnya.
genre = ['pop', 'rock', 'jazz']

# iterate over the list using index


for i in range(len(genre)):
print("I like", genre[i])

BBPPMPV BOE Malang-DepTI-RPL-2023


55
Output:
I like pop
I like rock
I like jazz

for loop dengan else


Sebuah for loop dapat memiliki blok else opsional juga. Bagian lain dijalankan
jika item dalam urutan yang digunakan dalam for loop habis. Kata kunci break
dapat digunakan untuk menghentikan pengulangan for. Dalam kasus seperti
itu, bagian lain akan diabaikan. Oleh karena itu, bagian lain dari perulangan
for berjalan jika tidak ada pemutusan hubungan kerja.
Berikut adalah contoh untuk menggambarkan hal ini.
digits = [0, 1, 5]

for i in digits:
print(i)
else:
print("No items left.")
Saat Anda menjalankan program, hasilnya adalah:
0
1
5
No items left.
Di sini, loop for mencetak item dari daftar hingga loop habis. Ketika loop for
habis, ia mengeksekusi blok kode di else dan mencetak no items left.
Pernyataan for...else dapat digunakan dengan kata kunci break untuk
menjalankan blok else hanya jika kata kunci break tidak dieksekusi. Mari kita
ambil contoh:

# program to display student's marks from record


student_name = 'Soyuj'

marks = {'James': 90, 'Jules': 55, 'Arthur': 77}

for student in marks:


if student == student_name:
print(marks[student])
break
else:
print('No entry with that name found.')

Output:

No entry with that name found.

BBPPMPV BOE Malang-DepTI-RPL-2023


56
Python while Perulangan while dalam Python digunakan untuk mengulang satu blok kode
Loop selama ekspresi uji (kondisi) benar.Kami biasanya menggunakan perulangan
ini ketika kami tidak mengetahui berapa kali untuk mengulang sebelumnya.

Sintak Perintah Python while


Perulangan for di Python digunakan untuk mengulangi urutan (list, tuple,
string) atau objek iterable lainnya. Iterasi pada suatu urutan disebut traversal.

while test_expression:
Body of while

Dalam while loop, ekspresi tes diperiksa terlebih dahulu. Isi loop hanya
dimasukkan jika test_expression bernilai True. Setelah satu iterasi, ekspresi
tes diperiksa lagi. Proses ini berlanjut hingga test_expression bernilai False.
Di Python, body loop while ditentukan melalui lekukan. Body dimulai dengan
lekukan dan baris pertama yang tidak menjorok menandai akhir. Python
mengartikan nilai bukan nol sebagai True. None dan 0 diartikan sebagai False.
Flowchart perintah while ditunjukkan dalam Gambar 3.17

Gambar 3. 17 Flowchart perintah while

Contoh

# Program to add natural


# numbers up to
# sum = 1+2+3+...+n

# To take input from the user,

n = int(input("Enter n: "))

# initialize sum and counter


sum = 0
i=1

BBPPMPV BOE Malang-DepTI-RPL-2023


57
while i <= n:
sum = sum + i
i = i+1 # update counter

# print the sum


print("The sum is", sum)

Saat Anda menjalankan program, hasilnya adalah:

Analisa Program
Dalam program di atas, ekspresi tes akan menjadi True selama variabel
penghitung kita i kurang dari atau sama dengan n (10 dalam program kita).
Kita perlu meningkatkan nilai variabel counter di badan loop. Ini sangat
penting (dan kebanyakan dilupakan). Kegagalan untuk melakukannya akan
menghasilkan loop tak terbatas (loop tanpa akhir).

while…else
Sama seperti for loop, loop juga dapat memiliki blok else opsional. Bagian lain
dijalankan jika kondisi di loop sementara bernilai False. Perulangan while
dapat diakhiri dengan pernyataan break. Dalam kasus seperti itu, bagian lain
akan diabaikan. Oleh karena itu, bagian lain loop sementara berjalan jika tidak
ada pemutusan yang terjadi dan kondisinya salah. Berikut adalah contoh
untuk menggambarkan hal ini.

counter = 0

while counter < 3:


print("Inside loop")
counter = counter + 1
else:
print("Inside else")
Output:
Inside loop
Inside loop
Inside loop
Inside else
Di sini, kami menggunakan variabel counter untuk mencetak string Inside
loop tiga kali. Pada iterasi keempat, kondisi sementara menjadi False.
Karenanya, bagian lain dijalankan.
Python break Sintak Perintah Python break
continue Pernyataan break menghentikan loop yang berisi itu. Kontrol program
pass mengalir ke pernyataan segera setelah badan loop.Jika pernyataan break

BBPPMPV BOE Malang-DepTI-RPL-2023


58
berada di dalam loop bersarang (loop di dalam loop lain), pernyataan break
akan menghentikan loop terdalam.

break

Flowchart perintah break ditunjukkan dalam Gambar 3.18

Gambar 3. 18 Flowchart perintah break

Cara kerja pernyataan break dalam for loop dan while loop ditampilkan
Gambar 3.19

Gambar 3. 19 Cara kerja perintah break dalam for dan while loop

Contoh:
for val in "string":
if val == "i":
break
print(val)

print("The end")

BBPPMPV BOE Malang-DepTI-RPL-2023


59
Saat Anda menjalankan program, hasilnya adalah:
s
t
r
The end

Analisa Program
Dalam program ini, kami melakukan iterasi melalui urutan "string". Kami
memeriksa apakah hurufnya adalah i, di mana kami memutuskan dari loop.
Oleh karena itu, kami melihat dalam output kami bahwa semua huruf sampai
i dicetak. Setelah itu, loop berakhir.

Sintak Perintah Python continue


Pernyataan continue digunakan untuk melewati sisa kode di dalam loop
hanya untuk iterasi saat ini. Loop tidak berhenti tetapi berlanjut dengan iterasi
berikutnya.

continue

Flowchart perintah continue ditunjukkan dalam Gambar 3.20

Gambar 3. 20 Flowchart perintah continue

Cara kerja pernyataan break dalam for loop dan while loop ditampilkan
Gambar 3.21

BBPPMPV BOE Malang-DepTI-RPL-2023


60
Gambar 3. 21 Cara ker perintah continue dalam for dan while loop

Contoh:
for val in "string":
if val == "i":
continue
print(val)

print("The end")

Saat Anda menjalankan program, hasilnya adalah:


s
t
r
n
g
The end

Analisa Program
Program ini sama dengan contoh di atas kecuali pernyataan break diganti
dengan continue. Kami melanjutkan dengan loop, jika string adalah i, tidak
mengeksekusi sisa blok. Oleh karena itu, kami melihat dalam output kami
bahwa semua huruf kecuali i dicetak.

Tugas 4. Jalankan dan analisa kode program:

total_belanja = int(input("Total belanja: Rp "))


bayar = total_belanja

if total_belanja > 100000:


print("Kamu mendapatkan bonus minuman dingin")
print("dan diskon 5%")
diskon = total_belanja * 5/100
bayar = total_belanja - diskon

print("Total yang harus dibayar: Rp ", bayar)


print("Terima kasih sudah berbelanja")
print("Datang lagi yaa...")

BBPPMPV BOE Malang-DepTI-RPL-2023


61
5. Jalankan dan analisa kode program:

jawab = 'ya'
hitung = 0

while(True):
hitung += 1
jawab = input("Apakah Anda mau ulang lagi(ya/tidak)? ")
if jawab == 'tidak':
break

print("Total perulagan: " + str(hitung))

6. Jalankan dan analisa kode program:

Pada baris ke-8 ubahlah perintah break dengan continue

Kesimpulan

4.5. Fungsi dan Module

Lab. 5 Fungsi dan Module

BBPPMPV BOE Malang-DepTI-RPL-2023


62
Tujuan 1. Menerapkan fungsi dalam kode program
2. Menerapkan module dalam kode program
Python Di Python, fungsi adalah sekelompok pernyataan terkait yang melakukan
Fungsi tugas tertentu. Fungsi membantu memecah program kita menjadi bagian yang
lebih kecil dan modular. Seiring program kami tumbuh semakin besar, fungsi
membuatnya lebih terorganisir dan mudah dikelola. Selain itu, ini
menghindari pengulangan dan membuat kode dapat digunakan kembali
disajikan dalam Gambar 3.22

Gambar 3. 22 Cara kerja fungsi dalam Python

Sintak membuat Fungsi

def function_name(parameters):
"""docstring"""
statement(s)

Di atas ditunjukkan adalah definisi fungsi yang terdiri dari komponen-


komponen berikut.
1. Kata kunci def yang menandai dimulainya header fungsi.
2. Nama fungsi untuk mengidentifikasi fungsi secara unik. Penamaan fungsi
mengikuti aturan yang sama dalam menulis pengenal dengan Python.
3. Parameter (argumen) yang digunakan untuk meneruskan nilai ke suatu
fungsi.
4. Titik dua (:) untuk menandai akhir dari header fungsi.
5. String dokumentasi opsional (docstring) untuk mendeskripsikan fungsi.
6. Satu atau lebih pernyataan python valid yang menyusun badan fungsi.
Perintah harus memiliki tingkat indentasi yang sama (biasanya 4 spasi).
7. Perintah return opsional untuk mengembalikan nilai dari fungsi.
Contoh
def greet(name):
print("Hello, " + name + ". Good morning!")

Bagaimana cara memanggil fungsi di python?


Setelah kita mendefinisikan sebuah fungsi, kita dapat memanggilnya dari
fungsi lain, program atau bahkan prompt Python. Untuk memanggil suatu
fungsi, kita cukup mengetikkan nama fungsi dengan parameter yang sesuai.

BBPPMPV BOE Malang-DepTI-RPL-2023


63
>>> greet('Paul')
Hello, Paul. Good morning!

Selanjutnya lengkapi program berikut,


def greet(name):
"""
This function greets to
the person passed in as
a parameter
"""
print("Hello, " + name + ". Good morning!")

greet('Paul')

Docstrings
String pertama setelah header fungsi disebut docstring dan merupakan
kependekan dari string dokumentasi. Ini secara singkat digunakan untuk
menjelaskan apa yang dilakukan suatu fungsi. Meskipun opsional,
dokumentasi adalah praktik pemrograman yang baik. Kecuali Anda dapat
mengingat apa yang Anda makan untuk makan malam minggu lalu, selalu
dokumentasikan kode Anda. Dalam contoh di atas, kami memiliki docstring
tepat di bawah header fungsi. Kami biasanya menggunakan tanda kutip tiga
sehingga docstring dapat diperpanjang hingga beberapa baris. String ini
tersedia bagi kita sebagai atribut __doc__ dari fungsi tersebut.
Coba jalankan perintah berikut ke shell Python untuk melihat hasilnya
>>> print(greet.__doc__)

This function greets to


the person passed in as
a parameter

Perintah return
Pernyataan return digunakan untuk keluar dari fungsi dan kembali ke tempat
pemanggilannya.

return [expression_list]

Pernyataan ini dapat berisi ekspresi yang dievaluasi dan nilainya


dikembalikan. Jika tidak ada ekspresi dalam pernyataan return itu sendiri
tidak ada di dalam fungsi, maka fungsi tersebut akan mengembalikan objek
None.
>>> print(greet("May"))
Hello, May. Good morning!
None
Di sini, None adalah nilai yang dikembalikan karena greet () langsung
mencetak nama dan tidak ada pernyataan return yang digunakan.
Contoh:
def absolute_value(num):

BBPPMPV BOE Malang-DepTI-RPL-2023


64
"""This function returns the absolute
value of the entered number"""
if num >= 0:
return num
else:
return -num

print(absolute_value(2))
print(absolute_value(-4))
Output:
2
4
Scope dan Lifetime Variabel
Cakupan variabel adalah porsi program tempat variabel dikenali. Parameter
dan variabel yang ditentukan di dalam fungsi tidak terlihat dari luar fungsi.
Karenanya, mereka memiliki cakupan lokal.Umur variabel adalah periode
selama variabel keluar dalam memori. Masa pakai variabel di dalam suatu
fungsi selama fungsi tersebut dijalankan.Mereka dikosongkan begitu kita
kembali dari fungsinya. Karenanya, suatu fungsi tidak mengingat nilai
variabel dari pemanggilan sebelumnya.
Berikut adalah contoh untuk mengilustrasikan ruang lingkup variabel di
dalam fungsi.
def my_func():
x = 10
print("Value inside function:",x)

x = 20
my_func()
print("Value outside function:",x
Output:
Value inside function: 10
Value outside function: 20

Analisa Program
Di sini, kita dapat melihat bahwa nilai x awalnya adalah 20. Meskipun fungsi
my_func() mengubah nilai x menjadi 10, itu tidak mempengaruhi nilai di luar
fungsi. Ini karena variabel x di dalam fungsi lokal. Meskipun memiliki nama
yang sama, keduanya adalah variabel berbeda dengan cakupan berbeda. Di
sisi lain, variabel di luar fungsi terlihat dari dalam. Mereka memiliki cakupan
global.Kita dapat membaca nilai-nilai ini dari dalam fungsi tetapi tidak dapat
mengubah (menulis). Untuk mengubah nilai variabel di luar fungsi, mereka
harus dideklarasikan sebagai variabel global menggunakan kata kunci global.

Argumen
Dalam topik fungsi yang ditentukan pengguna, kita belajar tentang
mendefinisikan fungsi dan memanggilnya. Jika tidak, pemanggilan fungsi
akan menghasilkan kesalahan. Berikut ini contohnya.

BBPPMPV BOE Malang-DepTI-RPL-2023


65
def greet(name, msg):
"""This function greets to
the person with the provided message"""
print("Hello", name + ', ' + msg)

greet("Monica", "Good morning!")


Output:
Hello Monica, Good morning!

Analisa Program
Di sini, fungsi greet() memiliki dua parameter. Karena kami telah memanggil
fungsi ini dengan dua argumen, ini berjalan dengan lancar dan kami tidak
mendapatkan kesalahan apa pun. Jika kita menyebutnya dengan jumlah
argumen yang berbeda, interpreter akan menampilkan pesan error.

Argumen Fungsi Variabel


Hingga saat ini, fungsi memiliki sejumlah argumen tetap. Di Python, ada cara
lain untuk mendefinisikan fungsi yang dapat menggunakan sejumlah variabel
argumen.
Tiga bentuk berbeda dari jenis ini dijelaskan di bawah.
Argumen Default Python
Argumen fungsi dapat memiliki nilai default dengan Python.
Kita bisa memberikan nilai default ke argumen dengan menggunakan
operator penugasan (=). Berikut ini contohnya.
def greet(name, msg="Good morning!"):
print("Hello", name + ', ' + msg)

greet("Kate")
greet("Bruce", "How do you do?")

Hasilnya:
Hello Kate, Good morning!
Hello Bruce, How do you do?

Analisa Program
Dalam fungsi ini, parameter name tidak memiliki nilai default dan diperlukan
(wajib) selama panggilan. Di sisi lain, parameter msg memiliki nilai default
"Good morning!". Jadi, ini opsional selama panggilan. Jika nilai diberikan,
nilai tersebut akan menimpa nilai default. Sejumlah argumen dalam suatu
fungsi dapat memiliki nilai default. Tapi begitu kita memiliki argumen default,
semua argumen di sebelah kanannya juga harus memiliki nilai default..

Argumen Python *
Terkadang, kita tidak mengetahui sebelumnya jumlah argumen yang akan
diteruskan ke suatu fungsi. Python memungkinkan kita menangani situasi
semacam ini melalui pemanggilan fungsi dengan sejumlah argumen yang
berubah-ubah. Dalam definisi fungsi, kami menggunakan tanda bintang (*)

BBPPMPV BOE Malang-DepTI-RPL-2023


66
sebelum nama parameter untuk menunjukkan jenis argumen ini. Berikut ini
contohnya.

def greet(*names):
"""This function greets all
the person in the names tuple."""
# names is a tuple with arguments
for name in names:
print("Hello", name)

greet("Monica", "Luke", "Steve", "John")


Output:

Hello Monica
Hello Luke
Hello Steve
Hello John

Analisa Program
Di sini, kami telah memanggil fungsi dengan banyak argumen. Argumen ini
dibungkus menjadi tupel sebelum diteruskan ke fungsi. Di dalam fungsi, kami
menggunakan perulangan for untuk mengambil semua argumen kembali.

Fungsi Rekursif

Rekursi adalah proses mendefinisikan sesuatu dalam istilah itu sendiri.Contoh


dunia fisik adalah menempatkan dua cermin paralel saling berhadapan. Objek
apa pun di antara mereka akan dipantulkan secara rekursif.
Dengan Python, kita tahu bahwa suatu fungsi dapat memanggil fungsi lain.
Bahkan dimungkinkan bagi fungsi untuk memanggil dirinya sendiri. Jenis
konstruksi ini disebut sebagai fungsi rekursif. Gambar 3.23 menunjukkan kerja
fungsi rekursif yang disebut rekursi.

Gambar 3. 23 Fungsi Rekursif

Berikut adalah contoh fungsi rekursif untuk mencari faktorial dari sebuah
bilangan bulat.Faktorial suatu angka adalah hasil kali semua bilangan bulat
dari 1 sampai angka itu. Misalnya, faktorial dari 6 (dilambangkan sebagai 6!)
Adalah 1 * 2 * 3 * 4 * 5 * 6 = 720.
Contoh:
def factorial(x):

BBPPMPV BOE Malang-DepTI-RPL-2023


67
"""This is a recursive function
to find the factorial of an integer"""

if x == 1:
return 1
else:
return (x * factorial(x-1))

num = 3
print("The factorial of", num, "is", factorial(num))

Output :

The factorial of 3 is 6

Analisa Program
Dalam contoh di atas, faktorial () adalah fungsi rekursif saat memanggil
dirinya sendiri.
Saat kita memanggil fungsi ini dengan bilangan bulat positif, fungsi ini akan
secara rekursif memanggil dirinya sendiri dengan mengurangi angkanya.
Setiap fungsi mengalikan bilangan dengan faktorial dari bilangan di
bawahnya hingga sama dengan satu. Panggilan rekursif ini dapat dijelaskan
dalam langkah-langkah berikut.
factorial(3) # 1st call with 3
3 * factorial(2) # 2nd call with 2
3 * 2 * factorial(1) # 3rd call with 1
3*2*1 # return from 3rd call as number=1
3*2 # return from 2nd call
6 # return from 1st call

Mari kita lihat gambar yang menunjukkan proses langkah demi langkah dari
apa yang sedang terjadi:

Gambar 3. 24 Cara Kerja Fungsi Rekursif

BBPPMPV BOE Malang-DepTI-RPL-2023


68
Rekursi kami berakhir ketika angka tersebut berkurang menjadi 1. Ini disebut
kondisi dasar. Setiap fungsi rekursif harus memiliki kondisi dasar yang
menghentikan rekursi atau fungsi memanggil dirinya sendiri tanpa batas.
Intepreter Python membatasi kedalaman rekursi untuk membantu
menghindari rekursi tak terbatas, yang mengakibatkan tumpukan berlebih.
Secara default, kedalaman rekursi maksimum adalah 1000

BBPPMPV BOE Malang-DepTI-RPL-2023


69
Python Module di Python
Module Modul merujuk ke file yang berisi pernyataan dan definisi Python. File yang
berisi kode Python, misalnya: example.py, disebut modul, dan nama
modulnya akan menjadi contoh. Kami menggunakan modul untuk memecah
program besar menjadi file kecil yang dapat dikelola dan diatur. Selain itu,
modul menyediakan kode yang dapat digunakan kembali. Kita dapat
mendefinisikan fungsi yang paling sering kita gunakan dalam sebuah modul
dan mengimpornya, daripada menyalin definisinya ke program yang berbeda.
Mari kita buat modul. Ketik berikut ini dan simpan sebagai example.py.

# Python Module example

def add(a, b):


"""This program adds two
numbers and return the result"""

result = a + b
return result

Di sini, kami telah mendefinisikan fungsi add () di dalam modul bernama


example.py. Fungsi tersebut mengambil dua angka dan mengembalikan
jumlahnya.

Bagaimana cara mengimport modul dengan Python?


Kita dapat mengimpor definisi di dalam modul ke modul lain atau interpreter
interaktif dengan Python. Kami menggunakan kata kunci import untuk
melakukan ini. Untuk mengimpor example.py modul yang kami definisikan
sebelumnya, kami mengetik yang berikut ini di prompt Python.

>>> import example.add(4,5.5)


Ini tidak mengimpor nama fungsi yang ditentukan dalam contoh secara
langsung di tabel simbol saat ini. Itu hanya mengimpor contoh nama modul
di sana. Menggunakan nama modul kita dapat mengakses fungsi
menggunakan titik. operator. Sebagai contoh:

>>> example.add(4,5.5)
9.5

Python memiliki banyak modul standar. Anda dapat melihat daftar lengkap
modul standar Python dan kasus penggunaannya. File-file ini ada di direktori
Lib di dalam lokasi tempat Anda menginstal Python. Modul standar dapat
diimpor dengan cara yang sama seperti kita mengimpor modul yang
ditentukan pengguna. Ada berbagai cara untuk mengimpor modul.
Kita dapat mengimpor modul menggunakan pernyataan import dan
mengakses definisi di dalamnya menggunakan operator titik seperti
dijelaskan di atas. Berikut ini contohnya,

BBPPMPV BOE Malang-DepTI-RPL-2023


70
# import statement example
# to import standard module math

import math
print("The value of pi is", math.pi)
Saat Anda menjalankan program, hasilnya adalah:

The value of pi is 3.141592653589793

Import dengan Penggantian Nama

# import module by renaming it

import math as m
print("The value of pi is", m.pi)

Kami telah mengganti nama modul math menjadi m. Ini dapat menghemat
waktu mengetik dalam beberapa kasus. Perhatikan bahwa nama math tidak
dikenali dalam lingkup kami. Karenanya, math.pi tidak valid, dan m.pi
adalah implementasi yang benar.

Perintah Python from...import

Kita dapat mengimpor nama tertentu dari modul tanpa mengimpor modul
secara keseluruhan. Berikut ini contohnya.

# import only pi from math module

from math import pi


print("The value of pi is", pi)

Di sini, kami hanya mengimpor atribut pi dari modul math. Dalam kasus
seperti itu, kami tidak menggunakan operator titik. Kami juga dapat
mengimpor beberapa atribut sebagai berikut:
>>> from math import pi, e
>>> pi
3.141592653589793
>>> e
2.718281828459045

Import all Name

Kita dapat mengimpor semua nama (definisi) dari modul menggunakan


konstruksi berikut:

# import all names from the standard module math

from math import *


print("The value of pi is", pi)

BBPPMPV BOE Malang-DepTI-RPL-2023


71
Di sini, kami telah mengimpor semua definisi dari modul math. Ini mencakup
semua nama yang terlihat dalam cakupan kami, kecuali yang diawali dengan
garis bawah.
Meng-import segala sesuatu dengan simbol asterisk (*) bukanlah praktik
pemrograman yang baik. Ini dapat menyebabkan definisi duplikat untuk
pengenal. Itu juga menghambat pembacaan kode kita.
Tugas 1. Jalankan dan analisa kode program:

2. Jalankan dan analisa kode program:


rumusBidang.py

mainBidang.py

3. Jalankan dan analisa kode program:

BBPPMPV BOE Malang-DepTI-RPL-2023


72
Kesimpulan

BBPPMPV BOE Malang-DepTI-RPL-2023


73
4.6. Digital Input-Output

Lab. 6 Digital Input Output


Pendahuluan Salah satu alasan Raspberry Pi sangat populer digunakan adalah karena
memiliki 40-pin GPIO yang memungkinkan pengguna untuk
menghubungkan komponen elektronik dan mengendalikan mereka dengan
sebuah program. Kode program untuk proyek komputasi fisik biasanya
ditulis dengan Python, akan menjadi jauh lebih mudah jika kita
menggunakan library yang sudah disediakan oleh GPIO Raspberry Pi.
Sebelum adanya library, untuk menghubungkan dan mengatur perangkat
elektronik diperlukan banyak baris kode program. GPIO akan menjalankan
semua kode ini untuk Anda, sehingga Anda dapat fokus pada pengendalian
perangkat fisik. Hal ini akan membantu Anda untuk mengembangkan
perangkat elektronika dengan sedikit kode program. Hal ini membuat
programmer pemula lebih mudah untuk memahami.

Gambar 3. 25 GPIO Raspberry Pi 4

Alat dan  1 Buah LED 5mm atau LED 3mm


Bahan  1 Buah Resistor 100Ω - 220 Ω
 2 Buah Kabel Jumper
 1 Buah Project board
 1 Buah Raspberry Pi 4

BBPPMPV BOE Malang-DepTI-RPL-2023


74
Rangkaian
Kerja

Gambar 3. 26 Rangkaian Kerja LED Blink

Keterangan :
 PIN 8 (GPIO14) sebagai output dihubungkan ke resistor
 Sisi lain dari Resistor di hubungkan ke positif LED
 PIN 6 ke GND dihubungkan ke LED negatif
Kode Program Program Python untuk LED Berkedip atau Blink LED menggunakan
raspberry Pi 4 ada beberapa cara, berikut ini dipaparkan cara menyalakan
LED dengan Aktif HIGH.
Cara Pertama

Analisa Program
 Baris ke-1 module RPi.GPIO yang diperlukan untuk mengenali PIN
IO dari raspberry Pi
 Baris ke-2 module time untuk fungsi tunda waktu
 Baris ke-4 fungsi setmode() untuk memilih GPIO14 mode BCM
(Broadcom)
 Baris ke-5 fungsi setup() untuk mengatur GPIO14 sebagai output
 Baris ke-7 while(True) mengulang perintah baris ke 8 sampai ke 11
selama kondisinya True.
o Baris ke-8 fungsi output() untuk mengeset GPIO14 dalam
logika True sehingga LED menyala

BBPPMPV BOE Malang-DepTI-RPL-2023


75
o Baris ke-9 fungsi sleep(1) untuk mengatur tunda waktu dalam
satu detik
o Baris ke-10 fungsi output() untuk mengeset GPIO14 dalam
logika False sehingga LED mati
o Baris ke-11 fungsi sleep(1) untuk mengatur tunda waktu
dalam satu detik, selanjutnya program akan mengulang
proses mulai dari baris ke-7 sampai baris ke-11 terus menerus
selama kondisinya True.
Cara Kedua

Tugas 1. Jalankan dan analisalah program berikut ini:

2. Rangkaian lampu berjalan

BBPPMPV BOE Malang-DepTI-RPL-2023


76
Gambar 3. 27 Rangkaian Kerja Lampu Berjalan

PROJEK
Projek 1 Pembuatan Traffic Light

GPIO2 GPIO5 GPIO8 GPIO11


GPIO3 GPIO6 GPIO9 GPIO12
GPIO4 GPIO7 GPIO10 GPIO13

Raspberry Pi 4
Projek 2 Gambar 3. 28 Rangkaian Kerja Traffic Light

Pembuatan program Lampu LED Berjalan Kekiri dan Kekanan. Gunakan 4


GPIO pada Raspberry Pi 4 untuk Membuat Lampu LED Berjalan Kekiri dan
Kekanan. Alat dan bahan yang digunakan,
 5 Buah LED 5mm atau LED 3mm (Warna Bebas)
 5 Buah Resistor 100Ω Ohm
 6 Buah Kabel Jumper
 1 Buah Protoboard
 1 Buah Raspberry PI
Kesimpulan

BBPPMPV BOE Malang-DepTI-RPL-2023


77
4.7. Digital Analog Sensor

Lab. 7 Digital Analog Sensor


Push Button Push button switch (saklar tombol tekan) adalah perangkat / saklar
sederhana yang berfungsi untuk menghubungkan atau memutuskan aliran
arus listrik dengan sistem kerja tekan unlock (tidak mengunci). Sistem kerja
unlock disini berarti saklar akan bekerja sebagai device penghubung atau
pemutus aliran arus listrik saat tombol ditekan, dan saat tombol tidak ditekan
(dilepas), maka saklar akan kembali pada kondisi normal.
Sebagai device penghubung atau pemutus, push button switch hanya
memiliki 2 kondisi, yaitu On dan Off (1 dan 0). Istilah On dan Off ini menjadi
sangat penting karena semua perangkat listrik yang memerlukan sumber
energi listrik pasti membutuhkan kondisi On dan Off.

Gambar 3. 29 Bentuk Push Button

Karena sistem kerjanya yang unlock dan langsung berhubungan dengan


operator, push button switch menjadi device paling utama yang biasa
digunakan untuk memulai dan mengakhiri kerja mesin di industri.
Secanggih apapun sebuah mesin bisa dipastikan sistem kerjanya tidak
terlepas dari keberadaan sebuah saklar seperti push button switch atau
perangkat lain yang sejenis yang bekerja mengatur pengkondisian On dan
Off.

Gambar 3. 30 Cara Kerja Push Button

Berdasarkan fungsi kerjanya yang menghubungkan dan memutuskan, push


button switch mempunyai 2 tipe kontak yaitu NC (Normally Close) dan NO
(Normally Open).
 NO (Normally Open), merupakan kontak terminal dimana kondisi
normalnya terbuka (aliran arus listrik tidak mengalir). Dan ketika
tombol saklar ditekan, kontak yang NO ini akan menjadi menutup
(Close) dan mengalirkan atau menghubungkan arus listrik. Kontak

BBPPMPV BOE Malang-DepTI-RPL-2023


78
NO digunakan sebagai penghubung atau menyalakan sistem circuit
(Push Button ON).
 NC (Normally Close), merupakan kontak terminal dimana kondisi
normalnya tertutup (mengalirkan arus litrik). Dan ketika tombol
saklar push button ditekan, kontak NC ini akan menjadi membuka
(Open), sehingga memutus aliran arus listrik. Kontak NC digunakan
sebagai pemutus atau mematikan sistem circuit (Push Button Off).

Tactile Switch
Push button ini disebut dengan tactile switch normaly open . Tombol tekan
memungkinkan kita untuk menyalakan sirkuit atau membuat koneksi
tertentu hanya ketika kita menekan tombol. Sederhananya, itu membuat
sirkuit terhubung saat ditekan dan putus saat dilepas. Tombol tekan juga
digunakan untuk memicu SCR dengan terminal gerbang. Ini adalah tombol
paling umum yang kita lihat di peralatan elektronik kehidupan sehari-hari
kita.
Tambahkan tombol tekan (push button) pada breadboard bagian tengah,
sehingga antara kakinya tidak ada yang berhubungan. Lalu hubungkan
kabel jumper malefemale dari kolom satu pin pada GPIO Raspberry Pi.
Kemudian hubungkan kawat jumper male dari pin yang lain (pada sisi yang
sama dari alur) ke GND (-). Akhirnya, hubungkan kawat jumper male-female
dari yang terakhir ke pin GND pada Pi.

Gambar 3. 31 Bentuk dan Simbol Tactile Switch

Alat dan  1 Buah push button (tactile switch)


Bahan  1 Buah LED 5mm atau LED 3mm
 1 Buah Resistor 100Ω - 220 Ω
 2 Buah Kabel Jumper
 1 Buah Project board
 1 Buah Raspberry Pi 4

BBPPMPV BOE Malang-DepTI-RPL-2023


79
Rangkaian
Kerja

Gambar 3. 32 Rangkaian Kerja Kontrol LED dengan Push Button

Keterangan :
 PIN 8 (GPIO14) sebagai input dihubungkan ke salah satu kaki tactile
switch
 PIN 10 (GPIO15) sebagai output dihubungkan ke positif LED
Kode Program Program Python untuk mengontrol LED melalaui saklar push button
menggunakan raspberry Pi 4 ada beberapa cara yaitu,
Cara Pertama

Analisa Program
 Baris ke-1 module RPi.GPIO yang diperlukan untuk mengenali PIN
IO dari raspberry Pi
 Baris ke-2 module time untuk fungsi tunda waktu
 Baris ke-3 fungsi setwarning() bernilai False untuk menonaktifkan
warning
 Baris ke-5 membuat variabel untuk inptBtn untuk menampung
nomor pin GPIO
 Baris ke-6 fungsi setmode() untuk memilih GPIO14 mode BCM
(Broadcom)
 Baris ke-7 fungsi setup() untuk mengatur GPIO15 sebagai output

BBPPMPV BOE Malang-DepTI-RPL-2023


80
 Baris ke-8 fungsi setup() untuk mengatur GPIO14 sebagai input
dengan mengatur pull down sama dengan pull up.
 Baris ke-10 while(True) mengulang perintah baris ke 11 sampai ke 16
selama kondisinya True.
o Baris ke-11 fungsi output() untuk mengeset GPIO15 dalam
logika False
o Baris ke-12 variabel ab untuk menampung hasil fungsi
input(inpBtn) dari GPIO14
o Baris ke-13 adalah pengujian kondisi perintah if ab==False
jika logika True maka mengerjakan perintah baris ke-14
sampai baris 16.
 Baris ke-14 fungsi output() untuk mengeset GPIO15
dalam logika True sehingga LED menyala
 Baris ke-15 fungsi print() untuk mencetak data ke
monitor
 Baris ke-16 fungsi sleep(0.2) untuk mengatur tunda
waktu dalam 0,2 detik, selanjutnya program akan
mengulang proses mulai dari baris ke-11 sampai baris
ke-16 terus menerus selama kondisinya True.
Tugas Jalankan dan analisalah program berikut !

LDR (Light Light Dependent Resistor atau disingkat dengan LDR adalah jenis Resistor
Dependent yang nilai hambatan atau nilai resistansinya tergantung pada intensitas
Resistor) cahaya yang diterimanya. Nilai Hambatan LDR akan menurun pada saat
cahaya terang dan nilai Hambatannya akan menjadi tinggi jika dalam kondisi
gelap. Dengan kata lain, fungsi LDR (Light Dependent Resistor) adalah
untuk menghantarkan arus listrik jika menerima sejumlah intensitas cahaya
(Kondisi Terang) dan menghambat arus listrik dalam kondisi gelap.
Naik turunnya nilai Hambatan akan sebanding dengan jumlah cahaya yang
diterimanya. Pada umumnya, Nilai Hambatan LDR akan mencapai 200 Kilo
Ohm (kΩ) pada kondisi gelap dan menurun menjadi 500 Ohm (Ω) pada
Kondisi Cahaya Terang. LDR (Light Dependent Resistor) yang merupakan

BBPPMPV BOE Malang-DepTI-RPL-2023


81
Komponen Elektronika peka cahaya ini sering digunakan atau diaplikasikan
dalam Rangkaian Elektronika sebagai sensor pada Lampu Penerang Jalan,
Lampu Kamar Tidur, Rangkaian Anti Maling, Shutter Kamera, Alarm dan
lain sebagainya.

Gambar 3. 33 Simbol dan Bentuk LDR

Cara Mengukur LDR (Light Dependent Resistor) dengan Multimeter

Alat Ukur yang digunakan untuk mengukur nilai hambatan LDR adalah
Multimeter dengan fungsi pengukuran Ohm (Ω). Agar Pengukuran LDR
akurat, kita perlu membuat 2 kondisi pencahayaan yaitu pengukuran pada
saat kondisi gelap dan kondisi terang. Dengan demikian kita dapat
mengetahui apakah Komponen LDR tersebut masih dapat berfungsi dengan
baik atau tidak.
Mengukur LDR pada Kondisi Terang
1. Atur posisi skala selektor Multimeter pada posisi Ohm
2. Hubungkan Probe Merah dan Probe Hitam Multimeter pada kedua kaki
LDR (tidak ada polaritas)
3. Berikan cahaya terang pada LDR
4. Baca nilai resistansi pada Display Multimeter. Nilai Resistansi LDR pada
kondisi terang akan berkisar sekitar 500 Ohm.

Gambar 3. 34 Cara Mengukur LDR Pada Kondisi Terang

BBPPMPV BOE Malang-DepTI-RPL-2023


82
Mengukur LDR pada Kondisi Gelap
1. Atur posisi skala selektor Multimeter pada posisi Ohm
2. Hubungkan Probe Merah dan Probe Hitam Multimeter pada kedua kaki
LDR (tidak ada polaritas)
3. Tutup bagian permukaan LDR atau pastikan LDR tidak mendapatkan
cahaya
4. Baca nilai resistansi pada Display Multimeter. Nilai Resistansi LDR di
kondisi gelap akan berkisar sekitar 200 KOhm.

Gambar 3. 35 Cara Mengukur LDR Pada Kondisi Gelap

Rangkaian
Kerja

Gambar 3. 36 Rangkaian Kerja Sensor LDR

Alat dan  1 Buah LDR


Bahan  1 Buah LED 5mm atau LED 3mm
 1 Buah Resistor 100Ω - 220 Ω
 2 Buah Kabel Jumper
 1 Buah Project board
 1 Buah Raspberry Pi 4
Kode Program

BBPPMPV BOE Malang-DepTI-RPL-2023


83
Analisa Program
 Baris ke-1 module RPi.GPIO yang diperlukan untuk mengenali PIN
IO dari raspberry Pi
 Baris ke-2 module time untuk fungsi tunda waktu
 Baris ke-3 fungsi setmode() untuk memilih GPIO mode BOARD
 Baris ke-4 variabel ldr diset untuk GPIO PIN 3
 Baris ke-5 vaiabel tunda diset 0.1 untuk fungsi sleep() sebesar 100 ms
 Baris ke-6 membuat fungsi rc_time(ldr)untuk menghitung nilai LDR
o Baris ke-7 inisialisasi variabel count=0
o Baris ke-8 fungsi setup() untuk mengatur LDR pada PIN 3
sebagai output.
o Baris ke-9 fungsi output() untuk LDR dalam logika LOW
o Baris ke-10 fungsi sleep(0.1) untuk mengatur tunda waktu
dalam 100 ms
o Baris ke-10 fungsi setup() untuk mengatur LDR pada PIN 3
sebagai input.
o Baris ke-11 while(True) mengulang perintah baris ke 14
sampai ke 15 selama kondisinya True.
 Baris ke-14 menghitung count = count + 1
 Baris ke-15 mengembalikan nilai count
o Baris ke-17 perintah Try: untuk memulai exception
o Baris ke-18 while(True) mengulang perintah baris ke 19
sampai selama kondisinya True.
 Baris ke-19 memanggil fungsi rc_time(ldr)dan
menampilkan hasilnya
o Baris ke-21 perintah except KeyboardInterrupt: untuk
penanganan error dengan melewatkan kesalahan melalui
perintah pass baris ke-22

BBPPMPV BOE Malang-DepTI-RPL-2023


84
o Baris ke-24 perintah finally: menunjukkan bahwa perintah
baris 25 harus dijalankan.
Tugas Rencanakan rangkaian elektronik dengan menghubunkan GPIO pada
Raspberry Pi 4 agar kode program di bawah ini berfungsi.

BBPPMPV BOE Malang-DepTI-RPL-2023


85
Sensor HC- Sensor HC-SRF04 adalah sensor pengukur jarak berbasis gelombang
SRF04 ultrasonik. Prinsip kerja sensor ini mirip dengan radar ultrasonik.
Gelombang ultrasonik di pancarkan kemudian di terima balik oleh receiver
ultrasonik. Jarak antara waktu pancar dan waktu terima adalah representasi
dari jarak objek. Sensor ini cocok untuk aplikasi elektronik yang memerlukan
deteksi jarak termasuk untuk sensor pada robot.

Gambar 1. Diagram Pin Sensor Ultrasonik HC-SR04


Umumnya jenis sensor ini punya 4 pin (Ground, Trigger/Input,
Echo/Output, dan VCC). Ketika kita mengirimkan sinyal pemicu (trigger) ke
inputnya, sensor ini akan melemparkan gelombang suara (ping), gelombang
yang telah terlempar akan menabrak halangan di depannya dan
terpantulkan kembali ke arah sensor. Kemudian, dengan sangat cepat, sensor
berganti dari mode kirim ke mode terima (echo), ketika gelombang suara
yang tadi dikirim terpantulkan dan pantulannya mengenai sensor, maka
sensor akan mengirimkan sinyal bahwa gelombang telah di terima melalui
outputnya.
Sinyal kirim dan sinyal terima inilah yang kita jadikan patokan untuk
mendapatkan jarak dari sensor ke halangan. Rumusnya bisa ditebak,
pertama kita bisa mengurangi waktu terima dan waktu kirim, jadi kita bisa
menemukan selisih waktu dari sinyal dikirim dan sinyal diterima.
Selanjutnya, selisih yang masih dalam format waktu ini kita gunakan untuk
menghitung jarak dalam satuan meter. Caranya, tentu kita harus mengetahu
berapa kecepatan suara. Kecepatan suara adalah 343.2 m/d diukur dengan
kondisi udara kering bersuhu 20C.

Gambar 2. Rangkaian Sensor HC-SRF04 dengan pin Rapsberry pi

BBPPMPV BOE Malang-DepTI-RPL-2023


86
Alat dan  1 Buah push button (tactile switch)
Bahan  1 Buah LED 5mm atau LED 3mm
 2 Buah Resistor 330Ω - 470 Ω
 2 Buah Kabel Jumper
 1 Buah Project board
 1 Buah Sensor HC-SRF04
 1 Buah Raspberry Pi 4

Rangkaian
Kerja

Keterangan :
 PIN 7 (GPIO4) sebagai TRIGGER
 PIN 11 (GPIO17) sebagai ECHO
Kode Program import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO_TRIGGER = 23
GPIO_ECHO = 24

GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
GPIO.output(GPIO_TRIGGER, GPIO.LOW)

def get_range():
GPIO.output(GPIO_TRIGGER, True)
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
timeout_counter = int(time.time())
start = time.time()

while GPIO.input(GPIO_ECHO) == 0 :
start = time.time()

BBPPMPV BOE Malang-DepTI-RPL-2023


87
timeout_counter = int(time.time())
stop = time.time()

while GPIO.input(GPIO_ECHO) == 1:
stop = time.time()

elapsed = stop - start


distance = elapsed * 34320
distance = distance / 2
return distance

while True:
jarak = get_range()
print("Jarak halangan di depan adalah %.2f Cm" % jarak)
time.sleep(1)

Kesimpulan

PROJEK
Projek 1 Membuat penerangan lampu otomatis di rumah menggunakan sensor
cahaya LDR untuk penerangan 2 lampu (2 LED) di taman, dan tombol push
button (tactile switch) mengontrol 1 lampu (1 LED) untuk penerangan ruang
tamu.

Gambar 3. 37 Rangkaian Kerja Projek Sensor


Kesimpulan

BBPPMPV BOE Malang-DepTI-RPL-2023


88
4.8. Flask IoT Webserver

Lab. 8 Microfranework
Flask
Flask adalah salah satu framework micro
website yang ditulis menggunakan
bahasa pemrograman Python. Flask
disebut dengan micro website karena
tidak memerlukan beberapa tools/
library tambahan. Flask tidak memiliki lapisan abstraksi database, form
validasi atau beberapa komponen pihak ketiga lainnya. Flask dibuat oleh
Armin Ronacher yang berasal dari Pocoo sejak tahun 2010. Beberapa website
seperti Pinterest dan LinkedIn merupakan contoh website berbasisi Flask.
Adapun beberapa keunggulan Flask yaitu,
 Lisensi BSD
 Memiliki server development dan debugger
 RESTful request dispatching
 Menggunakan template Jinja2
 Support secure cookies
 100% WSGI 1.0 compliant
 Dokumentasi lengkap
 Kompatibel dengan Google App Engine

Flask adalah sebuah web framework yang ditulis dengan bahasa Python dan
tergolong sebagai jenis microframework. Flask berfungsi sebagai kerangka
kerja aplikasi dan tampilan dari suatu web. Dengan menggunakan Flask dan
bahasa Python, pengembang dapat membuat sebuah web yang terstruktur
dan dapat mengatur behaviour suatu web dengan lebih mudah.
Flask termasuk pada jenis microframework karena tidak memerlukan suatu
alat atau pustaka tertentu dalam penggunaannya. Sebagian besar fungsi dan
komponen umum seperti validasi form, database, dan sebagainya tidak
terpasang secara default di Flask. Hal ini dikarenakan fungsi dan
komponenkomponen tersebut sudah disediakan oleh pihak ketiga dan Flask
dapat menggunakan ekstensi yang membuat fitur dan komponenkomponen
tersebut seakan diimplementasikan oleh Flask sendiri.
Selain itu, meskipun Flask disebut sebagai microframework, bukan berarti
Flask mempunyai kekurangan dalam hal fungsionalitas. Microframework
disini berarti bahwa Flask bermaksud untuk membuat core dari aplikasi ini
sesederhana mungkin tapi tetap dapat dengan mudah ditambahkan. Dengan
begitu, fleksibilitas serta skalabilitas dari Flask dapat dikatakan cukup tinggi
dibandingkan dengan framework lainnya.

BBPPMPV BOE Malang-DepTI-RPL-2023


89
Gambar 3. 38 Cara Kerja Webserver Flask

Instalasi Flask
Hal pertama yang harus dilakukan adalah menginstal Flask di Raspberry Pi
4, buka CLI terminal dan jalankan perintah:

sudo apt-get install python3-flask

Projek baru dimulai dengan membuat folder untuk menyimpan file, sebagai
contoh:

mkdir rpiWebServer

Perintah di atas akan membuat folder bernama "rpiWebServer", dan


tersimpan dalam sistem file python: /home/pi/rpiWebServer

Di folder ini, dbuat 2 sub-folder lain: statis untuk CSS dan akhirnya file
JavaScript dan template untuk File HTML. Buka folder baru rpiWebServer
yang sudah dibuat:

cd rpiWebServer

Tambahkan buat 2 sub-folder baru:

mkdir static

dan,

mkdir templates

Struktur tree folder akan terlihat seperti ini:


/rpiWebServer
/static
/templates

BBPPMPV BOE Malang-DepTI-RPL-2023


90
WebServer python pertama kita dengan Flask

Buka IDE Python3 atau Thonny , Tuliskan kode "Hello Word" di bawah ini
pada IDE Anda dan simpan sebagai contoh, sebagai helloWorld.py
1 from flask import Flask
2
3 app = Flask(__name__)
4
5 @app.route('/')
6 def index():
7 return “Hello world <h1> ELJAVA MIFZAL HERBIYAN</h1>”
8
9 if __name__ == '__main__':
10 app.run()

Analisa Program
Baris ke-1 memanggil module ke dalam program python
Baris ke-3 membuat objek Flask dengan nama app. Maksud dari baris ini
membuat sebuah objek application sebagai sebuah instance dari kelas Flask
yang diimpor dari package flask. Variabel __name__ yang diberikan kepada
kelas Flask adalah variabel yagn sudah dibuatkan oleh Python yang isinya
merupakan nama module dimana ia digunakan. Flask menggunakna lokasi
module yang dikirimkan sebagai titik awal dimana ia harus memuat file-file
yang diperlukan misalnya file template. Memberikan __name__ setiap kali
membuat konfigurasi Flask biasanya akan menjadi langkah terbaik.
Baris ke-5 @app.route akan membuat sebuah hubungan antara URL yang
diberikan sebagai argumen dengan fungsi di bawahnya. Artinya setiap kali
sebuah web browser mengakses salah satu dari URL ini, Flask akan
membanggil fungsi di bawahnya dan mengirimkan nilai balikan (perintah
return) yang sudah dibuat sebagai sebuah response.
Baris ke-6 menjalankan fungsi index () ketika seseorang mengakses URL root
('/') dari server. Dalam hal ini, hanya kirimkan teksnya "Helo World!" ke
browser web klien dengan perintah return.
Baris 6-7 Perintah untuk menjalankan kode program yang diatasnya, server
mulai "mendengarkan" pada port default 5000 dan melaporkan kesalahan
apa pun.

Sekarang, jalankan program aplikasi di atas:

Membuat Halaman Web Server

BBPPMPV BOE Malang-DepTI-RPL-2023


91
Membuat file HTML yang akan ditempatkan di sub-folder "template", kita
dapat menggunakan file terpisah dengan placeholder untuk tempat-tempat
di mana Anda ingin memasukkan data dinamis. Jadi, kita akan membuat file
bernama index.html, yang akan disimpan di / templates. Anda dapat
menggunakan editor Teks apa pun untuk membuat file HTML Anda. Dapat
berupa "nano" di Terminal atau Editor Teks RPi (LeafPad).
Sebagai alternatif, GEANY dapat digunakan untuk bekerja dengan semua
file proyek pada waktu yang sama (.py; .html dan .css) itu adalah pilihan
yang baik dengan proyek yang lebih besar dan lebih kompleks.

Buat file index.html tempatkan pada /templates/index.html:

Perhatikan bahwa apapun dalam tanda kurung kurawal ganda di dalam


template HTML diinterpretasikan sebagai variabel yang akan melakukannya
dan diteruskan ke sana dari skrip Python melalui fungsi render_template.
Buat file style.css. tempatkan pada /static/style.css:

Sekarang, mari buat skrip Python baru dengan nama menamainya web1.py

BBPPMPV BOE Malang-DepTI-RPL-2023


92
Jalankan aplikasi dan hasilnya adalah

Komunikasi
Webserver
dengan
Raspberry Pi 4

Gambar 3. 39 Komunikasi Webserver dengan Raspberry Pi 4

Alat dan  1 Buah Buzzer


Bahan  1 Buah LED 5mm atau LED 3mm
 1 Buah Resistor 100Ω - 220 Ω
 2 Buah Kabel Jumper
 1 Buah Project board
 1 Buah Raspberry Pi 4
Rangkaian
Kerja

BZ

Gambar 3. 40 Rangkaian Kerja IoT Webserver

Kode Program File templates/index.html

BBPPMPV BOE Malang-DepTI-RPL-2023


93
File static/master.css

File rpiWebserver/iot.py

BBPPMPV BOE Malang-DepTI-RPL-2023


94
BBPPMPV BOE Malang-DepTI-RPL-2023
95
4.9. Flask dan Bootstrap

Lab. 9 Flask – Graphics


Bootstrap
Bootstrap merupakan salah satu jenis
framework untuk CSS (Cascading Style
Sheet) yang digunakan untuk
perancangan situs website. Pengunaan
bootstrap sangatlah membantu
progammer dalam membangun
tampilan sebuah website. Hal tersebut
tertulis di buku Bootstrap: Responsive
Web Development karangan Jake
Spurlock. Menurut Jake Spurlock
keunggulan dari penggunaan Bootstrap
adalah dapat menyesuaikan dengan
kebutuhan website, dimana dapat memilih fitur CSS dan JavaScript sesuai dengan
kebutuhan. Contohnya CSS pada Bootstrap juga menyediakan fitur form, tombol,
navigasi dan komponen-komponen lainnya dan JavaScript yang membantu
pembuatan antarmuka lebih mudah dan stabil. Bootstrap juga menyediakan
banyak sekali class-class CSS dan plugin yang siap dipakai untuk membantu
dalam membuat tampilan sebuah website. Karena sangat membantu, maka
Bootstrap menjadi salah satu front-end framework yang paling banyak
digunakan.

Gambar 3. 41 Penggunaan boostap dan Flask

BBPPMPV BOE Malang-DepTI-RPL-2023


96
Template Bootstrap dengan Bootstrap Admin LTE

Pada tutorial ini akan dibuat sebuah project Flask menggunakan template dari
AdminLTE. Setelah membuat folder project selanjutnya adalah mendownload
template AdminLTE di link berikut ini :

https://github.com/ColorlibHQ/AdminLTE/archive/refs/tags/v3.2.0.zip

Hal pertama yang harus dilakukan adalah menginstal Flask di Raspberry Pi 4,


buka CLI terminal dan jalankan perintah:
Setelah didownload, ekstrak file AdminLTE maka hasilnya akan menjadi seperti
dibawah ini:

Setelah diekstrak kemudian copy folder build, dist, dan plugin ke dalam folder
static seperti dibawah ini:

Selanjutnya copy file index.html dari folder AdminLTE kedalam folder templates
pada project. Kemudian edit directory library file index.html menjadi isi dari
folder static seperti dibawah ini:

BBPPMPV BOE Malang-DepTI-RPL-2023


97
Untuk menggunakan template, buat file main.py dan gunakan kode program
dibawah ini:
from flask import Flask, render_template
app = Flask(__name__)

@app.route("/")
def main():
return render_template('index.html')

BBPPMPV BOE Malang-DepTI-RPL-2023


98
if __name__ == "__main__":
app.run(debug=True, port=5000)

Ketika program tersebut dijalankan maka output yang dihasilkan akan tampil
sebagai berikut ini:

Kesimpulan

BBPPMPV BOE Malang-DepTI-RPL-2023


99
4.10. Flask-Bootstraps-Data Base

Lab 10 Projek SMART HOME


Tujuan 1. Mengatur nyala lampu melalui web
2. Memahami penggunaan flask dalam project IOT WebServer
3. Memahami pemanggunaan framework dalam pembuatan web
4. Memahami penggunaan database untuk fungsi login dan register
Pendahuluan
Raspberry pi adalah komputer seukuran kartu
kredit yang mudah diprogram dan digunakan
bahkan untuk orang yang tidak memiliki latar
belakang IT. Meskipun ukurannya kecil,
raspberry cukup memiliki daya yang cukup
untuk menjalankan beberapa aplikasi sekaligus
sama seperti di komputer, mulai dari aplikasi
pengolah office sampai games.

Flask adalah kerangka kerja aplikasi web


bersifat kerangka kerja mikro yang ditulis
dalam bahasa pemrograman Python dan
menggunakan dependensi Werkzeug dan
Jinja2. Flask bisa digunakan untuk
membuat website rumit yang berbasis
database, memulai dengan membuat
halaman statik berguna untuk memperkenalkan alur kerja, yang nantinya
digunakan untuk membuat halaman lain yang lebih rumit.

Bootstrap adalah framework open-source


khusus front end yang awalnya dibuat oleh
Mark Otto dan Jacob Thornton untuk
mempermudah dan mempercepat
pengembangan web di front end.Bootstrap
memiliki semua jenis HTML dan template
desain berbasis CSS untuk berbagai fungsi dan
komponen, seperti navigasi, sistem grid,
carousel gambar, dan tombol (button).Framework ini memang menghemat
waktu developer karena tidak perlu mengelola template berkali-kali.
Namun, fungsi utama dari Bootstrap adalah untuk membuat situs yang
responsif. Interface website akan bekerja secara optimal di semua ukuran
layar baik di layar smartphone maupun layar komputer maupun laptop.

BBPPMPV BOE Malang-DepTI-RPL-2023


100
SQLite adalah perpustakaan
perangkat lunak yang menerapkan
engine database SQL secara
mandiri, tanpa memerlukan server,
tanpa perlu melakukan konfigurasi,
dan bersifat transaksional. SQLite
adalah engine database SQL yang
paling banyak digunakan di dunia. SQLite merupakan proyek yang bersifat
public domain. SQLite adalah sebuah engine database SQL yang langsung
tertanam atau pada aplikasi. Tidak seperti kebanyakan database SQL
lainnya, SQLite tidak memiliki server yang terpisah dari aplikasi. SQLite
membaca dan menulis langsung ke file disk biasa. SQLite telah didukung
oleh banyak bahasa pemrograman seperti C, C ++, BASIC, C #, Python, Java
dan Delphi.

SQLAlchemy merupakan
sekumpulan perangkat lunak
dengan sumber terbuka untuk
SQL dan Pemetaan Objek
Relasional untuk bahasa
pemrograman Python. Aplikasi
ini dirilis dengan menggunakan
Lisensi MIT. SQLAlchemy
berprinsip bahwa database relasional dapat dianggap seperti sekumpulan
objek karena skalanya yang semakin besar. Selain itu kinerja dari sebuah
database juga mulai menjadi perhatian. Atas alasan ini maka pola pemetaan
data (seperti Hibernate pada bahasa Java) kemudian menjadi pilihan untuk
diadopsi ke dalam SQLAlchemy.

Session merupakan data yang disimpan dalam suatu server yang dapat
digunakan secara global di server tersebut,
dimana data tersebut spesifik merujuk ke
user/client tertentu, contoh penggunaan
session adalah ketika user telah login di
halaman tertentu, maka ketika membuka
halaman lain, php akan mengingat bahwa
user tersebut telah login, contoh ketika kita
telah login pada Google, maka setiap kali
kita membuka layanan Google seperti
GMail, Google Drive, dll di tab berbeda, kita akan selalu dalam keadaan
login, kecuali kita buka dengan browser yang berbeda. Cntoh lain ketika web
ecommerce merekam keranjang belanja user, maka ketika pindah ke
halaman pembayaran, daftar belanja masih terekam.

BBPPMPV BOE Malang-DepTI-RPL-2023


101
Tahap  Tahap Instalasi Database dan modul SQL-Alchemy
Pengerjaan  Download DB Browser for SQLite
(instalasi dan https://sqlitebrowser.org/dl/. Pilih DB Browser for SQLite -
setting Standard installer for 64-bit Windows.
bootstrap)  Buka file yang sudah terdownload dalam laptop, kemudian
install seperti menginstall aplikasi pada umumnya.
 Jika ingin tampil Desktop bisa di centang pilihan Desktop.
Setelah di klik akan tampil halaman Shortcuts, ini untuk
memilih ikon dari SQLite ditampilkan di desktop atau hanya di
file explore.
 Klik next dan tunggu penginstallan selesai.
 Untuk menginstall library SQL-Alchemy, masuk ke command
prompt, pilih folder yang sebelumnya telah terinstall Flask,
kemudian ketikkan perintah
pip install Flask-SQLAlchemy

 Tahap Setting flask dengan Admin-LTE


 Download adminLte disini
https://github.com/ColorlibHQ/AdminLTE/archive/refs/tags/v3.1
.0.zip
 Pilih file zip kemudian jika sudah terdownload, ekstrak file zip
tersebut.
 Kemudian copy folder build, dist, plugins ke folder static yang
akan digunakan dalam aplikasi. Struktur penyimpanan folder
aplikasi akan seperti ini.

 Setelah itu copy file index.html dari adminLte ke folder


templates dan ubah namanya menjadi base.html.
 Kemudian edit file base.html dengan mengubah directory
librarynya menjadi isi dari folder static.
Mudahnya, tambahkan “/static” dalam directory css maupun js yang
ada dalam file base.html.
 Setelah itu berikan block content untuk isi dari conten nantinya.
Sehingga konten menjadi dinamis, hanya perlu mengetikkan
kode untuk main content dan tidak perlu mengetikkan kode
mulai awal.

BBPPMPV BOE Malang-DepTI-RPL-2023


102
 Copy file index.html dari adminLte ke folder templates dan
ubah namanya menjadi base.html

BBPPMPV BOE Malang-DepTI-RPL-2023


103
BBPPMPV BOE Malang-DepTI-RPL-2023
104
BBPPMPV BOE Malang-DepTI-RPL-2023
105
 Kemudian buat file index.html untuk file index tidak perlu
menuliskan lagi kode sebelumnya kita hanya perlu

BBPPMPV BOE Malang-DepTI-RPL-2023


106
mengextends file base.html dan mengisi block content seperti
dibawah.

 Membuat file lampu.html, selengkapnya ikuti kode dibawah:

BBPPMPV BOE Malang-DepTI-RPL-2023


107
BBPPMPV BOE Malang-DepTI-RPL-2023
108
BBPPMPV BOE Malang-DepTI-RPL-2023
109
 Membuat file suhu.html, selengkapnya ikuti kode dibawah:

BBPPMPV BOE Malang-DepTI-RPL-2023


110
Tahap  Membuat file login.html sebagai halaman login dan simpan dalam folder
pengerjaan templates
(fungsi login
dan register)

BBPPMPV BOE Malang-DepTI-RPL-2023


111
 Membuat file register.html dan simpan di folder templates

BBPPMPV BOE Malang-DepTI-RPL-2023


112
Tahap  Rangkaian Kerja
Rangkaian
Kerja dan
Fungsi
utama

BBPPMPV BOE Malang-DepTI-RPL-2023


113
 Buat file iot.py yang akan disimpan di folder utama aplikasi. File ini
berfungsi sebagai pemanggil file-file html yang telah dibuat. Secara umum,
file ini berfungsi sebagai file utama yang akan menjalankan web control iot.
1. Import library yang diperlukan

2. Setting database untuk menjalankan fungsi login dan register,


untuk proses ini, kita menghubungkan file iot.py dengan database
SQLite dan library SQLAlchemy

3. Membuat class yang berisi perintah untuk membuat database serta


tabel user untuk menyimpan data.

4. Setting GPIO untuk mengatur output led.

5. Membuat route untuk menampilkan halaman login, register,


dashboard, suhu dan lampu

BBPPMPV BOE Malang-DepTI-RPL-2023


114
6. Membuat route untuk proses register yang berfungsi untuk
menerima dan menyimpan data yang dimasukkan dalam halaman
register

7. Membuat route untuk proses login yang berfungsi untuk


memeriksa kesesuaian data dalam tabel user

BBPPMPV BOE Malang-DepTI-RPL-2023


115
8. Membuat route untuk proses logout yang berfungsi untuk
menghapus session an keluar dari aplikasi

9. Setting proses control lampu. Dalam setting ini, kita perlu membuat
route memberi sinyal pada program, lampu manakah yang harus
dinyalakan maupun di matikan.

Program kemudian membaca output pada GPIO yang datanya akan


ditampilkan ke dalam web monitoring

BBPPMPV BOE Malang-DepTI-RPL-2023


116
10. Menentukan alamat webserver control iot.

Debug=True, berfungsi untuk menyalakan debug pada alikasi,


sehingga kita tak perlu keluar dari server ketika kita mengganti kode
progrm aplikasi dan ingin melihat perubahan aplikasi.
Host, merupakan alamat device raspberry pi yang bisa di dapatkan
dengan mengetikkan “if config” di terminal raspberry pi.

BBPPMPV BOE Malang-DepTI-RPL-2023


117
Tampilan web
Halaman
Login

Halaman
Dashboard

Halaman
Lampu

BBPPMPV BOE Malang-DepTI-RPL-2023


118
Halaman
Suhu

BBPPMPV BOE Malang-DepTI-RPL-2023


119
BAB IV

PENUTUP

4.1 Kesimpulan
1. UnIoTsys merupakan teaching aids yang dapat digunakan dalam proses transfer
pengetahuan dan teknologi terdiri dari dua bagian utama, yaitu hardware merupakan
module-module yang saling terintergrasi dan fleksibel dalam penggunaanya (plug and play)
yang terdiri dari SBC Raspberry Pi 4, LCD hdmi, mikrotik, module sensor, module relay,
terminal AC output 220, projectboard, dan komponen-komponen elektronika. Software
merupakan perangkat lunak open source GNU General Public License (GPL) yang terdiri dari
sistem operasi raspbian, sd card formatter, python up to version 3, flask webserver, dan
library-library lain.
2. Sekolah dapat memanfaatkan UnIotSys untuk membuat projek-projek IoT yang dibutuhkan
sekolah dalam mewujudkan transforrmasi digital berbagai peralatan sekolah.
3. Lembaga pelatihan dapat memanfaatkan UnIotSys untuk melatih masyarakat dalam
penerapan teknologi IoT untuk keperluan smart home dan aplikasi lainnya.
4. BBPPMPV BOE dapat memanfaatkan UnIotSys untuk melatih Guru-Guru SMK dengan sain
dan teknologi terbaru yang sesuai dengan revolusi indutri 4.0.

4.2 Saran
1. Taaching aids UnIoTsys dapat dikembangkan dengan melengkapi fitur-fitur yang lebih
komplek yaitu dengan sensor-sensor dan peralatan yang sesuai dengan kebutuhan revolusi
industri 4.0.
2. Menciptkan teaching aids baru melalui inovasi-inovasi yang bersesuaian dengan education top
project yang sedang berkembang saat ini .

BBPPMPV BOE Malang-DepTI-RPL-2023


120
DAFTAR PUSTAKA

[1] Vujovic, V. ,Maksimovic, M. (2015) Raspberry Pi as a Sensor Web node for home
automation. Computers and Electrical Engineers, Vol. 44.

[2] Alee, R. (2013) Reading Data From a Digital Multimeter Using a Raspberry Pi, Tesis,
Turku University of Applied Science, Istambul.

[3] Richard Blum (2014), Python Programming for Raspberry Pi in 24 Hours, Sams Teach
Yourself.

[4] Santoso, B.I. (2010) Bahasa Pemrograman Python Di Platform GNU/LINUX, Universitas
Multimedia Nusantara, Tangerang.

[5] https://www.raspberrypi.org/documentation/usage/python/

[6] https://www.programiz.com/python-programming

[7] https://www.w3schools.com/python

[8] https://www.petanikode.com/tutorial/python/

[9] https://www.guru99.com/python-tutorials.html

BBPPMPV BOE Malang-DepTI-RPL-2023


121
LAMPIRAN

BBPPMPV BOE Malang-DepTI-RPL-2023


122
PENULIS

Eko Subiyantoro adalah widyaiswara di BBPPMPV BOE-VEDC


Malang di Departemen Teknologi Informasi. Lahir di
Banyuwangi pada tahun 1975. Pendidikan SD, SMP, dan STM
(sekarang SMK) diselesaikan di kota kelahirannya. Selanjutnya ia
menyelesaikan S1 di Program Studi Pendidikan Teknik
Elektronika FPTK IKIP Yogyakarta (sekarang UNY) pada tahun
1998. Sarjana Sains Terapan (SST) diperolehnya melalui program
beasiswa Dikmenjur (sekarang Direktorat Pembinaan Sekolah
Menengah Kejuruan) di PENS ITS Surabaya pada tahun 2002
pada Prodi Teknologi Informasi dengan predikat cum laude.
Magister Teknik diperolehnya melalui program beasiswa unggulan BPKLN di ITS
Surabaya Program Studi Teknik Elektro konsentrasi Jaringan Cerdas Multimedia pada
tahun 2009 juga dengan predikat cum laude. Doktor diperolehnya juga melalui beasiswa
unggulan bagi pegawai Kemdikbud di Prodi S3 Ilmu Komputer FMIPA Universitas
Gadjah Mada.
Pengalaman luar negeri diperolehnya melalui program Inwent dari pemerintah Jerman
pada tahun 2003 dalam program Advance Automation Training. Selain itu, pada tahun
2006 mengikuti Expert Program Maintenance and Repair di Abha College Kingdom of
Saudi Arabia (KSA). Selanjutnya pada tahun 2013 melalui IGI kerja sama Indonesia–
Jerman diikutkan dalam program Modern Management School di Kassel Jerman.
Penulis memiliki pengalaman kerja di PPPPTK BOE/VEDC Malang sebagai Kepala
Departemen Teknologi Informasi selama 2 periode 2010–2013 dan 2013–2015. Selain itu
juga sebagai tim pengembang Java Education Network Indonesia (JENI), sebuah sistem
yang diinisiasi BPKLN Kemdikbud dalam kurun waktu tahun 2007–2009. Sertifikasi
yang diperoleh dalam bidang pemrograman adalah Sun Certified Java Programmer
(SCJP) pada tahun 2008.
Eko Subiyantoro dapat dihubungi melalui alamat e-mail ekovedc@gmail.com

BBPPMPV BOE Malang-DepTI-RPL-2023


123
Abdul Munif, M.Kom lahir di Magelang 18 Juni 1973.
Ia menyelesaikan pendidikan dasar dan menengah dari
TK, SD, hingga Sekolah Menengah Umum di kota
kelahirannya. Sarjana pendidikan pada jurusan Teknik
Elektronika diraihnya di IKIP Negeri Yogyakarta.
Pendidikan Diploma IV ditempuhnya di Politeknik
Elektronika Negeri Surabaya pada jurusan Teknik
Telekomunikasi konsentrasi Teknik Komputer dan
Jaringan. Magister Komputer diraihnya di Fakultas
Teknologi & Informatika ITS Surabaya.

Ia pernah mengikuti pendidikan dalam bentuk on the


job trainning (OJT) di Multimedia Center di Bonn Jerman untuk topik pendidikan daring
(online) dalam program E-learning Development and Implementation (ELDI). Pelatihan
kompetensi bidang pengembangan sumber daya manusia dan Information Technology-
Network ditempuh penulis dalam paket program International Leadership Trainning
(ILT) yang dilaksanakan di beberapa kota di Jerman, seperti Magdeburg, Sarbrucken,
Grossgerau, dan Mainheim.
Saat ini penulis bekerja sebagai tenaga pendidik (Widyaiswara) pada Pusat
Pengembangan Pemberdayaan Pendidik dan Tenaga Kependidikan (PPPPTK)
BOE/VEDC Malang, sejak tahun 2002. Di samping sebagai pengajar, ia juga menjadi
penulis dan penyusun modul diklat kompetensi pada Kementerian Pendidikan dan
Kebudayaan. Modul yang pernah ditulis antara lain Sistem Operasi Komputer,
Algoritma dan Pemrograman, Desain Basis Data, dan Pemrograman Web. Modul diklat
berbasis SKKNI yang pernah ditulis adalah Implementasi Alur Logika Pemrograman
Menggunakan Spesifikasi Program.

Abdul Munif dapat dihubungi melalui

E-mail : abdmunif@gmail.com
G+ : abdmunif
Mobile Phone : +628123306127

BBPPMPV BOE Malang-DepTI-RPL-2023


124

Anda mungkin juga menyukai