algoritma shuffle exchange (simd perfect shuffle) menggunakan bahasa c dengan compiler gcc pada...

4
Algoritma Shuffle Exchange (SIMD Perfect Shuffle) Menggunakan Bahasa C dengan Compiler GCC pada Sistem Operasi Linux Ubuntu 12.04 Disusun oleh 1. Pebi Yudha K. 2A111278 2. Suratmin 2A113146 3. Anggun Hariawan 2A113068 Kelas 4KB02 (Mahasiswa Transfer) Fakultas Ilmu Komputer dan Teknologi Informasi UNIVERSITAS GUNADARMA

Upload: pebi-yudha-krisnapati

Post on 27-Nov-2015

55 views

Category:

Documents


2 download

DESCRIPTION

Algoritma Shuffle Exchange (SIMD Perfect Shuffle) Menggunakan Bahasa C dengan Compiler GCC pada Sistem Operasi Linux Ubuntu 12.04

TRANSCRIPT

Page 1: Algoritma Shuffle Exchange (SIMD Perfect Shuffle) Menggunakan Bahasa C dengan Compiler GCC pada Sistem Operasi Linux Ubuntu 12.04

Algoritma Shuffle Exchange (SIMD Perfect Shuffle)Menggunakan Bahasa C dengan Compiler GCC

pada Sistem Operasi Linux Ubuntu 12.04

Disusun oleh

1. Pebi Yudha K. 2A1112782. Suratmin 2A1131463. Anggun Hariawan 2A113068

Kelas 4KB02 (Mahasiswa Transfer)

Fakultas Ilmu Komputer dan Teknologi Informasi

UNIVERSITAS GUNADARMA

Page 2: Algoritma Shuffle Exchange (SIMD Perfect Shuffle) Menggunakan Bahasa C dengan Compiler GCC pada Sistem Operasi Linux Ubuntu 12.04

Kode Program Selengkapnya: shuffle-exchange.c

/******************************************************************************* * * * Algoritma Shuffle Exchange * * Hak Cipta (C) Pebi Yudha K. - 2013 * * * * UNIVERSITAS GUNADARMA * * * ******************************************************************************/

#include <math.h>#include <stdio.h>#include <stdlib.h>#include <time.h>

typedef unsigned short int USHORT;

void shuffle(USHORT banyak_prosesor, int *prosesor, int *dummy);void exchange(USHORT banyak_prosesor, int *prosesor, int *dummy);

int main(void){

USHORT n_prosesor, indeks;float log_n;clock_t t;int prosesor[256], dummy_prosesor[256];

for (;;){

printf("\nTentukan banyak prosesor (integer maks. 256) : ");scanf("%hu", &n_prosesor);

if ((n_prosesor > 0) && (n_prosesor <= 256)) break;}

printf("\nMasukan data untuk setiap prosesor\n");

for (indeks = 0; indeks < n_prosesor; indeks++){

printf("Data untuk prosesor %d: ", indeks + 1);scanf("%d", &prosesor[indeks]);

}

printf("\nData di setiap prosesor\n");

for (indeks = 0; indeks < n_prosesor; indeks++)printf("%d\t", prosesor[indeks]);

log_n = log10(n_prosesor) / log10(2);

for (indeks = 1; indeks <= log_n; indeks++){

printf("\nIterasi ke-%d\n", indeks);t = clock();

shuffle(n_prosesor, prosesor, dummy_prosesor);

Page 3: Algoritma Shuffle Exchange (SIMD Perfect Shuffle) Menggunakan Bahasa C dengan Compiler GCC pada Sistem Operasi Linux Ubuntu 12.04

exchange(n_prosesor, prosesor, dummy_prosesor);

t = clock() - t;printf("\nWaktu proses %f s\n", ((double) t) / CLOCKS_PER_SEC);

}

printf("\n");return EXIT_SUCCESS;

}

void shuffle(USHORT banyak_prosesor, int *prosesor, int *dummy){

USHORT indeks, j, tengah;

tengah = (banyak_prosesor / 2) - 1;

for (indeks = 0; indeks < banyak_prosesor; indeks++){

if ((indeks >= 0) && (indeks <= tengah))j = 2 * indeks;

elsej = (2 * indeks) + 1 - banyak_prosesor;

dummy[indeks] = prosesor[j];}

for (indeks = 0; indeks < banyak_prosesor; indeks++){

prosesor[indeks] = dummy[indeks];printf("%d\t", dummy[indeks]);

}

return;}

void exchange(USHORT banyak_prosesor, int *prosesor, int *dummy){

USHORT indeks;int temp;

printf("\n");

for (indeks = 0; indeks < banyak_prosesor; (indeks += 2)){

dummy[indeks] = prosesor[indeks + 1];dummy[indeks + 1] = prosesor[indeks];

}

for (indeks = 0; indeks < banyak_prosesor; indeks++)printf("%d\t", dummy[indeks]);

printf("\n");

for (indeks = 0; indeks < banyak_prosesor; indeks++){

prosesor[indeks] += dummy[indeks];printf("%d\t", prosesor[indeks]);

}

Page 4: Algoritma Shuffle Exchange (SIMD Perfect Shuffle) Menggunakan Bahasa C dengan Compiler GCC pada Sistem Operasi Linux Ubuntu 12.04

return;}

Tampilan Input/Output dengan Input 16 Prosesor