• Tidak ada hasil yang ditemukan

P01 Pengenalan Pemrograman C++ di Linux

N/A
N/A
Protected

Academic year: 2021

Membagikan "P01 Pengenalan Pemrograman C++ di Linux"

Copied!
10
0
0

Teks penuh

(1)

P01

| Pengenalan Pemrograman C++ di Linux

Modul Praktikum FI2283 Pemrograman dan Simulasi Fisika

Versi 2013.09.06

Catatan. Perhatikan berkas (atau file) apa yang harus anda buat dalam setiap tugas. Setiap kali praktikum buat folder baru dengan nama YYYYMMDD-NN di mana YYYY adalah tahun, MM bulan, DD hari, dan NN nomor praktikum. Untuk hari Senin, 9 September 2013 yang merupakan praktikum pertama, se-tiap pengguna menyimpan berkas-berkasnya dalam folder 20130909-01 di bawah folder Documents (untuk ini tanyakan jelasnya pada asisten praktikum Anda). Bila berkas Anda tidak ditemukan maka nilai praktikum hanya dari angka ke-hadirannya saja.

1 Program pertama hello.cpp 2

2 Arti pilihan -o saat kompilasi program 2 3 Melewatkan argumen saat program dipanggil 3

4 Peran spasi pada argumen program 4

5 Menampilkan semua argumen program 4

6 Contoh penggunaan instruksi if 4

7 Program tambah.cpp 5

8 Program add.cpp 6

9 Program subst.cpp 7

(2)

1

Program pertama hello.cpp

Perhatikan kode lengkap berikut ini #include <iostream>

using namespace std;

int main(int argc, char *argv[]) { cout << "Hello C++!" << endl; return 0;

}

Salin kode tersebut dengan menggunakan piranti lunak penyunting teks yang umumnya tersedia dalam sistem operasi Linux, seperti Vi atau Vim, Kate, Joe, Emacs, KWrite, atau lainnya. Simpan dengan nama hello.cpp dan kemudian kompilasi dengan cara

g++ hello.cpp -o hello dan jalankan dengan mengetikkan .\hello

Apakah hasil yang muncul pada konsol?

Tugas 1. Modifikasi kode di atas dan simpan dengan nama berkas hello2.cpp sehingga dapat memberikan keluaran seperti berikut ini

Selamat praktikum FI2283, <Nama Anda>.

setelah dipanggil, di mana ganti <Nama Anda> dengan rangkaian karakter yang merepresentasikan nama Anda sebagai peserta praktikum FI2283.

2

Arti pilihan -o saat kompilasi program

Kembali gunakan program hello.cpp yang telah dibuat sebelumnya, kompilasi program tersebut dengan cara yang berbeda, yaitu

(3)

Berkas apakah yang muncul dan bagiamana sekarang Anda menjalankan pro-gram hasil kompilasi tersebut?

Tugas 2. Kompilasi program hello.cpp semula sehingga saat dijalankan, perin-tah yang harus diberikan pada konsol adalah

./myhello

Tuliskan cara melakukan kompilasi tersebut dalam berkas laporan.txt. Berkas ini nanti akan diperiksa oleh asisten.

3

Melewatkan argumen saat program dipanggil

Salin kode berikut ini #include <iostream> using namespace std;

int main(int argc, char *argv[]) { if(argc > 1) {

cout << "Selamat praktikum, "; cout << argv[1] << endl; }

return 0; }

dan simpan dalam berkas dengan nama nama.cpp, lalu kompilasi sehingga dapat dipanggil dengan cara

./nama "Nama-Depan Nama-Belakang"

Tugas 3. Lakukan pemanggilan dengan menggunakan jumlah kata yang lebih banyak dengan keseluruhan kalimat masih diapit oleh tanda petik ganda buka dan tutup. Tuliskan perintah yang dipanggil dan hasilnya kembali dalam berkas laporan.txt.

4

Peran spasi pada argumen program

(4)

./nama "Nama-Depan Nama-Belakang" ./nama Nama-Depan Nama-Belakang

Jelaskan perbedaan hasilnya dalam berkas laporan.txt.

5

Menampilkan semua argumen program

Ketik kode berikut dalam suatu program dengan nama arg-list.cpp #include <iostream>

using namespace std;

int main(int argc, char *argv[]) { for(int i = 0; i < argc; i++) {

cout << argv[i] << endl; }

return 0; }

Kompilasi sehingga diperoleh perintah arg-list.

Tugas 5. Gunakan hasil kompilasi program arg-list.cpp dan lakukan pe-manggilan dengan cara

./arg-list

./arg-list "Selamat pagi" ./arg-list Selamat pagi ./arg-list 1 2 3 Apa kabar

Jelaskan apa tujuan program tersebut serta jelaskan perbedaan hasilnya dalam berkas laporan.txt.

6

Contoh penggunaan instruksi if

Ketik kode berikut dalam suatu program dengan nama ifnama.cpp #include <iostream>

(5)

int main(int argc, char *argv[]) { cout << endl;

if(argc < 2) {

cout << "Tolong masukkan nama Anda."; cout << endl;

} else {

cout << "Selamat praktikum, "; for(int i = 1; i < argc; i++) {

cout << argv[i] << " "; } cout << "." << endl; } cout << endl; return 0; }

dan kompilasi sehingga diperoleh perintah ifnama.

Tugas 6. Eksekusi program yang telah dibuat dengan cara ./ifnama

dan ulangi dengan cara

./ifnama Limana Kapau Nissa Munaakah

di mana kata-kata di atas dapat Anda ganti sesukanya :-). Jelaskan apa fungsi program tersebut dan bagian mana program yang dijalankan saat dipanggil dengan cara pertama dan bagian mana yang dijalankan saat dipanggil dengan cara kedua. Tuliskan jawaban Anda dalam berkas laporan.txt.

7

Program tambah.cpp

Program tambah.cpp adalah contoh program dengan kontrol jumlah argumen dan informasi apa parameter yang harus lewatkan.

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

(6)

if(argc < 2) {

cout << "Calculate sum of number sequence."; cout << endl;

cout << "Usage: tambah x1 x2 x3 [..]" << endl; } else {

double sx = 0;

for(int i = 1; i < argc; i++) { sx = sx + atof(argv[i]); }

for(int i = 1; i < argc; i++) { cout << (argv[i]); if(i < argc - 1) { cout << " + "; } } cout << " = " << sx << endl; } return 0; }

Tugas 7. Salin dan kompilasi kode tersebut menjadi perintah tambah dan jalankan dengan cara

./tambah 1 2 3 4 5

Angka-angka di atas dapat Anda ubah semaunya. Laporkan cara Anda me-manggil program dan hasilnya dalam berkas laporan.txt.

8

Program add.cpp

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

int main(int argc, char *argv[]) { if(argc < 2) {

cout << "Calculate sum of two integers"; cout << endl;

cout << "Usage: add i1 i2" << endl; } else {

double x1 = atof(argv[1]); double x2 = atof(argv[2]);

(7)

double sx = x1 + x2; cout << sx << endl; }

return 0; }

Tugas 8. Dalam laporan.txt tuliskan bagaimana Anda melakukan kompilasi program add.cpp dan jelaskan cara-cara memanggil yang masih memberikan hasil yang relevan dengan hasilnya.

9

Program subst.cpp

Tugas 9. Modifikasi program add.cpp sehingga dapat menghitung selisih dua variabel saat dipanggil dari konsol dengan cara

./subst 100.3 40.2 sehingga memberikan hasil 60.1

di mana contoh angkanya dapat Anda ubah-ubah. Simpan program tersebut dengan nama subst.cpp.

10

Perkenalan argumen dan pipe

Salin kode berikut dalam berkas dengan nama addintp.cpp /*

addintp.cpp

Add integers and use of pipe S. Viridi <[email protected]> 20130906 */ #include <iostream> #include <stdlib.h> #include <unistd.h> using namespace std;

(8)

/* URI http://stackoverflow.com/questions/2564503 /how-do-i-check-if-my-program-has-data-piped-into-it [20130906] URI http://linux.die.net/man/3/isatty [20130906] URI http://www.rtems.com/ml/rtems-users/2011/march /msg00102.html [20130906] */

int main(int argc, char *argv[]) {

// Check whether there is pipe from other program bool isPipe = !isatty(STDIN_FILENO);

// Checek whether there is (are) argument(s) bool isArgs = (argc > 1);

// Default message

char msg[] = "Usage: [addintp i1 i2] | addintp i3 i4"; if(isPipe && !isArgs) {

cout << msg << endl; } else if(!isPipe && isArgs){

if(argc > 2) { int i1 = atoi(argv[1]); int i2 = atoi(argv[2]); cout << i1 + i2 << endl; } else { cout << msg << endl; }

} else if(isPipe && isArgs){ if(argc > 2) { int i0; cin >> i0; int i1 = atoi(argv[1]); int i2 = atoi(argv[2]); cout << i0 + i1 + i2 << endl; } else { cout << msg << endl; } } else { cout << msg << endl; } }

(9)

Tugas 10. Jalankan program tersebut dengan menggunakan dua buah bilangan dan laporkan hasilnya dalam laporan.txt.

./addintp ./addintp 1 3

./addintp 1 3 | ./addintp 10 ./addintp 1 3 | ./addintp 10 5

Jelaskan pula dalam laporan.txt apa fungsi dari program tersebut.

Keluaran praktikum

1. hello.cpp, hello2.cpp, nama.cpp, arg-list.cpp, ifname.cpp, tambah.cpp, add.cpp, subst.cpp, dan addintp.cpp

2. laporan.txt yang berisikan jawaban dari Tugas 2, 3, 4, 5, 6, 7, 8, dan 10

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. 1

(10)

Referensi

Dokumen terkait

Teori Konstruktivisme , dalam www.teachersrock.net/ciri_konst.htm.. Pembelajaran dengan penguatan. Penguatan tidak selalu hal yang menggembirakan, tetapi bisa juga sebaliknya. Hal

Bagian ATK mengecek surat jalan yang diterima dengan formulir purchase order yang telah diarsip sebelumnya, jika tidak sesuai maka akan dilakukan konfirmasi ulang dengan supplier,

Konsentrasi primer yang lebih dari 1 µM akan menyebabkan primer tersebut menempel pada sekuen yang tidak diinginkan, sedangkan konsentrasi primer yang lebih

Laporan ini disusun pada minggu kedua Agustus 2013, paska liburan lebaran, karena dan mengingat maraknya kasus penembakan misterius dan makin banyaknya kekerasan

A Descriptive Study of the Eight Grade Students’ Ability in Writing A Descriptive Paragraph by Using Individual Pictures at SMPN 3 Kencong, Jember in the

[r]

ANALISIS BERPIKIR REFLEKTIF SISWA DALAM MEMECAHKAN MASALAH MATEMATIKA MATERI GARIS SINGGUNG LINGKARAN KELAS VIII A (UNGGULAN) DI MTs NEGERI PAGU TAHUN.

Menimbang, bahwa berdasarkan fakta-fakta tersebut di atas, maka Majelis Hakim berpendapat telah terbukti hal-hal yang didalilkan Pemohon tentang goyah/pecahnya rumah tangga