Anda di halaman 1dari 42

1. #include <stdio.

h>

#define N 8

void isiNilai();

void cariNilai();

void tampilkan();

double nilai[N];

main()

isiNilai();

tampilkan();

cariNilai();

void isiNilai()

double nilainya;

int i;

printf("\nMENGENTRI NILAI\n");

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

{
printf("\nKetikkan nilai ke-%d: ", i);

scanf("%lf", &nilainya);

nilai[i] = nilainya;

printf("\nEntri Nilai selesai\n");

printf("Tekan tombol ENter!!!!");

void cariNilai()

double nilainya;

int i, posisi, tanda;

printf("\nKetikan nilai yg dicari: ");

scanf("%lf", &nilainya);

//mulai mencari

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

if(nilai[i] == nilainya)

tanda = 1; //data ditemukan

posisi = i;

break;

}
else

tanda = 0; //tdk ditemukan

continue;

if(tanda)

printf("\nData ditemukan pada posisi: %d\n",posisi);

else

printf("\nData tidak ditemukan\n");

void tampilkan()

int i;

printf("\nDAFTAR NILAI\n\n");

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

printf("Nilai pada posisi %d: %0.2lf\n", i, nilai[i]);

}
printf("\nSelesai!!! Tekan tombol Enter...");

}
2. #include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define N 5

int cariData(char nimnya[]);

char nim[N][4]; //variable global berupa array sejumlah nim mahasiswa

main(){

int i, status;

char nimnya[4];

printf("Inputkan dulu nim mahasiswa\n");

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

printf("Ketik nim ke-%d: ", i+1);

gets(nimnya); fflush(stdin);

strcpy(nim[i], nimnya);

printf("entri selesai... Tekan Enter...");

printf("\nKetik NIM yang akan dicari: ");

gets(nimnya); fflush(stdin);

status = cariData(nimnya);
if(status){

printf("Data nim: %s di temukan...\n", nimnya);

else{

printf("Data tidak ditemukan...\n");

int cariData(char nimnya[]){

int i, status;

//cari nim tersebut di array nim

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

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

status = 1;

break;

else {

status = 0;

return status;

}
3. #include <stdio.h>

#include <stdlib.h>
#include <string.h>

#define N 5

void cariData(char namanya[]);

char nama[N][4]; //variable global berupa array sejumlah nim mahasiswa

main(){

int i;

char namanya[4];

printf("Inputkan dulu nama mahasiswa\n");

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

printf("Ketik nama ke-%d: ", i+1);

gets(namanya); fflush(stdin);

strcpy(nama[i], namanya);

printf("entri selesai... Tekan Enter...");

printf("\nKetik Nama yang akan dicari: ");

gets(namanya); fflush(stdin);

cariData(namanya); //cari di array

}
void cariData(char namanya[]){

int i, jumlah = 0, posisi;

//cari nim tersebut di array nim

printf("Data yang dicari: %s\n", namanya);

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

if(!strcmp(namanya, nama[i])){

posisi = i;

jumlah++;

printf("Ada pada posisi: %d\n", posisi);

printf("Banyaknya data yang ditemukan: %d buah\n", jumlah);

}
4. /*

Nama File: search3.c

Program ini merupakan pengembangan dari program sebelumnya

dan memperlihatkan penggunaan fungsi pencarian.

*/

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define N 30 //banyaknya mahassiswa

#define MID 0.25 //prosentase 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 memili 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

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

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

main(){

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

char nimnya[4];

printf("Contoh Pencarian\n\n");

//panggil fungsi judul()

judul();

//panggil fungsi bacaMhs()

bacaMhs();

printf("Menampilkan Identitas Seluruh Mahasiswa\n");

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

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


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

printf("\n");

printf("\nKetikkan NIM yang dicari: ");

gets(nimnya); fflush(stdin);

posisi = cariData(nimnya);

if(posisi != -999){

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

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

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

printf("Selesai...Tekan Enter...");

void judul(){

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

printf("Program Pengolahan Data Mahasiswa\n");

printf("Programmer: DINDA\n");

printf("Program ini digunakan untuk mencontohkan pembuatan fungsi tanpa nilai balik\n");

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

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

}
void bacaMhs(){

int i; //variable konter perulangan

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

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

printf("\nMembaca identitas sejumlah Mahasiswa\n");

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

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

printf("Ketikkan nama Mahasiswa: ");

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

printf("Ketikkan NIM Mahasiswa: ");

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

//masukan 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 mengentri nilai2nya dg memanggil

//fungsi bacaNilai(), sbb

bacaNilai(i);

printf("\nEntri Data selesai...Tekan enter...");

void bacaNilai(int i){


double midnya, uasnya, tugasnya, quiznya, nAkhirnya;

char nHurufnya;

printf("\nKetik nilai MID : ");

scanf("%lf", &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 panggil fungsi untuk menghitung nilai akhir dan

//tampung nilai baliknya pada variabel nAkhirnya

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

//lalu panggil fungsi untuk mengkonveri nilai akhir ke nilai huruf

//dg 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 dimodifikasi 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");

//salin dulu data mahasiswa ke variabel sementara

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

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

//tampung dulu nilai akhir dan nilai huruf

nAkhirnya = dataMhs[i].nilai.nAkhir;

nHurufnya = dataMhs[i].nilai.nHuruf;

//tampilkan informasi mahasiswa yang diminta

printf("Nama Mahasiswa : %s\n", namanya);

printf("Nomor Induk Mahasiswa : %s\n", nimnya);

printf("\tNilai Akhir : %0.1lf\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 tdk ditemukan

return posisi; //posisi data dikirim sebagai nilai balik

}
5.

/*
Nama File: sorting1.c

Program ini mendemonstrasikan pembuatan fungsi pengurutan atau sorting

metode selection sorting sebagai metoda paling simpel.

Sorting dalam contoh ini bersifat ascending atau terurut dari nilai

kecil ke besar

*/

#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();

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 selesai... Tekan enter...");

//panggil fungsi untuk mengurutkan data[]

urutkan();

//data yg telah diurut ditampilkan ke layar

printf("\nData terurut secara ascending...\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...");

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

// pertukarkan posisi data

temp = data[indexMin];

data[indexMin] = data[i];

data[i] = temp;

}
}

6. /*

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>

//konstanta N 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("\nEntri selesai...tekan enter...");

//panggil fungsi untuk mengurutkan data[]

urutkan();

//data yg telah diurut ditampilkan ke layar

printf("\nData 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...");

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 dianggap 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

// pertukarkan posisi data

temp = data[indexMaks];

data[indexMaks] = data[i];

data[i] = temp;

}
7. /*

Nama File: sorting3.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 selesai...tekan enter...");

//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

// pertukarkan posisi data

temp = data[indexMin];

data[indexMin] = data[i];

data[i] = temp;

void infokan(){

int i, datanya;

//data yg telah diurut ditampilkan ke layar

printf("\nData terurut\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...");

}
8. /*

Nama File: sorting4.c


Program ini mendemonstrasikan penggunaan fungsi sorting dengan

menggunakan array of struct dari data mahasiswa sebelumnya.

sifat urutan adalah descending atau dari besar ke kecil

*/

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define N 3 //banyaknya mahassiswa

#define MID 0.25 //prosentase 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 memili 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

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("\nMenampilkan Identitas Seluruh Mahasiswa\n");

printf("Tekan Enter...");

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

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

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

printf("\n");

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

printf("Tekan Enter...");

printf("\nKetikkan NIM yang dicari: ");

gets(nimnya); fflush(stdin);
posisi = cariData(nimnya);

if(posisi != -999){

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

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

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

printf("\nMengurutkan data Mahasiswa\n");

printf("Tekan Enter...");

urutkan();

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

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

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

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

printf("\n");

printf("Selesai...Tekan Enter...");

void judul(){

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

printf("Program Pengolahan Data Mahasiswa\n");

printf("Programmer: Antu\n");
printf("Program ini digunakan untuk mencontohkan pembuatan fungsi tanpa nilai balik\n");

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

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

void bacaMhs(){

int i; //variable konter perulangan

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

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

printf("\nMembaca identitas sejumlah Mahasiswa\n");

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

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

printf("Ketikkan nama Mahasiswa: ");

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

printf("Ketikkan NIM Mahasiswa: ");

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

//masukan 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 mengentri nilai2nya dg memanggil

//fungsi bacaNilai(), sbb

bacaNilai(i);

}
printf("\nEntri Data selesai...Tekan enter...");

void bacaNilai(int i){

double midnya, uasnya, tugasnya, quiznya, nAkhirnya;

char nHurufnya;

printf("\nKetik nilai MID : ");

scanf("%lf", &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 panggil fungsi untuk menghitung nilai akhir dan

//tampung nilai baliknya pada variabel nAkhirnya

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


//lalu panggil fungsi untuk mengkonveri nilai akhir ke nilai huruf

//dg 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 dimodifikasi 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");

//salin dulu data mahasiswa ke variabel sementara

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

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

//tampung dulu nilai akhir dan nilai huruf


nAkhirnya = dataMhs[i].nilai.nAkhir;

nHurufnya = dataMhs[i].nilai.nHuruf;

//tampilkan informasi mahasiswa yang diminta

printf("Nama Mahasiswa : %s\n", namanya);

printf("Nomor Induk Mahasiswa : %s\n", nimnya);

printf("\tNilai Akhir : %0.1lf\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 tdk 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

// pertukarkan posisi data

temp = dataMhs[indexMaks];

dataMhs[indexMaks] = dataMhs[i];

dataMhs[i] = temp;

Anda mungkin juga menyukai