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.