Anda di halaman 1dari 9

Praktikum 12

Array (lanj.)
NIM/Nama : 3311901057/Rido Dwi Mareta
Pengumpulan tugas praktikum:
Simpan laporan praktikum ini dengan nama P12_NIM.docx di folder yang sama dengan folder tempat
kode program. Namai folder dengan P12_NIM, kemudian zip. File EXE tidak perlu diikutkan dalam zip.
Upload ke http://learning-if.polibatam.ac.id.

Setelah mengikuti praktikum ini, mahasiswa diharapkan dapat:


1. Membuat variabel array dari berbagai macam tipe data
2. Mengenali permasalahan yang membutuhkan variabel array
3. Melakukan proses-proses pada array sesuai kebutuhan penyelesaian permasalahan

*) khusus untuk kelas malam/karyawan, soal yang diberi tanda ini menjadi tugas
yang digunakan untuk latihan di rumah dan tidak dikumpulkan

Bagian 1: Juara Nilai Ujian


Buatlah program yang dapat memproses nilai ujian suatu kelas. Pertama, pengguna memasukkan
banyaknya siswa (n), setelah itu memasukkan nama dan nilai ujian siswa-siswa tersebut.
Program kemudian menampilkan ucapan selamat kepada siswa yang nilainya paling tinggi.

Contoh:

Banyaknya siswa: 4
Nama Siswa 1 : Rini
Nilai Siswa 1 : 46
Nama Siswa 2 : Juan
Nilai Siswa 2 : 98
Nama Siswa 3 : Marinka
Nilai Siswa 3 : 77
Nama Siswa 4 : Aldo
Nilai Siswa 4 : 87

Selamat, Juan, kamu juara!

Simpan dengan nama 1_nilaiJuara.c.

Apakah program memerlukan tipe terstruktur? Jika iya, tuliskan deklarasi tipe terstruktur yang
diperlukan di sini (dalam bahasa C).

typedef struct{
char nama[50];

int nilai;

}Nilai;

Tuliskan algoritma (notasi bebas) di sini.

Program nilai tertinggi

{Menampilkan nama siswa dengan nilai tertinggi}

Deklarasi

type Nilai : record <

nama : karakter,

nilai : integer>

siswa [n] : Nilai

I, n, max=0 : integer

*juara : karater

Algoritma

input (n)

for i=0, i<n, i++ do

input (siswa[i].nama)

if siswa[i].nilai > max do

max=siswa[i].nilai

juara=siswa[i].nama

endif

endfor

output (juara)

Salin kode program di sini.

#include <stdio.h>

int main()

{
//deklarasi

//tipe terstruktur dengan nama Nilai

typedef struct{

char nama[50];

int nilai;

}Nilai;

int i, n, max=0;

char *juara;

//meminta masukkan nilai n/banyak siswa

printf("Banyaknya siswa: "); scanf("%d",&n);

//array dengan jumlah indeks sebanyak nilai n yang dimasukkan sebelumnya

Nilai siswa[n];

//perulangan for untuk masukan nama dan nilai

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

printf("Nama Siswa %d: ", i+1); scanf("%s", siswa[i].nama);

printf("Nilai Siswa %d: ", i+1); scanf("%d", &siswa[i].nilai);

//percabangan if untuk mencari nilai siswa tertinggi dan merubah nilai tersebut menjadi
nama siswa

if(siswa[i].nilai>max){

max=siswa[i].nilai;

juara = siswa[i].nama;

//keluaran nama siswa dengan nilai tertinggi

printf("Selamat, %s, kamu juara!", juara);


return 0;

Jelaskan hasil running program!

Hasil running akan meminta masukkan banyak siswa. Setelah itu program akan meminta masukkan
nama siswa dan nilai siswa. Setelah semua data nama dan nilai di input, maka program akan melakukan
proses percabangan dimana jika nilai siswa merupakan nilai tertinggi maka outputnya adalah nama
siswa yang memiliki nilai tertinggi.

Bagian 2: Balik Kata*)


Buatlah program yang dapat menerima masukan suatu kata. Program kemudian menampilkan dalam
kondisi terbalik, huruf yang di depan ditampilkan di belakang.

Contoh:

Masukkan kata: poltek


Kata dibalik: ketlop

Petunjuk: Hitung panjang kata masukan dulu. Anda dapat menggunakan fungsi strlen() untuk
mendapatkan panjang kata yang dimasukkan. Masukan dari strlen adalah string, hasilnya adalah angka
integer yang menunjukkan banyaknya karakter string tersebut. Lakukan #include <string.h>

Simpan dengan nama 2_balikKata.c

Tuliskan algoritma (notasi bebas) di sini.

Program balik kata

{Program untuk membalik kata yang diinput)

Deklarasi

kata [100] : karakter


kata1 : integer

Algoritma

input (kata)

kata1 = strlen(kata)

for kata1-1, kata1>0, kata1—

output (kata[kata1-1])

endofr

output(\n)

Salin kode program di sini.

#include<stdio.h>

#include<string.h>

int main()

//Deklarasi

char kata[100];

int kata1;

//masukkan kata

printf("Masukkan kata: "); scanf("%s",&kata);

//menggunaakan fungsi strlen() untuk mendapatkan panjang kata yang dimasukkan

kata1=strlen(kata);

printf("Kata dibalik: ");

//pengulangan for untuk membalikkan kata yang telah dimasukkan

for(kata1-1; kata1>0; kata1--){


//output kata yang sudah dibalik

printf("%c", kata[kata1-1]);

printf("\n");

return 0;

Jelaskan hasil running program!

Hasil running program akan meminta masukkan kata, lalu kata tersebut diberi fungsi strlen() untuk
mendapatkan panjang kata yang dimasukkan. Selanjutnya program akan melakukan pengulangan untuk
membalikkan kata yang dimasukkan tadi.

Ekstra: Cek Palindrom*)


Palindrom adalah kata/frase/kalimat yang dibaca dari depan atau belakang sama saja.
Buatlah program yang dapat menerima masukan 1 kata, kemudian mengecek apakah kata tersebut
palindrom atau bukan.

Contoh:

Masukkan kata: malam


>> palindrom

Masukkan kata: siang


>> bukan palindrom

Simpan dengan nama 3_cekPalindrom.c.

Tuliskan algoritma (notasi bebas) di sini.

Program cek palindrom

{Program untuk mengecek apakah kata yang dimasukkan termasuk palindrom atau bukan}

Deklarasi

kata[100] : karakter

cek : karakter
Algoritma

input (kata)

strcpy (cek, kata0

strrev (cek)

if strcmp (kata, cek) = 0 do

ouput (>> palindrom)

else

output (>> bukan palindrom)

endif

Salin kode program di sini.

#include <stdio.h>

#include <string.h>

int main()

//Deklarasi

char kata[100];

char cek[100];

//masukkan kata

printf("Masukkan kata: "); gets(kata);

//untuk menyalin string, gunakan fungsi strcpy()

strcpy(cek, kata);

//untuk membalik kata, gunakan fungsi strrev()

strrev(cek);

//percabangan if-else untuk menentukan apakah kata yang dimasukkan termasuk palindrom
atau bukan palindrom
if(strcmp(kata, cek)==0){

//output palindrom

printf(">> palindrom");

else{

//output bukan palindrom

printf(">> bukan palindrom");

return 0;

Jelaskan hasil running program!

hasil runnning akan meminta masukkan kata. Selanjutnya dengan menggunakan fungsi strcpy() maka
program akan menyalin string yang tadi dimasukkan dan dengan menggunakan fungsi strrev() maka
string akan dibalik setiap hurufnya. Selanjutnya program akan melakukan proses percabangan dimana
proses ini menggunakan fungsi strcmp() untuk menentukan jika string yang dibalik tidak berbeda maka
akan menghasilkan nilai 0 maka outputnya >>palindrom dan akan bernilai bilangan bulat lainnya apabila
string berbeda

Kesimpulan
Apa saja yang Anda pelajari dari praktikum ini? Kesimpulan apa yang bisa Anda tarik?

Yang saya pelajari dari praktikum ini adalah penggunaan fungsi pada string seperti strcmp(), strrev(),
strlen(), dan strcpy().
Kesimpulan:

Menyeselaikan suatu permasalahan menggunakan array akan mempermudah pekerjaan dan


mempersingkat program yang dibuat.

Anda mungkin juga menyukai