Kamis, 25 Desember 2014

PROGRAM C++ SORT DAN LINKED LIST


1.Buatlah program untuk mengurutkan data-data berikut ini dengan menggunakan quicksort (data = dat ,caq,cat,cet,cab)
2.Buatlah progaram dengan menggunakan linked list


1.Buatlah progaram untuk menampilkan tulisan yang bergerak mengelilingi layar atau link list
2.Buatlah program dalam bentuk menu untuk mengimplementasi stack menu tersebut berisi memasukan data , menghapus data ,
menampilkan data , dan keluar
3.Buatlah program dalam bentuk menu untuk mengimplementasi queue , menu tersebut berisi  memasukan data , menghapus data ,
menampilkan data , dan keluar



muhammad solihin





##########################################################
##########################################################
hari jumat
##########################################################

no 1

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int sort_function(const void*a,const void*b);
char list[6][5]
={"dat","caq","cap","cat","cet","cab"};
int main(void)
{
int x;
qsort((void*)list,5,sizeof(list[0]),sort_function);
for(x=0;x<5;x++)
printf("%s\n",list[x]);
return 0;
}
int sort_function(const void*a,const*b)
{
return(strcmp((char*)a,(char*)b));
}

no 2 program linked list

#include <iostream.h>
#include <conio.h>
class Linked_list_Queue
{
private :
struct node
{ int data;
node *next;
};
node *rear;
node *entry;
node *print;
node *front;
public :
Linked_list_Queue();
void Delete();
void Insert();
void print_list();
void show_working();
};
Linked_list_Queue :: Linked_list_Queue()
{
rear=NULL;
front=NULL;
}
//------------------- Insert () ----------------//
void Linked_list_Queue :: Insert()
{
int num;
cout<<"\n\n\n\n\n\t Masukan angka dalam Queue : ";
cin>>num;
entry=new node;
if(rear==NULL)
{
entry->data=num;
entry->next=NULL;
rear=entry;
front=rear;
}
else
{
entry->data=num;
entry->next=NULL;
rear->next=entry;
rear=entry;
}
cout<<"\n\n\t *** "<<num<<" sudah masuk dalam Queue. "<<endl;
cout<<"\n\n\n\t\t pres any key to return to menu. ";
getch();
}
//------------------------------- Delete() ------------------------//
void Linked_list_Queue:: Delete()
{ if(front==NULL)
cout<<"\n\n\n\t *** Error : Queue is empty. \n"<<endl;
else
{ int deleted_element=front->data;
node *temp;
temp=front;
front=front->next;
delete temp;
cout<<"\n\n\n\t *** "<<deleted_element<<"dihapus dari Queue. "<<endl;
}
cout<<"\n\n\n\t\t pres any key to return to Menu. ";
getch();
}
//------------------------- print_list()---------------------//
void Linked_list_Queue::print_list()
{
print=front;
if(print!=NULL)
cout<<"\n\n\n\n\n\t Angka-angka yang ada dalam Queue adalah : \n"<<endl;
else
cout<<"\n\n\n\n\n\t *** Tidak ada yang ditampilkan. "<<endl;
while (print!=NULL)
{
cout<<"\t"<<print->data<<endl;
print=print->next;
}
cout<<"\n\n\n\t\t Pres any key to return to Menu. ";
getch();
}
//----------------- show_working() ------------------//
void Linked_list_Queue:: show_working()
{
char Key=NULL;
do
{


cout<<"********** Implementation of Linked List as a Queue **********"<<endl;

cout<<"Pilih salah satu menu : "<<endl;


Reaksi:
cout<<"- Press \'D\' to Hapus data dari Queue"<<endl;

cout<<"- Press \'P\' to tampilkan data dari Queue"<<endl;

cout<<"- Press \'E\' to Exit"<<endl;
input :
;
cout<<" ";

cout<<"Masukan Pilihan : ";
Key=getche();
if(int(Key)==27 || Key=='e' || Key=='E')
break;
else if(Key=='i'|| Key=='I')
Insert();
else if(Key=='d'|| Key=='D')
Delete();
else if (Key=='p' || Key=='P')
print_list();
else
goto input;
}
while(1);
}
//-------------------------------- main() --------------------------- //
int main()
{
Linked_list_Queue obj;
obj.show_working();
return 0;
}










##########################################################
##########################################################

uas
##########################################################

no 2 stack

#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <conio.h>

struct nasabah
{
 char norek[12];
 char nama[25];
 char alamat[50];
 double saldo;
};

struct simpul
{
 char norek[12];
 char nama[25];
 char alamat[50];
 double saldo;
 struct simpul *berikut;
};

struct simpul *awal=NULL, *akhir=NULL;
struct nasabah bank;

void tambah_list_dibelakang(struct nasabah info);
void isi_list();
void sisip_list(struct simpul *first,struct nasabah info,char posisi[20]);
void sisip_isi_list();
void tampil_list();
void hapus_simpul(char info);
void hapus_data();
void hapus_list();
void menu();

void main()
{
// clrscr();
 menu();
 getch();
}
void menu()
{
 int pil;
 //clrscr();
 cout<<"Pilih Transaksi  : "<<endl;
 cout<<"            1. Isi List"<<endl;
 cout<<"            2. Sisip List"<<endl;
 cout<<"            3. Tampil List"<<endl;
 cout<<"            4. Hapus Salah Satu"<<endl;
 cout<<"            5. Hapus Semua List"<<endl;
 cout<<"            6. Exit"<<endl<<endl;
 cout<<"Tentukan Pilihan : ";
 cin>>pil;
 switch (pil)
 {
  case 1:
       isi_list();
       break;
  case 2:
       sisip_isi_list();
       break;
  case 3:
       tampil_list();
       break;
  case 4:
       hapus_data();
       break;
  case 5:
       hapus_list();
       break;
  case 6:
  //     clrscr();
//       gotoxy(21,13);cout<<"Terima Kasih Telah Menggunakan Program Ini";
       break;
 }
}

void isi_list()
{
 char jawab;

 do
 {
//  clrscr();
  cout<<"No Rekening : ";
  cin>>bank.norek;
  cout<<"Nama        : ";
  cin>>bank.nama;
  cout<<"Alamat      : ";
  cin>>bank.alamat;
  cout<<"Saldo Awal  : ";
  cin>>bank.saldo;
  tambah_list_dibelakang(bank);
  cout<<"\n\nTambah Data [Y/T] : ";
  cin>>jawab;
 }
 while (toupper(jawab)!='T');
 menu();
}

void tambah_list_dibelakang(struct nasabah info)
{
 struct simpul *baru;

 baru = (struct simpul *) malloc (sizeof(struct simpul));
 strcpy (baru -> norek,info.norek);
 strcpy (baru -> nama,info.nama);
 strcpy (baru -> alamat,info.alamat);
 baru -> saldo = info.saldo;

 if (awal == NULL)
 {
  awal = baru;
 }
  else
  {
   akhir -> berikut = baru;
  }
 akhir = baru;
 akhir -> berikut = NULL;
}

void tampil_list()
{
// clrscr();
 struct simpul *baca;
 int i;

 baca = awal;
 i = 1;

 while (baca != NULL)
 {
  cout<<"Data Ke : "<<i<<endl;
  cout<<"No Rekening  : "<<baca -> norek<<endl;
  cout<<"Nama         : "<<baca -> nama<<endl;
  cout<<"Alamat       : "<<baca -> alamat<<endl;
  cout<<"Saldo Awal   : "<<baca -> saldo<<endl;
  cout<<endl;
  i++;
  baca = baca -> berikut;
 }
 getch();
 menu();
}

void hapus_list()
{
 struct simpul *hapus;
 hapus = awal;
 while (hapus != NULL)
 {
  awal = hapus -> berikut;
  free(hapus);
  hapus = awal;
 }
 menu();
}


void sisip_list(struct simpul *first, struct nasabah info, char posisi[20])
{
 struct simpul *bantu,*baru;

 baru = new simpul;
 strcpy (baru -> norek,info.norek);
 strcpy (baru -> nama,info.nama);
 strcpy (baru -> alamat,info.alamat);
 baru-> saldo = info.saldo;
 bantu = first;

 do
 {
  if (strcmp(posisi,bantu->norek)!=0)
  {
   bantu = bantu->berikut;
  }
 }
 while (bantu !=NULL && strcmp(posisi,bantu->norek)!=0);

 baru->berikut = bantu -> berikut;
 bantu -> berikut = baru;
}

void sisip_isi_list()
{
 char cari[20];
 struct nasabah ganti;
//  clrscr();
  cout<<"Input Data Baru"<<endl;
  cout<<"No Rekening : ";
  cin>>ganti.norek;
  cout<<"Nama        : ";
  cin>>ganti.nama;
  cout<<"Alamat      : ";
  cin>>ganti.alamat;
  cout<<"Saldo Awal  : ";
  cin>>ganti.saldo;
  cout<<endl;
  cout<<"Data Akan Disisipkan Setelah No Rekening : ";
  gets(cari);
  sisip_list(awal,ganti,cari);
  menu();
}

void hapus_simpul(char info[20])
{
 struct simpul *bantu,*hapus;

 if (awal==NULL) { cout<<"\n Data List Kosong ";}
 else
 {
  if (strcmp(awal->norek,info)==0)
  {
   hapus=awal;
   awal=hapus->berikut;
   free(hapus);
  }
   else
   {
    bantu=awal;
    while ((strcmp(info,bantu->berikut->norek)!=0) && (bantu->berikut!=NULL))
    {
     bantu=bantu->berikut;
    }
    hapus=bantu->berikut;
    if (hapus!=NULL)
    {
     if (hapus!=akhir) { bantu->berikut=hapus->berikut;}
     else
     {
      akhir=bantu;
      akhir->berikut=NULL;
     }
     free(hapus);
    }
   }
  }
}


void hapus_data()
{
 char cari[20];
 char jawab;

// clrscr();

 cout<<"\nAda data yang akan dihapus Y/T :";cin>>jawab;
 if (toupper(jawab)=='Y')
 {
  cout<<"\nNo.Rekening yang akan dihapus :";
  gets(cari);
  hapus_simpul(cari);
  menu();
 }
}


queeee 3

#include <stdio.h>
#include <conio.h>
#define MAX 6
typedef struct
{ int data [
MAX];
int head;
int tail;
}
Queue;
Queue antrian;
void Create()
{
antrian.head=antrian.tail=-1;
}
int IsEmpty()
{ if(antrian.tail==-1)
return 1;
else
return 0;
} int IsFull()
{ if(antrian.tail==MAX-1)
return 1;
else
return 0;
}
void Enqueue(int data)
{ if(IsEmpty()==1)
{
antrian.head=antrian.tail=0;
antrian.data[antrian.tail]=data;
printf("%d masuk !",antrian.data[antrian.tail]);
void Tampil();

{ if(IsEmpty()==0)
{
for(int i=antrian.head;i<=antrian.tail;i++)
{
printf("%d ",antrian.data[i]);
}}
else
printf("Data Kosong !\n");
}
}
else
if(IsFull()==0)
{
antrian.tail++;
antrian.data[antrian.tail]=data;
printf("%d masuk !", antrian.data[antrian.tail]);
}
} int Dequeue()
{ int i;
int e=antrian.data[antrian.head];
for(i=antrian.head;i<=antrian.tail-1;i++)
{
antrian.data[i]=antrian.data[i+1];
}
antrian.tail--;
return e;
}
void Clear()
{
antrian.head=antrian.tail=-1;
printf("Data Clear");
}
void Tampil()
{ if (
IsEmpty()==0)
{
for (int i=antrian.head;i<=antrian.tail; i++)
{ printf("%d ",antrian.data[i]);
}}
else
{
printf("Data Kosong\n");
}}
void main()
{ int pil;
int data;
Create();
do
{

printf ("1. Enqueue\n");
printf ("2. Dequeue\n");
printf ("3. Tampil\n");
printf ("4. Clear\n");
printf ("5. Keluar\n");
printf ("--------------------------------------\n");
printf ("Masukkan Pilihan Anda -> ");
scanf("%d",&pil);
switch(pil){
case 1:
printf("Data : ");
scanf("%d",&data);
Enqueue(data);
break;
case 2:
printf("Elemen yang keluar : %d", Dequeue());
break;
case 3:
Tampil();
break;
case 4:
Clear();
break;
case 5:

break;
}
getch();
} while(pil!=5);
}

kalo bermanfaat tolong di share bro :D :D
EmoticonEmoticon