Laporan Praktikum Konsep Pemrograman

140
1 Praktikum Konsep Pemrograman Operasi Aritmatika dan Logika

Transcript of Laporan Praktikum Konsep Pemrograman

Page 1: Laporan Praktikum Konsep Pemrograman

1

PraktikumKonsep Pemrograman

Operasi Aritmatika dan Logika

Page 2: Laporan Praktikum Konsep Pemrograman

1. Buatlah program dengan memasukkan nilaiantara 0 sampai dengan 100 dan programmemberikan keluaran berupa klasifikasi A, B,C, D atau E berdasarkan kriteria berikut :

Nilai KlasifikasiNilai ≥ 80 A70 ≤ Nilai < 80 B60 ≤ Nilai < 70 C40 ≤ Nilai < 60 DNilai < 40 E

Page 3: Laporan Praktikum Konsep Pemrograman
Page 4: Laporan Praktikum Konsep Pemrograman

2. Buatlah program yang mengubah bit 5 darisuatu nilai bulat dengan aturan sebagaiberikut :Jika bit ke-5 bernilai 1, gantilah dengan 0Jika bit ke-5 bernilai 0, gantilah dengan 1Untuk memeriksa kebenaran program, bilangan

yang diuji :a) 33, dengan hasil harus berupa 1b)16, dengan hasil harus berupa 48

Page 5: Laporan Praktikum Konsep Pemrograman
Page 6: Laporan Praktikum Konsep Pemrograman

See You Next Time

Page 7: Laporan Praktikum Konsep Pemrograman

LAPORAN PRAKTIKUM KONSEP PEMROGRAMAN DASAR “INPUT OUTPUT & DECISION MAKING”

DISUSUN OLEH: FEMBI REKRISNA GRANDEA PUTRA

(M0513019)

ASISTEN : 1. AMELIA RAHMAN (M0512004) 2. RIO PAHLEVY RIDLO YUDHA BHAKTI (M0512048)

JURUSAN INFORMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET SURAKARTA

Rabu, 25 September 2013

Page 8: Laporan Praktikum Konsep Pemrograman

2

1. Soal 1.1. Jelaskan hasil eksekusi program berikut! Dan jelaskan perbedaannya kalau

getch() diganti getche()! #include<stdio.h>

main()

{

printf( "Tekan salah satu tombol karakter! " );

char in = getch();

printf( "\n\nSaya tahu, tombol yang Anda tekan

adalah %c!", in );

}

1.2. Apa hasil eksekusi program berikut? Jelaskanlah! #include<stdio.h>

#define l 256

main()

{

int umur;

char nama[l], nim[l], asal[l], alasan[l], cita[l];

puts( ":: INI INTERVIEW! ::\n" );

puts( "// ingat! untuk kalimat panjang pisahkan

dengan _ jangan <spasi> //\n");

printf( "Ketikkan nama <spasi> umur Anda!\n" );

scanf( "%s %d", nama, &umur );

printf( "Ketikkan NIM Anda!\n");

scanf( "%s", nim );

printf( "Ketikkan kota asal Anda!\n");

scanf( "%s", asal );

printf( "Terakhir, ketikkan alasan Anda memilih

informatika dilanjutkan dengan cita-cita Anda (dengan

<enter>).\n" );

scanf( "%s\n%s", alasan, cita);

puts("\n\n");

printf( "Nama saya %s, tahun ini saya berumur %d

tahun.\n", nama, umur );

printf( "Alasan saya masuk Informatika adalah %s,

karena cita-cita saya adalah %s.\n", alasan, cita );

puts( "Informatika JAYA!!" );

printf( "\n\t\t\t\t\t%s", nim );

}

1.3. Buatlah sebuah program pencari nilai maksimum dan minimum dari 3 angka yang dimasukkan! #include<stdio.h>

main()

{

puts( ":: Program pencari nilai maksimum dan

minimum dari 3 angka ::" );

double x, y, z, max, min;

printf( "Masukkan nilai x: " );

scanf( "%lf", &x );

Page 9: Laporan Praktikum Konsep Pemrograman

3

printf( "Masukkan nilai y: " );

scanf( "%lf", &y );

printf( "Masukkan nilai z: " );

scanf( "%lf", &z );

max = (x>y)?((x>z)?x:z):((y>z)?y:z);

min = (x<y)?((x<z)?x:z):((y<z)?y:z);

printf("max : %.2lf\n", max);

printf("min : %.2lf\n", min);

}

1.4. Jelaskan hasil eksekusi program berikut! #include<stdio.h>

main()

{

int hari;

puts( "1=Minggu 2=Senin 3=Selasa 4=Rabu 5=Kamis

6=Jumat 7=Sabtu" );

printf( "Masukkan kode hari (1...7)= " );

scanf( "%d", &hari );

switch( hari )

{

case 1:

puts( "Minggu" );

break;

case 2:

puts( "Senin" );

break;

case 3:

puts( "Selasa" );

break;

case 4:

puts( "Rabu" );

break;

case 5:

puts( "Kamis" );

break;

case 6:

puts( "Jumat" );

break;

case 7:

puts( "Sabtu" );

break;

default:

puts( "Maaf, kode yang Anda masukkan

salah!");

}

}

1.5. Buatlah program untuk mencari orang yang tertua dari biulan dan tahun lahir yang dimasukkan dan memberikan keluaran selisihnya! (isi dengan data diri anda dan 1 teman anda)

Page 10: Laporan Praktikum Konsep Pemrograman

4

2. Gagasan 2.1. Pada soal 1.1. mencari tahu perbedaan yang ada pada program yang didalamnya

terdapat fungsi getch() dan getche(). Terdapat kata kunci char yang berfungsi untuk memasukkan input berupa karakter. Yang akan dilakukan adalah dengan membuat program yang menggunakan pernyataan getch() dan pernyataan getche(). Dari sini saya membuat kesimpulan apakah pernyataan getch() bila diganti dengan pernyataan getche() akan akan perubahan atau tidak.

2.2. Pada soal 1.2. diketahui ada beberapa isian yang berkaitan dengan wawancara. Saya akan membahas bagaimana cara untuk membuat tampilan program layaknya diwawancarai seseorang. Kata kunci char membantu membuat program bisa memasukkan karakter huruf dengan batas yang telah ditentukan. Selebihnya adalah menampilkan pertanyaan melalui statement printf() dan puts().

2.3. Pada soal 1.3. untuk membuat ketentuan mengetahui bilangan terbesar dan terkecil dari yang telah terinput oleh program digunakan pernyataan double. Pernyataan double berisi variabel bilangan, maksimum, dan minimum. Maksimum untuk mengetahui bilangan terbesar dan minimum untuk mengetahui bilangan terkecil.

2.4. Pada soal 1.4. diketahui program berfungsi untuk mengetahui hari melalui apa yang telah di-input-kan ke program berupa angka. Yang bisa dilakukan adalah pernyataan switch. Pernyataan ini digunakan untuk mencocokkan pernyataan yang diberikan. Jika tidak cocok akan melanjutkan ke pernyataan lainnya hingga ada kecocokan.

2.5. Pada soal 1.5. agar bisa membuat program menentukan diantara dua orang siapa yang tertua dan berapa selisih umurnya saya menggunakan operasi kondisi. Jika kondisi bernilai benar, maka nilai ekspresi kondisi berupa nilai pertama. Jika salah, maka nilai ekspresi kondisi berupa nilai kedua, dan seterusnya.

Page 11: Laporan Praktikum Konsep Pemrograman

5

3. Printscreen Source Code dan Hasil Eksekusi 3.1. Program memasukkan karakter

Page 12: Laporan Praktikum Konsep Pemrograman

6

3.2. Program interview

Page 13: Laporan Praktikum Konsep Pemrograman

7

3.3. Program menentukan bilangan terbesar dan terkecil

Page 14: Laporan Praktikum Konsep Pemrograman

8

3.4. Program menentukan hari

Page 15: Laporan Praktikum Konsep Pemrograman

9

3.5. Program menentukan orang tertua serta selisih umur antara dua orang

Page 16: Laporan Praktikum Konsep Pemrograman

10

4. Analisis per baris dan jalannya program

4.1. Analisa program memasukkan karakter #include <stdio.h> preprocessor untuk meng-include atau

menambah isi dari file stdio.h ke program lewat main(). Sebelum memulai membuat program perlu ditambahkan karakter “{“.

printf(“Tekan salah satu program karakter!”);

menyuruh program untuk menuliskan “Tekan salah satu program karakter!”.

char in = getch(); dan char in = getche(); digunakan untuk meng-input data dari user berupa karakter tunggal.

printf(“\n\nSaya tahu, tombol yang anda tekan

adalah %c”,in); untuk membuktikan apa yang kita ketikkan benar dan menyuruh program untuk meng-input program dan memasukkannya pada variabel in. %c yang ada pada skrip tersebut berfungsi untuk menampilkan karakter dari apa yang telah diketikkan sebelumnya.

Terdapat perbedaan dari pernyataan char in yang menggunakan getch() dan getche(). Awalnya saat muncul jendela dan diketikkan karakter, program yang ada pernyataan char in = getch () tidak memunculkan karakter dari awal pada baris, selanjutnya barulah memunculkan karakter yang telah diketik. Sedangkan program yang ada pernyataan char in = getche () memunculkan karakter dan kemudian pada baris selanjutnya karakter tersebut dimunculkan kembali.

Disimpulkan bahwa pernyataan getch() untuk membaca sebuah karakter dan sifat karakter yang dimasukkan perlu diakhiri dengan <enter> dan barulah tampil karakter pada layar, sedangkan pernyataan getche() untuk membaca sebuah karakter dan sifat karakter yang dimasukkan tidak perlu diakhiri dengan <enter> dan barulah tampil karakter pada layar.

Setelah program selesai ditutup dengan “}”. 4.2. Analisa program interview

Di baris pertama terdapat #include <stdio.h>, di jelaskan bahwa menyuruh preprocessor untuk meng-include atau menambah isi dari file stdio.h ke program lewat main(). Disusul dengan int untuk memasukkan input berupa integer pada program. Selain integer, juga ditambahkan fungsi char untuk memasukkan input berupa karakter baik huruf maupun angka. Karena umur dinyatakan dalam nilai berbentuk angka, maka digunakanlah integer. Sementara nama, asal, alasan, dan cita-cita dinyatakan dalam bentuk huruf serta NIM (Nomor Induk Mahasiswa) menggunakan kombinasi angka dan huruf, digunakanlah char. [l] yang terdapat pada char nama, nim, asal, alasan, dan cita-cita adalah long integer. Long integer memiliki 32 bit sehingga bisa memasukkan nilai dengan rentang nilai lebih lebar.

puts(“::INI INTERVIEW!!!::\n”);

puts(“//ingat! Untuk kalimat panjang pisahkan

dengan _ jangan <spasi> //\n”);

menyuruh program untuk menuliskan “::INI INTERVIEW!:: //ingat! Untuk kalimat panjang pisahkan dengan _ jangan <spasi>//”

Page 17: Laporan Praktikum Konsep Pemrograman

11

Fungsi puts() digunakan khusus untuk menampilkan data string ke layar yang otomatis akan pindah baris tanpa menuliskan \n. Namun, karena perlu memberi jarak antar baris, maka saya menuliskan \n di sela-sela script.

printf("Ketikkan nama <spasi> umur Anda!”\n);

menyuruh program untuk menuliskan “Ketikkan nama <spasi> umur Anda!” dan menurunkan kursor 1 baris. Dibawahnya tertulis scanf("%s%d",nama, &umur); source code menyuruh program untuk meng-input program dan

memasukkannya pada variabel nama dan umur. %s digunakan untuk mewakili char nama; sementara %d digunakan untuk mewakili int umur.

printf( "Ketikkan NIM Anda!\n"); memunculkan kalimat “Ketikkan NIM Anda!”.

scanf( "%s", nim ); memasukkan data ke variabel nim berupa karakter.

printf( "Ketikkan kota asal Anda!\n"); menampilkan kalimat “Ketikkan kota asal Anda!”.

scanf( "%s", asal ); memasukkan data ke variabel asal berupa karakter.

printf( "Terakhir, ketikkan alasan Anda memilih

informatika dilanjutkan dengan cita-cita Anda (dengan

<enter>).\n" ); menampilkan kalimat “Terakhir, ketikkan alasan Anda memilih informatika dilanjutkan dengan cita-cita Anda (dengan <enter>).”

scanf( "%s\n%s", alasan, cita); memasukkan data berupa

karakter ke variabel alasan dan cita.

puts("\n\n"); memindahkan kursor ke dua baris dibawahnya. printf( "Nama saya %s, tahun ini saya berumur %d

tahun.\n", nama, umur ); menampilkan kalimat “Nama saya <data yang dimasukkan ke variabel nama>, tahun ini saya berumur <data yang

dimasukkan ke variabel umur> tahun.” printf( "Alasan saya masuk Informatika adalah %s,

karena cita-cita saya adalah %s.\n", alasan, cita );

menampilkan tulisan “Alasan saya masuk Informatika adalah <data yang dimasukkan ke variabel alasan>, karena cita-cita saya adalah <data yang dimasukkan ke variabel cita>.”

puts( "Informatika JAYA!!" ); menampilkan tulisan “Informatika JAYA!!”.

printf( "\n\t\t\t\t\t%s", nim ); memindahkan kursor ke baris dibawahnya.

4.3. Analisa program menentukan bilangan terbesar dan terkecil #include <stdio.h> menyuruh preprocessor untuk meng-include

atau menambah isi dari file stdio.h ke program lewat main(). Sebelum memulai membuat program perlu ditambahkan karakter “{“.

puts( ":: Program pencari nilai maksimum dan

minimum dari 3 angka ::" ); memerintahkan program untuk menulis kalimat “:: Program pencari nilai maksimum dan minimum dari 3 angka ::”.

double x, y, z, max, min; memasukkan input pada variabel x, y, z, max, dan min bernilai double.

Page 18: Laporan Praktikum Konsep Pemrograman

12

printf( "Masukkan nilai x: " ); mencetak tulisan “Masukkan nilai x: ”.

scanf( "%lf", &x ); meng-input data dari user ke variabel x bernilai angka satu desimal di belakang.

max = (x>y)?((x>z)?x:z):((y>z)?y:z);

min = (x<y)?((x<z)?x:z):((y<z)?y:z);

Variabel max memiliki persyaratan kondisi bilangan x lebih besar dari y dengan membenarkan pernyataan jika y lebih besar dari z.

Variabel min memiliki persyaratan kondisi bilangan x lebih kecil dari y dengan membenarkan pernyataan jika y lebih kecil dari z.

Setelah nilai-nilai dikumpulkan dan hasil persyaratan benar, maka muncullah jawaban berapa bilangan terbesar dan bilangan terkecil.

printf("max : %.2lf\n", max); digunakan untuk mencetak tulisan max : agar mengetahui bilangan terbesar dengan dua angka desimal dibelakang angka.

printf("min : %.2lf\n", min); digunakan untuk mencetak tulisan min : agar mengetahui bilangan terkecil dengan dua angka desimal

dibelakang angka. Setelah program selesai ditutup dengan “}”

4.4. Analisa program penentuan hari Di baris pertama terdapat #include <stdio.h>, dijelaskan bahwa

menyuruh preprocessor untuk meng-include atau menambah isi dari file

stdio.h ke program lewat main(). Sebelum memulai membuat program

perlu ditambahkan karakter “{“. int hari digunakan untuk mengidentifikasi adanya integer hari. puts (“1=Minggu 2=Senin 3=Selasa 4=Rabu 5=Kamis

6=Jumat 7=Sabtu”);

printf(“Masukkan kode hari (1 . . 7) = ”);

digunakan untuk memunculkan di dalam source code 1=Minggu 2=Senin 3=Selasa 4=Rabu 5=Kamis 6=Jumat

7=Sabtu

Masukkan kode hari (1 .. 7) =

Fungsi switch berguna untuk mencocokkan pernyataan yang sesuai dengan input-nya. Dalam konteks soal penentuan hari, digunakan pernyataan

switch( hari )

{

case 1: puts( "Minggu" );

break;

case 2: puts( "Senin" );

break;

case 3: puts( "Selasa" );

break;

case 4: puts( "Rabu" );

break;

case 5: puts( "Kamis" );

break;

case 6: puts( "Jumat" );

break;

case 7: puts( "Sabtu" );

Page 19: Laporan Praktikum Konsep Pemrograman

13

break;

Jika yang diinputkan pada variabel hari misalkan ‘6’, maka output yang akan muncul adalah :

1=Minggu 2=Senin 3=Selasa 4=Rabu 5=Kamis 6=Jumat

7=Sabtu

Masukkan kode hari (1 .. 7) = 6

Persyaratan dalam case 1: puts ( “Senin” ); tidak dibenarkan karena yang di-input bukan 1 melainkan 6, sehingga program mencari yang sesuai dengan yang diinput, yaitu 6. Maka, program akan mencari hingga menemukan case 6. Dan hasil dalam case akan dieksekusi menjadi output program. Sehingga yang dihasilkan ketika mengetikkan 6 dibawah source code akan tampil

Jumat

Namun, jika input yang dimasukkan bukan 1, 2, 3, …, 7, maka perintah dibawah ini dijalankan.

default:

puts( "Maaf, kode yang Anda masukkan salah!");

Maka akan muncul di layar. 1=Minggu 2=Senin 3=Selasa 4=Rabu 5=Kamis 6=Jumat

7=Sabtu

Masukkan kode hari (1 .. 7) = 9

Maaf, kode yang Anda masukkan salah!

Setelah program selesai ditutup dengan ‘ } ‘. 4.5. Analisa program menentukan selisih tanggal lahir

Di baris pertama terdapat #include <stdio.h>, dijelaskan bahwa menyuruh preprocessor untuk meng-include atau menambah isi dari file stdio.h ke program lewat main(). Sebelum memulai membuat program perlu ditambahkan karakter “{“.

int y1, m1, u1, y2, m2, u2, sely=0,

selm=0,y12,y21;

char n1 [30], n2[30] digunakan untuk nama yang di-input dari n1

dan n2 dibatasi hingga 30 karakter, setelah itu karakter setelah karakter ke-30 tidak ditulis.

printf("::::: CARI TAHU SELISIH USIAMU DAN

TEMANMU\n);

printf(“Masukkan nama serta bulan dan tahun

kelahiran Anda = \n”);

scanf(“%s %d %d”, &n1, &m1, &y1);

printf(“Masukkan nama serta bulan dan tahun

kelahiran teman Anda = \n”);

scanf(“%s %d %d”, &n2, &m2, &y2);

Fungsi printf yang ada pada source code akan menyuruh program untuk menuliskan

::::: CARI TAHU SELISIH USIAMU DAN TEMANMU :::::

Masukkan nama serta bulan dan tahun kelahiran Anda

=

scanf(“%s %d %d”, &n1, &m1, &y1);

Page 20: Laporan Praktikum Konsep Pemrograman

14

berguna untuk memasukkan data ke variabel n1 berupa string, ke variabel m1 dan y1 berupa angka desimal.

Setelah diisi, akan muncul Masukkan nama serta bulan dan tahun kelahiran Anda

=

scanf(“%s %d %d”, &n2, &m2, &y2);

berguna untuk memasukkan data ke variabel n2 berupa string, ke variabel m2 dan y2 berupa angka desimal.

y12=m1+y1*12;y21=m2+y2*12;

selm=(y12>y21)?(y12-y21):(y21-y12);

Formula di atas menunjukkan bahwa bulan pertama ditambah tahun pertama dikalikan 12, sedangkan bulan kedua ditambahan tahun kedua dikalikan 12.

Sehingga disimpulkan penjumlahan hanya bisa jika nilai besar dikurangi nilai kecil karena tidak ada selisih bernilai negatif (minus).

Selisih antara bulan dan tahun kelahiran ‘Anda’ dan ‘teman Anda’ menggunakan formula :

sely = selm/12;

selm1 = selm%12;

Selisih tahun menggunakan pembagian 12, sedangkan selisih bulan menggunakan modulus 12.

Di baris selanjutnya, program telah menentukan siapa yang tertua diantara dua orang. Script pada source code ini dijalankan

printf(“%s”, (y12!=y21)?((y12<y21)?n1:n2):n1;

if (y21 == y12)

printf(“usianya sama dengan”);

else

printf(“lebih tua dari”);

printf(“%s, selisihnya adalah %d tahun %d

bulan”,(y12!=y21)?(y12>y21)?n1:n2:n2,sely, selm1;

Persyaratan jika tahun kedua dan tahun pertama sama, maka nama pertama usianya sama dengan nama kedua. Namun jika tahun kedua dan tahun pertama tidak sama, maka program sebelumnya yang menentukan siapa yang tertua akan menulis, “Nama orang tertua ‘lebih tua dari’ nama orang termuda, selisihnya adalah … tahun … bulan.”

Kemudian program ditutup dengan “}”.

Page 21: Laporan Praktikum Konsep Pemrograman

LAPORAN PRAKTIKUM KONSEP PEMROGRAMAN

LOOPING

DISUSUN OLEH:

FEMBI REKRISNA GRANDEA PUTRA

M0513019

ASISTEN:

AMELIA RAHMAN (M0512004)

RIO PAHLEVY RIDLO YUDHA BHAKTI (M0512048)

JURUSAN INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET

SURAKARTA

RABU, 2 OKTOBER 2013

Page 22: Laporan Praktikum Konsep Pemrograman

1. SOAL

1.1. Jelaskan perbedaan ini

#include<stdio.h>

main ()

{

int i = 9;

do

{

printf( “%d “, i );

i--;

}

while(i<9 &&i>=0);

}

#include<stdio.h>

main()

{

int i = 9;

while(i<9 &&i>=0 )

{

printf( “%d “, i );

i--;

}

}

1.2. Jelaskan hasil eksekusi

#include <stdio.h>

main()

{

Int baris, kolom, nilai=1, r=9;

for(baris=1; baris<r+1; baris++ )

{

for(kolom=0; kolom<baris; kolom++, nilai++ )

{

printf ( "%3d ", nilai );

}

Page 23: Laporan Praktikum Konsep Pemrograman

puts( "" );

}

}

1.3. Buat program yg hasil runnya kayak gini :3

1

2 3

4 5 6

7 8 9 10

11 12 13 14 15

16 17 18 19 20 21

22 23 24 25 26 27 28

29 30 31 32 33 34 35 36

37 38 39 40 41 42 43 44 45

1.4. Buat program untuk memunculkan himpunan bilangan prima dari 0 – 100

memakai looping ! !

Page 24: Laporan Praktikum Konsep Pemrograman

2. GAGASAN

2.1 Kedua program diatas dijalankan dengan fungsi yang berbeda, program pertama

menggunakan fungsi do-while, fungsi do-while adalah statement perulangannya

dilakukan terlebih dahulu baru kemudian di cek kondisinya. Sintaksnya adalah

sebagai berikut:

do {…Fungsi yang akan diulang…}

while (Kondisi)

Sedangkan program kedua menggunakan while, while adalah kondisi dicek

dulu baru kemudia statement perulangannya dijalankan. Sintaksnya adalah

sebagai berikut:

while(Kondisi) {…..Fungsi yang akan diulang……}

Perbedaan do-while dan while:

Pada dasarnya perulangan do-while sama saja dengan perulangan while,

hanya saja pada proses perulangan dengan while, seleksi berada di while yang

letaknya di atas sementara pada perulangan do-while, seleksi while berada di

bawah batas perulangan. Jadi dengan menggunakan struktur do-while sekurang-

kurangnya akan terjadi satu kali perulangan.

2.2 Program diatas dijalankan menggunakan fungsi for.

Bentuk pernyataan for:

for (ekspresi1;ekspresi2;ekspresi3)

pernyataan

ekspresi 1 digunakan untuk memberikan inisialisasi terhadap variabel

pengendali loop, ekspresi 2 digunakan sebagai untuk keluar dari loop, dan

ekspresi3 digunakan sebagai kondisi pengatur kenaikan nilai variabel pengendali

loop. Ketiga ekspresi tersebut harus dipisahkan dengan tanda titik koma (;).

2.3 Program diatas dijalankan menggunakan fungsi for.

Bentuk pernyataan for:

for (ekspresi1;ekspresi2;ekspresi3)

pernyataan

ekspresi 1 digunakan untuk memberikan inisialisasi terhadap variabel

pengendali loop, ekspresi 2 digunakan sebagai untuk keluar dari loop, dan

ekspresi3 digunakan sebagai kondisi pengatur kenaikan nilai variabel pengendali

loop. Ketiga ekspresi tersebut harus dipisahkan dengan tanda titik koma (;).

2.4 Program diatas dapat dijalankan menggunakan for dan continue.

Page 25: Laporan Praktikum Konsep Pemrograman

Bentuk pernyataan for:

for (ekspresi1;ekspresi2;ekspresi3)

pernyataan

ekspresi 1 digunakan untuk memberikan inisialisasi terhadap variabel

pengendali loop, ekspresi 2 digunakan sebagai untuk keluar dari loop, dan

ekspresi3 digunakan sebagai kondisi pengatur kenaikan nilai variabel pengendali

loop. Ketiga ekspresi tersebut harus dipisahkan dengan tanda titik koma (;).

Sedangkan pernyataan continue digunakan untuk mangarahkan eksekusi ke iterasi

(proses) berikutnya pada loop yang sama. dengan kata lain mengembalikan

proses yang sedang dilaksanakan ke-awal loop lagi, tanpa menjalankan sisa

perintah dalam loop tersebut.

Page 26: Laporan Praktikum Konsep Pemrograman

3. PRINT SCREEN

3.1.

3.2.

Page 27: Laporan Praktikum Konsep Pemrograman

3.3.

3.4.

Page 28: Laporan Praktikum Konsep Pemrograman

4. ANALISIS

4.1.1. Do-while

1. Merupakan suatu directive untuk C-Preprocessor. Baris-baris yang diawali

oleh # diolah oleh preprocessor sebelum dikompilasi. Baris ke (1) tersebut

menyuruh proprocessor untuk menyertakan (meng-include) isi dari stdio.h

ke dalam program. Sementara stdio.h itu adalah standard input output

header file, yang mengandung informasi dan deklarasi-deklarasi yang

digunakan oleh kompilator untuk penanganan fungsi-fungsi I/O seperti

printf, scanf, dll.

2. Fungsi main ( ) digunakan sebagai pembuka atau mengawali sebuah

program. Setiap program C akan mulai dieksekusi/dijalankan mulai dari

fungsi main.

3. Kurung kurawal { menandakan dimulainya isi program. Body program

adalah seluruh tulisan yang terdapat di antara dua kurung kurawal ini.

4. Untuk mendeklarasikan nama variabel i dengan tipe data integer, berbentuk

bilangan bulat, dan nilai i sudah diinisialisasikan, yaitu i=9. Tanda titik

koma (;) dipergunakan untuk mengakhiri sebuah statment.

5. Pernyataan do menunujukkan suatu pernyataan yang akan diproses.

6. Kurungg kurawal sebagai tempat perintah do yang akan di proses.

7. Untuk mencetak ke layar (nilai yang diperoleh dari hasil proses looping)

(tipe data desimal dengan variabel i). Tanda titik koma ( ; ) dipergunakan

untuk mengakhiri sebuah statment.

8. Setiap mengalami looping nilai variabel i mengalami pengurangan dan

menggunakan nilai ekspresi yang lama. Tanda titik koma (;) dipergunakan

untuk mengakhiri sebuah statment.

9. Kurung kurawal tersebut sebagai penutup perintah do yang akan di proses.

10. Untuk menguji pernyataan apabila dalam kondisi i kurang dari 9 dan i lebih

dari 0, maka pernyataan akan di proses dan di tampilkan. Namun, apabila

tidak memenuhi kondisi tersebut proses berhenti dan tidak ditampilkan.

Tanda titik koma (;) dipergunakan untuk mengakhiri sebuah statment.

11. „}‟ menandakan akhir dari fungsi main. Itu artinya program dikatakan telah

selesai apabila „}‟ sudah tercapai.

4.1.2. While

Page 29: Laporan Praktikum Konsep Pemrograman

1. Merupakan suatu directive untuk C-Preprocessor. Baris-baris yang diawali

oleh # diolah oleh preprocessor sebelum dikompilasi. Baris ke (1) tersebut

menyuruh proprocessor untuk menyertakan (meng-include) isi dari stdio.h

ke dalam program. Sementara stdio.h itu adalah standard input output

header file, yang mengandung informasi dan deklarasi-deklarasi yang

digunakan oleh kompilator untuk penanganan fungsi-fungsi I/O seperti

printf, scanf, dll.

2. Fungsi main ( ) digunakan sebagai pembuka atau mengawali sebuah

program. Setiap program C akan mulai dieksekusi/dijalankan mulai dari

fungsi main.

3. Kurung kurawal { menandakan dimulainya isi program. Body program

adalah seluruh tulisan yang terdapat di antara dua kurung kurawal ini.

4. Untuk mendeklarasikan nama variabel i dengan tipe data integer, berbentuk

bilangan bulat, dan nilai i sudah diinisialisasikan, yaitu i=9. Tanda titik

koma (;) dipergunakan untuk mengakhiri sebuah statment.

5. while diberikan suatu kondisi bahwa i akan berjalan jika kurang dari 9 dan i

lebih dari sama dengan 0, padahal nilai i sudah diberikan inisialisasi dengan

nilai = 9, maka kondisi tersebut salah dan tidak dapat melakukan looping.

Program akan keluar secara otomatis, dan output yang akan ditampilkan

tidak ada.

6. Kurung kurawal tersebut sebagai pembatas proses.

7. Untuk mencetak ke layar (nilai yang diperoleh dari hasil proses looping)

(tipe data desimal dengan variabel i). Tanda titik koma ( ; ) dipergunakan

untuk mengakhiri sebuah statment.

8. Setiap mengalami looping nilai variabel i mengalami pengurangan dan

menggunakan nilai ekspresi yang lama. Tanda titik koma (;) dipergunakan

untuk mengakhiri sebuah statment.

9. Kurung kurawal tersebut sebagai pembatas proses. „}‟ menandakan akhir

dari fungsi main. Itu artinya program dikatakan telah selesai apabila „}‟

sudah tercapai.

4.2 1. Merupakan suatu directive untuk C-Preprocessor. Baris-baris yang diawali

oleh # diolah oleh preprocessor sebelum dikompilasi. Baris ke (1) tersebut

menyuruh proprocessor untuk menyertakan (meng-include) isi dari stdio.h

ke dalam program. Sementara stdio.h itu adalah standard input output

Page 30: Laporan Praktikum Konsep Pemrograman

header file, yang mengandung informasi dan deklarasi-deklarasi yang

digunakan oleh kompilator untuk penanganan fungsi-fungsi I/O seperti

printf, scanf, dll.

2. Fungsi main ( ) digunakan sebagai pembuka atau mengawali sebuah

program. Setiap program C akan mulai dieksekusi/dijalankan mulai dari

fungsi main.

3. Kurung kurawal { menandakan dimulainya isi program. Body program

adalah seluruh tulisan yang terdapat di antara dua kurung kurawal ini.

4. Int menunjukkan tipe data yang akan dimasukkan pada variabel baris,

kolom, nilai, dan r karena keempat variabel tersebut bernilai integer dan

berbentuk bilangan bulat dengan penginisialisasian nilai bernilai 1 dan r

bernilai 9. Selain itu, tanda (;) digunakan sebagai penunjuk akhir statement.

5. Untuk memberikan kondisi agar bisa mengendalikan saat looping. Baris=1,

merupakan ekspresi yang digunakan untuk inisialisasi variabel pengendali

loop. Baris < r+1, merupakan ekspresi yang digunakan sebagai kondisi

untuk keluar dari proses looping apabila tidak memebuhi kondisi tersebut.

Baris++, merupakan ekspresi yang mengantur kenaikan nilai dari baris

setiap kali mengalami proses looping. Setiap ekspresi dipisahkan dengan

tanda (;).

6. Kurung kurawal tersebut sebagai pembatas proses yang ada di dalamnya.

7. Kondisi kedua dijalankan ketika kondisi pertama tersebut baris memiliki

nilai 1, maka kolom bernilai 0, sehingga ketika nilai kolom kurang dari nilai

baris, program akan melakukan looping, dan ketika kolom bernilai 1 maka

program tidak bisa berjalan karena tidak memenuhi syaratnya yaitu harus

nilai kolom kurang dari nilai baris dan langsung diincrument, atau keluar

dari program. Nilai yang dihasilkan pun akan diincrumentkan agar dapat

menambah jika melakukan looping, begitu pun seterusnya.

8. Kurung kurawal tersebut sebagai pembatas proses yang ada di dalamnya.

9. Untuk mencetak ke layar (nilai yang diperoleh dari hasil proses

looping)(tipe data desimal dengan variabel nilai). Maksud angka 3 dalam

“%3d” merupakan banyaknya jumlah angka desimal yang akan diubah

menjadi bilangan bulat setelah tanda koma di belakang bilangan yang

dihasilkan, sedangkan &nilai menyatakan alamat memori dimana nilai yang

didapatkan dari pemakai akan disimpan.

Page 31: Laporan Praktikum Konsep Pemrograman

10. Kurung kurawal tersebut sebagai pembatas proses yang ada di dalamnya.

11. Untuk mencetak ke layar. perintah puts ( ) hampir sama dengan perintah

printf ( ), tetapi yang membedakan keduanya adalah perintah puts ( ) tidak

memerlukan \n, karena sudah diberikan secara otomatis untuk berpindah

garis.

12. Kurung kurawal tersebut sebagai pembatas proses yang ada di dalamnya.

13. „}‟ menandakan akhir dari fungsi main. Itu artinya program dikatakan telah

selesai apabila „}‟ sudah tercapai.

4.3 1. Merupakan suatu directive untuk C-Preprocessor. Baris-baris yang diawali

oleh # diolah oleh preprocessor sebelum dikompilasi. Baris ke (1) tersebut

menyuruh proprocessor untuk menyertakan (meng-include) isi dari stdio.h

ke dalam program. Sementara stdio.h itu adalah standard input output

header file, yang mengandung informasi dan deklarasi-deklarasi yang

digunakan oleh kompilator untuk penanganan fungsi-fungsi I/O seperti

printf, scanf, dll.

2. Fungsi main ( ) digunakan sebagai pembuka atau mengawali sebuah

program. Setiap program C akan mulai dieksekusi/dijalankan mulai dari

fungsi main.

3. Kurung kurawal { menandakan dimulainya isi program. Body program

adalah seluruh tulisan yang terdapat di antara dua kurung kurawal ini.

4. Int menunjukkan tipe data yang akan dimasukkan pada variabel baris,

kolom, nilai, r, x, dan spasi karena keenam variabel tersebut bernilai integer

dan berbentuk bilangan bulat dengan penginisialisasian nilai bernilai 1, r

bernilai 9, dan x bernilai 8. Selain itu, tanda (;) digunakan sebagai penunjuk

akhir statement.

5. Untuk memberikan kondisi agar bisa mengendalikan saat looping. Baris=1,

merupakan ekspresi yang digunakan untuk inisialisasi variabel pengendali

loop. Baris < r+1, merupakan ekspresi yang digunakan sebagai kondisi

untuk keluar dari proses looping apabila tidak memebuhi kondisi tersebut.

Baris++, merupakan ekspresi yang mengantur kenaikan nilai dari baris

setiap kali mengalami proses looping. Setiap ekspresi dipisahkan dengan

tanda (;).

6. Kurung kurawal tersebut sebagai pembatas perintah-perintah yang ada di

dalamnya.

Page 32: Laporan Praktikum Konsep Pemrograman

7. Untuk memberikan kondisi agar bisa mengendalikan saat looping. Spasi=0,

merupakan ekspresi yang digunakan untuk inisialisasi variabel pengendali

loop. Spasi<x, merupakan ekspresi yang digunakan sebagai kondisi untuk

keluar dari proses looping apabila tidak memebuhi kondisi tersebut.

Spasi++, merupakan ekspresi yang mengantur kenaikan nilai dari spasi

setiap kali mengalami proses looping. Setiap ekspresi dipisahkan dengan

tanda (;).

8. Kurung kurawal tersebut sebagai pembatas perintah-perintah yang ada di

dalamnya.

9. Untuk mencetak spasi ke layar. Tanda titik koma ( ; ) dipergunakan untuk

mengakhiri sebuah statment.

10. Kurung kurawal tersebut sebagai pembatas perintah-perintah yang ada di

dalamnya.

11. Untuk memberikan perintah bahwa nilai x itu x dikurangi 1. Tanda titik

koma ( ; ) dipergunakan untuk mengakhiri sebuah statment.

12. Untuk memberikan kondisi agar bisa mengendalikan saat looping.

Kolom=0, merupakan ekspresi yang digunakan untuk inisialisasi variabel

pengendali loop. Kolom<baris, merupakan ekspresi yang digunakan

sebagai kondisi untuk keluar dari proses looping apabila tidak memebuhi

kondisi tersebut. Kolom++ dan nilai ++ merupakan ekspresi yang

mengantur kenaikan nilai dari kolom dan nilai setiap kali mengalami proses

looping. Setiap ekspresi dipisahkan dengan tanda (;).

13. Kurung kurawal tersebut sebagai pembatas perintah-perintah yang ada di

dalamnya.

14. Untuk mencetak ke layar (nilai yang diperoleh dari hasil proses

looping)(tipe data desimal dengan variabel nilai). Maksud angka 3 dalam

“%3d” merupakan banyaknya jumlah angka desimal yang akan diubah

menjadi bilangan bulat setelah tanda koma di belakang bilangan yang

dihasilkan, sedangkan &nilai menyatakan alamat memori dimana nilai yang

didapatkan dari pemakai akan disimpan.

15. Kurung kurawal tersebut sebagai pembatas perintah-perintah yang ada di

dalamnya.

16. Untuk mencetak ke layar, \n digunakan untuk ganti baris. Tanda titik koma

( ; ) dipergunakan untuk mengakhiri sebuah statment.

Page 33: Laporan Praktikum Konsep Pemrograman

17. Kurung kurawal tersebut sebagai pembatas perintah-perintah yang ada di

dalamnya.

18. „}‟ menandakan akhir dari fungsi main. Itu artinya program dikatakan telah

selesai apabila „}‟ sudah tercapai.

4.4 1. Merupakan suatu directive untuk C-Preprocessor. Baris-baris yang diawali

oleh # diolah oleh preprocessor sebelum dikompilasi. Baris ke (1) tersebut

menyuruh proprocessor untuk menyertakan (meng-include) isi dari stdio.h

ke dalam program. Sementara stdio.h itu adalah standard input output

header file, yang mengandung informasi dan deklarasi-deklarasi yang

digunakan oleh kompilator untuk penanganan fungsi-fungsi I/O seperti

printf, scanf, dll.

2. Fungsi main ( ) digunakan sebagai pembuka atau mengawali sebuah

program. Setiap program C akan mulai dieksekusi/dijalankan mulai dari

fungsi main.

3. Kurung kurawal { menandakan dimulainya isi program. Body program

adalah seluruh tulisan yang terdapat di antara dua kurung kurawal ini.

4. Untuk menampilkan kalimat “Menentukan Bilangan Prima dari 1-100”.

5. Int menunjukkan tipe data yang akan dimasukkan pada variabel nilai,

pembagi, dan faktor.

6. Untuk nilai=1 pada ekspresi1, dan saat ekspresi2 dijalankan dan ternyata

masih memenuhi syarat (1<=100) sehingga nilai yang di incrumentkan

bertambah. Kemudian statment ini menjalankan statment selanjutnya.

7. Kurung kurawal tersebut sebagai pembatas perintah-perintah yang ada di

dalamnya.

8. Untuk pembagi=1 pada ekspresi1, dan saat ekspresi2 dijalankan dan

ternyata masih memenuhi syarat (1<=100) sehingga pembagi yang di

incrumentkan bertambah. Kemudian statment ini menjalankan statment

selanjutnya.

9. Kurung kurawal tersebut sebagai pembatas perintah-perintah yang ada di

dalamnya.

10. Jika nilai mod pembagi tidak sama dengan 0 maka akan di skip (tidak

ditampilkan pada layar).

Page 34: Laporan Praktikum Konsep Pemrograman

11. Di gunakan untuk menyatakan sebuah statement agar ketika di

incrumentkan bernilai benar maka dia akan menjalankan statment if

selanjutnya.

12. Kurung kurawal tersebut sebagai pembatas perintah-perintah yang ada di

dalamnya.

13. Jika statement di dalam if bernilai benar, maka statement akan dijalankan.

14. Untuk menampilkan perintah yang ada di dalam printf.

15. Kurung kurawal tersebut sebagai pembatas perintah-perintah yang ada di

dalamnya.

16. Menyalurkan nilai 0 (nol) kepada sistem operasi. berdasarkan kesepakatan,

nilai 0 menandakan bahwa program telah berjalan dengan sukses.

17. „}‟ menandakan akhir dari fungsi main. Itu artinya program dikatakan telah

selesai apabila „}‟ sudah tercapai.

Page 35: Laporan Praktikum Konsep Pemrograman

LAPORAN PRAKTIKUM KONSEP PEMROGRAMAN

FUNCTION

DISUSUN OLEH:

FEMBI REKRISNA GRANDEA PUTRA

M0513019

ASISTEN DOSEN:

1. AMELIA RAHMAN (M0512004)

2. DWI PUTRI PERTIWI (M0512015)

JURUSAN INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET

SURAKARTA

RABU, 23 OKTOBER 2013

Page 36: Laporan Praktikum Konsep Pemrograman

1. Jelaskan bagian-bagian fungsi pada program 1 dan analisis jalannya

program tersebut!

A. Soal

#include<stdio.h>

double kali( double, double );

double bagi();

main()

{

double a, b;

printf( "Masukkan nilai a<spasi>b! " );

scanf( "%lf %lf", &a, &b );

printf( "\nkali: %.2lf", kali( a, b ) );

printf( "\nbagi: %.2lf", bagi( a, b ) );

}

double kali( double x, double y )

{

return x*y;

}

double bagi( x, y )

double x, y;

{

if( y==0 )

{

puts( "Divided by zero!");

return 0;

}

return x/y;

}

B. Gagasan

Program tersebut berguna untuk menentukan hasil kali dan hasil bagi dari

dua bilangan yang dimasukkan pengguna. Program tersebut menggunakan

pemanggilan beberapa fungsi, yaitu fungsi kali dan fungsi bagi yang bertipe

Page 37: Laporan Praktikum Konsep Pemrograman

double. Kedua fungsi tersebut berperan sebagai parameter formal, sedangkan

fungsi main berperan sebagai parameter aktual (pemanggil fungsi). Pada fungsi

kali terdapat parameter x dan y dengan hasil kembaliannya adalah hasil perkalian

x dengan y. Pada fungsi bagi terdapat parameter x dan y dengan hasil

kembaliannya: apabila nilai y=0, hasil kembaliannya adalah 0; apabila nilai y≠0,

hasil kembaliannya adalah hasil pembagian x dengan y.

C. Print Screen

D. Analisis Perbaris

Baris

ke- Keterangan

Page 38: Laporan Praktikum Konsep Pemrograman

1 Memerintahkan preprocessor untuk meng-include file <stdio.h> ke

dalam program.

2 Mendefinisikan fungsi kali bertipe double.

3 Mendefinisikan fungsi bagi bertipe double.

4 Membuat program dapat terlaksana.

5 Mengawali pernyataan yang akan dilaksanakan.

6 Mendeklarasikan variabel a dan b bertipe double.

7 Mencetak tulisan.

8 Memindai data yang dimasukkan pengguna dalam bentuk bilangan riil

dan mengalamatkannya ke variabel a dan b.

9 Mencetak hasil perkalian a dan b.

10 Mencetak hasil pembagian a dan b.

11 Mengakhiri pernyataan yang telah dilaksanakan.

12 -

13 Mendefinisikan fungsi kali bertipe double.

14

Mengembalikan nilai kepada hasil perkalian variabel x dan y. 15

16

17 -

18 Mendefinisikan fungsi bagi bertipe double.

19 Mendeklarasikan variabel x dan y bertipe double.

20 Menyatakan jika variabel x bernilai sama dengan 0, melaksanakan

perintah di baris selanjutnya yang diapit tanda kurung kurawal. 21

22

Meletakkan tulisan “Divided by zero!” dan mengembalikan nilai

kepada bilangan 0.

23

24

25

26 Mengembalikan nilai kepada hasil pembagian variabel x dan y.

27

28 -

E. Analisis Jalannya Program

Jika pengguna memasukkan data berupa angka, misalnya 1<spasi>9, fungsi

utama akan memanggil fungsi kali, mengganti variabel a menjadi x dan variabel b

Page 39: Laporan Praktikum Konsep Pemrograman

menjadi y (call by value), mengembalikan nilai berupa hasil perkalian 1 dengan 9,

yaitu 9, dan mencetaknya ke layar.

Setelah itu, fungsi utama memanggil fungsi bagi, mengganti variabel a

menjadi x dan variabel b menjadi y. Karena variabel y tidak sama dengan 0, maka

fungsi bagi akan mengembalikan nilai berupa hasil pembagian 1 dengan 9, yaitu

0,99 dan mencetaknya ke layar.

Page 40: Laporan Praktikum Konsep Pemrograman

2. Jelaskan perbedaan pass parameter pada program 2a dan 2b serta analisis

jalannya kedua program tersebut!

A. Soal

2a

#include<stdio.h>

void tukar( int, int );

main()

{

int a=5, b=9;

printf( "%d %d", a, b );

tukar( a, b );

printf( "\n%d %d", a, b );

}

void tukar( int x, int y )

//int x, y;

{

int z;

z=x, x=y, y=z;

}

2b

#include<stdio.h>

void tukar( int *x, int *y );

main()

{

int a=5, b=9;

printf( "%d %d", a, b );

tukar( &a, &b );

printf( "\n%d %d", a, b );

}

void tukar( int *x, int *y )

//int x, y;

{

int z;

z=*x, *x=*y, *y=z;

}

B. Gagasan

Program 2a berguna untuk menentukan nilai tukar. Program tersebut

menggunakan pemanggilan fungsi tukar bertipe integer yang berisi parameter

formal yang akan dipanggil oleh fungsi utama dengan parameter aktual a=5 dan

b=9. Dengan menggunakan prinsip pass by value, terjadi proses penyalinan nilai

dari parameter formal ke parameter aktual. Hal ini menyebabkan nilai variabel

yang dihasilkan oleh proses di dalam fungsi tidak akan berpengaruh terhadap nilai

variabel yang terdapat di luar fungsi.

Program 2b berguna untuk menentukan nilai tukar. Program tersebut

menggunakan pemanggilan fungsi tukar bertipe integer yang berisi parameter

formal yang akan dipanggil oleh fungsi utama dengan parameter aktual a=5 dan

b=9. Dengan menggunakan prinsip pass by reference, terjadi proses referensial

antara variabel yang terdapat pada parameter formal dengan parameter aktual. Hal

ini menyebabkan kedua variabel akan berada dalam satu alamat di memori yang

sama sehingga terjadi perubahan nilai terhadap salah satu variabel tersebut. Karena

itulah variabel yang lain juga akan ikut berubah. Untuk melakukannya, parameter

fungsi tersebut dijadikan sebagai pointer dengan cara menambahkan tanda *

sebelum variabel.

C. Print Screen

Page 41: Laporan Praktikum Konsep Pemrograman

2a

2b

Page 42: Laporan Praktikum Konsep Pemrograman

D. Analisis Perbaris 2a

Baris

ke- Keterangan

1 Memerintahkan preprocessor untuk memasukkan isi dari berkas

stdio.h ke dalam program.

2 Mendefinisikan fungsi tukar yang bertipe integer.

3 Membuat program agar dapat dilaksanakan.

4 Memulai pernyataan yang akan dilaksanakan.

5 Mendeklarasikan variabel a=5 dan b=9 yang bertipe integer.

6 Mencetak nilai a dan b.

7 Memanggil fungsi tukar (a,b) yang bertipe integer.

8 Mencetak kembali nilai a dan b.

9 Mengakhiri pernyataan yang telah dilaksanakan.

10 -

11 Mendefinisikan fungsi tukar x dan y yang bertipe integer.

12 Merupakan kalimat biasa dan bukan termasuk bagian dari program.

13 Mendeklarasikan variabel z bertipe integer.

14

15 Mendefinisikan variabel z bernilai sama dengan variabel x, variabel x

bernilai sama dengan variabel y, dan variabel y bernilai sama dengan

variabel z. 16

17 -

18

Analisis Perbaris 2b

Baris

ke- Keterangan

1 Memerintahkan preprocessor untuk memasukkan isi dari berkas stdio.h

ke dalam program.

2 Mendefinisikan fungsi tukar yang bertipe integer dengan melewatkan

parameter alamat memorinya.

3 Membuat program agar dapat dilaksanakan.

4 Memulai pernyataan yang akan dilaksanakan.

Page 43: Laporan Praktikum Konsep Pemrograman

5 Mendeklarasikan variabel a=5 dan b=9 yang bertipe integer.

6 Mencetak nilai a dan b.

7 Memanggil fungsi tukar (a,b) yang bertipe integer dengan melewatkan

parameter alamat memorinya.

8 Mencetak kembali nilai a dan b.

9 Mengakhiri pernyataan yang telah dilaksanakan.

10 -

11 Mendefinisikan fungsi tukar x dan y yang bertipe integer dengan

melewatkan parameter alamat memorinya.

12 Merupakan kalimat biasa dan bukan termasuk bagian dari program.

13 Mendeklarasikan variabel z bertipe integer.

14

15 Mendefinisikan variabel z bernilai sama dengan variabel x, variabel x

bernilai sama dengan variabel y, dan variabel y bernilai sama dengan

variabel z. Tanda * berfungsi untuk melewatkan parameter alamat

memorinya.

16

17 -

E. Analisis Jalannya Program

Program 2a terlaksana dengan menjalankan fungsi utama dengan variabel

a=5 dan b=9, menukar nilai antara kedua variabel dengan rumus z=x, x=y, dan y=z.

Karena variabel a dan b serta x dan y tidak saling berhubungan, maka variabel-

variabel tersebut menempati alamat memori yang berbeda sehingga yang terjadi

hanyalah proses penyalinan nilai dari variabel a dan b kepada variabel x dan y.

Karena itulah perubahan nilai variabel x dan y tidak akan mempengaruhi nilai

variabel a dan b. Jadi hasil akhirnya akan sama seperti nilai awal, yaitu a=5 dan

b=9.

Program 2b terlaksana dengan menjalankan fungsi utama dengan variabel

a=5 dan b=9 dan memanggil fungsi tukar. Proses ini berfungsi untuk menukar nilai

antara variabel a dan b dengan variabel x dan y dengan rumus z=*x, *x=*y, dan

*y=z. Karena variabel-variabel tersebut dilewatkan dengan prinsip pass by

reference, maka keduanya saling berhubungan dan menempati alamat memori

yang sama sehingga perubahan nilai variabel x dan y akan mempengaruhi nilai a

dan b. Jadi hasil akhirnya akan berbeda dengan nilai awal menjadi a=9 dan b=5.

Page 44: Laporan Praktikum Konsep Pemrograman

3. Analisis jalannya program 3 dan perbedaan variabel berdasar storage class

yang ada pada program tersebut!

A. Soal

#include<stdio.h>

#define X 10

void nyan();

int x=0;

main()

{

int i;

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

nyan();

}

void nyan()

{

int nS=0; static int s=0;

nS++; s++; x++; //X++;

printf( "nS: %2d s: %2d x: %2d X: %2d\n", nS, s, x, X );

}

B. Gagasan

Program tersebut berfungsi untuk menampilkan jenis nilai variabel dengan

cara memanggil fungsi nyan yang berisi variabel x bernilai 0. Fungsi utama

(parameter aktual) berisi variabel i bertipe integer. Terdapat proses pengulangan

dengan fungsi for dengan nilai awal i=0. Jika nilai i kurang dari 5, nilai i akan

ditambah dengan 1. Proses tersebut akan memanggil fungsi nyan yang berfungsi

sebagai parameter formal dan memiliki variabel nS bertipe integer dan variabel s

bertipe integer statis. Variabel nS akan selalu bernilai 1 karena termasuk variabel

lokal, yaitu variabel yang nilainya akan hilang setelah fungsinya dipanggil. Nilai

dari variabel x dan s akan selalu bertambah 1, karena variabel x termasuk variabel

eksternal dan variabel s termasuk variabel statis (nilai pada variabel tidak akan

hilang setelah fungsinya dipanggil). Variabel X akan selalu bernilai 10 karena

sudah didefinisikan di awal program bahwa nilainya adalah 10.

C. Print Screen

Page 45: Laporan Praktikum Konsep Pemrograman

D. Analisis Perbaris

Baris

ke- Keterangan

1 Memerintahkan preprocessor untuk memasukkan isi dari berkas

stdio.h ke dalam program.

2 Mendefinisikan variabel X=10.

3 Mendefinisikan fungsi nyan.

4 Mendefinisikan variabel x=0 bertipe integer.

5 Mengawali pernyataan yang akan dilaksanakan.

6 Menentukan variabel i bertipe integer.

7

8 Menentukan nilai mula-mula dari variabel i adalah 0. Jika i kurang dari

5, nilai variabel i ditambah dengan 1. Saat kondisi tersebut terpenuhi,

fungsi nyan akan dipanggil.

9

10

11 -

12 Mendefinisikan fungsi nyan.

Page 46: Laporan Praktikum Konsep Pemrograman

13 Menentukan variabel nS=0 dan s=0 bertipe integer.

14

15 Menentukan nilai variabel nS, s, dan x akan bertambah 1.

16 Mencetak nilai dari variabel nS, s, x, dan X.

17

18 -

E. Analisis Jalannya Program

Program tersebut berjalan dengan mengecek apakah nilai i kurang dari 5 atau

tidak. Jika nilai i kurang dari 5, nilai i ditambah 1. Kemudian fungsi utama akan

memanggil fungsi nyan sampai kondisi tidak terpenuhi. Setelah itu fungsi nyan

akan menambahkan semua variabel dengan 1. Jadi nilai mula-mula x=0, nS=0, s=0,

dan X=0. Karena ada perbedaan penyimpanan variabel, hasilnya menjadi berbeda

juga.

Nilai variabel nS adalah 0+1=1 dikarenakan merupakan variabel lokal

sehingga nilainya akan hilang setelah fungsi dipanggil kembali.

Nilai variabel s adalah 0+1=1 dikarenakan merupakan variabel statis

sehingga nilainya tidak hilang setelah fungsi dipanggil kembali. Selanjutnya nilai

tersebut berubah menjadi

s=1+1=2,

s=2+1=3,

s=3+1=4, dan

s=4+1=5.

Nilai variabel x adalah 0+1=1 dikarenakan merupakan variabel eksternal

sehingga nilainya tidak hilang setelah fungsi dipanggil kembali. Selanjutnya nilai

tersebut berubah menjadi

x=1+1=2,

x=2+1=3,

x=3+1=4, dan

x=4+1=5.

Nilai variabel X akan tetap 10 karena sudah didefinisikan di awal program.

Kemudian nilai dari semua variabel akan dicetak di layar.

Page 47: Laporan Praktikum Konsep Pemrograman

4. A. Soal

Buat program penampil bilangan fibonacci menggunakan rekursi

pemanggilan fungsi!

B. Gagasan

Program direncanakan untuk menampilkan deret bilangan Fibonacci

sebanyak yang diinginkan oleh pengguna. Program dituntut untuk menggunakan

pola rekursi. Pada bagian prototipe, yaitu variabel fibonacci bertipe integer (f)

digunakan untuk mendefinisikan fungsi fibonacci. Pada fungsi utama terdapat dua

variabel, yaitu variabel bilangan dan jumlah. Variabel bilangan menggantikan nilai

dari variabel f dan variabel jumlah merupakan data yang dimasukkan pengguna

sebagai jumlah bilangan Fibonacci yang ditampilkan program. Untuk

menampilkannya menggunakan perintah for untuk melakukan pengulangan

sebanyak jumlah yang diinginkan pengguna. Hasil tersebut ditampilkan dengan

memanggil fungsi fibonacci.

C. Print Screen

Page 48: Laporan Praktikum Konsep Pemrograman

D. Analisis Perbaris

Baris

ke- Keterangan

1 Memerintahkan preprocessor untuk memasukkan berkas stdio.h ke

dalam program.

2 Menentukan variabel fibonacci bertipe integer (variabel f bertipe

integer).

3 Mengawali pernyataan yang akan dijalankan.

Page 49: Laporan Praktikum Konsep Pemrograman

4 Jika variabel f bernilai sama dengan 0, melakukan perintah di dalam

tanda kurung kurawal yang ada di baris selanjutnya.

5

Mengembalikan nilai variabel fibonacci kepada nol. 6

7

8 Jika variabel f bernilai sama dengan 1, melakukan perintah di dalam

tanda kurung kurawal yang ada di baris selanjutnya.

9

Mengembalikan nilai variabel fibonacci kepada satu. 10

11

12

Jika pernyataan-pernyataan sebelumnya tidak benar (variabel f bukan

bernilai 0 atau 1), melakukan perintah di dalam tanda kurung kurawal

di baris selanjutnya.

13 Mengembalikan nilai variabel fibonacci kepada variabel

fibonacci(variabel f dikurangi dua) ditambah variabel

fibonacci(variabel f dikurangi satu).

14

15

16 Mengakhiri pernyataan yang telah dijalankan.

17 Mendefinisikan fungsi utama berupa main bertipe integer.

18 Mengawali pernyataan yang akan dijalankan.

19 Mencetak tulisan.

20 Menentukan variabel bilangan dan jumlah bertipe integer.

21 Mencetak tulisan.

22 Memindai data yang dimasukkan pengguna dan mengalamatkannya ke

variabel jumlah.

23 Mencetak tulisan dan hasil berupa deret beberapa bilangan Fibonacci

pertama sejumlah yang diinginkan oleh pengguna.

24

Menentukan nilai awal variabel bilangan sama dengan satu. Jika

variabel bilangan bernilai kurang dari atau sama dengan nilai variabel

jumlah, maka nilai variabel bilangan ditambah dengan satu, kemudian

melakukan perintah yang diapit tanda kurung kurawal di baris

selanjutnya.

25 Mencetak tulisan.

26

Page 50: Laporan Praktikum Konsep Pemrograman

27

28 Mengembalikan nilai fungsi utama main kepada nol.

29 Mengakhiri pernyataan yang telah dijalankan.

30 -

E. Analisis Jalannya Program

Input=10.

Proses dan output:

bilangan jumlah<=bilangan bilangan++ fibonacci

1 1<10 1+1=2 1

2 2<10 2+1=3 1+0=1

3 3<10 3+1=4 1+1=2

4 4<10 4+1=5 2+1=3

5 5<10 5+1=6 3+2=5

6 6<10 6+1=7 5+3=8

7 7<10 7+1=8 8+5=13

8 8<10 8+1=9 13+8=21

9 9<10 9+1=10 21+13=34

10 10=10 10+1=11 34+21=55

11 11>10 - -

Page 51: Laporan Praktikum Konsep Pemrograman

LAPORAN PRAKTIKUM KONSEP PEMROGRAMAN

ARRAY

DISUSUN OLEH:

FEMBI REKRISNA GRANDEA PUTRA

M0513019

ASISTEN DOSEN:

1. FATHIN MUBARAK (M0512020)

2. RIO PAHLEVY RIDLO YUDHA BHAKTI (M0512048)

JURUSAN INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET

SURAKARTA

RABU, 30 OKTOBER 2013

Page 52: Laporan Praktikum Konsep Pemrograman

1. Jelaskan bagian-bagian fungsi pada program 1 dan analisis jalannya

program tersebut!

A. Soal

#include<stdio.h>

main()

{

int R[] = { 2, 5, 9, 8, 5 };

int i, j ;

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

{

printf( "%d: ", R[i] );

for( j=0; j<R[i]; j++)

printf( "*" );

puts( "" );

}

}

Page 53: Laporan Praktikum Konsep Pemrograman

B. Gagasan

Program tersebut berfungsi untuk menghasilkan grafik batang horizontal

dengan menggunakan array berdimensi satu yang berjumlah lima elemen. Data

array disimpan dalam memori pada lokasi yang berurutan. Elemen pertama

mempunyai indeks bernilai nol. Program ini menggunakan beberapa fungsi for

agar dapat berjalan saat kondisi terpenuhi dan berhenti saat kondisi tidak terpenuhi.

Page 54: Laporan Praktikum Konsep Pemrograman

C. Print Screen

Page 55: Laporan Praktikum Konsep Pemrograman

D. Analisis Perbaris

Baris

ke- Keterangan

1 Memerintahkan preprocessor untuk memasukkan file <stdio.h> ke

dalam program.

2 Melaksanakan program.

3 Mengawali pernyataan yang akan dilaksanakan.

4 Mendeklarasikan variabel array R dengan 5 indeks.

5 Mendeklarasikan variabel i dan j bertipe integer.

6 Jika nilai variabel i sama dengan 0, i kurang dari 5, dan i ditambah

satu, melakukan perintah di bawahnya.

7 Mencetak nilai variabel array R indeks ke-i bertipe desimal.

8

9 Jika nilai variabel j sama dengan 0, j kurang dari array R indeks ke-i,

dan nilai j ditambah satu, mencetak tanda *. 10

11 Mencetak karakter kosong <enter> atau memindahkan kursor ke baris

di bawahnya. 12

13 Mengakhiri pernyataan yang telah dilaksanakan.

14 -

Page 56: Laporan Praktikum Konsep Pemrograman

E. Analisis Jalannya Program

i i<5 i++ R[i] j=0 j<R[i] j++ Cetak

0 0<5 0+1=1 R[0]=2

- 2:<spasi>

0 0<2 0+1=1 *

1 1<2 1+1=2 *

2 2=2 - <enter>

1 1<5 1+1=2 R[1]=5

- 5:<spasi>

0 0<5 0+1=1 *

1 1<5 1+1=1 *

2 2<5 2+1=3 *

3 3<5 3+1=4 *

4 4<5 4+1=5 *

5 5=5 - <enter>

2 2<5 2+1=3 R[2]=9

- 9:<spasi>

0 0<9 0+1=1 *

1 1<9 1+1=2 *

2 2<9 2+1=3 *

3 3<9 3+1=4 *

4 4<9 4+1=5 *

5 5<9 5+1=6 *

6 6<9 6+1=7 *

7 7<9 7+1=8 *

8 8<9 8+1=9 *

9 9=9 - <enter>

3 3<5 3+1=4 R[3]=8

- 8:<spasi>

0 0<8 0+1=1 *

1 1<8 1+1=2 *

2 2<8 2+1=3 *

3 3<8 3+1=4 *

4 4<8 4+1=5 *

5 5<8 5+1=6 *

6 6<8 6+1=7 *

Page 57: Laporan Praktikum Konsep Pemrograman

7 7<8 7+1=8 *

8 8=8 - <enter>

4 4<5 4+1=5 R[4]=5

- 5:<spasi>

0 0<5 0+1=1 *

1 1<5 1+1=2 *

2 2<5 2+1=3 *

3 3<5 3+1=4 *

4 4<5 4+1=5 *

5 5=5 - <enter>

5 5=5 -

Page 58: Laporan Praktikum Konsep Pemrograman

2. Jelaskan bagian-bagian fungsi pada program 2 dan analisis jalannya

program tersebut!

A. Soal

#include<stdio.h>

#define TITLE "::menemukan bilangan terbesar dari 5

bilangan pecahan::\n"

#define LENGTH 5

main()

{

//if(printf("1")) {}

printf( TITLE );

puts( "" );

int i=0; double arr[ LENGTH ], max;

for( ; i<LENGTH; i++ )

{

printf( "Bilangan ke-%d: ", i+1 ); scanf( "%lf",

&arr[i] );

}

puts( "Tunggu sebentar.\n" );

max=arr[0];

for( i=1; i<LENGTH; i++ )

{

max=( arr[i]>max )? arr[i]: max;

}

printf( "Bilangan terbesarnya adalah %.2lf", max );

}

Page 59: Laporan Praktikum Konsep Pemrograman

B. Gagasan

Program ini berfungsi untuk menemukan bilangan terbesar dari lima bilangan

pecahan yang dimasukkan oleh pengguna. Bilangan-bilangan tersebut disimpan ke

indeks dalam array dari 0 sampai dengan 4. Pada awalnya bilangan pertama

(indeks ke-0) dianggap sebagai bilangan terbesar. Kemudian setelah bilangan

kedua dimasukkan, maka bilangan pertama dibandingkan dengan bilangan kedua

untuk mencari bilangan yang terbesar keduanya. Setelah itu hasilnya dibandingkan

kembali dengan bilangan ketiga dan seterusnya sampai lima kali dan ditemukan

hasil bilangan terbesar dari lima bilangan tersebut.

Page 60: Laporan Praktikum Konsep Pemrograman

C. Print Screen

Page 61: Laporan Praktikum Konsep Pemrograman

D. Analisis Perbaris

Baris

ke- Keterangan

1 Memerintahkan preprocessor untuk memasukkan isi dari berkas

stdio.h ke dalam program.

2 Mendefinisikan fungsi TITLE sebagai kalimat tersebut.

3 Mendefinisikan fungsi LENGTH bernilai 5.

4 Melaksanakan program.

5 Mengawali program yang akan dilaksanakan.

6 Kalimat penjelas, bukan termasuk bagian dari program.

7 Mencetak tulisan TITLE yang telah didefinisikan di atas.

8 Mencetak <enter>.

9 -

10 Mendeklarasikan variabel i=0 bertipe integer dan variabel array arr

indeks ke-LENGTH dan max bertipe double.

11 Menyatakan nilai variabel i lebih kecil daripada LENGTH dan nilai i

ditambah satu, maka melakukan perintah di bawahnya.

12 Mencetak tulisan “Bilangan ke-<hasil variabel i ditambah satu>”.

Memindai data yang dimasukkan pengguna dan mengalamatkannya ke

variabel array arr indeks ke-i bertipe

13

14

15 -

16 Meletakkan tulisan “Tunggu sebentar.<baris baru>”.

17 Menentukan bahwa variabel max bernilai sama dengan variabel arr

indeks ke-0.

18 Nilai awal variabel i=1. Saat nilainya kurang dari nilai variabel

LENGTH, nilai i ditambah satu, dan melakukan perintah selanjutnya.

19 Jika variabel max bernilai sama dengan variabel (arr[i]>max), maka

nilai yang ditampilkan adalah variabel arr[i]. Tapi jika salah, variabel

max.

20

21

22 -

23 Mencetak tulisan “Bilangan terbesarnya adalah <nilai variabel max>”.

24

25 -

Page 62: Laporan Praktikum Konsep Pemrograman
Page 63: Laporan Praktikum Konsep Pemrograman

E. Analisis Jalannya Program

i i<LENGTH i++ printf scanf

0 0<5 0+1=1 Bilangan ke-1: 1.47

1 1<5 1+1=2 Bilangan ke-2: 5.96

2 2<5 2+1=3 Bilangan ke-3: 8.23

3 3<5 3+1=4 Bilangan ke-4: 6.37

4 4<5 4+1=5 Bilangan ke-5: 3.14

5 5=5 -

i i<LENGTH i++ arr[i] max

- arr[0] arr[0]=1.47

1 1<5 1+1=2 arr[1]>max arr[1]=5.96

2 2<5 2+1=3 arr[2]>max arr[2]=8.23

3 3<5 3+1=4 arr[3]:max max=8.23

4 4<5 4+1=5 arr[4]:max max=8.23

5 5=5 -

Page 64: Laporan Praktikum Konsep Pemrograman

3. Jelaskan bagian-bagian fungsi pada program 3!

A. Soal

#include<stdio.h>

void masuk( double n[], int batas );

double jumlah( double n[], int batas );

double rerata( double n[], int batas );

main()

{

int jml;

printf( "Jumlah nilai: " ); scanf( "%d", &jml );

double nilai[jml];

masuk( nilai, jml );

printf( "\nRataannya: %.2lf", rerata( nilai, jml ) );

}

void masuk( double n[], int batas )

{

int i;

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

{

printf( "Nilai %d: ", i+1 ); scanf( "%lf", &n[i] );

}

}

double rerata( double n[], int batas )

{

return jumlah( n, batas )/batas;

}

double jumlah( double n[], int batas )

{

int semen=0, i=0;

for( ; i<batas; i++ )

semen+=n[i];

return semen;

}

Page 65: Laporan Praktikum Konsep Pemrograman

B. Gagasan

Program tersebut berfungsi untuk menghitung nilai rata-rata dari bilangan

yang dimasukkan oleh pengguna sebanyak yang diinginkan oleh pengguna.

Page 66: Laporan Praktikum Konsep Pemrograman

C. Print Screen

Page 67: Laporan Praktikum Konsep Pemrograman

D. Analisis Perbaris

Baris

ke- Keterangan

1 Memerintahkan preprocessor untuk memasukkan isi dari berkas stdio.h

ke dalam program.

2 Mendeklarasikan variabel masuk yang nilainya tidak dikembalikan.

3 Mendeklarasikan variabel jumlah bertipe double.

4 Mendeklarasikan variabel rerata bertipe double.

5 -

6 Melaksanakan program.

7 Mengawali program yang akan dilaksanakan.

8 Mendeklarasikan variabel jml bertipe integer.

9

Mencetak tulisan “Jumlah nilai:<spasi>”. Memindai data yang

dimasukkan pengguna dan mengalamatkannya ke variabel jml bertipe

desimal.

10 Mendeklarasikan variabel nilai indeks ke-jml bertipe double.

11 Memanggil fungsi masuk dengan variabel lokal/aktual nilai dan jml.

12 Mencetak tulisan “<baris baru>Rataanya:<spasi><nilai fungsi rerata>”.

13 Mengakhiri program yang telah dilaksanakan.

14 -

15 Mendeklarasikan variabel masuk yang nilainya tidak dikembalikan.

16 Mendeklarasikan variabel i bertipe integer.

17

18 Jika nilai variabel sama dengan nol, i kurang dari batas, dan i ditambah

satu, maka melakukan perintah selanjutnya.

19 Mencetak tulisan “Nilai<spasi><nilai variabel i ditambah satu bertipe

desimal>”. Memindai data yang dimasukkan pengguna dan

mengalamatkannya ke variabel array n indeks ke-i bertipe double.

20

21

22

23 -

24 Mendeklarasikan variabel rerata bertipe double.

25 Mengembalikan nilai kepada variabel jumlah dengan variabel aktual n

dan batas yang dibagi dengan nilai variabel batas. 26

Page 68: Laporan Praktikum Konsep Pemrograman

27

28 -

29 Mendeklarasikan variabel jumlah bertipe double.

30 Mendeklarasikan nilai awal variabel semen dan i sama dengan 0.

31

32 Jika nilai variabel i<batas dan i ditambah satu, maka melakukan

perintah di bawahnya.

33

Mendefinisikan nilai variabel semen yang baru sama dengan nilai

variabel semen yang lama ditambah dengan nilai variabel array n

indeks ke-i.

34 Mengembalikan nilai kepada variabel semen.

35

36 -

Page 69: Laporan Praktikum Konsep Pemrograman

LAPORAN PRAKTIKUM KONSEP PEMROGRAMAN

STRING

DISUSUN OLEH:

FEMBI REKRISNA GRANDEA PUTRA

M0513019

ASISTEN DOSEN:

1. FATHIN MUBARAK (M0512020)

2. RIO PAHLEVY RIDLO YUDHA BHAKTI (M0512048)

JURUSAN INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET

SURAKARTA

RABU, 6 NOVEMBER 2013

Page 70: Laporan Praktikum Konsep Pemrograman

1. Jelaskan 7 fungsi manipulasi karakter pada header ctype.h dan berikan

contoh program penggunaannya (program dijelaskan)!

A. Gagasan

Bahasa C menyediakan sejumlah makro berargumen (sejenis fungsi, tapi

didefinisikan dengan menggunakan pengarah praprosesor #define) dan fungsi yang

berkaitan dengan karakter. Fasilitas ini sangat bermanfaat untuk keperluan

pemanipulasian string, yaitu:

isalnum() akan menghasilkan nilai benar jika variabel di dalam tanda kurung

berupa sebuah karakter digit.

isalpha() akan menghasilkan nilai benar jika variabel di dalam tanda kurung

adalah sebuah huruf (kapital atau kecil).

isdigit() akan menghasilkan nilai benar jika variabel di dalam tanda kurung

adalah sebuah karakter digit.

islower() akan menghasilkan nilai benar jika variabel di dalam tanda kurung

adalah huruf kecil (‘a’ sampai ‘z’).

isupper() akan menghasilkan nilai benar jika variabel di dalam tanda kurung

adalah huruf kapital (‘A’ sampai ‘Z’).

tolower() akan menghasilkan nilai salah jika variabel di dalam tanda kurung

adalah huruf kapital, maka hasil fungsi berupa huruf kecilnya.

toupper() akan menghasilkan nilai salah jika variabel di dalam tanda kurung

adalah huruf kecil, maka hasil fungsi berupa huruf kapitalnya.

Page 71: Laporan Praktikum Konsep Pemrograman

B. Print Screen

Page 72: Laporan Praktikum Konsep Pemrograman

C. Analisis Perbaris

Baris

ke- Keterangan

1 Memerintahkan preprocessor untuk memasukkan file <stdio.h> ke

dalam program.

2 Memerintahkan praprosesor untuk memasukkan berkas <ctype.h> ke

dalam program.

3 Melaksanakan program.

4 Mengawali program yang akan dilaksanakan.

5 Mencetak tulisan.

6 Mencetak tulisan.

7

Mendeklarasikan variabel karakter yang bertipe karakter. Memindai

data berupa sebuah karakter yang dimasukkan pengguna dan

mengalamatkannya ke variabel karakter.

8 Jika variabel karakter adalah karakter huruf atau angka, lakukan

perintah selanjutnya yaitu cetak tulisan. 9

10 Jika variabel karakter adalah karakter huruf, lakukan perintah

selanjutnya, yaitu cetak tulisan. 11

12 Jika variabel karakter adalah karakter digit, lakukan perintah

selanjutnya, yaitu cetak tulisan. 13

14 Jika variabel karakter adalah karakter huruf kecil, lakukan perintah

selanjutnya, yaitu cetak tulisan. 15

16

17 Mencetak tulisan diikuti dengan hasil fungsi toupper, yaitu huruf

kapital dari variabel karakter. 18

19 Jika variabel karakter adalah karakter huruf besar, lakukan perintah

selanjutnya, yaitu cetak tulisan. 20

21

22 Mencetak tulisan diikuti dengan hasil fungsi tolower, yaitu huruf kecil

dari variabel karakter.. 23

24 Mengakhiri program yang telah dilaksanakan.

25 -

Page 73: Laporan Praktikum Konsep Pemrograman

D. Analisis Jalannya Program

Pengguna mengetikkan karakter f tanpa diikuti enter.

Karakter f adalah karakter huruf atau digit dan memenuhi fungsi isalnum,

sehingga program mencetak tulisan “Anda telah mengetikkan sebuah karakter

huruf atau digit.”

Karakter f adalah karakter huruf dan memenuhi fungsi isalpha, sehingga

program mencetak tulisan “Anda telah mengetikkan sebuah karakter huruf.”

Karakter f bukan karakter digit dan tidak memenuhi fungsi isdigit.

Karakter f adalah karakter huruf kecil dan memenuhi fungsi islower, sehingga

program mencetak tulisan “Anda telah mengetikkan sebuah karakter huruf

kecil.”

Kemudian program akan mengubah karakter huruf kecil tersebut menjadi huruf

besar dengan fungsi toupper dan mencetak tulisan “Karakter huruf besarnya

adalah F.”

Karakter f bukan karakter huruf besar dan tidak memenuhi fungsi isupper,

sehingga fungsi tolower tidak digunakan.

Page 74: Laporan Praktikum Konsep Pemrograman

2. Jelaskan 6 fungsi manipulasi string pada header string.h dan berikan contoh

program penggunaannya (program dijelaskan)!

A. Gagasan

Menyalin suatu string ke string lain ataupun menghitung banyaknya karakter

dalam suatu string sesungguhnya tidak perlu diimplementasikan sendiri, karena

bahasa C menyediakan fasilitas untuk pemanipulasian string, yaitu

strcpy() untuk menyalin string asal ke variabel string tujuan. Variabel tujuan

harus memiliki ukuran yang dapat digunakan untuk menampung seluruh

karakter dari string asal.

strlen() digunakan untuk memperoleh banyaknya karakter dalam string yang

merupakan argumennya. Karakter NULL tidak ikut dihitung.

strcat() digunakan untuk menambahkan string sumber ke bagian akhir dari

string tujuan.

strcmp() digunakan untuk membandingkan string1 dengan string2. Hasil fungsi

bertipe integer berupa nilai:

o Negatif, jika string1 kurang dari string2

o Nol, jika string1 sama dengan string2

o Positif, jika string1 lebih dari string2

Nilai absolut hasil fungsi menyatakan selisih nilai ASCII dari karakter yang

menyebabkan string1 berbeda dengan string2. Perbandingan dilakukan untuk

karakter pada posisi yang sama dari string1 dan string2, dimulai dari karakter

terkiri. Acuan perbandingan dari dua karakter didasarkan oleh nilai ASCII.

Misal karakter ‘A’ lebih kecil dari ‘B’ dan ‘B’ lebih kecil dari ‘C’.

strlwr() digunakan untuk mengubah setiap huruf kapital dalam variabel_string

menjadi huruf kecil.

strupr() digunakan untuk mengubah setiap huruf kecil dalam variabel_string

menjadi huruf kapital.

Page 75: Laporan Praktikum Konsep Pemrograman

B. Print Screen

Page 76: Laporan Praktikum Konsep Pemrograman

C. Analisis Perbaris

Baris

ke- Keterangan

1 Memerintahkan praprosesor untuk memasukkan berkas stdio.h ke

dalam program.

2 Memerintahkan praprosesor untuk memasukkan berkas string.h ke

dalam program

3 Melaksanakan program.

4 Mengawali program yang akan dilaksanakan.

5 Mencetak tulisan.

6 Mendeklarasikan variabel depan, salin, dan belakang yang bertipe

karakter dan berisi maksimal 80 karakter.

7 Mencetak tulisan.

8 Mengalamatkan data yang dimasukkan pengguna ke variabel depan.

9 Mencetak tulisan.

10 Mengalamatkan data yang dimasukkan pengguna ke variabel

belakang.

11 Menyalin string dari variabel depan ke variabel salin.

12 Menambahkan string dari variabel belakang ke bagian akhir dari

variabel salin.

13 Mencetak tulisan diikuti dengan isi variabel salin.

14 Mencetak tulisan diikuti dengan hasil fungsi strlwr, yaitu isi dari

variabel salin yang huruf kapitalnya telah diubah menjadi huruf kecil.

15 Mencetak tulisan diikuti dengan hasil fungsi strupr, yaitu isi dari

variabel salin yang huruf kecilnya telah diubah menjadi huruf kapital.

16 Mencetak tulisan diikuti dengan hasil fungsi strlen, yaitu banyaknya

karakter dalam string variabel salin.

17 Mencetak tulisan diikuti dengan hasil fungsi strcmp, yaitu

perbandingan string variabel depan dan variabel belakang.

18 Mengakhiri program yang telah dilaksanakan.

19 -

Page 77: Laporan Praktikum Konsep Pemrograman

D. Analisis Jalannya Program

Pengguna memasukkan string “Fembi Rekrisna Grandea” dan dialamatkan oleh

program ke variabel depan.

Pengguna memasukkan string “ Putra” dan dialamatkan oleh program ke

variabel belakang.

Program menyalin string dari variabel depan ke variabel salin, sehingga variabel

salin berisi string “Fembi Rekrisna Grandea”.

Program menyalin isi variabel belakang dan menempelkannya ke bagian akhir

isi variabel salin, sehingga variabel salin berisi string “Fembi Rekrisna Grandea

Putra”.

Program mencetak nama lengkap pengguna berupa isi variabel salin, yaitu

“Fembi Rekrisna Grandea Putra”.

Program mencetak nama lengkap pengguna yang diubah menjadi huruf kecil

berupa hasil fungsi dari strlwr yang diberlakukan pada variabel salin, yaitu

“fembi rekrisna grandea putra”.

Program mencetak nama lengkap pengguna yang diubah menjadi huruf kapital

berupa hasil fungsi dari strupr yang diberlakukan pada variabel salin, yaitu

“FEMBI REKRISNA GRANDEA PUTRA”.

Program mencetak jumlah karakter huruf dan spasi dalam nama lengkap

pengguna berupa hasil fungsi strlen yang diberlakukan pada variabel salin, yaitu

28 karakter.

Program mencetak hasil perbandingan antara nama depan dan nama belakang

pengguna berupa hasil fungsi strcmp yang diberlakukan pada variabel depan

dan variabel belakang.

o Nilai ASCII dari string “Fembi Rekrisna Grandea” adalah

70+101+109+98+105+32+82+101+107+114+105+115+110+97+32+71+1

14+97+110+100+101+97=2.068.

o Nilai ASCII dari string “ Putra” adalah 32+80+117+116+114+97=556.

o Karena 2.068>556 atau nilai ASCII string pertama lebih dari string kedua,

maka hasil fungsi bertipe integer berupa nilai positif satu.

Page 78: Laporan Praktikum Konsep Pemrograman

3. Buat program untuk memeriksa suatu kata/kalimat merupakan palindrom

atau bukan! Lalu analisa proses dan hasil dari eksekusi program Anda

tersebut!

A. Gagasan

Untuk memeriksa ke-palindrom-an sebuah kata atau kalimat dapat dilakukan

dengan menggunakan fungsi yang terdapat pada berkas string.h. Fungsi-fungsi

tersebut di antaranya adalah

fungsi strcpy digunakan untuk menyalin string dari variabel asal ke variabel

tujuan,

fungsi strrev digunakan untuk membalik string dalam sebuah variabel, dan

fungsi strcmp digunakan untuk membandingkan string dari variabel-variabel

tertentu.

Page 79: Laporan Praktikum Konsep Pemrograman

B. Print Screen

Page 80: Laporan Praktikum Konsep Pemrograman

C. Analisis Perbaris

Baris

ke- Keterangan

1 Memerintahkan preprocessor untuk memasukkan isi dari berkas

stdio.h ke dalam program.

2 Memerintahkan preprocessor untuk memasukkan isi dari berkas

string.h ke dalam program.

3 Melaksanakan program.

4 Mengawali program yang akan dilaksanakan.

5 Mencetak tulisan.

6 Mendeklarasikan variabel a dan b bertipe karakter yang memuat isi

maksimal 80 karakter.

7 Mencetak tulisan.

8 Memasukkan data string dari pengguna ke dalam suatu variabel biasa

dan mengalamatkannya kepada variabel a.

9 Menyalin string dari variabel a ke variabel b.

10 Membalik string pada variabel b.

11

Membandingkan string pada variabel a dengan string pada variabel b.

Jika keduanya sama atau menghasilkan nilai nol, menjalankan perintah

selanjutnya.

12 Mencetak tulisan.

13 Jika pernyataan sebelumnya tidak terpenuhi, menjalankan perintah

selanjutnya.

14 Mencetak tulisan.

15 Mengakhiri program yang telah dijalankan.

Page 81: Laporan Praktikum Konsep Pemrograman

D. Analisis Jalannya Program

Pengguna memasukkan data string berupa karakter yaitu “kodok”.

Program mengalamatkan data tersebut ke variabel a.

String dari variabel a disalin ke variabel b, sehingga variabel b berisi string

“kodok”.

String dalam variabel b dibalik, sehingga isi dari variabel b menjadi “kodok”

(karena kata “kodok” jika dibalik tetap menjadi “kodok”).

Karena string dalam variabel a sama dengan string dalam variabel b atau

bernilai nol (“kodok”=“kodok”), maka program mencetak tulisan “Kata atau

kalimat tersebut adalah palindrom.”

Page 82: Laporan Praktikum Konsep Pemrograman

Daftar Pustaka

Sulistyo, Meiyanto Eko. 2012. Konsep Pemrograman: String.

http://ariyagirinata.blogspot.com/2011/09/membalik-kata-dengan-strrev.html diakses

pada hari Minggu tanggal 10 November 2013 pukul 16:51.

http://www.unit-conversion.info/texttools/ascii/ diakses pada hari Senin tanggal 11

November 2013 pukul 22:06.

Page 83: Laporan Praktikum Konsep Pemrograman

LAPORAN PRAKTIKUM KONSEP PEMROGRAMAN

POINTER

DISUSUN OLEH:

FEMBI REKRISNA GRANDEA PUTRA

M0513019

ASISTEN DOSEN:

1. AMELIA RAHMAN (M0512004)

2. FATHIN MUBARAK (M0512020)

JURUSAN INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET

SURAKARTA

RABU, 20 NOVEMBER 2013

Page 84: Laporan Praktikum Konsep Pemrograman

1. Jelaskan dan analisis program ini!

A. Soal

#include"stdio.h."

main()

{

int r=9, *pr, i;

pr=&r, i=*pr;

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

printf( " pr = %p\n", pr );

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

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

printf( " r = %d\n", r );

printf( "*pr = %d\n", *pr );

printf( " i = %d\n", i );

i++; puts( "\ni++" ); //nilai

printf( " r = %d\n", r );

printf( "*pr = %d\n", *pr );

printf( " i = %d\n", i );

*pr=*pr+1; puts( "\n*pr=*pr+1" ); //nilai

printf( " r = %d\n", r );

printf( "*pr = %d\n", *pr );

printf( " i = %d\n", i );

*pr+=10; puts( "\n*pr+=10" ); //nilai

printf( " r = %d\n", r );

printf( "*pr = %d\n", *pr );

printf( " i = %d\n", i );

*pr++; puts( "\n*pr++" ); //alamat

printf( " r = %d\n", r );

printf( "*pr = %d\n", *pr );

printf( " i = %d\n", i );

Page 85: Laporan Praktikum Konsep Pemrograman

pr++; puts( "\npr++" ); //alamat

printf( " r = %d\n", r );

printf( "*pr = %d\n", *pr );

printf( " i = %d\n", i );

*(pr++); puts( "\n*(pr++)" ); //alamat

printf( " r = %d\n", r );

printf( "*pr = %d\n", *pr );

printf( " i = %d\n", i );

(*pr)++; puts( "\n(*pr)++" ); //nilai

printf( " r = %d\n", r );

printf( "*pr = %d\n", *pr );

printf( " i = %d\n", i );

}

Page 86: Laporan Praktikum Konsep Pemrograman

B. Gagasan

Variabel pointer dikatakan sebagai variabel yang menunjuk ke obyek lain.

Sebenarnya variabel pointer (disingkat pointer) berisi alamat dari suatu obyek lain

(obyek yang ditunjuk oleh pointer). Contoh: px adalah pointer dan x adalah

variabel yang ditunjuk oleh px. Jika x berada pada alamat memori (alamat awal)

1000, maka px akan berisi 1000.

Agar suatu pointer menunjuk ke variabel lain, awalnya pointer harus diisi

dengan alamat dari variabel yang akan ditunjuk. Untuk menyatakan alamat dari

suatu variabel, operator & (operator alamat, yang bersifat unary) bisa digunakan

dengan cara menempatkan operator di depan nama variabel. Contoh, jika x

dideklarasikan sebagai variabel bertipe int, maka &x berarti alamat dari variabel x.

Jika suatu pointer sudah ditunjuk oleh pointer, variabel yang ditunjuk oleh

pointer dapat diakses melalui variabel itu sendiri (pengaksesan langsung) atau

melalui pointer (pengaksesan tidak langsung). Pengaksesan tidak langsung

dilakukan dengan menggunakan simbol operator indirection (tidak langsung),

berupa simbol * (unary). Contoh: *px yang menyatakan isi atau nilai variabel/data

yang ditunjuk oleh pointer px.

Page 87: Laporan Praktikum Konsep Pemrograman

C. Print Screen

Page 88: Laporan Praktikum Konsep Pemrograman

D. Analisis Perbaris

Baris

ke-Keterangan

1Memerintahkan preprocessor untuk memasukkan file <stdio.h> ke

dalam program.

2 Melaksanakan program.

3 Mengawali program yang akan dilaksanakan.

4

Mendeklarasikan variabel r bertipe integer bernilai sembilan, variabel

*pr bertipe integer yang menyatakan isi variabel yang ditunjuk oleh

pointer pr, dan variabel i yang bertipe integer.

5

Mendeklarasikan variabel pr bernilai sama dengan alamat variabel r

dan variabel i bernilai sama dengan isi variabel yang ditunjuk oleh

pointer pr.

6 Mencetak alamat variabel r.

7 Mencetak nilai variabel pr.

8 Mencetak alamat variabel pr.

9 Mencetak alamat variabel i.

10 Mencetak nilai variabel r.

11 Mencetak nilai variabel yang ditunjuk oleh pointer pr.

12 Mencetak nilai variabel i.

13 -

14 Mendeklarasikan variabel i ditambah satu dan meletakkan tulisannya.

15 Mencetak nilai variabel r.

16 Mencetak nilai variabel yang ditunjuk oleh pointer pr.

17 Mencetak nilai variabel i.

18 -

19

Mendeklarasikan variabel yang ditunjuk oleh pointer pr bernilai sama

dengan nilai variabel tersebut ditambah satu dan meletakkan

tulisannya.

20 Mencetak nilai variabel r.

21 Mencetak nilai variabel yang ditunjuk oleh pointer pr.

22 Mencetak nilai variabel i.

23 -

Page 89: Laporan Praktikum Konsep Pemrograman

24Mendeklarasikan variabel yang ditunjuk oleh pointer pr bernilai sama

dengan variabel tersebut ditambah sepuluh dan meletakkan tulisannya.

25 Mencetak nilai variabel r.

26 Mencetak nilai variabel yang ditunjuk oleh pointer pr.

27 Mencetak nilai variabel i.

28 -

29Mendeklarasikan nilai variabel yang ditunjuk oleh pointer pr ditambah

satu dan meletakkan tulisannya.

30 Mencetak nilai variabel r.

31 Mencetak nilai variabel yang ditunjuk oleh pointer pr.

32 Mencetak nilai variabel i.

33 -

34Mendeklarasikan nilai variabel pr ditambah satu dan meletakkan

tulisannya.

35 Mencetak nilai variabel r.

36 Mencetak nilai variabel yang ditunjuk oleh pointer pr.

37 Mencetak nilai variabel i.

38 -

39Mendeklarasikan nilai variabel yang ditunjuk oleh pointer pr yang telah

ditambah satu dan meletakkan tulisannya.

40 Mencetak nilai variabel r.

41 Mencetak nilai variabel yang ditunjuk oleh pointer pr.

42 Mencetak nilai variabel i.

43 -

44Mendeklarasikan nilai variabel yang ditunjuk oleh pointer pr kemudian

ditambah satu dan meletakkan tulisannya.

45 Mencetak nilai variabel r.

46 Mencetak nilai variabel yang ditunjuk oleh pointer pr.

47 Mencetak nilai variabel i.

48 -

49 Mengakhiri program yang telah dilaksanakan.

50 -

Page 90: Laporan Praktikum Konsep Pemrograman

E. Analisis Jalannya Program

&r pr &pr &i r *pr i

r=9

0028FF1C 0028FF1C 0028FF18 0028FF14 9 9 9

i++

0028FF1C 0028FF1C 0028FF18 0028FF14 9 9 10

*pr=*pr+1

0028FF1C 0028FF1C 0028FF18 0028FF14 10 10 10

*pr+=10

0028FF1C 0028FF1C 0028FF18 0028FF14 20 20 10

*pr++

0028FF1C 0028FF20 0028FF18 0028FF14 20 2686760 10

pr++

0028FF1C 0028FF24 0028FF18 0028FF14 20 1997381172 10

*(pr++)

0028FF1C 0028FF28 0028FF18 0028FF14 20 2686868 10

(*pr)++

0028FF1C 0028FF28 0028FF18 0028FF14 20 2686869 10

Page 91: Laporan Praktikum Konsep Pemrograman

2. Jelaskan dan analisis program ini!

A. Soal

#include"stdio.h"

char *nama_bulan( int n );

main()

{

int bulan;

lagi:

printf( "Bulan (1..12) = " ); scanf( "%d", &bulan );

printf( "%s\n", nama_bulan( bulan ) );

puts( "lagi?" );

if( getch()==13 )

goto lagi;

}

char *nama_bulan( int n )

{

static char *bulan[] = { "Kode bulan salah",

"Januari", "Februari", "Maret", "April", "Mei", "Juni",

"Juli", "Agustus", "September", "Oktober", "November",

"Desember" };

return( (n<1||n>12)? bulan[0]: bulan[n] );

}

Page 92: Laporan Praktikum Konsep Pemrograman

B. Gagasan

Sesungguhnya array secara internal akan diterjemahkan dalam bentuk

pointer. Misal dideklarasikan di dalam suatu fungsi:

Static int tanggal_lahir[3]={27,02,46};

dan

int *tanggal;

Kemudian diberikan instruksi:

ptanggal=&tanggal_lahir[0];

maka ptanggal akan berisi alamat dari elemen array tanggal_lahir yang berindeks

0. Instruksi bisa ditulis menjadi

ptanggal=tanggal_lahir;

karena nama array tanpa kurung menyatakan alamat awal dari array.

Suatu array dapat digunakan untuk menyimpan sejumlah pointer. Contoh:

char *nama_hari[10];

merupakan pernyataan untuk mendeklarasikan array pointer. Array nama_hari

terdiri dari 10 elemen berupa pointer yang menunjuk ke data bertipe char.

Page 93: Laporan Praktikum Konsep Pemrograman

C. Print Screen

Page 94: Laporan Praktikum Konsep Pemrograman

D. Analisis Perbaris

Baris

ke-Keterangan

1Memerintahkan praprosesor untuk memasukkan berkas stdio.h ke

dalam program.

2 -

3

Mendeklarasikan variabel yang ditunjuk oleh pointer nama_bulan

bertipe character yang mempunyai parameter variabel n bertipe

integer.

4 -

5 Memulai program.

6 Mengawali program yang akan dilaksanakan.

7 Mendeklarasikan variabel bulan bertipe integer.

8 Mendeklarasikan fungsi lagi.

9Mencetak tulisan “Bulan (1..12) = “. Memindai data yang dimasukkan

oleh pengguna dan mengalamatkannya ke variabel bulan.

10 Mencetak variabel nama_bulan dengan parameter variabel bulan.

11 Meletakkan tulisan “lagi?”.

12Melakukan perintah di bawahnya jika pengguna memasukkan karakter

yang bernilai ASCII 13, yaitu pergantian baris (enter/carriage return).

13 Mengembalikan program ke fungsi lagi.

14 Mengakhiri program yang telah dilaksanakan.

15 -

16

Mendeklarasikan variabel yang ditunjuk oleh pointer nama_bulan

bertipe character yang mempunyai parameter variabel n bertipe

integer.

17 Mengawali program yang akan dilaksanakan.

18

Mendeklarasikan variabel yang ditunjuk oleh pointer bulan bertipe

static character yang memiliki indeks array dan menentukan indeks ke-

0 adalah “Kode bulan salah”, ke-1 adalah “Januari, ..., dan ke-12 adalah

“Desember”.

19Jika nilai variabel n kurang dari satu atau lebih dari 12, program

mengembalikan nilai kepada variabel bulan indeks ke-0. Jika tidak,

Page 95: Laporan Praktikum Konsep Pemrograman

program mengembalikan nilai kepada variabel bulan indeks ke-n yang

telah ditentukan.

20 Mengakhiri program yang telah dilaksanakan.

21 -

Page 96: Laporan Praktikum Konsep Pemrograman

E. Analisis Jalannya Program

Program mencetak tulisan “Bulan (1..12) = “. Kemudian pengguna

memasukkan angka 11. Program kemudian mengolahnya melalui fungsi

“nama_bulan” dan mendapatkan array bulan indeks ke-11 adalah bulan November.

Sehingga program mencetak tulisan “November”, disusul tulisan “lagi?”. Jika

pengguna menekan tombol enter, program akan mengulang perintah kembali

dimulai dari fungsi “lagi:”.

Page 97: Laporan Praktikum Konsep Pemrograman

Daftar Pustaka

Sulistyo, Meiyanto Eko. 2012. Konsep Pemrograman: Pointer.

http://en.wikipedia.org/wiki/ASCII diakses pada hari Selasa tanggal 26 November 2013

pukul 19:13.

Page 98: Laporan Praktikum Konsep Pemrograman

LAPORAN PRAKTIKUM KONSEP PEMROGRAMAN

SORTING

DISUSUN OLEH:

FEMBI REKRISNA GRANDEA PUTRA

M0513019

ASISTEN DOSEN:

1. AMELIA RAHMAN (M0512004)

2. RIO PAHLEVY RIDLO YUDHA BHAKTI (M0512048)

JURUSAN INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET

SURAKARTA

RABU, 4 DESEMBER 2013

Page 99: Laporan Praktikum Konsep Pemrograman

1. Modifikasi program bubble sort integer di modul Sorting menjadi bubble

sort integer!

A. Gagasan

Bubble sort adalah metode pengurutan data dengan prinsip: data di

lokasi/indeks I dibandingkan dengan data lain di lokasi/indeks sebelahnya I+1,

apabila terdapat ketidakcocokan data, maka data di lokasi I tersebut akan ditukar

dengan data di lokasi I+1. Maka secara perlahan, data akan bergerak menuju ke

lokasi yang tepat. Dari sifat inilah, istilah bubble yang artinya gelembung diambil.

Seperti gelembung dalam minuman soda, yang perlahan bergerak naik ke atas.

Disajikan contoh cara kerjanya, untuk 5 buah data yaitu 4, 5, 1, 3, 2.

Pengurutan dimulai dari lokasi pertama (I adalah 1), dan dibandingkan dengan

lokasi sebelahnya (I+1 adalah 2). Karena data 4 dan 5 sudah berada pada urutan

yang cocok, maka tidak terjadi pertukaran. Kemudian dicek data lokasi berikutnya

(I adalah 2) dengan lokasi sebelahnya (I+1 adalah 3), ternyata data 5 dan 1 tidak

cocok, maka ditukar. Lokasi berikutnya (I adalah 3) dibandingkan dengan lokasi

sebelahnya (I+1 adalah 4), ternyata data 5 dan 3, tidak cocok lagi, maka ditukar

lagi. Demikian seterusnya, dikerjakan sampai dipastikan bahwa semua data ada

pada lokasi yang cocok, yang dilakukan dengan cara sudah tidak ada lagi

pertukaran yang dilakukan.

Page 100: Laporan Praktikum Konsep Pemrograman

B. Print Screen

Page 101: Laporan Praktikum Konsep Pemrograman

C. Analisis Perbaris

Baris

ke-Keterangan

1Memerintahkan preprocessor untuk memasukkan file <stdio.h> ke

dalam program.

2Memerintahkan praprosesor untuk memasukkan berkas string.h ke

dalam program.

3Mendeklarasikan fungsi bubbleSort yang tidak memiliki parameter dan

bertipe void (tidak mengembalikan nilai).

4 Mendeklarasikan variabel array data dua dimensi dan variabel array x.

5 Mendeklarasikan variabel jumlah, angka, dan y bertipe integer.

6 Melaksanakan fungsi main.

7 Mengawali fungsi main.

8 Mencetak tulisan.

9 Mencetak tulisan.

10Memindai data bertipe desimal dan mengalamatkannya ke variabel

jumlah.

11 Meletakkan karakter kosong.

12

Menyatakan variabel angka bernilai awal nol, jika variabel angka lebih

kecil daripada jumlah, melaksanakan perintah selanjutnya dan

menambah satu nilai variabel angka.

13

Mencetak tulisan. Memindai data bertipe string dan

mengalamatkannya ke variabel array data indeks ke-variabel angka.

14

15

16

17 Memanggil fungsi bubbleSort.

18 Mencetak tulisan.

19

Menyatakan variabel angka bernilai awal 0, jika variabel angka lebih

kecil daripada jumlah, melaksanakan perintah selanjutnya dan

menambah satu nilai variabel angka.

20 Mencetak tulisan.

21 Mengakhiri fungsi main.

Page 102: Laporan Praktikum Konsep Pemrograman

22Melaksanakan fungsi bubbleSort yang tidak berparameter dan tidak

mengembalikan nilai.

23 Mengawali fungsi bubbleSort.

24Menyatakan suatu keadaan, jika keadaan tersebut terpenuhi, perintah

selanjutnya akan dilaksanakan.

25 Mengawali perintah yang akan dilaksanakan.

26Menyatakan suatu keadaan, jika keadaan tersebut terpenuhi, perintah

selanjutnya akan dilaksanakan.

27Menyatakan suatu keadaan, jika keadaan tersebut terpenuhi, perintah

selanjutnya akan dilaksanakan.

28 Mengawali perintah yang akan dilaksanakan.

29Menyalin string dari variabel x ke variabel array data indeks ke-

(variabel y dikurangi satu nilai).

30Menyalin string dari variabel array data indeks ke-(variabel y

dikurangi satu nilai) ke variabel array data indeks ke-(variabel y).

31Menyalin string dari variabel array data indeks ke-(variabel y) ke

variabel x.

32 Mengakhiri perintah yang telah dilaksanakan.

33 Mengakhiri perintah yang telah dilaksanakan.

34 Mengakhiri fungsi void.

Page 103: Laporan Praktikum Konsep Pemrograman

2. Buat program sorting selain bubble sort (insertion sort) dengan nilai di-

input-kan!

A. Print Screen

Page 104: Laporan Praktikum Konsep Pemrograman

B. Analisis Perbaris

Baris

ke-Keterangan

1Memerintahkan praprosesor untuk memasukkan berkas stdio.h ke

dalam program.

2 Memasukkan berkas string.h.

3Mendeklarasikan fungsi insertion yang bertipe karakter dan tidak

berparameter.

4Mendeklarasikan variabel array data berdimensi dua dan variabel

array x bertipe karakter.

5 Mendeklarasikan variabel jumlah, angka, dan y bertipe integer.

6 Melaksanakan fungsi main.

7 Mengawali fungsi main.

8 Mencetak tulisan.

9 Mencetak tulisan.

10Memindai data bertipe desimal dan mengalamatkannya ke variabel

jumlah.

11 Meletakkan karakter kosong.

12Menyatakan suatu keadaan, jika terpenuhi, perintah selanjutnya akan

dilaksanakan.

13 Mengawali perintah yang akan dilaksanakan.

14 Mencetak tulisan.

15Memindai data bertipe string dan mengalamatkannya ke variabel array

data indeks ke-(nilai variabel angka).

16 Mengakhiri perintah yang telah dilaksanakan.

17 Memanggil fungsi insertion.

18 Mencetak tulisan.

19Menyatakan suatu keadaan, jika terpenuhi, perintah selanjutnya akan

dilaksanakan.

20 Mencetak tulisan.

21 Mengakhiri fungsi main.

22Melaksanakan fungsi insertion yang bertipe karakter dan tidak

berparameter.

Page 105: Laporan Praktikum Konsep Pemrograman

23 Mengawali fungsi insertion.

24Menyatakan suatu keadaan, jika terpenuhi, perintah selanjutnya akan

dilaksanakan.

25 Mengawali perintah yang akan dilaksanakan.

26Menyalin string dari variabel x ke variabel array data indeks ke-(nilai

variabel angka).

27Menyatakan variabel y bernilai sama dengan variabel angka dikurangi

satu nilai.

28Menyatakan suatu keadaan, jika terpenuhi, perintah selanjutnya akan

dilaksanakan.

29 Mengawali perintah yang akan dilaksanakan.

30Menyalin string dari variabel array data indeks ke-(nilai variabel y

ditambah satu) ke variabel array data indeks ke-(nilai variabel y).

31 Menyatakan variabel y dikurangi satu nilai.

32 Mengakhiri perintah yang telah dilaksanakan.

33Menyalin string dari variabel array data indeks ke-(nilai variabel y

ditambah satu) ke variabel x.

34 Mengakhiri perintah yang telah dilaksanakan.

35 Mengakhiri fungsi insertion.

Page 106: Laporan Praktikum Konsep Pemrograman

3. Buat program sorting selain bubble sort (selection sort) dengan nilai di-

input-kan!

A. Print Screen

Page 107: Laporan Praktikum Konsep Pemrograman

B. Analisis Perbaris

1 Memasukkan berkas stdio.h.

2 Memasukkan berkas string.h.

3Mendeklarasikan fungsi selection yang bertipe karakter dan tidak

berparameter.

4Mendeklarasikan variabel array data berdimensi dua dan variabel array x

bertipe karakter.

5 Mendeklarasikan variabel jumlah, angka, y, dan z bertipe integer.

6 Melaksanakan fungsi main.

7 Mengawali fungsi main.

8 Mencetak tulisan.

9 Mencetak tulisan.

10 Memindai data bertipe desimal dan mengalamatkannya ke variabel jumlah.

11 Meletakkan karakter kosong.

12Menyatakan suatu keadaan, jika terpenuhi, perintah selanjutnya akan

dilaksanakan.

13 Mengawali perintah yang akan dilaksanakan.

14 Mencetak tulisan.

15Memindai data bertipe string dan mengalamatkannya ke variabel array data

indeks ke-(nilai variabel angka).

16 Mengakhiri perintah yang telah dilaksanakan.

17 Memanggil fungsi selection.

18 Mencetak tulisan.

19Menyatakan suatu keadaan, jika terpenuhi, perintah selanjutnya akan

dilaksanakan.

20 Mencetak tulisan.

21 Mengakhiri fungsi main.

22Melaksanakan fungsi selection yang bertipe karakter dan tidak

berparameter.

23 Mengawali fungsi selection.

24Menyatakan suatu keadaan, jika terpenuhi, perintah selanjutnya akan

dilaksanakan.

25 Mengawali perintah yang akan dilaksanakan.

Page 108: Laporan Praktikum Konsep Pemrograman

26 Menyatakan variabel z bernilai sama dengan variabel angka.

27Menyatakan suatu keadaan, jika terpenuhi, perintah selanjutnya akan

dilaksanakan.

28 Mengawali perintah yang akan dilaksanakan.

29Menyatakan suatu keadaan, jika terpenuhi, perintah selanjutnya akan

dilaksanakan.

30 Menyatakan variabel z bernilai sama dengan variabel y.

31 Mengakhiri perintah yang akan dilaksanakan.

32Menyatakan suatu keadaan, jika variabel z tidak bernilai sama dengan

variabel angka, perintah selanjutnya akan dilaksanakan.

33Menyatakan suatu keadaan, jika terpenuhi, perintah selanjutnya akan

dilaksanakan.

34Menyalin string dari variabel x ke variabel array data indeks ke-(nilai

variabel angka).

35Menyalin string dari variabel array data indeks ke-(nilai variabel angka) ke

variabel array data indeks ke-(nilai variabel z).

36Menyalin string dari variabel array data indeks ke-(nilai variabel z) ke

variabel x.

37 Mengakhiri perintah yang telah dilaksanakan.

38 Mengakhiri perintah yang telah dilaksanakan.

39 Mengakhiri fungsi selection.

Page 109: Laporan Praktikum Konsep Pemrograman

Daftar Pustaka

Bab 8 SORTING.doc.

http://id.wikibooks.org/wiki/Ayo_Membuat_Program_Pascal/Algoritma_Sorting_Dasar

diakses pada hari Selasa tanggal 10 Desember 2013 pukul 19:44.

Page 110: Laporan Praktikum Konsep Pemrograman

LAPORAN PRAKTIKUM KONSEP PEMROGRAMAN

STRUCTURE

DISUSUN OLEH:

FEMBI REKRISNA GRANDEA PUTRA

M0513019

ASISTEN DOSEN:

1. DWI PUTRI PERTIWI (M0512015)

2. FATHIN MUBARAK (M0512020)

JURUSAN INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET

SURAKARTA

RABU, 11 DESEMBER 2013

Page 111: Laporan Praktikum Konsep Pemrograman

1. Kembangkan contoh program Initialization Structure sehingga dapat dipakai

untuk menentukan bintang kelahiran. Sebagai acuan gunakan data berikut :

Aries : 21 Maret – 19 April

Taurus : 20 April – 20 Mei

Gemini : 21 Mei – 20 Juni

Cancer : 21 Juni – 22 Juli

Leo : 23 Juli – 22 Agustus

Virgo : 23 Agustus – 22 September

Libra : 23 September – 22 Oktober

Scorpio : 23 Oktober – 21 Nopember

Sagitaurus : 22 Nopember – 21 Desember

Capricorn : 22 Desember – 19 Januari

Aquarius : 20 Januari – 18 Februari

Pisces : 19 Februari – 20 Maret

Gunakan array untuk mengimplementasikan program

A. Soal

Page 112: Laporan Praktikum Konsep Pemrograman

B. Print Screen

Page 113: Laporan Praktikum Konsep Pemrograman

C. Analisis Perbaris

Baris

ke-Keterangan

1 Memasukkan berkas stdio.h.

2 Melaksanakan fungsi main.

3 Mengawali fungsi main.

4 Mendeklarasikan variabel zodiak bertipe struktur.

5 Mengawali keterangan untuk pendeklarasian sebelumnya.

6 Mendeklarasikan variabel array nama bertipe karakter.

7Mendeklarasikan tgl_awal, bln_awal, tgl_akhir, dan bln_akhir bertipe

integer.

8 Mengakhiri keterangan untuk pendeklarasian sebelumnya.

9 Mendeklarasikan variabel array zodiak bintang bertipe struktur.

10 Mengawali keterangan untuk pendeklarasian sebelumnya.

11

Mendeklarasikan 12 isi variabel array zodiak bintang.12

13

14 Mengakhiri keterangan untuk pendeklarasian sebelumnya.

15Mendeklarasikan variabel tgl_lhr, bln_lhr, thn_lhr, dan i bertipe

integer.

16 Mencetak tulisan.

17 Mencetak tulisan.

18

Memindai data bertipe desimal dan mengalamatkan 2 angka pertama

ke variabel tgl_lhr, 2 angka selanjutnya ke variabel bln_lhr, dan 4 angka

terakhir ke variabel thn_lhr.

19

Jika pembagian variabel thn_lhr dengan 4 bukan 0 dan variabel bln_lhr

bernilai 2 dan variabel tgl_lhr bernilai lebih dari 28, maka melakukan

perintah selanjutnya hingga keadaan tersebut bernilai salah.

20 Mengawali perintah yang akan dilaksanakan.

21 Mencetak tulisan.

22 Mencetak tulisan.

23 Mencetak tulisan.

Page 114: Laporan Praktikum Konsep Pemrograman

24

Memindai data bertipe desimal dan mengalamatkan 2 angka pertama

ke variabel tgl_lhr, 2 angka selanjutnya ke variabel bln_lhr, dan 4 angka

terakhir ke variabel thn_lhr.

25 Mengakhiri perintah yang telah dilaksanakan.

26

Mendeklarasikan nilai awal variabel i sama dengan 0, nilai akhir

variabel i kurang dari 12, nilai i ditambah satu, dan melakukan perintah

selanjutnya.

27 Mengawali perintah yang akan dilaksanakan.

28Menyatakan sebuah keadaan, jika keadaan tersebut terpenuhi,

melakukan perintah selanjutnya hingga keadaan tersebut bernilai salah.

29 Mencetak tulisan.

30 Mengakhiri perintah yang telah dilaksanakan.

31 Mengakhiri fungsi main.

Page 115: Laporan Praktikum Konsep Pemrograman

2. Untuk melihat bahwa ada kemungkinan memori dalam heap tidak cukup

untuk memenuhi pesanan, maka cobalah ganti nilai 500 pada pernyataan :

ptr = (char *) malloc(500 * sizeof(char));

sampai memori penuh.

A. Soal

Page 116: Laporan Praktikum Konsep Pemrograman

B. Print Screen

Page 117: Laporan Praktikum Konsep Pemrograman

C. Analisis Perbaris

Baris

ke-Keterangan

1 Memasukkan berkas stdio.h.

2 Memasukkan berkas stdlib.h.

3 Mendeklarasikan fungsi main.

4 Mengawali fungsi main.

5 Mendeklarasikan variabel pointer *ptr bertipe karakter.

6Mendeklarasikan nilai variabel ptr dengan cara memesan lokasi

memori.

7Jika nilai variabel ptr tidak bisa didefinisikan, melaksanakan perintah

selanjutnya.

8 Meletakkan tulisan.

9Jika pernyataan sebelumnya bernilai salah, melaksanakan perintah

selanjutnya.

10 Mengawali perintah yang akan dilaksanakan.

11 Meletakkan tulisan.

12 Meletakkan tulisan.

13 Membebaskan memori yang sebelumnya dipesan oleh variabel ptr.

14 Meletakkan tulisan.

15 Mengakhiri perintah yang telah dilaksanakan.

16Mendapatkan sebuah data berupa karakter dan tidak

menampilkannya.

17 Mengakhiri fungsi main.

Page 118: Laporan Praktikum Konsep Pemrograman

D. Analisis Jalannya Program

Program akan memesan alamat memori untuk variabel bertipe karakter.

Pengguna mencoba menentukan ukuran variabel tersebut sebesar 1.000.000.000

byte, ternyata komputer masih dapat menempatkan variabel tersebut di RAM,

sehingga program memunculkan kalimat, “OK. Pengalokasian memori sudah

dilakukan”. Setelah itu program akan membebaskan kembali ruang tersebut dengan

memunculkan kalimat “Blok memori dalam heap dibebaskan kembali.”

Kemudian pengguna mencoba mengubah ukurannya menjadi 2.000.000.000

byte. Ternyata komputer sudah tidak dapat memproses perintah tersebut karena

memori tidak mencukupi, sehingga program memunculkan kalimat, “memori tidak

cukup”.

Page 119: Laporan Praktikum Konsep Pemrograman

3. Jelaskan dan analisis programnya.

A. Soal

#include"stdio.h"

#include"string.h"

#define jml 14 //jumlah kelompok

#define jmlAng 3 //jml anggota

typedef struct { //struct dengan nama kelompok

int no;

char anggota[jmlAng][25];

char project[25];

} kelompok;

main()

{

int i; kelompok kel[jml]; char semen[25];

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

kel[i].no = i+1; int j=0;

printf( "\nKelompok %d\n", kel[i].no );

for( ; j<jmlAng; j++ ) {

printf( "Nama anggota ke-%d\t: ", j+1 ); gets( semen

);

strcpy( kel[i].anggota[j], semen );

}

printf( "Nama project\t\t: " ); gets( semen );

strcpy( kel[i].project, semen );

}

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

printf( "\nKelompok %d: %s\n", kel[i].no, kel[i].project

); int j;

for( j=0; j<jmlAng; j++ ) {

printf( "Nama anggota ke-%d\t: %s\n", j+1,

kel[i].anggota[j] );

}

}

}

Page 120: Laporan Praktikum Konsep Pemrograman

B. Analisis Perbaris

1 Memasukkan berkas stdio.h.

2 Memasukkan berkas string.h.

3 Mendefinisikan variabel jml bernilai 14.

4 Mendenfinisikan variabel jmlAng bernilai 3.

5 -

6 Mendefinisikan tipe struktur.

7 Mengawali keterangan dari pendeklarasian sebelumnya.

8 Mendeklarasikan variabel i bertipe integer.

9 Mendeklarasikan variabel array anggota bertipe karakter.

10 Mendeklarasikan variabel array project bertipe karakter.

11 Mengakhiri keterangan dari pendeklarasian sebelumnya.

12 -

13 Mendeklarasikan fungsi main.

14 Mengawali fungsi main.

15 Mendeklarasikan variabel i bertipe integer.

16 Mendeklarasikan variabel array kel bertipe kelompok.

17 Mendeklarasikan variabel array semen bertipe karakter.

18

Menyatakan nilai awal variabel i sama dengan 0, nilai akhir variabel i

kurang dari nilai variabel jml, nilai variabel i ditambah satu, dan

melaksanakan perintah selanjutnya.

19 Mengawali perintah yang akan dilaksanakan.

20Mendeklarasikan variabel array kel indeks ke-i.no bernilai sama dengan

nilai variabel i ditambah satu.

21 Mendeklarasikan variabel j bertipe integer bernilai sama dengan 0.

22 Mencetak tulisan.

23

Menyatakan variabel j tidak bernilai awal, nilai akhir variabel j kurang dari

nilai variabel jmlAng, nilai variabel j ditambah satu, dan melaksanakan

perintah selanjutnya.

24 Mengawali perintah yang akan dilaksanakan.

25 Mencetak tulisan.

26 Mendapatkan string dan mengalamatkannya ke variabel semen.

Page 121: Laporan Praktikum Konsep Pemrograman

27Menyalin string dari variabel array kel indeks ke-i.variabel array anggota

indeks ke-j ke variabel semen.

28 Mengakhiri perintah yang telah dilaksanakan.

29 Mencetak tulisan.

30 Mendapatkan string dan mengalamatkannya ke variabel semen.

31Menyalin string dari variabel array kel indeks ke-i.project ke variabel

semen.

32 Mengakhiri perintah yang telah dilaksanakan.

33 -

34

Menyatakan variabel i bernilai awal 0, variabel i bernilai akhir kurang dari

nilai variabel jml, nilai variabel i ditambah satu, dan melaksanakan perintah

selanjutnya.

35 Mengawali perintah yang akan dilaksanakan.

36 Mencetak tulisan.

37 Mendeklarasikan variabel j bertipe integer.

38

Menyatakan variabel j bernilai awal 0, variabel j bernilai akhir kurang dari

nilai variabel jmlAng, nilai variabel j ditambah satu, dan melaksanakan

perintah selanjutnya.

39 Mengawali perintah yang akan dilaksanakan.

40 Mencetak tulisan.

41 -

42 Mengakhiri perintah yang telah dilaksanakan.

43 Mengakhiri perintah yang telah dilaksanakan.

44 Mengakhiri fungsi main.

Page 122: Laporan Praktikum Konsep Pemrograman

C. Analisis Jalannya Program

Program menampilkan “Kelompok (angka mulai dari 1 hingga nilai variabel

jml (14))”. Kemudian program menampilkan “Nama anggota ke-(angka dimulai

dari 1 hingga nilai variabel jmlAng (3)). Setelah pengguna, memasukkan nama

anggota, program akan mengalamatkannya ke variabel semen. Kemudian dengan

menggunakan fungsi string, program menyalin isi variabel semen ke variabel

kel[i=angka mulai dari 0 hingga 13].anggota[j=angka mulai dari 0 hingga 2].

Program mencetak tulisan “Nama project : ”, pengguna

memasukkan nama proyeknya, dan program mengalamatkannya ke variabel semen

dan disalin ke variabel kel[i=angka mulai dari 0 hingga 13].project.

Setelah variabel i mencapai angka 13, maka program menyelesaikan perintah

tersebut dan melanjutkan ke perintah berikutnya, yaitu proses pencetakan daftar

kelompok dengan cara menampilkan “Kelompok (variabel kel[i].no=angka 1-14):

(variabel kel[i].project=nama proyek dari tiap kelompok)”. Sebelum program

menampilkan kelompok selanjutnya, program terlebih dahulu mencetak nama

anggota-anggotanya.

Page 123: Laporan Praktikum Konsep Pemrograman

LAPORAN PRAKTIKUM KONSEP PEMROGRAMAN

LINK LIST

DISUSUN OLEH:

FEMBI REKRISNA GRANDEA PUTRA

M0513019

ASISTEN DOSEN:

1. AMELIA RAHMAN (M0512004)

2. DWI PUTRI PERTIWI (M0512015)

JURUSAN INFORMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET

SURAKARTA

RABU, 18 DESEMBER 2013

Page 124: Laporan Praktikum Konsep Pemrograman

1. Soal

1. Tambahkan menu ubah, untuk mengubah data yang ada, dengan kunci pencarian

adalah nama >>gunakan fungsi temukan() sebagai bantuan

2. Tambahkan constraint dalam melakukan input data, nim memiliki batas 6 karakter,

nama 25 karakter, dan alamat 35 karakter. jika input melebihi constraint, diminta

memasukkan lagi. nilai constraint dilewatkan sebagai parameter pada fungsi

masukkanString()

Page 125: Laporan Praktikum Konsep Pemrograman

2. Gagasan

Linked list adalah struktur data berupa deret data yang dinamis, karena dapat

ditambahkan ataupun dihapus.

Linked list terdiri dari rantai node/simpul di mana tiap node terdiri dari data, pointer

yang merujuk data node-nya sendiri dan pointer merujuk pada node yang mengikutinya.

Linked list memiliki head/kepala (node awal) dan tail/ekor (node akhir). Karena

tail adalah node akhir, dengan demikian dalam node tail, pointer yang merujuk pada

node selanjutnya sama dengan NULL.

Jika linked list hanya terdiri dari satu node, maka dalam node tersebut pointer yang

merujuk pada node selanjutnya adalah sama dengan NULL.

Link list berguna untuk menambahkan simpul, menampilkan isi dari daftar

berantai, mencari data dari suatu simpul daftar berantai, dan menghapus sebuah node.

Page 126: Laporan Praktikum Konsep Pemrograman

3. Tangkapan Layar

Page 127: Laporan Praktikum Konsep Pemrograman
Page 128: Laporan Praktikum Konsep Pemrograman
Page 129: Laporan Praktikum Konsep Pemrograman
Page 130: Laporan Praktikum Konsep Pemrograman
Page 131: Laporan Praktikum Konsep Pemrograman

4. Analisis Perbaris

Baris

ke- Keterangan

1 Mengawali komentar.

2 Memberikan komentar.

3 Memberikan komentar.

4 Memberikan komentar.

5 Mengakhiri komentar.

6 -

7 Memerintahkan praprosesor untuk memasukkan berkas stdio.h. ke

dalam program.

8 Memerintahkan praprosesor untuk memasukkan berkas string.h ke

dalam program.

9 Memerintahkan praprosesor untuk memasukkan berkas stdlib.h ke

dalam program.

10 -

11 Mendefinisikan tipe struktur.

12 Mengawali tipe struktur yang akan didefinisikan.

13 Mendeklarasikan variabel nim bertipe karakter.

14 Mendeklarasikan variabel nama bertipe karakter.

15 Mendeklarasikan variabel alamat bertipe karakter.

16 Mendeklarasikan variabel mahasiswa bertipe struktur dengan

menunjuk pointer variabel next atau node selanjutnya.

17 Mendefinisikan struktur mahasiswa.

18 -

19 Mendeklarasikan fungsi tambah yang tidak memiliki nilai kembalian.

20 Mendeklarasikan fungsi cari yang tidak memiliki nilai kembalian.

21 Mendeklarasikan fungsi tampilSemua yang tidak memiliki nilai

kembalian.

22

Mendeklarasikan fungsi masukkanString yang tidak memiliki nilai

kembalian dengan parameter yang menunjuk pointer variabel string

bertipe karakter dan variabel constraint bertipe integer.

Page 132: Laporan Praktikum Konsep Pemrograman

23 Mendeklarasikan fungsi temukan dengan parameter variabel nama

bertipe karakter.

24 Mendeklarasikan fungsi ubah yang tidak memiliki nilai kembalian.

25 -

26 Mendeklarasikan struktur mahasiswa yang menunjuk pointer variabel

head sama dengan NULL.

27 Mendeklarasikan struktur mahasiswa menunjuk pointer variabel pos.

28 Mendeklarasikan struktur mahasiswa menunjuk pointer variabel first.

29 -

30 Mendeklarasikan variabel fungsi main.

31 Mengawali fungsi main.

32 Mendeklarasikan fungsi pengulangan yang tidak memiliki kondisi.

33 Mengawali fungsi pengulangan for.

34 Meletakkan tulisan.

35 Meletakkan tulisan.

36 Meletakkan tulisan.

37 Meletakkan tulisan.

38 Meletakkan tulisan.

39 Meletakkan tulisan.

40 Meletakkan tulisan.

41 -

42 Mencocokkan masukan dengan pilihan.

43 Mengawali pilihan.

44 Mengawali pilihan 1.

45 Memanggil fungsi tambah.

46 Menghentikan sementara proses pencocokan.

47 Mengawali pilihan 2.

48 Memanggil fungsi cari.

49 Menghentikan sementara proses pencocokan.

50 Mengawali pilihan 3.

51 Memanggil fungsi tampilSemua.

52 Menghentikan sementara proses pencocokan.

Page 133: Laporan Praktikum Konsep Pemrograman

53 Mengawali pilihan 4.

54 Memanggil fungsi ubah.

55 Menghentikan sementara proses pencocokan.

56 Mengawali pilihan 5.

57 Meletakkan tulisan.

58 Mengembalikan nilai 0.

59 Mengawali perintah jika tidak ada pilihan yang cocok dengan masukan.

60 Meletakkan tulisan.

61 Menghentikan sementara proses pencocokan.

62 Mengakhiri pilihan.

63 Mengakhiri fungsi pengulangan for.

64 Mengakhiri fungsi main.

65 -

66

Mendeklarasikan fungsi masukkanString yang tidak mengembalikan

nilai dan berparameter pointer variabel string bertipe karakter dan

variabel constraint bertipe integer.

67 Mengawali fungsi masukkanString.

68 Mendeklarasikan variabel st bertipe karakter.

69 Mengawali titik pengulangan bernama lagi.

70 Mendapatkan masukan string dari pengguna dan mengalamatkannya ke

variabel St.

71 Menyatakan jika variabel st melebihi batas karakter yang ditentukan

oleh variabel constraint, melaksanakan perintah selanjutnya.

72 Mengawali perintah yang akan dilaksanakan.

73 Mencetak tulisan.

74 Kembali ke lagi.

75 Mengakhiri perintah yang telah dilaksanakan.

76

Menyatakan jika kondisi sebelumnya tidak terpenuhi atau variabel st

tidak melampaui batas karakter yang ditentukan oleh constraint, isi

variabel st akan disalin ke variabel string.

77 Mengakhiri fungsi masukkan String.

78 -

Page 134: Laporan Praktikum Konsep Pemrograman

79 Mendeklarasikan fungsi tambah yang tidak mengembalikan nilai dan

tidak berparameter.

80 Mengawali fungsi tambah.

81 Meletakkan karakter.

82 Mendeklarasikan fungsi mahasiswa yang menunjuk ke variabel baru.

83 Mendeklarasikan variabel baru berisi pointer fungsi mahasiswa dan

memesan memori sebesar ukuran fungsi mahasiswa.

84 Menyatakan jika variabel baru telah memiliki isi, melaksanakan

perintah selanjutnya.

85 Mengawali perintah yang akan dilaksanakan.

86 Mencetak karakter.

87 Memanggil fungsi masukkanString dengan mengalamatkan masukan

ke variabel baru dan memindahkannya ke variabel nim.

88 Mencetak karakter.

89 Memanggil fungsi masukkanString dengan mengalamatkan masukan

ke variabel baru dan memindahkannya ke variabel nama.

90 Mencetak karakter.

91 Memanggil fungsi masukkanString dengan mengalamatkan masukan

ke variabel baru dan memindahkannya ke variabel alamat.

92 Memindahkan variabel baru ke variabel next yang berisi nilai variabel

head.

93 Menyatakan variabel head berisi nilai variabel baru.

94 Meletakkan karakter.

95 Mengakhiri perintah yang telah dilaksanakan.

96 Menyatakan jika kondisi sebelumnya tidak terpenuhi, melaksanakan

perintah selanjutnya.

97 Mengawali perintah yang akan dilaksanakan.

98 Meletakkan karakter.

99 Mengakhiri perintah yang telah dilaksanakan.

100 Mengakhiri fungsi tambah.

101 -

102 Mendeklarasikan fungsi cari yang tidak mengembalikan nilai dan tidak

berparameter.

Page 135: Laporan Praktikum Konsep Pemrograman

103 Mengawali fungsi cari.

104 Meletakkan karakter.

105 Mendeklarasikan variabel nama bertipe karakter.

106 Mencetak tulisan.

107 Mendapat karakter masukan dari pengguna dan memasukkannya ke

variabel nama.

108 Memanggil fungsi temukan dengan parameter variabel nama.

109 Menyatakan jika variabel pos tidak sama dengan NULL atau memiliki

isi, melaksanakan perintah selanjutnya.

110 Mengawali perintah yang akan dilaksanakan.

111 Meletakkan karakter.

112 Mencetak karakter.

113 Mencetak karakter.

114 Mencetak karakter.

115 Mengakhiri perintah yang telah dilaksanakan.

116 Menyatakan jika kondisi sebelumnya tidak terpenuhi, melaksanakan

perintah selanjutnya.

117 Meletakkan tulisan.

118 Meletakkan tulisan.

119 Mengakhiri fungsi cari.

120 -

121 Mendeklarasikan fungsi tampilSemua yang tidak mengembalikan nilai

dan tidak berparameter.

122 Mengawali fungsi tampilSemua.

123 Meletakkan tulisan.

124 Menyatakan fungsi mahasiswa menunjuk variabel semen.

125 Meletakkan tulisan.

126 Menyatakan variabel semen berisi variabel head.

127 Mencetak tulisan.

128 Menyatakan jika variabel semen masih memiliki isi, melaksanakan

perintah selanjutnya hingga variabel semen tidak berisi.

129 Mengawali perintah yang akan dilaksanakan.

130 Mencetak tulisan.

Page 136: Laporan Praktikum Konsep Pemrograman

131 Menyatakan variabel semen berisi variabel semen yang menunjuk

variabel next.

132 Mengakhiri perintah yang telah dilaksanakan.

133 Meletakkan tulisan.

134 Mengakhiri fungsi tampilSemua.

135 -

136 Mendeklarasikan variabel temukan yang tidak mengembalikan nilai

dengan parameter variabel nama bertipe karakter.

137 Mengawali fungsi temukan.

138 Menyatakan variabel first berisi NULL dan variabel pos berisi head.

139 Menyatakan jika variabel pos berisi, melaksanakan perintah

selanjutnya hingga variabel pos tidak berisi.

140 Mengawali perintah yang akan dilaksanakan.

141

Menyatakan jika perbandingan nilai ASCII antara isi string dari

variabel nama dan variabel pos yang menunjuk nama berbeda,

melaksanakan perintah selanjutnya.

142 Mengawali perintah yang akan dilaksanakan.

143 Menyatakan variabel first berisi pos.

144 Menyatakan variabel pos berisi pos yang menunjuk next.

145 Mengakhiri perintah yang akan dilaksanakan.

146 Menyatakan jika kondisi sebelumnya tidak terpenuhi, melaksanakan

perintah selanjutnya.

147 Memberhentikan sementara proses pengulangan while.

148 Mengakhiri perintah yang telah dilaksanakan.

149 Mengakhiri fungsi temukan.

150 -

151 Mendeklarasikan fungsi ubah yang tidak mengembalikan nilai dan

tidak berparameter.

152 Mengawali fungsi ubah.

153 Meletakkan tulisan.

154 Mendeklarasikan variabel nama bertipe karakter.

155 Mencetak tulisan.

156 Mendapatkan masukan dari pengguna dan memasukkannya ke nama.

Page 137: Laporan Praktikum Konsep Pemrograman

157 Memanggil fungsi temukan dengan parameter nama.

158 Menyatakan kondisi jika variabel pos tidak bernilai sama dengan

NULL, melaksanakan perintah selanjutnya.

159 Mengawali perintah yang akan dilaksanakan.

160 Meletakkan tulisan.

161 Mencetak tulisan.

162 Mendapatkan masukan dan memasukkannya ke pos yang menunjuk ke

nim.

163 Mencetak tulisan.

164 Mendapatkan masukan dan memasukkannya ke pos yang menunjuk ke

nama.

165 Mencetak tulisan.

166 Mendapatkan masukan dan memasukkannya ke pos yang menunjuk ke

alamat.

167 Meletakkan tulisan.

168 Mengakhiri perintah yang telah dilaksanakan.

169 Menyatakan jika kondisi sebelumnya tidak terpenuhi, mencetak tulisan.

170 Meletakkan tulisan.

171 Mengakhiri fungsi ubah.

172 -

Page 138: Laporan Praktikum Konsep Pemrograman

5. Analisis Jalannya Program

Pada awal program, pengguna akan memilih pilihan. Menu pilihan tersebut

dihubungkan dengan beberapa pemanggilan fungsi. Jika pengguna memasukkan angka

1, fungsi yang dipanggil adalah fungsi tambah yang berguna untuk menambah data.

Begitu pula dengan fungsi-fungsi yang lain.

Pada fungsi tambah, terdapat proses memesan memori yang dilakukan oleh malloc.

Terdapat pointer baru yang menunjuk dari fungsi mahasiswa. Ketika variabel pointer

baru tidak sama dengan NULL, maka akan dilakukan penambahan dengan cara

memanggil fungsi masukkanString yang berguna untuk membatasi masukan agar tidak

melebihi batas karakter. Masukan yang ditambahkan akan disimpan dalam variabel baru

yang menunjuk NIM, nama, dan alamat. Setelah itu, simpul baru menunjuk next yang

berisi dari head, sedangkan head berisi dengan variabel baru.

Fungsi masukkanString berfungsi untuk menyimpan masukan yang diketik ke

variabel st. Setelah itu, st akan diproses. Jika isi dari variabel st lebih banyak dari

constraint, akan muncul pesan kesalahan, sehingga pengguna harus memasukkan ulang

data. Apabila yang dimasukkan tidak melebihi constraint, maka masukan tersebut akan

disalin ke dalam variabel string untuk disimpan dalam simpul pada mahasiswa.

Fungsi cari dimulai dengan memasukkan nama yang akan dicari. Kemudian

melakukan pemanggilan fungsi temukan yang mencocokkan nama dari masukan dengan

nama yang pernah disimpan. Setelah datanya ditemukan, maka akan ditampilkan NIM,

nama, dan alamat yang diambil dari penunjukan simpul pos ke NIM, nama dan alamat.

Fungsi tampilSemua dilaksanakan dengan membuat pointer semen dari

mahasiswa. Kemudian variabel semen tersebut berisi head. Ketika semen berisi atau

bukan NULL, maka akan dicetak semen menunjuk NIM, nama, alamat setelah itu semen

menunjuk next.

Fungsi ubah dimulai dengan memasukkan nama yang akan diganti, kemudian

memanggil fungsi temukan. Setelah itu, pengguna memasukkan data yang akan diganti,

data yang dimasukkan tersebut disimpan ke pos menunjuk ke NIM, nama, dan alamat.

Dalam fungsi temukan, variabel first berisi NULL dan variabel pos berisi dari head.

Ketika pos tidak sama dengan NULL, maka pos yang menunjuk nama akan dibandingkan

Page 139: Laporan Praktikum Konsep Pemrograman

dengan variabel nama. Jika tidak sama, variabel first diisi pos dan pos diisi pos

selanjutnya.

Page 140: Laporan Praktikum Konsep Pemrograman

NIM NAMA

PKP1 -

Operasi

Aritmatika

dan Logika

PKP2 - Input

Output and

Decision

Making

PKP3 -

Looping

PKP4 -

Function

PKP5 -

Array

PKP6 -

String

PKP7 -

Pointer

PKP8 -

Sorting

PKP9 -

Structure

PKP10 -

Link List

M0513019 Fembi Rekrisna Grandea Putra 82 70 79 80 73 92 90 65 72 80