Jumat, 15 Juli 2022

Tugas Algoritma Switch Case

 Switch Case

Kondisi SWITCH CASE yang akan kita pelajari ini bisa dipandang sebagai alternatif penulisan dari kondisi logika IF ELSE IF pada tutorial C++ sebelumnya. Namun tidak semua kondisi IF ELSE IF bisa dikonversi ke dalam bentuk SWITCH CASE yang kita akan bahas dengan lebih detail.

Pengertian Switch case sendiri ialah percabangan kode program dimana kita membandingkan isi sebuah variabel dengan beberapa nilai. Jika proses perbandingan tersebut menghasilkan true, maka block kode program akan di proses.

Kondisi SWITCH CASE terdiri dari 2 bagian, yakni perintah SWITCH dimana terdapat nama variabel yang akan diperiksa, serta 1 atau lebih perintah CASE untuk setiap nilai yang akan diperiksa

Format dasar penulisan switch case :

switch (nama_variabel) {

  case 'nilai_1':

    // Kode program yang dijalankan jika nama_variabel == nilai_1

    break;

  case 'nilai_2':

    // Kode program yang dijalankan jika nama_variabel == nilai_2

    break;

  case 'nilai_3':

    // Kode program yang dijalankan jika nama_variabel == nilai_3

    break;

  ...

  ...

  default:

     // Kode program yang dijalankan jika tidak ada kondisi yang terpenuhi

}

saya akan memberi contoh program yang menggunakan switch case.

saya akan membuat Kalkulator sederhana

komponen yang digunakan :

- keypad 4x4

- Arduino Uno

- I2C modul

- LCD 16x2

Gambar Rangkaian


penjelasan mengenai rangkaian diatas input yang kita gunakan pada pin A4 A5 untuk dihubungkan ke LCD melalui I2C kemudian output yang digunakan ialah keypad 4x4 untuk menampilkan angka dan aritmatika pada layar LCD.

coding Program

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 2);


#include <Keypad.h>

const byte ROWS = 4;

const byte COLS = 4;


char keys [ROWS] [COLS] = {

{'7', '8', '9', '/'},

{'4', '5', '6', '*'},

{'1', '2', '3', '-'},

{'C', '0', '=', '+'}

};

byte rowPins[ROWS] = {2, 3, 4, 5};

byte colPins[COLS] = {6, 7, 8, 9};


Keypad myKeypad = Keypad(

makeKeymap(keys), rowPins, colPins,

ROWS, COLS );

float presentValue = false;

float next = false;float final = false;

String num1, num2; String answer = "0";

char op;


void setup(){

  lcd.init();

  lcd.backlight();

  lcd.setCursor(0,0);

  lcd.print("Kalkulator");

  lcd.setCursor(0,1);

  lcd.print("Sederhana");

  delay(1000);

  lcd.clear();

}

void loop() {

  char key = myKeypad.getKey();

  if (key != NO_KEY && (key == '1' || key =='2' || key == '3' || key == '4' || key == '5'|| key == '6' || key == '7' || key == '8' ||key== '9' || key == '0')){

    if (presentValue != true){

      num1 = num1 + key;

      int numLength = num1.length();

      lcd.setCursor(0, 0);

      lcd.print(num1);

    }

    else{

      num2 = num2 + key;

      int numLength = num2.length();

      int numLength1 = num1.length();

      lcd.setCursor(1 + numLength1, 0);

      lcd.print(num2);

      final = true;

    }

  }

  else if (presentValue == false && key !=

  NO_KEY && (key == '/' || key == '*' || key

  == '-' || key == '+')){

    if (presentValue == false){

      int numLength = num1.length();

      presentValue = true;op = key;

      lcd.setCursor(0 + numLength, 0);

      lcd.print(op);

    }

  }

  else if (final == true && key != NO_KEY && key == '=') {

    switch (op){

      case '+':

        answer = num1.toFloat() + num2.toFloat();

        break;

      case'-' :

        answer = num1.toFloat() - num2.toFloat();

        break;

      case'*' :

      answer = num1.toFloat() * num2.toFloat();

      break;

      case'/':

      answer = num1.toFloat() / num2.toFloat();

      break;

    }

    lcd.clear();

    lcd.setCursor(16, 1);lcd.autoscroll();

    lcd.print(answer); lcd.noAutoscroll();

  }

  else if (key != NO_KEY && key == 'C'){

    lcd.clear();

    presentValue = false;final = false;

    num1 = "";

    num2 = ""; answer = "0";op = ' ';

  }

}

Video Simulasi



Selasa, 12 Juli 2022

Voltmeter 0-50V berbasis Arduino

Apa itu Voltmeter?

Voltmeter adalah alat ukur yang digunakan untuk mengukur beda potensial atau tegangan listrik dari dua titik potensial listrik. Pada peralatan elektronik, voltmeter digunakan sebagai pengawasan nilai tegangan kerja. Voltmeter tersusun atas beberapa bagian yaitu terminal positif dan negatif, batas ukur, setup pengatur fungsi, jarum penunjuk serta skala tinggi dan skala rendah.



Cara kerja Voltmeter

Pada rangkaian listrik, voltmeter merupakan suatu alat untuk mengukur besar tegangan listrik. Pergerakan jarum penunjuk pada voltmeter terjadi karena adanya gaya magnet yang timbul sebagai hasil interaksi antara medan magnet dan kuat arus listrik. Simpangan yang dihasilkan oleh pergerakan jarum sebanding dengan kuat arus listrik yang mengalir. Arus listrik yang terukur merupakan arus listrik yang melalui kumparan yang diletakkan di antara medan magnet. Peningkatan arus berarti peningkatan simpangan pergerakan jarum sehingga akan menunjuk ke nilai pengukuran tegangan yang lebih besar. Voltmeter dipasang secara paralel dengan komponen yang akan diukur dalam rangkaian listrik.

Setelah kita mengenal sedikit mengenai voltmeter, kita akan membuat voltmeter sederhana menggunakan Software Proteus dan Arduino Uno.

voltmeter digunakan untuk mengukur suatu tegangan di sebuah rangkaian. cara mengukur menggunakan voltmeter kita rangkaian membentuk sebuah rangkaian paralel kemudian kita bisa mengukur tegangan dirangkaian tersebut.

kita membuat voltmeter yang berspesifikasi 0-50V maksud dari itu voltmeter tersebut dapat mengukur tegangan diantara 0V hingga 50V.

ada beberapa komponen yang diperlukan untuk membuat voltmeter sederhana ini yaitu :

- Arduino Uno

- Resistor

- Potensiometer

- LCD 16x2

Skematik rangkaian


Penjelasan Rangkaian
Pada rangkaian tersebut kita menghubungkan Arduino ke beberapa komponen seperti halnya ke LCD dan Ke sumber tegangannya. Alasan kenapa dua buah resistor dibuat paralel karena voltmeter ketika mengukur tegangan harus paralel dan dikarena jika suatu rangkaian paralel akan mempunyai tegangan yang sama. Kita menggunakan kaki A0 sebagai input ke arduino agar bisa membaca tegangan yang masuk lalu ditampilkan ke LCD hasil dari pembacaan arduino yang mendapatkan tegangan.

Coding Program
 
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);   
float vin=0.0;
float temp=0.0;
float r1=100000.0;                       
float r2=10000.0;                      

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);                    
  lcd.print("Riyan Ade");     
  delay(1000);
  lcd.clear();
  lcd.print("DC VoltMeter");
}

void loop() {
  int analog_val=analogRead(A0);   
  temp = (analog_val * 5.0)/1024.0;   
  vin = temp/(r2/(r1+r2));
  if(vin<0.1)
  {
    vin=0.0;
  }
  lcd.setCursor(0, 1);        
  lcd.print("Voltage = ");   
  lcd.println(vin);
  delay(300);
}

Video Simulasi



Pada simulasi tersebut, kita Software dijalankan LCD akan membaca tegangan yang masuk kedalam Arduino, untuk mengatur tegangannya kita menggunakan potensiometer dengan mengatur potensionya agar tampilan lcd berubah menyesuaikan pada potensiometer yang diatur.

Program Perulangan Menggunakan Led berbasis Arduino

 

Perulangan For, While dan Do-While Pada Bahasa C

Perulangan atau biasa disebut juga looping sangat sering digunakan dalam bahasa program, dengan adanya ini ketika kita ingin membuat banyak kondisi maka gunakanlah perulangan agar kode menjadi lebih praktis dan mudah. Terdapat tiga perulangan yaitu perulangan For, perulangan While, dan perulangan Do-While.

Dalam perulangan terdapat tiga hal yang diperlukan yaitu :

1. Kondisi Awal atau bisa disebut juga sebagai inisialisasi.
2. Syarat Kondisi, yang diperlukan agar suatu perulangan berhenti.
3. Iterasi, suatu syarat bagaimana suatu kondisi berjalan yaitu bertambah atau berkurang

Perulangan For

Perulangan for adalah perulangan yang simple dan banyak digunakan karena strukturnya yang mudah dipahami, berikut adalah cara untuk mendeklarasikan perulangan For :

for (kondisi awal; syarat kondisi; iterasi;)
{
Pernyataan atau statement
}

Perulangan While

Dalam perulangan while, pada prosesnya harus membuat variabel dengan nilai sebagai kondisi awal, lalu memerlukan syarat kondisi terlebih dahulu untuk melakukan looping dan diakhir kondisi diberikan iterasi.

Kondisi awal
while (syarat kondisi)
{
statement;
iterasi;
}

Perulangan Do-While

Sedangkan pada perulangan Do-While, perulangan ini melakukan terlebih dahulu perulangan lalu membaca syarat kondisinya, perhatikan struktur Do-While berikut

do
{
statement;
iterasi;
}
while(syarat kondisi);

Contoh program yang menggunakan Perulangan;


Pada flowchat diatas Kondisi awal ditentukan dulu selanjutnya dilakukan proses perubahan pada kondisi awal. Jika kondisi setelah perubahan dilakukan sesuai dengan kondisi yang ditetapkan, maka perintah/instruksi atau source code akan terus dieksekusi secara berulang. 

for (statement;kondisi;statement)
{
//eksekusi code
}

Penjelasan format :
  1.  Statemen awal diisi dengan kondisi awal, dapat berisi inisialisasi variabel atau  berisi data (misal, z=0).
  2. Statemen akhir diisi perubahan atau proses yang  terjadi pada variabel atau data yang ada pada statemen diawal (misal z=z+1).
  3. Kondisi, ini berisi kondisi dimana setelah perulangan dilakukan,  ketika  kondisi yang muncul setelah perulangan sudah  tidak  sesuai dengan kondisi yang ditentukan, maka perulangan tidak dieksekusi lagi.

Kemudian contoh program yang menggunakan perulangan.

Komponen yang digunakan :
- Arduino Uno
- Resistor 220
- Led
Skematik Rangkaian :
Penjelasan Rangkaian
Pada rangkain tersebut Pin 3 dihubungkan ke kaki positif Led lalu kaki negatif Led dihubungkan ke GND/Ground.

Coding Program
void setup(){
 pinMode (3, OUTPUT);
{
void loop(){
for (int i=1; i<10; i++){
digitalWrite (3, HIGH);
delay (500);
digitalWrite (3, LOW);
}
delay(3000);
}

Penjelasan codingan

Pada codingan diatas kita menggunakan perulangan for pada program.Program tersebut menggunakan Pin 3 sebagai Outputnya.Kemudian statement pada perulangan tersebut i berlogika 1 lalu kondisi akan berulangan sebanyak kurang dari 10 dan akan berjalan terus menerus.Isi perulangan tersebut menggunakan pin 3 yang diberi logika 1 dan 0.

video simulasi


penjelasan cara kerja

ketika simulasi dijalan maka Led akan berkedip sebanyak 10 kali dengan delay 0.5 detik ketika sudah mencapai 10 kali akan delay 3  detik kemudian kembali ke perulangan awal.