Sunday, November 20, 2011

Membalik Angka

     Jadi, berhubung judulnya "Informatika" mungkin saya akan membahas mata kuliah yang lebih menjurus kesana, yang ada di pikiran orang-orang kalau mendengar kata-kata itu. Yak, jadi langsung saja.
     Kemarin, 8 November 2011 saya di beri tugas responsi oleh asisten Pemrograman Terstruktur. Soalnya begini :

 Buatlah program untuk membalik angka dari nilai yang telah inputkan.
Contoh
Input              4367
Output           7634

Dan jawaban saya adalah (sfx:jeng jeng jeng jeng) :

#include <stdio.h>
//seperti biasa, untuk library-nya.

main ()
{
     int bilangan,out;
     scanf("%d",&bilangan);
     out=0;
     while(bilangan>0)
     {
        out=bilangan%10;
//persen disini maksudnya mod
        printf("%d",out);
        bilangan=bilangan-out;
        bilangan=bilangan/10;
     }
return 0;
}

Sunday, November 13, 2011

Menghitung Phytagoras

            Masih ingat kan pelajaran mengenai phytagoras? Tentang adanya 3 buah garis yang jumlah kuadrat sisi-sisi yang lain sama dengan kuadrat sisi terpanjangnya. Rumus umum yang digunakan adalah (a x a) + (b x b) = (c x c) dimana c merupakan sisi terpanjangnya. Nah, apa hubungannya dengan informatika? Di informatika, dimana ada masalah pasti ada solusinya, dimana ada rumus pasti ada programnya :P Jadi, setelah saya ngubek-ubek Sphere Online Judgement (SPOJ) yang notabene merupakan mainan anak informatika, saya menemukan salah satu soal spoj yang berhubungan dengan phytagoras. Jadi disini kita di wajibkan membuat program yang inputnya merupakan tiga bilangan sisi segitiga. Program ini harus bisa menghitung apakah nilai sisi-sisi tersebut menandakan dia merupakan phytagoras atau bukan. Perbandingan phytagoras yang paling umum adalah 3 : 4 : 5. Dari sinilah kita mengambil tolak ukurnya sehingga terciptalah suatu program buatan saya ini :D

#include <stdio.h>


main ()
{
     int a,b,c;
     scanf("%d%d%d",&a,&b,&c);
//a,b,c merupakan 3 sisi segitiga.


     while((a>0)&&(b>0)&&(c>0))
//disini kita menggunakan fungsi "and" (&&) karena apabila salah satu sisi bernilai nol maka dapat dipastikan sisi-sisi tersebut bukan phytagoras
     {
         if(c*c==a*a+b*b||b*b==a*a+c*c||a*a==b*b+c*c)
//nah, disini kita menggunakan fungsi "or" (||) karena akan mempermudah perhitungan, belum tentu angka yang dimasukkan akan berformat a<b<c, sehingga dengan adanya rumus-rumus ini yang dihitung menggunakan "atau" akan mengkover ke-error-an input. Karena dengan menggunakan "or" tidak harus semuanya benar tetapi cukup salah satu.
         {
            printf("right\n");
         }
         else
         {
             printf("wrong\n");
         }
     scanf("%d%d%d",&a,&b,&c);                    
//pada fungsi looping ini saya tambahkan scanf lagi agar program dapat digunakan tidak hanya untuk sekali perhitungan, tetapi bisa sebanyak yang user inginkan
     }
return 0;
}

Sekian dulu selingan koding dari saya. Kalau ada salah mohon di maafkan dan di benarkan :3

Saturday, November 5, 2011

UTS~~ UTS~~

        UTS (akhirnya) selesai. Belum sih, masih ada lanjutan UTS PT babak 2 hari senin besok+UTS kalkulus selasanya, tapi yah, lumayan lah beban udah tinggal dikit... (nggak juga, masih sibuk Lapen --"). Anyway, pas hari pertama UTS bener-bener nggak ngerti bakal kayak apa UTS pas kuliah ini dan sialnya lagi jam pertama langsung UTS Sisdig Щ(ºДºщ). Dan ini lah soal UTS perdana tersebut :

  1. Sederhanakan fungsi Boolean berikut menggunakan K-Map :
    • F = W'X(Z' + Y'Z) + X(W + W'YZ)
    • F = BC'D + B'C'D + A'BC + AB'C + ABC
    • F(A, B, C, D, E) = ∑(2, 3, 5, 6, 7, 10, 13, 15, 18, 21, 23, 26, 29, 31)
  2. Buatlah rangkaian kombinasional yang dapat mengkonversikan : (Catatan : Jawaban disertai dengan gambar rangkaian digital. Tabel kode-kode biner terdapat paling bawah)
    • BCD ke 2421
    • BCD ke Gray
  3. Dengan menggunakan sebuah decoder dan gerbang-gerbang NAND, buatlah rangkaian kombinasional dari 3 (tiga) fungsi boolean berikut : (Catatan : Jawaban disertai dengan ganmbar rangkaian digital)
    1. F1 = y'z' + xy' + yz'
    • F2 = (x’ + y)z
    • F3 = (y’ + x)z
    1. F1(A, B, C) = (3, 5, 6)
    • F2(A, B, C) = (1, 4)
    • F3(A, B, C) = (2, 3, 5, 6, 7)
  4. Buatlah rangkaian kombisional dengan menggunakan 8x1 MUX dari fungsi boolean F(A, B, C, D) = (0, 1, 6, 7, 9, 13, 14, 15). (Catatan : Jawaban disertai dengan gambar rangkaian digital)
  5. Sebuah 8x1 MUX memiliki input selektor dari variabel input X, Y, Z. Dan terdapat input data I0 s/d I7, yaitu I1 = I2 = 0; I3 = I7 = 1; I = I = W; dan I = I = W'. Tentukan fungsi booleannya!


    Digit Desimal
    BCD
    Gray
    2421
    0
    0000
    0000
    0000
    1
    0001
    0001
    0001
    2
    0010
    0011
    0010
    3
    0011
    0010
    0011
    4
    0100
    0110
    0100
    5
    0101
    0111
    1011
    6
    0110
    0101
    1100
    7
    0111
    0100
    1101
    8
    1000
    1100
    1110
    9
    1001
    1101
    1111