12 October 2009

Array


Macam-macam Array :
  a. Array 1 Dimensi
      adalah sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan         diakses hanya melalui 1 indeks atau subskrip.
      Pendeklarasian :

                  nama_array[jumlah_elemen];

     Pengaksesan elemen :

     Misal : untuk program nilai_tes
     Nilai_tes[0] digunakan untuk mengakses elemen pertama dari nilai_tes.

  b. Array 2 Dimensi
      adalah sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan         diakses melalui 2 indeks atau subskrip yaitu indeks baris dan indeks kolom.
      Pendeklarasian :

                 nama_array[jumlah_elemen_baris][jumah_elemen_kolom];

      Pengaksesan elemen :

                 Data_lulus[0][1]=540;

      Merupakan instruktur memberikan nilai 540 ke dalam array data_lulus untuk indeks pertama (baris) = 0           dan indeks kedua (kolom)=1.

  c. Array Multidimensi
      adalah sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama dan elemen yang akan         diakses melalui banyak indeks atau subskrip. Array seperti ini biasa digunakan untuk matik, array 2                 dimensi juga termasuk kedalam array multidimensi.

      Pendeklarasian :

                   Nama_array[jumlah_elemen_x][jumlah_elemen_y][jumlah_elemen_z];

      Pengaksesan elemen :

                   Nama_var[indeks_satu][indeks_dua]....[indeks_n]

Perbedaan Array dengan tipe data yang lain :
Variabelnya disimpan secara berurutan dalam memori yang ditandai dengan memberikan index pada suatu nama variable.

Hal yang akan muncul bila sebuah array langsung diprint tanpa diberi nilai terlebih dahulu dalam C/C++ adalah
Terjadi error pada saat compile. Dan keluar tulisan dalam compiler ‘declaration of ‘card’ as multidimentional array must have bounds for all dimensions except the first’.

Hal yang terjadi bila sebuah array diakses melebihi ukuran yang ditetapkan sebelumnya dalam C/C++ adalah
Terjadi error pada saat compile. Dan keluar tulisan dalam compiler ‘intializer-strig for array of chars is too long’,

Array sebagai parameter
adalah suatu array dapat berfungsi sebagai parameter dalam suatu fungsi. Bedanya dengan parameter yang lain terletak pada fungsi array sendiri yang dapat menyimpan sejumlah nilai dengan tipe yang sama.

Cara mempassing array sebagai parameter fungsi adalah harus menggunakan passing dengan pointer.
Hal ini dikarenakan array sendiri adalah pointer.
Secara umum dapat dikatakan bahwa pengiriman variabel pointer dalam parameter fungsi harus selalu menggunakan passing dengan pointer. Pengubahan isi array pada fungsi sama dengan mengubah isi array yang ada difungsi utama.

Contoh :
     #include
     void printarray (int arg[], int length)
    {
         for (int n=0; n        cout << arg[n] << " ";
        cout << "\n";
    }
    int main ()
   {
        int firstarray[] = {5, 10, 15};
        int secondarray[] = {2, 4, 6, 8, 10};
       printarray (firstarray,3);
       printarray (secondarray,5);
       return 0;
   }

Intan Web Developer

A Wife and PhD candidate to-be in National Taiwan University of Science and Technology. Dreamer, Writer, Traveller, and Tech Addict. Like to travel everywhere and experience anything.

09 October 2009

Fungsi (Method)


Fungsi
     adalah suatu jenis pembagian program ke dalam bagian-bagian yang lebih kecil yang dinamakan subrutin ataupun subprogram. Yang mana pada Fungsi memiliki nilai balik ketika subrutin tersebut dipanggi. Beberapa tipe fungsi pada Fungsi berupa int, double, dan sebagainya.

Prosedur
     adalah jenis pembagian yang sama dengan Fungsi, hanya saja pada prosedur tidak menghasilkan nilai balik ketika subrutin dipanggil. Oleh karena itu prosedur sering juga disebut sebagai Fungsi tanpa nilai balik. Prosedur ditulis dengan bagian tipe fungsi berupa void (void berarti tanpa nilai balik).

Manfaat fungsi dalam pemrograman adalah :
    • Mempermudah pengelolaan atau pengembangan program mengingat setiap subrutin memiliki kode yang            relatif sedikit jika dibandingkan dengan kode program secara keseluruhan yang disusun tanpa melibatkan          subrutin.
    • Dapat digunakan untuk mengurangi jumlah kode akibat sejumlah kode yang sama digunakan beberapa kali        dalam program.
    • Menjadikan program lebih bersifat modular sehingga akan mudah dipahami dan dapat digunakan kembali,        baik untuk program itu sendiri maupun untuk program lain yang memiliki proses yang sama.

Implementasi fungsi dalam pemrograman :
      Dalam membuat fungsi kita harus mendefenisikan tipe data dari nilai yang akan dikembalikan.
      Bentuk umum dari fungsi adalah :

        tipe_data nama_fungsi(nilai_parameter1, nilai_parameter2, …);
       {
            statemen_yang_akan_dilakukan;
            …
            …
            return nilai_yang_akan_dikembalikan;
       }

Prototype function 
     adalah fungsi yang hampir sama dengan fungsi yang lain kecuali bahwa prototype function tidak ada statement fungsi yang biasanya dituliskan dalma kurung kawal, diakhiri dengan tanda semi colon, dan dalam argumen dituliskan tipe argumen, bersifat optional.
Fungsi :
untuk menjelaskan pada compiler mengenai
    • Tipe keluaran fungsi
    • Jumlah parameter
    • Tipe dari masing-masing parameter.
Bentuk umum :
    type name ( argument_type1, argument_type2, ...);


Nilai akhir fungsi adalah nilai yang keluar setelah fungsi dijalankan.

Implementasi dalam sebuah fungsi yang mengembalikan nilai rata-rata dari 3 buah data yang diberikan oleh user adalah

#include
#include

int a,b,c;

int main ()
{
  printf("Input 1 : ");
  scanf("%d",&a);
  printf("Input 2 : ");
  scanf("%d",&b);
  printf("Input 3 : ");
  scanf("%d",&c);

  int rata(int a, int b, int c);

  printf("Rata-rata : %d",rata(a,b,c));
  getch ();
}
int rata(int a,int b, int c)
{
  int rata=(a+b+c)/3;
}
 Parameter Formal  
adalah parameter yang dituliskan mengikuti pemanggilan prosedur.

Parameter Aktual
adalah parameter yang dideklarasikan mengikuti pendeklarasian program utama.

Cara melewatkan parameter ke dalam fungsi adalah :
a. Pemanggilan dengan nilai (call by value)
    Merupakan cara yang dipakai untuk seluruh fungsi buatan. Pemanggilan ini, nilai dari parameter actual akan       disalin ke parameter formal. Dengan cara ini, parameter actual tidak bias dirubah sekalipun nilai parameter        formal berubah.
b. Pemanggilan dengan referensi (call by reference)
    Merupakan upaya untuk melewatkan alamat dari suatu variable ke dalam fungsi.Cara ini dapat dipakai             untuk mengubah isi suatu variable di luar fungsi dengan pelaksanaan pengubahan dilakukan di dalam fungsi.

Variabel Globaladalah Variabel yang dikenal diseluruh daerah di dalam program, di dalam dan luar fungsi. Dideklarasikan di luar suatu blok statemen atau di luar fungsi-fungsi yang menggunakannya. 

Variabel Lokal
adalah Variabel yang hanya dikenal di daerah yang lokal saja, misalnya di dalam sebuah fungsi/prosedur tertentu saja dan tidak dikenal di daerah lainnya. Harus dideklarasikan di dalam blok yang bersangkutan dan variabel lokal akan dihapus dari memori bila proses sudah meninggalkan blok statemen letak variabel lokalnya.





Intan Web Developer

A Wife and PhD candidate to-be in National Taiwan University of Science and Technology. Dreamer, Writer, Traveller, and Tech Addict. Like to travel everywhere and experience anything.

06 October 2009

Kill Process (Penghentian Proses)


Sistem kill memanggil user dan user memproses sinyal pengiriman. Jika sebuah proses disiapkan untuk menangkap sinyal yang dimaksud, maka ketika sinyal itu datang, penangkap sinyal meulai berjalan. Jika proses tidak disiapkan untuk menangkap sebuah sinyal, maka ketika sinyal itu datang, sinyal itu membunuh proses.

Windows :
Pembentukan proses dimulai dengan adanya permintaan untuk sebuah proses baru dari sebuah aplikasi. Aplikasi memberikan perintah untuk membuat proses ke corresponding protected sub system, yang melampaui permintaan untuk eksekusi Windows. Eksekusi membuat sebuah objek proses dan mengembalikan handle ke object itu sendiri ke subsistem. Ketika Windows menciptakan sebuah proses, tidak secara otomatis membuat thread. Dalam kasus Win32, proses baru selalu dibuat dengan thread. Walau begitu, untuk sistem operasi ini, subsistem memanggil manajer proses Windows lagi untuk menciptakan thread untuk proses yang baru, menerima thread kembali dari Windows.Thread yang sesuai dan proses informasi kemudian kembali ke aplikasi. Dalam kasus 16-bit Windows dan POSIX, thread tidak mensuport. Meski begitu,untuk sistem operasi ini, subsistem memperoleh thread untuk proses baru dari Windows sehingga proses dapat diaktifkan kembali tetapi hanya untuk memproses informasi ke aplikasi. Kenyataannya adalah bahwa proses aplikasi yang diimplementasikan dengan menggunakan thread tidak visible / terlihat ke aplikasi.

Linux :
Sistem UNIX tradisional mendukung eksekusi thread tunggal per proses, sedangkan sistem UNIX modern biasanya menyediakan dukungan untuk beberapa kernel-level thread per process. Dengan sistem UNIX tradisional, versi lama dari kernel Linux tidak menawarkan dukungan untuk multithreading. Sebaliknya, aplikasi akan harus ditulis dengan satu set user-level fungsi library, yang paling populer yang isWhen kernel Linux melakukan sebuah proses beralih dari satu ke yang lain, itu memeriksa apakah alamat direktori halaman proses saat ini adalah sama dengan yang dari proses yang seharusnya telah dijadwalkan. Jika iya, maka mereka berbagi ruang alamat yang sama, sehingga konteks beralih pada dasarnya hanya melompat dari satu lokasi kode ke lokasi kode lainnya.
Meskipun proses kloning yang merupakan bagian dari kelompok proses yang sama dapat berbagi ruang memori yang sama, mereka tidak dapat berbagi tumpukan pengguna yang sama. Jadi clone() call menciptakan ruang stack terpisah untuk setiap proses.
Intan Web Developer

A Wife and PhD candidate to-be in National Taiwan University of Science and Technology. Dreamer, Writer, Traveller, and Tech Addict. Like to travel everywhere and experience anything.

05 October 2009

Fungsi Dasar Bahasa C


a) printf()
Merupakan fungsi output yang berguna untuk menampilakan informasi ke layar.
Contoh :
printf(“%d”,a);

b) scanf()
Merupakan fungsi input yang berguna untuk menyimpan berbagai tipe data yang
dimasukkan
Contoh :
Scanf(“%d”, &a)

c) puts()
Merupakan fungsi output yang berguna untuk menampilkan string sekaligus menambah
karakter newline.
Contoh :
puts(“Teknik Informatika Institut Teknologi Sepuluh November”);

d) gets()
Merupakan fungsi input yang berguna untuk memasukkan data sting dari keyboard.
Contoh :
gets(nama);

e) getche()
Merupakan fungsi input yang berguna untuk membaca data karakter dan
menampilkannya ke layar.
Contoh :
printf(“Masukkan sebuah karakter : “);
huruf1 = getche();

f) if
Merupakan statement yang digunakan untuk menyeleksi suatu kondisi tunggal. Bila
proses yang diseeleksi terpenuhi atau bernilai benar, maka pernyataan yang ada
dalam perintah if akan dikerjakan.
Contoh :
if(nilai >= 80)
{
printf(“Dapat Poin Plus-plus\n”);
}

g) if…else
Dalam statement if… else terdapat dua pernyataan. Bila kondisi yang diproses
bernilai benar maka pernyataan pertama yang akan dilaksanakan. Namun, jika
kondisinya salah maka selanjutnya akan mengerjakan pernyataan kedua
Contoh :
if (nilai >= 80)
{
printf(“Dapat Poin Plus-plus \n”);
}
else
printf(“Kumpulkan lagi Poin Anda\n”);

h) switch
Sebuah statement yang dapat digunakan untuk penulisan pernyataann kondisi yang
menggunakan bilangan bulat / karakter dalam proses perbandingannya dan tidak
merupakan suatu range panjang.
Bentuk umum dari switch…case adalah :
switch(nilai)
{
case nilai1 :
pernyataan1;
break;
case nilai2 :
pernyataan2;
break;
}

i) while
Penggunaan while akan mengeksekusi pernyataan jika kondisi bernilai benar. Jika
salah maka loop tidak akan terjadi dan akan menjalankan pernyataan selanjutnya
yang berada di luar loop while.
Contoh :
i = 1;
while (i<=10) { printf(“%d” nilai\n”,i); i++; } j) do…while Perulangan do…while pada dasarnya sama saja dengan struktur while, hanya saja pada while, seleksi berada di while yang letaknya di atas. Sementara do..while, seleksi while berada di bawah batas perulangan. Contoh : i = 10; do { printf(“%d” nilai\n”,i); i--; } while (i>0)

k) for
Digunkan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya.
Bentuk umum :
for (inisialisasi; kondisi; penambahan) {pernyataan}
Keterangan :
• Inisialisasi : berisi nilai awal, bersifat opsional, dan bias berisi satu
assignment atau lebih.
• Kondisi : berisi kondisi yang harus dipenuhi dan harus ada.
• Penambahan : berisi ekspresi yang akan mengubah nilai, bersifat opsional.
Contoh :
for(i = 1; i<= 10; i++)
{
printf(“%d nilai\n”, x);
}

l) break
Pernyataan yang digunakan untuk keluar dari suatu loop sebelum kondisi menjadi
false.
Contoh :
var i = 6
while (i<6)
{
printf(“%d nilai\n”, x);
if i==3;
break;
i++;
}

j) infinite loop
Rangkaian instruksi dari sebuah program computer yang berulang secara tidak
terbatas.
Contoh :
float x = 0.1;
while (x != 1.1)
{
x = x + 0.1;
printf("x = %f\n", x);
}

k) Finite loop
Rangkaian instruksi dari sebuah program komputer yang berulang secara terbatas.
Contoh :
x = 1;
while (x <= 10)
{
printf(“%d BAHASA C\n”, x);
x++;
}
Intan Web Developer

A Wife and PhD candidate to-be in National Taiwan University of Science and Technology. Dreamer, Writer, Traveller, and Tech Addict. Like to travel everywhere and experience anything.

Tipe Data dalam Bahasa Pemrograman C


Jenis - jenis Tipe Data :

a. Character ==> format tampilan %c
- char / signed char
-128 s.d. 127
- unsigned char
0 s.d. 255
Jenis data yang hanya menyimpan satu karakter, dan digunakan untuk menyimpan
karakter dalam kode ASCII
b. Integer ==> format tampilan %d / %i
- int / signed int /signed
-32768 s.d. 322767
- unsigned int/ unsigned
0 s.d. 65535
- long/long int/signed long/signed long int
-2147483648 s.d. 2147483647
- unsigned long/ unsigned long int
0 s.d. 4294967295
- short int
-128 s.d. 127
Jenis data yang merepresentasikan bilangan bulat.
c. Floating point Single precision ==> format tampilan %f / %g / %e
- float
3.4E-38 s.d. 3.4E38
Jenis data yang digunakan untuk merepresentasikan bilangan pecahan dalam
jangkauannya
d. Floating point double precision ==> format tampilan %d
- double
1.7E-308 s.d. 1.7E308
- long double
3.4E-4932 s.d. 1.1E4932
Jenis data yang digunakan untuk merepresentasikan bilangan pecahan dalam
jangkauannya
Intan Web Developer

A Wife and PhD candidate to-be in National Taiwan University of Science and Technology. Dreamer, Writer, Traveller, and Tech Addict. Like to travel everywhere and experience anything.

ASM


Informasi biner yang tersimpan dalam sistem digial data diklasifikasikan ke dalam 2 hal, yaitu :

a. Data

Memiliki ciri-ciri elemen-elemen dari informasinya yang dimanipulasi untuk menunjukkan aritmatika,logika, shift, dan proses penugasan data yang lainnya.

Operasi ini diimplementasikan dengan komponen digital seperti adder, decoder, multiplexer,counter, dan shif register.

b. Control information

Menyediakan sinyal komando yang mengawasi operasi-operasi yang bermacam-macam yang terdapat dalam seksi data yang bertujuan untuk menyelesaikan tugas dari proses meminta data.

Bentuk logika dari sistem digital dapat dibagi menjadi 2 bagian, yaitu :

a. Memperhatikan bentuk atau design dari digital circuit yang menunjukkan operasi dari proses data.

b. Memperhatikan bentuk atau design dari control circuit yang menentukan rangkaian dimana terdapat banyak aksi yang ditunjukka


Datapath berfungsi untuk memanipulasi data dalam register yang terdapat dalam syarat suatu sistem. Control logic berfungsi untuk memulai komando rangkaian ke dalam datapath. Menggunakan kondisi status drai datapath untuk menyediakan pilihan variable untuk menentukan rangkaian dari control signal.


ASM CHART

Adalah sebuah tipe yang special dari flowchart untuk mendeskripsikan operasi sekuensial dari sistem digital. Terbuat dari 3 elemen dasar, yaitu :

a. State box

Bentuk dari state box adalah persegi panjang yang bertuliskan operasi register dari output. Di state box terdapat symbol nama yang ditempatkan di atas pojok kiri dari box. Dan kode biner diletakkan di atas pojok kanan dari box. Contohnya adalah state memiliki nama T3 sebagai simbol dan kode biner yang akan ditentukan adalah 011. Di dalam box terdaat tulisan R 0 yang mengindikasikan bahwa register R harus diganti dengan 0 ketika sistem berada di state T3. START mengindikasikan sinyal output yang memulai operasi.

b. Decision box

Decision box mendeskripsikan efek dari input dalam subsistem control. Kondisi input yang akan dites tertulis di dalam box. Satu bagian keluar (exut path) diletakkan jika kondisi benar dan lainnya jika kondisi salah. Ketika kondisi input ditentukkan dengan nilai biner, 2 path diindikasikan oleh 1 dan 0.

c. Conditional box


ASM BLOCK

Terbentuk dari sebuah state box dan semua decision dan conditionla box yang tersambungkan dengan exit pathnya. Memiliki sebuah jalan masuk dan bebrapa nomor exit path yang direpresetasikan oleh struktur dari decision box. Terdiri dari satu atau lebih blok yang sambung menyambung.

Dalam ASM block tersebut terdapat 2 decision dan 1 conditional box. Tiap block dalam ASM chart mendeskripsikan state sistem selama interval nadi clock nya adala satu interval.

ASM chart sangat mirip dengan state diagram. Tiap state block sama dengan state dalam rangkaian sekuensial. Decision box sama dengan informasi biner yang tertulis di sepanjang garis yang terhubungkan dengan 2 state dalam state diagram.


TIMING CONSIDERATION

Timing untuk register dan flipflop dalam sistem digital dikontrol oleh generator master-clock, juga digunakan untuk mengimplementasikan control unit pada state machine. Jika sinyal input berubah secara tidak terkontrol oleh clock, maka disebut asynchronous input.

DESIGN EXAMPLE

Misalnya kita ingin membuat design sebuah sistem digital dengan 2 flip flop, E dan F, dan satu buah counter A 4-bit biner. Maka :

  1. Individula flip flop di A dinotasikan oleh A4, A3, A2, A1, dengan A4 membawa bit dengan perhitungan yang paling signifikan.
  2. A memulai sinyal S yang memprakarsai operasi sistem dengan membersihkan counter A dan flip flop F.
  3. Counter diinkremen oleh salah satu yang memulai dari detak clock berikutnya dan berlanjut dengan menginkremen sampai operasi berhenti.
  4. Bit A3 dan A4 dari counter ditentukan dengan operasi sbb :
    1. Jika A3 = 0, E diganti dengan 0 dan perhitungan berlanjut.
    2. Jika A3 = 1, E diset 1,Kemudian

- Jika A4=0, perhitungan berlanjut.

- Jika A4=1, F diset 1 pada detak clock berikutnya dan sistem berhenti melakukan perhitungan.

    1. Jika S = 0, sistem berhenti di initial state.
    2. Jika S = 1, operasi pembuangan tetap berlanjut.

Operasi rangkaiannya :

Counter

Flip Flop

Condition

State

A4

A3

A2

A1

E

F

0

0

0

0

1

0

A3 = 0, A4 = 0

T1

0

0

0

1

0

0

0

0

1

0

0

0

0

0

1

1

0

0

0

1

0

0

0

0

A3 = 1, A4 = 0

0

1

0

1

1

0

0

1

1

0

1

0

0

1

1

1

1

0

1

0

0

0

1

0

A3 = 0, A4 = 1

1

0

0

1

0

0

1

0

1

0

0

0

1

0

1

1

0

0

1

1

0

0

0

0

A3 = 1, A4 = 1

1

1

0

1

1

0

T2

1

1

0

1

1

1

T0


State Table :

Present-State

Present State

Input

Next State

Output

Symbol

C1

C0

S

A3

A4

G1

G0

T0

T1

T2

T0

0

0

0

X

X

0

0

1

0

0

T0

0

0

1

X

X

0

1

1

0

0

T1

0

1

X

0

X

0

1

0

1

0

T1

0

1

X

1

0

0

1

0

1

0

T1

0

1

X

1

1

1

1

0

1

0

T1

1

1

X

X

X

0

0

0

0

1




Intan Web Developer

A Wife and PhD candidate to-be in National Taiwan University of Science and Technology. Dreamer, Writer, Traveller, and Tech Addict. Like to travel everywhere and experience anything.