Sabtu, 12 Desember 2015

Konversi Sistem Bilangan di Android

Tags
Assalamu'alaikum, kali ini yang saya bagikan adalah aplikasi Konversi yang berbasis android. Untuk tampilan awalnya adalah sebagai berikut:


Aplikasi ini dapat melakukan konversi dari Teks/kalimat, Angka/desimal, Biner, Oktal, dan Hexa.

Fiturnya adalah sebagai berikut:
  • Konversi dari Teks ke Biner, Oktal, dan Hexa
  • Konversi dari Angka (desimal) ke Biner, Oktal, dan Hexa
  • Konversi dari Biner ke Teks, Angka, Oktal, dan Hexa
  • Konversi dari Oktal ke Teks, Angka, Biner, dan Hexa
  • Konversi dari Hexa ke Teks, Angka, Biner, dan Oktal
  • Menyalin hasil konvers
Untuk yang dari Teks/kalimat, kalimat tersebut dapat dikonversi ke Biner, Oktal, dan Hexa. Saya mengonversi teks dengan mengonversi tiap hurufnya (berdasarkan kode ascii), jadi nanti 1 huruf menjadi 8 karakter (biner), 3 karakter (oktal), dan 2 karakter (hexa).

Penasaran seperti apa aplikasinya? Silahkan dicoba sendiri..


Setelah disalin, saya coba paste-kan di memo, dan hasilnya:


Itulah penjelasan mengenai aplikasi Konversi yang saya buat. Saya membuat aplikasi tersebut di hp dengan aplikasi AIDE,  dikarenakan waktu itu saya belum menginstal Android Studio di PC. Bagi yang mau coba-coba silakan download di PlayStore.

Dari segi tampilan memang masih (sangat) butuh perbaikan, dan yang mau mengembangkan aplikasi ini bisa komen-komen di bawah, nanti bisa saya kirim lewat e-mail.

Ada ide lain? Punya saran? Ada bug/error di aplikasi ini? Saya tunggu komentarnya..

Senin, 26 Oktober 2015

UTS 2014 Nomor 1

Assalamu'alaikum, pada kesempatan kali ini saya akan membahas soal UTS Struktur Data Tahun 2014. Pada postingan ini yang akan saya bahas adalah yang nomor 1. Soalnya adalah sebagai berikut:

Buatlah program menghitung jumlah bilangan ganjil sampai ke-n (1+3+...+n) dengan pendekatan algoritma :
a. Iteratif (Nilai 10)
b. Rekursif (Nilai 15)

Nah, sebelum masuk ke source code, lebih baiknya kita cari tahu dulu apa sih iteratif dan rekursif itu? Menurut saya pribadi, iteratif itu perulangan yang pasti menggunakan for, do..while, ataupun while. Perulangan iteratif itu bisa dibuat fungsi dan juga bisa langsung dituliskan di dalam main-nya. Kemudian perulangan rekursif itu adalah perulangan yang memanggil dirinya sendiri, jadi perulangan rekursif itu sudah pasti berbentuk fungsi. Perulangan rekursif tidak menggunakan for, do..while, ataupun while, dan ciri dari perulangan rekursif itu sendiri adalah adanya if yang berfungsi untuk memberhentikan pemanggilan dirinya sendiri.

Oke kita langsung jawab soal di atas saja, disini saya membuat yang perulangan iteratif itu dalam bentuk fungsi.


Outputnya:
Gambar
Jika n = 10, maka hasilnya adalah 1+3+5+7+9 = 25

Gambar
Jika n = 5, maka hasilnya adalah 1+3+5 = 9

Jumat, 25 September 2015

Tabel Distribusi Frekuensi dengan C++

Assalamu’alaikum, kali ini saya berbagi aplikasi kecil yang saya buat beberapa hari lalu. Aplikasi ini saya buat dengan bahasa C++, dan masih berjalan di console (belum GUI).

Tujuan dari pembuatan aplikasi ini adalah untuk mempermudah mengerjakan tugas dari mata kuliah Statistika Informatika. Pada pertemuan pertama atau kedua (kurang ingat), mata kuliah tersebut membahas tentang data-data. Disediakan banyak data yang berupa angka dan apabila jumlah data tersebut lebihdari 30, maka kita harus membuat Tabel Distribusi Frekuensinya. Tabel ini berisi tentang Interval Kelas, Frekuensi, Frekuensi Relatif, dan Frekuensi Kumulatif. Untuk mengisi tabel tersebut, kita harus mengetahui jumlah kelas, range, dan lebar kelas.
Rumusnya adalah: C = R/K, dimana:
  • C : lebar kelas, atau bisa dibilang selisih dari batas bawah dan batas atas disetiap kelas
  • R : range/jangkauan, yaitu selisih dari data tertinggi dengan data terendah
  • K : jumlah kelas, jika dalam soal tidak diketahui, kita bisa menggunakan rumus. K = 1 + 3.22 * log(n), dimana n adalah banyaknya data
Sebenarnya, dalam materi ini ada Tabel Distribusi Frekuensi dan Diagram Batang. Tetapi karena saya belum dapat ide gimana cara membuat diagram batang di console, akhirnya saya hanya membuat Tabel Distribusi Frekuensi, dan pastinya dengan manipulasi agar bisa berbentuk seperti tabel.

OK, kita langsung ke programnya saja.
Untuk tampilan awal saya buat seperti ini :

Gambar

Jika memasukkan pilihan 1, maka console akan dibersihkan dan menampilkan ini :

Gambar

Jika kita menekan sembarang tombol, maka akan kembali ke menu awal lagi. Dan jika kita berada di menu awal dan memasukkan pilihan selain 1, 2, dan 3, maka kita tetap akan berada di menu awal. Jika kita memasukkan pilihan 3, maka program akan ditutup. Jika kita memasukkan 2, maka console akan dibersihkan dan memulai bekerja.

Gambar

Nah, banyak data disini minimal adalah 30 dan maksimal adalah 100. Mengapa 30? Karena untuk bekerja dengan Tabel Distribusi Frekuensi, banyak data minimalnya adalah 30. Lalu mengapa 100? Karena dalam program ini saya masih menggunakan array statis, takutnya nanti kalau saya memakai batas yang besar, memory terbuang sia-sia. Apabila pengguna memasukkan banyaknya data kurangdari 30 atau lebihdari 100, maka program akan meminta lagi.

Gambar

Kemudian apabila banyaknya data sudah dalam jangkauan (30 sampai 100), program akan bertanya apakah K (jumlah kelas) sudah diketahui? Jika sudah diketahui maka kita memasukkan K nya. Dan K tidak boleh 0 dan tidak boleh lebihdari banyaknya data.

Gambar

Tetapi apabila K tidak diketahui, maka program akan mencari K nya dengan rumus yang di atas tadi.

Gambar

Setelah itu kita memasukkan data-data yang ada, disini saya buat data minimalnya adalah 1 dan maksimalnya 999. Jika di luar itu, maka program akan meminta lagi. Setelah data-datanya diisi, selanjutnya program akan menampilkan rumus (untuk memberitahu pengguna) dan tentunya Tabel Distribusi Frekuensinya (karena itu tujuan program ini).

Gambar

Nah, seperti itulah penjelasan program Tabel Distribusi Frekuensi yang saya buat. Jika Anda ingin mengembangkan atau sekedar ingin tahu seperti apa source code nya. Silakan download di link berikut:

Download [Source Code] [Program]
Password rar : develop251


Senin, 21 September 2015

Cara Install Java/JDK di Windows

Tags
Assalamu'alaikum, kali ini saya share gimana caranya ngoding dengan bahasa Java tanpa menggunakan IDE, alias disini hanya bermodalkan Text Editor dan Command Prompt. Caranya sebagai berikut:

Kita cek dulu apakah PC/laptop kita sudah terinstal JDK dan apakah sudah dikonfigurasi. Untuk mengecek hal tersebut, kita buka Command Prompt nya, lalu ketikkan "javac".

Gambar

Jika tampilannya seperti gambar di atas, berarti ada 2 kemungkinan. Yang pertama kita belum menginstal JDK dan mengkonfigurasikannya, dan yang kedua sudah instal JDK tetapi belum dikonfigurasi. Sekarang kita cek apakah JDK sudah diinstal atau belum. Kita masuk ke folder "C:\Program Files\Java", nah kita cek apakah sudah ada folder yang namanya "jdk...". Jika sudah berarti JDK nya sudah terinstal, tetapi jika belum silahkan download DI SINI.

Gambar

Klik "Accept License Agreement" dan tinggal download jdk sesuai sistem operasi yang digunakan. Untuk x86 menandakan 32bit dan x64 berarti 64bit.

Setelah terinstal, saatnya mengkonfigurasi. Masuk ke folder instalannya (biasanya di C:\Program Files\Java). Karena JDK yang saya instal versi 1.8.0 update 60, maka ada folder yang namanya jdk1.8.0_60. Kemudian buka foldernya dan masuk ke folder bin dan copy lokasinya. (C:\Program Files\Java\jdk1.8.0_45\bin)

Gambar

Kemudian klik kanan My Computer -> Properties -> Advanced system settings. Lalu ikuti gambar di bawah.

Gambar

Gambar

Gambar

Gambar

Pada Variabel name diisi dengan "Path" (tanpa tanda petik), dan Variabel value diisi dengan lokasi bin yang telah di copy tadi.

Setelah itu buka Command Prompt nya lagi dan coba ketikkan "javac", jika tampilannya sudah seperti gambar di bawah, berarti konfigurasinya sudah benar.

Gambar

Dan sekarang waktunya ngoding. Langsung kita buka Notepad/Notepad++ nya, disini saya hanya mengetikkan syntax dasarnya saja, silahkan nanti dikembangkan sendiri. Untuk mempermudah kedepannya, setelah membuka file baru di Notepad, langsung save saja dan tentunya harus berekstensi .java, diusahakan gunakan satu kata saja, jika lebih ya digabung saja, misal ProgramTugas.java. Dan yang harus diingat adalah nama file harus sama dengan nama class yang kita buat di file javanya.

Gambar


Dari program di atas saya memberi nama class-nya ProgramTugas, maka nama dari file-nya juga harus ProgramTugas.java.

Sekarang kita compile file java nya, buka Command Prompt nya, lalu masuk ke folder yang ada file java nya tadi (yang barusan diketik).

Gambar

Nah, gimana cara masuknya? Ikuti gambar di bawah:

Gambar

d: untuk pindah ke drive D.
cd Testing untuk masuk ke folder Testing (tekan tab setelah cd untuk mempercepat memilih folder).
dir untuk melihat isi dari folder tersebut.
cls untuk membersihkan screen.
Pastikan ada file java yang telah kita simpan tadi.

Setelah itu kita compile terlebih dahulu. Caranya ketik "javac" spasi namafile.java, misal "javac ProgramTugas.java". Jika tampilannya seperti di bawah berarti berhasil. Jika ada kesalahan nanti akan muncul pada saat di compile seperti ini.

Gambar

Setelah berhasil dicompile, nanti akan ada file baru yang namanya sama dengan nama file java tadi, tapi bedanya berekstensi .class.

Gambar

Sekarang kita jalankan program yang sudah kita compile dengan perintah "java" spasi namafile, misal "java ProgramTugas" (tanpa ekstensi).

Gambar

Sekian, terima kasih.

Selasa, 04 Agustus 2015

UAS Algoritma dan Pemrograman

SOAL :

Nomor 1
Program RangkaianResistor
{ Dibaca besaran tiga resistor R1, R2, dan R3, kemudian dibaca juga pilihan jenis rangakaiannya (0 atau 1) jika 0 = seri, 1 = paralel. Program akan menampilkan rangkaian total RT sesuai jenis rangkaian yang dipilih. Perhatikan pula agar program ‘kuat’ bila mendapat inputan yang nilai resistornya 0 } 

Nomor 2
Program JumlahBil
{ Dibaca sembarang bilangan integer non negatif secara berulang sampai diakhiri dengan membaca bilangan -1. Tampilkan banyaknya dan hasil jumlah bilangan non negatif tersebut } 

Nomor 3
Implementasikan fungsi dan prosedur berikut, kemudian buat program utama yang memanggil fungsi dan prosedur yang sudah dibuat.
a. Function DeretHitung (N : integer) -> integer
{ mengirim nilai fungsi deret hitung dari 1 + 2 + 3 + ... + N }
b. Procedure Putar3Bil (input output a : integer, input output b : integer, input output c : integer)
{ menukar/memutar nilai bilangan integer
Kondisi awal : a, b, dan c nilai sudah terdefinisi
Kondisi akhir : a berisi b, b berisi c, c berisi a } 

Nomor 4
Diberikan suatu fungsi rekursif, dengan definisi sebagai berikut :

Gambar
Tuliskan algoritma dari fungsi rekursif tersebut.
Function F (..........) -> .......... 

Nomor 5
Program HitungGaji
{ Pada suatu perusahaan terdapat tiga (3) golongan karyawan. Gaji karyawan ditentukan berdasarkan gaji pokok dan juga lamanya bekerja. Gaji pokok dan lembur  per jam tersebut tergantung kepada golongan karyawan sesuai dengan tabel berikut :
Gambar
Tuliskan :
a. Deklarasinya (petunjuk gunakan struktur record dan array)
b. Procedure BacaPegawai (..........)
{ prosedur membaca nama pegawai, golongannya, dan jam lembur sebulannya }
c. Procedure HitungGajiPegawai (..........)
{ prosedur menghitung total gaji setiap pegawai dalam sebulan }
d. Procedure CariPegawai (..........)
{ prosedur mencari apakah nama pegawai = ‘X’ ada dalam tabel pegawai, jika ada hasil pencarian bernilai true, jika tidak bernilai false }


JAWABAN :

Nomor 1

Keterangan :
[baris 9] Pertama membaca semua yang dibutuhkan, yaitu resistor R1, R2, R3, dan juga membaca pilihan mau dihitung secara seri atau paralel.
[11 - 13] Nah, disini kita filter agar pilihan yang dibaca itu hanya bisa 0 dan 1 (seri atau paralel), dengan menggunakan perulangan while. Jika yang diinputkan user selain 0 dan 1, maka user akan terus diminta memasukkan pilihan tersebut hingga user memilih 0 atau 1 (dipaksa).
[15 - 17] Disini kita filter lagi, jika pilihannya itu menghitung secara paralel (pilih 1) dan R1 atau R2 atau R3 ada yang bernilai 0, maka user diminta memasukkan nilai resistor lagi. Hal ini dilakukan karena rumus paralel ada yang mengandung satu per (1/R), jika R=0 maka hasilnya tidak terdefinisi.
[19 - 20] Jika pilihannya tadi 0 (seri), maka RT diisi dengan rumus seri.
[21 - 22] Kemudian selain 0 (otomatis 1, karena diatas sudah difilter), rumus RT diisi oleh rumus paralel.
[25] Yang terakhir kita tinggal menampilkan hasil perhitungan (RT).

Nomor 2

Keterangan :
[8 - 9] Pertama kita isi banyak (banyaknya bilangan positif yang diinputkan oleh user) dan jumlah (jumlah total dari semua bilangan positif yang diinputkan user) dengan 0.
[11] Baca bilangannya dulu.
[13 - 20] Jika bilangan yang diinputkan user tidak -1, maka masuk perulangan dan [14 - 17] bilangan tersebut akan dicek lagi apakah lebihdari 0? Jika lebihdari 0 (berarti positif), maka banyaknya bilangan positif bertambah 1 dan jumlah ditambah dengan bilangan yang diinputkan tadi.
[19] Kemudian membaca bilangan lagi.
[22] Yang terakhir tinggal menampilkan hasil (banyak dan jumlah).

Nomor 3

Maaf, keterangan nomor 3 dan jawaban nomor 4 beserta keterangannya terhapus saat saya update.

Nomor 5

Kamis, 02 Juli 2015

Algoritma Mengurutkan 3 Bilangan dari yang Terkecil (C++)

Algoritma:
Algoritma Mengurutkan3Bilangan
    {dibaca 3 bilangan bulat (A, B, C) yang pasti berbeda, kemudian menampilkan bilangan tersebut dari yang terkecil}

Deklarasi:
    A, B, C : integer

Deskripsi:
    read(A, B, C)
    
    if A<B and A<C then
        if B<C then
            write(A, B, C)
        else
            write(A, C, B)
        endif
    else if B<A and B<C then
        if A<C then
            write(B, A, C)
        else
            write(B, C, A)
        endif
    else
        if B<A then
            write(C, B, A)
        else
            write(C, A, B)
        endif
    endif

Mengurutkan 3 bilangan dari yang terkecil ke terbesar. Dalam algoritma yang saya buat, saya ingin memastikan bahwa nilai A adalah yang terkecil dengan cara membandingkan nilainya dengan nilai B dan C. Apabila A yang terkecil, maka tinggal membandingkan nilai B dengan nilai C. Sehingga akan terurut A-B-C atau A-C-B. Begitupula dengan yang lain.

Source code:
#include <iostream>
//develop251.blogspot.com
using namespace std;

int main(){
    int a, b, c;
    
    cout << "Masukkan nilai A : "; cin >> a;
    cout << "Masukkan nilai B : "; cin >> b;
    cout << "Masukkan nilai C : "; cin >> c;
    
    if(a<b && a<c){
        if(b<c){
            cout << a << ' ' << b << ' ' << c << endl;
        }else{
            cout << a << ' ' << c << ' ' << b << endl;
        }
    }else if(b<a && b<c){
        if(a<c){
            cout << b << ' ' << a << ' ' << c << endl;
        }else{
            cout << b << ' ' << c << ' ' << a << endl;
        }
    }else{
        if(b<a){
            cout << c << ' ' << b << ' ' << a << endl;
        }else{
            cout << c << ' ' << a << ' ' << b << endl;
        }
    }
    
    return 0;
}

Hasil:

Algoritma Konversi Nilai ke Huruf (C++)


Konversi Nilai ke Huruf, biasanya berkaitan dengan IP (Indeks Prestasi). Indeks prestasi adalah salah satu alat ukur prestasi di bidang akademik/pendidikan. Meskipun bernama "indeks", IP sebenarnya bukanlah indeks dalam pengertian sebenarnya, melainkan semacam rerata terboboti.

Dalam pembahasan kali ini, saya mengambil contoh apabila nilai mahasiswa 0-20 maka dia dapat E, 21-40 dapat B, 41-60 dapat C, 61-80 dapat B, dan 81-100 dapat A (bukan perhitungan IP yang sebenarnya). Dari data tersebut, algoritma yang bisa dibuat adalah sebagai berikut.

Algoritma:
Algoritma KonversiNilai
    {membaca nilai mahasiswa dalam bentuk angka dan menampilkan dalam huruf (81-100 = A, 61-80 = B, 41-60 = C, 21-40 = D, 0-20 = E)}

Deklarasi:
    nilai : integer

Deskripsi:
    read(nilai)

    if nilai>=81 and nilai <=100 then
        write('A')
    else if nilai>=61 and nilai<=80 then
        write('B')
    else if nilai>=41 and nilai<=60 then
        write('C')
    else if nilai>=21 and nilai<=40 then
        write('D')
    else if nilai>=0 and nilai<=20 then
        write('E')
    else
        write('?')
    endif

Source code:
#include <iostream>
//develop251.blogspot.com
using namespace std;

int main(){
    int nilai;
    
    cout << "Masukkan nilai Anda : "; cin >> nilai;
    
    if(nilai>=81 && nilai<=100){
        cout << 'A' << endl;
    }else if(nilai>=61 && nilai<=80){
        cout << 'B' << endl;
    }else if(nilai>=41 && nilai<=60){
        cout << 'C' << endl;
    }else if(nilai>=21 && nilai<=40){
        cout << 'D' << endl;
    }else if(nilai>=0 && nilai<=20){
        cout << 'E' << endl;
    }else{
        cout << '?' << endl;
    }
    
    return 0;
}

Source code dengan class:
#include <iostream>
//develop251.blogspot.com
using namespace std;

class Penilaian{
    private:
        int nilaiAngka;
        char nilaiHuruf;

    public:
        void inputNilaiAngka(){
            cout << "Masukkan nilai Anda : ";
            cin >> nilaiAngka;
        }

        void outputNilaiHuruf(){
            if(nilaiAngka>=81 && nilaiAngka<=100){
                nilaiHuruf = 'A';
            }else if(nilaiAngka>=61 && nilaiAngka<=80){
                nilaiHuruf = 'B';
            }else if(nilaiAngka>=41 && nilaiAngka<=60){
                nilaiHuruf = 'C';
            }else if(nilaiAngka>=21 && nilaiAngka<=40){
                nilaiHuruf = 'D';
            }else if(nilaiAngka>=0 && nilaiAngka<=20){
                nilaiHuruf = 'E';
            }else{
                nilaiHuruf = '?';
            }

            cout << "Nilai Anda : " << nilaiHuruf << endl;
        }
};

int main(){
    Penilaian penilaian;

    penilaian.inputNilaiAngka();
    penilaian.outputNilaiHuruf();

    return 0;
}

Hasil:



Referensi:
  • https://id.wikipedia.org/wiki/Indeks_prestasi

Algoritma Hambatan Seri dan Paralel Milih (C++)

Komponen sebuah rangkaian listrik atau rangkaian elektronik dapat dihubungkan dengan berbagai cara. Dua tipe paling sederhana adalah rangkaian seri dan paralel. Rangkaian yang disusun secara sejajar disebut rangkaian seri, sedangkan rangkaian yang disusun secara berderet disebut rangkaian paralel. Komponen yang tersusun seri akan terhubung melalui satu jalur, sehingga aliran arus listrik akan mengalir ke semua komponen. Pada rangkaian paralel, tegangan yang melewati tiap komponen adalah sama, dan total arus adalah jumlahan arus yang melewati tiap komponen.

Hambatan Total:
Seri: total hambatan resistor pada rangkaian seri sama dengan jumlahan masing-masing hambatan.

Paralel: jumlah kebalikan hambatan total rangkaian paralel sama dengan jumlah dari kebalikan hambatan tiap-tiap komponen (resistor).

Algoritma:
Algoritma HambatanListrik
    {dibaca 3 hambatan, ketiganya diinputkan oleh user dan HARUS lebihdari nol. Kemudian menampilkan pilihan 1 atau 2, jika memilih 1 maka menghitung hambatan secara seri, sedangkan 2 menghitung secara paralel}

Deklarasi:
    pil : integer
    r1, r2, r3, total : real

Deskripsi:
    repeat
        read(r1, r2, r3, pil)
    until(r1>0 and r2>0 and r3>0 and pil>0 and pil<3)
    
    if pil=1 then
        total <- r1 + r2 + r3
    else
        total <- 1 / ((1/r1) + (1/r2) + (1/r3))
    endif
    
    write(total)

Saya menggunakan perulangan repeat ... until ... dengan kondisi sampai seperti itu ( r1>0 and r2>0 and r3>0 and pil>0 and pil<3 ), ini saya gunakan agar nilai dari variabel r1, r2, r3, dan pil sesuai dengan spesifikasinya.

Source code:
#include <iostream>
//develop251.blogspot.com
using namespace std;

int main(){
    int pil;
    float r1, r2, r3, total;
    
    do{
        cout << "Masukkan R1 : "; cin >> r1;
        cout << "Masukkan R2 : "; cin >> r2;
        cout << "Masukkan R3 : "; cin >> r3;
        cout << "Hitung? 1=Seri 2=Paralel : "; cin >> pil;
    }while(!(r1>0 and r2>0 and r3>0 and pil>0 and pil<3));
    
    if(pil==1){
        total = r1 + r2 + r3;
    }else{
        total = 1 / ((1/r1) + (1/r2) + (1/r3));
    }
    
    cout << "Total = " << total << endl;
    
    return 0;
}

Hasil:




Referensi:
  • https://id.wikipedia.org/wiki/Rangkaian_seri_dan_paralel

Algoritma Konversi Detik ke Jam Menit Detik (C++)

Algoritma:
Algoritma KonversiDetik
    {dibaca jam dalam detik, kemudian menampilkan dalam bentuk jam menit detik}

Deklarasi:
    type jam : record <j, m, d : integer>
    waktu : jam
    detik : integer

Deskripsi:
    read(detik)
    
    waktu.j <- detik/3600
    detik <- detik - (waktu.j * 3600)
    waktu.m <- detik/60
    waktu.d <- detik - (waktu.m * 60)
    
    write(waktu)

Dalam variabel detik, saya menggunakan tipedata integer, kenapa saya menggunakan integer? Saya memanfaatkan sifat dari tipedata tersebut, tipedata integer ketika dibagi dengan suatu nilai dan hasilnya mengandung pecahan, maka pecahan tersebut diabaikan atau tidak dipakai, dengan kata lain hasilnya dibulatkan ke bawah. Misalnya saja 5 / 4 = 1.25, tetapi ketika menggunakan tipe integer, 5 / 4 = 1, karena dibulatkan ke bawah atau pecahan diabaikan.

Source code:
#include <iostream>
//develop251.blogspot.com
using namespace std;

struct jam{
    int d, m, j;
};

int main(){
    jam waktu;
    int detik;
    
    cout << "Masukkan detik : "; cin >> detik;
    
    waktu.j = detik/3600;
    detik = detik - (waktu.j * 3600);
    waktu.m = detik/60;
    waktu.d = detik - (waktu.m * 60);
    
    cout << waktu.j << " jam " << waktu.m << " menit " << waktu.d << " detik" << endl;
    
    return 0;
}

Hasil:

Algoritma Operasi Penjumlahan, Pengurangan, Perkalian, dan Pembagian Pecahan (C++)


Pecahan (Fraksi) adalah istilah dalam matematika yang terdiri dari pembilang dan penyebut. Pada operasi penjumlahan dan pengurangan pecahan, penyebutnya harus disamakan dengan bilangan yang sama, sedangkan pada operasi perkalian caranya adalah pembilang dikali pembilang, penyebut dikali penyebut. dan dalam operasi pembagian, pecahan yang di kanan dibalikkan, setelah dibalikkan, tanda : diubah menjadi tanda kali (X), seperti 3/4 : 5/6 = 3/4 X 6/5 = 18/20 = 9/10.

Algoritma:
Algoritma OperasiPecahan
    {dibaca 2 buah pecahan (p1 & p2) dalam pembilang dan penyebut. Menampilkan hasil penjumlahan (tb), pengurangan (kr), perkalian (kl), dan pembagian (bg)}

Deklarasi:
    type pecahan : record <x, y : integer>
    p1, p2, tb, kr, kl, bg : pecahan

Deskripsi:
    read(p1, p2)
    
    tb.x <- (p1.x*p2.y) + (p2.x*p1.y)
    tb.y <- p1.y * p2.y
    kr.x <- (p1.x*p2.y) - (p2.x*p1.y)
    kr.y <- p1.y * p2.y
    
    kl.x <- p1.x * p2.x
    kl.y <- p1.y * p2.y
    bg.x <- p1.x * p2.y
    bg.y <- p1.y * p2.x
    
    write(tb, kr, kl, bg)

Source code:
#include <iostream>
//develop251.blogspot.com
using namespace std;

struct pecahan{
    int x, y;
};

int main(){
    pecahan p1, p2, tb, kr, kl, bg;
    
    cout << "Masukkan P1 x : "; cin >> p1.x;
    cout << "Masukkan P1 y : "; cin >> p1.y;
    cout << "Masukkan P2 x : "; cin >> p2.x;
    cout << "Masukkan P2 y : "; cin >> p2.y;
    
    tb.x = (p1.x*p2.y) + (p2.x*p1.y);
    tb.y = p1.y * p2.y;
    kr.x = (p1.x*p2.y) - (p2.x*p1.y);
    kr.y = p1.y * p2.y;
    
    kl.x = p1.x * p2.x;
    kl.y = p1.y * p2.y;
    bg.x = p1.x * p2.y;
    bg.y = p1.y * p2.x;
    
    cout << "Hasil jumlah = " << tb.x << '/' << tb.y << endl;
    cout << "Hasil kurang = " << kr.x << '/' << kr.y << endl;
    cout << "Hasil kali   = " << kl.x << '/' << kl.y << endl;
    cout << "Hasil bagi   = " << bg.x << '/' << bg.y << endl;
    
    return 0;
}

Hasil:



Referensi:
  • https://id.wikipedia.org/wiki/Pecahan