Program Lampu Lalu Lintas Sederhana

Oke, untuk kali ini saya memposting jawaban saya dari pertanyaan di brainly. Pertanyaannya adalah untuk membuat sebuah program Lalu Lintas menggunakan bahasa pemrograman Java dan menggunakan decision IF.


Kode Programnya cukup simple tapi kalau dijelaskan jadi cukup panjang. Jadi program ini menampilkan lampu yang aktif dan keterangannya. Keterangan yang diberikan adalah maksud atau tujuan dari lampu tersebut dan waktu tenggangnya.


Algoritma :


Java :
public class LampuLaluLintas {
    public static void main(String[] args) {
        int lampu = 0, waktu_s = 0;
        try {
            while(true) {
                lampu++;
                if(lampu == 1) {
                    waktu_s = 10;
                    System.out.println("Lampu Hijau - Kendaraan Dapat Berjalan");
                }
                else if(lampu == 2) {
                    waktu_s = 12;
                    System.out.println("Lampu Merah - Kendaraan Harus Berhenti");
                }
                else if(lampu == 3) {
                    waktu_s = 2;
                    System.out.println("Lampu Kuning - Kendaraan Siap Siaga");
                    lampu = 0;
                }
                System.out.print("- Berakhir dalam |");
                while(waktu_s != 0) {
                    System.out.print(" " + waktu_s + " |");
                    Thread.sleep(1 * 1000);
                    waktu_s--;
                }
                System.out.println("\n");
            }
        } catch (Exception e) {
            System.err.println("Error : " + e);
        }
    }
}

Penjelasan :
** Deklarasi variable lampu, variable lampu digunakan untuk menampung nilai lampu yang sedang aktif.

** Deklarasi variable waktu_s, variable ini digunakan untuk menampung waktu tenggang dari lampu yang sedang aktif.

- Program berjalan terus menerus seperti Lampu Lalu lalu lintas yang terus aktif. Perintah while(true) akan membuat program berjalan terus menerus.

- Setiap perulangan variable lampu akan bertambah 1.

- Setelah nilai variable lampu bertambah 1, maka akan dilakukan pengecekan kondisi dengan if. Pengecekan dilakukan terhadap variable lampu.

-> Jika nilai variable lampu adalah 1 maka nilai variable waktu_s akan diberi nilai 10 dan menampilkan output "Lampu Hijau - Kendaraan Dapat Berjalan".

-> Jika nilai variable lampu adalah 2 maka nilai variable waktu_s akan diberi nilai 12 dan menampilkan output "Lampu Merah - Kendaraan Harus Berhenti".

-> Jika nilai variable lampu adalah 3 maka nilai variable waktu_s akan diberi nilai 2 dan menampilkan output "Lampu Kuning - Kendaraan Siap Siaga". Lalu nilai variable lampu akan diubah menjadi 0, fungsinya untuk mereset nilai agar dapat kembali ke lampu pertama.

- Menampilkan output tulisan "- Berakhir dalam |", output ini digunakan untuk memberikan informasi, kapan berakhirnya lampu yang aktif.

-  Di perintah while(waktu_s != 0) akan digunakan untuk menampilkan waktu tersisa sebelum berganti ke lampu berikutnya.

-> Menampilkan output tulisan " ", nilai variable waktu_s, " |"

-> Lalu mengehentikan waktu sejenak selama 1 detik. Pada perintah Thread.sleep(1 * 1000).

-> Setelah itu nilai variable waktu_s akan berkurang 1.

Pertanyaan : https://brainly.co.id/tugas/26489694

Konversi Lama Percakapan Pada Telephone

Lagi-lagi saya menemukan pertanyaan tentang pemrograman di Brainly. Pertanyaannya adalah untuk membuat sebuah algoritma ( pseudocode ) yang dapat membaca lama sebuah percakapan telephone dalam satuan detik.


Lama percakapan dikonversi kedalam Jam, Menit dan Detik. Sebagai contoh, misalkan lama percakapan adalah 4000 detik, maka 4000 detik = 1 jam + 6 menit + 40 detik. Algortimanya sangat mudah sekali, kita harus memanfaatkan modulo ( mod ) atau dapat diartikan sisa bagi.

- Untuk mencari Jam, berarti Lama Panggilan dibagi dengan 3600, karena 1 jam = 3600 detik
- Untuk mencari Menit, berarti sisa bagi dari Lama Panggilan / 3600 lalu dibagi dengan 60
- Untuk mencari Detik, berarti berarti sisa bagi dari Lama Panggilan / 3600 lalu di bagi dengan 60 dan dicari sisa baginya.

Pseudocode :
Judul : 
    Lama Panggilan Telephone
 
Deklarasi :
    Lama, Jam, Menit, Detik ( Integer )
 
Algoritma :
    Read ( Lama )
 
    Jam = Lama / 3600
    Manit = (Lama % 3600) / 60
    Detik = (Lama % 3600) % 60
 
    Write ( Lama, " = ", Jam, " jam + ", Menit, " menit + ", Detik, " detik" )

Simbol % adalah Mod atau Modulo, untuk mencari sisa bagi.

Volume Prisma Segitiga Siku-Siku

Pada kali ini saya menjawab pertanyaan dari Brainly tentang membuat sebuah program. Program yang akan dibuat adalah program yang dapat menghitung volume prisma segitiga siku-siku.


Program ini cukup sederhana, dari pembuat soal tidak di tuliskan harus menggunakan bahasa pemrograman apa. Untuk itu saya menggunakan bahasa pemrograman python. Karena prismanya menggunakan segitiga siku-siku, rumusnya seperti ini :


Dari rumus diatas, kita harus mempersiapkan variable untuk alas segitiga, tinggi segitiga, dan tinggi prisma. Agar lebih fleksible, nilai dari setiap variable akan diinputkan secara manual melalui keyboard. Didalam python, untuk mengambil inputan dapat menggunakan perintah input().

Python :
print("Volume Prisma Segitiga")

tinggi_prisma = int(input("Tinggi Prisma : "))
alas_segitiga = int(input("Alas Segitiga : "))
tinggi_segitiga = int(input("Tinggi Segitiga : "))

volume = ( 1/2 * alas_segitiga * tinggi_segitiga ) * tinggi_prisma

print("Volume Prisma : %.0f" % (volume))

Brainly - Algoritma RataRata Penjualan Harian

Pertanyaannya adalah membuat sebuah algoritma untuk menampilkan rata-rata dari penjualan harian. Total penjualan akan dihitung setiap 5 hari. Hasil penjualan perhari diinputkan satu persatu, dijumlahkan lalu akan dihitung rata-ratanya. Jenis algoritma yang digunakan adalah flowchart.


- Penjualan harian diinputkan satu persatu dengan menggunakan perulangan.
- Jumlah penjualan disimpan pada variable Penjualan.
- Perulangan didalam flowchart hanya berupa alur / arah panah yang berulang.

Penjumlahan Dan Pengurangan Bilangan Biner

Untuk kali ini saya akan membahas mengenai operasi aritmatika pada bilangan biner. Sistem bilangan biner atau sistem bilangan basis dua adalah sebuah sistem penulisan angka dengan menggunakan dua simbol yaitu 0 dan 1. Sistem bilangan biner modern ditemukan oleh Gottfried Wilhelm Leibniz pada abad ke-17. Sistem bilangan ini merupakan dasar dari semua sistem bilangan berbasis digital. [Wikipedia]


Untuk metode atau cara yang saya gunakan pada materi ini tidak dilakukan dengan melakukan konversi ke bilangan desimal, tetapi menggunakan cara penjumlahan dan pengurangan pada umumnya.

Perhitungan bilangan biner akan naik 1 digit didepannya apa bila hasil penjumlahannya adalah 2. Hal ini dikarenakan biner adalah bilangan dengan basis 2. Pada bilangan biner jika 1 + 1 maka hasilnya adalah 2 karena hasilnya dua maka harus naik 1 digit sehingga menjadi 10.

Perhitungan bilangan biner serupa dengan bilangan desimal. Pada bilangan desimal jika 9 + 1 memiliki hasil 10, yang berarti naik 1 digit karena bilangan desimal adalah bilangan dengan basis 10.

Saya harap sampai disini bisa dipahami. Sekarang, kita langsung masuk ke contoh soal dan pembahasannya. Saya akan memberikan 2 contoh saja.
1. 10101 + 11
2. 10101 - 11

Pembahasan :
1. Soal : 10101 + 11
Agar lebih mudah kita sejajarkan menurut urutan digitnya, sama seperti perhitungan pada umumnya.
1 0 1 0 1
      1 1
--------- +

Lakukan penjumlahan pada digit pertama ( dari kanan ).


Lalu, jumlahkan digit selanjutnya.



Hasil dari penjumlahannya adalah 1 1 0 0 0
Oke, lanjut ke soal yang berikutnya

2. Soal : 10101 + 11
Agar lebih mudah kita sejajarkan menurut urutan digitnya, sama seperti perhitungan pada umumnya.
1 0 1 0 1
      1 1
--------- -

Lakukan pengurangan pada digit pertama ( dari kanan ) dan seterusnya.


Untuk pengurangan, jika 0 - 1 maka tidak mungkin dilakukan, berarti harus meminjam angka didepannya. Perhatikan pada gambar, penambahan nilai bukan 10 seperti bilangan desimal tetapi 2 karena faktor basis bilangan. Hasil dari pengurangannya adalah 1 0 0 1 0.

Oke, segitu saja untuk materi kali ini semoga bermanfaat.

Brainly - Penjumlahan Bilangan Genap Positif

Akhir-akhir ini cukup banyak pertanyaan di Brainly tentang pembuatan program. Di pertanyaan ini tidak disebutkan menggunakan bahasa pemrograman apa, saya memutuskan untuk menggunakan bahasa pemrograman C++.


Pertanyaannya adalah membuat program yang dapat menghitung penjumlahan bilangan genap positif mulai dari 2 sampai dengan N (N input dari keyboard dengan tampilan sbb). Segabagai contoh jika memasukan N => 10 maka outputnya : 2+4+6+8+10=30


Algoritmanya yaitu :
- Nilai N di inputkan
- Lakukan perulangan i sampai N
-- Cek apakah i adalah Genap
--- Jika iya, maka nilai Total ditambah dengan i

C++ :
#include 
using namespace std;
int main() {
   int N, total = 0;
   cout << "Masukan Nilai N : ";
   cin >> N;

   for(int i = 1; i <= N; i++) {
       if(i % 2 == 0) {
           total += i;

           if(i == N || (i + 1) == N)
               cout << i << " = " << total;
           else
               cout << i << " + ";
       }
   }
}

Pertanyaan : https://brainly.co.id/tugas/26321709

Brainly - Algoritma Operasi Dua Bilangan

Untuk kali ini saya akan membahas jawaban dari pertanyaan di Brainly. Pertanyaannya adalah membuat algoritma dengan pseudocode dan flowchart untuk menghitung perkalian, pembagian dan pengurangan dari dua buah bilangan.


Berarti ada dua nilai yang diinputkan dari keyboard dan ditampung atau disimpan didalam variable. Lalu dua variable tersebut digunakan untuk perhitungan perkalian, pembagian dan pengurangan. Hasil dari perhitungan tersebut ditampilkan satu-persatu.


Pseudocode :
Judul :
    Mengoperasikan dua bilangan

Deklarasi :
    Bil_A, Bil_B ( Integer )
    Hasil ( Float )

Algoritma :
    Read ( Bil_A )
    Read ( Bil_B )

    Hasil = Bil_A + Bil_B
    Write ( "Hasil Penjumlahan : " + Hasil )

    Hasil = Bil_A - Bil_B
    Write ( "Hasil Pengurangan : " + Hasil )

    Hasil = Bil_A / Bil_B
    Write ( "Hasil Pembagian : " + Hasil )

    Hasil = Bil_A * Bil_B
    Write ( "Hasil Perkalian : " + Hasil )

Pertanyaan : https://brainly.co.id/tugas/26314640

Pertanyaan Brainly - Algoritma Menukar Nilai Variable

Untuk kali ini saya menjawab pertanyaan dari brainly lagi terkait dengan algoritma. Pertanyaannya adalah "Buat algoritma untuk membaca 2 nilai dan ditampung dalam variabel A dan B, lalu mempertukarkan isi variabel A dan B. Output adalah isi A dan B setelah ditukar."


Untuk menukar nilai, nilai A ditampung dulu pada variable Tukar. Variable Tukar fungsinya sebagai pengingat nilai untuk nilai A. Lalu A akan diberi nilai B. Terakhir B akandiberi nilai Tukar. ( Gambar )


Pseudocode :
Judul :
    Menukar Nilai

Deklarasi :
    A, B, Tukar ( Integer )

Algoritma :
    Write ( "Masukan Nilai A" )
    Read ( A )

    Write ( "Masukan Nilai B" )
    Read ( B )

    Tukar = A
    A = B
    B = Tukar

    Write ( "Nilai A : " + A )
    Write ( "Nilai B : " + B )

Papan Catur Sederhana

Pastinya kalian sudah tau dengan permainan yang dinamakan dengan Catur. Untuk kali ini saya akan membagikan sebuah kode program untuk membuat papan catur. Untuk bahasa pemrograman yang digunakan adalah PHP.


Papan catur ini hanya papan catur sederhana tidak ada penomoran untuk posisi bidak.


PHP :
<?php
   $r = 0;
   $size = 8;
   $board = "<div style='padding:5;border:4px solid black;display:inline-block'><table style='padding:0;border:4px solid black' cellspacing=0>";
   while(++$r <= $size) {
     $board .= "<tr>";
     $c = 0;
     while(++$c <= $size) {
       $color = "white";
       if(($r+$c) % 2 == 1) {
         $color = "black";
       }
       $board .= "<td style='width:50px;height:50px;padding:0;background:".$color.";'></td>";
     }
     $board .= "</tr>";
   }
   $board .= "</table></div>";
   echo $board;
?>

Pertanyaan Brainly - Deret Bilangan Ganjil dan Genap

Lagi-lagi menjawab pertanyaan tentang program di Brainly. Pertanyaan tentang pemrograman menurut saya cukup sedikit sekali, dalam satu minggu mungkin hanya 3 - 5 pertanyaan. Di lain kesempatan mungkin saya akan meposting jawaban dari pertanyaan tentang gerbang logika, aljabar boolean dan bilangan-bilangan dalam ilmu komputer.


Pertanyannya pemrogramannya "Tuliskan program yang akan mencetak deret angka dari 1 sampai 20 dengan bahasa program yang Anda ketahui, dengan output berupa angka 2 adalah bilangan Genap". Untuk bahasa pemrograman yang saya gunakan adalah PHP.


PHP :
<?php
 $n = 0;
 while(++$n <= 20) {
  // Jika bilangan n termasuk genap
  if($n % 2 == 0) {
   print("Angka " . $n . " adalah Bilangan Genap<br>");
  }
  // Jika bilangan n termasuk ganjil
  else {
   print("Angka " . $n . " adalah Bilangan Ganjil<br>");
  }
 }
?>

Alternatif Penulisan FOR pada JS

FOR adalah salah satu perulangan yang sering digunakan dalam pemrograman. Secara umum FOR terdiri dari 3 bagian yang saya beri label A, B dan C.


Bagian-bagian dari perulangan FOR diantaranya :

Bagian A akan dijalankan satu kali, bagian ini biasanya untuk memberikan nilai pada suatu variable yang akan digunakan pada perulangan.

Bagian B adalah sebuah kondisi yang bernilai TRUE atau FALSE, kondisi akan menentukan kapan perulangan tersebut akan berhenti, perulangan hanya akan berhenti jika kondisi bernilai FALSE.

Bagian C adalah bagian yang akan dijalankan sebelum menjalankan proses yang ada didalam perulangan, bagian ini biasanya diberi proses increment untuk variable pada bagian A.

Struktur dari dari FOR didalam bahasa pemrograman Javascript :

FOR ( Bagian A; Bagian B; Bagian C ) {
    // Perintah Didalam Perulangan
}

Secara umum penulisan perintah perulangan dapat dituliskan seperti :

for(var i = 1; i <= 5; i++) {
    document.write("Perulangan Ke-" + i + "<br>");
}

Tetapi ada cara lain atau alternatif untuk penulisan perulangan FOR dalam Javascript, alternatif penulisan FOR adalah sebagai berikut :

Alternatif 1
Perbedaan alternatif ini adalah terletak pada variable yang diberi nilai. Variable yang diberi nilai di deklarasikan diluar perulangan FOR bukan bersama dengan FOR.

var i;
for(i = 1; i <= 5; i++) {
    document.write("Perulangan Ke-" + i + "<br>");
}

Alternatif 2
Alternatif ini versi simple dari alternatif yang pertama yaitu variable yang digunakan pada perulangan langsung di inisialisasikan atau langsung diberi nilai ( pemberian nilai tidak bersama dengan for ).

var i = 1;
for(; i <= 5; i++) {
    document.write("Perulangan Ke-" + i + "<br>");
}

Alternatif 3
Bagian C pada perulangan dapat dipindahkan kedalam proses yang dijalankan setiap perulangan dilakukan.


for(var i = 1; i <= 5;) {
    document.write("Perulangan Ke-" + i + "<br>");
    i++;
}

Alternatif 4
Pada alternatif ini kita akan membuat FOR menjadi Infinite Loop atau perulangan yang tanpa batas. Lalu untuk menghentikan perulangannya dapat menggunakan IF dan perintah break untuk mengakhiri perulangan.


var i = 1;
for(;;) {
    document.write("Perulangan Ke-" + i + "<br>");
    if(i >= 5) break;
    else i++;
}

Alternatif 5
Alternatif terakhir yaitu penulisan FOR yang lebih dipersingkat lagi. Tetapi cara ini mungkin jarang orang yang mengetahui.

for(var i = 0; ++i <= 5;) {
    document.write("Perulangan Ke-" + i + "<br>");
}

** Untuk bahasa pemrograman lain mungkin beberapa dari alternatif diatas tidak akan bekerja.

Oke, mungkin cukup segitu saja untuk kali ini semoga bermanfaat.

Pertanyaan Brainly - Penjualan Perumahan

Untuk kali ini saya menjawab lagi pertanyaan tentang program di Brainly. Pertanyaannya adalah membuat sebuah program penjualan perumahan menggunakan bahasa pemrograman C++.


Soal ! PT. Perumahan Rakyat menjual 4 Type Rumah kepada Masyarakat.
Masing2 tipe dapat dibayar dengan 2 cara : 1. Kredit (10 Tahun) 2. Tunai
Ketentuannya sebagai berikut :
TIPE A Harga Tunai : 50.000.000 - Harga Kredit/Bulan Rp. 500.000
TIPE B Harga Tunai : 75.000.000 - Harga Kredit/Bulan Rp. 750.000
TIPE C Harga Tunai : 85.000.000 - Harga Kredit/Bulan Rp. 850.000
TIPE D Harga Tunai : 100.000.000 - Harga Kredit/Bulan Rp. 1.000.000

Sebagai Input :
1) Tipe Rumah
2) Jenis Pembayaran
Kode untuk Pembayaran Tunai = T
Kode untuk Pembayaran Kredit = K

Sebagai Proses :
Untuk mencari Total harga Rumah jika jenis pembayaran kredit dengan rumus :
Total Harga Rumah = 12* Angsuran per bulan * 10

Sebagai Output : Uang Pembayaran


C++ :
// Example program
#include <iostream>
#include <string>

using namespace std;

int main() {
    long prm_harga[4][2] = {
        {50000000, 500000},
        {75000000, 750000},
        {85000000, 850000},
        {100000000, 1000000}
    };
    int pilih_rumah = 0;
    string pilih_bayar = "";
    int total_bayar = 0;
    cout << "++ PT. Perumahan Rakyat ++\n";
    cout << "1. Tipe A\n2. Tipe B\n3. Tipe C\n4. Tipe D\n";
    cout << "Pilih Tipe Rumah : "; cin >> pilih_rumah;
    cout << "Pilih Pembayaran - Kredit (K/k) - Tunai (T/t) : "; cin >> pilih_bayar;
    
    switch(pilih_bayar == "K" || pilih_bayar == "k") {
        case true : {
            cout << "- Total Pembayaran (Kredit) : " << (12 * prm_harga[pilih_rumah - 1][1] * 10);
            break;
        }
        default : {
            cout << "- Total Pembayaran (Tunai) : " << prm_harga[pilih_rumah - 1][0];
            break;
        }
    }
}

Pertanyaan ( Brainly ) : https://brainly.co.id/tugas/26232612

Pertanyaan Brainly - Menghitung Gaji Harian Pegawai

Untuk kali ini saya menemukan pertanyaan lagi di brainly yaitu membuat program untuk menghitung gaji harian pegawai. Pertanyaan lengkapnya "Buatlah Program C++ untuk menghitung gaji karyawan menggunakan SWITCH".


Ketentuan dari programnya adalah sebagai berikut :
- Gaji Perjam = 500.
- Bila Jumlah jam kerja pada hari itu >7 jam, maka kelebihannya dihitung lembur yang besarnya 1.5 x gajiperjam.
- Input : Jumlah Jam Kerja
- Output : Gaji Harian Pegawai


C++ :
#include <iostream>
#include <string>

using namespace std;

int main()
{
    int gajiperjam = 500,
        gajiharian = 0,
        jamkerja = 0,
        jambonus = 7;
        
    cout << "Gaji Perjam : " << gajiperjam << "\n";
    cout << "Masukan Jumlah/Lama Jam Kerja : "; cin >> jamkerja;
    
    gajiharian = jamkerja * gajiperjam;
    cout << "- Gaji Pokok : " << gajiharian << "\n";
    
    switch(jamkerja > jambonus) {
        case true : {
            int jamsisa = jamkerja - jambonus;
            int gajilembur = (int)(jamsisa * 1.5 * gajiperjam);
            gajiharian += gajilembur;
            cout << "- Gaji Lembur : " << gajilembur << "\n";
        }
    }
    
    cout << "- Total Gaji Harian Pegawai : " << gajiharian;
}