Membaca 24 Sensor Suhu LM35 dengan 3 Multiplekser Berbasis Atmega 16

Membaca 24 Sensor Suhu LM35 dengan 3 Multiplekser Berbasis Atmega 16

Hallo teman-teman semuanya, kali ini saya akan mem-posting sebuah tutorial untuk membaca banyak sensor suhu LM-35 menggunakan mikrokontroler Atmega 16. Wah, pastinya penasaran banget ya, gimana cara membaca banyak sensor, tetapi dengan menggunakan pin input/output sedikit saja.

Keterbatasan jumlah pin pada sebuah mikrokontroler, membuat kita harus berpikir bagaimana cara agar dapat membaca banyak sensor tetapi dengan jumlah penggunaan pin yang sedikit. Misalnya kita ingin membaca sensor suhu dengan jumlah yang mencapai puluhan sensor. Dan, jika kita mengacu pada datasheet mikrokontroler Atmega 16 jumlah pin ADC (Analog Digital Converter) hanya berjumlah 8 pin. Jumlah pin ADC yang sedikit ini hanya bisa dipakai maksimum 8 sensor suhu LM 35 saja, sedangkan jumlah pin lainnya tidak dapat digunakan, kecuali jika menggunakan sensor suhu digital.

Sekilas Tentang Atmega 16

ATmega16 adalah mikrokontroler CMOS 8-bit mengkonsumsi daya rendah yang menggunakan arsitektur RISC keluarga AVR buatan Atmel. AVR mempunyai 32 register general-purpose, timer/counter dengan metode compare, interrupt eksternal dan internal, serial UART, progammable Watchdog Timer, ADC (Analog Digital Converter atau konversi dari sinyal analog ke digital) dan PWM (Pulse Width Modulation atau Modulasi Lebar Pulsa) internal. Dengan menjalankan instruksi satu siklus clock tunggal, ATmega16 dapat mencapai throughput mendekati 1 MIPS per MHz yang memungkinkan perancang sistem untuk mengoptimalkan konsumsi daya dibandingkan kecepatan pemrosesan. Atmega 16 memiliki batas maksimum throughput yaitu 16 MIPS pada 16 MHz[1][2]. Kecepatan clock tersebut sudah mencukupi untuk menjalankan aplikasi skala kecil yang tidak membutuhkan perhitungan yang cepat.

Ada banyak sekali jenis-jenis mikrokontroler AVR keluaran Atmel, seperti: Atmega 8, Atmega 16, Atmega 32, Atmega 128, dll. Mikrokontroler seri AVR juga dipakai oleh Arduino, misalnya pada Arduino UNO menggunakan Atmega328. Berikut diagram pin Atmega 16 seri DIP (Dual Inline Package) dan TQFP/QFN/MLF,

Gambar 1. Diagram pin mikrokontroler Atmega 16 DIP[1].
Gambar 2. Diagram pin mikrokontroler Atmega 16 TQFP (SMD)[1].
 

Teman-teman bisa men-download datasheet mikrokontroler Atmega 16 disini (klik tulisan biru, disini). Dan, berikut fitur-fitur yang dimiliki oleh Atmega 16,

Gambar 3. Fitur-fitur yang dimiliki oleh Atmega 16[1].

Cukup untuk sekilas tentang Atmega 16, selebuhnya bisa dibaca-baca pada datasheet yang link download-nya sudah saya sediakan.

Sekilas Tentang Sensor Suhu Analog LM 35

Selanjutnya kita akan membahas sekilas tenang sensor suhu analog LM 35. Sensor suhu LM 35 banyak digunakan dalam perancangan instrumentasi pengukur suhu. Penggunaan sensor LM 35 pun tidak begitu sulit dan harganya pun cukup murah, mulai dari Rp 8.000 sampai Rp 26.000 di toko online, dan untuk mendapatkannya pun tidak begitu sulit.

Sensor suhu seri LM35 adalah sebuah sensor suhu dengan sirkuit terpadu yang sangat presisi, tegangan outputnya berbanding lurus dengan suhu Celcius (Celcius). Sensor suhu LM35 tidak memerlukan kalibrasi tambahan untuk mendapatkan akurasi pembacaan suhu khas ±¼° C pada suhu kamar dan ±3⁄4° C lebih pada kisaran −55 hingga +150° C. Dan, teman-teman juga dapat men-download datasheet sensor LM 35 disini.

Berikut adalah fitur lengkap yang dimiliki oleh sensor LM 35;

Gambar 4. Fitur lengkap yang dimiliki oleh sensor analog LM 35

Sekian untuk sekilas tentang sensor Lm35.

Memprogram 24 Sensor Suhu LM 35

Oke, kita langsung saja membahas poin inti dari artikel ini yaitu memprogram 24 sensor suhu menggunakan 3 multiplekser pada Atmega 16. Pembahasan multiplekser dapat dibaca pada artikel saya yang berjudul “Membaca 40 Sensor ADC Menggunakan Arduino Uno dengan IC Multiplekser“. Pada artikel ini saya tidak membahas lagi cara kerja multiplekser, jadi kita bisa langsung membahas pada rangkaian elektronikanya saja. Berikut rangkaian elektronika yang saya buat menggunakan software proteus 8.

Gambar 5. Gambar rangkaian membaca 24 sensor suhu LM 35.

Dan, berikut program yang saya buat menggunakan software CodeVision AVR 3.12, dan saya sertakan juga pengaturan CV AVR nya agar memudahkan dalam memprogram proyek kita ini.

  • Settingan Chip

Atur Chip menjadi ATmega16 dengan clock yang saya gunakan adalah 11,059200 MHz. Untuk memudahkan dapat dilihat pada gambar 6 berikut ini:

Gambar 6. Settingan Chip apda CV AVR
  • Settingan ADC

Atur ADC menjadi enabled dan jangan mencentang Use 8 bits agar kita mendapatkan nilai bacaan dengan tingkat presisi sebesar 10 bit yaitu dari 210 atau 0-1023.

Gambar 7. Pengaturan pada ADC
  • Settingan pin I/O

Atur PORT B pada pin 1-3 atau bit 0-2 menjadi out, karena pin ini akan kita gunakan sebagai pengontrol (selektor) pin input IC multiplekser.

Gambar 8. Pengaturan pada pin I/O
  • Settingan pin LCD

Atur pin LCD menjadi Enabled dan line menjadi 20, karena disini kita akan menggunakan LCD 20×4 dan atur PORT pada PORT C semuanya.

Gambar 9. Pengaturan pada pin untuk LCD.

Terakhir, berikut program lengkapnya, dan saya buat sangat sederhana saja karena disini kita berfokus pada dasar kerja program pada IC multiplekser, kedepannya teman-teman dapat memodifikasinya sesuai dengan kebutuhan masing-masing.

/*****************************************************
This program was produced by the
CodeWizardAVR V2.05.3 Standard
Automatic Program Generator
© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.comProject :
Version :
Date : 08/01/2016
Author : Wayan Dadang
Company : Sains Lab
Comments:
Chip type : ATmega16A
Program type : Application
AVR Core Clock frequency: 11.059200 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/#include <mega16a.h>
#include <stdio.h>
#include <stdlib.h>
#include <delay.h>
unsigned char buff[21],buff1[21],buff2[21],buff3[21],buff4[21],buff5[21],buff6[21],buff7[21];
unsigned char buff8[21],buff9[21],buff10[21],buff11[21],buff12[21],buff13[21],buff14[21],buff15[21];
unsigned char buff16[21],buff17[21],buff18[21],buff19[21],buff20[21],buff21[21],buff22[21],buff23[21];
unsigned char looper;
unsigned char temp;
unsigned int sensor_data[8],sensor_data1[8],sensor_data2[8];
float suhu_celcius[8],suhu_celcius1[8],suhu_celcius2[8];

// Alphanumeric LCD functions
#include <alcd.h>
#define ADC_VREF_TYPE 0x00

// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0x07;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// USART disabled
UCSRB=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 691.200 kHz
// ADC Voltage Reference: AREF pin
// ADC Auto Trigger Source: ADC Stopped
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS – PORTC Bit 0
// RD – PORTC Bit 1
// EN – PORTC Bit 2
// D4 – PORTC Bit 4
// D5 – PORTC Bit 5
// D6 – PORTC Bit 6
// D7 – PORTC Bit 7
// Characters/line: 20
lcd_init(20);

while (1)
{
// Place your code here

for (looper = 0; looper < 8; looper++)
{

temp = PORTB;
temp &= ~0x07;
temp |= looper;
PORTB = temp; // set low 3 bits of PORTB to multiplexor selector

sensor_data[looper] = read_adc(0);
sensor_data1[looper] = read_adc(1);
sensor_data2[looper] = read_adc(2);

suhu_celcius[looper] = (float)sensor_data[looper]*500/1023; //rumus untuk mengubah kedalam derajat celcius
suhu_celcius1[looper] = (float)sensor_data1[looper]*500/1023; //rumus untuk mengubah kedalam derajat celcius
suhu_celcius2[looper] = (float)sensor_data2[looper]*500/1023; //rumus untuk mengubah kedalam derajat celcius

}

ftoa(suhu_celcius[0],0,buff);
ftoa(suhu_celcius[1],0,buff1);
ftoa(suhu_celcius[2],0,buff2);
ftoa(suhu_celcius[3],0,buff3);
ftoa(suhu_celcius[4],0,buff4);
ftoa(suhu_celcius[5],0,buff5);
ftoa(suhu_celcius[6],0,buff6);
ftoa(suhu_celcius[7],0,buff7);

ftoa(suhu_celcius1[0],0,buff8);
ftoa(suhu_celcius1[1],0,buff9);
ftoa(suhu_celcius1[2],0,buff10);
ftoa(suhu_celcius1[3],0,buff11);
ftoa(suhu_celcius1[4],0,buff12);
ftoa(suhu_celcius1[5],0,buff13);
ftoa(suhu_celcius1[6],0,buff14);
ftoa(suhu_celcius1[7],0,buff15);

ftoa(suhu_celcius2[0],0,buff16);
ftoa(suhu_celcius2[1],0,buff17);
ftoa(suhu_celcius2[2],0,buff18);
ftoa(suhu_celcius2[3],0,buff19);
ftoa(suhu_celcius2[4],0,buff20);
ftoa(suhu_celcius2[5],0,buff21);
ftoa(suhu_celcius2[6],0,buff22);
ftoa(suhu_celcius2[7],0,buff23);
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(buff);
lcd_gotoxy(3,0);
lcd_puts(buff1);
lcd_gotoxy(6,0);
lcd_puts(buff2);
lcd_gotoxy(9,0);
lcd_puts(buff3);
lcd_gotoxy(12,0);
lcd_puts(buff4);
lcd_gotoxy(15,0);
lcd_puts(buff5);
lcd_gotoxy(18,0);
lcd_puts(buff6);
lcd_gotoxy(0,1);
lcd_puts(buff7);

lcd_gotoxy(3,1);
lcd_puts(buff8);
lcd_gotoxy(6,1);
lcd_puts(buff9);
lcd_gotoxy(9,1);
lcd_puts(buff10);
lcd_gotoxy(12,1);
lcd_puts(buff11);
lcd_gotoxy(15,1);
lcd_puts(buff12);
lcd_gotoxy(18,1);
lcd_puts(buff13);
lcd_gotoxy(0,2);
lcd_puts(buff14);
lcd_gotoxy(3,2);
lcd_puts(buff15);

lcd_gotoxy(6,2);
lcd_puts(buff16);
lcd_gotoxy(9,2);
lcd_puts(buff17);
lcd_gotoxy(12,2);
lcd_puts(buff18);
lcd_gotoxy(15,2);
lcd_puts(buff19);
lcd_gotoxy(18,2);
lcd_puts(buff20);
lcd_gotoxy(0,3);
lcd_puts(buff21);
lcd_gotoxy(3,3);
lcd_puts(buff22);
lcd_gotoxy(6,3);
lcd_puts(buff23);

lcd_gotoxy(11,3);
lcd_puts(“Wayan phD”);
delay_ms(100);

}
}

Nah selesai sudah artikel ini, jika ada pertanyaan dapat disampaikan pada kolom koemntar dan semoga bermanfaat.

Dan berikut video demonya;

Tulisan ini di modifikasi dari blog lama saya yaitu https://wayandadangunsri.wordpress.com/2017/03/31/membaca-24-sensor-suhu-lm35-dengan-3-multiplekser-berbasis-atmega-16/

Refrensi:

  1. Atmel, atmega16 datasheet PDF
  2. Wikipedia Indonesia, Atmega 16 (https://id.wikipedia.org/wiki/ATMega16) diakses pada tanggal 31 Oktober 2016
  3. Texas Instruments (National Semiconductor), LM35 Precision Centigrade Temperature Sensors

Membaca 40 Sensor ADC Menggunakan Arduino Uno dengan IC Multiplekser

Membaca 40 Sensor ADC Menggunakan Arduino Uno dengan IC Multiplekser

Kali ini saya akan menulis sebuah tutorial tentang cara membaca banyak sensor menggunakan Arduino. Pada topik ini saya menggunakan Arduino Uno sebagai board mikrokontrolernya. Keterbatasan jumlah pin pada Arduino Uno mengharuskan kita mencari cara agar bisa membaca banyak sensor, tetapi hanya dengan menggunakan sedikit pin.  Berdasarkan dataset Arduino Uno  memiliki jumlah pin Analog (I/O) sebanyak 6 pin yaitu A0 – A5 dengan tingkat resolusi 10 bit. Sedangkan pin input Analog yang paling banyak tersedia pada Arduino Mega sebanyak 15 pin yaitu A0-A14 dengan tingkat resolusi sama.

Baca juga: Membaca 24 Sensor Suhu LM35 dengan 3 Multiplekser Berbasis Atmega 16

Pembacaan sensor dalam jumlah banyak seperti ini sangat mendukung dalam bidang aplikasi IoT (Internet of Things) yang sedang trend saat ini. Dimana dengan menggunakan Arduino sebagai aplikasi dari pembacaan sensor akan jauh lebih murah dan ekonomis serta memiliki standard perusahaan.

Gambar 1. Jumlah pin I/O masing-masing jenis Arduino

Arduino

Secara definisi Arduino adalah pengendali mikro single-board yang bersifat sumber terbuka (open source), diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Perangkat kerasnya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa pemrograman sendiri[2]. Berikut adalah gambar dari board arduino Uno yang menjadi bahasan dalam tulisan ini.

Gambar 2. Papan Arduino Uno R3

Di pasaran ada banyak jenis Arduino yang dapat kita pilih untuk proyek yang akan kita kerjakan baik untuk tujuan hobi ataupun mengerjakan tugas kuliah bahkan untuk tugas akhir. Kelebihan Arduino dibandingkan dengan mikrokontroller lainnya misalnya jenis AVR ATMega 8/16/32/128 adalah sudah siap pakai dan memiliki standar perusahaan. Sedangkan pada AVR ATMega 8/16/32/128 kita harus membuat board dan menambahkan komponen-komponen lainnya agar dapat diprogram sesuai kebutuhan. Pemakaian Arduino pun lebih mudah dibandingkan dengan jenis AVR lainnya. Kemudian software (perangkat lunak) Arduino IDE yang digunakan untuk memprogramnya pun tersedia gratis. Hingga sejauh ini Arduino IDE yang siap di download sudah mencapai versi 1.8.10[3] dan gratis.

Multiplexer

Multiplexer adalah rangkaian logika kombinasional yang dirancang untuk mengalihkan salah satu dari beberapa jalur input ke satu jalur keluaran output[3]. Secara mudahnya adalah dengan input yang banyak kemudian dapat keluar dari satu output keluaran, yang mana jalur input dipilih satu persatu untuk bisa melalui jalur keluaran tanpa mengalami percampuran informasi atau data yang dibawa. Analoginya kira-kira seperti ini agar dapat memahami kinerja dari multiplekser secara mudahnya kita ambil kasus keran air, yang mana pada sebuah keran air ada 10 pipa berbeda yang menjadi input dan pada pipa keluaran hanya ada satu pipa. Lalu secara teknis pipa keluaran tadi akan diinput dari 10 pipa input secara bergantian tanpa bercampur satu sama lain. Jadi, jika pipa input 1 open, maka 9 pipa lainnya akan dimatikan, jika pipa 2 open, maka semua pipa selain pipa 2 akan ditutup, begitu seterusnya secara bergantian.

Biasanya, multiplexer atau disebut juga dengan data selector memiliki jumlah 2n input data dan sejumlah input “kontrol” yang sesuai dengan jumlah input data. Misalnya ada 2n dengan n=3, dan dinotasikan menjadi 23 yaitu 8. Jumlah n adalah sebagai input kontrol dan 8 sebagai input data. Secara lebih jelasnya dapat dilihat pada gamabr 3 dibawah ini:

Gambar 3. Rangkaian Multiplekser 4-to-1 (4 input) mengguanakan gerbang NAND beserta dengan tabel kebenarannya[3].

Jenis IC (Intergrated Circuits, sirkuit terpadu) yang tersedia dipasaran ada banyak untuk multiplekser misalnya IC CD4051 dengan 23 atau 8-to-1, dan IC CD74HC4067 dengan 24 atau 16-to-1. Dan, ada banyak jenis IC lain yang dapat digunakan sebagai IC multiplekser. Kita pun dapat dengan mudah menemukannya dipasar toko elektronika.

Penerapan pada Arduino dengan Menggunakan Simulasi Proteus

Oke, langsung saja kita menuju aplikasi pemrogramannya. Pembuatan skema rangkaian menggunakan software Proteus dan pemrograman menggunakan software Arduino IDE. Berikut skema rangkaian yang saya buat:

Gambar 4. Skema rangkaian MUX 40 input sensor menggunakan Arduino UNO.

Dan, berikut ada sourcode program yang saya buat, programnya sangat sederhana karena memang untuk menjelaskan kinerja dari MUX jadi tidak menggunakan program yang lebih rumit.

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);

//Mux control pins
int s0 = 2;
int s1 = 3;
int s2 = 4;

int sensor[40];
int data[40];

void setup(){
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);

lcd.begin(20,4);

//Serial.begin(9600);
}
void loop(){

data_adc();

}

void data_adc()
{

lcd.clear();
lcd.setCursor(3,0);lcd.print(“40 ADC use MUX”);
digitalWrite(s0, LOW);digitalWrite(s1, LOW);digitalWrite(s2, LOW);sensor[0] = analogRead(A0);if(sensor[0]>512){ data[0]=1; }else{ data[0]=0; }lcd.setCursor(0,1);lcd.print(data[0]);
digitalWrite(s0, HIGH);digitalWrite(s1, LOW);digitalWrite(s2, LOW);sensor[1] = analogRead(A0);if(sensor[1]>512){ data[1]=1; }else{ data[1]=0; }lcd.setCursor(1,1);lcd.print(data[1]);
digitalWrite(s0, LOW);digitalWrite(s1, HIGH);digitalWrite(s2, LOW);sensor[2] = analogRead(A0);if(sensor[2]>512){ data[2]=1; }else{ data[2]=0; }lcd.setCursor(2,1);lcd.print(data[2]);
digitalWrite(s0, HIGH);digitalWrite(s1, HIGH);digitalWrite(s2, LOW);sensor[3] = analogRead(A0);if(sensor[3]>512){ data[3]=1; }else{ data[3]=0; }lcd.setCursor(3,1);lcd.print(data[3]);
digitalWrite(s0, LOW);digitalWrite(s1, LOW);digitalWrite(s2, HIGH);sensor[4] = analogRead(A0);if(sensor[4]>512){ data[4]=1; }else{ data[4]=0; }lcd.setCursor(4,1);lcd.print(data[4]);
digitalWrite(s0, HIGH);digitalWrite(s1, LOW);digitalWrite(s2, HIGH);sensor[5] = analogRead(A0);if(sensor[5]>512){ data[5]=1; }else{ data[5]=0; }lcd.setCursor(5,1);lcd.print(data[5]);
digitalWrite(s0, LOW);digitalWrite(s1, HIGH);digitalWrite(s2, HIGH);sensor[6] = analogRead(A0);if(sensor[6]>512){ data[6]=1; }else{ data[6]=0; }lcd.setCursor(6,1);lcd.print(data[6]);
digitalWrite(s0, HIGH);digitalWrite(s1, HIGH);digitalWrite(s2, HIGH);sensor[7] = analogRead(A0);if(sensor[7]>512){ data[7]=1; }else{ data[7]=0; }lcd.setCursor(7,1);lcd.print(data[7]);

digitalWrite(s0, LOW);digitalWrite(s1, LOW);digitalWrite(s2, LOW);sensor[8] = analogRead(A1);if(sensor[8]>512){ data[8]=1; }else{ data[8]=0; }lcd.setCursor(8,1);lcd.print(data[8]);
digitalWrite(s0, HIGH);digitalWrite(s1, LOW);digitalWrite(s2, LOW);sensor[9] = analogRead(A1);if(sensor[9]>512){ data[9]=1; }else{ data[9]=0; }lcd.setCursor(9,1);lcd.print(data[9]);
digitalWrite(s0, LOW);digitalWrite(s1, HIGH);digitalWrite(s2, LOW);sensor[10] = analogRead(A1);if(sensor[10]>512){ data[10]=1; }else{ data[10]=0; }lcd.setCursor(10,1);lcd.print(data[10]);
digitalWrite(s0, HIGH);digitalWrite(s1, HIGH);digitalWrite(s2, LOW);sensor[11] = analogRead(A1);if(sensor[11]>512){ data[11]=1; }else{ data[11]=0; }lcd.setCursor(11,1);lcd.print(data[11]);
digitalWrite(s0, LOW);digitalWrite(s1, LOW);digitalWrite(s2, HIGH);sensor[12] = analogRead(A1);if(sensor[12]>512){ data[12]=1; }else{ data[12]=0; }lcd.setCursor(12,1);lcd.print(data[12]);
digitalWrite(s0, HIGH);digitalWrite(s1, LOW);digitalWrite(s2, HIGH);sensor[13] = analogRead(A1);if(sensor[13]>512){ data[13]=1; }else{ data[13]=0; }lcd.setCursor(13,1);lcd.print(data[13]);
digitalWrite(s0, LOW);digitalWrite(s1, HIGH);digitalWrite(s2, HIGH);sensor[14] = analogRead(A1);if(sensor[14]>512){ data[14]=1; }else{ data[14]=0; }lcd.setCursor(14,1);lcd.print(data[14]);
digitalWrite(s0, HIGH);digitalWrite(s1, HIGH);digitalWrite(s2, HIGH);sensor[15] = analogRead(A1);if(sensor[15]>512){ data[15]=1; }else{ data[15]=0; }lcd.setCursor(15,1);lcd.print(data[15]);

digitalWrite(s0, LOW);digitalWrite(s1, LOW);digitalWrite(s2, LOW);sensor[16] = analogRead(A2);if(sensor[16]>512){ data[16]=1; }else{ data[16]=0; }lcd.setCursor(16,1);lcd.print(data[16]);
digitalWrite(s0, HIGH);digitalWrite(s1, LOW);digitalWrite(s2, LOW);sensor[17] = analogRead(A2);if(sensor[17]>512){ data[17]=1; }else{ data[17]=0; }lcd.setCursor(17,1);lcd.print(data[17]);
digitalWrite(s0, LOW);digitalWrite(s1, HIGH);digitalWrite(s2, LOW);sensor[18] = analogRead(A2);if(sensor[18]>512){ data[18]=1; }else{ data[18]=0; }lcd.setCursor(18,1);lcd.print(data[18]);
digitalWrite(s0, HIGH);digitalWrite(s1, HIGH);digitalWrite(s2, LOW);sensor[19] = analogRead(A2);if(sensor[19]>512){ data[19]=1; }else{ data[19]=0; }lcd.setCursor(19,1);lcd.print(data[19]);
digitalWrite(s0, LOW);digitalWrite(s1, LOW);digitalWrite(s2, HIGH);sensor[20] = analogRead(A2);if(sensor[20]>512){ data[20]=1; }else{ data[20]=0; }lcd.setCursor(0,2);lcd.print(data[20]);
digitalWrite(s0, HIGH);digitalWrite(s1, LOW);digitalWrite(s2, HIGH);sensor[21] = analogRead(A2);if(sensor[21]>512){ data[21]=1; }else{ data[21]=0; }lcd.setCursor(1,2);lcd.print(data[21]);
digitalWrite(s0, LOW);digitalWrite(s1, HIGH);digitalWrite(s2, HIGH);sensor[22] = analogRead(A2);if(sensor[22]>512){ data[22]=1; }else{ data[22]=0; }lcd.setCursor(2,2);lcd.print(data[22]);
digitalWrite(s0, HIGH);digitalWrite(s1, HIGH);digitalWrite(s2, HIGH);sensor[23] = analogRead(A2);if(sensor[23]>512){ data[23]=1; }else{ data[23]=0; }lcd.setCursor(3,2);lcd.print(data[23]);

digitalWrite(s0, LOW);digitalWrite(s1, LOW);digitalWrite(s2, LOW);sensor[24] = analogRead(A3);if(sensor[24]>512){ data[24]=1; }else{ data[24]=0; }lcd.setCursor(4,2);lcd.print(data[24]);
digitalWrite(s0, HIGH);digitalWrite(s1, LOW);digitalWrite(s2, LOW);sensor[25] = analogRead(A3);if(sensor[25]>512){ data[25]=1; }else{ data[25]=0; }lcd.setCursor(5,2);lcd.print(data[25]);
digitalWrite(s0, LOW);digitalWrite(s1, HIGH);digitalWrite(s2, LOW);sensor[26] = analogRead(A3);if(sensor[26]>512){ data[26]=1; }else{ data[26]=0; }lcd.setCursor(6,2);lcd.print(data[26]);
digitalWrite(s0, HIGH);digitalWrite(s1, HIGH);digitalWrite(s2, LOW);sensor[27] = analogRead(A3);if(sensor[27]>512){ data[27]=1; }else{ data[27]=0; }lcd.setCursor(7,2);lcd.print(data[27]);
digitalWrite(s0, LOW);digitalWrite(s1, LOW);digitalWrite(s2, HIGH);sensor[28] = analogRead(A3);if(sensor[28]>512){ data[28]=1; }else{ data[28]=0; }lcd.setCursor(8,2);lcd.print(data[28]);
digitalWrite(s0, HIGH);digitalWrite(s1, LOW);digitalWrite(s2, HIGH);sensor[29] = analogRead(A3);if(sensor[29]>512){ data[29]=1; }else{ data[29]=0; }lcd.setCursor(9,2);lcd.print(data[29]);
digitalWrite(s0, LOW);digitalWrite(s1, HIGH);digitalWrite(s2, HIGH);sensor[30] = analogRead(A3);if(sensor[30]>512){ data[30]=1; }else{ data[30]=0; }lcd.setCursor(10,2);lcd.print(data[30]);
digitalWrite(s0, HIGH);digitalWrite(s1, HIGH);digitalWrite(s2, HIGH);sensor[31] = analogRead(A3);if(sensor[31]>512){ data[31]=1; }else{ data[31]=0; }lcd.setCursor(11,2);lcd.print(data[31]);

digitalWrite(s0, LOW);digitalWrite(s1, LOW);digitalWrite(s2, LOW);sensor[32] = analogRead(A4);if(sensor[32]>512){ data[32]=1; }else{ data[32]=0; }lcd.setCursor(12,2);lcd.print(data[32]);
digitalWrite(s0, HIGH);digitalWrite(s1, LOW);digitalWrite(s2, LOW);sensor[33] = analogRead(A4);if(sensor[33]>512){ data[33]=1; }else{ data[33]=0; }lcd.setCursor(13,2);lcd.print(data[33]);
digitalWrite(s0, LOW);digitalWrite(s1, HIGH);digitalWrite(s2, LOW);sensor[34] = analogRead(A4);if(sensor[34]>512){ data[34]=1; }else{ data[34]=0; }lcd.setCursor(14,2);lcd.print(data[34]);
digitalWrite(s0, HIGH);digitalWrite(s1, HIGH);digitalWrite(s2, LOW);sensor[35] = analogRead(A4);if(sensor[35]>512){ data[35]=1; }else{ data[35]=0; }lcd.setCursor(15,2);lcd.print(data[35]);
digitalWrite(s0, LOW);digitalWrite(s1, LOW);digitalWrite(s2, HIGH);sensor[36] = analogRead(A4);if(sensor[36]>512){ data[36]=1; }else{ data[36]=0; }lcd.setCursor(16,2);lcd.print(data[36]);
digitalWrite(s0, HIGH);digitalWrite(s1, LOW);digitalWrite(s2, HIGH);sensor[37] = analogRead(A4);if(sensor[37]>512){ data[37]=1; }else{ data[37]=0; }lcd.setCursor(17,2);lcd.print(data[37]);
digitalWrite(s0, LOW);digitalWrite(s1, HIGH);digitalWrite(s2, HIGH);sensor[38] = analogRead(A4);if(sensor[38]>512){ data[38]=1; }else{ data[38]=0; }lcd.setCursor(18,2);lcd.print(data[38]);
digitalWrite(s0, HIGH);digitalWrite(s1, HIGH);digitalWrite(s2, HIGH);sensor[39] = analogRead(A4);if(sensor[39]>512){ data[39]=1; }else{ data[39]=0; }lcd.setCursor(19,2);lcd.print(data[39]);
lcd.setCursor(0,3);lcd.print(“By: Wayan Dadang”);
delay(200);

}

Selesai program, lalu compile untuk melihat apakah ada error atau tidaknya dan kemudian jika tidak ada tinggal upload ke Arduino teman-teman dan jika menggunakan software simulasi proteus tinggal upload ke proteus. Dan, berikut video demonya.

Selesai, dan semoga bermanfaat, jika ada pertanyaan silakan sampaikan di kolom komentar.

Refrensi:

  1. Arduino, analogRead (https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/) diakses pada 16 September 2019
  2. Wikipedia, Arduino (https://id.wikipedia.org/wiki/Arduino) diakses pada 16 September 2019
  3. Electonics Tutorials, The Multiplexer (https://www.electronics-tutorials.ws/combination/comb_2.html) diakses pada 26 Oktober 2019

Tutorial Pengaturan untuk Grup Live Streaming Youtube dengan Banyak Peserta (Kamera/Laptop) dari Google Hangouts Menggunakan Encoder OBS Studio

Tutorial Pengaturan untuk Grup Live Streaming Youtube dengan Banyak Peserta (Kamera/Laptop) dari Google Hangouts Menggunakan Encoder OBS Studio

Pada Agustus 2019 kami dari tim IT I-4 (Ikatan Ilmuwan Indonesia Internasional) kesulitan untuk melakukan live streaming  “Diaspora Talk” menggunakan aplikasi Hangouts Air ke Youtube. Dikarenakan fasilitas Hangouts On Air telah dimatikan selamanya pada 1 Agustus 2019 oleh pihak Google[1]. Kebetulan pada waktu itu I-4 dan Dikti sedang mengadakan acara besar tahunan yaitu SCKD (Simposium Cendekia Kelas Dunia) yang diadakan di Jakarta.

Baca juga: Tutorial Mem-Plot Grafik dari Arduino ke Visual Mikro pada  Visual Studio 2015 dan 2017

Fasilitas ini sangat penting pada kegiatan obrolan grup secara live streaming ke youtube, misalnya kami sering menggunakannya untuk kegiatan I-4 Talk dan I-4 Lecture dan menyiarkannya ke channel Youtube Media I-4 agar bisa di tonton oleh banyak orang secara daring (online). Kemudian penggunaannya pun cukup mudah dan tidak memerlukan encoder sebagai media pihak ketiga  untuk melakukan streaming online ke Youtube.

Gambar 1. Hangouts On Streaming sudah tidak ada lagi dan dignatikan dengan Youtube.com/Webcam.

Pada saat ini fasilitas yang tersedia hanya untuk streaming pribadi melalui Youtube Wabcam dan tidak bisa digunakan untuk streaming grup. Penggunaannya pun sangat mudah tinggal klik saja link http://youtube.com/webcam dan kita pun akan diarahkan ke Youtube Studio untuk membuat sebuah event streaming online. Sedangkan untuk melakukan streaming grup harus menggunakan software pihak ketiga sebagai alat bantu.

Berdasarkan dari hal tersebut pada tulisan kali ini dibuat lebih ke sebuah tutorial menggunakan software (perangkat lunak) OBS (Open Broadcaster Software) Studio. OBS Studio merupakan sebuah software open source dan gratis yang banyak digunakan untuk kegiatan live streaming dan video recording[2]. Selain gratis software ini juga dapat diinstall pada Windows, Linux, dan MacOS. Oleh karena itu OBS Studio sangat membantu dalam kegiatan yang berkaitan dengan live streaming grup melalui Youtube melalui Hangouts. Artikel panduan inipun tidak difokuskan pada sebuah grup diskusi tapi bisa digunakan untuk kegiatan grup streaming lainnya seperti game grup, diskusi grup, forum ilmiah, dll.

Gambar 1. Laman website OBS Studio[1]
Gambar 2. Laman website OBS Studio[1]

Oke, langsung saja kita menuju bagaimana cara untuk dapat melakukan Grup Streaming Youtube melalui Google Hangouts menggunakan OBS Studio tanpa Hangouts on Air.

Step 1 Install OBS:

  1. Unduh terlebih dahulu master software OBS dari link berikut: https://obsproject.com/
  2. Pilih bit sesuai dengan spesifikasi OS windows yang terinstall 32/64 bit
  3. Install OBS seperti pada software pada umumnya
  4. Tunggu hingga proses instalasi selesai

Step 2 Menampilkan Windows Capture pada OBS Video:

            Step 2 adalah cara untuk bagaimana kita bisa menampikan laman Google Hangouts ke software OBS Studio dan dari laman inilah kita bisa mengirim rekaman ke channel youtube. Selain bisa menampilkan sebuah laman dari tab google, kita juga bisa menampikan laman lainnya seperti software yang sedang kita gunakan (misalnya word, excel, winamp, folder, game, bahkan kita bisa men-streaming-kan film yang sedang kita tonton di laptop/pc ke youtube) dan banyak lagi, tetapi untuk bahasan selain menampilkan Google Hangouts, tidak dibahas pada artikel panduan ini. Adapun cara untuk menampilkan laman google hangouts ke OBS Studio adalah sebagai berikut ini:

  1. Buka software OBS
  2. Lalu kita setting dari sources dan klik tanda plus (+), seperti pada gambar dilingkari merah dibawah ini,

    Gambar 3. Menambahkan Windows Capture ke Sources pada OBS Studio
  3. Lalu pilih Window Capture seperti pada gambar dibawah ini (yang dilingkari merah),

    Gambar 3. Memilih Windows Capture ke Sources pada OBS Studio
  4. Lalu klik OK
  5. Setelah klik OK, kita dibawa ke Properties for ‘Window Capture’ disini kita akan men-setting agar laman tab Google Hangouts yang sedang kita buka pada Google dapat ditampikan ke OBS Studio.
  6. Buka Google Chrome dan arahkan tab ke Google Hangouts yang sedang video call, seperti pada gambar dibawah ini (yang dilingkari warna merah):Note: OBS akan menampilkan tab yang sedang kita buka, jadi jika bukan Google Hangouts maka akan menampilkan yang lainnya.

    Gambar 4. Mengarahkan ke tab Hangouts pada Google Chrome
  7. Lalu pada , Properties for ‘Window Capture’ klik Window dan pilih [chrome.exe]: Google Hangouts – Google Chrome (Seperti pada gambar yang dilingkari merah dibawah ini) dan jangan lupa centang Capture Cursor.
    Gambar 5. Memilih [chrome.exe]: Google Hangouts – Google Chrome pada Window OBS
  8. Dan, jika tidak ada masalah akan muncul seperti pada gambar dibawah ini:

    Gambar 6. Tampilan ketika Capture Google Hangouts berhasil dilakukan oleh software OBS Studio
  9. Klik OK, dan akan tampil seperti berikut ini pada OBS:

    Gambar 7. Tampilan Capture Google Hangouts yang siap streaming

Jika tampilannya tetap Blank Hitam maka kita harus Disable Hardware Acceleration di Chrome dengan langkah-langkah berikut ini:

  1. Buka Google Chrome
  2. Klik Customize and Control Google Chrome > Settings.
  3. Klik pada Show advanced settings and scroll to the System section.
  4. Geser menjadi warna abu-abu pada Use hardware acceleration when available, seperti pada gambar dibawah ini:

    Gambar 8. Men-disable hardware acceleration
  5. Lalu restart Google Chrome.
  6. Lakukan kembali langkah-langkah pada Step 2 hingga selesai.
  7. Jika berhasil akan tampil seperti pada gambar dibawah ini:

    Gambar 8. Campture Hangouts muncul setelah men-disable hardware acceleration
  8. Klik Ok, dan akan tampil seperti pada gambar dibawah ini:

    Gambar 9. Tampilan Capture Google Hangouts yang siap streaming

Step 3 Menyiapkan Setting untuk Streaming via Youtube:

  1. Pada menu Controls klik Settings, Seperti yang dilingkari merah pada gambar dibawah ini,

    Gambar 10. Masuk ke menu Settings pada papan Controls OBS Studio
  2. Dari menu settings klik Stream seperti pada gambar yang dilingkari merah,

    Gambar 11. Memasukkan Stream Key dari Channel Event Youtube Studio
  3. Ubah service menjadi YouTube/Youtube Gaming
  4. Ubah Server menjadi Primary Youtube Ingest Server
  5. Buat event baru di Youtube untuk mendapatkan Stream Key.
  6. Buka Channel Youtube yang akan digunakan untuk streaming.
  7. Klik ikon video plus pada pojok atas channel youtube seperti pada gambar yang dilingkari merah dibawah ini:

    Gambar 12. Memulai pembuatan event streaming youtube
  8. Pilih dan klik Go Live
  9. Pilih Stream BETA dan New Stream, seperti pada gambar dibawah ini:

    Gambar 13. Membuat New Streaming pada Youtube Studio
  10. Atur nama judul acara sesuai keinginan dan yang lainnya seperti pada gambar dibawah ini:

    Gambar 14. Pengaturan nama event dan kebutuhan lainnya sesuai dengan tema acara.
  11. Thumbnail bisa pilih dari poster yang telah kita desain
  12. Lalu klik Create Stream
  13. Copy stream name/key ke encoder OBS Studio seperti pada gambar dibawah ini:

    Gambar 15. Copy Stream Key lalu klik Apply dan OK
  14. Lalu klik Apply dan OK

Step 4 (Trakhir) Menyiapkan untuk Streaming secara Daring (Online) ke Channel Youtube kita:

  1. Sediakan jaringan yang cepat (missal Wifi atau jaringan 4G)
  2. Pada software OBS Studio klik Start Streaming pada menu Controls, seperti pada gambar dibawah ini,

    Gambar 16. Memulai Streaming dengan meng-klik tombol start streaming pada papan control.
  3. Kita dapat merekam Video Call pada Google Hangouts dengan klik Start Recording pada Control dibawah Start Streaming.
  4. Bukti bahwa kita telah streaming dari OBS dapat dilihat pada gambar dibawah ini yang dilingkari merah, dan kita dapat mengetahui kualitas streaming kita dengan melihat warna hijau (good), kuning (warning), dan merah (jelek).

    Gambar 17. Pengecekan kualitas streaming.
  5. Sekarang menuju Studio Youtube event yang kita buat tadi jika jaringan bagus maka akan muncul video hangouts di tab video seperti pada gambar dibawah ini:
    Gambar 18. Memulai GO LIVE

    Note: Pada saya tidak muncul karena saya pakai kuota internet jadi jaringan lelet.

  6. Klik GO LIVE
  7. Jika kita sudah Live maka akan muncul seperti pada gambar dibawah ini yang dilingkari merah:

    Gambar 19. Tampilan bahwa kita sudah mulai LIVE
  8. Untuk men-share link Live kita dapat dilakukan dengan klik Share pada anah panah melengkung pada Studio Yotube kita seperti pada gambar dibawah ini (yang dilingkari):

    Gambar 20. Cara share link streaming.
  9. Copy link yang disedakan seperti pada gambar dibawah ini yang dilingkari merah dibawah ini:

    Gambar 21. Men-copy share link streaming
  10. Orang dapat menonton channel kita yang sedang live streaming.
  11. Note: Jangan membuka channel youtube tersebut pada laptop yang sedang kita gunakan sebagai operator, karena dapat mengubah laman pada OBS seperti penjelasan STEP 2
  12. Orang-orang dapat menonton streaming kita seperti pada gambar dibawah ini:

    Gambar 22. Sekarang kita sudah live di channel youtube kita.
  13. Tanda yang dilingkari merah berarti kita sudah Live di Youtube
  14. Jika ingin memberhentikan streaming tinggal klik END STREAM, seperti pada gambar dibawah ini:

    Gambar 23. Klik tombol END STREAM buat stop streaming.
  15. SELESAI
  16. SEMOGA BERMANFAAT

Refrensi:

  1. StreamYard, “Hangouts on Air going away August 1, 2019”, (https://streamyard.com/resources/hangouts-on-air-going-away/) diakses pada 15 September 2019
  2. OBS (Open Broadcaster Software), (https://obsproject.com/) diakses pada 15 September 2019

Bagaimana Cara Menulis Makalah Penelitian?

Bagaimana Cara Menulis Makalah Penelitian?

Ditulis oleh Septian Ulan Dini

“Bagaimana cara menulis makalah penelitian?” Pertanyaan ini mulai saya pikirkan secara luas dan mendalam ketika sudah mengenal dunia kampus. Walaupun sejak SMA sudah pernah mengenal nya dalam bentuk Karya Tulis Ilmiah. Ketika di kampus, tentu kita sering berhadapan dengan tugas yang satu ini. Tugas menulis yang pada akhirnya menjadi bekal awal kita dalam menyelesaikan tugas akhir untuk sumbangsih kepada perkembangan ilmu pengetahuan. Namun, pada akhirnya makalah penelitian tidak akan berarti apa-apa jika tidak dipublikasikan atau disebarluaskan. Salah satu wadah untuk mempublikasikan makalah penelitian adalah jurnal.

Selasa, 10 September 2019,  saya menghadiri kegiatan workshop yang dilaksanakan oleh Dr. Yogi Wibisono Budhi dalam program “World Class Professor” di Institut Teknologi Bandung. Pembicara yang dihadirkan dalam program ini adalah Dr. Manabu Miyamoto, beliau merupakan Associate Professor di Departemen Ilmu Kimia dan Biomolekuler, Gifu University. Salah satu topik yang dibawakan adalah tata cara menulis makalah penelitian untuk dapat dipublikasikan. Dr. Manabu Miyamoto, yang namanya memiliki arti sesuai dengan profesinya sebagai profesor ini merupakan reviewer untuk >20 jurnal international bereputasi.

Beliau membuka sesi dengan memperkenalkan diri dan rekam jejaknya dalam dunia pendidikan tinggi, lalu dilanjutkan dengan membahas garis besar prosedur untuk mempublikasikan makalah penelitian yang dapat dilihat pada gambar 1.

Gambar 1. Prosedur untuk mempublikasikan artikel ilmiah

Tampaknya mudah dan singkat ya. Tapi faktanya tidak sesederhana itu. Berdasarkan cerita pengalaman Dr. Manabu Miyamoto sebagai reviewer yang telah memiliki banyak pengalaman untuk mengoreksi menolak makalah penelitian, ada beberapa hal yang harus diperhatikan supaya naskah diterima oleh reviewer.

Makalah untuk Tujuan Publikasi sebagai Hasil Penelitian dan Paten

Hasil penelitian dan paten merupakan dua hal yang berbeda, walaupun luaran keduanya adalah publikasi. Perbedaan keduanya dapat dilihat pada Tabel 1 berikut.

Tabel.1 Perbedaan Hasil Penelitian dan Paten
Tabel 1. Perbedaan Artikel ilmiah untuk publikasi Hasil Penelitian dan Paten

Strategi Awal untuk Mempublikasikan Makalah Penelitian

Dr. Manabu Miyamoto mengajukan pertanyaan sebelum menyampaikan lebih jauh tentang strategi untuk mempublikasikan makalah penelitian. Pertanyaannya adalah “What is the most important thing for publishing your research work in scientifics journal?” /“Hal apa yang paling penting untuk mempublikasikan hasil penelitian Anda di jurnal ilmiah?”

Seketika yang saya pikirkan adalah “Manuscript/ naskah”, karena menurut saya kita tidak bisa mengirim makalah penelitian kalau tidak punya naskahnya :D. Ternyata, bukan itu jawabannya. Hal yang paling penting adalah novelty/kebaruan.

“The most important thing for publishing your research work in a scientific journal;

 1st is Novelty

2nd is Novelty

3rd is Novelty”

Setelah mendapatkan ide dengan unsur kebaruan, yang dilakukan adalah mencari makalah penelitian (dan paten) di bidang terkait. Cara ini dilakukan untuk memastikan bahwa ide Anda benar-benar baru. Memastikan tidak ada laporan ilmiah dengan ide serupa dan juga melihat isu yang saat ini sedang berkembang terkait bidang Anda.

Kedua, Menentukan langkah awal dan tujuan akhir dari penelitian yang akan Anda lakukan. Caranya dengan membuat kerangka kerja penelitian. Pada tahap ini yang harus dipahami adalah dimana posisi Anda saat ini, masalah yang dialami subjek penelitian Anda dan solusi terbaru terhadap masalah tersebut.

Ketiga, selesaikan eksperimen yang akan Anda lakukan untuk mencapai tujuan akhir penelitian.

Struktur Makalah Penelitian

Setelah menyelesaikan eksperimen dan pengolahan data sampai penarikan kesimpulan, maka menulis makalah ilmiah sudah dapat dimulai untuk diselesaikan.

Gambar 2. Struktur Penulisan Makalah Penelitian

Introduction/ pendahuluan. Bagian ini harus jelas, sederhana namun mencakup berbagai aspek terkait penelitian. Isi dari bagian ini meliputi latar belakang penelitian secara umum, latar belakang penelitian secara ilmiah, isu/ permasalahan yang sedang diselesaikan serta tujuan penelitian yang akan dilakukan.

Experiment Section/ Eksperimen. Bagian ini harus jelas, sederhana namun mudah untuk dapat diulangi oleh orang lain. Isi dari bagian ini meliputi hal-hal mendetail terkait alat dan bahan, syarat-sayarat dalam eksperimen, dasar teori dan persamaan matematis. Hal yang tidak kalah penting dari bagian ini dalah gambar.

“A picture is worth a thousand words”

Result and Discussion/ Hasil dan Pembahasan. Bagian ini harus masuk akal, konsisten dan mudah dipahami. Isi dari bagian ini harus mengklarifikasi temuan apa yang akan diklaim dengan menampilkan bukti hasil penelitian. Hal yang tidak kalah penting dari bagian ini adalah harus dapat membangun logika untuk mengarahkan pembaca pada suatu kesimpulan.

Your logic may be like a leaky bucket! once plug a leak, another leak may happent”

Hal penting yang harus diperhatikan dalam membangun logika pada bagian ini adalah:

a. Menyediakan data secara jelas.

b. Menyajikan argumen yang benar, karena jika argumen dalam logika Anda salah, argumen tersebut dapat menyebabkan asumsi yang salah.

c. Menghindari ambiguitas, karena ambiguitas dapat menyebabkan argumen yang salah.

d. Lakukan upaya untuk menghindari ambiguitas, dengan cara menggabungkan beberapa hasil dari berbagai sudut pandang dan rujuk hasil penelitian sebelumnya untuk mendukung hasil penelitian Anda.

Conclutions/ kesimpulan. Bagian ini harus jelas, sederhana dan menampilkan temuan Anda.

“Tips: Review your logic objectively, critism against, and be independent”

Berdasarkan penjelasan mengenai struktur makalah ilmiah di atas, maka kesimpulan yang dapat kita ambil diantaranya:

a. Buat semua bagian jelas dan sederhana.

b. Persiapkan gambar sederhana yang menarik dan mudah dipahami.

c. Gunakan pengutipan/ rujukan dalam pembahasan.

d. Hindari pengulangan dalam menyajikan tiap bagian.

e. Baca kembali makalah ilmiah Anda secara seksama sebelum dikirimkan.

Selamat membaca dan mencoba menulis makalah penelitian. Semoga artikel ini bermanfaat.

Referensi:

Semua isi dalam artikel ini merupakan terjemahan bebas penulis dari kuliah umum yang disampaikan oleh Dr. Manabu Miyamoto.

Prinsip Penutupan Kemasan Ikan Kaleng

Prinsip Penutupan Kemasan Ikan Kaleng

Penutupan kaleng atau yang biasa disebut dengan can closing merupakan tahapan proses wajib yang dilakukan pada industri yang menggunakan jenis kemasan kaleng seperti ikan kaleng, minuman ringan, dll. Can closing sendiri dapat diartikan sebagai proses penutupan kaleng agar kedap hermetis sehingga dapat mencegah terjadinya rekontaminasi pada isi kaleng  dan melindungi isi kaleng. Kedap hermetis adalah kondisi dimana produk terisolasi dari lingkungan sehingga tidak memungkinkan terjadinya perpindahan udara dari lingkungan ke dalam kemasan maupun sebaliknya.

Baca juga: Mengapa Produk Ikan Kaleng Memiliki Daya Simpan yang Lama pada Suhu Ruang?

Pada produk ikan kaleng seperti sarden dan tuna kaleng, prinsip penutupan kaleng dikenal dengan istilah double seaming. Double seaming merupakan penutupan kaleng yang dilakukan dengan dua tahap operasi. Tahap pertama menghasilkan lipatan yang bertautan antara flange kaleng (bibir kaleng) dengan tutup kaleng. Tahap kedua memampatkan lipatan tahap pertama hingga membentuk lipatan yang rapat [1].

Potongan melintang double seam

Sumber : http://www.fao.org/docrep/003/T0007E/T0007E03.HTM

Alat untuk menutup kaleng disebut dengan seamer. Seamer dapat dibagi menjadi dua, yaitu seamer vakum dan seamer tanpa vakum. Perbedaan kedua jenis tersebut adalah ada atau tidaknya vacuum chamber pada seamer. Vacuum chamber berfungsi untuk menghasilkan kondisi vakum di dalam kaleng dengan cara menghisap udara dari dalam kaleng dengan tekanan hisap tertentu. Kondisi vakum di dalam kaleng dibutuhkan untuk mencegah pertumbuhan spora bakteri Clostridium botulinum. Jika menggunakan mesin seamer tanpa vacuum chamber, kondisi vakum di dalam kaleng diperoleh dengan cara pengisian panas (hot filled) sehingga ketika kaleng didinginkan, suasana vakum akan otomatis terbentuk.

Double seam merupakan gabungan yang dibentuk antara body dan tutup kaleng secara mekanis yang terbentuk melalui dua tahap operasi yang berbeda.

Cara kerja mesin seamer berbeda-beda tergantung dari jenis dan tipe seamer yang digunakan, namun prinsip kerjanya sama untuk semua jenis mesin seamer. Kaleng yang yang telah berisi produk dan medium dilewatkan melalui conveyor menuju seamer. Kaleng kemudian melewati timing screw yang bertujuan untuk mengatur waktu dan jarak antar kaleng sebelum ditutup. Kaleng kemudian akan menekan sebuah tuas sehingga separator menahan tutup kaleng terbuka dan tutup kaleng jatuh di atas kaleng yang akan ditutup. Tutup kaleng dan kaleng kemudian akan diangkat oleh lifter, dan terjadi operasi penutupan pertama yang akan menautkan bibir kaleng dengan tutup kaleng. Setelah operasi penutupan pertama selesai, kemudian akan langsung terjadi operasi penutupan kedua. Setelah kedua operasi selesai, kaleng akan dilepaskan dari alat pembentuk double seam, dan kaleng akan dibawa keluar dari mesin seamer. 

  Berikut merupakan animasi prinsip kerja mesin seamer secara umum [2].

Prosedur penutupan kaleng operasi pertama dan kedua

Cara kerja mesin seamer secara umum

Komponen sederhana vacuum seamer

Di Indonesia sendiri, mesin seamer dapat dijumpai di semua pabrik yang menggunakan kaleng sebagai bahan pengemas, baik produk pangan maupun non pangan. Perbedaannya hanya pada tipe mesin seamer yang digunakan. Dilansir dari alibaba.com, harga untuk 1 set mesin seamer dengan tipe automatic tin can seamer yang memiliki spesifikasi kecepatan 180-450 kaleng permenit (cans/minute) adalah US$ 50.000-50.500 atau sekitar Rp. 660 juta – 670 juta. Untuk automatic vacuum can seamer dengan kecepatan 42 cans/minute berada kisaran harga US$10.000-12.000 per set atau sekitar Rp. 130 juta – 160 juta [3]. Harga tersebut berbeda-beda tergantung dari merek, tipe, dan spesifikasi mesin seamer. 

Baca juga: Ringkasan Hasil Penelitian Terbaik Pada Bulan Desember 2017 – Januari 2018

 

Referensi

[1] [FAO] Food And Agriculture. Packaging materials for canned fishery products. www.fao.org (Diakses pada 25 Januari 2018).

[2] Shin I Machinery Works. Co. Ltd. www.shinican.com (Diakses pada 25 Januari 2018).

[3] Can Seamer Machine. www.alibaba.com (Diakses pada 26 Januari 2018)