#include <stdio.h>
#include <conio.h>
#include <string.h>
typedef struct{
int nip;
char nama[15];
}dtpegawai;
dtpegawai data[20];
int a=0;
void tambah_data(){
char jawab[2];
while(1){
fflush(stdin);
printf("NIP : ");scanf("%d",&data[a].nip);
fflush(stdin);
printf("Nama : ");gets(data[a].nama);
fflush(stdin);
printf("Ada data lagi (y/t):");scanf("%s",&jawab);
if(((strcmp(jawab,"Y"))==0)||((strcmp(jawab,"y"))==0)){
a++;continue;
}else if (((strcmp(jawab,"T"))==0)||((strcmp(jawab,"t"))==0))
break;
}
}
void tampil(int v){
int i;
puts(" NIP NAMA");
if(v==1){
for (i=0;i<=a;i++){
printf(" %d\t\t%s\n",data[i].nip,data[i].nama);
}
}else{
for (i=a;i>=0;i--){
printf(" %d\t\t%s\n",data[i].nip,data[i].nama);
}
}
}
void bubblesort_nip(){
int i,j;
dtpegawai tamp;
for(i=1;i<a;i++){
for(j=a;j>=i;j--){
if(data[j-1].nip>data[j].nip){
tamp=data[j-1];
data[j-1]=data[j];
data[j]=tamp;
}
}
}
}
void bubblesort_nama(){
int i,j,k,kar1,kar2;
dtpegawai tamp;
for(i=0;i<a-1;i++){
for(j=i+1;j<a;j++){
k=0;
kar1=data[i].nama[k];
kar2=data[j].nama[k];
while(kar1==kar2){
k++;
kar1=data[j-1].nama[k];
kar2=data[j].nama[k];
}
if(kar1>kar2){
tamp=data[i];
data[i]=data[j];
data[j]=tamp;
}
}
}
}
void shellsort_nip(){
int jarak, i,j;
dtpegawai tamp;
bool sudah;
jarak= a+1;
while(jarak>1){
jarak=jarak/2;
sudah=false;
while(!sudah){
sudah=true;
for(j=0;j<(a+1)-jarak;j++){
i=j+jarak;
if(data[j].nip>data[i].nip){
tamp=data[j];
data[j]=data[i];
data[i]=tamp;
sudah=false;
}
}
}
}
}
void shellsort_nama(){
int jarak, i,j,k=0;
bool sudah;
jarak= a+1;
while(jarak>1){
jarak=jarak/2;
sudah=false;
while(!sudah){
sudah=true;
for(j=0;j<(a+1)-jarak;j++){
i=j+jarak;
while(data[j].nama[k]==data[i].nama[k])
k++;
if(data[j].nama[k]>data[i].nama[k]){
tukar(&data[j],&data[i]);
sudah=false;
}
}
}
}
}
int main(){
int metode,pb,z;
ulang :
puts("+++++++++++++++++++++++++++++++++++++++++++++++++++++++");
puts(" PROGRAM PENGURUTAN DATA PEGAWAI");
puts("+++++++++++++++++++++++++++++++++++++++++++++++++++++++");
puts("Masukkan data pegawai : ");
tambah_data();
puts("+++++++++++++++++++++++++++++++++++++++++++++++++++++++");
puts(" PILIH METODE PENGURUTAN");
puts("+++++++++++++++++++++++++++++++++++++++++++++++++++++++");
puts(" 1. Bubblesort");
puts(" 2. Shellsort");
printf("Masukkan pilihan metode : ");scanf("%d",&metode);
puts("+++++++++++++++++++++++++++++++++++++++++++++++++++++++");
puts(" PENGURUTAN BERDASARKAN");
puts("+++++++++++++++++++++++++++++++++++++++++++++++++++++++");
puts(" 1. NIP");
puts(" 2. Nama Pegawai");
printf("Masukkan pilihan pengurutan : ");scanf("%d",&pb);
puts("+++++++++++++++++++++++++++++++++++++++++++++++++++++++");
puts(" PENGURUTAN SECARA");
puts("+++++++++++++++++++++++++++++++++++++++++++++++++++++++");
puts(" 1. Ascending");
puts(" 2. Descending");
printf("Masukkan pilihan : ");scanf("%d",&z);
puts("+++++++++++++++++++++++++++++++++++++++++++++++++++++++");
puts(" HASIL PENGURUTAN");
puts("+++++++++++++++++++++++++++++++++++++++++++++++++++++++");
if(metode==1&&pb==1) bubblesort_nip();
if(metode==1&&pb==2) bubblesort_nama();
if(metode==2&&pb==1) bubblesort_nip();
if(metode==2&&pb==2) bubblesort_nama();
tampil(z);
getch();
return 0;
}
Langganan:
Posting Komentar (Atom)
Arsip Blog
-
▼
2015
(12)
-
▼
Juni
(10)
- Download Structur Data
- Code C : Single Link List
- Code C : Single Link List
- Code C : Single link list
- Code C : Sequantial and Binary (SEARCHING)
- Code C ; (Straigh/Binary)Insertion and Selection (...
- Code C : Quick and Marge (SORTING)
- Code C : Bubble and Shell (SORTING)
- Code C : Progressive Oferflow
- Code C : batu kertas gunting
-
▼
Juni
(10)
Me
- Achmad Rahman Mawardi
- I'm 18 year old I'm ugly I'm lazy I do what I want I'm poor I want to learn and I want make money
Tidak ada komentar:
Posting Komentar