Minggu 05 – Algoritma Sorting & Searching

9 May 2011 at 18:34 (Algoritma & Metode OOP (C++))

Week 5 – Tugas Kelompok 3 – 0454T

Soal Algoritma dan MOOP

Pertemuan 5 (Tugas kelompok ke-3)


  1. Buatlah program untuk menginputkan sejumlah bilangan bulat misalnya N kemudian menampilkan bilangan yang sudah diinputkan tersebut dalam keadaan terurut secara descending. Algoritma yang digunakan adalah bubble sort.
  1. Tulis program untuk mengurutkan dan mencari data dengan keyword NIM terhadap data mahasiswa yang setiap record-nya terdiri dari field NIM (10 karakter), Nama (25 karakter), dan IPK (float). Data diurutkan secara descending berdasarkan NIM Gunakan struktur data array of struct dan algoritma insertion sort. Pertama-tama program minta input jumlah mahasiswa yang akan diinputkan, kemudian baru menginputkan data mahasiswa dan kemudian menampilkan data mahasiswa tersebut dalam keadaan urut secara descending.

 Jawaban

 

  1. Buatlah program untuk menginputkan sejumlah bilangan bulat misalnya N kemudian menampilkan bilangan yang sudah diinputkan tersebut dalam keadaan terurut secara descending. Algoritma yang digunakan adalah bubble sort.

Jawaban programnya:

/*—- METODE DES BUBBLE SORT —-*/

#include <stdio.h>

#include <conio.h>

int main() {

int i, j, n; //Deklarasi index untuk array

int Tmp; //Tmp penampung elemen array

int Arr[50]; //Deklarasi Array

//Aplikasi dimulai

printf(“Inputkan banyak data yang akan diurutkan : “);

scanf(“%i”, &n);

//Input array

for(i = 0; i < n; i++) { //Perulangan untuk inputan array

printf(“Masukan data ke %i : “, i + 1);

scanf(“%i”, &Arr[i]);

}

//Lakukan sorting descending dengan metode bubble

for(i = 1; i < n; i++) { //Lakukan perulangan untuk akses array

for(j = 0; j < n – 1; j++) { //Lakukan perulangan untuk pencocokan

if(Arr[j] < Arr[j + 1]) { //Cocokkan data 1 dengan data yang disebelahnya

Tmp = Arr[j]; //Tampung array lama

Arr[j] = Arr[j + 1]; //Ganti yang lama dengan array baru

Arr[j + 1] = Tmp; //Array baru ditukar dengan yang lama

}

}

}

//Tampilkan Hasil

printf(“\nSetelah Pengurutan\n”);

for(i = 0; i < n; i++) { //Perulangan untuk tampilan Array

printf(“Elemen ke %i : %i\n”, i + 1, Arr[i]);

}

getch(); //Tahan tampilan

}

Jawaban hasil output programnya:

  1. Tulis program untuk mengurutkan dan mencari data dengan keyword NIM terhadap data mahasiswa yang setiap record-nya terdiri dari field NIM (10 karakter), Nama (25 karakter), dan IPK (float). Data diurutkan secara descending berdasarkan NIM Gunakan struktur data array of struct dan algoritma insertion sort. Pertama-tama program minta input jumlah mahasiswa yang akan diinputkan, kemudian baru menginputkan data mahasiswa dan kemudian menampilkan data mahasiswa tersebut dalam keadaan urut secara descending.

 

Jawaban programnya:

#include <iostream>

#include <iomanip>

#include <string>

#include <cstring>

using namespace std;

#define ELEMENTS 6

inline int SequentialSearch(char kode[11][7], char key[7])

{

int idx=(-1);

for (int i=0; i<=10; i++)

{

if ( strcmp(key,kode[i])==0)

{ idx=i; }

}

return idx;

}

void insertion_sort(int x[],int length)

{

int key,i;

for(int j=1;j<length;j++)

{

key=x[j];

i=j-1;

while(x[i]>key && i>=0)

{

x[i+1]=x[i];

i–;

}

x[i+1]=key;

}

}

struct mhs

{

char NIM[10];

char NAMA[25];

float IPK;

};

typedef mhs mhsarr[100];

int main()

{

mhsarr x;

bool keluar=false;

int menu,i=0, z=0, totJum;

char tmpNim;

while (keluar==false)//menampilkan menu utama

{

cout << “\nMENU UTAMA”;

cout << “\n1. Input Data Mahasiswa”;

cout << “\n2. Tampil Data Mahasiswa secara Descending (Insertion Sort)”;

cout << “\n3. Keluar”;

cout << “\n\nMasukan pilihan anda [1-3] :”;

cin >> menu;

if(menu==1)

{

int jumlah;

cout<<“Masukan jumlah data yang akan diinput : “;

cin>>jumlah;

for (int i=0;i<jumlah;i++)

{

cout<<“\nNIM : “;

cin>>x[z].NIM;

cout<<“NAMA: “;

cin>>x[z].NAMA;

cout<<“IPK : “;

cin>>x[z].IPK;

cout<<endl;

z++;

totJum=totJum+jumlah;

}

}

else if (menu==2)

{

char *isi=””;

for (i=0;i<totJum;i++)

{

strcpy(isi,x[i].NIM);

//strcat(isi,”,”);

}

int A[ELEMENTS];

A[ELEMENTS]=atoi(isi);

//insertion_sort(z,totJum);

cout<<isi;

cout << “\n=====================================================”;

cout<<“\n|”<<setw(13)<<“NIM |”;

cout<<setw(32)<<“NAMA |”<<setw(7)<<“IPK |”<<endl;

cout << “=====================================================\n”;

for (int i=0;i<z;i++)

{

cout<<“|”<<setw(11)<<x[i].NIM<<” |”;

cout<<setw(30)<<x[i].NAMA<<” |”;

cout<<setw(5)<<x[i].IPK<<” |”<<endl;

}

cout << “=====================================================\n”;

}

else  if (menu=3)

{

keluar=true;

cout << “Terima Kasih\n”;

}

}

system(“pause”);

}

Hasil output programnya:

Save to PDF

1 Comment

  1. Fransisca Indrasari said,

    trimakasih gan.. membantu

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: