Pages - Menu

Saturday, May 5, 2012

Penggunaan SWITCH pada Bahasa C


Switch 
Pengkondisian suatu masalah bisa menggunakan statement IF-ELSE maupun SWITCH.
Di artikel sebelumnya saya telah menuliskan contoh penggunaan IF-ELSE, sekarang saya akan sedikit memberikan gambaran tentang penggunaan SWITCH.

kerangka SWITCH

switch ()
    {
       statemen_1;
       break;
       statemen_2;
       break;
       statemen_n;
       break;
       default;
    }

Oke langsung ke contoh programnya aja biar rada jelas :D

#include<stdio.h>
#include<conio.h>
int main()
{
    int choice, luas, a, t, p, l;
    printf("============================================\n");
    printf("==          Menghitung Luas               ==\n");
    printf("==    1. Luas Persegi / P.Panjang         ==\n");
    printf("==    2. Luas Segitiga                    ==\n");
    printf("==    3. Keluar Program                   ==\n");
    printf("============================================\n\n");
    printf("Silakan pilih luas yang akan Anda hitung: ");
    scanf("%d", &choice);

    switch (choice)
    {
        case 1 :
                    printf("Panjang : ");
                    scanf("%d", &p);
                    printf("Lebar : ");
                    scanf("%d", &l);
                    luas = p * l;
                    printf("Luas = %d", luas);
                    break;
        case 2 :
                    printf("Alas : ");
                    scanf("%d", &a);
                    printf("Tinggi : ");
                    scanf("%d", &t);
                    luas = 0.5 * a * t;
                    printf("Luas = %d", luas);
                    break;
        default :
                    clrscr();
                    printf("Terima kasih telah menggunakan program ini");
    }
return 0;
}

Penjelasan
switch (choice)
Statement ini digunakan untuk membuat sebuah ekspresi untuk menentukan statement yang akan dijalankan.
case 1 :
Statement ini akan apabila terpilih maka akan menjalankan beberapa ekspresi yg ada didalamnya.
default :
Statement ini adalah alternatif yang disediakan untuk user.
clrscr();
fungsi ini membersihkan layar dari string-string yang ditampilkan sebelumnya. Pemakain fungsi ini harus menggunakan file header conio.h

Jaringan Komputer



LAPORAN PEMAHAMAN PEMBUATAN APLIKASI  CHAT DENGAN C#

Untuk lebih muda di pahami, maka hal-hal yang perlu kita ketahui adalah dimana pengertian dari UDP dan TCP IP,  protokol, layer, dan fungsi-fungsinya :
1.      UDP
UDP singkatan dari User Datagram Protokol, yang merupakan sala satu protokol TCP/IP yang mendukung komunikasi yang unreliable, tanpa koneksi (connectionlles) antara host-host dalam sebuah jaringan yang menggunakan TCP/IP. Maksudnya connectionless dan tiadak ada kendala, windowing, serta fungsi untuk memasikan data diterima dengan benar, dan juga menyediakan fungsi yang sam dengan TCP. Seperti transfer data dan multiplexing, namun UDP hanya melakukan dengan byte tambahan yang lebih sedikit dalam header.
Protokol UDP
2.      TCP
TCP adalah singkatan dari Trinsimtion Control Protocol yang merupaka salah satu jenis protoko yang memungkinkan kumpulan dari komputer yang berkomunikasi dan bertukar data dalam suatu jaringan. TCP berorentasi connection-oriented dan dapat diandalkan karena terjadi handshaking sebelum mengirimkan data terlebih dahulu, sehingga kemungkinan terjadi kehilangan sedikit paket data.
3.      Layer TCP/IP antara lain adalah sebagai berikut:
a.       Application layer, berfungsi untuk menyediakan layanan atau servis ke user atau pengguna
b.      Transport Layer, berfungsi untuk mengirimkan pesan dari satu proses ke proses yang lainnya
c.       Network Layer, berfungsi untuk mengirimkan paket dari sumber aslinya ke tujuan akhirnya
d.      Data Link Layer, berfungsi untuk menyediakan link untuk data, kemudian memaketnya menjadi frame yang berhubungan dengan hardware  kemudian disalurkan melalui media
e.       Physical Layer, berfungsi untuk  mengirimkan bit dari data dari suatu node ke node yang lain, atau melalui kabel.

            Pada kegiatan dimana melakukan chat di perlukan protokol yang mana, terdapat pada layer transport yaitu TCP dan UDP. Dari Kedua protokol ini mempunyai kelebihan dan kekurangannya masing-masing.

            Kelebihan yang dimiliki oleh protokol TCP adalah dimana protokol ini akan melakukan proses handshaking terlebih dahulu sebelum mengirimkan data sehingga kemungkinan untuk kehilangan data pada saat pengiriman data menjadi lebih kecil, sedangkan pada protokol UDP tidak melakukan proses handshaking, sehingga pada proses pengiriman data kemungkinan untuk kehilangan paket data itu akan lebih besar.



Begitupun Keuntungan pada UDP, yang paling jelas dari TCP adalah byte tambahan yang lebih sedikit. Di samping itu, UDP tidak perlu menunggu penerimaan atau menyimpan data dalam memory sampai data tersebut diterima. Ini berarti, aplikasi UDP tidak diperlambat oleh proses penerimaan dan memory dapat dibebaskan lebih cepat.
            Pada pembuatan Tugas C# yang sampai saat ini sudah dipahami adalah sebagai brikut
Inisialisasi source code pada awal program ini adalah sebagai deklarasi dari objec, fungsi dan variabel. Dimana source code sebagai berikut:



A.    Bagian pengiriman pesan pada chat box adalah sebagai berikut:

            Dimana proses pengirimana dan penerimaan data adalah dalam bentuk byte dimana data yang dikirim tersebut di parse(di pisahkan) lalu dikirim. Sebaliknya pada penerimaan, data yang di terima dalam bentuk paket data yang talah di parse kemudian dijadikan satu.



            Pada bagian source code ini adalah untuk melakukan chat dimana ketika kita menekan tombol SEND, maka tulisan atau karakter yang kita tuliskan akan terkirim ke chat box yang tersedia. Proses yang dilakukan adalah ketika checkBox1 dipilih, maka akan melakukan proses broadcast isi chat yang telah kita tulis, ini dapat dilihat dari source code dibawah ini;



Sintax ini merupakan sebuah kontruktor dari TCP client, yang berisikan spesifikasi IP local yang digunakan. Dan dapat digunakan jika kita memiliki lebih dari satu network atau melakukan proses broadcast.


Source code diatas berfungsi untuk melakukan pengiriman data hanya pada ip yang terhubung ke client ini saja yang bisa melakukan proses pengiriman data dengan menggunakan port yang sudah di tentukan.

            Source code digunakan untuk memilih jenis protokol yang digunakan. Pada aplikasi ini menggunakan jenis protokol UDP.

            Pada proses selanjutnya adalah input nama user. Untuk nama user, akan dirubah ke kode ASCII yang akan diletakkan pada variable data. Jika panjang dari variable data kecil dari 20, maka nilai a yang merupakan variable penampungan sementara akan bernilai sejumlah dari panjang data nama. Dan jika panjang data lebih dari 20, maka data yang dimasukkan ke dalam variable a tetap 20. Jika kita ingin memperpanjang nama yang ingin dimasukkan kita dapat mengubah ukuran byte maksimal (lebih dari 20) yaitu pada bagian inisialisasi data nama [20] ini bermaksud nama yang dimasukkan tidak lebih dari 20. Yang kemudian data a tadi akan digunakan untuk memasukkan datanya ke dalam buffer datanama[i]. berikut ini adalah sintaxnya.
Setelah dataNama dihitung, selanjutnya adalah melakukan perhitungan tulisan yang telah dimasukkan. source codenya adalah sebagai berikut;
Sebelum mengirimkan data, data yang diinputkan kedapam richTextBox2 akan di ubah menjadi nilai ASCII. Dan bufferkirim[0] pada array 0 bernilai 0. Pada bufferkirim ini nantinya akan berisikan nama user dan tulisan yang telah diisi oleh user. 


   B.    Bagian Audio


Untuk source code di atas, menyiapkan atau mengaktifkan prangkat output serta persiapan untuk perekaman data atau suara saat tombol start di klik. Dan jika tidak ada perangkat output tidak tersedia atau tidak terdeteksi maka muncul sebuah pesan eror. 


Untuk source code di atas adalah dimana mengaktifkan dan menyiapkan perangkat input pada saat tombol Start Send di klik dan siap untuk mengirimkan data berupa suara. Jika disaat perangkat input tidak tersedia atau tidak dideteksi maka akan muncul pesan eror. Dan juga, pesan Eror akan muncul jika IP atau Port targer atau tujuan salah saat di masukkan.selanjutnya  jika tidak ada lagi pesan eror maka perangkat input (Mic) siap digunakan untuk mengirim suara.


Selanjutnya adalah untuk pengiriman suara ke target atau tujuan maka data yang tadinya dalam bnetuk suara dikoversi atau di rubah menjadi byte, berupa paket-paket data lalu di kirim.


Pada source code ini, dimana data di terima berupa byte dalam bentuk paket-paket data yang diconversi menjadi data suara, dan selanjutnya hasil conversi tadi di keluarkan pada perangkat output berupa speaker, atau hadset.



Operator Pada Bahasa C++

Operator 


Pada bahasa pemograman C++, operator yang disediakan berupa keyword atau karakter khusus. Operator-operator ini cukup penting untuk diketahui, karena merupakan salah satu dasar bahasa C++.

Assignation (=)
Operator Assignation digunakan untuk memberikan nilai ke suatu variabel. contohnya : 
                   x = 10

untuk memberikan nilai integer 10 ke variabel a. Sisi kiri operator disebut lvalue (left value) dan sisi kanan disebut rvalue (right value). lvalue harus selalu berupa variabel dan rvalue atau sisi kanan dapat berupa konstanta, variabel, hasil dari suatu operasi atau kombinasi dari semuanya.

Contoh :
              

Aritmatic Operator (+,  -,  *,  /,  %)


IIncrease (++) and Decrease (--)

Contoh:
              i++; adalah sama dengan i+1
              j--; adalah seama dengan i-1

Operator Increase dan Decrease dapat digunakan sebagai prefix atau suffix. Dengan kata lain dapat dituliskan sebelum identifier variabel (++a) atau sesudahnya (a++). operator increase yang digunakan sebagai prefix (++a), Perbedaannya terlihat pada tabel dibawah ini :

Pada contoh 1, B ditambahkan sebelum nilainya diberikan ke A. Sedangkan contoh 2, Nilai B diberikan terlebih dahulu ke A dan  B ditambahkan kemudian.




Relational operators ( ==, !=, >, <, >=, <= )
Untuk mengevaluasi antara 2 ekspresi, dapat digunakan operator Relasional. Hasil dari operator ini adalah nilai Boolean yaitu hanya berupa True atau False, atau dapat juga dalam nilai int, 0 untuk mereprensentasikan "false" dan 1 untuk merepresentasikan "true".  Operator-operator relasional pada C++   :



Contoh : 



Contoh, misalkan a=2, b=3 dan c=6 :

Logic operators ( !, &&, || )

Operator ! equivalen dengan operasi boolean NOT, hanya mempunyai 1 operand, berguna untuk membalikkan nilai dari operand yang bersangkutan. Contoh      :



Operator Logika && dan || digunakan untuk mengevaluasi 2 ekspresi dan menghasilkan 1 nilai akhir. mempunyai arti yang sama dengan operator logika Boolean AND dan OR. Contoh  :
Contoh : 


Conditional operator ( ? ).
operator kondisional mengevaluasi ekspresi dan memberikan hasil tergantung dari hasil evaluasi (true atau false). Sintaks :
                     condition ? result1 : result2  

Jika kondisi true maka akan menghasilkan result1 , jika tidak akan menghasilkan result1.



Bitwise Operators ( &, |, ^, ~, <<, >>).

Operator Bitwise memodifikasi variabel menurut bit yang merepresentasikan nilai yang disimpan, atau dengan kata lain dalam representasi binary.


Explicit type casting operators

Type casting operators memungkinkan untuk mengkonversikan tipe data yang sudah diberikan ke tipe data yang lain. Ada beberapa cara yang dapat dilakukan dalam C++, yang paling popular yaitu tipe baru dituliskan dalam  tanda kurung (). 
Contoh : 
Contoh diatas, mengkonversikan nilai 3.14 menjadi nilai integer (3). Type casting operator  yang digunakan  (int). Cara lainnya   :



Prioritas pada operator

Contoh :
             a = 5 + 7 % 2
Jawaban dari contoh diatas adalah 6. Dibawah ini adalah prioritas operator dari tinggi ke rendah       :



            



Monday, April 16, 2012

Bahasa C




Konstanta

Dalam bahasa C, konstanta dapat di buat menjadi dua cara, yaitu dengan memakai deklarasi cost,  atau dengan memanfaatkan fasilitas makro.

Format deklarasi konstanta ;

                Const [<type>] <nama> = <harga>;

Contoh :
            const double pi = 3.141592654;
       const float rad = 57.29577951;
       const umur = 40; //sama dengan const int umur = 40

Defenisi konstanta dengan kata kunci const baru ada dalam ANSI C.C “lama” (K&R) memakai preprossesor untuk mendefenisikan konstanta.

        # define pi 3.14
        #define rad 57.29
        #define umur 40

Perhatikan !!! bahwa preprosessor bekerja dengan melakukan substitusi makro (teks “umur” dalam ganti teks “40”, dst). Teks dalam string tidak disubstitusi.
Selain untuk menggantikan angka, dengan deklarasi konstantam karakter dan string (kumpulan karakter) juga dapat disubsitusi dengan suatu symbol-nama.

Tugas Architecture Computer

Program Komputer IAS
 
1. Buatlah program pada komputer IAS sebagai berikut, kemudian simpan program tersebut 
   di memori.
     -  Kalikan data di memori alamat 0551 dengan data memori alamat   0552
     -  Simpan hasil perkalian tersebut di memori (MSB di alamat 0556 dan 
        dialamat 0557)
     -  Jumlahkan data LSB hasil perkalian tersebut  dengan isi memori alamat 
       0553
     -  Simpan hasil penjumlahan tersebut di alamat 0559
 
Jawaban :

   1. LOAD MQ, M(0551)
      MUL M(0552)
   2. STOR M(0556)
      LOAD MQ
      STOR M(0557)
   3. ADD M(0553)
   4. STOR M(0559)

2. Program counter awal 0011
 
    a. Buat program dengan bahasa komputer IAS
    b. Gambar peta memori yang memperlihatkan isinya, dimana program dan data diletakkan.
    c. Tulislah urutan instruction cyrcle (cukup 3 siklus saja) fetch dan execution 
       cyrcle

Jawaban : 

a. Program Komputer IAS

b. Peta Memori 

Ket : 
         1, 2, 3, 4 adalah nilai


c. Instruction cycle

1.      Instruction cycle 1
Fetch 1 :
· PC = 0011
· PC MAR
· M(MAR) MBR
· MBR(20:39) IBR
· MBR(0:7) IR      : IR = LOAD to MQ
· MBR(8:19) MAR    : MAR = 0551
 
Execute 1:
· M(0551) MBR      : MBR = M(0551) = A
· MBR → MQ           : MQ = A

2.      Instruction cycle 2
     Fetch 2 :
· IBR (0:7) IR     : IR = MUL
· IBR (8:19) → MAR   : MAR = M(0552)
· PC = PC + 1
          Execute 2 : 
· M(0552) MBR     : MBR = MAR(0552) = B 
· MSB(MBR*MQ) AC  : AC = MSB(MBR*MQ)
. LSB(MBR*MQ) MQ  : MQ = LSB(MBR*MQ)

3.      Instruction cycle 3
      Fetch 3 :
· PC MAR           : MAR = PC = 0012
· M(MAR) MBR       : MBR = M(0012)
· MBR(0:7) IR      : IR = STOR
· MBR(8:19) MAR    : MAR = M(0556)
· MBR(20:39) IBR
 
Execute 3 :
· AC MBR        : MBR = AC = MSB(M(0552)*MQ)
· MBR M(MAR)    : M(0556) = MBR

4.      Instruction cycle 4
     Fetch 4 :
· IBR (0:7) IR   : IR = LOAD MQ to AC
· PC = PC + 1
 
Execute 4 :
· MQ AC  : AC = MQ = LSB(MQ*M(0552))

5.      Instruction cycle 5
     Fetch 5 :
· PC MAR           : MAR = PC = 0013
· M(MAR) MBR       : MBR = M(0013)
· MBR(0:7) IR      : IR = STOR
· MBR(8:19) → MAR    : MAR = M(0557)
· MBR(20:39) IBR
 
Execute 5 :
· AC MBR      : MBR = AC = LSB(M(0552)*MQ)
· MBR M(MAR)  : M(0556) = MBR
6.      
        Instruction cycle 6
     Fetch 6 :
· IBR (0:7) IR     : IR = ADD
· IBR (8:19) MAR   : MAR = M(0553)
· PC = PC + 1
 
Execute 6 :
· M(0553) MBR   : MBR = MAR(0553) = B
· MBR + AC AC

7.      Instruction cycle 7
      Fetch 7 :
· PC MAR          : MAR = PC = 0014
· M(MAR) → MBR      : MBR = M(0014)
· MBR(0:7) IR     : IR = STOR
· MBR(8:19) MAR   : MAR = M(0559)
 
 Execute 7 :
· AC MBR          : MBR = AC
· MBR M(MAR)      : M(0559) = MBR