Algoritma Pemrograman
DOSEN PENGAMPU:
Oleh:
Rizky Annisa
22076018
Pendidikan Informatika
FAKULTAS TEKNIK
2022
kerjakan semua contoh latihan yang terdapat dalam bahan yang dikirimkan,
Modifikasi contoh-contoh tersebut dengan mengganti tipe data arraynya dan
data diinputkan melalui keyboard. Lengkapi dengan hasil running program
berupa screenshoot.
Program 1 :
Pencarian data dalam suatu array dalam Bahasa C
/*
Contoh Pencarian data dalam array
file : array 1 1
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define N 5
main()
{
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> PENCARIAN DATA DALAM ARRAY <<<<<<\n\n");
int i; //untuk menyimpan nomor indeks perulangan
int tanda; //0 berarti data yg dicari tidak ditemukan dan 1 berarti ditemukan
int pss; //untuk menyimpan lokasi dimana data ditemukan
int searchdata; //untuk menyimpan data yang akan dicari
for(i=0;i<N;++i)
{
if(searchdata == data[i])
{
pss = i; //catat posisi data yg ditemukan
tanda = 1; //1 berarti TRUE artinya ditemukan
break; //keluar atau selesai pencarian
}
else tanda = 0; //0 berarti FALSE artinya tidak ditemukan
}
Buatlah sebuah program yang digunakan untuk mengisi, mencari dan menampilkan
informasi. Program harus modular atau terdiri dari fungsi-fungsi yang dibutuhkan.
LISTING CONTOH PROGRAM 2:
Analisis Kebutuhan:
Penguraian masalah:
Masalah dalam contoh kasus ini dapat dibagi menjadi beberapa masalah lebih kecil,
yaitu:
Masalah input sejumlah data sesuai kebutuhan (atau ditetapkan sebagai ukuran array
data. Kita akan mengimplementasi fungsi entri/ input data atau isiNilai()
Masalah mencari data tertentu sesuai keinginan dan akan dijadikan fungsi pencarian,
misal bernama cariNilai()
Masalah menampilkan seluruh isi array dapat diimplemetasikan sebagai fungsi untuk
menampilkan dapat diberi nama fungsi tampilkan()
Kebutuhan konstanta
Konstanta yang didefinisikan bernama N dengan nilai tertentu, misal 10.
Kebutuhan variabel global
Untuk menyimpan seluruh data dan dapat diakses dari seluruh tempat pada program,
dibutuhkan variabel array, misal bernama nilai[] bertipe double dengan jumlah elemen
sebanyak N buah.
Fungsi isi Nilai
Fungsi cari Nilai()
Fungsi tampilkan()
#include <stdio.h>
#include <conio.h>
#define N 10
void isiNilai();
void cariNilai();
void tampilkan();
float nilai[N];
main()
{
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> PROGRAM PENCARIN NILAI YANG DITENTUKAN
<<<<<<\n\n");
isiNilai();
tampilkan();
cariNilai();
}
void isiNilai()
{
float nilainya;
int i;
printf("\nMENGENTRI NILAI\n");
for(i=0;i<N;++i)
{
printf("\nKetikkan nilai ke-%d: ", i+1);
scanf("%f", &nilainya);
nilai[i] = nilainya;
}
printf("\nEntri Nilai selesai\n");
printf("Tekan tombol ENter!!!!");
getch();
}
void cariNilai()
{
float nilainya;
int i, posisi, tanda;
void tampilkan()
{
int i;
printf("\nDAFTAR NILAI\n\n");
for(i=0;i<N;++i)
{
printf("Nilai pada posisi %d: %0.2f\n", i, nilai[i]);
}
printf("\nSelesai!!! Tekan tombol Enter...");
getch();
}
PROGRAM
OUTPUT
CONTOH 3
Pencarian linier juga dapat digunakan untuk mencari semua data yang cocok pada
sekelompok data. Perhatikan perubahan pada fungsi cariNilai() yang akan menghasilkan
jumlah data yang cocok ditemukan, sebagai berikut:
#include <stdio.h>
#include <conio.h>
#define N 10
void isiNilai();
void cariNilai();
void tampilkan();
double nilai[N];
main()
{
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> MENCARI NILAI YANG DI TENTUKAN <<<<<<\n\n");
isiNilai();
tampilkan();
cariNilai();
}
void isiNilai()
{
float nilainya;
int i;
printf("\nPENGENTRIAN NILAI\n");
for(i=0;i<N;++i)
{
printf("\nKetikkan nilai ke-%d: ", i+1);
scanf("%f", &nilainya);
nilai[i] = nilainya;
}
printf("\nEntri Nilai selesai\n");
printf("Tekan tombol Enter!!!!");
getch();
}
void cariNilai()
{
float nilainya;
int i, konter, posisi, tanda;
void tampilkan()
{
int i;
printf("\nDAFTAR NILAI\n\n");
for(i=0;i<N;++i)
{
printf("Nilai pada posisi %d: %0.2f\n", i, nilai[i]);
}
printf("\nSelesai!!! Tekan tombol Enter...");
getch();
}
PROGRAM
OUTPUT
PROGRAM 4 ( bagian 1 )
program yang dapat digunakan untuk mencari data nomor induk mahasiswa dari
sekelompok nim yang tersimpan dalam suatu array.
Analisis Kebutuhan
Kebutuhan konstanta
Konstanta untuk menetapkan banyaknya data, beri nama N dengan nilai sembarang,
misal 10.
Kebutuhan variabel global
Variabel untuk menyimpan data nim bertipe string atau char[] berbentuk array yang
dapat menampung N data dan setiap nim berukuran sama, misal 4 (atau 4 karakter),
misalnya:
char nim[N][4];
Kebutuhan fungsi pencarian
Fungsi yang akan dibuat merupakan fungsi yang memiliki nilai balik berupa nilai boolean
(dalam C digunakan tipe int) dimana nilai 0 untuk menyatakan false dan 1 menyatakan true.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 5
main(){
printf("========================================================
========\n");
printf("PROGRAM PENCARIAN DATA TERTENTU PADA SUATU ARRAY SECARA
LINEAR\t\n");
printf("JIKA DATA YANG DICARI TERDAPAT LEBIH DARI 1 DALAM ARRAY\t\n");
printf("MAKA HANYA DATA PERTAMA SAJA YANG DITANDAI\t\n");
printf("UNTUK MENCARI SEMUA DATA YANG COCOK\t\t\n");
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> DATA NILAI INDUK MAHASISWA ARRAY <<<<<<\n\n");
int i, status;
char nimnya[5];
OUTPUT
PROGRAM 5 ( bagian 2 )
program yang memiliki fasilitas pencarian jamak, dimana setiap data yang ditemukan
bernilai sama, maka program akan menghitung jumlah data yang ditemukan tersebut.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 10
main(){
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> pencarin data dengan fasilitas jamak <<<<<<\n\n");
int i;
char namanya[10];
PROGRAM
OUTPUT
CONTOH 6 ( bagian 3 )
Program ini berfungsi untuk mengentri identitas mahasiswa,nilai (mid, uas, tugas dan quis),
fasilitas untuk menghitung nilai akhir, fasilitas untuk mengkonversi nilai akhir menjadi nilai
huruf serta fasilitas lainnya untuk menampilkan informasi, mencari data data tertentu.
//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];
void judul(){
printf("===================================================
=============\n");
printf("PROGRAM PENCARIAN DATA TERTENTU PADA SUATU ARRAY SECARA
LINEAR\t\n");
printf("PROGRAM PENGEMBANGAN DARI PROGRAM SEBELUMNYA\t\n");
printf("===================================================
=============\n");
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> ENTRI NILAI MAHASISWA <<<<<<\n\n");
getch();
}
void bacaMhs(){
int i; //variable konter perulangan
char namanya[30]; //penyimpan sementara nama mahasiswa
char nimnya[4]; //penyimpan sementara nim mahasiswa
printf("===================================================
=============\n");
for(i=0;i<N;i++){
printf("Ketikkan nama Mahasiswa ke-%d\t: ",i+1);
gets(namanya); fflush(stdin); //baca nama mahasiswa
printf("Ketikkan NIM Mahasiswa\t\t: ");
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...");
getch();
}
printf("******************************************************************\
n");
//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");
}
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");
}
PROGRAM :
OUTPUT
CONTOH KASUS PENCARIAN 1
Implementasi fungsi pencarian tunggal yang tidak memiliki nilai balik dan tidak memiliki
parameter.
#include <stdio.h>
void cari();
main(){
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> PENCARIAN DATA TUNGGAL TANPA NILIA BALIK DAN PARAMETER
<<<<<<\n\n");
cari();
}
void cari(){
double data;
int i, status, posisi;
OUTPUT
CONTOH PENCARIAN 2
Implementasi fungsi pencarian tunggal yang tidak memiliki nilai balik, tapi memiliki
passing parameter by value.
cari(data);
}
void cari(float data){
int i, status, posisi;
for(i=0;i<7;++i){
if(nilai[i] == data){
status = 1;
posisi = i;
break;
}
else status = 0;
}
if(status) printf("Data ditemukan pada posisi: %d", posisi);
else printf("Data tidak ditemukan\n");
}
PROGRAM :
OUTPUT
CONTOH PENCARIAN
Implementasi fungsi pencarian tunggal tanpa nilai balik tapi memiliki passing parameter,
yang terdiri dari pass by value dan pass by reference.
printf("===================================================
=========================\n");
printf("\t\tPROGRAM PENCARIAN TUNGGAL PADA ARRAY\n");
printf("TANPA NILAI BALIK DENGAN PARAMETER PASS BY VALUE DAN PASS
BY REFERENCE\n");
printf("===================================================
=========================\n");
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
float data;
float nilai[] = {55, 76, 50, 64, 40, 74};
}
void cari(float nl[], float data){
int i, status, posisi;
for(i=0;i<7;++i){
if(nl[i] == data){
status = 1;
posisi = i;
break;
}
else status = 0;
}
if(status) printf("Data ditemukan pada posisi: %d", posisi);
else printf("Data tidak ditemukan\n");
}
PROGRAM
OUTPUT
CONTOH PENCARIAN 4
Implementasi fungsi pencarian tunggal tanpa nilai balik tapi memiliki passing
parameter pass by value dan pass by reference. Pencarian dilakukan terhadap 2 buah array
yang berbeda.
#include <stdio.h>
main(){
printf("===================================================
=========================\n");
printf("\t\tPROGRAM PENCARIAN TUNGGAL PADA ARRAY\n");
printf("TANPA NILAI BALIK DENGAN PARAMETER PASS BY VALUE DAN PASS
BY REFERENCE\n");
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
double data;
double nilai[] = {90, 72, 76, 80, 67, 78, };
double nilai2[] = {80, 76, 89, 93, 60, 68, };
for(i=0;i<7;++i){
if(nl[i] == data){
status = 1;
posisi = i;
break;
}
else status = 0;
}
if(status) printf("Data ditemukan pada posisi: %d", posisi);
else printf("Data tidak ditemukan\n");
}
PROGRAM
OUTPUT
CONTOH PENCARIAN 5
Implementasi fungsi pencarian tunggal yang memiliki nilai balik berupa posisi data
pada array (indeks dalam array) dan memiliki passing parameter pass by value dan pass by
reference.
Implementasi Dalam Bahasa C :
#include <stdio.h>
main(){
printf("===================================================
=========================\n");
printf("\t\tPROGRAM PENCARIAN TUNGGAL PADA ARRAY\n");
printf("DENGAN NILAI BALIK DENGAN PARAMETER PASS BY VALUE DAN
PASS BY REFERENCE\n");
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
int pss;
double data;
double nilai[] = {73, 89, 94, 83, 67, 90, 67};
printf("===================================================
=========================\n");
//cari data pada array
printf("Hasil pencarian di array nilai[]\n");
pss = cari(nilai, data);
for(i=0;i<7;++i){
if(nl[i] == data){
status = 1;
posisi = i;
break;
}
else status = 0;
}
if(status) return posisi;
else return -1;
}
PROGRAM :
OUTPUT
CONTOH PENCARIAN 6
#include <stdio.h>
main(){
printf("===================================================
=========================\n");
printf("\t\tPROGRAM PENCARIAN JAMAK PADA ARRAY\n");
printf("TANPA NILAI BALIK DENGAN PARAMETER PASS BY VALUE DAN PASS
BY REFERENCE\n");
printf("===================================================
=========================\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
float data;
float nilai[] = {77, 90, 75, 80, 59, 70, 95};
for(i=0;i<7;++i){
if(nl[i] == data){
printf("posisi: %d\n", i);
konter++;
}
}
printf("\nData yg ditemukan ada %d buah", konter);
}
PROGRAM :
OUTPUT