P00 | Perintah Dasar dalam Linux Modul Praktikum FI2283 Pemrograman dan Simulasi Fisika Versi 2014.08.25
Catatan. Perhatikan berkas (atau file) apa yang harus anda buat dalam setiap tugas. Setiap kali praktikum buat folder baru dengan nama YYYYMMDDNN dengan YYYY adalah tahun, MM bulan, DD hari, dan NN nomor praktikum. Contoh, untuk hari Senin, 1 September 2014, setiap pengguna menyimpan berkas-berkasnya dalam folder 20140901-01 di bawah folder Documents (untuk ini tanyakan jelasnya pada asisten praktikum Anda). Bila berkas Anda tidak ditemukan maka nilai praktikum hanya dari angka kehadirannya saja. 1 Perintah Dasar dalam Linux
1
1
Perintah Dasar dalam Linux
Linux merupakan sistem operasi yang terminal-based, sehingga untuk bisa menggunakan Linux dengan baik, pengguna harus terbiasa dengan perintah-perintah dasar Linux yang diketikkan ke dalam konsol. Perlu diingat bahwa perintah dalam Linux bersifat case-sensitive. Berikut ini adalah beberapa perintah dasar yang umum digunakan dalam Linux:
1
pwd ls cd
cp mv rm ./<program>
Tombol Tombol <↑>
Mengetahui alamat lengkap dari direktori kerja saat ini. Mengetahui isi dari direktori kerja saat ini. Berpindah ke direktori lain yang berada dalam direktori kerja saat ini. Ganti dengan .. untuk berpindah ke direktori yang satu level lebih tinggi dari direktori kerja saat ini. Menyalin file ke . Memindahkan file ke . Bisa juga digunakan untuk mengubah nama file. Menghapus . Mengeksekusi <program>. Perlu diingat bahwa <program> haruslah memiliki atribut executable, dan dalam Linux file yang dapat dieksekusi tidak perlu harus memiliki ekstensi khusus (seperti .exe pada Windows). Auto-complete. Tekan dua kali untuk melihat semua kemungkinan yang ada saat ini. Melihat perintah-perintah sebelumnya.
2
P01 | Pengenalan Pemrograman C++ di Linux Modul Praktikum FI2283 Pemrograman dan Simulasi Fisika Versi 2014.08.31
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, 1 September 2014 yang merupakan praktikum pertama, setiap pengguna menyimpan berkas-berkasnya dalam folder 20140901-01 di bawah folder Documents (untuk ini tanyakan jelasnya pada asisten praktikum Anda). Bila berkas Anda tidak ditemukan maka nilai praktikum hanya dari angka kehadirannya 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
3
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
10 Perkenalan argumen dan pipe
7
1
1
Program pertama hello.cpp
Perhatikan kode lengkap berikut ini #include 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, . setelah dipanggil, di mana ganti 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 g++ hello.cpp
2
Berkas apakah yang muncul dan bagiamana sekarang Anda menjalankan program hasil kompilasi tersebut? Tugas 2. Kompilasi program hello.cpp semula sehingga saat dijalankan, perintah 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 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
Tugas 4. Kembali gunakan hasil kompilasi program nama.cpp dan lakukan pemanggilan dengan cara 3
./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 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 pemanggilan 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 using namespace std;
4
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 #include <stdlib.h> using namespace std; int main(int argc, char *argv[])
{ 5
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 memanggil program dan hasilnya dalam berkas laporan.txt.
8
Program add.cpp
#include #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]); 6
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 20130906 */ #include #include <stdlib.h> #include using namespace std;
7
/* 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; } } 8
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 1 Sparisoma
Viridi , .., 2013
9
.
10