Monday, April 21, 2014

Contoh Program Stack Menggunakan Single Linked List

#include<stdio.h>
#include<stdlib.h>

typedef int ItemType;
typedef struct simpul node;
struct simpul
{
 ItemType item;
 node *next;
};

struct Stack{
 node *TOS;
};

node *baru;

void awal()
{
 puts("===================================================");
 puts("=         PROGRAM STACK DENGAN LINKED LIST        =");
 puts("===================================================\n");
 puts("NRP   :  7411030828");
 puts("Nama  :  M.Faishal Imam Choiri\n");
}

void allocate_node(ItemType x)
{
 baru = (node *) malloc (sizeof(node));
 if(baru==NULL)
 {
  printf("Alokasi Gagal\n");
  exit(1);
 }
 else
 {
  baru->item=x;
  baru->next=NULL;
 }
}

void inisialisasi(Stack *s)
{
 s->TOS = NULL;
}

int kosong(Stack *s)
{
 return s->TOS==NULL;
}

void push(Stack *s)
{
 baru->next = s->TOS;
 s->TOS = baru;
}

ItemType pop(Stack *s)
{
 node *temp;
 if(kosong(s))
 {
  printf("Data Kosong\n");
  return ' ';
 }
 else
 {
  temp = s->TOS;
  s->TOS = s->TOS->next;
  return temp->item;
  free(temp);
  temp=NULL;
 }
}

void tampil(Stack *s)
{
 Stack bantu;
 bantu = *s;
 printf("\nData Simpul ==>  ");
 while(bantu.TOS!=NULL)
 {
  printf("%d ", bantu.TOS->item);
  bantu.TOS = bantu.TOS->next;
 }
 printf("\n\n");
}

void main()
{
 int pilih, data;
 char lagi='y';
 Stack ujung;

 inisialisasi(&ujung);
 while(lagi=='y')
 {
  system("CLS");
  awal();
  //tampil(&ujung);
  printf("Menu Pilihan : \n");
  printf("1. Push\n");
  printf("2. Pop\n");
  printf("3. Tampilkan Stack\n");
  printf("\nPilih No          : ");
  scanf("%d", &pilih);
  switch(pilih)
  {
  case 1:
   printf("Masukkan data     : ");
   scanf("%d", &data);
   allocate_node(data);
   push(&ujung);
   break;
  case 2:
   pop(&ujung);
   break;
  case 3:
   tampil(&ujung);
   break;
  }
  fflush(stdin);
  printf("Lagi (y/t) ? ");
  scanf("%c", &lagi);
 }
}

Pengertian dan Fungsi dari Include, Void Main, Clrscr, Cout dan Getch

Pengertian dan Fungsi dari Include, Void Main, Clrscr, Cout dan Getch 

#include <constream.h>
void main()
{
clrscr()
cout <<”Mugi Rachmat”;
getch();
}
Keterangan:
  • Fungsi #include adalah sebuah prosesor pengarah yang mengatakan kepada kompiler untuk meletakan kode dari header file iostream.h kedalam program. Fungsi cout memerlukan file iostream.h.
  • Fungsi Main adalah nama judul fungsi. 
  • Fungsi Tanda () digunakan untuk mengapit argumen fungsi yaitu nilai yang akan dilewatkan ke fungsi. 
  • Fungsi Tanda { pada fungsi main() menyatakan awal eksekusi program. Adapun } pada fungsi main() menyatakan akhir eksekusi program. 
  • Fungsi cout (character out) dipakai untuk menampilkan text di layar monitor anda. Cout merupakan sebuah objek di dalam C++, yang digunakan untuk mengarahkan data ke dalam standar output (cetak pada layar)
  • Fungsi Tanda <<, yang diketahui sebagai operator pemasukan (insertion operators). Tanda tersebut mengatakan kepada kompiler agar segera menghasilkan output sesuai dengan input anda. 
  • ”Mugi Rachmat“ merupakan sebuah pernyataan yang digunakan untuk menampilkan tulisan yang terletak pada sepasang tanda petik ganda ke layar. Tulisan yang terletak pada sepasang tanda petik ganda disebut string. Setiap pernyataan harus diakhiri dengan tanda titik koma (;).
  • Fungsi Tanda semicolon “ ; ” digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon.
  • Fungsi clrscr() Pernyataan clrscr() digunakan untuk membersihkan layar.
  • Fungsi Getch() Dan getche() Yaitu suatu fungsi yang saat kita menginputkan sebuah karakter, maka akan ada penekanan enter secara otomatis, dan pindah ke baris selanjutnya. Fungsi getch() karakter yang dimasukkan tidak akan ditampilkan pada layar sehingga sering digunakan untuk meminta inputan berupa password. Fungsi getche() karakter yang dimasukkan akan ditampilkan pada layar.

Single Stack atau Stack Tunggal

Stack berarti sekumpulan data yang organisasi atau strukturnya bersifat tumpukan atau menyerupai tumpukan.
Secara ilustrasi, stack dapat digambarkan dengan gambar di bawah.
contoh gambar array stack
“Top “ merupakan pintu untuk keluar masuknya elemen – elemen stack. 3, 4, dan 5 merupakan suatu koleksi. Dari ilustrasi dapat digambarkan bahwa 5 merupakan elemen yang terakhir memasuki stack namun pertama keluar dari stack. Begitu sebaliknya dengan 1. 1 merupakan elemen pertama yang memasuki tumpukan namun terakhir saat keluar dari tumpukan.
c-stack
Di dalam gambar juga terlihat urutan masuk dan keluar yang berkebalikan. Elemen yang masuk pertama akan keluar erakhir dan sebaliknya. Prinsip ini telah dikenal dalam struktur data dengan nama prinsip LIFO (Last In First Out).
Di dalam pengembangannya, stack dapat dikelompokkan menjadi dua bagian. Dua bagian tersebut yaitu Single Stack dan Double Stack.

Single Stack
Single Stack atau Stack Tunggal adalah stack yang hanya terdiri dari satu koleksi. Bila stack ini direpresentasikan dengan array, maka pengisian dan penghapusan harus dilakukan bertahap dari indeks TOP-nya.

Di dalam proses single stack terdapat tiga macam proses utama, yaitu :
  1. Inisialisasi
  2. PUSH (Insert, Masuk, Simpan, Tulis)
  3. POP (Delete, Keluar, Ambil, Baca, Hapus)
INISIALISASI
Proses inisialisasi merupakan proses awal yang dilakukan untuk menyimpan indeks penunjuk stack. Roses ini dilakukan dengan intruksi :
4
top = -1;
PUSH
Proses push adalah proses memasukkan data baru ke stack indeks selanjutnya. Algoritma dasar proses PUSH adalah :
17
18
top = top + 1; 
stack[top] = variable_tampung;
POP
Proses pop adalah proses mengeluarkan / mengambil data dari stack dengan indeks yang disimpan pada variable top. Algoritma dasar proses POP adalah :
25
26
variable_tampung = stack[top];
top = top – 1;
Berikut ini adalah contoh code C++ dengan menggunakan struktur data Array Stack serta mengggunakan fungsi Push dan Pop.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "stdio.h"
void main(){
 int stack[100];
 int top=-1;
 int pilih, i;
 
 do{
  printf("MENU\n");
  printf("1. PUSH\n2. POP\n3. VIEW\n4. EXIT\n");
  printf("Pilih = "); scanf("%d", &amp;pilih); //aslinta tanda "dan" aja,jdi ada amp karena diconvert sama wpnya
 
  switch(pilih){
   case 1://push
    if (top > 100){
     printf("Stack penuh!\n");
    }else{
     printf("Data = "); scanf("%d", &amp;stack[top+1]);
     top++;
    }
    break;
   case 2://pop
    if (top < 0){
                                  printf("Stack kosong!\n");                                                                    }else{
       printf("Data keluar = %d\n", stack[top]);        
                                  top--;      
                                 }                                 
                                 break;
                        case 3://view
                                for(i=top; i<=0; i--){
     printf("%d", stack[i]);
     printf("\n");
                                }
    break;
   case 4:
    printf("Exit…\n");
    break;
    }
  }while (pilih!=4);
}
Thats All

Wednesday, April 9, 2014

Tujuan dan Fungsi Arsitektur dan Organisasi Komputer


  1. Arsitektur komputer adalah ilmu yang mempelajari atribut-atribut yang memiliki dampak langsung pada eksekusi logis sebuah program dan komponen komputer.
  2. Set instruksi, jumlah bit yang digunakan untuk merepresentasikan bermacam-macam jenis data
(misalnya: bilangan, karakter), mekanisme I/O, dan teknik-teknik pengalamatan memori.

 

Fungsi adalah operasi masing-masing komponen sebagai bagian dari struktur
Fungsi-fungsi komputer adalah:
Pengolahan data
Penyimpanan data
Pemindahan data 
- Pengendalian

PENGENALAN C++ Bagian 1


1.1 SEJARAH C++

Bahasa C++ diciptakan oleh Bjarne Stroustrup di AT&T Bell
Laboratories awal tahun 1980-an berdasarkan C ANSI (American National
Standard Institute). Pertama kali, prototype C++ muncul sebagai C yang
dipercanggih dengan fasilitas kelas. Bahasa tersebut disebut C dengan kelas
( C wih class). Selama tahun 1983-1984, C dengan kelas disempurnakan
dengan menambahkan fasilitas pembebanlebihan operator dan fungsi yang
kemudian melahirkan apa yang disebut C++. Symbol ++ merupakan operator
C untuk operasi penaikan, muncul untuk menunjukkan bahwa bahasa baru ini
merupakan versi yang lebih canggih dari C.
Borland International merilis compiler Borland C++ dan Turbo C++.
Kedua compiler ini sama-sama dapat digunakan untuk mengkompilasi kode
C++. Bedanya, Borland C++ selain dapat digunakan dibawah lingkungan
DOS, juga dapat digunakan untuk pemrograman Windows.
Selain Borland International, beberapa perusahaan lain juga merilis
compiler C++, seperti Topspeed C++ dan Zortech C++.
Contoh Program C :
# include <stdio.h>
Main ( )
{
Char pesan [ ] = “Hai, C programmers !” ;
Printf (pesan) ;
Return 0 ;
}
Contoh Program C++ :
# include <iostream.h>
Main ( )
{
Char pesan [ ] = “Hai, C programmers !” ;
Cout << pesan ;
Return 0 ;
}
1.2 TENTANG C++
C++ diciptakan untuk mendukung pemrograman berorientasi pada
objek (Object Oriented Pragramming/OOP) yang tidak dimiliki C. sementara C
merupakan bahasa pemrograman terbaik dilingkungannya, bahasa ini tidak
T. Pemrograman Terstruktur 2 ( 1 ) Page 2 of 6
memiliki kemampuan OOP. Reputasi C tidak diragukan lagi dalam
menghasilkan program .EXE berukuran kecil, eksekusi yang cepat,
antarmuka (interfacing) yang sederhana dengan bahasa lain dan fleksibilitas
pemrograman. Apa yang membuat C tampak sukar dipelajari mungkin karena
tiadanya pemeriksaan tipe. Sebagai contoh, dapat mencampur bilangan bulat
dengan string untuk menghasilkan karakter. Namun, justru dsitu letak
fleksibilitas C, dapat mengolah data C sebebas mengolah data dalam bahasa
assembly.
1.3 BORLAND C++
Dibandingkan compiler C++ yang lain, Borland C++ memiliki
keunggulan terutama dalam hal kecepatan dan efisiensi kompilasi. Disamping
itu, Borland C++ mendukung beberapa system operasi yaitu DOS, Windows
16bit (Window 3.0) dan windows 32 bit (Windows NT). Meskipun demikian
compiler Borland C++ juga memiliki kelemahan bila dibandingkan compiler
C++ yang lain, misalnya : pemrograman dengan Borland C++ terutama yang
menyangkut tampilan jauh lebih sulit daripada pemrograman dengan
Microsoft Visual C++.
1.4 STRUKTUR BAHASA C++
Program C maupun C++ selalu tersusun dari 4 (empat) bagian utama, yaitu :
1. Bagian komentar yang ditandai dengan symbol // dan pasangan /* … */
2. Bagian pengarah compiler yang ditandai dengan symbol #
3. Bagian deklarasi
4. Bagian definisi
1.4.1 BAGIAN KOMENTAR
Program yang baik pada umumnya diberi komentar yang akan membantu
orang lain maupun pembuat program itu untuk memahami program yang
dibuat. Dalam C atau C++ setiap tulisan yang diapit oleh symbol /* … */ atau
setiap baris yang dimulai dengan symbol // dianggap komentar. C++ tidak
mengizinkan komentar bersarang ( nested comment), namun Borland C++
lebih fleksibel dalam hal ini.
Contoh C++ menggunakan komentar:
/* FIRST.CPP */
/* Program C++ pertamaku */
// Praproses
# include <iostream.h>
Void main ( )
{
Char pesan [ ] = “Hello, C++ programmers!” ;
T. Pemrograman Terstruktur 2 ( 1 ) Page 3 of 6
Cout << pesan ;
Return 0 ;
}
Pada Borland C++ dapat menggunakan komentar bersarang asalkan opsi cek
Nested comments pada menu Options/Compiler/Source dipilih.
1.4.2 BAGIAN PENGARAH KOMPILER
Contoh program C++ :
# include <iostream.h>
Void main ( )
{
Char pesan [ ] = “Hello, C++ programmers!” ;
Cout << pesan ;
Return 0 ;
}
Merupakan statement praprosesor, disebut juga pengarah compiler karena
berfungsi mengatur proses kompilasi.
IOSTREAM.H merupakan file program yang mengandung deklarasi kelaskelas
yang diperlukan oleh objek cout. File-file dengan ekstensi .H yang berisi
deklarasi fungsi-fungsi standar C ini, disebut secara umum sebagai file
header.
Beberapa pengarah compiler adalah :
1. # define
2. # include
3. # if, # else, # elif, # endif
4. # ifdef, # ifndef
1.4.2.1 PENGARAH KOMPILER # DEFINE
Untuk mendefinisikan suatu pengenal / konstanta yang nantinya akan
digantikan oleh praprosesor saat program dikompilasi.
Contoh Program :
# define SIZE 30
Int array [SIZE] ;
For (register int i = 0 ; i < SIZE ; i++)
{
Cout << array [ i ] ;
}
T. Pemrograman Terstruktur 2 ( 1 ) Page 4 of 6
1.4.2.2 PENGARAH KOMPILER # INCLUDE
Berfungsi membaca file program tertentu dan mengikutsertakan file tersebut
dalam proses kompilasi. Nama file yang dimaksud harus diapit symbol ‘ < ‘
dan ‘ > ‘ atau tanda kutip dua ( “ … “ ).
1.4.2.3 PENGARAH KOMPILER # IF, # ELSE, # ELIF, # ENDIF
Digunakan untuk memilih bagian program yang akan dikompilasi. Kompilasi
cari ini disebut kompilasi bersyarat dan program yang baik biasanya
memanfaatkan teknik ini.
1.4.2.4 PENGARAH KOMPILER # IFDEF, # IFNDEF
Digunakan juga dalam kompilasi bersyarat. # Ifdef dapat dibaca : ‘jika
didefinisikan’ dan # ifndef dapat dibaca : ‘jika tidak didefinisikan’.
Pengarah compiler ini sering digunakan untuk menandai bahwa suatu file
sudah diikutsertakan dalam kompilasi
1.4.3 BAGIAN DEKLARASI DAN DEFINISI
Semua program C pada dasarnya tersusun dari rangkaian
pemanggilan fungsi yang bekerja atas sekelompok data. Selain pemanggilan
fungsi, program C mengandung komponen lain yang disebut statement.
Statement C ada dua, yaitu : statement yang tidak dapat dieksekusi / non
executable ( bila dikompilasi tidak menghasilkan kode objek dan biasanya
digunakan untuk mengatur alur program), dan statement yang dapat
dieksekusi / executable (bila dikompilasi akan menghasilkan kode objek).
Setiap pemanggilan fungsi maupun statement executable dalam C harus
diakhiri dengan tanda titik koma ( ; ).
Contoh program C++:
# include <iostream.h>
Void main ( )
{
Char pesan [ ] = “Hello, C++ programmers!” ;
Cout << pesan ;
Return 0 ;
}
Dalam contoh program C++ diatas, Return merupakan contoh
statement executable yang menginstruksikan agar suatu fungsi
mengembalikan nilai balik tertentu. Contoh statement non executable adalah :
If, else, dan while.
T. Pemrograman Terstruktur 2 ( 1 ) Page 5 of 6
Main ( ) merupakan contoh fungsi, sedangkan pesan adalah contoh
data. Baik data maupun fungsi harus dideklarasikan. Data perlu
dideklarasikan agar compiler tahu berapa byte memori yang harus disediakan
untuk data yang bersangkutan, sedangkan fungsi perlu dideklarasikan agar
compiler dapat memeriksa ketepatan pemanggilan fungsi yang bersangkutan.
Deklarasi fungsi sering disebut pula prototype fungsi.
1.5 INPUT DAN OUTPUT
Di ANSI C, operasi input dan output dilakukan dengan menggunakan
fungsi-fungsi yang ada di header file stdio.h. contohnya untuk input dan
output ke layer monitor digunakan perintah seperti printf, scanf, putch, dsb.
Untuk input dan output ke file digunakan perintah seperti fread, fwrite, fputc,
dsb.
C++ mempunyai teknik input dan output yang baru, yaitu :
menggunakan stream. Header file untuk input dan output stream adalah
iostream.h dan beberapa file lain, seperti strstrea.h, fstream.h, dan
constrea.h.
Stream adalah suatu logika device (peralatan logika) yang
menghasilkan dan menerima informasi atau suatu wadah yang digunakan
untuk menampung keluaran dan menampung aliran data. Stream adalah
nama umum untuk menampung aliran data (contoh : file, keyboard, mouse),
maupun untuk keluaran (contoh : layer, printer).
Dalam C++ input berarti membaca dari stream dan output berarti
menulis ke stream.
Bentuk Umum Output operator :
Cout << ekspresi ;

Bentuk umum Input operator :
Cin >> variable ;
Dalam C++, menggunakan escape sequences untuk
merepresentasikan suatu karakter yang tidak terdapat dalam tradisional
symbol. Beberapa diantaranya :
\ n : linefeed / baris baru
\ b : back space
\ “ : petik ganda
T. Pemrograman Terstruktur 2 ( 1 ) Page 6 of 6
Contoh program versi ANSI C :
# include <stdio.h>
Void main ( )
{
Int x ;
Printf ( “Masukkan sebuah bilangan : \n” ) ;
Scanf ( “ %d ”, &x ) ;
Printf ( “Bilangan yang dimasukkan adalah %d\n “, x ) ;
}
Contoh program versi C++ :
# include <iostream.h>
Void main ( )
{
Int x ;
Cout << “Masukkan sebuah bilangan : ” << endl ;
Cin >> x ;
cout << “Bilangan yang dimasukkan adalah “ << x << endl ;
}
Contoh Program untuk input dan output :
# include <iostream.h>
Main ( )
{
Int a ;
Cout << “masukkan suatu bilangan :” ;
Cin >> a ;
Cout << “nilai tersebut ditambah 1 = ‘ << a+1 ;
Return 0 ;
}