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



Tidak ada komentar:

Posting Komentar