Rabu, 02 Agustus 2023

Tugas Project Smart Trash Bin



Nama            : Denny Febriyanto
NPM              : 11420392
Mata Kuliah   : Algoritma & Pemrograman Kasus Teknik Elektro
Dosen           : Antonius Irianto Sukowati

Pengertian Smart Trash Bin

        Smart trash bin adalah sebuah jenis tempat sampah yang dilengkapi dengan teknologi modern dan fitur canggih untuk meningkatkan efisiensi dan kecerdasan dalam pengelolaan sampah. Tujuan dari smart trash bin adalah untuk mengurangi jumlah sampah yang terbuang sia-sia dan meningkatkan kemampuan dalam mengelola sampah secara lebih efektif. Berbagai fitur yang dimiliki oleh smart trash bin mencakup sensor untuk mendeteksi pergerakan atau kedekatan tangan, pengenalan objek untuk membedakan jenis sampah, integrasi dengan aplikasi atau platform digital untuk memantau status pengisian tempat sampah secara real-time, kompresi otomatis untuk menampung lebih banyak sampah, notifikasi dan pengelolaan jarak jauh, penggunaan sumber energi terbarukan, koneksi internet, serta penggunaan kecerdasan buatan (AI) untuk menganalisis data dan memprediksi pola pembuangan sampah guna meningkatkan efisiensi pengelolaan. Dengan teknologi ini, smart trash bin dapat membantu mengoptimalkan proses pengelolaan sampah, mengurangi pemborosan sampah, serta memberikan dampak positif bagi lingkungan dan masyarakat.

Contoh Smart Trash Bin Modern

     Smart trash bin memiliki banyak manfaat, termasuk pengelolaan sampah yang lebih efisien, pengurangan pemborosan sampah, menjaga kesehatan lingkungan, meningkatkan kesadaran lingkungan, penghematan energi, dan peningkatan kenyamanan bagi pengguna. Manfaat ini secara keseluruhan mendukung upaya menuju pengelolaan sampah yang lebih cerdas, berkelanjutan, dan ramah lingkungan.

        Untuk itu pada kesempatan kali ini kita akan membuat perancangan prototipe dari smart trash bin yang juga merupakan tugas dari mata kuliah algoritma dan pemrograman kasus teknik elektro.

Perancangan Prototipe Automatic/ Touchless Trash Bin

        Prototipe ini bertujuan untuk membuat tempat sampah pintar yang dapat secara otomatis membuka penutup ketika ada pengguna yang akan membuang sampah. Menggunakan Arduino Uno sebagai otak sistem dan dilengkapi dengan dua buah sensor ultrasonik untuk mendeteksi kedekatan tangan pengguna, satu buah LCD I2C untuk menampilkan informasi status, dan satu buah motor servo untuk menggerakkan penutup tempat sampah.

Komponen yang digunakan adalah sebagai berikut:

1. Arduino Uno 
2. LCD 16x2 I2C
3. 2 Sensor Ultrasonic 
4. Servo Motor
5. Buzzer

Skematik Rangkaian

Desain skematik yang dibuat pada wokwi dapat diliat di link berikut ini:

Skematik Rangkaian dan Program Wokwi

Desain Skematik Rangkaian Protitipe Smart Trash Bin

Program Arduino

Berikut ini adalah program yang digunakan dalam prototipe smart trash bin:

#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int trigPin = 5;
int echoPin = 6;
float duration, cm;
int trigPins = 7;
int echoPins = 8;
float durations, cms;
Servo servoOpen;
const int buzzerPin = 10;
int previousStatus = 0; // Variabel untuk menyimpan status level sampah sebelumnya
void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(trigPins, OUTPUT);
  pinMode(echoPins, INPUT);
  servoOpen.attach(9);
  servoOpen.write(0);
  pinMode(buzzerPin, OUTPUT);
  updateLCD();
}
void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  digitalWrite(trigPins, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPins, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPins, LOW);
  durations = pulseIn(echoPins, HIGH);
  cm = (duration / 2) / 29.1;
  cms = (durations / 2) / 29.1;
  if (cm <= 250) {
    servoOpen.write(90);
    digitalWrite(buzzerPin, LOW); // Matikan buzzer saat tempat sampah terbuka
    delay(500);
  } else {
    servoOpen.write(0);
    // Cek apakah status level sampah berubah dari "Penuh" ke status lainnya
    if (previousStatus == 1) {
      digitalWrite(buzzerPin, HIGH); // Nyalakan buzzer saat status "Penuh"
      delay(1000); // Waktu buzzer menyala (dapat disesuaikan)
    } else {
      digitalWrite(buzzerPin, LOW); // Matikan buzzer saat tempat sampah tertutup dan tidak penuh
    }
    // Simpan status level sampah sekarang sebagai status sebelumnya
    previousStatus = 0;
  }
  updateLCD();
}
void updateLCD() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Level Sampah :");
  lcd.setCursor(0, 1);
  if (cms >= 210 && cms <= 300) {
    lcd.print("Sedikit");
    previousStatus = 0; // Set status sebelumnya menjadi 0 ("Sedikit")
  } else if (cms <= 209 && cms >= 70) {
    lcd.print("Setengah");
    previousStatus = 0; // Set status sebelumnya menjadi 0 ("Setengah")
  } else if (cms >= 0 && cms <= 69) {
    lcd.print("Penuh");
    previousStatus = 1; // Set status sebelumnya menjadi 1 ("Penuh")
  } else {
    lcd.print("Kosong");
    previousStatus = 0; // Set status sebelumnya menjadi 0 ("Kosong")
  }
}

Penjelasan Program:

       Program smart trash bin berbasis Arduino Uno ini menggunakan sensor ultrasonik untuk mengukur jarak dan mengetahui kondisi tempat sampah. Servo motor digunakan untuk membuka dan menutup tempat sampah, sementara buzzer digunakan untuk memberikan peringatan ketika tempat sampah penuh. Data jarak dari sensor ultrasonik digunakan untuk menentukan kondisi tempat sampah ("Kosong", "Sedikit", "Setengah", atau "Penuh"), yang ditampilkan pada LCD I2C. Program ini juga menggunakan variabel previousStatus untuk mengatur kapan buzzer akan menyala, hanya saat status tempat sampah "Penuh". Dengan demikian, program ini menciptakan smart trash bin yang mampu menampilkan kondisi level sampah pada LCD dan memberikan peringatan ketika tempat sampah penuh.

Flowchart

Berikut diagram alur dari sistem prototipe smart trash bin:

Flowchart Sistem

Penjelasan diagram alur:

        Pada bagian setup, dilakukan inisialisasi dan pengaturan pin untuk sensor ultrasonik, servo motor, buzzer, dan LCD I2C. Selanjutnya, program masuk ke dalam loop() untuk membaca jarak dari sensor ultrasonik pertama. Jika jarak kurang dari atau sama dengan 30 cm (mendeteksi keberadaan subjek yang ingin membuang sampah), maka program akan memulai mekanisme membuka tempat sampah. LCD akan menampilkan pesan "Tempat Sampah Terbuka" dan setelah 5 detik, mekanisme akan menutup kembali tempat sampah. Setelah tempat sampah tertutup, program akan mengukur level sampah menggunakan sensor ultrasonik kedua dan menampilkan tingkatannya ("Kosong", "Sedikit", "Sedang", "Penuh") di LCD I2C. Jika level sampah ditampilkan sebagai "Penuh", buzzer akan menyala sebagai peringatan. Jika level sampah tidak penuh, buzzer akan dimatikan. Proses akan terus berulang dari membaca jarak sensor ultrasonik pertama hingga mengukur dan menampilkan level sampah pada LCD secara berulang.

Selasa, 11 Juli 2023

Project Prototipe Smart Garden Berbasis Mikrokontroler Arduino Uno

Pengertian Smart Garden

    Smart garden menggunakan teknologi dan sensor untuk memantau dan mengendalikan lingkungan pertumbuhan tanaman secara otomatis. Tujuannya adalah menciptakan kondisi optimal bagi pertumbuhan tanaman dan memudahkan perawatan. Sensor suhu, kelembaban, cahaya, dan kelembaban tanah digunakan untuk memantau parameter lingkungan.

Contoh Pemakaian Smart Garden Minimalis

Manfaat Smart Garden

    Dengan adanya smart garden ini sangat membantu kita dalam tanaman yang kita miliki, ada beberapa manfaat yang dapat di peroleh ketika kita menggunakan teknologi smart garden, yaitu:

1. Pemantauan Lingkungan yang Akurat
2. Penghematan Air

3. Pengaturan Suhu dan Pencahayaan yang Optimal
4. Perawatan yang Tepat Waktu
5. Kemudahan dan Kepraktisan

    Dari manfaat diatas penulis memiliki ide bagaimana membuat smart garden dengan bahan dan alat yang sederhana dan dengan mudah ditemukan serta dari segi harga yang lebih terjangkau dibandingkan dengan membeli maket yang sudah jadi seperti yang banyak di jual pada beberapa marketplace.

Project Prototipe Smart Garden

    Dengan project smart garden ini  kita dapet mengetahui keadaan tanaman terutama pada keadaan pencahayaannya, kelembapan dan temperatur lingkungan sekitar, dan tingkat kelembapan pada tanah dari tanaman tersebut. Berikut ini beberapa bahan yang perlu di persiapkan dalam merancang smart garden sebagai berikut:

a. Mikrokontroler Arduino Uno
b. Soil Moisture Sensor
c. Temperature & Humidity Sensor
d. Light Sensor
e. Kabel Jumper

    Setelah semua alat dan bahan terkumpul sebelum merancang alat tersebut baiknya kita membuat rangkaian yang banyak digunakan oleh orang banyak yaitu Wokwi. Wokwi adalah platform simulasi online yang memungkinkan pengguna merancang, mensimulasikan, dan membagikan proyek-proyek elektronik. Pengguna dapat membuat skematik, memprogram mikrokontroler, dan menguji kode mereka dalam simulasi interaktif. Dengan menggunakan Wokwi, pengguna dapat mengembangkan, menguji, dan berbagi proyek elektronik tanpa perlu memiliki perangkat keras fisik.

Skematik Rangkaian Smart Garden

Penggambaran skematik rangkaian dapat dilihat pada file Project Prototipe Smart Garden.

Skematik Rangkaian Smart Garden

Penjelasan Project Smart Garden:

1. Arduino Uno
Sebagai otak pengoperasian dan masukan program smart garden karena memiliki fleksibilitas dan kemampuan dalam mengontrol berbagai komponen elektronik. 

2. Soil Moisture Sensor
Dikarenakan keminiman library dari wokwi sebagai pengganti untuk simulasi rangkaiannya dapat diganti dengan potensiometer dimana nantinya potensio ini akan membaca keberagaman nilai yang diatur tersebut. Memiliki 2 kondisi dimana potensio membaca nilai < 500 maka led merah akan menyala, sebaliknya jika nilai > 500 maka led hijau yang akan menyala. Ini merupakan kondisi Basah dan kering dari kondisi tanah tanaman.

3. Temperature & Humidity Sensor
Pada rangkaian menggunakan DHT22, sensor ini memiliki kemampuan untuk mengukur suhu dan kelembaban sekitar dengan akurasi yang baik. DHT22 menggunakan protokol komunikasi satu kabel dan memberikan output digital yang mudah diolah oleh mikrokontroler seperti arduino. DHT22 telah di berikan keterangan dimana nilai kelembapan dan temperaturenya.

4. Light Sensor
Terdapat 2 bagian led sensor yang dimana led sensor 1 digunakan untuk LDR sensor ketika LDR menangkap matahari maka led putih akan mati, sedangkan led merah akan menyala ketika kelembapan pada 15 - 25 % dan temperature pada 32° C. Dan untuk bagian led sensor 2 digunakan untuk potensiometer.

Program Smart Garden

Berikut merupakan program yang dapat disimulasikan.

// Mengimpor library DHT untuk DHT22
#include <DHT.h>
// Membuat objek DHT pada pin 7 dan tipe sensor DHT22
DHT dht(7, DHT22);
// Mendeklarasikan variabel yang akan dibaca dari sensor
float kelembapan;
float temperatur;
void setup() {
  Serial.begin(9600);
  pinMode(A5, INPUT); // Soil Moisture Sensor
  pinMode(5, OUTPUT); // LED Green (LED Sensor 2)
  pinMode(4, OUTPUT); // LED Red (LED Sensor 2)
  pinMode(6, INPUT);  // LDR Sensor
  pinMode(3, OUTPUT); // LED White (LED Sensor 1)
  pinMode(2, OUTPUT); // LED Red (LED Sensor 1)
  dht.begin();        // menginisialisasi sensor DHT
}
void loop() {
  // Membaca nilai yang merupakan nilai kelembaban tanah
  int moistVal = analogRead(A5);
  // Jika moistVal < 500, maka pin 5 HIGH dan pin 4 LOW. Jika tidak, pin 5 LOW dan pin 4 HIGH
  if (moistVal < 500) {
    digitalWrite(5, HIGH);
    digitalWrite(4, LOW);
  }
  else {
    digitalWrite(5, LOW);
    digitalWrite(4, HIGH);
  }
  // Jika pin 6 HIGH, maka pin 3 HIGH. Jika tidak, pin 3 LOW.
  if (digitalRead(6) == HIGH){
    digitalWrite(3, HIGH);
  }
  else{
  digitalWrite(3, LOW);
  }
  // Jika kelembapan dalam 15 - 25% & temperatur lebih besar atau sama dengan 32°C, maka pin 2 HIGH. Jika tidak, pin 2 LOW.
  kelembapan = dht.readHumidity();  temperatur = dht.readTemperature();
   if(kelembapan >= 15.00 && kelembapan <= 25.00 && temperatur >= 32.00){
    digitalWrite(2, HIGH);
}
  else {
    digitalWrite(2, LOW);
  }
}


Referensi 




Selasa, 09 Mei 2023

Algoritma Switch Case Dalam Kalkulator Mikrokontroler Arduino Dengan Keypad dan LCD

Kalkulator adalah alat untuk menemukan solusi matematika tertentu dengan cepat dan akurat. Dalam pengaplikasiannya kalkulator bisa dibuat melalui software proteus dengan menggunakan algoritma switch case sebagai programnya. 

Switch case adalah pengambilan keputusan yang dirancang khusus yang berisi banyak solusi. Pernyataan switch case ini memiliki fungsi yang sama dengan pernyataan if else bersarang. Tujuan penggunaan switch case adalah untuk mempermudah pemilihan kondisi, menghindari penggunaan pernyataan if-else yang terlalu banyak, dan agar dapat digunakan untuk beberapa kondisi.

Pernyataan switch-case digunakan sebagai pernyataan untuk memilih tindakan yang akan diambil. Dalam pernyataan ini, itu hanya bergantung pada nilai dari tipe variabel. Variabel yang mendefinisikan ini memiliki beberapa tipe nilai, dan setiap nilai diasosiasikan dengan tipe operasi. Pernyataan switch-case digunakan untuk menyederhanakan pengaturan if-else-if. 

Berikut gambar skematik rangkaian dalam software Proteus:


Beberapa komponen yang digunakan:


Program yang dimasukan pada software Arduino IDE:

#include <LiquidCrystal.h>
#include <Keypad.h>
#include <Servo.h>

/* Display */
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);

/* Keypad setup */
const byte KEYPAD_ROWS = 4;
const byte KEYPAD_COLS = 4;
byte rowPins[KEYPAD_ROWS] = {5, 4, 3, 2};
byte colPins[KEYPAD_COLS] = {A3, A2, A1, A0};
char keys[KEYPAD_ROWS][KEYPAD_COLS] = {
  {'7', '8', '9', '/'},
  {'4', '5', '6', '*'},
  {'1', '2', '3', '-'},
  {'.', '0', '=', '+'}
};

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, KEYPAD_ROWS, KEYPAD_COLS);

uint64_t value = 0;

void showSpalshScreen() {
  lcd.print("   Kalkulator   ");
  lcd.setCursor(4, 3);
  String message = "Arduino";
  for (byte i = 0; i < message.length(); i++) {
    lcd.print(message[i]);
    delay(100);
  }
  delay(800);
}

void updateCursor() {
  if (millis() / 250 % 2 == 0 ) {
    lcd.cursor();
  } else {
    lcd.noCursor();
  }
}

void setup() {
  Serial.begin(115200);
  lcd.begin(16, 2);

  showSpalshScreen();
  lcd.clear();
  lcd.cursor();

  lcd.setCursor(1, 0);
}

char operation = 0;
String memory = "";
String current = "";
uint64_t currentDecimal;
bool decimalPoint = false;

double calculate(char operation, double left, double right) {
  switch (operation) {
    case '+': return left + right;
    case '-': return left - right;
    case '*': return left * right;
    case '/': return left / right;
  }
}

void processInput(char key) {
  if ('-' == key && current == "") {
    current = "-";
    lcd.print("-");
    return;
  }

  switch (key) {
    case '+':
    case '-':
    case '*':
    case '/':
      if (!operation) {
        memory = current;
        current = "";
      }
      operation = key;
      lcd.setCursor(0, 1);
      lcd.print(key);
      lcd.setCursor(current.length() + 1, 1);
      return;

    case '=':
      float leftNum = memory.toDouble();
      float rightNum = current.toDouble();
      memory = String(calculate(operation, leftNum, rightNum));
      current = "";
      lcd.clear();
      lcd.setCursor(1, 0);
      lcd.print(memory);
      lcd.setCursor(0, 1);
      lcd.print(operation);
      return;

  }

  if ('.' == key && current.indexOf('.') >= 0) {
    return;
  }

  if ('.' != key && current == "0") {
    current = String(key);
  } else if (key) {
    current += String(key);
  }

  lcd.print(key);
}

void loop() {
  updateCursor();

  char key = keypad.getKey();
  if (key) {
    processInput(key);
  }
}

Kondisi switch case adalah cabang dari kode program tempat konten variabel multi-nilai dibandingkan. Jika hasil proses perbandingan benar, maka blok kode program diproses.

Kondisi switch case terdiri dari dua bagian, yaitu program switch dengan nama variabel yang diuji dan satu atau lebih pernyataan case untuk setiap nilai yang akan diuji. Di awal kode program ada perintah switch yang digunakan untuk memasukkan variabel terkontrol. Lalu ada beberapa pernyataan case diikuti dengan sebuah nilai. Jika isi nama_variabel sama dengan salah satu dari nilai ini, blok kode program dijalankan. Jika tidak ada kondisi case yang terpenuhi, blok standar di akhir baris dijalankan. Setiap blok kasus diakhiri dengan perintah break sehingga struktur case segera berhenti ketika kondisi terpenuhi.

Hasil Output Rangkaian

Setelah program pada Arduino dicompile dan menyalin link format .hex kemudian memasukkan kedalam arduino pada proteus, lalu dapat di jalankan rangkaian tersebut. Hasil output dari LCD menampilkan berikut selama 8 detik.


Kemudian LCD akan membersihkan otomatis hingga tidak ada tampilan, dengan menekan tombol pada keypad. Masing-masing angka berfugsi dengan baik dan ouput pada LCD pun sesuai.


Berikut beberapa pengoperasiannya:







Referensi:

Rabu, 23 September 2020

PENGERTIAN ARUS AC-DC SERTA KELEBIHAN DAN KEKURANGANNYA

    Arus listrik dalam suatu rangkaian elektronika tentunya sangat kita butuhkan dalam kehidupan ini. Manfaat dari listrik tentu patut kita syukuri keberadaannya, namun apakah anda sepenuhnya paham mengenai seluk beluk arus listrik? Dalam artikel ini kami akan mencoba memaparkan sedikit saja penjelasan mengenai pengertian, fungsi dan manfaat dari arus listrik ini. Bagi anda yang ingin mengenal lebih jauh mengenai arus listrik dan seluk beluknya, silahkan simak ulasan singkat berikut ini.

    Pengertian arus listrik secara umum adalah energi yang bisa disalurkan melalui media penghantar berupa kabel, dan adanya arus listrik ini dikarenakan muatan listrik yang mengalir dari saluran positif menuju ke saluran negatif. Di dalam kehidupan sehari-hari manusia, listrik tentu memiliki peran yang begitu penting.

Listrik itu sendiri terbagi menjadi 2 jenis, yaitu arus AC serta arus DC. Berikut penjelasannya. 

 

ARUS AC (ALTERNATING CURRENT)

    

"Tegangan standart 1 phase"

    Pengertian arus listrik AC atau alternating current yaitu listrik yang besar dan arah arusnya yang selalu berubah-ubah atau bolak-balik dan membentuk gelombang sinusoida.

Di arus listrik AC yang ditetapkan oleh PLN mempunyai frekuensi sebesar 50 Hz. Sedangkan, tegangan standar buat arus bolak-balik 1 fasa disini yaitu 220 Volt.

 

 


KELEBIHAN ARUS AC

  1. Transmisi pada jarak yang jauh dan dengan jumlah energi listrik yang banyak, karena arus AC mempunyai kerugian yang lebih kecil dibandingkan arus DC. Misalnya pada PLN 220 Volt kerumah-rumah.
  2. Listrik disalurkan memakai voltage yang tinggi yang udah di step up dari trafo sehingga menjadi pilihan yang tepat buat menyalurkan listrik ketempat yang jauh jadi berbeda dengan arus DC.
  3. Arus AC sangat mudah untuk didapatkan, cuma dengan memakai generator sedangkan buat arus DC sulit.
  4. AC bisa diubah menjadi DC dengan rangkaian adaptor, contohnya pada cas handphone.
  5. Sumber arus pada generator atau miniatur kecilnya pada dinamo.

 KEKURANGAN ARUS AC

Kekurangan dari arus AC adalah tidak dapat disimpan dalam waktu yang lama dan tidak dapat dipindahkan untuk keperluan secara mendadak atau tiba-tiba. 

Hal ini berbeda dengan arus DC yang dapat disimpan dalam bentuk baterai dan aki.

 

ARUS DC (DIRECT CURRENT)

 

    Pengertian arus listrik DC atau Direct Current yaitu jenis arus yang mengalir secara searah. Awalnya, arus DC ini dikira mengalir dari kutub positif ke kutub negatif. Tetapi, sekarang banyak ilmuwan yang mengatakan kalo sebenarnya, arus listrik DC itu mengalir dari kutub negatif ke kutub positif.

Aliran inilah yang menyebabkan terjadinya lubang-lubang bermuatan positif yang membuatnya seperti terlihat mengalir dari kutub positif ke kutub negatif.

Pada arus listrik DC ini, tegangan listrik mempunyai nilai dan arah yang tetap. Contoh handphone, laptop, radio, komputer.

Biasanya disimpan dalam bentuk baterai, umumnya jam dinding, remot tv, aki. Arus ini digunakan dalam daya rendah dan dapat diisi ulang.

 

                                                                            

KELEBIHAN ARUS DC 

  1. Bisa ditemui disetiap peralatan elektronik, seperti remote, jam dinding, dan berbagai jenis lainnya.
  2. Bisa diisi ulang, supaya kamu mudah untuk membawa dan menyimpannya dalam jangka waktu yang lama.
  3. DC bisa diubag menjadi AC, dibutuhkan rangkaian khusus yakni Rangkaian Inventer.
  4. Sumber arus biasa dijumpai pada baterai dan aki.

 KEKURANGAN ARUS DC

Kekurangan dari arus ini hanya digunakan untuk daya rendah dan tidak bisa digunakan pada alat elektronik yang berdaya tinggi.

 

Sekian artikel mengenai arus AC dan DC. Mohon maaf jika ada kesalahan kata dan kalimat

Semoga bermanfaat dan menambah wawasan pengetahuan Anda. Jangan lupa untuk tetap berhemat listrik di rumah untuk mencegah pemanasan global.

Gunakan listrik dengan baik ya!


referensi: 

https://jangkasorong.co.id/arus-listrik-ac-dc-pengertian-contoh-kelebihan-dan-kekurangan/

Tugas Project Smart Trash Bin Nama               : Denny Febriyanto NPM                  : 11420392 Mata Kuliah    : A lgoritma & Pemrog...