Author name: admin

EASY DRAW NETCDF DATA

Halo Sobat Algos! Kembali lagi di Algoinfo!
Algoinfo kali ini kita akan membahas soal Cara mudah buat bikin peta sebaran parameter dari file NetCDF nih! Sobat Algos udah tau belum apa itu file netCDF?
Nah netCDF (Network Common Data Form) adalah satu set pustaka perangkat lunak dan format data independen mesin yang mendukung pembuatan, akses, dan berbagi data ilmiah berorientasi array. Beranda proyek diselenggarakan oleh program Unidata di University Corporation for Atmospheric Research (UCAR). Mereka juga merupakan sumber utama perangkat lunak netCDF, pengembangan standar, pembaruan, dll. Formatnya adalah standar terbuka. netCDF Classic dan Format Offset 64-bit adalah standar internasional dari Open Geospatial Consortium. Biasanya netCDF itu dipakai untuk menampung data pengamatan satelit dan data model yang secara open-source dapat diakses. Penyedia data yang menggunakan format ini antara lain adalah ECMWF, REMSS, NASA Ocean Color, dan lain sebagainya.
Gimana sih cara ploting datanya ??. Banyak cara yang dapat digunakan untuk melakukan pengolahan data ini baik secara desktop, maupun secara web. Namun beberapa aplikasi tersebut terkadang hanya dapat menampilkan data saja dan belum bisa untuk melakukan pengolahan lebih lanjut, kalaupun ada biasanya berbayar. Cara lain yang dapat digunakan adalah dengan menggunakan pemograman untuk melakukan pengolahan tersebut melalui libary yang disediakan untuk bahasa pemograman spesifik, contohnya dapat digunakan Matlab, IDL, Python, dan lain sebagainya.
Pada bahasa pemograman python sendiri ada beberapa libary yang dapat digunakan untuk membaca data netCDF, salah satunya adalah netCDF4. Untuk membuat file netCDF dari python, cukup memanggil konstruktor Dataset. Ini juga merupakan metode yang digunakan untuk membuka file netCDF yang ada. Jika file terbuka untuk akses tulis (mode=’w’, ‘r+’ atau ‘a’), Kita dapat menulis semua jenis data termasuk dimensi, grup, variabel, dan atribut baru. file netCDF datang dalam lima rasa (NETCDF3_CLASSIC, NETCDF3_64BIT_OFFSET, NETCDF3_64BIT_DATA, NETCDF4_CLASSIC, dan NETCDF4). Pengolahan netCDF menggunakan python sendiri memiliki kelebihan selain dari python sendiri open-source dan banyak sekali IDLE yang dapat digunakan, juga data netCDF yang dibaca dapat diolah secara lebih fleksibel dengan menggunakan libary dasar lain seperti: numpy, mathplotlib, pandas, dan lain-lain.
Nah setelah kita dapat membaca data netCDF ini, kita akan mengubahnya dalam multidimensonal numpy array sehingga mudah untuk melakukan pengolahannya. Kemudian kita akan menggambarkan data tersebut ke dalam bentuk peta menggunakan mathplotlib.pyplot.contourf. Untuk lebih jelasnya simak langkah-langkah berikut ini ya:
1. Buka software atau laman pengolahan code (IDLE) python kalian. Kalian dapat menggunakan software seperti VSCode Studio atau laman seperti Google Colaboratory dan Jupiter Notebook.

2. Install modul-modul yang diperlukan. Kita akan menggunakan modul matplotlib.pyplot, numpy, dan netCDF4.

3. Kerena sekarang kita menggunakan Google Colaboratory maka file netCDF kita terlebih dahulu harus di upload ke IDLE, Sehingga dapat diakses untuk pengolahannya.

4. Selanjutnya kita gunakan fungsi Dataset dari netCDF4 untuk membaca data netCDF kita

5. Dengan menggunakan fungsi Dataset dalam “ncread” gunakan untuk membaca parameter didalam file netCDF yang kita butuhkan untuk menggambarkannya (parameter utama, longitude, latitude) dan membautnya menjadi bentuk numpy.array

6. Tentukan Interval nilai kontur (level) dengan menggunakan numpy.linspace(awal, akhir, banyak)
7. Gambar peta sebaran dengan menggunakan “contourf” dari Mathplotlib dengan format nilai (x, y, z) pada sepesifik bulan dan kedalaman (z[bulan, kedalaman, lat, lon])
8. Tambahkan pelengkap berupa Colorbar dan sesuaikan sesuai kebutuhan

9. Selesai, Selamat Mencoba!!!

Untuk penjelasan lebih lengkapnya dapat dilihat di youtube kami ya!
Kode Program:
pip install netcdf4
import netCDF4 as nc
import matplotlib.pyplot as plt
import numpy as np
from google.colab import files
ncfile = files.upload()
ncread= nc.Dataset(“global-analysis-forecast-bio-001-028-monthly_1635740980804.nc”)
nitrat = np.array(ncread[‘no3’])
depth = np.array(ncread[‘depth’])
lon = np.array(ncread[‘longitude’])
lat = np.array(ncread[‘latitude’])
level= np.linspace(0,3,21)
peta= plt.contourf(lon, lat, nitrat[3,0,:,:], cmap= ‘jet’, levels=level)
plt.title(“Peta Nitrat Bulan April Kedalaman 0,5 meter”)
plt.colorbar(peta, orientation= ‘horizontal’, label= ‘mmol m-3’)
plt.show()

Sekian dari AlgoInfo kali ini, semoga bermanfaat ya Sobat Algos!
Algomarine, Algorithm for Marine Solutions!

Refernsi lainnya:
https://unidata.github.io/netcdf4-python/
https://www2.atmos.umd.edu/~cmartin/python/examples/netcdf_example1.html
https://kpegion.github.io/Pangeo-at-AOES/examples/read-netcdf.html

EASY DRAW NETCDF DATA Read More »

EASY PROGRAMMING FOR TIDAL DATA

Pasang – surut ialah fenomena naik dan turunnya permukaan air sebab benda-benda langit (matahari dan bulan). Fenomena ini sudah banyak dikaji serta disajikan dalam bermacam wujud, salah satunya dalah berbentuk grafik harmonik pergantian elevasi massa air setiap waktunya untuk mengetahui tipe pasang surut pada daerah tersebut (pasut harian ganda/ tunggal/ campuran). Hal ini mungkin dilakukan dengan metode plotting pergantian muka air setiap jam selama kurun waktu minimal 15 hari.

Penyajian grafik pasang surut umumnya dilakukan memakai aplikasi spreadsheet dengan mudah. Namun nyatanya terdapat metode yang lebih mudah ialah dengan memakai bahasa pemrograman python. Lalu bagimana sih cara menampilkanya dengan python? Penampilan ataupun pembuatan grafik pasang surut dengan memanfaatkan python mempunyai kelebihan ialah kemudahan untuk pengaksesan serta pemasangannya pada program ataupun aplikasi lain. Hal itu dikarenakan python yang bersifat open source, selain itu akan lebih mudah untuk pembuatan grafik secara masal dan banyak.

Modul utama yang dipakai dalam proses plot grafik pasang surut secara sederhana adalah dengan memanfaatkan library pandas, numpy, python io, dan matplotlib, serta modul-modul didalamnya untuk melakukan customisasi terhadap grafik yang ingin kita buat. Berikut merupakan langkah-langkah pembuatan grafik pasang surut menggunakan python:
1. Buka software atau laman pengolahan code python kalian. Kalian dapat menggunakan software seperti VSCode Studio atau laman seperti Google Colaboratory dan Jupiter Notebook.
2. Install modul-modul yang diperlukan. Kita akan menggunakan modul matplotlib.pyplot dan pandas, numpy, dan python io.
3. Upload file yang akan dilakukan visualisasi grafik elevasinya dengan memilih menu “Telusuri”. Gunakan modul google.colab.files apabila menggunkan Google Colaboratory. File yang di-upload telah disusun sedemikian rupa.


Susunan Excel :

Buat variabel baru (dataframe) yang mendefinisikan pembacaan file excel yang kita buat menggunakan modul pd.read_excel(io.BytesIO(uploaded[“Nama File.xls‟])). Untuk selanjutnya, dataframe kita ubah dalam bentuk array. Tambahkkan perintah untuk menampilkan array pada kolom elevasi. Pada grafik kita juga akan menampilkan muka air rerata, tertinggi, dan terendah. Selanjutnya kita akan melakukan plot untuk grafiknya. Adapun codingannya:
dataframe = pd.read_excel(io.BytesIO(data[‘Nama File.xls’]))
elevation = np.array(dataframe[‘ELEVASI’])
LLWL1 = elevation.min()
MSL1 = elevation.mean()
HHWL1 = elevation.max()
K=np.zeros_like(elevation)
MSL = K+MSL1
LLWL= K+LLWL1
HHWL= K+HHWL1
x = dataframe[“WAKTU PENGAMATAN”]
y = dataframe[“ELEVASI”]
fig = plt.figure(dpi=120,)
ax1 = fig.add_subplot()
ax1.set_xlabel(‘Waktu Pengamatan’)
ax1.set_ylabel(‘Elevasi’)
ax1.set_title(“Nama Grafik”)
ax1.plot(x, y, label = ‘Elevasi’)
ax1.plot(x, MSL, label = ‘MSL’)
ax1.plot(x, HHWL, label = ‘HWS’)
ax1.plot(x, LLWL, label = ‘LWS’)
ax1.legend(loc=’best’)
fig.autofmt_xdate()
fig.show()

Untuk penjelasan lebih lengkapnya dapat dilihat di youtube kami ya!
Sekian dari AlgoInfo kali ini, semoga bermanfaat ya Sobat Algos!
Algomarine, Algorithm for Marine Solutions!

Sumber:
https://ocefpaf.github.io/python4oceanographers/blog/2014/07/07/pytides/

EASY PROGRAMMING FOR TIDAL DATA Read More »

Membuat NavBar dengan FlexBox

Navbar merupakan komponen website yang di dalamnya terdapat menu-menu item. NavBar ini biasa digunakan untuk mengkategorisasi dari halaman halaman website.
Flex
Flexible Box biasa disebut flexbox merupakan mode layout yang digunakan untuk mengatur elemen di suatu halaman web. Flexbox ini akan mengatur ukuran dari elemen anaknya secara otomatis, dan mampu beradaptasi dengan ukuran container-nya.

Video: https://drive.google.com/file/d/1FoPg63oD_mvt-r9MbBrEq-1aOxlpfGlH/view?usp=sharing

Membuat NavBar dengan FlexBox Read More »

Variable yang terdapat pada Kotlin

Halo Sobat Algos! Bertemu lagi dalam AlgoInfo!
AlgoInfo kali ini akan membahas lagi nih tentang Kotlin. Kali ini kita bahas yuk variable-variable yang terdapat pada kotlin!

Variable merupakan suatu tempat untuk menyimpan data-data. Kotlin mendukung 2 jenis variable, yaitu Mutable (bisa diubah) dan Immutable (tidak bisa di ubah). Untuk membuat variable Mutable, di kotlin bisa menggunakan kata kunci var, akan tetapi Untuk membuat variable Immutable, di kotlin bisa menggunakan kata kunci val.

Deklarasi Variable
“val/var namaVariable : TipeData = data”
Direkomendasikan menggunakan Immutable dibanding Mutable data.

Contoh kode dari Variable Mutable dan Variable Immutable adalah sebagai berikut :
Kode : Variable Mutable

Kode : Variable Immutable

Pengertian Nullable pada Kotlin
Secara standar, variable di Kotlin harus dideklarasikan / diinisialisasikan nilai nya. Jika saat membuat variable tidak diberi nilai, maka akan error
Kotlin mendukung variable yang boleh null (tidak memiliki data). Hal ini dikarenakan Kotlin bisa mengakses Java, dan kebanyakan di Java, semua variable bisa null. Untuk membuat variable bisa bernilai null, di Kotlin bisa menggunakan “?” (tanda tanya) setelah tipe datanya. Penggunaan fitur ini tidak direkomendasikan untuk dilakukan di kotlin, akan tetapi hanya sebagai jalan akhir jika misal mengakses kode Java
Kode : Nullable

Variable Konstan pada Kotlin
Arti kata konstan adalah Immutable data, yang biasanya diakses untuk keperluan global. Global dapat diartikan bisa diakses dimanapun. Untuk menandai bahwa variable tersebut adalah konstan, biasanya menggunakan “UPPER_CASE” dalam pembuatan nama variable Konstan-nya
Kode : Variable Constant

Untuk penjelasan Kotlin lebih lengkapnya dapat dilihat di youtube kami ya!

Sekian dari AlgoInfo kali ini, semoga bermanfaat ya Sobat Algos!

Algomarine, Algorithm for Marine Solutions!

Variable yang terdapat pada Kotlin Read More »

Apa sih itu Kotlin?

Halo Sobat Algos! Bertemu lagi dalam AlgoInfo!
AlgoInfo kali ini akan membahas tentang Kotlin. Apa sih itu Kotlin? Kotlin adalah bahasa pemrograman modern yang dapat disajikan secara statis. Kotlin diperkenalkan pertama kali oleh JetBrains pada tahun 2011. Kotlin pada mulanya berjalan diatas platform Java Virtual Machine (JVM). Kotlin menggunakan compiler LLVM yang artinya, dapat dikompilasi ke dalam kode JavaScript. Bahasa pemrogaman ini terintigrasi dengan Java. Bahasa pemrograman yang satu ini banyak diminati oleh para developer. Terutama bagi kamu yang ingin jadi developer Android. Kotlin menjadi bahasa pemrogaman utama dalam pengembangan aplikasi Android.

Software Development Kit (SDK)
1.Software untuk proses development
2.Untuk melakukan kompilasi dan menjalankan kode program Kotlin
3.Java Development Kit (JDK) versi 8 keatas

Proses Development Program Kotlin

Integrated Development Environment (IDE)
1.Smart editor untuk editing program Kotlin
2.Untuk otomasi proses kompilasi dan menjalankan program Kotlin
3.JetBrains IntelliJ IDEA

Untuk penjelasan Kotlin lebih lengkapnya dapat dilihat di youtube kami ya!

Sekian dari AlgoInfo kali ini, semoga bermanfaat ya Sobat Algos!

Algomarine, Algorithm for Marine Solutions!

Apa sih itu Kotlin? Read More »

Penggunaan hover pada CSS dan HTML

Halo Sobat Algos! Selamat datang lagi dalam AlgoInfo!
AlgoInfo merupakan proker yang berisi tentang informasi informasi yang berhubungan dengan dunia coding. Untuk materi kali ini, kami akan menjelaskan tentang beberapa fungsi dari CSS dan HTML. Di materi AlgoInfo sebelumnya, telah dijelaskan apa itu HTML, CSS, dan JavaScript. CSS merupakan aturan untuk mengendalikan komponen yang telah diatur di HTML. Simplenya CSS digunakan untuk mengatur HTML supaya lebih menarik. Banyak jenis fungsi dari CSS yang dapat digunakan, di materi ini kami akan menjelaskan fungsi seperti hover, dan beberapa cara untuk mengatur box. Nah sekian buat pendahuluanya, kembali ke Laptop!

Di atas ini merupakan contoh dari bentuk HTML dan CSS yang udah kami buat. Untuk temanya kami pilih spongebob karena spongebob warna kuning, saya suka warna kuning. Ngga deng bercanda hehe. Untuk background haru melakukan penyesuaian. Karena gambar konten berisi spongebob, maka kita buat background Bikini Bottom. Jadi, kita buat struktur HTML nya terlebih dahulu. Yang perlu dibuat pertama yaitu header yang tertulis nama Algomarine. Lalu selanjutnya, kita buat isi konten. Dalam isi konten terdapat 2 jenis konten, yaitu gambar seperti gambar diatas dan teks seperti ini

Untuk struktur yang dibuat di HTML dapat berupa

Setelah struktur HTML telah dibuat, maka dapat diatur menggunakan CSS. Pada konten, kami membuat kotak lalu beri background-color yang sesuai. Untuk memberi jarak dari tiap kotak dapat menggunakan perintah margin. Bila cursor diarahkan ke arah gambar, gambar pada konten dapat membesar. Cara untuk mengubah gambar saat ditunjuk cursor dengan menggunakan hover. Selain digunakan untuk memperbesar gambar, hover dapat digunakan juga untuk memunculkan konten teks yang menumpuk dengan gambar. Jika tidak diberi perintah hover, maka pada gambar konten akan tertutup oleh konten tulisan. Untuk penjelasan lebih lengkapnya dapat dilihat pada youtube kami!

Sekian dari AlgoInfo kali ini, semoga bermanfaat ya Sobat Algos!

Algomarine, Algorithm for Marine Solutions!

Penggunaan hover pada CSS dan HTML Read More »

Pembuatan form menggunakan HTML, CSS dan JavaScript

Halo Sobat Algos! Bertemu lagi dalam AlgoInfo!
AlgoInfo kali ini akan membahas tentang HTML, yaitu penggunaan JavaScript dan CSS untuk membuat suatu form. Apakah Sobat Algos sudah tau tentang HTML, JavaScript, CSS? Nah sebelum masuk ke formnya, mari kita bahas sejarahnya terlebih dahulu! Yang pertama ada HypertText Markup Language (HTML), merupakan bahasa markup yang bertujuan untuk penataan dan penyajian konten untuk World Wide Web (WWW). Yang kedua ada Cascading Style Sheet (CSS), merupakan aturan untuk mengendalikan beberapa komponen dalam sebuah web sehingga akan lebih terstruktur dan seragam. Dan yang terakhir ada JavaScript, yaitu bahasa pemrograman berbasis java yang merupakan interface pembantu dalam pemrograman web. Basa-basi cenat cenutnya udah dulu ya! Cusss langsung masuk kita kedalam formnya!

Pada form ini terlihat ada 2 background, yaitu pepohonan hijau dan light blue vinyl. Background dapat di edit sedemikian rupa pada CSS yang sudah dihubungkan pada web ini agar mempercantik tampilan dari web tersebut. Pada background pepohonan disini, sifatnya general dari halaman web itu sendiri. Didalam nya terdapat background light blue vinyl yang merupakan form itu sendiri. Form disini mempunyai 2 button, yaitu input dan output. Input disini dapat digunakan oleh user untuk memasukan data-data yang diperlukan untuk mengisi form tersebut, untuk output dapat digunakan untuk melihat hasil inputan oleh user yang sudah di submit. Disini user dapat menuliskan nama lengkap, asal kota, email aktif, dan nomor telefon. Setelah semua terisi, user dapat melihat hasil inputannya tersebut pada button output.

Pada form ini, digunakan juga efek dari submit button function, yang digunakan untuk memberi peringatan pada user saat sudah mengklik tombol submit, akan tetapi isi form masih kosong.

Terlihat pada gambar diatas, saat user belum memasukan data asal kota, web akan memunculkan peringatan “kaka dari mana?” untuk user, agar user dapat mengisinya kembali sebelum di sumbit ulang. Apabila salah satu dari data form diatas tidak terisi, maka web akan memberi peringatan untuk mengisinya agar hasil output dapat keluar.

Untuk struktur htmlnya sendiri dapat dilihat di gambar, struktur dasarnya menggunakan class form yang didalamnya terdapat element button, class input dan class output. Html ini disambungkan ke file index.css untuk memberi design dari halaman webnya. Untuk penjelasan pemberian cssnya dan javascriptnya dapat dilihat di youtube kami.

Sekian dari AlgoInfo kali ini, semoga bermanfaat ya Sobat Algos!

Algomarine, Algorithm for Marine Solutions!

Pembuatan form menggunakan HTML, CSS dan JavaScript Read More »

Integrasi IoT menggunakan ESP32/ESP8266 untuk Project LED Control dengan Telegram Bot

Halo Sobat Algos! Kembali lagi di Algoinfo!
Algoinfo kali ini kita akan membahas soal Internet of Things atau IoT nih! Sobat Algos udah tau belum apa itu Internet of Things atau IoT? Nah Internet of Things atau IoT merupakan sebuah konsep yang bertujuan untuk memperluas manfaat dari konektivitas internet yang tersambung secara terus menerus. Kemampuan yang dimaksud itu bisa berupa berbagi data, remote control, dan sebagainya. Nah dalam praktiknya, kita membutuhkan beberapa perangkat yang dapat mengintegrasikan proyek yang kita buat agar nantinya berbasis IoT. Salah dua di antaranya, ada ESP32 dan ESP8266. Wah apa lagi tuh ESP32 dan ESP8266?

ESP32 dan ESP8266 merupakan suatu module chip yang digunakan sebagai WIFi bridge untuk mikrokontroler lain agar dapat terhubung ke jaringan internet. Pada awalnya, ESP8266 hanya bisa dijalankan menggunakan perintah AT Command melalui komunikasi serial. Kemudian dilakukan pengembangan kembali dimana akhirnya ESP8266 dapat diprogram dengan menggunakan Arduino IDE seperti yang akan kita lakukan pada proyek kita kali ini. Lalu perbedaan ESP32 dan ESP8266 tuh apa ya? Nah sebenarnya, ESP32 merupakan versi peningkatan dari ESP8266, akan tetapi cara kerja keduanya hampir serupa. Untuk lebih jelasnya, tabel perbedaan spesifikasi keduanya dapat dilihat sebagai berikut:


(Sumber: https://randomnerdtutorials.com/build-web-servers-esp32-esp8266-ebook/)

Module ESP baik ESP32 maupun ESP8266 amat banyak macamnya. Pada kesempatan kali ini, kita akan menggunakan module NodeMCU ESP32 dan NodeMCU ESP8266 untuk mensimulasikan, bagaimana ya caranya kita dapat mengontrol LED melalui Telegram Bot? Kita juga akan menggunakan software Arduino IDE untuk membuat program module tersebut.

Pada project kali ini, kita akan membutuhkan:
1. Module ESP32 atau ESP8266
2. LED
3. Perangkat komputer/laptop yang sudah ter-install software Arduino IDE
4. Software Telegram

Pertama-tama, kita harus membuat Telegram Bot terlebih dahulu nih sobat Algos! (Tahapan tutorialnya secara lengkap dapat sobat Algos simak melalui video tutorial di YouTube Algomarine yaa!) Kali ini kita akan mengacu pada tahapan tutorial pada website (https://randomnerdtutorials.com/telegram-control-esp32-esp8266-nodemcu-outputs/).
Ringkasan tahapan untuk membuat Telegram Bot yaitu:
1. Membuat Bot baru melalui BotFather atau t.me/botfather
2. Mendapatkan informasi link Bot yang telah dibuat serta token Bot
3. Mendapatkan Telegram User ID melalui IDBot atau t.me/myidbot

Setelah kita selesai membuat Telegram Bot, langkah selanjutnya adalah mempersiapkan proses pemrograman melalui Arduino IDE. Ringkasan tahapannya yaitu:
1. Meng-install library yang akan digunakan. Library tersebut bisa kita download melalui link berikut: (https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot/archive/master.zip)
(https://github.com/bblanchon)
2. Merancang program dalam Arduino IDE menggunakan script coding berikut:
/*
Rui Santos
Complete project details at https://RandomNerdTutorials.com/telegram-control-esp32-esp8266-nodemcu-outputs/

Project created using Brian Lough’s Universal Telegram Bot Library: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
Example based on the Universal Arduino Telegram Bot Library: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot/blob/master/examples/ESP8266/FlashLED/FlashLED.ino
*/

#ifdef ESP32
#include
#else
#include
#endif
#include
#include // Universal Telegram Bot Library written by Brian Lough: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
#include

// Replace with your network credentials
const char* ssid = “REPLACE_WITH_YOUR_SSID”;
const char* password = “REPLACE_WITH_YOUR_PASSWORD”;

// Initialize Telegram BOT
#defineBOTtoken “XXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”// your Bot Token (Get from Botfather)

// Use @myidbot to find out the chat ID of an individual or a group
// Also note that you need to click “start” on a bot before it can
// message you
#define CHAT_ID “XXXXXXXXXX”

WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client);

// Checks for new messages every 1 second.
int botRequestDelay = 1000;
unsigned long lastTimeBotRan;

const int ledPin = 2;
bool ledState = LOW;

// Handle what happens when you receive new messages
void handleNewMessages(int numNewMessages) {
Serial.println(“handleNewMessages”);
Serial.println(String(numNewMessages));

for (int i=0; i lastTimeBotRan + botRequestDelay) {
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);

while(numNewMessages) {
Serial.println(“got response”);
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
lastTimeBotRan = millis();
}
}

3. Kemudian berdasarkan informasi yang telah kita dapatkan saat membuat Telegram Bot, kita dapat mencantumkannya dalam script coding tersebut.

Dalam mengoperasikannya, pastikan sobat Algos menggunakan koneksi internet yang tidak melalui tahapan log in terlebih dahulu ya! Simulasi proyek kali ini secara lengkap dapat disimak dalam video tutorial di YouTube Algomarine!

Okee, gimana nih sobat Algos! Mudah kan pengaplikasian IoT menggunakan Telegram Bot? Proyek sederhana tadi dapat kita kembangkan juga menjadi proyek dengan skala yang lebih besar. Sebagai contohnya jika dalam ranah Oseanografi dan kelautan, kita dapat mengintegrasikan stasiun pasang surut yang ada di lapangan menggunakan prinsip IoT dan juga Telegram Bot loh! Hal tersebut bisa mengefisienkan proses pengumpulan data yang kita butuhkan dari lapangan. Jadi, kita ga perlu harus turun ke lapangan secara langsung buat dapat data terkininya, kita bisa menggunakan perintah melalui Telegram Bot aja dari rumah, dan kita tetap bisa mendapatkan data lapangan secara real time!

Sekian dulu untuk AlgoInfo kali ini, semoga bermanfaat ya Sobat Algos!

Algomarine, Algorithm for Marine Solutions!

Integrasi IoT menggunakan ESP32/ESP8266 untuk Project LED Control dengan Telegram Bot Read More »

PERENCANAAN DAYA PADA SUATU SISTEM PROYEK INSTRUMEN

Halo Sobat Algos! Bertemu lagi dalam AlgoInfo!
AlgoInfo kali ini berkenaan dengan perencanaan daya suatu sistem yang nantinya akan kita operasikan di lapangan. Sebelum ke tahap pengoperasian serta penempatan sistem di lapangan, maka kita perlu merencanakan terlebih dahulu banyaknya daya yang kita butuhkan untuk menjalankan suatu sistem. Sebagai contoh, jika kita ingin menempatkan stasiun pasang surut di lapangan, maka kita perlu menghitung berapakah total daya yang dibutuhkan untuk menyokong beberapa komponen, seperti microcontroller, sensor pasang surut, sirine, atau bahkan kamera pengawas.

Tahapan perencanaan dan perhitungan daya yang diperlukan ini sangat penting sobat Algos! Hal ini dikarenakan kita perlu mengantisipasi terjadinya kematian sistem yang disebabkan akibat tidak tercukupinya daya yang dibutuhkan oleh sistem. Perencanaan ini juga sangat penting agar efektivitas dari sistem dapat optimal. Daya listrik yang kita gunakan memerlukan perencanaan yang matang agar kita dapat mengupayakan pula pengefisiensian energi listrik yang kita gunakan.

Daya pada sistem terbagi menjadi 3, yaitu:
Daya Sistem Inti, bisa terdiri dari microcontroller, sensor, WiFi, dsb.
Daya Akumulator, dan
Daya dari Panel Surya.

Perhitungan untuk perencanaan daya yang dibutuhkan dapat kita lakukan dengan terlebih dahulu menuliskan komponen dalam sistem utama dan sistem pendukung beserta daya pada tiap komponen. Sebagaimana contoh dalam video tutorial, kebutuhan sistem utama di antaranya ialah microcontroller yaitu Arduino. Bagaimanakah cara kita menghitung daya pada satu board Arduino? Nah, biasanya kita dapat melihat datasheet untuk data arus maksimum dan voltase maksimum pada tiap pin dalam Arduino.

Daya Sistem Inti
Contohnya, disini kita menggunakan Arduino UNO ATmega328. Pada datasheet (https://www.farnell.com/datasheets/1682209.pdf) kita dapat mengetahui informasi Arus DC tiap pin I/O ialah sebesar 200mA. Kemudian tegangan pengoperasiannya adalah 5V. Dengan menggunakan rumus daya:
P = V x I
Maka, total daya yang dibutuhkan oleh satu board Arduino UNO ATmega328 adalah:
P = 5V x 200mA = 1000mW = 1 Watt

Perhitungan tersebut kita lakukan pada seluruh komponen baik pada sistem utama maupun pada sistem pendukung sebagaimana yang dijelaskan dalam video tutorial. Selanjutnya, seluruh daya yang dibutuhkan kita jumlahkan. Kemudian, kita juga harus menyertakan asumsi losses. Asumsi losses disertakan untuk meminimalisasi kesalahan perhitungan ataupun mengantisipasi adanya ketidaktepatan kinerja dari kabel yang kita gunakan, dimana hal tersebut dapat berpengaruh pada total daya yang diperlukan pada sistem.

Kita asumsikan besarnya losses adalah 20% dari total daya yang diperlukan. Maka, total daya pada sistem adalah:
Losses = 20% x 19,15W = 3,83W
Total daya beserta asumsi losses = 19,15W + 3,83 = 22,98W/jam
Total daya beserta asumsi losses dalam 1 hari = 22,98 W/jam x 24 = 551,52W/hari

2) Daya Akumulator
Selanjutnya, kita akan menghitung daya akumulator 12V 20Ah. Perhitungan tersebut menggunakan konsep yang sama dengan sebelumnya yaitu rumus:
P = V x I
Kita akan mengasumsikan bahwa daya akumulator belum mencukupi kebutuhan daya untuk mengoperasikan sistem, yaitu dengan Voltase sebesar 12V dan Kapasitas sebesar 40Ah. Maka daya akumulator ialah sebesar 480 Watt.

Kita juga mengasumsikan skenario daya akumulator tanpa adanya power input lainnya, seperti contohnya panel surya. Maka dalam asumsi ini, akumulator telah terisi penuh kemudian digunakan untuk mengoperasikan sistem. Dalam hal ini kita perlu menghitung:
Arus beban = Daya beban / Voltase akumulator
Daya beban adalah total daya beserta asumsi losses per jam (22,98W/jam), serta Voltase akumulator adalah (12V). Maka arus beban adalah 1,915 A.
Selain itu, kita juga dapat menghitung berapa lama pemakaian akumulator yang telah terisi penuh tersebut hingga dayanya habis. Hal itu dilakukan dengan cara:
Waktu pemakaian = Kapasitas Akumulator / Arus Beban
Waktu pemakaian = 40Ah / 1,915 A = 20,888 Jam

Akan tetapi, pada praktiknya pemakaian akumulator tidak diperkenankan hingga benar-benar habis. Oleh sebab itu, diperlukan juga untuk menghitung diefisiensi akumulator. Diefisiensi akumulator yang kita asumsikan adalah sebesar 20%. Maka waktu pemakaiannya menjadi:
Diefisiensi Akumulator = 20% x 20,888 = 4,1776 Jam
Waktu pemakaian dengan asumsi diefisiensi Akumulator = 20,888 – 4,1776 = 16,71 Jam

3) Daya dari Panel Surya
Terdapat berbagai macam daya dari panel surya, namun kali ini kita akan menggunakan panel surya dengan daya 50 wp dalam perhitungan. Kita juga mengasumsikan jumlah panel surya yang kita gunakan sebanyak 2 buah. Efektivitas panel surya diasumsikan selama 6 jam. Maka daya dari panel surya:
Total daya dari panel surya = 50 wp x 2 x 6 jam = 600 Watt/hari

Pengisian Akumulator
Sebelumnya kita mengasumsikan bahwa daya akumulator yang kita gunakan belum mencukupi kebutuhan daya dari sistem yang akan kita operasikan. Oleh sebab itu, kita perlu melakukan perhitungan juga dalam pengisian akumulator dengan asumsi terisi 6 jam. Kita akan menentukan besarnya arus yang dibutuhkan jika akumulator ingin terisi penuh selama 6 jam, yaitu dengan cara:
Arus pengisian akumulator = Kapasitas akumulator / waktu = 40 / 6 = 6,6667 A

Dalam pengisian kita perlu menghitung juga diefisiensi sebesar 20%. Maka besarnya arus yang dibutuhkan untuk mengisi akumulator adalah:
Diefisiensi akumulator = 20% x 6,6667 = 1,33334
Kebutuhan inputt arus = 6,6667 A + 1,33334 A = 8,0004 A

Prinsip pada pengisian akumulator adalah, semakin besar daya akumulator maka semakin lama waktu yang diperlukan untuk mengisi akumulator.
Jika dalam pengisian akumulator arus input maksimalnya adalah 5,74 A, maka waktu yang diperlukan dapat dihitung dengan cara:
Waktu = Kapasitas akumulator / Arus input = 40 / 5,74 = 6,986 Jam

Dengan asumsi kita di awal kapasitas akumulator sebesar 40 Ah, kurang mencukupi kebutuhan daya untuk mengoperasikan sistem inti yang kita rancang. Hal itu dikarenakan, daya pada akumulator tidak dapat dipakai hingga benar-benar habis. Kita harus merancang sistem dimana daya akumulator yang kita gunakan masih tersisa setidaknya 20% untuk menghindari kerusakan yang terjadi pada akumulator.

Maka, kita asumsikan jika kapasitas akumulator sebesar 60 Ah. Dengan melakukan perhitungan yang sama, maka daya dari akumulator menjadi 720 Watt. Daya tersebut sudah mencukupi kebutuhan total daya dari sistem inti yang kita rancang. Hal itu dikarenakan:
Daya 20% dari 720 Watt yaitu 144 Watt
Jika dibandingkan dengan selisih antara daya akumulator dan daya sistem inti, daya yang tersisa ialah 168,4 Watt
Tersisa 24,4 Watt sebagai cadangan lebih daya pada akumulator, selain cadangan 20%
Berdasarkan poin tersebut, maka sistem dapat beroperasi secara efektif dan efisien karena daya yang dibutuhkan telah terpenuhi.

Perencanaan perhitungan daya yang dibutuhkan pada suatu sistem membutuhkan ketelitian serta penuh dengan strategi. Hal ini agar sistem dapat beroperasi secara berkelanjutan, sehingga data yang kita peroleh dapat lebih presisi serta akurat.

Sekian AlgoInfo kali ini Algos! Semoga dapat membantu perencanaan Sobat Algos dalam melakukan proyek yang berkaitan dengan rancang bangun suatu sistem ya!

References :
Listiyarini, R. 2018. Dasar Listrik dan Elektronika. Deepublish: Yogyakarta.
Nugroho, H., dan Dwiyoga, N. 2014. Instrumentasi Pemantauan Jarak Jauh Untuk mengukur Kinerja Turbin Arus Pasang Surut Air Laut. Jurnal Kelautan Nasional. 9(1): 47-57.
Ponto, H. 2018. Dasar Teknik Listrik. Deepublish: Yogyakarta.

PERENCANAAN DAYA PADA SUATU SISTEM PROYEK INSTRUMEN Read More »

BUAT DIAGRAM T-S MUDAH DENGAN PYTHON

Hello Sobat Algos !! Gimana kabar kuliahnya? Semoga lancar dan tetap semangat ya.

Kali ini kita bakal membahas salah satu library yang ada di Python nih yaitu Diagram T-S.
Seperti yang kita ketahui penyajian data parameter oseanografi sangat beragam jenis nya salah satunya disajikan dalam bentuk diagram berupa Diagram T-S. Diagram T-S adalah grafik yang menunjukkan hubungan antara suhu dan salinitas seperti yang diamati bersama pada, misalnya, kedalaman yang ditentukan dalam kolom air. Variabel utama yang dibutuhkan untuk mengolah data Diagram T-S adalah tentunya temperature dan salinitas. Nilai temperature dan salinitas nantinya akan tergantung kepada nilai kedalaman.
Karakteristik suatu perairan ditentukan dengan memplot data suhu dan salinitas terhadap kedalaman.Hubungan salinitas dan suhu dipresentasikan ke dalam Diagram T-S. Di laut kombinasi TS tertentu lebih disukai yang mengarah pada prosedur identifikasi melalui definisi jenis air dan massa air dan distribusi mereka.
Diagram temperatur-salinitas (T-S) perairan penting untuk difahami karena bermanfaat untuk mengetahui sumber massa air perairan setempat. Oleh karena itu perlu pemahaman yang baik mengenai dinamika diagram T-S di setiap perairanKarakteristik diagram T-S khususnya ditentukan olehperubahan pola horisontal dalam tiga lapisan, yaitu air hangat di lapisan atas, air pertengahan, dan air dingin di laut bagian dalam.

Terus ada yang bertanya-tanya apa kegunaan dari diagram T-S ini,
Kegunaannya antara lain:
1. Dapat digunakan untuk mengecek apakah data suhu dan salinitas yang diambil di lapangan dapat di percaya atau tidak.
2. Dapat digunakan untuk mengidentifikaasi massa air dan menentukan proses pencampuran
3. Dapat digunakan untuk melihat kestabilan kolom air
4. Dapat digunakan untuk melacak gerakan massa air dengan cara membandingkan beberapa diagram T-S suatu perairan

Sebelum mengolah variabel dari Diagram T-S men ggunakan Python, terlebih dahulu data suhu/temperature dan salinitas dimasukkan kedalam excel.

Berikut ini langkah-langkah sederhana dalam menggunakan library Diagram T-S dalam python:

1. Buka software atau laman pengolahan code python kalian. Kalian dapat menggunakan software seperti VSCode Studio atau laman seperti Google Colaboratory dan Jupiter Notebook.

2. Lakukan instalasi library GSW (Gibbs Seawater) pada halaman kerja dan tunggu proses install selesai.
Coding=
pip install gsw

3. Lakukan import data file excel
Coding=
from google.colab import files
uploaded = files.upload()

4. Lakukan import library pendukung penulisan script lain seperti numpy, pandas, matplotlib, IO dan GSW. Import juga “MaxNLocator” dari library matplotlib.ticker yang telah di install. Kemudian masukan script dengan menggunakan fungsi def yang berguna untuk menyimpan Diagram T-S dengan menggunakan variabel yang sudah diupload di file.
Coding=
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import io
import gsw as gsw
from matplotlib.ticker import MaxNLocator
def TSdiagram(*file):
df=pd.read_excel(io.BytesIO(uploaded[‘Stasiun 1.xlsx’]))
df
ts=df[[‘Temperature’, ‘Salinity’]]
df1=ts.sort_values(‘Temperature’,ascending=True)
mint=np.min(df[‘Temperature’])
maxt=np.max(df[‘Temperature’])
mins=np.min(df[‘Salinity’])
maxs=np.max(df[‘Salinity’])
tempL = np.linspace(mint-0.7,maxt+0.3)
salL = np.linspace(mins-0.7,maxs+0.3)
Tg, Sg = np.meshgrid(tempL,salL)
sigma_theta = gsw.sigma0(Sg, Tg)
cnt = np.linspace(sigma_theta.min(), sigma_theta.max(),200)
fig,ax=plt.subplots(figsize=(10,10))
cs=ax.contour(Sg, Tg, sigma_theta, colors=’grey’, zorder=1)
cl=plt.clabel(cs,fontsize=10,inline=False,fmt=’%.1f’)
sc=plt.scatter(df[‘Salinity’],df[‘Temperature’],s=10)
cb=plt.colorbar(sc)
ax.set_xlabel(‘Salinity [$‰$]’)
ax.set_ylabel(‘Temperature[$^\circ$C]’)
cb.set_label(‘Density[Kg/m$^{-3}$]’)
ax.set_title(‘Temperature and salinity (T-S) Diagram’,fontsize=20, fontweight=’bold’)
ax.xaxis.set_major_locator(MaxNLocator(nbins=20))
ax.yaxis.set_major_locator(MaxNLocator(nbins=40))
ax.tick_params(direction=’out’)
cb.ax.tick_params(direction=’out’)
plt.tight_layout()
plt.savefig(‘ts_diagram.png’,format=’png’,dpi=900,transparent=False)
plt.show()
return ‘ts_diagram.png’

5. Kemudian jalankan coding kalian dan atur sesuai dengan keperluan kalian. Kalian dapat menambahkan Judul, mengatur label data, dan lain-lain. Batasnya adalah imajinasi kalian.
Hasill Diagram T-S yang ditampilkan bakal seperti ini:

Buat lebih jelasnya, simak juga tutorial pembuatannya melalui youtube kami:

Semoga Bermanfaat

Sumber:
https://hafezahmad.medium.com/making-temperature-salinity-diagrams-called-the-t-s-diagram-with-python-and-r-programming-5deec6378a29

BUAT DIAGRAM T-S MUDAH DENGAN PYTHON Read More »