Anda di halaman 1dari 18

NAMA:SYUKRI BIN SYUKUR

NIM:22338033

PRODI S1 TEKNIK MESIN

1.SORTING.C

/* Nama file : sorting1.c

Perogram ini mendemonstrasikan pembuatan fungsi pengurutan atau sorting metode selection
sorting sebagai metode paling simpel. sorting dalam contoh ini bersifat ascending atau terurut dari
nilai kecil ke besar*/

#include<stdio.h>

#include<stdlib.h>

// konstanta N menunjukkan banyak nya data

#define N 5

// variabel global berupa array berisi data int data [N];

int data [N];

void urutkan ();

main(){

int i;

int datanya;

printf ("isikan nilai datanya dulu berupa bilangan bulat \n");

for (i= 0 ; i < N ; i++ ){

printf ("data indeks ke-%d :", i);

scanf ("%d", &datanya); fflush (stdin);

//isikan array data []

data [i] = datanya;

printf("\n Entri selesai... Tekan enter... ");

getch();

// panggil fungsi untuk mengurutkan data []

urutkan ();
// data yang telah diurut ditampilkan ke layar

printf("\n data turut secara ascending...\n");

for (i = 0; i = 1<N ; i++)

// salin dulu datanya dari array

datanya = data [i];

printf ("%d\t", datanya);

printf ("\n" ); //pindah baris

printf (" selesai... tekan enter...");

getch();

void urutkan (){

// metode selection sort

int indexMin, i, j;

int temp;

// loop untuk seluruh data

for (i = 0; i < N-1 ; i++ ){

// elemen sekarang yang dianggap minimum

indexMin = i;

// periksa elemen paling kecil

for ( j = i + 1 ; j < N ; j++ ) {

if ( data [j] < data [indexMin]){

indexMin = j ;

if ( indexMin != i) { // kalau posisinya bukan posisi awal

// pertukaran posisi data

temp = data [indexMin];

data [indexMin] = data [i];

data [i] = temp;


}

}
2.SORTING.C

/* nama file : sorting2.c

program ini mendemonstrasikan penggunaan fungsi sorting dengan sifat urutan adalah descending
atau dari besar ke kecil */

#include<stdio.h>

#include<stdlib.h>

//konstantaN menunjukkan banyaknya data

#define N 5

// variabel global berupa array berisi data int

int data [N];

void urutkan();

main ()

int i;

int datanya;

printf(" isikan datanya dulu berupa nilai bilangan bulat\n");

for ( i=0 ; i<N ; i++ ) {

printf(" data indeks ke-%d : ", i);

scanf("%d", &datanya); fflush (stdin);

// isikan ke array data []

data [i] = datanya;

printf ("\n entri selesai...tekan enter...");

getch();
// panggil fungsi untuk mengurutkan data []

urutkan ();

// data yang telah di urut ditampilkan ke layar

printf("\n data terurut descending...\n");

for ( i=0 ; i<N ; i++ ){

// salin dulu data dari array

datanya = data [i];

printf("%d\t", datanya);

printf("\n"); // pindah baris

printf("selesai...tekan enter...");

getch();

void urutkan () { // metode selection sort

int indexMaks,i,j ;

int temp;

// loop untuk seluruh data

for ( i = 0 ; i < N-1 ; i++ ) {

// elemen sekarang yang di anggap nilai maksimum

indexMaks = i;

// periksa elemen paling besar

for ( j = i+1 ; j < N ; j++ ) {

if (data [j] > data [indexMaks] ) { // tanda '<' diganti dengan tanda '>'

indexMaks = j;

if ( indexMaks != i) { // kalau posisinya bukan posisi awal

// pertukaran posisi data


temp = data [indexMaks];

data [indexMaks] = data [i];

data [i] = temp;

}
3.SORTING C

/* nama file : sorting 3.c

program ini mendemonstrasikan penggunaan fungsi sorting dan fungsi untuk mendisplay data */

#include<stdio.h>

#include<stdlib.h>

// konstanta N menunjukkan banyaknya data

#define N 5

// variabel global berupa array berisi data int

int data [N];

void urutkan ();

void infokan ();

main(){

int i ;

int datanya;

printf (" isikan datanya dulu berupa nilai bilangan bulat\n");

for( i =0; i< N ; i++){

printf (" data indeks ke-%d : ", i);

scanf ("%d", &datanya); fflush (stdin);

// isikan ke array data[]

data [i] = datanya;

printf ("\nentri selasai...tekan enter...");

getch();

// panggil fungsi untuk mengurutkan data[]

urutkan();

// data yg telah diurut ditampilkan ke layar

// dengan memanggil fungsi infokan ()


infokan();

void urutkan() { // metode selection sort

int indexMin, i, j ;

int temp;

//loop untuk seluruh data

for (i = 0 ;i < N-1 ; i++ ){

// elemen sekarang yang dianggap minimum

indexMin = i;

// periksa elemen paling kecil

for ( j = i+1 ; j < N ; j++ ) {

if (data [j] < data [indexMin]){

indexMin = j;

if (indexMin != i) { // kalau posisinya bukan posisi awal

// pertukaran posisi data

temp = data [ indexMin];

data[indexMin] = data [i];

data [i] = temp;

void infokan(){

int i, datanya;

//data yang telah diurut ditampilkan ke layar

printf ("\ndata terurut\n");

for (i = 0; i < N; i++){

datanya = data [i];

printf ("%d\t", datanya);

}
printf ("\n"); //pindah baris

printf ("selesai ...tekan enter ...");

getch();

}
4.SORTING C

/* nama file : sorting 4.c

program ini mendemonstrasikan penggunaan fungsi sorting dengan menggunakan array of struct
dari mahasiswa sebelumnya.

sifat urutan adalah descending atau dari besar ke kecil */

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define N 3 // banyaknya mahasiswa

#define MID 0.25 // presentase nilai mid adalah 25 persen

#define UAS 0.30 // prosentase nilai uas adalah 30 persen

#define TGS 0.30 // prosentase nilai tugas adalah 30 persen

#define QSZ 0.15 // prosentase nilai quiz adalah 15 persen

// mendefinisikan tipe bentukan berupa struct bernama MHS

typedef struct MHS {

char nama [30]; // panjang nama mahasiswa adalah 30 karakter

char nim [4] ; // panjang nim mahasiswa adalah 5 karakter

} MHS ; // nama tipe bentukan adalah MHS

typedef struct NILAI {

double mid;

double uas;

double tugas;

double quiz;

double nAkhir; // dihitung dengan fungsi hitungAkhir ()

char nHuruf; // diisi melalui pemanggilan fungsi konversiHuruf()

} NILAI;
// kedua tipe MHS dan NILAI digunakan untuk tipe bentukan baru

// suatu stract of struct atau struct di dalam struct, sehingga

// struct yang baru memilih seluruh data baik identitas maupun

// nilai2 mahasiswa, sbb:

typedef struct DATAMHS {

MHS mhs;

NILAI nilai;

} DATAMHS;

// deklarasi fungsi yang akan digunakan

void judul ();

void bacaMhs ();

void bacaNilai ( int i); // fungsi untuk mengisi nilai mahasiswa

void infoMhs ( int i);

double hitungAkhir (double m, double u, double t, double q);

char konversiHuruf ( double na );

int cariData ( char nimnya [] ); // fungsi ini mencari posisi data yg dicari

void urutkan ();

// deklarasi variabel global berupa array of struct dari tipe DATAMHS sbb:

DATAMHS dataMhs [N]; // banyak mahasiswa adalah N orang

void main () {

int i, posisi; // konter perulangan untuk menampilkan data mahasiswa

char nimnya [4];

printf("contoh pengurutan\n\n");

// panggil fungsi judul ()

judul ();

// panggil fungsi bacaMhs ()

bacaMhs ();

printf("\n menampilkan identitas seluruh mahasiswa\n");


printf("tekan enter...");

getch();

for (i=0 ; i<N ; i++ ){

// panggil fungsi infoMhs() melaludari i=0, atau yang pertama

infoMhs (i); // nilai i adalah passing prameter yang menyatakan no indeks array

printf("\n");

printf("\nMencari mahasiswa melalui NIM\n");

printf ("tekan enter...");

getch ();

printf("\n ketikkan NIM yang dicari : ");

gets (nimnya) ; fflush (stdin);

posisi = cariData (nimnya);

if (posisi != -999 ){

printf ("\n data ditemukan...\n");

infoMhs (posisi); // kirimkan nilai posisi data untuk ditampilkan

else printf ("\n data tidak ditemukan....\n");

printf ("\nmengurutkan data mahasiswa\n");

printf (" tekan enter...");

getch();

urutkan ();

printf ("data diurutkan secara descending...\n");

for ( i =0 ; i< N ; i++ ) {

// panggil fungsi infoMhs () mulai dari i=0 , atau yang pertama

infoMhs (i); // nilai i adalah parameter yang menyatakan no indeks array

printf ("\n");

printf ("selesai...tekan enter...");


getch();

void judul()

{ printf("==============================\n");

printf ("program pengolahan data mahasiswa\n");

printf ("programmer : Antu\n");

printf ("program ini digunakan untuk mencontohkan pembuatan fungsi tanpa niali balik\n");

printf ("==============================\n");

printf (" tekan tombol enter...");

getch();

void bacaMhs ()

{ int i; // variabel konter perulangan

char namanya [30]; // penyimpanan sementara nama mahasiswa

char nimnya [4]; // penyimpanan sementara nim mahasiswa

printf("\n membaca identitas sejumlah mahasiswa\n");

printf ("==============================\n");

for ( i=0 ; i < N ; i++ ) {

printf ("ketikkan nama mahasiswa :");

gets (namanya); fflush (stdin );// baca nim mahasiswa

printf ("ketikkan NIM mahasiswa :");

gets (nimnya); fflush (stdin);

// masukkan nama dan nim mahasiswa ke array of struct

strcpy (dataMhs [i].mhs. nama, namanya); // perhatikan cara mengakses field

strcpy (dataMhs [i].mhs. nim, nimnya);

// sekalian juga mengantri nilai2nya dg memanggil

//fungsi bacaNilai(), sbb :

bacaNilai (i);
}

printf ("\nentri data selesai...tekan enter...");

getch();

void bacaNilai (int i) {

double midnya,uasnya,tugasnya,quiznya,nAkhirnya;

char nHurufnya;

printf("\nketik nilai MID : ");

scanf("%1f", &midnya); fflush (stdin);

printf("Ketik nilai UAS : ");

scanf("%lf", &uasnya); fflush(stdin);

printf("Ketik Nilai Tugas : ");

scanf("%lf, &tugasnya"); fflush(stdin);

printf("ketik Nilai Quiz : ");

scanf("%lf", &quiznya); fflush(stdin);

//lalu masukkan ke array dataMhs, sbb

dataMhs[i].nilai.mid =midnya;

dataMhs[i].nilai.uas = uasnya;

dataMhs[i].nilai.tugas =tugasnya;

dataMhs[i].nilai.quiz = quiznya;

//lalu memanggil fingsi untuk menghitung nilai akhir dam

//tampung nilai baliknya pada variabel nakhirnya

nAkhirnya =hitungAkhir(midnya,uasnya,tugasnya,quiznya);

/* lalu panggil fungsi untuk mengkonversi nilai akhir ke

nilai huruf dengan

passing parameter berupa nilai akhir atau nAkhirnya

tampung hasil atau nilai baliknya pada variabel

nHurufnya */

nHurufnya = konversiHuruf(nAkhirnya);
//simpan nilai akhir dan nilai huruf ke dataMhs

dataMhs[i].nilai.nAkhir = nAkhirnya;

dataMhs[i].nilai.nHuruf = nHurufnya;

printf ("\n");

//fungsi ini harus di modifikasi melibatkan data nilai2

void infoMhs(int i)

{ char namanya[30]; //penyimpan sementara nama mahasiswa

char nimnya[4]; //penyimpan sementara nim mahasiswa

double nAkhirnya;

char nHurufnya;

printf("\nInformasi identitas mahasiswa\n");

printf("==============================\n");

strcpy(namanya, dataMhs[i].mhs.nama);

strcpy(nimnya, dataMhs[i].mhs.nim);

nAkhirnya= dataMhs[i].nilai.nAkhir;

nHurufnya= dataMhs[i].nilai.nHuruf;

printf("nama mahasiswa : %s\n",namanya);

printf("nomor induk mahasiswa : %s\n",nimnya);

printf("\tNilai Akhir : %0.llf\n",nAkhirnya);

printf("\tnilai huruf : %c\n",nHurufnya);

printf("==============================\n");

double hitungAkhir (double m,double u,double t,double q){

double nAkhirnya;

nAkhirnya = m * MID + u* UAS + t* TGS + q * QSZ;


return nAkhirnya;

char konversiHuruf (double na){

char nHurufnya;

// tentukan nilai hurufnya

if ((na >= 81.0) && ( na<= 100.0))

nHurufnya = 'A';

else if (na >= 76.0)

nHurufnya = 'B';

else if ( na >= 56.0)

nHurufnya = 'C';

else if ( na >= 45.0)

nHurufnya = 'D';

else nHurufnya = 'E';

return nHurufnya; // kirim hasilnya sebagai nilai balik

int cariData ( char nimnya [] ) {

int i, posisi;

// cari nim tersebut di array nim

for ( i = 0; i < N ; i++ ) {

if ( ! strcmp ( nimnya, dataMhs [i] . mhs. nim)) {

posisi = i;

break;

else {

posisi = -999; // nilai ini menunjukkan data tidak ditemukan

return posisi; // posisi data dikirim sebagai nilai balik

}
void urutkan () { // metode selection sort

int indexMaks, i, j;

DATAMHS temp; // variabel sementara berupa struct DATAMHS

//loop untuk seluruh data

for ( i = 0; i < N-1 ; i++ ) {

// elemen sekarang yang dianggap nilai maksimum

indexMaks = i;

//periksa nilai akhir terbesar

for (j = i+1; j < N; j++){

if (dataMhs [j].nilai.nAkhir > dataMhs [indexMaks].nilai.nAkhir){

indexMaks = j;

if ( indexMaks != i) { // kalau posisinya bukan posisi awal

// pertukaran posisi data

temp= dataMhs [indexMaks] ;

dataMhs [indexMaks] = dataMhs [i];

dataMhs [i] = temp;

Anda mungkin juga menyukai