bab 2 tinjauan referensi - bina nusantara
TRANSCRIPT
7
BAB 2
TINJAUAN REFERENSI
2.1 Hidroponik
Hidroponik adalah teknik menumbuhkan tanaman dalam larutan nutrisi
dengan atau tanpa menggunakan media inert seperti kerikil, vermikulit, rockwool,
gambut, debu gergaji, debu sabut, dan serat kelapa untuk memberikan dukungan
mekanis. Istilah ini berasal dari kata Yunani hydro yang berarti air dan pono yang
berarti tenaga kerja, dan secara literal berarti kerja air. Kata hidroponik diciptakan
oleh Profesor William Gericke pada awal 1930-an; menggambarkan pertumbuhan
tanaman dengan akar mereka tersuspensi dalam air yang mengandung nutrisi
mineral.
Sistem hidroponik disesuaikan dan dimodifikasi sesuai dengan daur ulang dan
penggunaan kembali larutan nutrisi dan media pendukung. Sistem yang biasa
digunakan adalah sumbu (wick), tetesan (drip), pasang surut (ebb-flow), budaya
air dalam (deep water culture) dan NFT (Nutrient Film Technique).
2.1.1 Sistem Sumbu (Wick)
Ini adalah sistem hidroponik paling sederhana yang membutuhkan listrik,
pompa, dan aerator (Shrestha dan Dunn, 2013, dikutip dari Sharma et al.,
2018). Tanaman ditempatkan dalam media penyerap seperti sabut kelapa,
vermikulit, perlit dengan anylon sumbu yang mengalir dari akar tanaman ke
dalam reservoir larutan nutrisi. Air atau larutan nutrisi disuplai ke tanaman
melalui aksi kapiler. Sistem ini bekerja dengan baik untuk tanaman kecil,
bumbu dan rempah-rempah dan tidak bekerja secara efektif yang membutuhkan
banyak air.
8
Gambar 2.1 Sistem Sumbu
2.1.2 Sistem Tetesan (Drip)
Sistem hidroponik tetes banyak digunakan metode di antara rumah dan
komersial komersial. Air atau larutan nutrisi dari tempat penyimpanan air
disediakan untuk masing-masing proporsi yang tidak sesuai akar tanaman
dengan bantuan pompa (Rouphael dan Colla, 2005, dikutip dari Sharma et al.,
2018). Tanaman biasanya ditempatkan di media tumbuh penyerap sedang
sehingga larutan nutrisi menetes perlahan. Berbagai jenis tanaman dapat
ditanam secara sistematis dengan konservasi air.
Gambar 2.2 Sistem Tetesan
9
2.1.3 Sistem Pasang Surut (Ebb-flow)
Ini adalah sistem hidroponik komersial pertama yang bekerja berdasarkan
prinsip banjir dan drainase. Solusi nutrisi dan air dari reservoir tergenang
melalui pompa air untuk menumbuhkan lapisan hingga mencapai tingkat
tertentu dan tinggal di sana untuk jangka waktu tertentu sehingga memberikan
nutrisi dan kelembaban pada tanaman. Selain itu, sistem ini memungkinkan
penanaman berbagai jenis tanaman tetapi masalah akar busuk, ganggang dan
jamur sangat umum ditemui (Nielsen et al., 2006, dikutip dari Sharma et al.,
2018), oleh karena itu diperlukan beberapa sistem yang dimodifikasi dengan
unit filtrasi.
Gambar 2.3 Sistem Pasang Surut
2.1.4 Sistem Budaya Air Dalam (Deep Water Culture)
Dalam sistem budidaya kultur air dalam, akar tanaman yang ditumbuhkan
dalam air yang kaya nutrisi dan udara disediakan langsung ke akar oleh batu
udara. Sistem hidroponik adalah contoh klasik dari sistem ini. Tanaman
ditempatkan dalam pot dan akar bersih yang ditumbuhkan dalam larutan nutrisi
di mana mereka tumbuh dengan cepat dalam massa yang besar. Dalam sistem
ini, wajib untuk memantau konsentrasi oksigen dan nutrisi, salinitas, dan pH
(Domingues et al., 2012, dikutip dari Sharma et al., 2018) karena ganggang dan
cetakan dapat tumbuh dengan cepat di reservoir. Sistem ini cocok untuk
10
tanaman yang lebih besar yang menghasilkan buah terutama mentimun dan
tomat, tumbuh dengan baik dalam sistem ini.
Gambar 2.4 Sistem Budaya Air Dalam
2.1.5 Sistem NFT (Nutrient Film Technique)
NFT dikembangkan pada pertengahan 1960-an di Inggris oleh Dr. Alen
Cooper untuk mengatasi kelemahan-kelemahan dari sistem pasang surut dan
sistem aliran. Dalam sistem ini, air atau larutan nutrisi beredar di seluruh
sistem; dan memasuki batang pertumbuhan melalui pompa air tanpa kontrol
waktu (Domingues et al., 2012). Sistem ini sedikit ditanam sehingga larutan
nutrisi berjalan melalui akar dan turun kembali ke reservoir. Tanaman
ditempatkan di saluran atau tabung dengan akar menggantung di larutan
hidroponik. Meskipun, akar rentan terhadap infeksi jamur karena mereka secara
langsung dicelupkan ke dalam air atau nutrisi. Dalam sistem ini, banyak daun
hijau dapat dengan mudah ditanam dan secara komersial paling banyak
digunakan untuk produksi selada.
11
Gambar 2.5 Sistem Nutrient Film Technique
2.2 Sensor
2.2.1 Arduino
Arduino Mega 2560 adalah sebuah Board Arduino yang menggunakan IC
ATMega 2560. Board ini memiliki Pin I/O yang relatif banyak, 54 Digital I/O,
15 buah di antaranya dapat digunakan sebagai output PWM, 16 buah Analog
Input, dan 4 UART, serta dilengkapi kristal 16 Mhz. Untuk penggunaan relatif
sederhana, hanya menghubungkan power dari USB ke PC / Laptop atau melalui
DC Jack dengan adapter 7 - 12 DCV.
Pada sistem automation hydroponic Arduino Mega digunakan sebagai
kontroler untuk membaca sensor yang terpasang ke board Arduino.
12
Gambar 2.6 Pinout Arduino Mega 2560
2.2.2 NodeMCU
NodeMCU adalah sebuah platform IoT yang bersifat open source. Terdiri
dari perangkat keras berupa System On Chip ESP8266 dari ESP8266 buatan
Espressif System, juga firmware yang digunakan, yang menggunakan bahasa
pemrograman scripting Lua. Istilah NodeMCU secara default sebenarnya
mengacu pada firmware yang digunakan daripada perangkat keras development
kit.
13
Gambar 2.7 NodeMCU
2.2.3 MQTT Broker
MQTT (Message Queuing Telemetry Transport) protokol merupakan
sebuah protokol yang berjalan diatas stack TCP/IP dan dirancang khusus untuk
machine to machine yang tidak memiliki alamat khusus. Maksud dari kata tidak
memiliki alamat khusus ini seperti halnya sebuah Arduino, Raspi atau device
lain yang tidak memiliki alamat khusus. Sistem kerja MQTT menerapkan
Publish dan Subscribe data. Dan pada penerapannya, device akan terhubung
pada sebuah Broker dan mempunyai suatu Topic tertentu.
Broker pada MQTT berfungsi untuk menghandle data publish dan
subscribe dari berbagai device, bisa diibaratkan sebagai server yang memiliki
alamat IP khusus. Beberapa contoh dari Broker yang ada seperti Mosquitto,
HiveMQ dan Mosca.
• Publish
Merupakan cara suatu device untuk mengirimkan datanya ke
subscribers. Biasanya pada publisher ini adalah sebuah device yang
terhubung dengan sensor tertentu.
14
• Subscribe
Merupakan cara suatu device untuk menerima berbagai macam data
dari publisher. Subscriber dapat berupa aplikasi monitoring sensor dan
sebagainya, subscriber ini yang nantinya akan meminta data dari
publisher.
• Topic
Seperti halnya pengelompokan data di suatu kategori tertentu. Pada
sistem kerja MQTT protokol ini, topic bersifat wajib hukumnya. Pada
setiap transaksi data antara publisher dan subscriber harus memiliki
suatu topic tertentu.
2.2.4 Sensor pH
Sensor pH adalah alat untuk mengukur tingkat keasaman pada suatu
larutan, alat ini menggunakan elektroda yang berfungsi untuk mengukur
aktivitas ion hidrogen dan nilqi tersebut dikonversi menjadi nilai ADC (Analog
to Digital Converter) oleh modul, dan nilai ADC tersebut diterima oleh arduino
dan dikonversi menjadi tegangan lalu dikonversi lagi sehingga mendapatkan
nilai pH pada program yang di upload ke Arduino.
Gambar 2.8 Sensor pH
1) BNC plug: Tempat penyambung antara probe dengan modul
2) Pin To: Pin Temperature (Tidak digunakan)
3) Pin Do: Pin adjustable
15
4) Pin Po: Pin pembaca pH (sambung langsung ke pin Analog
Arduino)
5) Pin G/GND
6) Pin G/GND: Power ground (GND dari arduino).
7) Pin V+/VCC: Input power 5V DC (VCC dari arduino).
8) Potensiometer berwarna biru dekat BNC plug: pH offset.
9) Potensiometer berwarna biru dekat pin: limit adjustment.
2.2.5 Sensor Gravity TDS Meter (ppm)
TDS (Total Dissolved Solids) digunakan untuk menunjukkan berapa
miligram padatan terlarut yang dilarutkan dalam satu liter air. Secara umum,
semakin tinggi nilai TDS, padatan yang lebih mudah larut dilarutkan dalam air,
dan semakin tidak bersih airnya. Oleh karena itu, nilai TDS dapat digunakan
sebagai salah satu indikator untuk mencerminkan kebersihan air.
Spesifikasi:
● Input Voltage: 3.3 ~ 5.5V
● Output Voltage: 0 ~ 2.3V
● Working Current: 3 ~ 6mA
● TDS Measurement Range: 0 ~ 1000ppm
● TDS Measurement Accuracy: ± 10% F.S. (25 °C)
● Module Size: 42 * 32mm
● Module Interface: PH2.0-3P
● Electrode Interface: XH2.54-2P
16
Gambar 2.9 Modul TDS Gravity dan Connection Diagram
2.3 Distribusi Data
Distribusi Data adalah fungsi yang menunjukan semua nilai yang
memungkinkan dari data. Berikut adalah beberapa metode untuk distribusi data.
(Forbes et al., 2011)
2.3.1 Normal Distribution
Normal Distribution berlaku untuk berbagai fenomena yang sangat luas
dan merupakan distribusi yang paling banyak digunakan dalam statistik.
Awalnya dikembangkan sebagai perkiraan untuk distribusi binomial ketika
jumlah percobaan besar dan probabilitas Bernoulli tidak dekat dengan 0 atau
1.
Distribution Function : (2.1)
17
2.3.2 Uniform Distribution
Setiap nilai dalam kisaran distribusi kemungkinan besar akan terjadi. Ini
adalah distribusi yang diambil dengan angka acak seragam. Ini banyak
digunakan sebagai dasar untuk menghasilkan angka acak untuk distribusi
statistik lainnya.
Distribution Function : (2.2)
2.3.3 Exponential Distribution
Exponential Distribution adalah distribusi waktu ke suatu peristiwa ketika
probabilitas peristiwa yang terjadi dalam interval waktu kecil berikutnya tidak
bervariasi sepanjang waktu. Ini juga merupakan distribusi waktu antara
peristiwa ketika jumlah peristiwa dalam setiap interval waktu memiliki
distribusi Poisson.
Distribution Function : (2.3)
2.4 Forecasting
Forecasting atau prakiraan adalah prediksi dari beberapa peristiwa atau
peristiwa di masa depan. Neils Bohr mengatakan bahwa membuat prakiraan yang
baik tidak selalu mudah (Montgomery et al., 2008). Forecasting menjadi masalah
penting yang mencakup banyak bidang termasuk bisnis dan industri, pemerintah,
ekonomi, ilmu lingkungan, kedokteran, ilmu sosial, politik, dan keuangan. Masalah
ini sering diklasifikasikan sebagai jangka pendek, jangka menengah, dan jangka
panjang. Masalah forecasting jangka pendek melibatkan peristiwa prediksi hanya
beberapa periode waktu (hari, minggu, bulan) di masa depan. Perkiraan jangka
menengah meluas dari satu hingga dua tahun ke depan, dan masalah peramalan
jangka panjang dapat melampaui beberapa tahun ke depan. Sebagian besar masalah
forecasting melibatkan penggunaan data deret waktu (time-series). Rangkaian waktu
adalah urutan pengamatan berorientasi waktu atau kronologis pada variabel yang
diminati.
18
Sebuah time series adalah serangkaian pengamatan xt, dimana masing-masing
observasi direkam pada waktu t. Discrete-time time series adalah seri di mana satuan
T0 waktu di mana pengamatan dilakukan adalah sebuah rangkaian diskrit, misalnya
ketika pengamatan dilakukan pada interval waktu yang tetap. Continuous-time time
series diperoleh ketika pengamatan dilakukan terus menerus selama suatu interval
waktu, misalnya dalam waktu T0 �[0, 1] (Brockwell et al., 2016). Secara umum, ada
dua jenis teknik peramalan: metode kualitatif dan metode kuantitatif.
2.4.1 Qualitative Forecasting
Teknik prakiraan kualitatif seringkali bersifat subjektif dan memerlukan
penilaian dari para ahli. Prakiraan kualitatif sering digunakan dalam situasi di
mana ada sedikit atau tidak ada data historis yang dapat dijadikan dasar
prakiraan tersebut. Contohnya adalah pengenalan suatu produk baru, yang tidak
memiliki riwayat data yang relevan. Dalam situasi ini perusahaan mungkin
menggunakan pendapat ahli dari tenaga penjualan dan pemasaran untuk secara
subjektif memperkirakan penjualan produk selama fase pengenalan produk
baru.
2.4.2 Quantitative Forecasting
Teknik peramalan kuantitatif menggunakan data historis atau historical
data dan model prakiraan atau forecasting model (Montgomery et al., 2008).
Dengan memasukkan data ke dalam model, model akan mendeteksi pola dan
hubungan antar variabel input, dan dari pola yang terdeteksi, model tersebut
akan menghasilkan output yang berupa sebuah data atau nilai. Ada 3 jenis
model prakiraan yang umum digunakan, yaitu model regresi, model smoothing
dan model deret waktu umum.
2.5 Artificial Intelligence
Artificial Intelligence (AI) merupakan sebuah konsep teknologi yang membuat
mesin atau komputer untuk dapat belajar dan bertindak layaknya manusia. AI
19
disusun atas 2 dimensi, dengan dimensi pertama didefinisikan dengan proses
pemikiran dan perilaku, dan dimensi kedua didefinisikan dengan kemiripan dengan
manusia dan keidealan suatu performa mesin, atau disebut dengan rasionalitas.
Suatu sistem dapat disebut rasional jika sistem melakukan hal yang benar. Dalam
sejarahnya, AI didefinisikan dalam 4 klasifikasi berdasarkan 2 dimensi di atas, yaitu
berpikir seperti manusia, berpikir secara rasional, bertindak seperti manusia, dan
bertindak rasional. AI atau kecerdasan buatan diciptakan pertama kali pada tahun
1956, dan hingga kini terus berkembang seiring dengan meningkatnya volume data,
kualitas daya, penyimpanan komputasi, dan algoritma yang selalu berkembang.
Riset yang dilakukan di awal tahun 1950-an mulai menggali tentang penyelesaian
masalah dan metode simbolik. Mulai pada tahun 1960-an, Departemen Pertahanan
AS menaruh minat pada bidang ini dan mulai melatih komputer untuk menirukan
penalaran manusia yang mendasar. Contohnya, Defense Advanced Research Project
Agency (DARPA) yang menyelesaikan proyek pemetaan jalan pada tahun 1970-an,
dan pada tahun 2003, sebuah asisten pribadi cerdas diciptakan, dan diberi nama
Alexa atau Cortana. Ini membuka jalan bagi otomatisasi dan penalaran formal yang
kita lihat di komputer saat ini, termasuk pendukung keputusan dan pencarian pintar
yang dirancang untuk melengkapi dan meningkatkan kemampuan manusia. Seiring
berjalannya waktu, kemampuan AI dalam membantu kehidupan manusia juga terus
berkembang. Dengan berbagai kemampuan teknologi saat ini, AI dapat mengerjakan
hampir seluruh bidang pekerjaan yang dilakukan manusia, mulai dari yang mendasar
hingga kompleks. Beberapa contoh pekerjaan yang dapat dilakukan AI dari berbagai
subbidang yang ada adalah kendaraan robotik (otomatis), pengenalan suara,
otomatisasi sistem perencanaan, memainkan game, perencanaan logistik, robotik,
dan terjemahan (Stuart et al., 2010).
Gambar 2.10 Tahun 1950-an - 1970-an, Jaringan Neural (Neural Network)
20
Gambar 2.11 Tahun 1980-an - 2000-an, Pembelajaran Mesin (Machine Learning)
Gambar 2.12 Tahun 2000-an hingga sekarang, Pembelajaran Mendalam (Deep Learning)
AI dirancang dari sistem kinerja pada otak manusia. Pada otak manusia,
terdapat sel-sel saraf, yang disebut dengan neuron. Setiap neuron terdiri atas sebuah
badan sel atau soma, yang mengandung sel nukleus. Dari sana, badan sel bercabang
menjadi serat-serat kecil yang disebut dendrit dan sebuah serat panjang yang disebut
akson. Satu neuron membuat koneksi dengan 10 hingga 100.000 neuron lainnya
pada persimpangan jalan yang disebut sinapsis. Sinyal akan diteruskan dari neuron
ke neuron oleh sebuah reaksi elektrokimia yang kompleks. Sinyal ini mengontrol
aktivitas otak dalam jangka pendek dan membuat perubahan jangka panjang pada
konektivitas neuron memungkinkan untuk dilakukan. Mekanisme ini dianggap
sebagai bentuk dasar dari sistem pembelajaran pada otak manusia (Russel & Norvig,
2010).
2.6 Machine Learning
Machine learning termasuk salah satu bagian dari bidang artificial intelligence
(AI). Konsep machine learning lahir dari pengenalan pola dan teori bahwa komputer
dapat belajar tanpa perlu diprogram untuk menjalankan tugas khusus, dan dapat
21
belajar dari data yang ada. Konsep ini membantu manusia untuk menyelesaikan
berbagai permasalahan di dalam robotik, pengenalan suara, dan pengenalan visual
pada komputer. Sekarang, komputer telah mampu mengenali wajah seseorang dari
sebuah foto ataupun pengamatan langsung walaupun dengan gaya rambut, pose, dan
lighting yang berbeda. Hal ini didasarkan pada sebuah pola atau fitur yang dimiliki
oleh wajah seseorang, seperti mata, hidung, dan mulut yang terletak pada tempat
tertentu pada wajah. Dengan menganalisa wajah sampel dengan wajah seseorang,
sebuah program merekam pola spesifik dari wajah tersebut dan mengenalinya
dengan mencocokkan pola serupa dalam sebuah gambar yang diberikan. Machine
Learning diperlukan pada 2 skenario, yaitu kompleksitas masalah dan perlunya
adaptivitas.
2.6.1 Artifical Neural Network (ANN)
Dalam AI atau kecerdasan buatan, terobosan baru memungkinkan ANN
untuk dapat belajar menyelesaikan masalah kompleks dalam waktu yang wajar
(LeCun, Bengio, & Hinton, 2015). Belakangan ini, neural network menjadi
populer sebagai metode untuk merealisasikan pemrosesan informasi. Neural
network memperetimbangkan kelompok neuron pada otak seseorang, dan
menirukan neuron-neuron tersebut menggunakan teknologi. Salah satu fitur
penting dari neural network adalah kemampuannya untuk belajar memperoleh
kemampuan untuk memproses informasi (Kenji Suzuki, 2013).
Gambar 2.13 Model sebuah neuron (Sumber: Norving, 2010)
Neural network tersusun dari kumpulan node atau unit yang terhubung
oleh sebuah penyambung. Sambungan dari suatu node i ke node j memiliki
fungsi untuk menyalakan fungsi aktivasi ai dari i ke j. Setiap sambungan
22
memiliki weight masing-masing, yang menentukan kekuatan dari sambungan
tersebut. Setiap node akan mengkalkulasikan input dengan weight:
(2.4)
Lalu, mengaplikasikan fungsi aktivasi g pada hasil tersebut untuk
menghasilkan output:
(2.5)
Fungsi aktivasi g bisa berupa sebuah threshold, dimana setiap node
disebut dengan perceptron, atau sebuah fungsi log, atau disebut sigmoid
perceptron. Keduanya merupakan fungsi aktivasi nonlinear yang memastikan
properti dari keseluruhan sistem dapat merepresentasikan sebuah fungsi
nonlinear. Node akan dihubungkan satu sama lain untuk membentuk sebuah
jaringan, dimana terdapat dua jaringan berbeda, yaitu feed-forward network;
dimana setiap sambungan hanya memiliki 1 arah, dan recurrent network; yang
mengirim output kembali ke input-nya sendiri. Dalam penelitian ini, metode
yang akan digunakan adalah recurrent network untuk dapat mengerjakan data
deret waktu dan menyimpan informasi dari riwayat data yang dimasukkan.
2.7 Deep Learning
Konsep machine learning telah membuat semakin banyak metode
pembelajaran mesin yang bermunculan dari waktu ke waktu hingga akhirnya
ditemukanlah metode deep learning. Teknik pembelajaran mesin konvensional
memiliki keterbatasan dalam untuk memproses data dalam bentuk mentah mereka.
Selama beberapa dekade, membangun sistem pengenalan pola atau sistem
pembelajaran mesin membutuhkan perancangan yang teliti dan keahlian yang cukup
untuk merancang ekstraktor fitur (feature extractor) yang mengubah data mentah
(seperti nilai piksel gambar) menjadi representasi internal yang cocok atau vektor
fitur yang dapat dideteksi atau diklasifikasikan pola dari input yang diterima pada
subsistem pembelajaran. Deep learning memungkinkan model komputasi yang
terdiri dari beberapa lapisan pemrosesan untuk mempelajari representasi data dengan
berbagai tingkat abstraksi. Metode-metode ini telah secara dramatis meningkatkan
23
state-of-the-art dalam pengenalan suara, pengenalan objek visual, deteksi objek dan
banyak domain lain seperti penemuan obat dan genomik (LeCun et al., 2015).
2.7.1 Recurrent Neural Network
Neural network terus berkembang mengikuti perkembangan waktu.
Ketika metode backpropagation ditemukan, sebuah metode baru yang dapat
mengerjakan tugas yang berhubungan data deret waktu atau data yang saling
berhubungan mulai berkembang. Metode ini adalah recurrent neural network
(RNN). Untuk dapat bekerja dengan data deret waktu, RNN akan memproses
satu per satu elemen dari sederet input, dan menyimpan informasi tentang
riwayat data dari elemen-elemen sebelumnya di dalam sebuah hidden unit yang
disebut state vector. RNN adalah sebuah sistem dinamis yang sangat kuat,
namun dalam proses training datanya, gradien yang dikirim kembali akan
semakin besar atau menipis seiring berjalannya waktu, sehingga setelah
beberapa iterasi, gradien atau informasi tentang data sebelumnya akan menjadi
pudar (LeCun et al., 2015).
RNN memiliki sebuah recurrent hidden state yang aktivasinya bergantung
pada state pada waktu sebelumnya. Pada sebuah urutan ,
RNN akan memperbarui recurrent hidden state-nya dengan
(2.6)
Dimana adalah fungsi non linear seperti komposisi logistic sigmoid
dengan transformasi afin. Untuk memperbarui recurrent hidden state seperti
pada Persamaan (2.3), diimplementasikan
(2.7)
Dimana adalah fungsi seperti logistic sigmoid atau tangen hiperbolik.
Tetapi, RNN terbukti sangat sulit dalam mengingat informasi dalam waktu
yang sangat lama, dikarenakan gradien yang semakin menipis, atau meledak
24
(jarang terjadi). Hal ini membuat metode optimasi berbasis gradien menjadi
kurang efektif, bukan hanya karena variasi dalam besaran gradien tetapi juga
karena efek ketergantungan jangka panjang tersembunyi (secara eksponensial
lebih kecil sesuai dengan panjang deret) oleh efek dependensi jangka pendek
(Chung, 2014). Oleh karena itu, salah satu solusi yang dikembangkan oleh para
peneliti adalah LSTM atau Long-Short Term Memory.
2.7.2 Long-Short Term Memory
Melihat keterbatasan RNN dalam menyimpan informasi dari data riwayat
yang sangat lama, sebuah metode baru, yaitu Long Short-Term Memory
(LSTM), mulai berkembang untuk mengatasi keterbatasan tersebut. LSTM
menggunakan sebuah hidden unit khusus yang berfungsi untuk mengingat
informasi dari suatu elemen dalam waktu yang panjang (Hochreiter & Jurgen,
1997). LSTM di kemudian hari terbukti lebih efektif dibandingkan dengan
RNN konvensional, terutama ketika terdapat banyak layer dalam setiap
timestep (Graves et al., 2013, dikutip dari LeCun et al., 2015).
Gambar 2.14 Long Short-Term Memory
LSTM pada dasarnya memiliki 3 gate atau sigmoid layer untuk
mengatur informasi dari waktu ke waktu yaitu : forget gate , input gate
, output gate . Setiap unit LSTM mempertahankan memori . Dan
para gate tersebut adalah salah satu cara untuk menentukan informasi untuk
dilupakan atau disimpan pada memori yaitu dengan menggunakan fungsi
aktivasi sigmoid. Berikut adalah langkah – langkah dalam unit LSTM.
25
Pertama, LSTM mendapatkan input dari dan Kemudian,
forget gate akan menentukan informasi atau memori mana yang perlu
dilupakan atau disimpan yaitu dengan fungsi sigmoid tersebut.
(2.8)
Hasil dari perhitungan tersebut adalah angka diantar 0 hingga 1
dimana 0 berarti melupakan semua memori tersebut dan 1 menyimpan semua
memori tersebut. Setelah itu, langkah selanjutnya adalah untuk menentukan
informasi baru yang akan disimpan pada cell state . Pertama, dengan
melewati fungsi sigmoid, yaitu input gate , di mana gate ini menentukan
seberapa banyak informasi baru yang akan di-update pada cell state. Setelah
itu, fungsi tanh yang membuat sebuah vektor kandidat cell state baru
dan kedua hasil ini akan digabung untuk memperbarui state tersebut.
(2.9)
(2.10)
Setelah hal ini dilakukan, cell state lama akan diperbarui
menjadi cell state baru . akan dikalikan dengan untuk
menentukan memori lama yang akan dilupakan, lalu akan ditambahkan
dengan hasil dari perkalian input gate dengan kandidat cell state baru
, yaitu informasi baru yang akan disimpan.
(2.11)
Langkah terakhir adalah menentukan output dari LSTM. Output ini
akan berdasarkan dari cell state baru , pertama kita akan menggunakan
sigmoid layer terakhir yaitu output gate untuk menentukan informasi dari
cell state baru ) yang akan kita keluarkan untuk menjadi output.
(2.12)
(2.13)
Tidak seperti RNN yang menimpa kontennya di setiap timestep, LSTM
dapat menentukan memori atau informasi mana yang perlu disimpan melalui
gate-gate tersebut. LSTM dapat mendeteksi fitur pada bagian awal dan
membawa informasi ini dalam waktu yang panjang, sehingga memungkinkan
26
untuk mendapatkan informasi yang memiliki hubungan jarak jauh dengan
informasi lain (Chung, Gulcehre, Cho, & Bengio, 2014).
Dalam mengevaluasi hasil forecasting dari setiap model, terdapat
beberapa cara untuk melakukannya, dan salah satu metode yang paling umum
digunakan adalah RMSE. RMSE (Root Mean Squared Error) menghukum
variance dengan memberi weight lebih pada eror dengan nilai yang tinggi
dibandingkan dengan eror dengan nilai yang lebih kecil (Chai & Draxler,
2014). RMSE memiliki kalkulasi sebagai berikut
(2.14)
Dimana adalah jumlah populasi, yi merupakan hasil sebenarnya dan pi
merupakan hasil prediksi.
2.8 AngularJS
AngularJS adalah framework front-end open-source berbasis JavaScript untuk
aplikasi web, diterbitkan dan dikelola terutama oleh Google. AngularJS
menggunakan arsitektur MVC (Model-View-Controller) dimana setiap view akan
memiliki controller-nya masing-masing. AngularJS memungkinkan pengguna untuk
menghias HTML Anda dengan markup khusus yang disinkronkan dengan
JavaScript sehingga pengguna dapat lebih banyak menulis logika aplikasi daripada
memperbarui tampilan secara manual. Menurut Jain (2014), Angular memiliki
beberapa keunggulan, yaitu:
2.8.1 Markup Angular berada di dalam DOM (Document Object
Model)
Angular hanya akan mengevaluasi markup setelah HTML telah
dimuat ke dalam DOM. Pendekatan ini memiliki beberapa keuntungan,
yaitu: (1) integrasi dengan aplikasi lain yang telah ada, (2) simpel karena
Angular dapat digunakan pada dokumen HTML di file lokal, tanpa perlu
akses internet, dan (3) kemampuannya untuk memperluas, dalam
27
konteks membuat atribut dan elemen kustom di luar dari kosakata
HTML pada umumnya.
2.8.2 Angular menggunakan POJO (Plain Old Javascript Object)
Angular adalah satu-satunya framework front-end pertama yang
menggunakan POJO sebagai lapisan modelnya. Hal ini membuatnya
sangat mudah untuk melakukan integrasi dengan sumber data yang ada
dan bermain dengan data dasar.
2.8.3 Angular mengungkit DI (Dependency Injection)
Melakukan unit testing pada front-end biasanya sulit dilakukan
karena adanya banyak dependensi yang terikat. DI dalam Angular
memberikan pengguna kemampuan untuk menghilangkan dependensi
tersebut dan mengisolasi komponen individual.
2.9 Flask
Flask adalah kerangka kerja aplikasi web WSGI (Web Server Gateway
Interface) yang ringan. Ini dirancang untuk memulai dengan cepat dan mudah,
dengan kemampuan membuat aplikasi yang kompleks. Ini dimulai sebagai
pembungkus sederhana di sekitar Werkzeug dan Jinja dan telah menjadi salah satu
framework aplikasi web Python paling populer, menurut website resmi Flask
(https://pypi.org/project/Flask/). Seperti dikutip dari Aslam (2015), terdapat 3
keuntungan dari penggunaan framework Python ini, yaitu:
a. Extensible
Kemampuan untuk terus berkembang adalah sebuah prinsip
dasar dalam web development yang didesain sebagai kemampuan
sistem untuk memiliki fungsionalitas baru, dimana struktur internal
dan aliran data sistem hanya sedikit atau sama sekali tidak
terpengaruh olehnya. Hal ini dikarenakan sistem harus bersifat jangka
panjang, dan akan terus mengalami perubahan dan penambahan fitur
atau fungsionalitas yang diminta oleh pengguna.
28
b. Robust
Robustness adalah kemampuan sistem dalam menghadapi eror
selama proses eksekusi. Robustness juga didefinisikan sebagai
kemampuan sebuah algoritma untuk terus bekerja walaupun terdapat
anomali dalam input, kalkulasi, atau bagian lainnya.
c. Open Source
Python dan Flask adalah bahasa yang bersifat open source,
dimana source code kedua bahasa ini dapat diakses secara publik oleh
semua orang untuk dapat digunakan atau diperbarui. Kode yang
bersifat open source pada umumnya merupakan hasil kolaborasi antar
developers yang saling membantu untuk membangun dan
meningkatkan kemampuan kode tersebut.
2.10 Python
Python adalah bahasa pemrograman tingkat tinggi yang diinterpretasi,
berorientasi objek, dengan semantik yang dinamis. Tingkat tinggi yang dibangun
dalam struktur data, dikombinasikan dengan pengetikan dinamis dan pengikatan
dinamis, membuatnya sangat menarik untuk pengembangan aplikasi yang cepat,
serta untuk digunakan sebagai bahasa scripting atau bahasa untuk menghubungkan
komponen yang ada bersama-sama. Sintaksis Python yang sederhana dan mudah
dipelajari menekankan keterbacaan dan karenanya mengurangi biaya pemeliharaan
program. Python mendukung modul dan paket, yang mendorong modularitas
program dan penggunaan kembali kode. Interpreter Python dan library standar yang
luas tersedia dalam bentuk sumber atau biner tanpa biaya untuk semua platform
utama, dan dapat didistribusikan secara bebas.
2.11 Penelitian Terdahulu
Penelitian ini berkaitan erat dengan forecasting menggunakan data deret
waktu, pertumbuhan tanaman, nutrisi dan faktor-faktor yang mempengaruhi
pertumbuhan tanaman. Telah banyak penelitian yang dilakukan terkait tentang
forecasting, seperti sistem prediksi pertumbuhan tanaman menggunakan metode
29
fuzzy mamdani (Sudana et al., 2017), prediksi radiasi matahari menggunakan
Support Vector Regression (Khondaker, 2018), dan dan forecasting konduktivitas
listrik pada daerah tanah menggunakan RNN (Moon, 2018).
Ghosh (2014) menggunakan BPNN (Back Propagation Neural Network)
untuk menganalisa properti utama dalam tanah seperti kandungan organik dan
nutrisi esensial tanaman yang mempengaruhi pertumbuhan tanaman, serta hubungan
antara properti-properti tersebut. Penelitian ini menyimpulkan bahwa sebuah neural
network dengan jumlah neuron tertentu dalam hidden layer memiliki performa yang
lebih baik daripada multivariate regression. Skripsi ini menggunakan recurrent
neural network yang melihat hubungan antara satu data dengan data lainnya, bukan
sebagai data yang terpisah-pisah seperti dengan menggunakan back propagation
neural network biasa, seperti pada penelitian terdahulu ini.
Sudana et al. (2017) mencoba menggunakan metode fuzzy untuk menentukan
keterkaitan antara variabel-variabel yang mungkin mempengaruhi pertumbuhan
tanaman, seperti nutrisi, pH, dan temperatur, dengan pertumbuhan tanaman. Setelah
menentukan keterkaitan antar variabel, akan dibuat rule-base yang menjadi dasar
penentu pertumbuhan tanaman dengan melihat pada variabel-variabel yang mungkin
mempengaruhinya. Tetapi, metode yang digunakan dalam penelitian mengarah pada
pendekatan untuk mencari hubungan antar variabel dependen dan independennya,
sehingga berbeda dengan pendekatan penelitian ini yang mengarah pada prakiraan
nilai dari faktor-faktor pertumbuhan tanaman tersebut.
Penelitian lain juga dilakukan oleh Moon (2018), menggunakan LSTM dan
GRU untuk melakukan forecasting untuk 1 hingga banyak timestep. Dari hasil yang
didapatkan, nilai eror RMSE adalah 0,7 pada metode single layer LSTM dan
akurasinya cukup tinggi, yaitu 0,92. Penelitian ini menyimpulkan bahwa jumlah
timestep pada output dapat menyebabkan turunnya akurasi, dan bertambahnya
timestep pada input dapat meningkatkan akurasi sebagai akibat dari semakin
banyaknya data yang bisa dipelajari. Skripsi ini bertujuan untuk membuat sebuah
model yang dapat melakukan prakiraan nutrisi dan faktor pertumbuhan tanaman
hidroponik lainnya, dan memberikan saran terhadap jumlah yang harus ditambahkan
agar kondisi sistem ideal dengan metode yang lebih sederhana.