Anda di halaman 1dari 29

TUGAS LAPORAN

PENGANTAR CODING

Dosen Pengampu:

Dr. Wahyudi, s.Kom., M.Sc.

Oleh:

Pebri Andika Pratama

23073101

PROGRAM STUDI PENDIDIKAN TEKNIK OTOMOTIF

FAKULTAS TEKNIK

UNIVERSITAS NEGERI PADANG

2023
1.Program :

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

#include <conio.h>

// konstanta N menunjukkan banyaknya data

#define N 5

// variabel global berupa array berisi data int

int data[N];

void urutkan();

int 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...");

getch();

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

getch();

return 0;

void urutkan() {

// metode selection sort


int indexMin, i, j, 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;

Sceenshot program:
Output:

2. Program:

#include <stdio.h>

#include <stdlib.h>

#define N 5
int data[N];

void urutkan();

int 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);

data[i] = datanya;

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

getchar(); // Ganti getch() dengan getchar()

urutkan();

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

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

datanya = data[i];

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

}
printf("\n");

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

getchar(); // Ganti getch() dengan getchar()

return 0;

void urutkan() {

int indexMaks, i, j, temp;

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

indexMaks = i;

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

if (data[j] > data[indexMaks]) {

indexMaks = j;

if (indexMaks != i) {

temp = data[indexMaks];

data[indexMaks] = data[i];

data[i] = temp;

}
Screenshot program:

Output:

3. program:

#include <stdio.h>

#include <stdlib.h>
#define N 5

int data[N];

void urutkan();

void infokan();

int 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);

data[i] = datanya;

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

getchar(); // Ganti getch() dengan getchar()

urutkan();

infokan();

return 0;
}

void urutkan() {

int indexMin, i, j, temp;

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

indexMin = i;

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

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

indexMin = j;

if (indexMin != i) {

temp = data[indexMin];

data[indexMin] = data[i];

data[i] = temp;

void infokan() {

int i, datanya;

printf("\nData terurut\n");

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


datanya = data[i];

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

printf("\n");

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

getchar(); // Ganti getch() dengan getchar()

Screenshot program:
Output:

4. program:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define N 3

#define MID 0.25

#define UAS 0.30

#define TGS 0.30

#define QSZ 0.15

typedef struct MHS {

char nama[30];

char nim[5];

} MHS;
typedef struct NILAI {

double mid;

double uas;

double tugas;

double quiz;

double nAkhir;

char nHuruf;

} NILAI;

typedef struct DATAMHS {

MHS mhs;

NILAI nilai;

} DATAMHS;

void judul();

void bacaMhs();

void bacaNilai(int i);

void infoMhs(int i);

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

char konversiHuruf(double na);

int cariData(char nimnya[]);

void urutkan();

DATAMHS dataMhs[N];

int main() {

int i, posisi;
char nimnya[5];

judul();

bacaMhs();

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

printf("Tekan Enter...");

getchar();

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

infoMhs(i);

printf("\n");

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

printf("Tekan Enter...");

getchar();

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

fgets(nimnya, sizeof(nimnya), stdin);

nimnya[strcspn(nimnya, "\n")] = '\0';

posisi = cariData(nimnya);

if (posisi != -1) {

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

infoMhs(posisi);
} else {

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

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

printf("Tekan Enter...");

getchar();

urutkan();

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

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

infoMhs(i);

printf("\n");

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

getchar();

return 0;

void judul() {

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

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

printf("Programmer: Pebri Andika Pratama\n");

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

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

getchar();

void bacaMhs() {

int i;

char namanya[30];

char nimnya[5];

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

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

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

printf("Ketikkan nama Mahasiswa: ");

fgets(namanya, sizeof(namanya), stdin);

namanya[strcspn(namanya, "\n")] = '\0';

printf("Ketikkan NIM Mahasiswa: ");

fgets(nimnya, sizeof(nimnya), stdin);

nimnya[strcspn(nimnya, "\n")] = '\0';

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

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

bacaNilai(i);

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

getchar();

void bacaNilai(int i) {

double midnya, uasnya, tugasnya, quiznya, nAkhirnya;

printf("\nKetik nilai MID : ");

scanf("%lf", &midnya);

printf("Ketik nilai UAS : ");

scanf("%lf", &uasnya);

printf("Ketik nilai Tugas : ");

scanf("%lf", &tugasnya);

printf("Ketik nilai Quiz : ");

scanf("%lf", &quiznya);

dataMhs[i].nilai.mid = midnya;

dataMhs[i].nilai.uas = uasnya;

dataMhs[i].nilai.tugas = tugasnya;

dataMhs[i].nilai.quiz = quiznya;

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

dataMhs[i].nilai.nAkhir = nAkhirnya;

dataMhs[i].nilai.nHuruf = konversiHuruf(nAkhirnya);

printf("\n");
}

void infoMhs(int i) {

char namanya[30];

char nimnya[5];

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.1lf\n", nAkhirnya);

printf("\tNilai Huruf : %c\n", nHurufnya);

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

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

return m * MID + u * UAS + t * TGS + q * QSZ;

}
char konversiHuruf(double na) {

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

return 'A';

else if (na >= 76.0)

return 'B';

else if (na >= 56.0)

return 'C';

else if (na >= 45.0)

return 'D';

else

return 'E';

int cariData(char nimnya[]) {

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

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

return i; // Return the index if found

return -1; // Return -1 if not found

void urutkan() {

DATAMHS temp;

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

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

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

indexMaks = j;

if (indexMaks != i) {

temp = dataMhs[indexMaks];

dataMhs[indexMaks] = dataMhs[i];

dataMhs[i] = temp;

Screenshot Program:
Output:

5. Tulis kembali prosedur pengurutan dengan metode (1) Buble sort, (2) Selection Sort
(Maximum Sort dan Minimum Sort)), (3) Insertion Sort, (4) Heap Sort, (5) Shell Sort, (6) Quick
Sort, (7) Merge Sort, (8) Radix Sort, dan (9) Tree Sort.

1. Bubble Sort:

void bubbleSort(int arr[], int n) {

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

for (int j = 0; j < n-i-1; j++) {

if (arr[j] > arr[j+1]) {

// swap arr[j] and arr[j+1]

int temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}
2. Selection Sort:

void selectionSort(int arr[], int n) {

int i, j, min_idx;

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

min_idx = i;

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

if (arr[j] < arr[min_idx]) {

min_idx = j;

// swap the found minimum element with the first element

int temp = arr[min_idx];

arr[min_idx] = arr[i];

arr[i] = temp;

3. Insertion Sort:

void insertionSort(int arr[], int n) {

int i, key, j;

for (i = 1; i < n; i++) {

key = arr[i];

j = i - 1;

// Move elements of arr[0..i-1] that are greater than key to one position ahead of their
current position

while (j >= 0 && arr[j] > key) {

arr[j + 1] = arr[j];
j = j - 1;

arr[j + 1] = key;

Buat sebuah program yang dapat digunakan untuk mendata hasil pertandingan lompat tinggi
dari sejumlah peserta. Lalu urutkan peserta berdasarkan tinggi lompatan.

Program:

#include <stdio.h>

#include <stdlib.h>

// Definisikan struktur untuk menyimpan data peserta

struct Peserta {

char nama[50];

float tinggiLompatan;

};

// Deklarasi fungsi untuk pengurutan

void urutkanPeserta(struct Peserta peserta[], int jumlahPeserta);

int main() {

int jumlahPeserta;

// Input jumlah peserta

printf("Masukkan jumlah peserta: ");

scanf("%d", &jumlahPeserta);
// Deklarasi array dari struktur Peserta

struct Peserta peserta[jumlahPeserta];

// Input data peserta

for (int i = 0; i < jumlahPeserta; i++) {

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

scanf("%s", peserta[i].nama);

printf("Masukkan tinggi lompatan peserta (dalam meter) ke-%d: ", i + 1);

scanf("%f", &peserta[i].tinggiLompatan);

// Panggil fungsi untuk mengurutkan peserta berdasarkan tinggi lompatan

urutkanPeserta(peserta, jumlahPeserta);

// Tampilkan hasil pengurutan

printf("\nHasil Pertandingan Lompat Tinggi (Diurutkan berdasarkan tinggi lompatan):\n");

for (int i = 0; i < jumlahPeserta; i++) {

printf("%d. %s - %.2f meter\n", i + 1, peserta[i].nama, peserta[i].tinggiLompatan);

return 0;

// Implementasi fungsi untuk mengurutkan peserta berdasarkan tinggi lompatan

void urutkanPeserta(struct Peserta peserta[], int jumlahPeserta) {

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

for (int j = 0; j < jumlahPeserta - i - 1; j++) {


if (peserta[j].tinggiLompatan < peserta[j + 1].tinggiLompatan) {

// Tukar posisi peserta jika tinggi lompatannya lebih tinggi

struct Peserta temp = peserta[j];

peserta[j] = peserta[j + 1];

peserta[j + 1] = temp;

Screenshot program:

Output:
Buatlah program yang dapat digunakan untuk mengolah hasil pertandingan balap sepeda
sehingga program dapat menentukan dan menampilkan para juara lomba.

Program:

#include <stdio.h>

#include <stdlib.h>

// Definisikan struktur untuk menyimpan data peserta balap sepeda

struct PesertaBalap {

char nama[50];

int waktu;

};

// Deklarasi fungsi untuk pengurutan

void urutkanPeserta(struct PesertaBalap peserta[], int jumlahPeserta);

int main() {

int jumlahPeserta;
// Input jumlah peserta

printf("Masukkan jumlah peserta: ");

scanf("%d", &jumlahPeserta);

// Deklarasi array dari struktur PesertaBalap

struct PesertaBalap peserta[jumlahPeserta];

// Input data peserta

for (int i = 0; i < jumlahPeserta; i++) {

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

scanf("%s", peserta[i].nama);

printf("Masukkan waktu balap peserta (dalam detik) ke-%d: ", i + 1);

scanf("%d", &peserta[i].waktu);

// Panggil fungsi untuk mengurutkan peserta berdasarkan waktu

urutkanPeserta(peserta, jumlahPeserta);

// Tampilkan hasil pengurutan

printf("\nHasil Lomba Balap Sepeda (Diurutkan berdasarkan waktu):\n");

for (int i = 0; i < jumlahPeserta; i++) {

printf("%d. %s - %d detik\n", i + 1, peserta[i].nama, peserta[i].waktu);

// Menentukan para juara (3 peserta tercepat)

printf("\nJuara Lomba Balap Sepeda:\n");


for (int i = 0; i < 3 && i < jumlahPeserta; i++) {

printf("%d. %s - %d detik\n", i + 1, peserta[i].nama, peserta[i].waktu);

return 0;

// Implementasi fungsi untuk mengurutkan peserta berdasarkan waktu

void urutkanPeserta(struct PesertaBalap peserta[], int jumlahPeserta) {

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

for (int j = 0; j < jumlahPeserta - i - 1; j++) {

if (peserta[j].waktu > peserta[j + 1].waktu) {

// Tukar posisi peserta jika waktu balapnya lebih cepat

struct PesertaBalap temp = peserta[j];

peserta[j] = peserta[j + 1];

peserta[j + 1] = temp;

Screenshot program:
Output:

Anda mungkin juga menyukai