Anda di halaman 1dari 32

LAPORAN PRAKTIKUM I

Struct , Array dan Pointer

Disusun untuk Memenuhi Matakuliah Praktikum Dasar Pemrograman C++


Dibimbing oleh Bapak Utomo Pujianto

Oleh:
Dimas prabowo
Nim : 160533611514
Dyah rohamawati
S1 PTI16 OFF A

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
Maret 2017

FUNGSI
Tujuan
Setelah mempelajari bab ini diharapkan mahasiswa akan mampu :
1. mahasiswa memahami apakah yang dimaksud dengan struktur data
2. mahasiswa memahami apakah yang dimaksud dengan algoritma
3. mengingat kembali array, struktur dan pointer dalam bahasa C

DASAR TEORI

A. Array
1. Array Dimensi Satu
Banyak array yang hanya memiliki satu dimensi, seperti sejumlah orang dari setiap
umur. Satu-satunya persyaratan untuk menentukan elemen adalah usia.

Misal : float suhu[5];


Setelah suatu array didefinisikan, elemen array dapat diakses dengan bentuk :
nama_array[indeks_array]
Sebagai pemrogram, Anda harus mengusahakan agar tidak terjadi pengaksesan
elemen di luar jumlah elemen yang didefinisikan. Misalnya, didefinisikan :
int suhu[4];
harus dipastikan bahwa tidak ada pengaksesan elemen suhu bernomor di luar 0
sampai dengan 3, karena dapat menyebabkan data dari variabel atau array lain
berubah. Perlu diketahui, C++ tidak akan memberikan pesan kesalahan kalau Anda
melakukan pengaksesan dengan nilai indeks yang berada di luar nilai yang telah
didefinisikan.

2. Array Dimensi Dua


Ada beberapa array dua dimensi, seperti jumlah kantor di setiap lantai di setiap
gedung kampus. Elemen yang dibutuhkan adalah elemen bangunan dan jumlah lantai.
tipe_elemen_array nama_array[jumlah_baris_array][jumlah_kolom_array];
Misal : int data_lulus[4][3];

3. Array Dimensi Tiga


Beberapa array memiliki tiga dimensi, seperti nilai dalam tiga dimensi ruang, seperti
koordinat x,y, dan z dalam koordinat ruang.
Tipe_elemen_ array nama_array[ukuran1][ukuran2]....[ukuranN];
Misal : double data_angka[2][3][4];

B. Struct
Struct adalah tipe data yang dapat melakukan penyimpanan beberapa data
yang saling terkait (seperti Nama, NRP, Alamat), sebagai suatu kesatuan, sehingga
data-data tersebut seakan-akan menjadi suatu data tunggal. Pembuatan tipe data baru
dalam C dilakukan dengan menggunakan kata kunci struct, yang merupakan
kependekan dari structure (struktur).
Syntax :

Struct [<struct type name>]{


[<type><variabel-name[,variabel-name, ]>];
.
.
} [<structure variabels>];
Contoh :

typedef struct

int NIP ;

char nama[30]

} pegawai_t;

Perbedaan dengan Tipe data lain :


Tipe data yang lain hanya terdiri dari 1 element, sehingga hanya dapat menyimpan
sebuah nilai atau sebuah string saja, sedangkan tipe data struct dapat menyimpan
beberapa elemen, dengan berbagai macam tipe seperti int, char, long, dll.

Operator titik digunakan sebagai pemisah antara variabel struktur dengan elemennya,
penulisan ini sebaiknya tidak dipisahkan oleh spasi. Operator ini berfungsi untuk
mengakses suatu element dari variabel struktur.

Operator panah digunakan untuk pengaksesan operasi pointer, atau menggunakan


operator bintang (*), untuk pengaksesan element-element suatu struktur yang berupa
pointer

C. Pointer
1. Pointer dan Pendefinisian
Pointer adalah sebuah variabel yang berisikan alamat memori (bukan nilai)
atau dengan kata lain dapat dikatakan bahwa pointer adalah suatu variabel
penunjuk ke lamat memori tertentu. Cara pendeklarasian pointer dalam bahasa C
adalah dengan menambahkan tanda asterisk (*) didepan nama pointer, seperti
berikut:

Tipe_data *nama_pointer; atau Tipe_data* nama_pointer;


Keterangan:

Tipe_data dapat berupa sembarang tipe seperti halnya pendefinisian variabel.

Nama_pointer adalah nama variabel pointer yang akan digunakan.

* adalah operator memori untuk mengembalikan nilai variabel pada alamatnya


yang ditentukan oleh operand.

Contoh:

int *pint; atau int* pint;


char *pchr; atau char*

2. Mengisi Variabel dan Mengakses Nilai Variabel Pointer


Suatu variabel pointer dapat menunjuk ke variabel lain. Contohnya adalah:
Hasil dari program di atas adalah:

Dari hasil tersebut membuktikan bahwa suatu variabel pointer dapat menunjuk
alamat dari suatu variabel. Selain itu, variabel pointer juga dapat untuk mengakses
isi dari suatu variabel. Berikut contohnya:

Dari kedua contoh tersebut terdapat kesimpulan bahwa operator pointer ada
dua, yaitu:
a. Operator &(Operator Diference)
Operator deference (&) yaitu mendeklarasikan suatu variabel didalam
penggantian memori. Operator ini biasa disebut dengan address of.
b. Operator *(Operator Reference)
Operator reference (*) yaitu dapat mengakses secara langsung nilai yang
terdapat didalam variabel yang berpointer, hal ini dapat dilakukan dengan
menambahkan identifier asterisk (*). Operator ini biasa disebut dengan value
pointed by.
3. Pointer Void
Pointer void adalah pointer yang dapat menunjuk ke sembarang tipe data. Jadi
satu pointer dapat menunjuk ke tipe data integer, tipe data float, dan lain
sebagainya.
Berikut ini contoh dari pointer void:

4. Pointer dan Array


Pointer dan array merupakan hal yang hampir sama, kareana sama-sama
menunjuk pada suatu alamat. Karena hal tersebut pada pointer yang menunjuk ke
array tidak menggunakan tambahan operator & di depan nama variabel array.
5. Pointer dan String
Pointer juga dapat menunjuk ke sebuah string. Contoh hubungan antara
pointer dengan string, adalah:

6. Pointer menunjuk Pointer


Pointer dapat menunjuk ke pointer lain. Hal tersebut ditandai dengan adanya
dua tanda asterisk (*) sebelum nama variabel pointer. Berikut contohnya:
7. Pointer dan Fungsi
Pointer juga dapat digunakan sebagai argument maupun keluaran bagi fungsi.
Pointer sebagai argumen maka nilai argumen dapat diubah di dalam fungsi. Suatu
fungsi dapat dibuat agar keluarannya berupa pointer. Dalam hal tersebut terkadang
difungsikan juga array di dalam fungsi tersebut.
8. Keuntungan menggunakan pointer
a. Untuk menciptakan data struktur yang kompleks.
b. Memungkinkan suatu fungsi untuk menghasilkan lebih dari satu nilai.
c. Memiliki kemampuan untuk mengirimkan alamat suatu fungsi ke fungsi yang
lain.
d. Penanganan terhadap array dan string akan lebih singkat dan efisien.
e. Memungkinkan untuk berhubungan langsung ke hardware.
f. Memungkinkan untuk berhubungan langsung dengan parameter command
line.
g. Kemampuan bekerja dengan memori yang telah dialokasikan secara dinamik.

Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang
menggunakan sebuah nama yang sama. Nilai-nilai data di suatu array disebut dengan elemen-
elemen array. Letak urutan dari elemen-elemen array ditunjukkan oleh suatu subscript atau
indeks. Pada saat pendeklarasian array, kompiler mengalokasikan memori yang cukup untuk
menampung semua elemen sesuai dengan yang dideklarasikan. Adapun array dibedakan
menjadi tiga macam, yaitu array berdimensi satu, array berdimensi dua, dan array berdimensi
banyak.

LATIHAN PRAKTIKUM
Latihan I

Pemrograman C++

Nama Program : Menampilkan sepuluh bilangan fibonaci pertama

Bahasa Pemrograman : C++

Compiler : MinGW Developer Studio

Script program :

#include <stdio.h>
#define MAX 10

int fibo[MAX];

int main ()
{
int i;

fibo [1] = 1;
fibo [2] = 1;

for (i= 3; i<=MAX; i++)


fibo [i] = fibo [i-2]+fibo [i-1];

printf ("%d bilangan fibonaci pertama adalah : \n\n " , MAX);


for (i=1;i<MAX;i++)
printf ("%d ", fibo[i]);
}

Output Program :

Penjelasan Program :
Program diatas bertujuan untuk menampilkan deret fibbonaci menggunakan array dan
perulangan for. Dengan pendeklarasian U1 dan U2 lalu U selanjutnya akan dihitung
menggunakan for, yakni dengan menjumlahkan U ke n dengan U n-1. Jumlah suku deret
adalah MAX atau yang telah dideklarasikan bernilai 10. Keluaran proram adalah array yang
telah diisi nilainya oleh for dan ditampilkan menggunakan for pula mulai dari index ke 0 atau
U1.

Berikut penjelasannya :

1. #include <stdio.h> 1. Merupakan header atau library yang


digunakan untuk perintah input output
printf dan scanf.
2. Define merupakan pendeklarasian
2. #define MAX 10
bahwa di program ini script max
mewakili 10. Dan pendeklarasian ini
bersifat global atau dapat diaplikasikan
di seluruh fungsi pada program
3. int fibo [MAX]; 3. Pendeklarasian array bertipe data
integer bernama fibo dengan index
maksimal MAX atau 10
4. int main () 4. Pendeklarasian fungsi utama
5. { program
6. int i; 5. Kurung kurawal pembuka fungsi
utama
7. fibo[1] = 1; 6. Pendeklarasian variabel bertipe
8. fibo[2] = 1; data integer bernama i
7. Mengisi index ke 1 fibo dengan
9. for (i=3; i<=MAX; i++)
nilai 1
8. Mengisi index ke 2 fibo dengan
nilai 1
9. Perulangan menggunakan
perintah for dengan inisialisasi
10. fibo[i]=fibo[i-2]+fibo[i- variabel 1 bernilai awal 3
1]; diulang hingga i kurang dari
sama dengan max yakni 10, i
berubah i++ atau i+1.
11. printf ("%d Bilangan 10. Menghitung index fibo ke
Fibonaci Pertama adalah : i yakni hasil penjumlahan index
\n", MAX); fibo ke i-2 dan fibo ke i-1
12. for (i=1; i<=MAX; i++) 11. Judul menampilkan array
fibo

12. Perulangan dengan


menggunakan perintah for
dengan inisialisasi variabel 1
13. printf ("%d-",fibo[i]); bernilai awal 1 diulang hingga i
kurang dari sama dengan max
14. } yakni 10, i berubah i++ atau
i+1.

13. Tampilkan array ke i

14. Tutup kurung untuk fungsi


utama. Program selesai.
Latihan II

Pemrograman C++

Nama Program : Menampilkan alamat dan isi dari alamat menggunakan pointer

Bahasa Pemrograman : C++

Compiler : MinGW Developer Studio

Script program :

#include <stdio.h>

main ()
{
int y,x =87;
int *px;

px = &x;
y = *px;

printf ("alamat x = %p \n ", &x);


printf ("isi px = %p \n ", px);
printf ("isi x = %d \n ", x);
printf ("nilai yang di tunjukkan oleh px = %d \n ", *px);
printf ("nilai y = %d \n ", y);
}

Output Program :
Penjelasan Program :

Program diatas adalah program yang bertujuan untuk menunjuk sebuah variabel dan
menunjukkan bahwa pointer yang menunjuk sebuah variabel akan menyimpan
alamatnya.pendeklarasian pointer adalah dengan cara ditambah tanda (*) dan untuk
menujukkan alamat sebuah variabel adalah dengan ditambah tanda (&). Setelah pointer px
diarahakan pada alamat variabel x selanjutnya adalah menyimpan nilai yang ditunjuk px pada
y. Berikut penjelasannya :

1. #include <stdio.h> 1. Merupakan header atau library yang


digunakan untuk perintah input output
2. int main() printf dan scanf.
3. { 2. Pendeklarasian fungsi utama
4. int y,x =87;
program
5. int *px;
3. Kurung kurawal pembuka fungsi
utama
6. px=&x; 4. Pendeklarasian variabel bertime
7. y=*px;
data integer bernama y dan x
bernilai 87
8. printf("alamat x = %p\n", 5. Pendeklarasian pointer bertipe
&x); integer bernama px
9. printf("isi px = %p\n", 6. Mengisi pointer dengan alamat
px); variabel x
10. printf("isi x = 7. y diisi dengan nilai yang tunjuk px
%d\n", x); yakni variabel x
11. printf("nilai yang 8. Menampilkan alamat variabel x
9. Menampilkan isi pointer px yakni
ditunjuk oleh px = %d\n",
alamat dari x pula
*px);
10. Menampilkan isi variabel x
12. printf("nilai y =
11. Mempilkan nilai yang
%d\n", y);
ditunjuk oleh pointer px
12. Menampilkan nilai variabel y
13. Tutup kurung untuk fungsi
utama. Program selesai.

13. }
Latihan III

Pemrograman C++

Nama Program : Menambahkan isi nilai pada variable menggunakan pointer

Bahasa Pemrograman : C++

Compiler : MinGW Developer Studio

Script program :

#include <stdio.h>

main ()
{
float d = 54.5f, *pd;

printf ("isi d mula-mula = %g \n ", d);

pd = &d;
*pd += 10;

printf ("isi d sekarang = %g \n", d);

Output Program :
Penjelasan Program :

Program diatas adalah program yang bertujuan untuk merubah sebuah data yang
ditunjuk oleh sebuah pointer. Pertama-tama program akan pendeklarasian variable d dan
ponter pd. Lalu memberi nilai pd = &d. Program menampilkan isi d yaitu 54.5, sesuai dengan
pendeklarasian variabel sebelumnya. Selanjutnya memberi nilai pada *pd += 10;.
Menampilkan isi pointer pd sekarang = 64.5. Jadi selain untuk menunjuk suatu alamat pointer
juga dapat mengakses data tersebut dengan cara menggunakan simbil * . maka pada program
ini yang dilakukan adalah pendeklarasian variabel dan pointer lalu ditampilkan keduanya.
Kemudian nilai variabel dirubah dengan cara pengaksesan melalui pointer. Terakhir program
akan menampilkan ulang variabel yang telah dirubah.

Berikut penjelasan scriptnya :

1. Merupakan header atau library yang


1. #include <stdio.h>
digunakan untuk perintah input
output printf dan scanf.
2. Pendeklarasian fungsi utama
2. int main()
program
3. { 3. Kurung kurawal pembuka
fungsi utama
4. float a= 54.5f, *b; 4. Pendeklarasian variabel
bertipe data float bernama a
dengan nilai 54.5 dan
5. printf("Isi a mula mula = pointer bernama b
%g\n", a); 5. Menampilkan isi variabel a
6. b = &a; 6. Pernyataan bahwa pointer b
diisi dengan alamat variabel
7. *b += 5.2; a
7. Merubah nilai yang ditunjuk
8. printf("Isi a sekarang = oleh pointer b ditambah
%g\n", *b); dengan 5.2
8. Menampilkan nilai a yakni
melalui pointer b
9. Kurung kurawal penutup
9. }
fungsi utama
Latihan IV

Pemrograman C++

Nama Program : Menampilkan sepuluh bilangan pertama fibonaci

Bahasa Pemrograman : C++

Compiler : MinGW Developer Studio

Script program :

#include <stdio.h>
#include <stdlib.h>
#define MAX 10

int *fibo;

int main ()
{
int i;

fibo = (int *) malloc (MAX * sizeof(int));

*(fibo + 1) =1;
*(fibo + 2) =1;

for (i=3;i<=MAX;i++)
*(fibo + i) = (*(fibo + i - 2) + *(fibo + i - 1));

printf ("%d bilangan fibonaci pertama adalah : \n ", MAX);


for (i=1; i<MAX; i++)
printf ("%d ", *(fibo+i));
}

Output Program :
Penjelasan Program :

Program diatas bertujuan untuk menampilkan deret fibbonaci menggunakan


array,pointer dan perulangan for. Dengan pendeklarasian U1 dan U2 lalu U selanjutnya akan
dihitung menggunakan for, yakni dengan menjumlahkan U ke n dengan U n-1. Jumlah suku
deret adalah MAX atau yang telah dideklarasikan bernilai 10. Keluaran proram adalah array
yang telah diisi nilainya oleh for dan ditampilkan menggunakan for pula mulai dari index ke
0 atau U1. Berikut penjelasannya :

1. Merupakan header atau library yang


1. #include <stdio.h>
digunakan untuk perintah input
output printf dan scanf.
2. Merupakan header atau library yang
2. #include <stdlib.h>
digunakan untuk perintah malloc.
3. #define MAX 10 3. Define merupakan pendeklarasian
bahwa di program ini script max
mewakili 10. Dan pendeklarasian ini
bersifat global atau dapat
diaplikasikan di seluruh fungsi pada

4. int *fibo; program


4. Pendeklarasian pointer bertipe
integer bernama fibo
5. int main() 5. Pendeklarasian fungsi utama
program
6. { 6. Kurung kurawal pembuka

7. int i; fungsi utama


7. Pendeklarasian variabel
bertipe data i benama i
8. Menghitung nilai fibo yakni
8. fibo = (int*) malloc(MAX *
alokasi memori MAX dikali
sizeof(int));
9. *(fibo + 1)=1; ukuran int
9. Nilai yang ditunjuk fibo + 1
diisi dengan nilai 1
10. Nilai yang ditunjuk fibo +
10.*(fibo + 2)=1;
2 diisi dengan nilai 1 juga
11. Perulangan dengan
11.for (i=3; i<=MAX; i++)
menggunakan perintah for
dengan inisialisasi variabel 1
bernilai awal 3 diulang
hingga i kurang dari sama
dengan max yakni 10, i
12.*(fibo+i)=(*(fibo+i-2)+ *(fibo+i-
berubah i++ atau i+1.
1)); 12. Nilai yang ditunjuk oleh
pointer fibo+i adalah hasil
jumlah nilai yang ditunjuk
fibo+i-2 dan nilai yang
13.printf("%d Bilangan Fibonaci
ditunjuk fibo+i-1
Pertama adalah : \n", MAX); 13. Menampilkan output dari
14.for (i=1; i<MAX; i++)
program

14. Perulangan dengan


menggunakan perintah for
dengan inisialisasi variabel i
15.printf ("%d-",*(fibo+i)); bernilai awal 1 diulang
hingga i kurang dari max
yakni 10, i berubah i++ atau
16.}
i+1.

15. Menampilkan nilai yang


ditunjuk oleh fibo+i
16. Kurung kurawal penutup
fungsi utama
Latihan V

Pemrograman C++

Nama Program : Menampilkan nilai r dan nilai alpha untuk koordinat polar

Bahasa Pemrograman : C++

Compiler : MinGW Developer Studio

Script program :

#include <stdio.h>
#include <math.h>

struct polar {
double r ;
double alpha ;
};
struct kartesian {
double x;
double y;
};
int main (){
struct polar p1 ;
struct kartesian k1;

printf ("masukkan nilai r untuk koordinat polar : ");


scanf ("%lf", &p1.r);

printf ("masukkan nilai alpha untuk koordinat polar : ");


scanf ("%lf", &p1.alpha);

k1.x = p1.r* cos (p1.alpha);


k1.y = p1.r* sin (p1.alpha);

printf (" nilai loordinat kartesian untuk koordinat polar r= %2.2lf alpha =
%2.2lf adalah : \n " , p1.r,p1.alpha );
printf ( "x = %2.2lf y = %2.2lf ", k1.x,k1.y);
}

Output Program :

Penjelasan Program :
Program diatas adalah program yang ditujukan untuk menentukan letak karesian x
dan y dengan inputan r dan alpha koordinat polar. Dengan menggunakan struct polar dan
kaatesian x dan y di hitung menggunakan operasi matematika sin dan cos. Titik x adalah hasil
perkalian r dengan sin alpha dan y merupakan hasil perkalian r dengan cos alpha.

Berikut penjelasannya :

1. Merupakan header atau library yang


1. #include <stdio.h>
digunakan untuk perintah input
output printf dan scanf.
2. Merupakan header atau library yang
2. #include <math.h>
digunakan untuk perintah
perhitungan menggunakan sin dan
cos.
3. Pendeklarasian struct bernama polar
3. struct polar {
double r; dengan elemen r dan alpha bertipe
double alpha;
data double
};
4. struct kartesian { 4. Pendeklarasian struct bernama
double x; kartesian dengan elemen x dan y
double y;
}; bertipe data double
5. int main ()

5. Pendeklarasian fungsi utama


6. {
program
6. Kurung kurawal pembuka
7. struct polar pl;
fungsi utama
7. Pendeklarasian variabel
8. struct kartesian kl; bertipe polar bernama pl
8. Pendeklarasian variabel
9. printf("masukkan nilai r bertipe kartesian bernama kl
untuk koordinat polar : ");
9. Tampilan untuk memasukkan
10. scanf ("%lf",&pl.r); nilai r untuk koordinat polar
10. Perintah untuk
11. printf("masukkan nilai
memasukan variabel pl
alpha untuk koordinat polar :
"); elemen r
12. scanf ("%lf",&pl.alpha); 11. Tampilan untuk
memasukkan nilai alpha
13. kl.x = pl.r *cos(pl.alpha); untuk koordinat polar
12. Perintah untuk
memasukan variabel pl
elemen alpha
14. kl.y = pl.r *sin(pl.alpha); 13. Perhitungan variabel kl
elemen x adalah hasil kali pl
elemen r dengan cos pl
15. printf("Nilai koordinat
elemen alpha
kartesian untuk koordinat 14. Perhitungan variabel kl
polar r= %2.2lf alpha= elemen y adalah hasil kali pl
%2.2lf adalah : elemen r dengan sin pl
\n",pl.r,pl.alpha);
elemen alpha
16. printf("x = %2.2lf y =
15. Menampilkan pl elemen r
%2.2lf", kl.x,kl.y);
dan pl elemen alpha

17.}

16. Menampilkan kl elemen x


dan kl elemen y

17. Kurung kurawal penutup


fungsi utama .

Latihan VI

Pemrograman C++

Nama Program : Menginputkan kemudian menampilkan data nilai mahasiswa

Bahasa Pemrograman : C++


Compiler : MinGW Developer Studio

Script program :

#include <stdio.h>
#include <string.h>

struct dtnilai {
char nrp [10];
char nama [20];
double nilai ;

};

struct dtnilai data [10];


int j= 0;

void tambah_data()
{
char jawab [2];
while (1)
{
fflush (stdin);
printf ("NRP :") ;
scanf("%s",&data[j].nrp);
printf ("Nama :") ;
scanf("%s",&data[j].nama);
printf ("Nilai test :") ;
scanf("%lf",&data[j].nilai);

printf ("ada data lagi (y/t) :") ;


scanf("%s",&jawab);

if ((strcmp (jawab, "Y")==0)||(strcmp (jawab, "y")==0))


{
j++; continue ;
}
else if ((strcmp (jawab, "T")==0)||(strcmp (jawab, "t")==0))
break ;
}
}

void tampil (){


int i ;
printf ("data mahasiswa yang telah diinputkan :\n ");
printf ("NRP\t NAMA \t NILAI\n");

for (i=0;i<=j;i++)
{
printf (" %s \t %s \t %6.2lf\n", data[i].nrp , data[i].nama , data[i].nilai );
}
}

int main (){


tambah_data ();
tampil ();
}

Output Program :

Penjelasan Program :

Program diatas adalah program yang ditujukan untuk menampilkan data yang telah di
inputkan sebelumnya, data tersebut disimpan dalam bentuk struct dengan elemen-elemen
yang telah ditentukan. Fungsi untuk input data adalah tambah_data dan untuk outputnya
adalah fungsi tampil. Dengan menggunakan perintah perualangan while dan pengolah string
srtcmp program akan memberi pilihan menambah inputan lagi atau menyudahinya.
Berikut penjelasannya :

1. Merupakan header atau library yang


1. #include <stdio.h>
digunakan untuk perintah input output printf
dan scanf.
2. Merupakan header atau library yang
2. #include <string.h>
digunakan untuk perintah pengolah string
yakni strcmp.
3. Pendeklarasian struct dt nilai dengan
3. struct dtnilai {
char nrp [10]; elemen char bernama nrp dan nama serta
char nama [20]; nilai bertipe data double
double nilai ;
4. Pendeklarasian Variabel bertipe dtnilai
};
4. struct dtnilai data [10]; bernama data dengn panjang maksimal 10
5. int j= 0; 5. Pendeklarasian variabel j bernilai 0
6. void tambah_data(){ 6. Pendeklarasian fungsi bertipe void bernama
tambah data
7. char jawab [2]; 7. Pendeklarasian variabel bertipe char
8. while (1){
maksimal 2 karakter
8. Perintah perulangan while, diulang jika
kondisi 1
9. fflush (stdin); 9. Berfungsi untuk menghilangkan nilai buffer
pada system
10. Tampilan untuk memasukkan nrp
10.printf ("NRP :") ;
11.scanf("%s",&data[j].nrp); 11. Perintah untuk memasukkan data index ke
j elemen nrp
12. Tampilan untuk memasukkan nama
12.printf ("Nama :") ; 13. Perintah untuk memasukkan data index ke
13.scanf("%s",&data[j].nama);
j elemen nama
14. Tampilan untuk memasukkan nilai tes
14.printf ("Nilai test :") ; 15. Perintah untuk memasukkan data index ke
15.scanf("%lf",&data[j].nilai);
j elemen nilai
16. Tampilan untuk pilihan perulangan
16.printf ("ada data lagi (y/t) :") 17. Perintah input jawaban yakni variabel
; jawab
17.scanf("%s",&jawab); 18. Jika kata yang di inputkan pada variabel
jawab adalah y atau Y maka strcmp akan
18.if ((strcmp (jawab, benilai 1 dan kondisi while diatas
"Y")==0)||(strcmp (jawab,
terpenuhi sehingga akan mengulang
"y")==0)) 19. Jika kondisi terpenuhi maka akan
{
dilanjutkan. Perubahan nilainya yakni j++
19.j++; continue ;
} atau j+1
20. Jika kata yang di inputkan pada variabel
jawab adalah t atau T maka strcmp akan
20.else if ((strcmp (jawab,
benilai 1 dan kondisi bernilai benar
"T")==0)||(strcmp (jawab,
21. Jika kondisi line 21 benar maka akan
"t")==0))
berhenti perulangan nya
22. Pendeklarasian fungsi bertipe void
bernama tambah data
21.break ; 23. Pendeklarasian variabel bertipe integer
} bernama i
}
22.void tampil ()
{
23.int i ; 24. Perulangan dengan inisilisasi integer i
printf ("data mahasiswa
bernilai 0 dan kondisi hingga i kurang dari
yang telah diinputkan :\n ");
printf ("NRP\t NAMA \t j dan perubahan i++ atau i+1
25. Menampilkan data index ke i elemen
NILAI\n");
nrp,nama dan nilai

24.for (i=0;i<=j;i++)
{
25.printf (" %s \t %s \t
%6.2lf\n", data[i].nrp ,
26. Pendeklarasian fungsi utama bertipe
data[i].nama , data[i].nilai );
} integer
} 27. Memanggil fungsi tambah_data
28. Memanggil fungsi tampil
29. Program selesai
26.int main (){

27.tambah_data ();
28.tampil ();
29.}
TUGAS RUMAH

Tugas I

Pemrograman C++

Nama Program : Program Kasir Toko Roti

Bahasa Pemrograman : C++

Compiler : MinGW Developer Studio

Script program :

#include <iostream>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;

struct daftarkue
{
int codekue;
char namakue[50];
int harga;
} kue[10];
int main()
{
int code[10];
kue[0].codekue= 101;
strcpy(kue[0].namakue, "BROWNIES KUKUS ORIGINAL");
kue[0].harga = 30000;

kue[1].codekue= 102;
strcpy(kue[1].namakue, "BROWNIES KUKUS COKLAT ");
kue[1].harga = 40000;
kue[2].codekue= 103;
strcpy(kue[2].namakue, "BROWNIES KUKUS PISANG ");
kue[2].harga = 40000;

kue[3].codekue= 104;
strcpy(kue[3].namakue, "BROWNIES KUKUS KEJU");
kue[3].harga = 40000;

kue[4].codekue= 105;
strcpy(kue[4].namakue, "BROWNIES KUKUS PANDAN");
kue[4].harga = 35000;

kue[5].codekue= 106;
strcpy(kue[5].namakue, "BROWNIES BAKAR ORIGINAL");
kue[5].harga = 35000;

kue[6].codekue= 107;
strcpy(kue[6].namakue, "BROWNIES BAKAR COKLAT ");
kue[6].harga = 45000;

kue[7].codekue= 108;
strcpy(kue[7].namakue, "BROWNIES BAKAR PISANG ");
kue[7].harga = 45000;

kue[8].codekue= 109;
strcpy(kue[8].namakue, "BROWNIES BAKAR KEJU");
kue[8].harga = 45000;

kue[9].codekue= 110;
strcpy(kue[9].namakue, "BROWNIES BAKAR PANDAN");
kue[9].harga = 40000;

cout<<"\n\t\t\t
\n";
cout<<"\t\t\t \n";
cout<<"\t\t\t DAFTAR KUE \n";
cout<<"\t\t\t \n";
cout<<"\t\t\t
\n\n";
cout<<"\t\t\t Kode\t\tNama Kue\t\t\tHarga\n";
cout<<"\t\t---------------------------------------------------------------------------\n";

for(int a=0;a<10;a++)
{
cout<<" \t\t\t
"<<kue[a].codekue<<"\t\t"<<kue[a].namakue<<"\t\t"<<kue[a].harga<<endl;
}

cout<<"\t\t---------------------------------------------------------------------------\n";

cout<<endl<<endl;
cout<<"\t\t\t
\n";
cout<<"\t\t\t \n";
cout<<"\t\t\t PEMBELIAN KUE \n";
cout<<"\t\t\t \n";
cout<<"\t\t\t
\n\n";
cout<<"\t\t\t\tMasukkan Kode Kue yang akan dibeli : ";
cin>>code[0];
int jum,uang,kembalian;
cout<<"\n\n\t\t\t\tMasukkan Jumlah Kue yang akan dibeli : ";
cin>>jum;
cout<<"\n\n\t\t\t\tMasukkan Jumlah uang yang diterima : ";
cin>>uang;
for(int i=0; i<10; i++)
{
if(kue[i].codekue==code[0])
{
int index=i;
cout<<endl<<endl;
cout<<"\t\t\tKode\t\tNama Kue\t\tHarga\t\tJumlah\n";

cout<<"\t--------------------------------------------------------------------------------------------\n";

cout<<"\t\t\t"<<kue[index].codekue<<"\t\t"<<kue[index].namakue<<"\t"<<kue[index].har
ga<<"\t\t"<<jum<<endl;

cout<<"\t--------------------------------------------------------------------------------------------\n";
kembalian=uang-(kue[index].harga*jum);
cout<<"\n\t\tTekan Enter Untuk Melihat Nota";
getch();
system("cls");
cout<<"\n\t\t
\n";
cout<<"\t\t \n";
cout<<"\t\t NOTA PEMBELIAN \n";
cout<<"\t\t ADIYYAH BROWNIES \n";
cout<<"\t\t \n";
cout<<"\t\t
\n\n";
cout<<"\t\t Nama Kue : "<<kue[index].namakue<<endl;
cout<<"\t\t Harga Satuan : Rp. "<<kue[index].harga<<endl;
cout<<"\t\t Jumlah Beli : "<<jum<<endl;
cout<<"\t\t Total Harga : Rp. "<<kue[index].harga*jum<<endl;
cout<<"\t\t Total Uang : Rp. "<<uang<<endl;
cout<<"\t\t Kembalian : Rp. "<<kembalian<<endl;
cout<<"\t\t
\n";
getch();
}
}
}

Output Program :
Penjelasan Program :

Program ini adalah program yang ditujukan untuk melayani pembelian sebuah toko
kue, dengan menggunakan struct bernma daftarkue yang menyimpan elemen codekue bertipe
integer, namakue bertipe char dan harga bertipe integer. Selanjutnya adalah pendeklarasian
variabel kue maksimal 10. Setelah pendeklarasian array bertipe interger bernama code setiap
elemen kue (0-9) diisi terlebih dahulu, yakni nama dari kue pada elemen namakue, kode kue
pada elemen codekue dan harga pada elemen harga. Selanjutnya adalah menampilkan menu
atau tem yang ada dengan menampilkan index pada kue pada tiap-tiap elemen menggunakan
perulangan for , for ini akan menampiklan ke10 index kue yang sebelunya telah di
deklarasikan. Setelelah itu penginputan pembelian, yang pertama di input adalah kode kue
yang akan dibeli untuk menentukan nama kue dan harga, kedua adalah jumlah kue yang
disimpan dalam variabel integer bernama jum dan yang ketiga adalah menginputkan uang
yang diberikan oleh customer untuk perhitungan kembalian. Setelah penginputan selesai
maka akan tampil tabel dari nama barang yang dibeli, jumlah dan harga nya. Dan yang
terakhir adalah pencetakan nota, sebelum mecetak nota terlebih dahulu akan menghitung
kembalian dengan cara mengurangkan uang dengan hasil kali harga kue yang dibeli dengan
jumlah kuenya. Selanjutnya user akan diminta unruk menekan enter dan program akan
berganti layar menggunakan sintak system(cls), setelah berganti layar maka akan tercetak
nota yang didalamnya terdapat nama kue (var namakue), harga satuan (elemen harga pada
kue), jumlah beli (var jum), total harga (hasil kakli harga dan jum), total uang (var uang), dan
kembalian (var kembalian )
KESIMPULAN

Anda mungkin juga menyukai