stack merupakan sebuah konsep dimana kita hanya bisa mengakses data yang terakhir masuk seperti halnya dalam sebuah tumpukan. sebuah stack di inisialisasikan dengan top sebagai ujung masuknya item dan juga keluarnya item.
Dalam stack terdapat operasi push unuk memasukkan data dan juga pop untuk mengeluarkan data. berikut operasi push dan juga pop
void push(char x)
{
stack[top+1]=x;
top++;
}
void pop()
{
temp=stack[top];
stack[top]=NULL;
top--;
}
Jumat, 25 Juni 2010
pembahasan linked list
konsep dasar linked list hampir sama dengan array. jika kita menggunakan indeks dalam array, maka dalam linked list kita akan menggunakan pointer. Pointer akan digunakan untuk menunjuk alamat lain sebuah data dalam linked list hingga terbentuk sebuah rantai data. sebuah linked list disusun dari struct, contoh
typedef struct simpul {
char nama[20];
float nilai;
struct simpul *next_simpul;
} simpulku;
di atas terdapat sebuah struct yang berisi nama,nilai, dan simpul *next yang merupakan sebuah pointer yang akan menunjuk ke simpul berikutnya, berikut gambaran sebuah linked list

dalam linked list juga terdapat head yang menunjuk ke simpul paling awal dan tail yang menunjuk simpul terakhir
typedef struct simpul {
char nama[20];
float nilai;
struct simpul *next_simpul;
} simpulku;
di atas terdapat sebuah struct yang berisi nama,nilai, dan simpul *next yang merupakan sebuah pointer yang akan menunjuk ke simpul berikutnya, berikut gambaran sebuah linked list
dalam linked list juga terdapat head yang menunjuk ke simpul paling awal dan tail yang menunjuk simpul terakhir
pembahasan searching
searching merupakan algoritma untuk mencari data dari kumpulan beberapa data. Ada macam2 algoritma searching, misalnya sequential searching dan binery searching.
1. Sequential searching
sequntial serching merupakan algoritma pencarian yang mencari secara sequential atau berurutan. Tiap2 index akan dicek dan jika data telah sama dengan data yang dicari maka pencarian akan dihentikan.
berikut algoritmanya
for (i = 0; i < n; i++)
if (key == data[i])
return (i); //return the index
return (-1); //key not found
n merupakan jumlah keseluruhan data. Data akan dicari secara berurutan sampai batas ke n. Di dalam looping terdapat fungsi if untuk mengecek apakah data tersebut sama. Jika sama maka fungsi akan mengenbalikan nilai i yang berarti data telah ditemukan
2. Binery searching
binery searching merupakan algoritma pencarian data dimana program akan mempersempit rung lingkup pencarian sampai hanya tersisa data yang dicari ataupun data tidak ditemukan. berikut algoritmanya
low = 0;
high = n – 1;
while (low <= high)
{ middle = (low + high)/2;
if (key == data[middle]
return(middle);
if (key < data[middle]
high = middle – 1;
else
low = middle + 1;
}
return(-1);
low merupakan variabel untuk indeks awal dan high untuk indeks terakhir. sedangkan middle merupakan indeks tengah yang di dapat dari penjumlahan low dan high dibagi 2.
berikutnya akan dicek apakah data yang dicari lebih besar dari data pada indeks middle atau lebih kecil atau juga sama. jika lebih besar maka low atau batas bawah akan dimulai dari middle + 1 dan jika lebih kecil maka high atau batas atas akan berakhir di middle -1. Proses ini akan terus berulang samapi data ditemukan ataupun data tidak ditemukan. ada 1 hal yang sangat penting dalam binery seearching yaitu data yang dicari sudah harus urut
1. Sequential searching
sequntial serching merupakan algoritma pencarian yang mencari secara sequential atau berurutan. Tiap2 index akan dicek dan jika data telah sama dengan data yang dicari maka pencarian akan dihentikan.
berikut algoritmanya
for (i = 0; i < n; i++)
if (key == data[i])
return (i); //return the index
return (-1); //key not found
n merupakan jumlah keseluruhan data. Data akan dicari secara berurutan sampai batas ke n. Di dalam looping terdapat fungsi if untuk mengecek apakah data tersebut sama. Jika sama maka fungsi akan mengenbalikan nilai i yang berarti data telah ditemukan
2. Binery searching
binery searching merupakan algoritma pencarian data dimana program akan mempersempit rung lingkup pencarian sampai hanya tersisa data yang dicari ataupun data tidak ditemukan. berikut algoritmanya
low = 0;
high = n – 1;
while (low <= high)
{ middle = (low + high)/2;
if (key == data[middle]
return(middle);
if (key < data[middle]
high = middle – 1;
else
low = middle + 1;
}
return(-1);
low merupakan variabel untuk indeks awal dan high untuk indeks terakhir. sedangkan middle merupakan indeks tengah yang di dapat dari penjumlahan low dan high dibagi 2.
berikutnya akan dicek apakah data yang dicari lebih besar dari data pada indeks middle atau lebih kecil atau juga sama. jika lebih besar maka low atau batas bawah akan dimulai dari middle + 1 dan jika lebih kecil maka high atau batas atas akan berakhir di middle -1. Proses ini akan terus berulang samapi data ditemukan ataupun data tidak ditemukan. ada 1 hal yang sangat penting dalam binery seearching yaitu data yang dicari sudah harus urut
source code sorting bubble
#include "stdio.h"
void bubble(char a[],char n)
{
char ss;
for(int i=0;i < n;i++)
{
for(int j=0;j < n-1-i;j++)
if(a[j] > a[j+1])
{
ss=a[j];
a[j]=a[j+1];
a[j+1]=ss;
}
}
for(int y=0;y < n;y++)
{
printf("%c",a[y]);
}
printf("\n\n");
}
void main()
{
char a[100];
int n=0;
printf("Masukkan angka=");
scanf("%s",&a);
for(int i=0;i <= 100;i++)
{
if(a[i]>1)n++;
}
bubble(a,n);
}
void bubble(char a[],char n)
{
char ss;
for(int i=0;i < n;i++)
{
for(int j=0;j < n-1-i;j++)
if(a[j] > a[j+1])
{
ss=a[j];
a[j]=a[j+1];
a[j+1]=ss;
}
}
for(int y=0;y < n;y++)
{
printf("%c",a[y]);
}
printf("\n\n");
}
void main()
{
char a[100];
int n=0;
printf("Masukkan angka=");
scanf("%s",&a);
for(int i=0;i <= 100;i++)
{
if(a[i]>1)n++;
}
bubble(a,n);
}
source code searching bnary
#include"stdio.h"
int npm[20];
int xx;
int key;
void SO(int a)
{
for(int i=0;i < a-1;i++)
for(int j=0;j < a-i-1;j++)
if(npm[j] > npm[j+1])
{
xx=npm[j];
npm[j]=npm[j+1];
npm[j+1]=xx;
}
}
int cari(int r)
{
int a=0;
int z=r;
int m;
int nilai=0;
while(a<=z && nilai==0)
{
m=(a+z)/2;
if(key == npm[m])
nilai=1;
else
if(key < npm[m])
z=m-1;
else
a=m+1;
}
if(nilai==1) return 1;
else
return 0;
}
void main()
{
int n;
int hasil;
printf("Brapa data yang ingin di masukkan=");
scanf("%d",&n);
for(int i=0;i < n;i++)
{
printf("\n\nAngka ke-%d=",i+1);
scanf("%d",&npm[i]);
}
for(int y=0;y < n;y++)
{
printf("%d,",npm[y]);
}
SO(n);
printf("\nMasukkan angka yang di cari=");
scanf("%d",&key);
hasil=cari(n);
if(hasil==1)
{printf("Data di temukan\n\n");}
else if(hasil==0)
{ printf("Data TIDAK di temukan\n\n");}
}
int npm[20];
int xx;
int key;
void SO(int a)
{
for(int i=0;i < a-1;i++)
for(int j=0;j < a-i-1;j++)
if(npm[j] > npm[j+1])
{
xx=npm[j];
npm[j]=npm[j+1];
npm[j+1]=xx;
}
}
int cari(int r)
{
int a=0;
int z=r;
int m;
int nilai=0;
while(a<=z && nilai==0)
{
m=(a+z)/2;
if(key == npm[m])
nilai=1;
else
if(key < npm[m])
z=m-1;
else
a=m+1;
}
if(nilai==1) return 1;
else
return 0;
}
void main()
{
int n;
int hasil;
printf("Brapa data yang ingin di masukkan=");
scanf("%d",&n);
for(int i=0;i < n;i++)
{
printf("\n\nAngka ke-%d=",i+1);
scanf("%d",&npm[i]);
}
for(int y=0;y < n;y++)
{
printf("%d,",npm[y]);
}
SO(n);
printf("\nMasukkan angka yang di cari=");
scanf("%d",&key);
hasil=cari(n);
if(hasil==1)
{printf("Data di temukan\n\n");}
else if(hasil==0)
{ printf("Data TIDAK di temukan\n\n");}
}
source code searching bnary
#include"stdio.h"
int npm[20];
int xx;
int key;
void SO(int a)
{
for(int i=0;i < a-1;i++)
for(int j=0;j < a-i-1;j++)
if(npm[j] > npm[j+1])
{
xx=npm[j];
npm[j]=npm[j+1];
npm[j+1]=xx;
}
}
int cari(int r)
{
int a=0;
int z=r;
int m;
int nilai=0;
while(a<=z && nilai==0)
{
m=(a+z)/2;
if(key==npm[m])
nilai=1;
else
if(key z=m-1;
else
a=m+1;
}
if(nilai==1) return 1;
else
return 0;
}
void main()
{
int n;
int hasil;
printf("Brapa data yang ingin di masukkan=");
scanf("%d",&n);
for(int i=0;i {
printf("\n\nAngka ke-%d=",i+1);
scanf("%d",&npm[i]);
}
for(int y=0;y {
printf("%d,",npm[y]);
}
SO(n);
printf("\nMasukkan angka yang di cari=");
scanf("%d",&key);
hasil=cari(n);
if(hasil==1)
{printf("Data di temukan\n\n");}
else if(hasil==0)
{ printf("Data TIDAK di temukan\n\n");}
}
int npm[20];
int xx;
int key;
void SO(int a)
{
for(int i=0;i < a-1;i++)
for(int j=0;j < a-i-1;j++)
if(npm[j] > npm[j+1])
{
xx=npm[j];
npm[j]=npm[j+1];
npm[j+1]=xx;
}
}
int cari(int r)
{
int a=0;
int z=r;
int m;
int nilai=0;
while(a<=z && nilai==0)
{
m=(a+z)/2;
if(key==npm[m])
nilai=1;
else
if(key
else
a=m+1;
}
if(nilai==1) return 1;
else
return 0;
}
void main()
{
int n;
int hasil;
printf("Brapa data yang ingin di masukkan=");
scanf("%d",&n);
for(int i=0;i
printf("\n\nAngka ke-%d=",i+1);
scanf("%d",&npm[i]);
}
for(int y=0;y
printf("%d,",npm[y]);
}
SO(n);
printf("\nMasukkan angka yang di cari=");
scanf("%d",&key);
hasil=cari(n);
if(hasil==1)
{printf("Data di temukan\n\n");}
else if(hasil==0)
{ printf("Data TIDAK di temukan\n\n");}
}
source code data karyawan dengan linked list
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "string.h"
struct node//struct
{
int nip;
char nama[20];//array
int gaji;
int umur;
struct node *next;//linked list
struct node *prev;
};
typedef struct node *simpul;
struct node simpulx[100];
struct node smpn;
simpul data, head=NULL, tail=NULL, temp;
int pilih;
int plh;
int tmpl;
int doble=0;
int n;
int jmlh=0;
int hpus;
void urut()
{
int i=0;
temp=head;
while(temp!=NULL)
{
simpulx[i].nip=temp->nip;
strcpy(simpulx[i].nama,temp->nama);
simpulx[i].gaji=temp->gaji;
simpulx[i].umur=temp->umur;
i++;
temp=temp->next;
}
for(int r=0;r < jmlh-1;r++)
for(int t=0;t < jmlh-1-r;t++)
{
if(simpulx[t].nip > simpulx[t+1].nip)//sorting untuk menampilkan secara urut
{
smpn=simpulx[t];
simpulx[t]=simpulx[t+1];
simpulx[t+1]=smpn;
}
}
printf("||NIP\t\t||Nama\t\t||Gaji\t\t||umur\t||");
for(int j=0;j<=100;j++)
{
printf("\n||%d\t||%s\t||%d\t||%d\t||",simpulx[j].nip,simpulx[j].nama,simpulx[j].gaji,simpulx[j].umur);
if(simpulx[j+1].nip<1)break;//cek apakah simpul berikutnya kosong, jika kosong looping di hentikan dg keyword 'break'
}
printf("\n\ntekan ENTER");
getch();
}
void nip()
{
printf("Masukkan nip yang di tampilkan=");
scanf("%d",&tmpl);
temp=head;
while(temp!=NULL && temp->nip!=tmpl)//searcing untuk mencari data yang akan di tampilkan
{
temp=temp->next;
}
if(temp!=NULL && temp->nip==tmpl)
{
printf("||NIP\t\t||Nama\t\t||Gaji\t\t||umur\t||");
printf("\n||%d\t||%s\t||%d\t||%d\t||",temp->nip,temp->nama,temp->gaji,temp->umur);
}else
{
printf("data tdk ditemukan");
}printf("\n\ntekan ENTER");getch();
}
void hapus()
{
simpul prev=NULL;
printf("Masukkan nip yang di hapus=");
scanf("%d",&hpus);
temp=head;
while(temp!=NULL && temp->nip!=hpus)//searching untuk mencari data yang di hapus
{
prev=temp;
temp=temp->next;
}
if(temp!=NULL && temp->nip==hpus)
{
if(temp->next != NULL && temp->prev != NULL)
{
prev->next = temp->next;
(temp->next)->prev=prev;
}
else if (temp->next == NULL)
{
prev->next = NULL;
}
else if (temp == head && head->next == NULL)
{
head = NULL;
}
else if (temp == head && head->next != NULL)
{
(head->next)->prev=NULL;
head = head->next;
}
free(temp); jmlh--;
printf("\ndata di hapus");
}else
{
printf("data tdk ditemukan");
}printf("\n\ntekan ENTER");getch();system("cls");
}
void insert()
{
data = (simpul) malloc(sizeof (struct node));
printf("NIP=");
scanf("%d",&n);
temp=head;
while(temp!=NULL)
{
if(temp->nip==n)doble=1;
temp=temp->next;
}
if(doble==0)
{
data->nip=n;
printf("\nNama=");
scanf("%s",&data->nama);
printf("\nGaji=");
scanf("%d",&data->gaji);
printf("\nUmur=");
scanf("%d",&data->umur);
data->next=NULL;
data->prev=NULL;
jmlh++;
if(head==NULL && tail==NULL)
{
head=data;
tail=data;
}else
{
data->prev=tail;
tail->next=data;
tail=data;
}
}else
{
printf("NIP sudah terdaftar");
}printf("\n\ntekan ENTER");
getch();
system("cls");
}
void view()
{
printf("1.tampil seluruh secara urut");
printf("\n2.tampil berdasarkan NIP");
printf("\nMasukkan pilihan=");
scanf("%d",&plh);
switch(plh)
{
case 1: urut();
break;
case 2: nip();
break;
default: printf("\nSALAH!!!");
}system("cls");
}
void main()
{
while(pilih!=4)
{
printf("1.insert data");
printf("\n2.hapus data");
printf("\n3.tampilkan");
printf("\n4.EXIT");
printf("\nMasukkan pilihan=");
scanf("%d",&pilih);
system("cls");
switch(pilih)
{
case 1: insert();
break;
case 2: hapus();
break;
case 3: view();
break;
case 4: printf("\nterima kasih\n\n");
break;
default: printf("\n\n SALAH!!\n");
}
}
}
#include "stdlib.h"
#include "conio.h"
#include "string.h"
struct node//struct
{
int nip;
char nama[20];//array
int gaji;
int umur;
struct node *next;//linked list
struct node *prev;
};
typedef struct node *simpul;
struct node simpulx[100];
struct node smpn;
simpul data, head=NULL, tail=NULL, temp;
int pilih;
int plh;
int tmpl;
int doble=0;
int n;
int jmlh=0;
int hpus;
void urut()
{
int i=0;
temp=head;
while(temp!=NULL)
{
simpulx[i].nip=temp->nip;
strcpy(simpulx[i].nama,temp->nama);
simpulx[i].gaji=temp->gaji;
simpulx[i].umur=temp->umur;
i++;
temp=temp->next;
}
for(int r=0;r < jmlh-1;r++)
for(int t=0;t < jmlh-1-r;t++)
{
if(simpulx[t].nip > simpulx[t+1].nip)//sorting untuk menampilkan secara urut
{
smpn=simpulx[t];
simpulx[t]=simpulx[t+1];
simpulx[t+1]=smpn;
}
}
printf("||NIP\t\t||Nama\t\t||Gaji\t\t||umur\t||");
for(int j=0;j<=100;j++)
{
printf("\n||%d\t||%s\t||%d\t||%d\t||",simpulx[j].nip,simpulx[j].nama,simpulx[j].gaji,simpulx[j].umur);
if(simpulx[j+1].nip<1)break;//cek apakah simpul berikutnya kosong, jika kosong looping di hentikan dg keyword 'break'
}
printf("\n\ntekan ENTER");
getch();
}
void nip()
{
printf("Masukkan nip yang di tampilkan=");
scanf("%d",&tmpl);
temp=head;
while(temp!=NULL && temp->nip!=tmpl)//searcing untuk mencari data yang akan di tampilkan
{
temp=temp->next;
}
if(temp!=NULL && temp->nip==tmpl)
{
printf("||NIP\t\t||Nama\t\t||Gaji\t\t||umur\t||");
printf("\n||%d\t||%s\t||%d\t||%d\t||",temp->nip,temp->nama,temp->gaji,temp->umur);
}else
{
printf("data tdk ditemukan");
}printf("\n\ntekan ENTER");getch();
}
void hapus()
{
simpul prev=NULL;
printf("Masukkan nip yang di hapus=");
scanf("%d",&hpus);
temp=head;
while(temp!=NULL && temp->nip!=hpus)//searching untuk mencari data yang di hapus
{
prev=temp;
temp=temp->next;
}
if(temp!=NULL && temp->nip==hpus)
{
if(temp->next != NULL && temp->prev != NULL)
{
prev->next = temp->next;
(temp->next)->prev=prev;
}
else if (temp->next == NULL)
{
prev->next = NULL;
}
else if (temp == head && head->next == NULL)
{
head = NULL;
}
else if (temp == head && head->next != NULL)
{
(head->next)->prev=NULL;
head = head->next;
}
free(temp); jmlh--;
printf("\ndata di hapus");
}else
{
printf("data tdk ditemukan");
}printf("\n\ntekan ENTER");getch();system("cls");
}
void insert()
{
data = (simpul) malloc(sizeof (struct node));
printf("NIP=");
scanf("%d",&n);
temp=head;
while(temp!=NULL)
{
if(temp->nip==n)doble=1;
temp=temp->next;
}
if(doble==0)
{
data->nip=n;
printf("\nNama=");
scanf("%s",&data->nama);
printf("\nGaji=");
scanf("%d",&data->gaji);
printf("\nUmur=");
scanf("%d",&data->umur);
data->next=NULL;
data->prev=NULL;
jmlh++;
if(head==NULL && tail==NULL)
{
head=data;
tail=data;
}else
{
data->prev=tail;
tail->next=data;
tail=data;
}
}else
{
printf("NIP sudah terdaftar");
}printf("\n\ntekan ENTER");
getch();
system("cls");
}
void view()
{
printf("1.tampil seluruh secara urut");
printf("\n2.tampil berdasarkan NIP");
printf("\nMasukkan pilihan=");
scanf("%d",&plh);
switch(plh)
{
case 1: urut();
break;
case 2: nip();
break;
default: printf("\nSALAH!!!");
}system("cls");
}
void main()
{
while(pilih!=4)
{
printf("1.insert data");
printf("\n2.hapus data");
printf("\n3.tampilkan");
printf("\n4.EXIT");
printf("\nMasukkan pilihan=");
scanf("%d",&pilih);
system("cls");
switch(pilih)
{
case 1: insert();
break;
case 2: hapus();
break;
case 3: view();
break;
case 4: printf("\nterima kasih\n\n");
break;
default: printf("\n\n SALAH!!\n");
}
}
}
source code data karyawan dengan linked list
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "string.h"
struct node//struct
{
int nip;
char nama[20];//array
int gaji;
int umur;
struct node *next;//linked list
struct node *prev;
};
typedef struct node *simpul;
struct node simpulx[100];
struct node smpn;
simpul data, head=NULL, tail=NULL, temp;
int pilih;
int plh;
int tmpl;
int doble=0;
int n;
int jmlh=0;
int hpus;
void urut()
{
int i=0;
temp=head;
while(temp!=NULL)
{
simpulx[i].nip=temp->nip;
strcpy(simpulx[i].nama,temp->nama);
simpulx[i].gaji=temp->gaji;
simpulx[i].umur=temp->umur;
i++;
temp=temp->next;
}
for(int r=0;r for(int t=0;t {
if(simpulx[t].nip>simpulx[t+1].nip)//sorting untuk menampilkan secara urut
{
smpn=simpulx[t];
simpulx[t]=simpulx[t+1];
simpulx[t+1]=smpn;
}
}
printf("||NIP\t\t||Nama\t\t||Gaji\t\t||umur\t||");
for(int j=0;j<=100;j++)
{
printf("\n||%d\t||%s\t||%d\t||%d\t||",simpulx[j].nip,simpulx[j].nama,simpulx[j].gaji,simpulx[j].umur);
if(simpulx[j+1].nip<1)break;//cek apakah simpul berikutnya kosong, jika kosong looping di hentikan dg keyword 'break'
}
printf("\n\ntekan ENTER");
getch();
}
void nip()
{
printf("Masukkan nip yang di tampilkan=");
scanf("%d",&tmpl);
temp=head;
while(temp!=NULL && temp->nip!=tmpl)//searcing untuk mencari data yang akan di tampilkan
{
temp=temp->next;
}
if(temp!=NULL && temp->nip==tmpl)
{
printf("||NIP\t\t||Nama\t\t||Gaji\t\t||umur\t||");
printf("\n||%d\t||%s\t||%d\t||%d\t||",temp->nip,temp->nama,temp->gaji,temp->umur);
}else
{
printf("data tdk ditemukan");
}printf("\n\ntekan ENTER");getch();
}
void hapus()
{
simpul prev=NULL;
printf("Masukkan nip yang di hapus=");
scanf("%d",&hpus);
temp=head;
while(temp!=NULL && temp->nip!=hpus)//searching untuk mencari data yang di hapus
{
prev=temp;
temp=temp->next;
}
if(temp!=NULL && temp->nip==hpus)
{
if(temp->next != NULL && temp->prev != NULL)
{
prev->next = temp->next;
(temp->next)->prev=prev;
}
else if (temp->next == NULL)
{
prev->next = NULL;
}
else if (temp == head && head->next == NULL)
{
head = NULL;
}
else if (temp == head && head->next != NULL)
{
(head->next)->prev=NULL;
head = head->next;
}
free(temp); jmlh--;
printf("\ndata di hapus");
}else
{
printf("data tdk ditemukan");
}printf("\n\ntekan ENTER");getch();system("cls");
}
void insert()
{
data = (simpul) malloc(sizeof (struct node));
printf("NIP=");
scanf("%d",&n);
temp=head;
while(temp!=NULL)
{
if(temp->nip==n)doble=1;
temp=temp->next;
}
if(doble==0)
{
data->nip=n;
printf("\nNama=");
scanf("%s",&data->nama);
printf("\nGaji=");
scanf("%d",&data->gaji);
printf("\nUmur=");
scanf("%d",&data->umur);
data->next=NULL;
data->prev=NULL;
jmlh++;
if(head==NULL && tail==NULL)
{
head=data;
tail=data;
}else
{
data->prev=tail;
tail->next=data;
tail=data;
}
}else
{
printf("NIP sudah terdaftar");
}printf("\n\ntekan ENTER");
getch();
system("cls");
}
void view()
{
printf("1.tampil seluruh secara urut");
printf("\n2.tampil berdasarkan NIP");
printf("\nMasukkan pilihan=");
scanf("%d",&plh);
switch(plh)
{
case 1: urut();
break;
case 2: nip();
break;
default: printf("\nSALAH!!!");
}system("cls");
}
void main()
{
while(pilih!=4)
{
printf("1.insert data");
printf("\n2.hapus data");
printf("\n3.tampilkan");
printf("\n4.EXIT");
printf("\nMasukkan pilihan=");
scanf("%d",&pilih);
system("cls");
switch(pilih)
{
case 1: insert();
break;
case 2: hapus();
break;
case 3: view();
break;
case 4: printf("\nterima kasih\n\n");
break;
default: printf("\n\n SALAH!!\n");
}
}
}
#include "stdlib.h"
#include "conio.h"
#include "string.h"
struct node//struct
{
int nip;
char nama[20];//array
int gaji;
int umur;
struct node *next;//linked list
struct node *prev;
};
typedef struct node *simpul;
struct node simpulx[100];
struct node smpn;
simpul data, head=NULL, tail=NULL, temp;
int pilih;
int plh;
int tmpl;
int doble=0;
int n;
int jmlh=0;
int hpus;
void urut()
{
int i=0;
temp=head;
while(temp!=NULL)
{
simpulx[i].nip=temp->nip;
strcpy(simpulx[i].nama,temp->nama);
simpulx[i].gaji=temp->gaji;
simpulx[i].umur=temp->umur;
i++;
temp=temp->next;
}
for(int r=0;r
if(simpulx[t].nip>simpulx[t+1].nip)//sorting untuk menampilkan secara urut
{
smpn=simpulx[t];
simpulx[t]=simpulx[t+1];
simpulx[t+1]=smpn;
}
}
printf("||NIP\t\t||Nama\t\t||Gaji\t\t||umur\t||");
for(int j=0;j<=100;j++)
{
printf("\n||%d\t||%s\t||%d\t||%d\t||",simpulx[j].nip,simpulx[j].nama,simpulx[j].gaji,simpulx[j].umur);
if(simpulx[j+1].nip<1)break;//cek apakah simpul berikutnya kosong, jika kosong looping di hentikan dg keyword 'break'
}
printf("\n\ntekan ENTER");
getch();
}
void nip()
{
printf("Masukkan nip yang di tampilkan=");
scanf("%d",&tmpl);
temp=head;
while(temp!=NULL && temp->nip!=tmpl)//searcing untuk mencari data yang akan di tampilkan
{
temp=temp->next;
}
if(temp!=NULL && temp->nip==tmpl)
{
printf("||NIP\t\t||Nama\t\t||Gaji\t\t||umur\t||");
printf("\n||%d\t||%s\t||%d\t||%d\t||",temp->nip,temp->nama,temp->gaji,temp->umur);
}else
{
printf("data tdk ditemukan");
}printf("\n\ntekan ENTER");getch();
}
void hapus()
{
simpul prev=NULL;
printf("Masukkan nip yang di hapus=");
scanf("%d",&hpus);
temp=head;
while(temp!=NULL && temp->nip!=hpus)//searching untuk mencari data yang di hapus
{
prev=temp;
temp=temp->next;
}
if(temp!=NULL && temp->nip==hpus)
{
if(temp->next != NULL && temp->prev != NULL)
{
prev->next = temp->next;
(temp->next)->prev=prev;
}
else if (temp->next == NULL)
{
prev->next = NULL;
}
else if (temp == head && head->next == NULL)
{
head = NULL;
}
else if (temp == head && head->next != NULL)
{
(head->next)->prev=NULL;
head = head->next;
}
free(temp); jmlh--;
printf("\ndata di hapus");
}else
{
printf("data tdk ditemukan");
}printf("\n\ntekan ENTER");getch();system("cls");
}
void insert()
{
data = (simpul) malloc(sizeof (struct node));
printf("NIP=");
scanf("%d",&n);
temp=head;
while(temp!=NULL)
{
if(temp->nip==n)doble=1;
temp=temp->next;
}
if(doble==0)
{
data->nip=n;
printf("\nNama=");
scanf("%s",&data->nama);
printf("\nGaji=");
scanf("%d",&data->gaji);
printf("\nUmur=");
scanf("%d",&data->umur);
data->next=NULL;
data->prev=NULL;
jmlh++;
if(head==NULL && tail==NULL)
{
head=data;
tail=data;
}else
{
data->prev=tail;
tail->next=data;
tail=data;
}
}else
{
printf("NIP sudah terdaftar");
}printf("\n\ntekan ENTER");
getch();
system("cls");
}
void view()
{
printf("1.tampil seluruh secara urut");
printf("\n2.tampil berdasarkan NIP");
printf("\nMasukkan pilihan=");
scanf("%d",&plh);
switch(plh)
{
case 1: urut();
break;
case 2: nip();
break;
default: printf("\nSALAH!!!");
}system("cls");
}
void main()
{
while(pilih!=4)
{
printf("1.insert data");
printf("\n2.hapus data");
printf("\n3.tampilkan");
printf("\n4.EXIT");
printf("\nMasukkan pilihan=");
scanf("%d",&pilih);
system("cls");
switch(pilih)
{
case 1: insert();
break;
case 2: hapus();
break;
case 3: view();
break;
case 4: printf("\nterima kasih\n\n");
break;
default: printf("\n\n SALAH!!\n");
}
}
}
source code queue
#include "stdio.h"
#define maxsize 100
int dpn=0;
int jmlh=0;
int blkng=0;
char data[maxsize];
char temp;
void insert()
{
printf("Masukkan data=");
scanf("%s",&temp);
if(jmlh==maxsize)
printf("data penuh");
else
{
data[blkng]=temp;
blkng++;
jmlh++;
}
}
void out()
{
if(jmlh==0)
printf("data kosong\n\n");
else
{
dpn++;
jmlh--;
}
}
void view()
{
printf("\n");
for( int i=dpn;i<=blkng;i++)
{
printf("%c ",data[i]);
}
printf("\n");
}
void main()
{
int pilih;
while(pilih!=4)
{
printf("1.insert");
printf("\n2.out");
printf("\n3.view");
printf("\n4.EXIT");
printf("\nMasukan pilihan=");
scanf("%d",&pilih);
switch(pilih)
{
case 1: insert();
break;
case 2: out();
break;
case 3: view();
break;
case 4: printf("terima kasih");
break;
default :
printf("salah");
break;
}
}
}
#define maxsize 100
int dpn=0;
int jmlh=0;
int blkng=0;
char data[maxsize];
char temp;
void insert()
{
printf("Masukkan data=");
scanf("%s",&temp);
if(jmlh==maxsize)
printf("data penuh");
else
{
data[blkng]=temp;
blkng++;
jmlh++;
}
}
void out()
{
if(jmlh==0)
printf("data kosong\n\n");
else
{
dpn++;
jmlh--;
}
}
void view()
{
printf("\n");
for( int i=dpn;i<=blkng;i++)
{
printf("%c ",data[i]);
}
printf("\n");
}
void main()
{
int pilih;
while(pilih!=4)
{
printf("1.insert");
printf("\n2.out");
printf("\n3.view");
printf("\n4.EXIT");
printf("\nMasukan pilihan=");
scanf("%d",&pilih);
switch(pilih)
{
case 1: insert();
break;
case 2: out();
break;
case 3: view();
break;
case 4: printf("terima kasih");
break;
default :
printf("salah");
break;
}
}
}
source code jumlh 2 bilangan factorial dg rekursif
#include "stdio.h"
#include "stdlib.h"
int satu(int x)
{
int m,n;
if(x<=1) return (1);
m=x-1;
n=satu(m);
return (x+n);
}
int dua(int z)
{
int m,n;
if(z<=1) return (1);
m=z-1;
n=dua(m);
return (z+n);
}
void main()
{
int a,b,jmlh;
int p,w,g;
char pilihan;
printf("masukkan nilai A=");
scanf("%d",&a);
printf("\nmasukkan nilai B=");
scanf("%d",&b);
printf("\nLoading.");for(p=0;p<10000;p++){for(w=0;w<10000;w++){}};
for(g=0;g<=8;g++)
{
printf(".");for(p=0;p<10000;p++){for(w=0;w<10000;w++){}};
}
satu(a);
dua(b);
printf("\n\nhasil A=%i",satu(a));
printf("\nhasil B=%i",dua(b));
//getch();
printf("\n\nLoading.");for(p=0;p<10000;p++){for(w=0;w<10000;w++){}};
for(g=0;g<=8;g++)
{
printf(".");for(p=0;p<10000;p++){for(w=0;w<10000;w++){}};
}
jmlh=satu(a)*dua(b);
printf("\n\nJumlah=%i\n\n",jmlh);
printf("\n\nIngin kembali ke awal(y/n)??");
scanf("%s",&pilihan);
if(pilihan=='y')
{system("cls");
main();}
else if(pilihan=='n')
printf("\n\nTerima kasih telah menggunakan program ini\n");
}
#include "stdlib.h"
int satu(int x)
{
int m,n;
if(x<=1) return (1);
m=x-1;
n=satu(m);
return (x+n);
}
int dua(int z)
{
int m,n;
if(z<=1) return (1);
m=z-1;
n=dua(m);
return (z+n);
}
void main()
{
int a,b,jmlh;
int p,w,g;
char pilihan;
printf("masukkan nilai A=");
scanf("%d",&a);
printf("\nmasukkan nilai B=");
scanf("%d",&b);
printf("\nLoading.");for(p=0;p<10000;p++){for(w=0;w<10000;w++){}};
for(g=0;g<=8;g++)
{
printf(".");for(p=0;p<10000;p++){for(w=0;w<10000;w++){}};
}
satu(a);
dua(b);
printf("\n\nhasil A=%i",satu(a));
printf("\nhasil B=%i",dua(b));
//getch();
printf("\n\nLoading.");for(p=0;p<10000;p++){for(w=0;w<10000;w++){}};
for(g=0;g<=8;g++)
{
printf(".");for(p=0;p<10000;p++){for(w=0;w<10000;w++){}};
}
jmlh=satu(a)*dua(b);
printf("\n\nJumlah=%i\n\n",jmlh);
printf("\n\nIngin kembali ke awal(y/n)??");
scanf("%s",&pilihan);
if(pilihan=='y')
{system("cls");
main();}
else if(pilihan=='n')
printf("\n\nTerima kasih telah menggunakan program ini\n");
}
source code data mahasiswa dg struct
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "string.h"
void TD();
int z,h;
int pilihan;
int a,j;
int x;
struct data
{
int nip;
char nama[20];
char ttl[10];
char alamat[30];
char jk[5];
}data;
struct data dt[1000];
struct data rt[1000];
struct data sm[1000];
void NIP()
{
TD();
}
void name()
{
int u=0;
int i=0;
int q=0;
for(a=0;a<=1000;a++)
{
if(rt[a].nip >= 1)u=u+1;
}
int pos;
for(x=0;x < u-1;x++)
{
pos=x;
for(j=x+1;j < u;j++)
{
do
{
if(rt[pos].nama[i]==rt[j].nama[i])i=i+1;
else
q=1;
}while(q==0);
if(rt[pos].nama[i] > rt[j].nama[i])pos=j;
}
sm[1]=rt[x];
rt[x]=rt[pos];
rt[pos]=sm[1];
}
TD();
}
void ID()
{
char tmbh;
h=1;
printf("NIP max(1000)\t\t=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{printf("\n\nNomer sudah digunakan\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
h=5;}
}
if(h==1){
fflush(stdin);
dt[a].nip=a;
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("ingin tmbh data(y/n)");
scanf("%s",&tmbh);
system("cls");
if(tmbh=='y') ID();
else h=5;}
}
void UD()
{
h=1;
printf("Masukkan NIP yang akan di rubah=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{
fflush(stdin);
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("tekan ENTER");
getch();
system("cls");
h=5;
}
}
if(h==1)
{
printf("NIP tidak tersedia\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void HD()
{
h=1;
printf("Masukkan NIP yg akan di hapus=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(dt[j].nip==a)
{
dt[a].nip=0;
printf("Data telah terhapus\n\nTekan ENTER untuk kembali ke awal");
getch();
h=0;
system("cls");
}
}
if(h==1)
{
printf("data tdk ada\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void TD()
{
printf("==========================================================");
printf("\n||NIP\t|Nama\t\t|TTL\t|Alamat\t\t|JK\t||");
printf("\n==========================================================");
for(j=0;j<=1000;j++)
{
if(rt[j].nip>=1)
{ printf("\n||%d\t|%s\t\t|%s\t|%s\t\t|%s\t||",rt[j].nip,rt[j].nama,rt[j].ttl,rt[j].alamat,rt[j].jk);}
}
printf("\n==========================================================");
printf("\n\nTekan ENTER");
getch();
system("cls");
}
void SO()
{
a=0;
x=0;
for(j=a;j<1000;j++)
{
if(dt[j].nip>=1)
{
rt[x].nip=dt[j].nip;
strcpy(rt[x].nama,dt[j].nama);
strcpy(rt[x].ttl,dt[j].ttl);
strcpy(rt[x].alamat,dt[j].alamat);
strcpy(rt[x].jk,dt[j].jk);a=j+1;x=x+1;
}
}
printf("1.by NIP");
printf("\n2.by Name");
printf("\nMasukkan pilihan=");
scanf("%d",&pilihan);
switch(pilihan)
{
case 1:
NIP();
break;
case 2:
name();
break;
default:
printf("pilihan tidak tersedia\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void main()
{
z=1;
do
{
printf("PT. SEJAHTERA");
printf("\n\n1.Input data");
printf("\n2.Update data");
printf("\n3.Hapus data");
printf("\n4.Tampilkan data");
printf("\n5.Exit");
printf("\n\nMasukkan pilihan=");
scanf("%d",&pilihan);
system ("cls");
switch(pilihan)
{
case 1: ID();
break;
case 2: UD();
break;
case 3: HD();
break;
case 4: SO();
break;
case 5: printf("Terima kasih\n\n");
z=0;
break;
default: main();
}
}while(z==1);
}
#include "stdlib.h"
#include "conio.h"
#include "string.h"
void TD();
int z,h;
int pilihan;
int a,j;
int x;
struct data
{
int nip;
char nama[20];
char ttl[10];
char alamat[30];
char jk[5];
}data;
struct data dt[1000];
struct data rt[1000];
struct data sm[1000];
void NIP()
{
TD();
}
void name()
{
int u=0;
int i=0;
int q=0;
for(a=0;a<=1000;a++)
{
if(rt[a].nip >= 1)u=u+1;
}
int pos;
for(x=0;x < u-1;x++)
{
pos=x;
for(j=x+1;j < u;j++)
{
do
{
if(rt[pos].nama[i]==rt[j].nama[i])i=i+1;
else
q=1;
}while(q==0);
if(rt[pos].nama[i] > rt[j].nama[i])pos=j;
}
sm[1]=rt[x];
rt[x]=rt[pos];
rt[pos]=sm[1];
}
TD();
}
void ID()
{
char tmbh;
h=1;
printf("NIP max(1000)\t\t=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{printf("\n\nNomer sudah digunakan\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
h=5;}
}
if(h==1){
fflush(stdin);
dt[a].nip=a;
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("ingin tmbh data(y/n)");
scanf("%s",&tmbh);
system("cls");
if(tmbh=='y') ID();
else h=5;}
}
void UD()
{
h=1;
printf("Masukkan NIP yang akan di rubah=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{
fflush(stdin);
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("tekan ENTER");
getch();
system("cls");
h=5;
}
}
if(h==1)
{
printf("NIP tidak tersedia\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void HD()
{
h=1;
printf("Masukkan NIP yg akan di hapus=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(dt[j].nip==a)
{
dt[a].nip=0;
printf("Data telah terhapus\n\nTekan ENTER untuk kembali ke awal");
getch();
h=0;
system("cls");
}
}
if(h==1)
{
printf("data tdk ada\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void TD()
{
printf("==========================================================");
printf("\n||NIP\t|Nama\t\t|TTL\t|Alamat\t\t|JK\t||");
printf("\n==========================================================");
for(j=0;j<=1000;j++)
{
if(rt[j].nip>=1)
{ printf("\n||%d\t|%s\t\t|%s\t|%s\t\t|%s\t||",rt[j].nip,rt[j].nama,rt[j].ttl,rt[j].alamat,rt[j].jk);}
}
printf("\n==========================================================");
printf("\n\nTekan ENTER");
getch();
system("cls");
}
void SO()
{
a=0;
x=0;
for(j=a;j<1000;j++)
{
if(dt[j].nip>=1)
{
rt[x].nip=dt[j].nip;
strcpy(rt[x].nama,dt[j].nama);
strcpy(rt[x].ttl,dt[j].ttl);
strcpy(rt[x].alamat,dt[j].alamat);
strcpy(rt[x].jk,dt[j].jk);a=j+1;x=x+1;
}
}
printf("1.by NIP");
printf("\n2.by Name");
printf("\nMasukkan pilihan=");
scanf("%d",&pilihan);
switch(pilihan)
{
case 1:
NIP();
break;
case 2:
name();
break;
default:
printf("pilihan tidak tersedia\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void main()
{
z=1;
do
{
printf("PT. SEJAHTERA");
printf("\n\n1.Input data");
printf("\n2.Update data");
printf("\n3.Hapus data");
printf("\n4.Tampilkan data");
printf("\n5.Exit");
printf("\n\nMasukkan pilihan=");
scanf("%d",&pilihan);
system ("cls");
switch(pilihan)
{
case 1: ID();
break;
case 2: UD();
break;
case 3: HD();
break;
case 4: SO();
break;
case 5: printf("Terima kasih\n\n");
z=0;
break;
default: main();
}
}while(z==1);
}
source code data mahasiswa dg struct
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "string.h"
void TD();
int z,h;
int pilihan;
int a,j;
int x;
struct data
{
int nip;
char nama[20];
char ttl[10];
char alamat[30];
char jk[5];
}data;
struct data dt[1000];
struct data rt[1000];
struct data sm[1000];
void NIP()
{
TD();
}
void name()
{
int u=0;
int i=0;
int q=0;
for(a=0;a<=1000;a++)
{
if(rt[a].nip>=1)u=u+1;
}
int pos;
for(x=0;x {
pos=x;
for(j=x+1;j {
do
{
if(rt[pos].nama[i]==rt[j].nama[i])i=i+1;
else
q=1;
}while(q==0);
if(rt[pos].nama[i]>rt[j].nama[i])pos=j;
}
sm[1]=rt[x];
rt[x]=rt[pos];
rt[pos]=sm[1];
}
TD();
}
void ID()
{
char tmbh;
h=1;
printf("NIP max(1000)\t\t=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{printf("\n\nNomer sudah digunakan\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
h=5;}
}
if(h==1){
fflush(stdin);
dt[a].nip=a;
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("ingin tmbh data(y/n)");
scanf("%s",&tmbh);
system("cls");
if(tmbh=='y') ID();
else h=5;}
}
void UD()
{
h=1;
printf("Masukkan NIP yang akan di rubah=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{
fflush(stdin);
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("tekan ENTER");
getch();
system("cls");
h=5;
}
}
if(h==1)
{
printf("NIP tidak tersedia\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void HD()
{
h=1;
printf("Masukkan NIP yg akan di hapus=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(dt[j].nip==a)
{
dt[a].nip=0;
printf("Data telah terhapus\n\nTekan ENTER untuk kembali ke awal");
getch();
h=0;
system("cls");
}
}
if(h==1)
{
printf("data tdk ada\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void TD()
{
printf("==========================================================");
printf("\n||NIP\t|Nama\t\t|TTL\t|Alamat\t\t|JK\t||");
printf("\n==========================================================");
for(j=0;j<=1000;j++)
{
if(rt[j].nip>=1)
{ printf("\n||%d\t|%s\t\t|%s\t|%s\t\t|%s\t||",rt[j].nip,rt[j].nama,rt[j].ttl,rt[j].alamat,rt[j].jk);}
}
printf("\n==========================================================");
printf("\n\nTekan ENTER");
getch();
system("cls");
}
void SO()
{
a=0;
x=0;
for(j=a;j<1000;j++)
{
if(dt[j].nip>=1)
{
rt[x].nip=dt[j].nip;
strcpy(rt[x].nama,dt[j].nama);
strcpy(rt[x].ttl,dt[j].ttl);
strcpy(rt[x].alamat,dt[j].alamat);
strcpy(rt[x].jk,dt[j].jk);a=j+1;x=x+1;
}
}
printf("1.by NIP");
printf("\n2.by Name");
printf("\nMasukkan pilihan=");
scanf("%d",&pilihan);
switch(pilihan)
{
case 1:
NIP();
break;
case 2:
name();
break;
default:
printf("pilihan tidak tersedia\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void main()
{
z=1;
do
{
printf("PT. SEJAHTERA");
printf("\n\n1.Input data");
printf("\n2.Update data");
printf("\n3.Hapus data");
printf("\n4.Tampilkan data");
printf("\n5.Exit");
printf("\n\nMasukkan pilihan=");
scanf("%d",&pilihan);
system ("cls");
switch(pilihan)
{
case 1: ID();
break;
case 2: UD();
break;
case 3: HD();
break;
case 4: SO();
break;
case 5: printf("Terima kasih\n\n");
z=0;
break;
default: main();
}
}while(z==1);
}
#include "stdlib.h"
#include "conio.h"
#include "string.h"
void TD();
int z,h;
int pilihan;
int a,j;
int x;
struct data
{
int nip;
char nama[20];
char ttl[10];
char alamat[30];
char jk[5];
}data;
struct data dt[1000];
struct data rt[1000];
struct data sm[1000];
void NIP()
{
TD();
}
void name()
{
int u=0;
int i=0;
int q=0;
for(a=0;a<=1000;a++)
{
if(rt[a].nip>=1)u=u+1;
}
int pos;
for(x=0;x
pos=x;
for(j=x+1;j {
do
{
if(rt[pos].nama[i]==rt[j].nama[i])i=i+1;
else
q=1;
}while(q==0);
if(rt[pos].nama[i]>rt[j].nama[i])pos=j;
}
sm[1]=rt[x];
rt[x]=rt[pos];
rt[pos]=sm[1];
}
TD();
}
void ID()
{
char tmbh;
h=1;
printf("NIP max(1000)\t\t=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{printf("\n\nNomer sudah digunakan\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
h=5;}
}
if(h==1){
fflush(stdin);
dt[a].nip=a;
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("ingin tmbh data(y/n)");
scanf("%s",&tmbh);
system("cls");
if(tmbh=='y') ID();
else h=5;}
}
void UD()
{
h=1;
printf("Masukkan NIP yang akan di rubah=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{
fflush(stdin);
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("tekan ENTER");
getch();
system("cls");
h=5;
}
}
if(h==1)
{
printf("NIP tidak tersedia\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void HD()
{
h=1;
printf("Masukkan NIP yg akan di hapus=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(dt[j].nip==a)
{
dt[a].nip=0;
printf("Data telah terhapus\n\nTekan ENTER untuk kembali ke awal");
getch();
h=0;
system("cls");
}
}
if(h==1)
{
printf("data tdk ada\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void TD()
{
printf("==========================================================");
printf("\n||NIP\t|Nama\t\t|TTL\t|Alamat\t\t|JK\t||");
printf("\n==========================================================");
for(j=0;j<=1000;j++)
{
if(rt[j].nip>=1)
{ printf("\n||%d\t|%s\t\t|%s\t|%s\t\t|%s\t||",rt[j].nip,rt[j].nama,rt[j].ttl,rt[j].alamat,rt[j].jk);}
}
printf("\n==========================================================");
printf("\n\nTekan ENTER");
getch();
system("cls");
}
void SO()
{
a=0;
x=0;
for(j=a;j<1000;j++)
{
if(dt[j].nip>=1)
{
rt[x].nip=dt[j].nip;
strcpy(rt[x].nama,dt[j].nama);
strcpy(rt[x].ttl,dt[j].ttl);
strcpy(rt[x].alamat,dt[j].alamat);
strcpy(rt[x].jk,dt[j].jk);a=j+1;x=x+1;
}
}
printf("1.by NIP");
printf("\n2.by Name");
printf("\nMasukkan pilihan=");
scanf("%d",&pilihan);
switch(pilihan)
{
case 1:
NIP();
break;
case 2:
name();
break;
default:
printf("pilihan tidak tersedia\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void main()
{
z=1;
do
{
printf("PT. SEJAHTERA");
printf("\n\n1.Input data");
printf("\n2.Update data");
printf("\n3.Hapus data");
printf("\n4.Tampilkan data");
printf("\n5.Exit");
printf("\n\nMasukkan pilihan=");
scanf("%d",&pilihan);
system ("cls");
switch(pilihan)
{
case 1: ID();
break;
case 2: UD();
break;
case 3: HD();
break;
case 4: SO();
break;
case 5: printf("Terima kasih\n\n");
z=0;
break;
default: main();
}
}while(z==1);
}
source code data mahasiswa dg struct
#include
#include
#include
#include
void TD();
int z,h;
int pilihan;
int a,j;
int x;
struct data
{
int nip;
char nama[20];
char ttl[10];
char alamat[30];
char jk[5];
}data;
struct data dt[1000];
struct data rt[1000];
struct data sm[1000];
void NIP()
{
TD();
}
void name()
{
int u=0;
int i=0;
int q=0;
for(a=0;a<=1000;a++)
{
if(rt[a].nip>=1)u=u+1;
}
int pos;
for(x=0;x {
pos=x;
for(j=x+1;j {
do
{
if(rt[pos].nama[i]==rt[j].nama[i])i=i+1;
else
q=1;
}while(q==0);
if(rt[pos].nama[i]>rt[j].nama[i])pos=j;
}
sm[1]=rt[x];
rt[x]=rt[pos];
rt[pos]=sm[1];
}
TD();
}
void ID()
{
char tmbh;
h=1;
printf("NIP max(1000)\t\t=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{printf("\n\nNomer sudah digunakan\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
h=5;}
}
if(h==1){
fflush(stdin);
dt[a].nip=a;
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("ingin tmbh data(y/n)");
scanf("%s",&tmbh);
system("cls");
if(tmbh=='y') ID();
else h=5;}
}
void UD()
{
h=1;
printf("Masukkan NIP yang akan di rubah=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{
fflush(stdin);
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("tekan ENTER");
getch();
system("cls");
h=5;
}
}
if(h==1)
{
printf("NIP tidak tersedia\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void HD()
{
h=1;
printf("Masukkan NIP yg akan di hapus=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(dt[j].nip==a)
{
dt[a].nip=0;
printf("Data telah terhapus\n\nTekan ENTER untuk kembali ke awal");
getch();
h=0;
system("cls");
}
}
if(h==1)
{
printf("data tdk ada\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void TD()
{
printf("==========================================================");
printf("\n||NIP\t|Nama\t\t|TTL\t|Alamat\t\t|JK\t||");
printf("\n==========================================================");
for(j=0;j<=1000;j++)
{
if(rt[j].nip>=1)
{ printf("\n||%d\t|%s\t\t|%s\t|%s\t\t|%s\t||",rt[j].nip,rt[j].nama,rt[j].ttl,rt[j].alamat,rt[j].jk);}
}
printf("\n==========================================================");
printf("\n\nTekan ENTER");
getch();
system("cls");
}
void SO()
{
a=0;
x=0;
for(j=a;j<1000;j++)
{
if(dt[j].nip>=1)
{
rt[x].nip=dt[j].nip;
strcpy(rt[x].nama,dt[j].nama);
strcpy(rt[x].ttl,dt[j].ttl);
strcpy(rt[x].alamat,dt[j].alamat);
strcpy(rt[x].jk,dt[j].jk);a=j+1;x=x+1;
}
}
printf("1.by NIP");
printf("\n2.by Name");
printf("\nMasukkan pilihan=");
scanf("%d",&pilihan);
switch(pilihan)
{
case 1:
NIP();
break;
case 2:
name();
break;
default:
printf("pilihan tidak tersedia\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void main()
{
z=1;
do
{
printf("PT. SEJAHTERA");
printf("\n\n1.Input data");
printf("\n2.Update data");
printf("\n3.Hapus data");
printf("\n4.Tampilkan data");
printf("\n5.Exit");
printf("\n\nMasukkan pilihan=");
scanf("%d",&pilihan);
system ("cls");
switch(pilihan)
{
case 1: ID();
break;
case 2: UD();
break;
case 3: HD();
break;
case 4: SO();
break;
case 5: printf("Terima kasih\n\n");
z=0;
break;
default: main();
}
}while(z==1);
}
#include
#include
#include
void TD();
int z,h;
int pilihan;
int a,j;
int x;
struct data
{
int nip;
char nama[20];
char ttl[10];
char alamat[30];
char jk[5];
}data;
struct data dt[1000];
struct data rt[1000];
struct data sm[1000];
void NIP()
{
TD();
}
void name()
{
int u=0;
int i=0;
int q=0;
for(a=0;a<=1000;a++)
{
if(rt[a].nip>=1)u=u+1;
}
int pos;
for(x=0;x
pos=x;
for(j=x+1;j {
do
{
if(rt[pos].nama[i]==rt[j].nama[i])i=i+1;
else
q=1;
}while(q==0);
if(rt[pos].nama[i]>rt[j].nama[i])pos=j;
}
sm[1]=rt[x];
rt[x]=rt[pos];
rt[pos]=sm[1];
}
TD();
}
void ID()
{
char tmbh;
h=1;
printf("NIP max(1000)\t\t=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{printf("\n\nNomer sudah digunakan\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
h=5;}
}
if(h==1){
fflush(stdin);
dt[a].nip=a;
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("ingin tmbh data(y/n)");
scanf("%s",&tmbh);
system("cls");
if(tmbh=='y') ID();
else h=5;}
}
void UD()
{
h=1;
printf("Masukkan NIP yang akan di rubah=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(a==dt[j].nip)
{
fflush(stdin);
printf("\nNama\t\t\t=");
gets(dt[a].nama);
printf("\nTTL(ddmmyy)\t\t=");
gets(dt[a].ttl);
printf("\nAlamat\t\t\t=");
gets(dt[a].alamat);
printf("\nJenis Kelamin(L/P)\t=");
gets(dt[a].jk);
printf("tekan ENTER");
getch();
system("cls");
h=5;
}
}
if(h==1)
{
printf("NIP tidak tersedia\nTekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void HD()
{
h=1;
printf("Masukkan NIP yg akan di hapus=");
scanf("%d",&a);
for(j=0;j<=1000;j++)
{
if(dt[j].nip==a)
{
dt[a].nip=0;
printf("Data telah terhapus\n\nTekan ENTER untuk kembali ke awal");
getch();
h=0;
system("cls");
}
}
if(h==1)
{
printf("data tdk ada\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void TD()
{
printf("==========================================================");
printf("\n||NIP\t|Nama\t\t|TTL\t|Alamat\t\t|JK\t||");
printf("\n==========================================================");
for(j=0;j<=1000;j++)
{
if(rt[j].nip>=1)
{ printf("\n||%d\t|%s\t\t|%s\t|%s\t\t|%s\t||",rt[j].nip,rt[j].nama,rt[j].ttl,rt[j].alamat,rt[j].jk);}
}
printf("\n==========================================================");
printf("\n\nTekan ENTER");
getch();
system("cls");
}
void SO()
{
a=0;
x=0;
for(j=a;j<1000;j++)
{
if(dt[j].nip>=1)
{
rt[x].nip=dt[j].nip;
strcpy(rt[x].nama,dt[j].nama);
strcpy(rt[x].ttl,dt[j].ttl);
strcpy(rt[x].alamat,dt[j].alamat);
strcpy(rt[x].jk,dt[j].jk);a=j+1;x=x+1;
}
}
printf("1.by NIP");
printf("\n2.by Name");
printf("\nMasukkan pilihan=");
scanf("%d",&pilihan);
switch(pilihan)
{
case 1:
NIP();
break;
case 2:
name();
break;
default:
printf("pilihan tidak tersedia\ntekan ENTER untuk kembali ke awal");
getch();
system("cls");
}
}
void main()
{
z=1;
do
{
printf("PT. SEJAHTERA");
printf("\n\n1.Input data");
printf("\n2.Update data");
printf("\n3.Hapus data");
printf("\n4.Tampilkan data");
printf("\n5.Exit");
printf("\n\nMasukkan pilihan=");
scanf("%d",&pilihan);
system ("cls");
switch(pilihan)
{
case 1: ID();
break;
case 2: UD();
break;
case 3: HD();
break;
case 4: SO();
break;
case 5: printf("Terima kasih\n\n");
z=0;
break;
default: main();
}
}while(z==1);
}
source code bilangan romawi
#include "stdio.h"
void main()
{
char A[4]={'I','V','L','D'};
char B[4]={0,'X','C','M'};
int y;
printf("masukkan angka =");
scanf("%d",&y);
printf("Romawinya =");
if(y<3000)
{
while(y>=1000)
{
printf("%c",B[3]);
y=y-1000;
}
if (y>= 500)
{
if (y>= 900)
{
printf("%c%c",B[2],B[3]);
y=y- 900;
}
else
{
printf("%c",A[3]);
y= y - 500;
}
}
while (y>= 100)
{
if (y>= 400)
{
printf("%c%c",B[2],A[3]);
y= y- 400;
}
else
{
printf("%c",B[2]);
y = y- 100;
}
}
if (y>= 50)
{
if (y>= 90)
{
printf("%c%c",B[1],B[2]);
y=y- 90;
}
else
{
printf("%c",A[2]);
y = y - 50;
}
}
while (y >= 10)
{
if (y >= 40)
{
printf("%c%c",B[1],A[2]);
y= y - 40;
}
else
{
printf("%c",B[1]);
y = y - 10;
}
}
if (y >= 5)
{
if (y == 9)
{
printf("%c%c",A[0],B[1]);
y= y - 9;
}
else
{
printf("%c",A[1]);
y = y - 5;
}
}
while (y >= 1)
{
if (y == 4)
{
printf("%c%c",A[0],A[1]);
y = y - 4;
}
else
{
printf("%c",A[0]);
y = y - 1;
}
}
}
printf("\n"); // Pindah baris
}
void main()
{
char A[4]={'I','V','L','D'};
char B[4]={0,'X','C','M'};
int y;
printf("masukkan angka =");
scanf("%d",&y);
printf("Romawinya =");
if(y<3000)
{
while(y>=1000)
{
printf("%c",B[3]);
y=y-1000;
}
if (y>= 500)
{
if (y>= 900)
{
printf("%c%c",B[2],B[3]);
y=y- 900;
}
else
{
printf("%c",A[3]);
y= y - 500;
}
}
while (y>= 100)
{
if (y>= 400)
{
printf("%c%c",B[2],A[3]);
y= y- 400;
}
else
{
printf("%c",B[2]);
y = y- 100;
}
}
if (y>= 50)
{
if (y>= 90)
{
printf("%c%c",B[1],B[2]);
y=y- 90;
}
else
{
printf("%c",A[2]);
y = y - 50;
}
}
while (y >= 10)
{
if (y >= 40)
{
printf("%c%c",B[1],A[2]);
y= y - 40;
}
else
{
printf("%c",B[1]);
y = y - 10;
}
}
if (y >= 5)
{
if (y == 9)
{
printf("%c%c",A[0],B[1]);
y= y - 9;
}
else
{
printf("%c",A[1]);
y = y - 5;
}
}
while (y >= 1)
{
if (y == 4)
{
printf("%c%c",A[0],A[1]);
y = y - 4;
}
else
{
printf("%c",A[0]);
y = y - 1;
}
}
}
printf("\n"); // Pindah baris
}
source code pengecekan tanda kurung
#include "stdio.h"
#include "stdlib.h"
char kar[100];
char stack[100];
int top=-1;
char temp;
char xx;
int valid=1;
void main()
{
printf("Masukkan karakter=");
scanf("%s",&kar);
for(int i=0;i<=100;i++)
{
if(kar[i]=='{' || kar[i]=='(' || kar[i]=='[')
{
stack[top+1]=kar[i];
top++;
}
else if(kar[i]=='}' || kar[i]==')' || kar[i]==']')
{
temp=stack[top];stack[top]=NULL;top--;
if(temp=='{')
{ xx='}';}
else if(temp=='(')
{ xx=')';}
else if(temp=='[')
{ xx=']';}
if(xx!=kar[i])
{ valid=0;}
}
}
if(valid==1)
{
printf("\n\nVALID");
}else
{
printf("\n\nTDK VALID");
}
}
#include "stdlib.h"
char kar[100];
char stack[100];
int top=-1;
char temp;
char xx;
int valid=1;
void main()
{
printf("Masukkan karakter=");
scanf("%s",&kar);
for(int i=0;i<=100;i++)
{
if(kar[i]=='{' || kar[i]=='(' || kar[i]=='[')
{
stack[top+1]=kar[i];
top++;
}
else if(kar[i]=='}' || kar[i]==')' || kar[i]==']')
{
temp=stack[top];stack[top]=NULL;top--;
if(temp=='{')
{ xx='}';}
else if(temp=='(')
{ xx=')';}
else if(temp=='[')
{ xx=']';}
if(xx!=kar[i])
{ valid=0;}
}
}
if(valid==1)
{
printf("\n\nVALID");
}else
{
printf("\n\nTDK VALID");
}
}
Sabtu, 19 Juni 2010
pembahasan sorting
sorting merupakan metode untuk mengurutkan data. Fungsinya adalah untuk memudahkan kita mencari data jika data telah terurut. Ada beberapa algoritma sorting, misal bubble dan juga selection.
1.Cara kerja Bubble yaitu mengecek dan membandingkan data 1 persatu dan langsung menukarnya. berikut algoritma bubble
void bubble(char a[],char n)
{
char ss;
for(int i=0;i < n;i++)
{
for(int j=0;j < n-1-i;j++)
if(a[j] > a[j+1])
{
ss=a[j];
a[j]=a[j+1];
a[j+1]=ss;
}
}
for(int y=0;y < n;y++)
{
printf("%c",a[y]);
}
printf("\n\n");
}
2. cara kerja selection berbeda dg bubble. Disini program akan mencari data dan meletakkan di tempat yang sebenarnya. berikut algoritmanya
void selection()
{
int u=0;
int i=0;
int q=0;
for(a=0;a<=1000;a++)
{
if(rt[a].nip>=1)u=u+1;
}
int pos;
for(x=0;x {
pos=x;
for(j=x+1;j {
do
{
if(rt[pos].nama[i]==rt[j].nama[i])i=i+1;
else
q=1;
}while(q==0);
if(rt[pos].nama[i]>rt[j].nama[i])pos=j;
}
sm[1]=rt[x];
rt[x]=rt[pos];
rt[pos]=sm[1];
}
1.Cara kerja Bubble yaitu mengecek dan membandingkan data 1 persatu dan langsung menukarnya. berikut algoritma bubble
void bubble(char a[],char n)
{
char ss;
for(int i=0;i < n;i++)
{
for(int j=0;j < n-1-i;j++)
if(a[j] > a[j+1])
{
ss=a[j];
a[j]=a[j+1];
a[j+1]=ss;
}
}
for(int y=0;y < n;y++)
{
printf("%c",a[y]);
}
printf("\n\n");
}
2. cara kerja selection berbeda dg bubble. Disini program akan mencari data dan meletakkan di tempat yang sebenarnya. berikut algoritmanya
void selection()
{
int u=0;
int i=0;
int q=0;
for(a=0;a<=1000;a++)
{
if(rt[a].nip>=1)u=u+1;
}
int pos;
for(x=0;x
pos=x;
for(j=x+1;j {
do
{
if(rt[pos].nama[i]==rt[j].nama[i])i=i+1;
else
q=1;
}while(q==0);
if(rt[pos].nama[i]>rt[j].nama[i])pos=j;
}
sm[1]=rt[x];
rt[x]=rt[pos];
rt[pos]=sm[1];
}
pembahasan rekursif
Dalam sebuah algoritma pemrogaman terdapat pemanggilan fungsi untuk memisahkannya dengan fungsi utama agar terlihat lebih rapi. Namun fungsi rekursif merupakan fungsi yang memanggil dirinya sendiri. Fungsi rekursif biasanya di manfaatkan untuk pembuatan program bilangan faktorial dan juga bilangan fibonachi. Untuk lebih jelasnya klik pada source code yang menggunakan fungsi rekursif
source code infix to postfix
#include "stdio.h"
char stack[20];
char kar[20];
int top=-1;
char temp,xx;
int valid=1;
void push(char put)
{
stack[top+1]=put;
top++;
}
void pop()
{
temp=stack[top];
top--;
}
void main()
{
printf("Masukkan karakter infix:");
scanf("%s",&kar);
for(int i=0;i<20;i++)
{
if(kar[i]=='(')
{
push(kar[i]);
}else if(kar[i]==')')
{
pop();
xx='(';
if(xx!=temp)
{
valid=0;
break;
}
}
}
if(valid==1)
{
printf("\nkarakter postfix=");
for(int j=0;j<20;j++)
{
if(kar[j]=='(' || kar[j]=='+' || kar[j]=='-' || kar[j]=='*' || kar[j]=='/' || kar[j]=='^')
{
push(kar[j]);
}
else if(kar[j]==')')
{
while(stack[top]!='(')
{
pop();
printf("%c",temp);
}
pop();
}
else if(kar[j]<1)
{
while(top!=-1)
{
pop();
printf("%c",temp);
}
break;
}else
{
printf("%c",kar[j]);
}
}
}
else
{
printf("tdk valid");
}
printf("\n\n\n\n");
}
char stack[20];
char kar[20];
int top=-1;
char temp,xx;
int valid=1;
void push(char put)
{
stack[top+1]=put;
top++;
}
void pop()
{
temp=stack[top];
top--;
}
void main()
{
printf("Masukkan karakter infix:");
scanf("%s",&kar);
for(int i=0;i<20;i++)
{
if(kar[i]=='(')
{
push(kar[i]);
}else if(kar[i]==')')
{
pop();
xx='(';
if(xx!=temp)
{
valid=0;
break;
}
}
}
if(valid==1)
{
printf("\nkarakter postfix=");
for(int j=0;j<20;j++)
{
if(kar[j]=='(' || kar[j]=='+' || kar[j]=='-' || kar[j]=='*' || kar[j]=='/' || kar[j]=='^')
{
push(kar[j]);
}
else if(kar[j]==')')
{
while(stack[top]!='(')
{
pop();
printf("%c",temp);
}
pop();
}
else if(kar[j]<1)
{
while(top!=-1)
{
pop();
printf("%c",temp);
}
break;
}else
{
printf("%c",kar[j]);
}
}
}
else
{
printf("tdk valid");
}
printf("\n\n\n\n");
}
source code stack
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
int data[20];
int top=-1;
void push()
{
printf("masukkan data=");
scanf("%d",&data[top+1]);
top++;
system("cls");
}
void pop()
{
data[top]=NULL;
top--;
printf("data teratas terhapus");
getch();
system("cls");
}
void view()
{
for(int i=0;i<=top;i++)
{
printf("%d ",data[i]);
}
getch();
system("cls");
}
void main()
{
int pilih;
while(pilih!=4)
{
printf("1. input data");
printf("\n2. buang data teratas");
printf("\n3. tampilkan data");
printf("\n4. EXIT");
printf("\nMasukkan pilihan=");
scanf("%d",&pilih);
system("cls");
switch(pilih)
{
case 1: push();
break;
case 2: pop();
break;
case 3: view();
break;
default:
printf("terima kasih\n\n");
}
}
}
#include "stdlib.h"
#include "conio.h"
int data[20];
int top=-1;
void push()
{
printf("masukkan data=");
scanf("%d",&data[top+1]);
top++;
system("cls");
}
void pop()
{
data[top]=NULL;
top--;
printf("data teratas terhapus");
getch();
system("cls");
}
void view()
{
for(int i=0;i<=top;i++)
{
printf("%d ",data[i]);
}
getch();
system("cls");
}
void main()
{
int pilih;
while(pilih!=4)
{
printf("1. input data");
printf("\n2. buang data teratas");
printf("\n3. tampilkan data");
printf("\n4. EXIT");
printf("\nMasukkan pilihan=");
scanf("%d",&pilih);
system("cls");
switch(pilih)
{
case 1: push();
break;
case 2: pop();
break;
case 3: view();
break;
default:
printf("terima kasih\n\n");
}
}
}
source code searching sequential
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
int z;
int h;
char back;
void cari(char npm[],char key)
{
h=1;
for(int i=0;i<=10;i++)
{
if(npm[i]==key)
{
printf("Data ditemukan\n\n");
printf("Ingin kembali ke awal(y/n)???");
scanf("%s",&back);
if(back=='y'){z=1;i=11;h=5;}
else
z=5;
i=11;
h=5;
system("cls");
}
}
if(h==1)
{
printf("Data tidak ditemukan\n\n");
printf("Ingin kembali ke awal(y/n)???");
scanf("%s",&back);
if(back=='y')z=1;
else z=5;
system("cls");
}
}
void main()
{
z=1;
do
{
char npm[10];
char key;
fflush(stdin);
printf("Masukkan NPM:");
gets(npm);
printf("\nMasukkan angka yang ingin di cari:");
scanf("%c",&key);
cari(npm,key);
}while(z==1);
}
#include "conio.h"
#include "stdlib.h"
int z;
int h;
char back;
void cari(char npm[],char key)
{
h=1;
for(int i=0;i<=10;i++)
{
if(npm[i]==key)
{
printf("Data ditemukan\n\n");
printf("Ingin kembali ke awal(y/n)???");
scanf("%s",&back);
if(back=='y'){z=1;i=11;h=5;}
else
z=5;
i=11;
h=5;
system("cls");
}
}
if(h==1)
{
printf("Data tidak ditemukan\n\n");
printf("Ingin kembali ke awal(y/n)???");
scanf("%s",&back);
if(back=='y')z=1;
else z=5;
system("cls");
}
}
void main()
{
z=1;
do
{
char npm[10];
char key;
fflush(stdin);
printf("Masukkan NPM:");
gets(npm);
printf("\nMasukkan angka yang ingin di cari:");
scanf("%c",&key);
cari(npm,key);
}while(z==1);
}
Jumat, 18 Juni 2010
niat dan bersungguh-sungguh
pemrogaman C++ sebenarnya mudah jika kita benar2 niat mempelajarinya. Ini lebih mudah dari pelajaran fisika, kimia, maupun biologi. Kita tidak perlu banyak2 menghafal, yang penting paham dan bersungguh2 mempelajarinya.Di sini saya akan memberikan beberapa pengalaman saya ketika kuliah. Ada beberapa algoritma pemrogaman beserta penjelasannya. Selain itu juga ada beberapa source code program dan game yg sederhana tapi menarik
Langganan:
Komentar (Atom)