Showing posts with label bahasa c. Show all posts
Showing posts with label bahasa c. Show all posts

Sunday, 1 May 2011

Contoh Program Stack Memakai Array dalam Bahasa C

#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", &pilih);
switch(pilih)
{
case 1://push
if (top > 100)
printf("Stack penuh!\n");
else
{    printf("Data = "); scanf("%d", &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);
}

Artikel terkait:
Stack Array Java
Stack Linked List Java

Monday, 11 May 2009

Contoh Program Queue Menggunakan Array Bahasa C

#include "stdio.h"
void main()
{ int queue[5];
int depan = -1;
int belakang = -1;
int pilihan, data, i;

do{
printf("MENU\n");
printf("1. ENQUEUE\n2. DEQUEUE\n3. VIEW\n4. EXIT\n");
printf("Pilihan = "); scanf("%d", &pilihan);
switch (pilihan)
{
case 1: //enqueue
//apakah queue belum penuh?
if (belakang < 4 )
{ printf("Data Masuk = "); scanf("%d", &data);
queue[belakang+1] = data;
belakang++;
if (belakang == 0)
depan = 0;
}
else
printf("Queue penuh!\n");

break;
case 2: //dequeue
//apakah queue belum kosong?
if (depan <= belakang)
{ printf("Data keluar = %d\n", queue[depan]);
depan++;
}
else
printf("Queue kosong!\n");
break;
case 3:
for(i=depan; i<=belakang; i++)
printf("%d ", queue[i]);
printf("\n");
break;
}
}while (pilihan != 4);
}

Artikel terkait:
Queue dengan Liked List
Queue Array Java
Queue Linked List Java
Queue Library Java

Tuesday, 5 May 2009

Contoh Program Double Linked List dalam Bahasa C

#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
struct node{
struct node *previous;
int info;
struct node *next;
};
typedef struct node *simpul;

void main()
{
simpul baru, head=NULL, tail=NULL, temp;
int pilih;

do
{
printf("MENU\n");
printf("1. Insert Depan\n");
printf("2. View\n");
printf("3. Search\n");
printf("4. Delete Depan\n");
printf("PILIH: ");
scanf("%d", &pilih);
switch(pilih)
{
case 1:
int data;
printf("Data Masuk: ");
scanf("%i", &data);
baru = (simpul) malloc(sizeof (struct node));
baru->info = data;
baru->next = NULL; //tidak menuju simpul mana2
baru->previous = NULL;
if (head == NULL) //khusus simpul pertama LL
{
head = baru; //pointer head, tail, baru sama
tail = baru;
}
else //untuk simpul2 berikutnya
{
baru->next = head;
head->previous = baru;
head = baru;
}
break;
case 2:
printf("Dari HEAD\n");
temp = head; //tampilkan mulai dr depan
while(temp!=NULL) //ulangi sampai temp bernilai NULL
{
printf("%i ", temp->info);
temp = temp->next; //geser temp ke belakang
}
printf("\nDari Tail\n");
temp = tail; //tampilkan mulai dr depan
while(temp!=NULL) //ulangi sampai temp bernilai NULL
{
printf("%i ", temp->info);
temp = temp->previous; //geser temp ke belakang
}
printf("\n");
break;
case 3:
int cari;
printf("Cari Angka: ");
scanf("%i", &cari);
temp = head;
while((temp!=NULL)&&(temp->info!=cari))
{
temp = temp->next;
}
if(temp != NULL && temp->info == cari)
printf("Data Ditemukan");
else //if(temp == NULL)
printf("Data Tidak Ditemukan");
printf("\n");
break;
case 4://hapus depan
temp = head;
head = head->next;
if (head != NULL)
head->previous = NULL;
if (head == NULL)
tail = NULL;
free(temp);
break;
}
}while (pilih!=5);
}

Monday, 20 April 2009

Contoh Program Linked List Sederhana dalam Bahasa C

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
typedef struct simpul {
char nama[20];
float nilai;
struct simpul *next_simpul;
} simpulku;
void main()
{ simpulku *simpul1, *simpul2, *simpul3, *simpul4, *temp;
//alokasikan memorinya dulu
simpul1 = (simpulku *)malloc(sizeof(simpulku));
simpul2 = (simpulku *)malloc(sizeof(simpulku));
simpul3 = (simpulku *)malloc(sizeof(simpulku));
//isi data masing2 simpul
strcpy(simpul1->nama, "Amin");
strcpy(simpul2->nama, "Budi");
strcpy(simpul3->nama, "Citra");
simpul1->nilai=90; simpul2->nilai=20;
simpul3->nilai=100;
simpul1->next_simpul = NULL;
//sambungkan link masing2 simpul
simpul1->next_simpul = simpul2;
simpul2->next_simpul = simpul3;
simpul3->next_simpul = NULL;
//tampilkan hasilnya, mulai dr simpul 1
temp = simpul1; //cara satu per satu
printf("%s, %f\n", temp->nama, temp->nilai);
temp = temp->next_simpul;
printf("%s, %f\n", temp->nama, temp->nilai);
temp = temp->next_simpul;
printf("%s, %f\n", temp->nama, temp->nilai);
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);

//skenario menambahkan simpul baru
simpul4 = (simpulku *)malloc(sizeof(simpulku)); //siapkan
strcpy(simpul4->nama, "Dewi");simpul4->nilai=80; //isi
simpul2->next_simpul = simpul4; //update link
simpul4->next_simpul = simpul3;
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
//menghapus simpul budi
simpul1->next_simpul = simpul4; //update link
free(simpul2); //hapus simpul
printf("\n");
temp = simpul1;
for(;temp!=NULL; temp=temp->next_simpul) //cara looping
printf("%s, %f\n", temp->nama, temp->nilai);
}

Wednesday, 26 November 2008

Tipe Data Struct (Structure) dalam Bahasa C

Manfaat tipe data struct secara umum adalah untuk menyimpan paket (sekumpulan) data ke dalam satu buah nama variabel saja. Kumpulan data tersebut diikat sedemikian rupa menjadi satu. Kumpulan data di dalam sebuah struct bisa mempunyai tipe data dasar yang beraneka ragam. Kumpulan data dalam sebuah struct sangat dianjurkan membentuk sebuah kesatuan makna berkaitan dengan nama struct-nya. Misal, jika struct-nya bernama segitiga maka isi struct-nya antara lain: alas, tinggi, luas dan keliling. Konsep yang lebih lanjut dapat juga dalam sebuah struct terdapat struct lagi (nested struct). Contoh deklarasinya sbb:

struct mhs {
int NPM;
char nama[20];
float IPK;
} data[20];

Contoh di atas menunjukkan bahwa dibuat struct bernama "mhs" dengan isian data NPM, nama dan IPK. Sedangkan nama variabelnya adalah data. Dalam kasus tsb variabel data dibuat berupa array dengan ukuran 20. Artinya kita akan membuat array untuk menampung data struct mhs sebanyak 20. Konsep struct seringkali dikaitkan dengan array karena logikanya penyimpanan data itu tidak cukup satu item saja, tetapi lebih dari itu.

Contoh Program Sederhana:
Dalam operasi struct yang umum digunakan adalah: penambahan data, penampilan data, pencarian data, edit serta hapus data. Berikut ini contoh sederhananya yang saya sarankan untuk dimodifikasi dengan menambahkan menu program yang bisa diulang-ulang. Selamat mencoba :D

#include "stdio.h"
struct mhs
{ int npm;
float ipk;
int terhapus; //untuk menyimpan status data. bernilai 0 jika masih ada, dan 1 jika sdh dihapus
}data[3]; //array of struct dengan 3 elemen
void main()
{ int i, cari, ketemu;
printf("Isikan data\n");
for(i=0;i<3;i++)
{ printf("NPM = "); scanf("%d", &data[i].npm);
printf("IPK = "); scanf("%f", &data[i].ipk);
data[i].terhapus = 0;
};
printf("Isi data\n"); //menampilkan data
for(i=0;i<3;i++)
{ if (data[i].terhapus == 0) //tampilkan data yg belum terhapus
printf("NPM = %d\tIPK = %f\n", data[i].npm, data[i].ipk);

};
printf("Cari NPM = "); scanf("%d", &cari); ketemu = 0; //awal pencarian data
for(i=0;i<3;i++)
{ if (cari == data[i].npm)
ketemu = 1;
}
if (ketemu == 1)
printf("NPM ditemukan\n");
else
printf("NPM tidak ada\n");
printf("Cari NPM hapus = "); scanf("%d", &cari); //awal penghapusan data
for(i=0;i<3;i++) //cari dulu data yang akan dihapus. misal berdasar NPM
{ if ((cari == data[i].npm) && (data[i].terhapus == 0)) //cek juga status datanya
{ data[i].terhapus = 1; break; //sekali ketemu ubah status, keluar loop
}
}
printf("Isi data\n"); //menampilkan data setelah dihapus
for(i=0;i<3;i++)
{ if (data[i].terhapus == 0) //tampilkan data yang statusnya belum terhapus
printf("NPM = %d\tIPK = %f\n", data[i].npm, data[i].ipk);
};
printf("Cari NPM edit = "); scanf("%d", &cari); //awal edit data
for(i=0;i<3;i++) //cari dulu data yg akan di-edit. misal berdasar NPM
{ if (cari == data[i].npm && (data[i].terhapus == 0)) //cek juga status data
{ printf("Masukkan data baru:\n");
printf("NPM = "); scanf("%d", &data[i].npm);
printf("IPK = "); scanf("%f", &data[i].ipk);
data[i].terhapus = 0;
}
}
printf("Isi data\n"); //tampilkan lagi isi data yg telah berubah
for(i=0;i<3;i++)
{ if ((data[i].terhapus == 0))
printf("NPM = %d\tIPK = %f\n", data[i].npm, data[i].ipk);
};

}

NB: please, remember my last words in my last slide yesterday. Good Luck.

[caption id="attachment_1837" align="aligncenter" width="400"] Mohon Maaf atas Kekurangan Kami.
Mohon Doa & Dukungannya supaya Kami Menjadi Lebih Baik Lagi.
www.pkspiyungan.org
www.pks.or.id[/caption]